fastapi-voyager 0.15.0__py3-none-any.whl → 0.15.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastapi_voyager/er_diagram.py +57 -109
- fastapi_voyager/render.py +12 -2
- fastapi_voyager/server.py +1 -0
- fastapi_voyager/templates/dot/er_diagram.j2 +29 -0
- fastapi_voyager/version.py +1 -1
- fastapi_voyager/web/component/demo.js +5 -5
- fastapi_voyager/web/component/render-graph.js +60 -61
- fastapi_voyager/web/component/route-code-display.js +35 -37
- fastapi_voyager/web/component/schema-code-display.js +50 -53
- fastapi_voyager/web/graph-ui.js +90 -101
- fastapi_voyager/web/graphviz.svg.css +10 -10
- fastapi_voyager/web/graphviz.svg.js +306 -316
- fastapi_voyager/web/icon/site.webmanifest +11 -1
- fastapi_voyager/web/index.html +225 -109
- fastapi_voyager/web/store.js +107 -111
- fastapi_voyager/web/vue-main.js +287 -258
- {fastapi_voyager-0.15.0.dist-info → fastapi_voyager-0.15.1.dist-info}/METADATA +16 -4
- {fastapi_voyager-0.15.0.dist-info → fastapi_voyager-0.15.1.dist-info}/RECORD +21 -20
- {fastapi_voyager-0.15.0.dist-info → fastapi_voyager-0.15.1.dist-info}/WHEEL +0 -0
- {fastapi_voyager-0.15.0.dist-info → fastapi_voyager-0.15.1.dist-info}/entry_points.txt +0 -0
- {fastapi_voyager-0.15.0.dist-info → fastapi_voyager-0.15.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1 +1,11 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"name": "",
|
|
3
|
+
"short_name": "",
|
|
4
|
+
"icons": [
|
|
5
|
+
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
|
|
6
|
+
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
|
|
7
|
+
],
|
|
8
|
+
"theme_color": "#ffffff",
|
|
9
|
+
"background_color": "#ffffff",
|
|
10
|
+
"display": "standalone"
|
|
11
|
+
}
|
fastapi_voyager/web/index.html
CHANGED
|
@@ -22,11 +22,7 @@
|
|
|
22
22
|
sizes="16x16"
|
|
23
23
|
href="fastapi-voyager-static/icon/favicon-16x16.png"
|
|
24
24
|
/>
|
|
25
|
-
<link
|
|
26
|
-
rel="icon"
|
|
27
|
-
href="fastapi-voyager-static/icon/favicon.ico"
|
|
28
|
-
sizes="any"
|
|
29
|
-
/>
|
|
25
|
+
<link rel="icon" href="fastapi-voyager-static/icon/favicon.ico" sizes="any" />
|
|
30
26
|
<link rel="manifest" href="fastapi-voyager-static/icon/site.webmanifest" />
|
|
31
27
|
<link
|
|
32
28
|
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons"
|
|
@@ -64,18 +60,46 @@
|
|
|
64
60
|
|
|
65
61
|
.inherit-flow {
|
|
66
62
|
/* stroke-width:2; */
|
|
67
|
-
stroke-dasharray: 8 6;
|
|
63
|
+
stroke-dasharray: 8 6; /* dash pattern */
|
|
68
64
|
stroke-linecap: round;
|
|
69
65
|
animation: dash 2s linear infinite;
|
|
70
66
|
animation-direction: reverse;
|
|
71
67
|
}
|
|
72
|
-
@keyframes dash {
|
|
68
|
+
@keyframes dash {
|
|
69
|
+
to {
|
|
70
|
+
stroke-dashoffset: -14;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
73
|
|
|
74
74
|
.adjust-fit {
|
|
75
75
|
height: calc(100vh - 54px);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
.github-corner:hover .octo-arm
|
|
78
|
+
.github-corner:hover .octo-arm {
|
|
79
|
+
animation: octocat-wave 560ms ease-in-out;
|
|
80
|
+
}
|
|
81
|
+
@keyframes octocat-wave {
|
|
82
|
+
0%,
|
|
83
|
+
100% {
|
|
84
|
+
transform: rotate(0);
|
|
85
|
+
}
|
|
86
|
+
20%,
|
|
87
|
+
60% {
|
|
88
|
+
transform: rotate(-25deg);
|
|
89
|
+
}
|
|
90
|
+
40%,
|
|
91
|
+
80% {
|
|
92
|
+
transform: rotate(10deg);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
@media (max-width: 500px) {
|
|
96
|
+
.github-corner:hover .octo-arm {
|
|
97
|
+
animation: none;
|
|
98
|
+
}
|
|
99
|
+
.github-corner .octo-arm {
|
|
100
|
+
animation: octocat-wave 560ms ease-in-out;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
79
103
|
|
|
80
104
|
/* App boot loading overlay & gating */
|
|
81
105
|
#app-loading-overlay {
|
|
@@ -87,10 +111,19 @@
|
|
|
87
111
|
gap: 12px;
|
|
88
112
|
background: #ffffff;
|
|
89
113
|
z-index: 9999;
|
|
90
|
-
font-family:
|
|
114
|
+
font-family:
|
|
115
|
+
-apple-system,
|
|
116
|
+
BlinkMacSystemFont,
|
|
117
|
+
Segoe UI,
|
|
118
|
+
Roboto,
|
|
119
|
+
Helvetica,
|
|
120
|
+
Arial,
|
|
121
|
+
sans-serif;
|
|
91
122
|
color: #009485;
|
|
92
123
|
}
|
|
93
|
-
.loading-text {
|
|
124
|
+
.loading-text {
|
|
125
|
+
font-size: 14px;
|
|
126
|
+
}
|
|
94
127
|
.spinner {
|
|
95
128
|
width: 20px;
|
|
96
129
|
height: 20px;
|
|
@@ -99,10 +132,18 @@
|
|
|
99
132
|
border-radius: 50%;
|
|
100
133
|
animation: frv-spin 0.8s linear infinite;
|
|
101
134
|
}
|
|
102
|
-
@keyframes frv-spin {
|
|
135
|
+
@keyframes frv-spin {
|
|
136
|
+
to {
|
|
137
|
+
transform: rotate(360deg);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
103
140
|
/* While JS not ready: hide app, show overlay */
|
|
104
|
-
body.app-loading #q-app {
|
|
105
|
-
|
|
141
|
+
body.app-loading #q-app {
|
|
142
|
+
visibility: hidden;
|
|
143
|
+
}
|
|
144
|
+
body.app-loading #app-loading-overlay {
|
|
145
|
+
display: flex;
|
|
146
|
+
}
|
|
106
147
|
</style>
|
|
107
148
|
<body class="app-loading">
|
|
108
149
|
<!-- App boot loading overlay: shown until JS initializes -->
|
|
@@ -113,14 +154,21 @@
|
|
|
113
154
|
<div id="q-app">
|
|
114
155
|
<q-layout view="hHh lpR fff">
|
|
115
156
|
<q-header bordered class="bg-primary text-white">
|
|
116
|
-
<q-toolbar
|
|
157
|
+
<q-toolbar
|
|
158
|
+
class="row text-grey-9 bg-white"
|
|
159
|
+
style="width: 100%; border-bottom: 2px solid #009485"
|
|
160
|
+
>
|
|
117
161
|
<div
|
|
118
162
|
class="col-auto text-primary"
|
|
119
|
-
style="font-size: 18px; font-weight: bold; display: flex; align-items: baseline
|
|
163
|
+
style="font-size: 18px; font-weight: bold; display: flex; align-items: baseline"
|
|
120
164
|
>
|
|
121
165
|
<q-icon class="q-mr-sm" name="satellite_alt"></q-icon>
|
|
122
166
|
<span> FastAPI Voyager </span>
|
|
123
|
-
<span
|
|
167
|
+
<span
|
|
168
|
+
v-if="store.state.version"
|
|
169
|
+
style="font-size: 12px; margin-left: 8px; font-weight: normal"
|
|
170
|
+
>{{ store.state.version }}</span
|
|
171
|
+
>
|
|
124
172
|
</div>
|
|
125
173
|
<div class="col-auto">
|
|
126
174
|
<q-btn
|
|
@@ -145,8 +193,7 @@
|
|
|
145
193
|
dense
|
|
146
194
|
/>
|
|
147
195
|
</div>
|
|
148
|
-
<div class="col-auto q-ml-auto">
|
|
149
|
-
</div>
|
|
196
|
+
<div class="col-auto q-ml-auto"></div>
|
|
150
197
|
<div class="col-auto row items-center q-gutter-sm">
|
|
151
198
|
<q-select
|
|
152
199
|
v-show="!store.state.search.invisible"
|
|
@@ -162,23 +209,23 @@
|
|
|
162
209
|
option-value="value"
|
|
163
210
|
emit-value
|
|
164
211
|
map-options
|
|
165
|
-
style="min-width: 320px
|
|
212
|
+
style="min-width: 320px"
|
|
166
213
|
clearable
|
|
167
214
|
label="Select schema"
|
|
168
215
|
@update:model-value="onSearchSchemaChange"
|
|
169
216
|
@filter="filterSearchSchemas"
|
|
170
217
|
@clear="resetSearch"
|
|
171
218
|
>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
219
|
+
<template v-slot:option="scope">
|
|
220
|
+
<q-item v-bind="scope.itemProps">
|
|
221
|
+
<q-item-section>
|
|
222
|
+
<q-item-label>{{ scope.opt.label }}</q-item-label>
|
|
223
|
+
<q-item-label caption>{{ scope.opt.desc }}</q-item-label>
|
|
224
|
+
</q-item-section>
|
|
225
|
+
</q-item>
|
|
226
|
+
</template>
|
|
227
|
+
</q-select>
|
|
228
|
+
|
|
182
229
|
<q-select
|
|
183
230
|
v-show="!store.state.search.invisible"
|
|
184
231
|
dense
|
|
@@ -213,29 +260,52 @@
|
|
|
213
260
|
aria-label="Help"
|
|
214
261
|
style="margin-right: 50px; margin-left: 20px"
|
|
215
262
|
>
|
|
216
|
-
<q-tooltip
|
|
217
|
-
anchor="bottom middle"
|
|
218
|
-
self="top middle"
|
|
219
|
-
:offset="[0,8]"
|
|
220
|
-
>
|
|
263
|
+
<q-tooltip anchor="bottom middle" self="top middle" :offset="[0,8]">
|
|
221
264
|
<div
|
|
222
265
|
class="column items-start text-left"
|
|
223
266
|
style="line-height: 1.4; font-size: 12px"
|
|
224
267
|
>
|
|
225
268
|
<ul>
|
|
226
269
|
<li>scroll to zoom in/out</li>
|
|
227
|
-
<li>
|
|
228
|
-
|
|
229
|
-
</li>
|
|
230
|
-
<li>
|
|
231
|
-
shift + click to search the schema and highlight related nodes.
|
|
232
|
-
</li>
|
|
270
|
+
<li>double click node to view details.</li>
|
|
271
|
+
<li>shift + click to search the schema and highlight related nodes.</li>
|
|
233
272
|
</ul>
|
|
234
273
|
</div>
|
|
235
274
|
</q-tooltip>
|
|
236
275
|
</q-btn>
|
|
237
|
-
|
|
238
|
-
|
|
276
|
+
<a
|
|
277
|
+
href="https://github.com/allmonday/fastapi-voyager"
|
|
278
|
+
target="_blank"
|
|
279
|
+
class="github-corner"
|
|
280
|
+
aria-label="View source on GitHub"
|
|
281
|
+
><svg
|
|
282
|
+
width="52"
|
|
283
|
+
height="52"
|
|
284
|
+
viewBox="0 0 250 250"
|
|
285
|
+
style="
|
|
286
|
+
fill: #009485;
|
|
287
|
+
color: #fff;
|
|
288
|
+
position: absolute;
|
|
289
|
+
top: 0;
|
|
290
|
+
border: 0;
|
|
291
|
+
right: 0;
|
|
292
|
+
"
|
|
293
|
+
aria-hidden="true"
|
|
294
|
+
>
|
|
295
|
+
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
|
|
296
|
+
<path
|
|
297
|
+
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
|
298
|
+
fill="currentColor"
|
|
299
|
+
style="transform-origin: 130px 106px"
|
|
300
|
+
class="octo-arm"
|
|
301
|
+
/>
|
|
302
|
+
<path
|
|
303
|
+
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
|
304
|
+
fill="currentColor"
|
|
305
|
+
class="octo-body"
|
|
306
|
+
/></svg
|
|
307
|
+
></a>
|
|
308
|
+
</div>
|
|
239
309
|
</q-toolbar>
|
|
240
310
|
</q-header>
|
|
241
311
|
|
|
@@ -243,25 +313,25 @@
|
|
|
243
313
|
v-model="store.state.rightDrawer.drawer"
|
|
244
314
|
:width="store.state.rightDrawer.width"
|
|
245
315
|
side="right"
|
|
246
|
-
style="border-left: 1px solid #888
|
|
316
|
+
style="border-left: 1px solid #888"
|
|
247
317
|
bordered
|
|
248
318
|
overlay
|
|
249
319
|
>
|
|
250
|
-
<div
|
|
320
|
+
<div
|
|
251
321
|
@mousedown="startDragDrawer"
|
|
252
322
|
style="
|
|
253
|
-
position: absolute;
|
|
254
|
-
left: -3px;
|
|
255
|
-
top: 0;
|
|
256
|
-
width: 6px;
|
|
257
|
-
height: 100%;
|
|
258
|
-
cursor: col-resize;
|
|
323
|
+
position: absolute;
|
|
324
|
+
left: -3px;
|
|
325
|
+
top: 0;
|
|
326
|
+
width: 6px;
|
|
327
|
+
height: 100%;
|
|
328
|
+
cursor: col-resize;
|
|
259
329
|
background: transparent;
|
|
260
330
|
z-index: 10;
|
|
261
331
|
"
|
|
262
332
|
title="drag to resize"
|
|
263
333
|
></div>
|
|
264
|
-
|
|
334
|
+
|
|
265
335
|
<div style="z-index: 11; position: absolute; left: -17px; top: 9px">
|
|
266
336
|
<q-btn
|
|
267
337
|
@click="store.state.rightDrawer.drawer = !store.state.rightDrawer.drawer"
|
|
@@ -310,60 +380,92 @@
|
|
|
310
380
|
>
|
|
311
381
|
<template #header>
|
|
312
382
|
<div class="" style="white-space: nowrap; width: 100%">
|
|
383
|
+
<q-icon
|
|
384
|
+
style="vertical-align: top"
|
|
385
|
+
class="q-mr-sm"
|
|
386
|
+
:name="store.state.leftPanel.tag == tag.name ? 'folder' : 'folder_open'"
|
|
387
|
+
></q-icon>
|
|
388
|
+
<span
|
|
389
|
+
>{{ tag.name }}
|
|
390
|
+
<q-chip style="position: relative; top: -1px" class="q-ml-md" dense
|
|
391
|
+
>{{ tag.routes.length }}</q-chip
|
|
392
|
+
></span
|
|
393
|
+
>
|
|
394
|
+
<a
|
|
395
|
+
v-if="store.state.leftPanel._tag == tag.name"
|
|
396
|
+
target="_blank"
|
|
397
|
+
class="q-ml-sm"
|
|
398
|
+
v-if="store.state.swagger.url"
|
|
399
|
+
:href="store.state.swagger.url + '#/' + tag.name"
|
|
400
|
+
>
|
|
313
401
|
<q-icon
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
402
|
+
color="primary"
|
|
403
|
+
size=""
|
|
404
|
+
name="link"
|
|
405
|
+
title="open in swagger"
|
|
317
406
|
></q-icon>
|
|
318
|
-
|
|
319
|
-
<a v-if="store.state.leftPanel._tag == tag.name" target="_blank" class="q-ml-sm" v-if="store.state.swagger.url" :href="store.state.swagger.url + '#/' + tag.name">
|
|
320
|
-
<q-icon color="primary" size="" name="link" title="open in swagger"></q-icon>
|
|
321
|
-
</a>
|
|
407
|
+
</a>
|
|
322
408
|
</div>
|
|
323
409
|
</template>
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
410
|
+
<q-list separator style="overflow: auto; max-height: 60vh">
|
|
411
|
+
<q-item
|
|
412
|
+
v-for="route in (store.state.filter.hidePrimitiveRoute ? tag.routes.filter(r => !r.is_primitive) :tag.routes || [])"
|
|
413
|
+
:key="route.id"
|
|
414
|
+
clickable
|
|
415
|
+
v-ripple
|
|
416
|
+
:active="store.state.leftPanel.routeId === route.id"
|
|
417
|
+
active-class=""
|
|
418
|
+
@click="selectRoute(route.id)"
|
|
419
|
+
>
|
|
420
|
+
<q-item-section>
|
|
421
|
+
<span class="q-ml-lg" style="white-space: nowrap">
|
|
422
|
+
<q-icon class="q-mr-sm" name="data_object"></q-icon>
|
|
423
|
+
{{ route.name }}
|
|
424
|
+
<a
|
|
425
|
+
v-if="store.state.leftPanel.routeId == route.id"
|
|
426
|
+
target="_blank"
|
|
427
|
+
class="q-ml-md"
|
|
428
|
+
v-if="store.state.swagger.url"
|
|
429
|
+
:href="store.state.swagger.url + '#/' + tag.name + '/' + route.unique_id"
|
|
430
|
+
>
|
|
336
431
|
<q-icon
|
|
337
|
-
|
|
338
|
-
|
|
432
|
+
color="primary"
|
|
433
|
+
size=""
|
|
434
|
+
name="link"
|
|
435
|
+
title="open in swagger"
|
|
339
436
|
></q-icon>
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
v-if="!tag.routes || tag.routes.length === 0"
|
|
349
|
-
dense
|
|
350
|
-
>
|
|
351
|
-
<q-item-section class="text-grey-6"
|
|
352
|
-
>No routes</q-item-section
|
|
353
|
-
>
|
|
354
|
-
</q-item>
|
|
355
|
-
</q-list>
|
|
356
|
-
</q-scroll-area>
|
|
437
|
+
</a>
|
|
438
|
+
</span>
|
|
439
|
+
</q-item-section>
|
|
440
|
+
</q-item>
|
|
441
|
+
<q-item v-if="!tag.routes || tag.routes.length === 0" dense>
|
|
442
|
+
<q-item-section class="text-grey-6">No routes</q-item-section>
|
|
443
|
+
</q-item>
|
|
444
|
+
</q-list>
|
|
357
445
|
</q-expansion-item>
|
|
358
446
|
</q-list>
|
|
447
|
+
</q-scroll-area>
|
|
359
448
|
</div>
|
|
360
449
|
</template>
|
|
361
450
|
|
|
362
451
|
<template #after>
|
|
363
|
-
<div style="position: relative; width: 100%; height: 100
|
|
452
|
+
<div style="position: relative; width: 100%; height: 100%">
|
|
364
453
|
<div id="graph" class="adjust-fit"></div>
|
|
365
|
-
<div
|
|
366
|
-
|
|
454
|
+
<div
|
|
455
|
+
style="
|
|
456
|
+
position: absolute;
|
|
457
|
+
left: 8px;
|
|
458
|
+
top: 8px;
|
|
459
|
+
z-index: 10;
|
|
460
|
+
background: rgba(255, 255, 255, 0.85);
|
|
461
|
+
border-radius: 4px;
|
|
462
|
+
padding: 2px 8px;
|
|
463
|
+
"
|
|
464
|
+
>
|
|
465
|
+
<div
|
|
466
|
+
class="q-mt-sm"
|
|
467
|
+
v-if="store.state.modeControl.briefModeEnabled && store.state.search.mode === false && store.state.mode === 'voyager'"
|
|
468
|
+
>
|
|
367
469
|
<q-toggle
|
|
368
470
|
v-if="store.state.modeControl.briefModeEnabled"
|
|
369
471
|
dense
|
|
@@ -373,7 +475,10 @@
|
|
|
373
475
|
title="skip middle classes, config module_prefix to enable it"
|
|
374
476
|
/>
|
|
375
477
|
</div>
|
|
376
|
-
<div
|
|
478
|
+
<div
|
|
479
|
+
class="q-mt-sm"
|
|
480
|
+
v-if="store.state.search.mode === false && store.state.mode === 'voyager'"
|
|
481
|
+
>
|
|
377
482
|
<q-toggle
|
|
378
483
|
v-model="store.state.filter.hidePrimitiveRoute"
|
|
379
484
|
@update:model-value="(val) => toggleHidePrimitiveRoute(val)"
|
|
@@ -391,7 +496,10 @@
|
|
|
391
496
|
title="show module cluster"
|
|
392
497
|
/>
|
|
393
498
|
</div>
|
|
394
|
-
<div
|
|
499
|
+
<div
|
|
500
|
+
class="q-mt-sm"
|
|
501
|
+
v-if="store.state.mode == 'voyager' && store.state.config.enable_pydantic_resolve_meta"
|
|
502
|
+
>
|
|
395
503
|
<q-toggle
|
|
396
504
|
v-model="store.state.modeControl.pydanticResolveMetaEnabled"
|
|
397
505
|
@update:model-value="(val) => togglePydanticResolveMeta(val)"
|
|
@@ -400,6 +508,7 @@
|
|
|
400
508
|
title="show fields with pydantic resolve/post/expose/collector info"
|
|
401
509
|
/>
|
|
402
510
|
</div>
|
|
511
|
+
</div>
|
|
403
512
|
</div>
|
|
404
513
|
</template>
|
|
405
514
|
</q-splitter>
|
|
@@ -407,11 +516,7 @@
|
|
|
407
516
|
</q-layout>
|
|
408
517
|
|
|
409
518
|
<!-- Schema Field Filter Dialog -->
|
|
410
|
-
<q-dialog
|
|
411
|
-
v-model="store.state.searchDialog.show"
|
|
412
|
-
:persistent="true"
|
|
413
|
-
:maximized="true"
|
|
414
|
-
>
|
|
519
|
+
<q-dialog v-model="store.state.searchDialog.show" :persistent="true" :maximized="true">
|
|
415
520
|
<schema-field-filter
|
|
416
521
|
:schemas="store.state.graph.schemaMap"
|
|
417
522
|
:schema-name="store.state.searchDialog.schema"
|
|
@@ -427,11 +532,15 @@
|
|
|
427
532
|
/>
|
|
428
533
|
</q-card>
|
|
429
534
|
</q-dialog>
|
|
430
|
-
|
|
431
535
|
</div>
|
|
432
536
|
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
|
|
433
537
|
<script src="fastapi-voyager-static/quasar.min.js"></script>
|
|
434
|
-
<script
|
|
538
|
+
<script
|
|
539
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"
|
|
540
|
+
integrity="sha512-egJ/Y+22P9NQ9aIyVCh0VCOsfydyn8eNmqBy+y2CnJG+fpRIxXMS6jbWP8tVKp0jp+NO5n8WtMUAnNnGoJKi4w=="
|
|
541
|
+
crossorigin="anonymous"
|
|
542
|
+
referrerpolicy="no-referrer"
|
|
543
|
+
></script>
|
|
435
544
|
<script
|
|
436
545
|
src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js"
|
|
437
546
|
integrity="sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A=="
|
|
@@ -439,7 +548,12 @@
|
|
|
439
548
|
referrerpolicy="no-referrer"
|
|
440
549
|
></script>
|
|
441
550
|
<script src="https://unpkg.com/@hpcc-js/wasm@2.20.0/dist/graphviz.umd.js"></script>
|
|
442
|
-
<script
|
|
551
|
+
<script
|
|
552
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/d3-graphviz/5.6.0/d3-graphviz.min.js"
|
|
553
|
+
integrity="sha512-Le8HpIpS2Tc7SDHLM6AOgAKq6ZR4uDwLhjPSR20DtXE5dFb9xECHRwgpc1nxxnU0Dv+j6FNMoSddky5gyvI3lQ=="
|
|
554
|
+
crossorigin="anonymous"
|
|
555
|
+
referrerpolicy="no-referrer"
|
|
556
|
+
></script>
|
|
443
557
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
|
|
444
558
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-color/2.1.2/jquery.color.min.js"></script>
|
|
445
559
|
<script src="fastapi-voyager-static/graphviz.svg.js"></script>
|
|
@@ -449,18 +563,20 @@
|
|
|
449
563
|
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css"
|
|
450
564
|
/>
|
|
451
565
|
<script type="module">
|
|
452
|
-
window.addEventListener(
|
|
566
|
+
window.addEventListener("DOMContentLoaded", async () => {
|
|
453
567
|
if (!window.hljs) {
|
|
454
568
|
try {
|
|
455
|
-
const { default: hljs } =
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
569
|
+
const { default: hljs } =
|
|
570
|
+
await import("https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/highlight.min.js")
|
|
571
|
+
const { default: python } =
|
|
572
|
+
await import("https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/es/languages/python.min.js")
|
|
573
|
+
hljs.registerLanguage("python", python)
|
|
574
|
+
window.hljs = hljs
|
|
459
575
|
} catch (e) {
|
|
460
|
-
console.warn("Failed to preload highlight.js", e)
|
|
576
|
+
console.warn("Failed to preload highlight.js", e)
|
|
461
577
|
}
|
|
462
578
|
}
|
|
463
|
-
})
|
|
579
|
+
})
|
|
464
580
|
</script>
|
|
465
581
|
<script type="module" src="fastapi-voyager-static/vue-main.js"></script>
|
|
466
582
|
|