PageSourceSearch

https://catenate-metal-ligand-binding.hf.space/assets/Index-DgDgGRDA.js

js catenate-metal-ligand-binding.hf.space collected 2026-10-03 16:46:53 UTC 26,736 bytes, 919 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./embed-t6zjks9U.js","./mollweide-Ca6MRGcL.js","./ordinal-mJAyPK2n.js","./init-CT6u7j_0.js","./linear-BFftg_y2.js","./step-TZOpqHBK.js","./defaultLocale-DG5JsUjF.js","./time-uewm_MPu.js","./dispatch-tQmgj1It.js","./range-BRcAanmR.js","./index-OyOqWiks.js","./colors-CJG58WzC.js","./dsv-BhAd467f.js","./arc-BEcVRQAW.js"])))=>i.map(i=>d[i]);
2import { R as push, u as state, v as proxy, y as user_effect, x as set, w as get, aa as onMount, z as untrack, S as first_child, a7 as text, t as template_effect, a as append, X as sibling, T as pop, a5 as user_derived, af as __vitePreload, W as from_html, a0 as set_text, a8 as next, V as child, Y as reset } from './index-BvBk1Iap.js';
3import { i as if_block, r as rest_props, g as spread_props, d as bind_this } from './i18n-CMo5lpzy.js';
4import { G as Gradio } from './utils.svelte-CYLB_jIA.js';
5import { B as Block } from './Block-Bx3BikCN.js';
6import { B as BlockTitle } from './BlockTitle-7XQ-8ENg.js';
7import { I as IconButton } from './ScrollFade.svelte_svelte_type_style_lang-Xm-PLg9E.js';
8import { E as Empty } from './Empty-CHa-gxv7.js';
9import { D as Download } from './Download-pFhUaTl4.js';
10import { L as LineChart } from './LineChart-BOORCIAk.js';
11import { I as IconButtonWrapper } from './IconButtonWrapper-Ba0GidgU.js';
12import { F as FullscreenButton } from './FullscreenButton-CNmhk6nd.js';
13import { S as Static } from './index-Lz7fsHFt.js';
14import './StreamingBar.svelte_svelte_type_style_lang-CdFIGsJa.js';
15import './clone-DaB-S2nH.js';
16import './Info-BrkJhX6_.js';
17import './html-CdUEtR5E.js';
18import './snippet-Bl5YVoCg.js';
19import './Maximize-B_43ylTs.js';
20import './Clear-Dgs5UhTO.js';
21import './index-C7e-J7CF.js';
22
23var root_4 = from_html(`<!> <!>`, 1);
24var root_9 = from_html(`<p class="caption svelte-19utvcn"> </p>`);
25var root_8 = from_html(`<div class="svelte-19utvcn"></div> <!>`, 1);
26var root_1 = from_html(`<!> <!> <!> <!>`, 1);
27
28function Index($$anchor, $$props) {
29	push($$props, true);
30
31	let props = rest_props($$props, ['$$slots', '$$events', '$$legacy']);
32	const gradio = new Gradio(props);
33
34	let unique_colors = user_derived(() => {
35		if (!gradio.props.color || !gradio.props.value || gradio.props.value.datatypes[gradio.props.color] !== "nominal") {
36			return [];
37		}
38
39		const color_index = gradio.props.value.columns.indexOf(gradio.props.color);
40
41		if (color_index === -1) return [];
42
43		return Array.from(new Set(gradio.props.value.data.map((row) => row[color_index])));
44	});
45
46	let x_lim = user_derived(() => gradio.props.x_lim || null); // for some unknown reason, x_lim was getting set to undefined when used in re-render, so this line is needed
47	let y_lim = user_derived(() => gradio.props.y_lim || null);
48	let x_start = user_derived(() => get(x_lim)?.[0] !== null ? get(x_lim)?.[0] : undefined);
49	let x_end = user_derived(() => get(x_lim)?.[1] !== null ? get(x_lim)?.[1] : undefined);
50	let y_start = user_derived(() => get(y_lim)?.[0] !== null ? get(y_lim)?.[0] : undefined);
51	let y_end = user_derived(() => get(y_lim)?.[1] !== null ? get(y_lim)?.[1] : undefined);
52	let fullscreen = state(false);
53
54	function reformat_sort(_sort) {
55		if (_sort === "x") {
56			return "ascending";
57		} else if (_sort === "-x") {
58			return "descending";
59		} else if (_sort === "y") {
60			return { field: gradio.props.y, order: "ascending" };
61		} else if (_sort === "-y") {
62			return { field: gradio.props.y, order: "descending" };
63		} else if (_sort === null) {
64			return null;
65		} else if (Array.isArray(_sort)) {
66			return _sort;
67		}
68	}
69
70	let _sort = user_derived(() => reformat_sort(gradio.props.sort));
71	let _data = state(proxy([]));
72
73	function escape_field_name(fieldName) {
74		// Escape special characters in field names according to Vega-Lite spec:
75		// https://vega.github.io/vega-lite/docs/field.html
76		return fieldName.replace(/\./g, "\\.").replace(/\[/g, "\\[").replace(/\]/g, "\\]");
77	}
78
79	let x_temporal = user_derived(() => gradio.props.value && gradio.props.value.datatypes[gradio.props.x] === "temporal");
80
81	let _x_lim = user_derived(() => get(x_temporal)
82		? [
83			get(x_start) !== undefined ? get(x_start) * 1000 : null,
84			get(x_end) !== undefined ? get(x_end) * 1000 : null
85		]
86		: get(x_lim));
87
88	let mouse_down_on_chart = state(false);
89	const SUFFIX_DURATION = { s: 1, m: 60, h: 60 * 60, d: 24 * 60 * 60 };
90
91	let _x_bin = user_derived(() => gradio.props.x_bin
92		? typeof gradio.props.x_bin === "string"
93			? 1000 * parseInt(gradio.props.x_bin.substring(0, gradio.props.x_bin.length - 1)) * SUFFIX_DURATION[gradio.props.x_bin[gradio.props.x_bin.length - 1]]
94			: gradio.props.x_bin
95		: undefined);
96
97	let _y_aggregate = user_derived(() => {
98		if (gradio.props.value) {
99			if (gradio.props.value.mark === "point") {
100				const aggregating = get(_x_bin) !== undefined;
101
102				return gradio.props.y_aggregate || aggregating ? "sum" : undefined;
103			} else {
104				return gradio.props.y_aggregate ? gradio.props.y_aggregate : "sum";
105			}
106		}
107
108		return undefined;
109	});
110
111	let aggregating = user_derived(() => {
112		if (gradio.props.value) {
113			if (gradio.props.value.mark === "point") {
114				return get(_x_bin) !== undefined;
115			} else {
116				return get(_x_bin) !== undefined || gradio.props.value.datatypes[gradio.props.x] === "nominal";
117			}
118		}
119
120		return false;
121	});
122
123	function downsample(data, x_index, y_index, color_index, x_start, x_end) {
124		if (data.length < 1000 || gradio.props.x_bin !== null || gradio.props.value?.mark !== "line" || gradio.props.value?.datatypes[gradio.props.x] === "nominal") {
125			return data;
126		}
127
128		const bin_count = 250;
129		let min_max_bins_per_color = {};
130
131		if (x_start === undefined || x_end === undefined) {
132			data.forEach((row) => {
133				let x_value = row[x_index];
134
135				if (x_start === undefined || x_value < x_start) {
136					x_start = x_value;
137				}
138
139				if (x_end === undefined || x_value > x_end) {
140					x_end = x_value;
141				}
142			});
143		}
144
145		if (x_start === undefined || x_end === undefined) {
146			return data;
147		}
148
149		const x_range = x_end - x_start;
150		const bin_size = x_range / bin_count;
151
152		data.forEach((row, i) => {
153			const x_value = row[x_index];
154			const y_value = row[y_index];
155			const color_value = color_index !== null ? row[color_index] : "any";
156			const bin_index = Math.floor((x_value - x_start) / bin_size);
157
158			if (min_max_bins_per_color[color_value] === undefined) {
159				min_max_bins_per_color[color_value] = [];
160			}
161
162			min_max_bins_per_color[color_value][bin_index] = min_max_bins_per_color[color_value][bin_index] || [
163				null,
164				Number.POSITIVE_INFINITY,
165				null,
166				Number.NEGATIVE_INFINITY
167			];
168
169			if (y_value < min_max_bins_per_color[color_value][bin_index][1]) {
170				min_max_bins_per_color[color_value][bin_index][0] = i;
171				min_max_bins_per_color[color_value][bin_index][1] = y_value;
172			}
173
174			if (y_value > min_max_bins_per_color[color_value][bin_index][3]) {
175				min_max_bins_per_color[color_value][bin_index][2] = i;
176				min_max_bins_per_color[color_value][bin_index][3] = y_value;
177			}
178		});
179
180		const downsampled_data = [];
181
182		Object.values(min_max_bins_per_color).forEach((bins) => {
183			bins.forEach(([min_index, _, max_index, __]) => {
184				let indices = [];
185
186				if (min_index !== null && max_index !== null) {
187					indices = [
188						Math.min(min_index, max_index),
189						Math.max(min_index, max_index)
190					];
191				} else if (min_index !== null) {
192					indices = [min_index];
193				} else if (max_index !== null) {
194					indices = [max_index];
195				}
196
197				indices.forEach((index) => {
198					downsampled_data.push(data[index]);
199				});
200			});
201		});
202
203		return downsampled_data;
204	}
205
206	function reformat_data(data, x_start, x_end) {
207		let x_index = data.columns.indexOf(gradio.props.x);
208		let y_index = data.columns.indexOf(gradio.props.y);
209		let color_index = gradio.props.color ? data.columns.indexOf(gradio.props.color) : null;
210		let datatable = data.data;
211
212		if (x_start !== undefined && x_end !== undefined) {
213			const time_factor = data.datatypes[gradio.props.x] === "temporal" ? 1000 : 1;
214			const _x_start = x_start * time_factor;
215			const _x_end = x_end * time_factor;
216			let largest_before_start = {};
217			let smallest_after_end = {};
218
219			const _datatable = datatable.filter((row, i) => {
220				const x_value = row[x_index];
221				const color_value = color_index !== null ? row[color_index] : "any";
222
223				if (x_value < _x_start && (largest_before_start[color_value] === undefined || x_value > largest_before_start[color_value][1])) {
224					largest_before_start[color_value] = [i, x_value];
225				}
226
227				if (x_value >
227 _x_end && (smallest_after_end[color_value] === undefined || x_value < smallest_after_end[color_value][1])) {
228					smallest_after_end[color_value] = [i, x_value];
229				}
230
231				return x_value >= _x_start && x_value <= _x_end;
232			});
233
234			datatable = [
235				...Object.values(largest_before_start).map(([i, _]) => datatable[i]),
236				...downsample(_datatable, x_index, y_index, color_index, _x_start, _x_end),
237				...Object.values(smallest_after_end).map(([i, _]) => datatable[i])
238			];
239		} else {
240			datatable = downsample(datatable, x_index, y_index, color_index, undefined, undefined);
241		}
242
243		if (gradio.props.tooltip == "all" || Array.isArray(gradio.props.tooltip)) {
244			return datatable.map((row) => {
245				const obj = {};
246
247				data.columns.forEach((col, i) => {
248					obj[col] = row[i];
249				});
250
251				return obj;
252			});
253		}
254
255		return datatable.map((row) => {
256			const obj = {
257				[gradio.props.x]: row[x_index],
258				[gradio.props.y]: row[y_index]
259			};
260
261			if (gradio.props.color && color_index !== null) {
262				obj[gradio.props.color] = row[color_index];
263			}
264
265			return obj;
266		});
267	}
268
269	user_effect(() => {
270		set(
271			_data,
272			gradio.props.value
273				? reformat_data(gradio.props.value, get(x_start), get(x_end))
274				: [],
275			true
276		);
277	});
278
279	let old_value = state(proxy(gradio.props.value));
280
281	user_effect(() => {
282		if (get(old_value) !== gradio.props.value && get(view)) {
283			set(old_value, gradio.props.value, true);
284			get(view).data("data", get(_data)).runAsync();
285		}
286	});
287
288	const is_browser = typeof window !== "undefined";
289	let chart_element = state(void 0);
290	let computed_style = user_derived(() => get(chart_element) ? window.getComputedStyle(get(chart_element)) : null);
291	let view = state(void 0);
292	let mounted = state(false);
293	let old_width = state(0);
294	let old_height = state(0);
295	let resizeObserver = state(void 0);
296	let vegaEmbed;
297
298	async function load_chart() {
299		if (get(mouse_down_on_chart)) {
300			set(refresh_pending, true);
301
302			return;
303		}
304
305		if (get(view)) {
306			get(view).finalize();
307		}
308
309		if (!gradio.props.value || !get(chart_element)) return;
310
311		set(old_width, get(chart_element).offsetWidth, true);
312		set(old_height, get(chart_element).offsetHeight, true);
313
314		const spec = create_vega_lite_spec();
315
316		if (!spec) return;
317
318		set(
319			resizeObserver,
320			new ResizeObserver((el) => {
321				if (!el[0].target || !(el[0].target instanceof HTMLElement)) return;
322
323				if (get(old_width) === 0 && get(chart_element).offsetWidth !== 0 && gradio.props.value.datatypes[gradio.props.x] === "nominal") {
324					// a bug where when a nominal chart is first loaded, the width is 0, it doesn't resize
325					load_chart();
326				} else {
327					const width_change = Math.abs(get(old_width) - el[0].target.offsetWidth);
328					const height_change = Math.abs(get(old_height) - el[0].target.offsetHeight);
329
330					if (width_change > 100 || height_change > 100) {
331						set(old_width, el[0].target.offsetWidth, true);
332						set(old_height, el[0].target.offsetHeight, true);
333						load_chart();
334					} else {
335						get(view).signal("width", el[0].target.offsetWidth).run();
336
337						if (get(fullscreen)) {
338							get(view).signal("height", el[0].target.offsetHeight).run();
339						}
340					}
341				}
342			}),
343			true
344		);
345
346		if (!vegaEmbed) {
347			vegaEmbed = (await __vitePreload(async () => { const {default: __vite_default__} = await import('./embed-t6zjks9U.js');return { default: __vite_default__ }},true              ?__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]):void 0,import.meta.url)).default;
348		}
349
350		vegaEmbed(get(chart_element), spec, { actions: false }).then(function (result) {
351			set(view, result.view, true);
352			get(resizeObserver).observe(get(chart_element));
353
354			var debounceTimeout;
355			var lastSelectTime = 0;
356
357			get(view).addEventListener("dblclick", () => {
358				gradio.dispatch("double_click");
359			});
360
361			// prevent double-clicks from highlighting text
362			get(chart_element).addEventListener(
363				"mousedown",
364				function (e) {
365					if (e.detail > 1) {
366						e.preventDefault();
367					}
368				},
369				false
370			);
371
372			if (gradio.props._selectable) {
373				get(view).addSignalListener("brush", function (_, value) {
374					if (Date.now() - lastSelectTime < 1000) return;
375
376					set(mouse_down_on_chart, true);
377
378					if (Object.keys(value).length === 0) return;
379
380					clearTimeout(debounceTimeout);
381
382					let range = value[Object.keys(value)[0]];
383
384					if (get(x_temporal)) {
385						range = [range[0] / 1000, range[1] / 1000];
386					}
387
388					debounceTimeout = setTimeout(
389						function () {
390							set(mouse_down_on_chart, false);
391							lastSelectTime = Date.now();
392							gradio.dispatch("select", { value: range, index: range, selected: true });
393
394							if (get(refresh_pending)) {
395								set(refresh_pending, false);
396								load_chart();
397							}
398						},
399						250
400					);
401				});
402			}
403		});
404	}
405
406	let refresh_pending = state(false);
407
408	onMount(() => {
409		set(mounted, true);
410
411		return () => {
412			set(mounted, false);
413
414			if (get(view)) {
415				get(view).finalize();
416			}
417
418			if (get(resizeObserver)) {
419				get(resizeObserver).disconnect();
420			}
421		};
422	});
423
424	function export_chart() {
425		if (!get(view) || !get(computed_style)) return;
426
427		const block_background = get(computed_style).getPropertyValue("--block-background-fill");
428		const export_background = block_background || "white";
429
430		get(view).background(export_background).run();
431
432		get(view).toImageURL("png", 2).then(function (url) {
433			get(view).background("transparent").run();
434
435			const link = document.createElement("a");
436
437			link.setAttribute("href", url);
438			link.setAttribute("download", "chart.png");
439			link.style.display = "none";
440			document.body.appendChild(link);
441			link.click();
442			document.body.removeChild(link);
443		}).catch(function (err) {
444			console.error("Export failed:", err);
445			get(view).background("transparent").run();
446		});
447	}
448
449	let _color_map = user_derived(() => JSON.stringify(gradio.props.color_map));
450
451	user_effect(() => {
452		// Track dependencies to trigger chart reload
453		void gradio.props.title;
454
455		void gradio.props.x_title;
456		void gradio.props.y_title;
457		void gradio.props.color_title;
458		void gradio.props.x;
459		void gradio.props.y;
460		void gradio.props.color;
461		void gradio.props.x_bin;
462		void get(_y_aggregate);
463		void get(_color_map);
464		void gradio.props.colors_in_legend;
465		void get(x_start);
466		void get(x_end);
467		void get(y_start);
468		void get(y_end);
469		void gradio.props.caption;
470		void gradio.props.sort;
471		void get(mounted);
472		void get(chart_element);
473		void get(fullscreen);
474		void get(computed_style);
475
476		if (get(mounted) && get(chart_element)) {
477			untrack(() => {
478				load_chart();
479			});
480		}
481	});
482
483	function create_vega_lite_spec() {
484		if (!gradio.props.value || !get(computed_style)) return null;
485
486		let accent_color = get(computed_style).getPropertyValue("--color-accent");
487		let body_text_color = get(computed_style).getPropertyValue("--body-text-color");
488		let borderColorPrimary = get(computed_style).getPropertyValue("--border-color-primary");
489		let font_family = get(computed_style).fontFamily;
490		let title_weight = get(computed_style).getPropertyValue("--block-title-text-weight");
491
492		const font_to_px_val = (font) => {
493			return font.endsWith("px") ? parseFloat(font.slice(0, -2)) : 12;
494		};
495
496		let text_size_md = font_to_px_val(get(computed_style).getPropertyValue("--text-md"));
497		let text_size_sm = font_to_px_val(get(computed_style).getPropertyValue("--text-sm"));
498
499		/* eslint-disable complexity */
500		return {
501			$schema: "https://vega.github.io/schema/vega-lite/v5.17.0.json",
502			background: "transparent",
503			config: {
504				autosize: { type: "fit", contains: "padding" },
505				axis: {
506					labelFont: font_family,
507					labelColor: body_text_color,
508					titleFont: font_family,
509					titleColor: body_text_color,
510					titlePadding: 8,
511					tickColor: borderColorPrimary,
512					labelFontSize: text_size_sm,
513					gridColor: borderColorPrimary,
514					titleFontWeight: "normal",
515					titleFontSize: text_size_sm,
516					labelFontWeight: "normal",
517					domain: false,
518					labelAngle: 0,
519					titleLimit: get(chart_element).offsetHeight * 0.8
520				},
521				legend: {
522					labelColor: body_text_color,
523					labelFont: font_family,
524					titleColor: body_text_color,
525					titleFont: font_family,
526					titleFontWeight: "normal",
527					titleFontSize: text_size_sm,
528					labelFontWeight: "normal",
529					offset: 2
530				},
531				title: {
532					color: body_text_color,
533					font: font_family,
534					fontSize: text_size_md,
535					fontWeight: title_weight,
536					anchor: "middle"
537				},
538				view: { stroke: borderColorPrimary },
539				mark: {
540					stroke: gradio.props.value.mark !== "bar" ? accent_color : undefined,
541					fill: gradio.props.value.mark === "bar" ? accent_color : undefined,
542					cursor: "crosshair"
543				}
544			},
545			data: { name: "data" },
546			datasets: { data: get(_data) },
547			layer: [
548				"plot",
549				...gradio.props.value.mark === "line" ? ["hover"] : []
550			].map((mode) => {
551				return {
552					encoding: {
553						size: gradio.props.value.mark === "line"
554							? mode == "plot"
555								? {
556									condition: { empty: false, param: "hoverPlot", value: 3 },
557									value: 2
558								}
559								: {
560									condition: { empty: false, param: "hover", value: 100 },
561									value: 0
562								}
563							: undefined,
564
565						opacity: mode === "plot"
566							? undefined
567							: {
568								condition: { empty: false, param: "hover", value: 1 },
569								value: 0
570							},
571
572						x: {
573							axis: {
574								...gradio.props.x_label_angle !== null && { labelAngle: gradio.props.x_label_angle },
575								labels: gradio.props.x_axis_labels_visible,
576								ticks: gradio.props.x_axis_labels_visible,
577								...gradio.props.x_axis_format !== null && { format: gradio.props.x_axis_format }
578							},
579							field: escape_field_name(gradio.props.x),
580							title: gradio.props.x_title || gradio.props.x,
581							type: gradio.props.value.datatypes[gradio.props.x],
582							scale: {
583								zero: false,
584								domainMin: get(_x_lim)?.[0] !== null ? get(_x_lim)?.[0] : undefined,
585								domainMax: get(_x_lim)?.[1] !== null ? get(_x_lim)?.[1] : undefined
586							},
587							bin: get(_x_bin) ? { step: get(_x_bin) } : undefined,
588							sort: get(_sort)
589						},
590						y: {
591							axis: {
592								...gradio.props.y_label_angle && { labelAngle: gradio.props.y_label_angle },
593								...gradio.props.y_axis_format !== null && { format: gradio.props.y_axis_format }
594							},
595							field: escape_field_name(gradio.props.y),
596							title: gradio.props.y_title || gradio.props.y,
597							type: gradio.props.value.datatypes[gradio.props.y],
598							scale: {
599								zero: false,
600								domainMin: get(y_start) ?? undefined,
601								domainMax: get(y_end) ?? undefined
602							},
603							aggregate: get(aggregating) ? get(_y_aggregate) : undefined
604						},
605
606						color: gradio.props.color
607							? {
608								field: escape_field_name(gradio.props.color),
609								legend: {
610									orient: "bottom",
611									title: gradio.props.color_title,
612									values: gradio.props.colors_in_legend?.length ? [...gradio.props.colors_in_legend] : undefined
613								},
614
615								scale: gradio.props.value.datatypes[gradio.props.color] === "nominal"
616									? {
617										domain: get(unique_colors),
618										range: gradio.props.color_map
619											? get(unique_colors).map((c) => gradio.props.color_map[c])
620											: undefined
621									}
622									: {
623										range: [100, 200, 300, 400, 500, 600, 700, 800, 900].map((n) => get(computed_style).getPropertyValue("--primary-" + n)),
624										interpolate: "hsl"
625									},
626								type: gradio.props.value.datatypes[gradio.props.color]
627							}
628							: undefined,
629
630						tooltip: gradio.props.tooltip == "none"
631							? undefined
632							: [
633								{
634									field: escape_field_name(gradio.props.y),
635									type: gradio.props.value.datatypes[gradio.props.y],
636									aggregate: get(aggregating) ? get(_y_aggregate) : undefined,
637									title: gradio.props.y_title || gradio.props.y
638								},
639
640								{
641									field: escape_field_name(gradio.props.x),
642									type: gradio.props.value.datatypes[gradio.props.x],
643									title: gradio.props.x_title || gradio.props.x,
644									format: get(x_temporal) ? "%Y-%m-%d %H:%M:%S" : undefined,
645									bin: get(_x_bin) ? { step: get(_x_bin) } : undefined
646								},
647
648								...gradio.props.color
649									? [
650										{
651											field: gradio.props.color,
652											type: gradio.props.value.datatypes[gradio.props.color]
653										}
654									]
655									: [],
656
657								...gradio.props.tooltip === "axis"
658									? []
659									: gradio.props.value?.columns.filter((col) => col !== gradio.props.x && col !== gradio.props.y && col !== gradio.props.color && (gradio.props.tooltip === "all" || gradio.props.tooltip.includes(col))).map((column) => ({ field: column, type: gradio.props.value.datatypes[column] }))
660							]
661					},
662					strokeDash: {},
663					mark: {
664						clip: true,
665						type: mode === "hover" ? "point" : gradio.props.value.mark
666					},
667					name: mode
668				};
669			}),
670
671			// @ts-ignore
672			params: [
673				...gradio.props.value.mark === "line"
674					? [
675						{
676							name: "hoverPlot",
677							select: {
678								clear: "mouseout",
679								fields: gradio.props.color ? [gradio.props.color] : [],
680								nearest: true,
681								on: "mouseover",
682								type: "point"
683							},
684							views: ["hover"]
685						},
686
687						{
688							name: "hover",
689							select: {
690								clear: "mouseout",
691								nearest: true,
692								on: "mouseover",
693								type: "point"
694							},
695							views: ["hover"]
696						}
697					]
698					: [],
699
700				...gradio.props._selectable
701					? [
702						{
703							name: "brush",
704							select: {
705								encodings: ["x"],
706								mark: { fill: "gray", fillOpacity: 0.3, stroke: "none" },
707								type: "interval"
708							},
709							views: ["plot"]
710						}
711					]
712					: []
713			],
714			width: get(chart_element).offsetWidth,
715			height: gradio.props.height || get(fullscreen) ? "container" : undefined,
716			title: gradio.props.title || undefined
717		};
718	}
719
720	Block($$anchor, {
721		get visible() {
722			return gradio.shared.visible;
723		},
724
725		get elem_id() {
726			return gradio.shared.elem_id;
727		},
728
729		get elem_classes() {
730			return gradio.shared.elem_classes;
731		},
732
733		get scale() {
734			return gradio.shared.scale;
735		},
736
737		get min_width() {
738			return gradio.shared.min_width;
739		},
740		allow_overflow: false,
741		padding: true,
742		get height() {
743			return gradio.props.height;
744		},
745
746		get fullscreen() {
747			return get(fullscreen);
748		},
749
750		set fullscreen($$value) {
751			set(fullscreen, $$value, true);
752		},
753
754		children: ($$anchor, $$slotProps) => {
755			var fragment_1 = root_1();
756			var node = first_child(fragment_1);
757
758			{
759				var consequent = ($$anchor) => {
760					Static($$anchor, spread_props(
761						{
762							get autoscroll() {
763								return gradio.shared.autoscroll;
764							},
765
766							get i18n() {
767								return gradio.i18n;
768							}
769						},
770						() => gradio.shared.loading_status,
771						{
772							on_clear_status: () => gradio.dispatch("clear_status", gradio.shared.loading_status)
773						}
774					));
775				};
776
777				if_block(node, ($$render) => {
778					if (gradio.shared.loading_status) $$render(consequent);
779				});
780			}
781
782			var node_1 = sibling(node, 2);
783
784			{
785				var consequent_3 = ($$anchor) => {
786					IconButtonWrapper($$anchor, {
787						get buttons() {
788							return gradio.props.buttons;
789						},
790
791						on_custom_button_click: (id) => {
792							gradio.dispatch("custom_button_click", { id });
793						},
794
795						children: ($$anchor, $$slotProps) => {
796							var fragment_4 = root_4();
797							var node_2 = first_child(fragment_4);
798
799							{
800								var consequent_1 = ($$anchor) => {
801									IconButton($$anchor, {
802										get Icon() {
803											return Download;
804										},
805										label: 'Export',
806										onclick: export_chart
807									});
808								};
809
810								if_block(node_2, ($$render) => {
811									if (gradio.props.buttons?.some((btn) => typeof btn === "string" && btn === "export")) $$render(consequent_1);
812								});
813							}
814
815							var node_3 = sibling(node_2, 2);
816
817							{
818								var consequent_2 = ($$anchor) => {
819									FullscreenButton($$anchor, {
820										get fullscreen() {
821											return get(fullscreen);
822										},
823
824										$$events: {
825											fullscreen: ({ detail }) => {
826												set(fullscreen, detail, true);
827											}
828										}
829									});
830								};
831
832								if_block(node_3, ($$render) => {
833									if (gradio.props.buttons?.some((btn) => typeof btn === "string" && btn === "fullscreen")) $$render(consequent_2);
834								});
835							}
836
837							append($$anchor, fragment_4);
838						},
839						$$slots: { default: true }
840					});
841				};
842
843				if_block(node_1, ($$render) => {
844					if (gradio.props.buttons?.length) $$render(consequent_3);
845				});
846			}
847
848			var node_4 = sibling(node_1, 2);
849
850			BlockTitle(node_4, {
851				get show_label() {
852					return gradio.shared.show_label;
853				},
854				info: undefined,
855				children: ($$anchor, $$slotProps) => {
856					next();
857
858					var text$1 = text();
859
860					template_effect(() => set_text(text$1, gradio.shared.label));
861					append($$anchor, text$1);
862				},
863				$$slots: { default: true }
864			});
865
866			var node_5 = sibling(node_4, 2);
867
868			{
869				var consequent_5 = ($$anchor) => {
870					var fragment_8 = root_8();
871					var div = first_child(fragment_8);
872
873					bind_this(div, ($$value) => set(chart_element, $$value), () => get(chart_element));
874
875					var node_6 = sibling(div, 2);
876
877					{
878						var consequent_4 = ($$anchor) => {
879							var p = root_9();
880							var text_1 = child(p, true);
881
882							reset(p);
883							template_effect(() => set_text(text_1, gradio.props.caption));
884							append($$anchor, p);
885						};
886
887						if_block(node_6, ($$render) => {
888							if (gradio.props.caption) $$render(consequent_4);
889						});
890					}
891
892					append($$anchor, fragment_8);
893				};
894
895				var alternate = ($$anchor) => {
896					Empty($$anchor, {
897						unpadded_box: true,
898						children: ($$anchor, $$slotProps) => {
899							LineChart($$anchor);
900						},
901						$$slots: { default: true }
902					});
903				};
904
905				if_block(node_5, ($$render) => {
906					if (gradio.props.value && is_browser) $$render(consequent_5); else $$render(alternate, false);
907				});
908			}
909
910			append($$anchor, fragment_1);
911		},
912		$$slots: { default: true }
913	});
914
915	pop();
916}
917
918export { Index as default };
919//# sourceMappingURL=Index-DgDgGRDA.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.