1import { p as prop, e as init, i as if_block, d as bind_this, s as slot, b as set_class, f as set_style, r as rest_props, g as spread_props } from './i18n-CMo5lpzy.js'; 2import { R as push, a4 as createEventDispatcher, a1 as legacy_pre_effect, G as deep_read_state, w as get, a2 as legacy_pre_effect_reset, S as first_child, a6 as comment, a as append, t as template_effect, Z as event, T as pop, a3 as mutable_source, M as tick, U as flushSync, ad as derived_safe_equal, X as sibling, V as child, z as untrack, W as from_html, x as set, Y as reset, av as FileData, y as user_effect, u as state, a5 as user_derived } from './index-BvBk1Iap.js'; 3import { G as Gradio } from './utils.svelte-CYLB_jIA.js'; 4import { g as get_coordinates_of_clicked_image, I as ImagePreview } from './ImagePreview-CCH9abCE.js'; 5import { b as bubble_event } from './misc-ByVveAau.js'; 6import { I as IconButton, S as SelectSource } from './ScrollFade.svelte_svelte_type_style_lang-Xm-PLg9E.js'; 7import { B as BlockLabel } from './BlockLabel-oGSqUii_.js'; 8import { C as Clear } from './Clear-Dgs5UhTO.js'; 9import { I as Image } from './Image-C3F5KG1F.js'; 10import { I as IconButtonWrapper } from './IconButtonWrapper-Ba0GidgU.js'; 11import { F as FullscreenButton } from './FullscreenButton-CNmhk6nd.js'; 12import { W as Webcam } from './Webcam-rWLs1V82.js'; 13import { U as Upload, a as UploadProgress } from './Upload-CPeZiqam.js'; 14import { I as Image$1 } from './Image-CDw5qb5O.js'; 15/* empty css */ 16import { B as Block } from './Block-Bx3BikCN.js'; 17import { E as Empty } from './Empty-CHa-gxv7.js'; 18import { U as UploadText } from './UploadText-BSD1IoCI.js'; 19import { S as Static } from './index-Lz7fsHFt.js'; 20import './StreamingBar.svelte_svelte_type_style_lang-CdFIGsJa.js'; 21export { default as BaseExample } from './Example-C7SZxPdR.js'; 22import './clone-DaB-S2nH.js'; 23import './DownloadLink-KvrFKyMn.js'; 24import './ShareButton-Dz0y1C1K.js'; 25import './Download-pFhUaTl4.js'; 26/* empty css */ 27import './snippet-Bl5YVoCg.js'; 28import './Maximize-B_43ylTs.js'; 29import './actions-Cit_UA5S.js'; 30import './DropdownArrow-Dw1NZKCM.js'; 31import './Square-B6INQV79.js'; 32import './Spinner-BrK-6emq.js'; 33import './StreamingBar-bVF1kkqe.js'; 34/* empty css */ 35import './html-CdUEtR5E.js'; 36import './index-C7e-J7CF.js'; 37/* empty css */ 38 39var root_3 = from_html(`<!> <!>`, 1); 40var root_11 = from_html(`<div><!></div>`); 41var root_1 = from_html(`<!> <div data-testid="image" class="image-container svelte-6uxbr3"><!> <div><!> <!></div> <!></div>`, 1); 42 43function ImageUploader($$anchor, $$props) { 44 push($$props, false); 45 46 const active_streaming = mutable_source(); 47 let value = prop($$props, 'value', 12, null); 48 let label = prop($$props, 'label', 12, undefined); 49 let show_label = prop($$props, 'show_label', 12); 50 let sources = prop($$props, 'sources', 28, () => ["upload", "clipboard", "webcam"]); 51 let streaming = prop($$props, 'streaming', 12, false); 52 let pending = prop($$props, 'pending', 12, false); 53 let webcam_options = prop($$props, 'webcam_options', 12); 54 let selectable = prop($$props, 'selectable', 12, false); 55 let root = prop($$props, 'root', 12); 56 let i18n = prop($$props, 'i18n', 12); 57 let max_file_size = prop($$props, 'max_file_size', 12, null); 58 let upload = prop($$props, 'upload', 12); 59 let stream_handler = prop($$props, 'stream_handler', 12); 60 let stream_every = prop($$props, 'stream_every', 12); 61 let time_limit = prop($$props, 'time_limit', 12); 62 let show_fullscreen_button = prop($$props, 'show_fullscreen_button', 12, true); 63 let stream_state = prop($$props, 'stream_state', 12, "closed"); 64 let upload_promise = prop($$props, 'upload_promise', 12, null); 65 let onerror = prop($$props, 'onerror', 12, undefined); 66 let upload_input = mutable_source(); 67 let uploading = prop($$props, 'uploading', 12, false); 68 let active_source = prop($$props, 'active_source', 12, null); 69 let fullscreen = prop($$props, 'fullscreen', 12, false); 70 let files = mutable_source([]); 71 let upload_id = mutable_source(); 72 73 async function handle_upload(detail) { 74 if (!streaming()) { 75 if (detail.path?.toLowerCase().endsWith(".svg") && detail.url) { 76 const response = await fetch(detail.url); 77 const svgContent = await response.text(); 78 79 value({ 80 ...detail, 81 url: `data:image/svg+xml,${encodeURIComponent(svgContent)}` 82 }); 83 } else { 84 value(detail); 85 } 86 87 await tick(); 88 dispatch("upload"); 89 } 90 } 91 92 function handle_clear() { 93 value(null); 94 dispatch("clear"); 95 dispatch("change", null); 96 } 97 98 function handle_remove_image_click(event) { 99 handle_clear(); 100 event.stopPropagation(); 101 } 102 103 async function handle_save(img_blob, event) { 104 if (event === "stream") { 105 dispatch("stream", { value: { url: img_blob }, is_value_data: true }); 106 107 return; 108 } 109 110 set(upload_id, Math.random().toString(36).substring(2, 15)); 111 112 const f_ = new File([img_blob], `image.${streaming() ? "jpeg" : "png"}`); 113 114 set(files, [ 115 new FileData({ 116 path: f_.name, 117 orig_name: f_.name, 118 blob: f_, 119 size: f_.size, 120 mime_type: f_.type,
121 is_stream: false 122 }) 123 ]); 124 125 pending(true); 126 127 const f = await get(upload_input).load_files([f_], get(upload_id)); 128 129 if (event === "change" || event === "upload") { 130 value(f?.[0] || null); 131 await tick(); 132 dispatch("change"); 133 } 134 135 pending(false); 136 } 137 138 const dispatch = createEventDispatcher(); 139 let dragging = prop($$props, 'dragging', 12, false); 140 141 function handle_click(evt) { 142 let coordinates = get_coordinates_of_clicked_image(evt); 143 144 if (coordinates) { 145 dispatch("select", { index: coordinates, value: null }); 146 } 147 } 148 149 async function handle_select_source(source) { 150 switch (source) { 151 case "clipboard": 152 get(upload_input).paste_clipboard(); 153 break; 154 } 155 } 156 157 let image_container = mutable_source(); 158 159 function on_drag_over(evt) { 160 evt.preventDefault(); 161 evt.stopPropagation(); 162 163 if (evt.dataTransfer) { 164 evt.dataTransfer.dropEffect = "copy"; 165 } 166 167 dragging(true); 168 } 169 170 async function on_drop(evt) { 171 evt.preventDefault(); 172 evt.stopPropagation(); 173 dragging(false); 174 175 if (value()) { 176 handle_clear(); 177 await tick(); 178 } 179 180 active_source("upload"); 181 await tick(); 182 get(upload_input).load_files_from_drop(evt); 183 } 184 185 legacy_pre_effect( 186 () => ( 187 deep_read_state(active_source()), 188 deep_read_state(sources()) 189 ), 190 () => { 191 if (!active_source() && sources()) { 192 active_source(sources()[0]); 193 } 194 } 195 ); 196 197 legacy_pre_effect( 198 () => ( 199 deep_read_state(streaming()), 200 deep_read_state(active_source()) 201 ), 202 () => { 203 set(active_streaming, streaming() && active_source() === "webcam"); 204 } 205 ); 206 207 legacy_pre_effect(() => (deep_read_state(uploading()), get(active_streaming)), () => { 208 if (uploading() && !get(active_streaming)) value(null); 209 }); 210 211 legacy_pre_effect(() => (deep_read_state(dragging())), () => { 212 dispatch("drag", dragging()); 213 }); 214 215 legacy_pre_effect_reset(); 216 217 var $$exports = { 218 get value() { 219 return value(); 220 }, 221 222 set value($$value) { 223 value($$value); 224 flushSync(); 225 }, 226 227 get label() { 228 return label(); 229 }, 230 231 set label($$value) { 232 label($$value); 233 flushSync(); 234 }, 235 236 get show_label() { 237 return show_label(); 238 }, 239 240 set show_label($$value) { 241 show_label($$value); 242 flushSync(); 243 }, 244 245 get sources() { 246 return sources(); 247 }, 248 249 set sources($$value) { 250 sources($$value); 251 flushSync(); 252 }, 253 254 get streaming() { 255 return streaming(); 256 }, 257 258 set streaming($$value) { 259 streaming($$value); 260 flushSync(); 261 }, 262 263 get pending() { 264 return pending(); 265 }, 266 267 set pending($$value) { 268 pending($$value); 269 flushSync(); 270 }, 271 272 get webcam_options() { 273 return webcam_options(); 274 }, 275 276 set webcam_options($$value) { 277 webcam_options($$value); 278 flushSync(); 279 }, 280 281 get selectable() { 282 return selectable(); 283 }, 284 285 set selectable($$value) { 286 selectable($$value); 287 flushSync(); 288 }, 289 290 get root() { 291 return root(); 292 }, 293 294 set root($$value) { 295 root($$value); 296 flushSync(); 297 }, 298 299 get i18n() { 300 return i18n(); 301 }, 302 303 set i18n($$value) { 304 i18n($$value); 305 flushSync(); 306 }, 307 308 get max_file_size() { 309 return max_file_size(); 310 }, 311 312 set max_file_size($$value) { 313 max_file_size($$value); 314 flushSync(); 315 }, 316 317 get upload() { 318 return upload(); 319 }, 320 321 set upload($$value) { 322 upload($$value); 323 flushSync(); 324 }, 325 326 get stream_handler() { 327 return stream_handler(); 328 }, 329 330 set stream_handler($$value) { 331 stream_handler($$value); 332 flushSync(); 333 }, 334 335 get stream_every() { 336 return stream_every(); 337 }, 338 339 set stream_every($$value) { 340 stream_every($$value); 341 flushSync(); 342 }, 343 344 get time_limit() { 345 return time_limit(); 346 }, 347 348 set time_limit($$value) { 349 time_limit($$value); 350 flushSync(); 351 }, 352 353 get show_fullscreen_button() { 354 return show_fullscreen_button(); 355 }, 356 357 set show_fullscreen_button($$value) { 358 show_fullscreen_button($$value); 359 flushSync(); 360 }, 361 362 get stream_state() { 363 return stream_state(); 364 }, 365 366 set stream_state($$value) { 367 stream_state($$value); 368 flushSync(); 369 }, 370 371 get upload_promise() { 372 return upload_promise(); 373 }, 374 375 set upload_promise($$value) { 376 upload_promise($$value); 377 flushSync(); 378 }, 379
380 get onerror() { 381 return onerror(); 382 }, 383 384 set onerror($$value) { 385 onerror($$value); 386 flushSync(); 387 }, 388 389 get uploading() { 390 return uploading(); 391 }, 392 393 set uploading($$value) { 394 uploading($$value); 395 flushSync(); 396 }, 397 398 get active_source() { 399 return active_source(); 400 }, 401 402 set active_source($$value) { 403 active_source($$value); 404 flushSync(); 405 }, 406 407 get fullscreen() { 408 return fullscreen(); 409 }, 410 411 set fullscreen($$value) { 412 fullscreen($$value); 413 flushSync(); 414 }, 415 416 get dragging() { 417 return dragging(); 418 }, 419 420 set dragging($$value) { 421 dragging($$value); 422 flushSync(); 423 } 424 }; 425 426 init(); 427 428 var fragment = root_1(); 429 var node = first_child(fragment); 430 431 { 432 let $0 = derived_safe_equal(() => label() || "Image"); 433 434 BlockLabel(node, { 435 get show_label() { 436 return show_label(); 437 }, 438 439 get Icon() { 440 return Image; 441 }, 442 443 get label() { 444 return get($0); 445 } 446 }); 447 } 448 449 var div = sibling(node, 2); 450 var node_1 = child(div); 451 452 IconButtonWrapper(node_1, { 453 children: ($$anchor, $$slotProps) => { 454 var fragment_1 = comment(); 455 var node_2 = first_child(fragment_1); 456 457 { 458 var consequent_1 = ($$anchor) => { 459 var fragment_2 = root_3(); 460 var node_3 = first_child(fragment_2); 461 462 { 463 var consequent = ($$anchor) => { 464 FullscreenButton($$anchor, { 465 get fullscreen() { 466 return fullscreen(); 467 }, 468 469 $$events: { 470 fullscreen($$arg) { 471 bubble_event.call(this, $$props, $$arg); 472 } 473 } 474 }); 475 }; 476 477 if_block(node_3, ($$render) => { 478 if (show_fullscreen_button()) $$render(consequent); 479 }); 480 } 481 482 var node_4 = sibling(node_3, 2); 483 484 IconButton(node_4, { 485 get Icon() { 486 return Clear; 487 }, 488 label: 'Remove Image', 489 onclick: handle_remove_image_click 490 }); 491 492 append($$anchor, fragment_2); 493 }; 494 495 if_block(node_2, ($$render) => { 496 if (( 497 deep_read_state(value()), 498 get(active_streaming), 499 untrack(() => value()?.url && !get(active_streaming)) 500 )) $$render(consequent_1); 501 }); 502 } 503 504 append($$anchor, fragment_1); 505 }, 506 $$slots: { default: true } 507 }); 508 509 var div_1 = sibling(node_1, 2); 510 let classes; 511 let styles; 512 var node_5 = child(div_1); 513 514 { 515 let $0 = derived_safe_equal(() => value() !== null || active_source() === "webcam"); 516 let $1 = derived_safe_equal(() => active_source() === "clipboard" ? "clipboard" : "image/*"); 517 518 let $2 = derived_safe_equal(() => ( 519 deep_read_state(sources()), 520 deep_read_state(value()), 521 untrack(() => !sources().includes("upload") || value() !== null) 522 )); 523 524 let $3 = derived_safe_equal(() => ( 525 deep_read_state(i18n()), 526 untrack(() => i18n()("image.drop_to_upload")) 527 )); 528 529 bind_this( 530 Upload(node_5, { 531 get hidden() { 532 return get($0); 533 }, 534 535 get filetype() { 536 return get($1); 537 }, 538 onload: handle_upload,
539 get onerror() { 540 return onerror(); 541 }, 542 543 get root() { 544 return root(); 545 }, 546 547 get max_file_size() { 548 return max_file_size(); 549 }, 550 551 get disable_click() { 552 return get($2); 553 }, 554 555 get upload() { 556 return upload(); 557 }, 558 559 get stream_handler() { 560 return stream_handler(); 561 }, 562 563 get aria_label() { 564 return get($3); 565 }, 566 567 get upload_promise() { 568 return upload_promise(); 569 }, 570 571 set upload_promise($$value) { 572 upload_promise($$value); 573 }, 574 575 get uploading() { 576 return uploading(); 577 }, 578 579 set uploading($$value) { 580 uploading($$value); 581 }, 582 583 get dragging() { 584 return dragging(); 585 }, 586 587 set dragging($$value) { 588 dragging($$value); 589 }, 590 591 children: ($$anchor, $$slotProps) => { 592 var fragment_4 = comment(); 593 var node_6 = first_child(fragment_4); 594 595 { 596 var consequent_2 = ($$anchor) => { 597 var fragment_5 = comment(); 598 var node_7 = first_child(fragment_5); 599 600 slot(node_7, $$props, 'default', {}); 601 append($$anchor, fragment_5); 602 }; 603 604 if_block(node_6, ($$render) => { 605 if (value() === null) $$render(consequent_2); 606 }); 607 } 608 609 append($$anchor, fragment_4); 610 }, 611 $$slots: { default: true }, 612 $$legacy: true 613 }), 614 ($$value) => set(upload_input, $$value), 615 () => get(upload_input) 616 ); 617 } 618 619 var node_8 = sibling(node_5, 2); 620 621 { 622 var consequent_3 = ($$anchor) => { 623 UploadProgress($$anchor, { 624 get root() { 625 return root(); 626 }, 627 628 get upload_id() { 629 return get(upload_id); 630 }, 631 632 get stream_handler() { 633 return stream_handler(); 634 }, 635 636 get files() { 637 return get(files); 638 } 639 }); 640 }; 641 642 var alternate_1 = ($$anchor) => { 643 var fragment_7 = comment(); 644 var node_9 = first_child(fragment_7); 645 646 { 647 var consequent_4 = ($$anchor) => { 648 Webcam($$anchor, { 649 get root() { 650 return root(); 651 }, 652 653 get value() { 654 return value(); 655 }, 656 657 get stream_state() { 658 return stream_state(); 659 }, 660 661 get mirror_webcam() { 662 return ( 663 deep_read_state(webcam_options()), 664 untrack(() => webcam_options().mirror) 665 ); 666 }, 667 668 get stream_every() { 669 return stream_every(); 670 }, 671 672 get streaming() { 673 return streaming(); 674 }, 675 mode: 'image', 676 include_audio: false, 677 get i18n() { 678 return i18n(); 679 }, 680 681 get upload() { 682 return upload(); 683 }, 684 685 get time_limit() { 686 return time_limit(); 687 }, 688 689 get webcam_constraints() { 690 return ( 691 deep_read_state(webcam_options()), 692 untrack(() => webcam_options().constraints) 693 ); 694 }, 695 696 $$events: { 697 capture: (e) => handle_save(e.detail, "change"), 698 stream: (e) => handle_save(e.detail, "stream"), 699 error($$arg) { 700 bubble_event.call(this, $$props, $$arg); 701 }, 702 703 drag($$arg) { 704 bubble_event.call(this, $$props, $$arg); 705 }, 706 upload: (e) => handle_save(e.detail, "upload"), 707 close_stream($$arg) { 708 bubble_event.call(this, $$props, $$arg); 709 } 710 } 711 }); 712 }; 713 714 var alternate = ($$anchor) => { 715 var fragment_9 = comment();
716 var node_10 = first_child(fragment_9); 717 718 { 719 var consequent_5 = ($$anchor) => { 720 var div_2 = root_11(); 721 let classes_1; 722 var node_11 = child(div_2); 723 724 { 725 let $0 = derived_safe_equal(() => ( 726 deep_read_state(value()), 727 untrack(() => ({ alt: value().alt_text })) 728 )); 729 730 Image$1(node_11, { 731 get src() { 732 return (deep_read_state(value()), untrack(() => value().url)); 733 }, 734 735 get restProps() { 736 return get($0); 737 } 738 }); 739 } 740 741 reset(div_2); 742 template_effect(() => classes_1 = set_class(div_2, 1, 'image-frame svelte-6uxbr3', null, classes_1, { selectable: selectable() })); 743 event('click', div_2, handle_click); 744 append($$anchor, div_2); 745 }; 746 747 if_block( 748 node_10, 749 ($$render) => { 750 if (value() !== null && !streaming()) $$render(consequent_5); 751 }, 752 true 753 ); 754 } 755 756 append($$anchor, fragment_9); 757 }; 758 759 if_block( 760 node_9, 761 ($$render) => { 762 if (active_source() === "webcam" && (streaming() || !streaming() && !value())) $$render(consequent_4); else $$render(alternate, false); 763 }, 764 true 765 ); 766 } 767 768 append($$anchor, fragment_7); 769 }; 770 771 if_block(node_8, ($$render) => { 772 if (active_source() === "webcam" && !streaming() && pending()) $$render(consequent_3); else $$render(alternate_1, false); 773 }); 774 } 775 776 reset(div_1); 777 778 var node_12 = sibling(div_1, 2); 779 780 { 781 var consequent_6 = ($$anchor) => { 782 SelectSource($$anchor, { 783 get sources() { 784 return sources(); 785 }, 786 handle_clear, 787 handle_select: handle_select_source, 788 get active_source() { 789 return active_source(); 790 }, 791 792 set active_source($$value) { 793 active_source($$value); 794 }, 795 $$legacy: true 796 }); 797 }; 798 799 if_block(node_12, ($$render) => { 800 if (( 801 deep_read_state(sources()), 802 untrack(() => sources().length > 1 || sources().includes("clipboard")) 803 )) $$render(consequent_6); 804 }); 805 } 806 807 reset(div); 808 bind_this(div, ($$value) => set(image_container, $$value), () => get(image_container)); 809 810 template_effect(() => { 811 classes = set_class(div_1, 1, 'upload-container svelte-6uxbr3', null, classes, { 'reduced-height': sources().length > 1 }); 812 styles = set_style(div_1, '', styles, { width: value() ? "auto" : "100%" }); 813 }); 814 815 event('dragover', div_1, on_drag_over); 816 event('drop', div_1, on_drop); 817 append($$anchor, fragment); 818 819 return pop($$exports); 820} 821 822var root_2 = from_html(`<!> <!>`, 1); 823var root_4 = from_html(`<!> <!>`, 1); 824 825function Index($$anchor, $$props) { 826 push($$props, true); 827 828 let stream_data = { value: null }; 829 let upload_promise = state(void 0); 830 831 class ImageGradio extends Gradio { 832 async get_data() { 833 if (get(upload_promise)) { 834 await get(upload_promise); 835 await tick(); 836 } 837 838 const data = await super.get_data(); 839 840 if ($$props.props.streaming) { 841 data.value = stream_data.value; 842 } 843 844 return data; 845 } 846 } 847 848 const props = rest_props($$props, ['$$slots', '$$events', '$$legacy']); 849 const gradio = new ImageGradio(props); 850 let fullscreen = state(false); 851 let dragging = state(false); 852 let active_source = user_derived(() => gradio.props.sources ? gradio.props.sources[0] : null); 853 let upload_component; 854 855 const handle_drag_event = (event) => { 856 const drag_event = event; 857 858 drag_event.preventDefault(); 859 drag_event.stopPropagation(); 860 861 if (drag_event.type === "dragenter" || drag_event.type === "dragover") { 862 set(dragging, true); 863 } else if (drag_event.type === "dragleave") { 864 set(dragging, false); 865 } 866 }; 867 868 const handle_drop = (event) => { 869 if (gradio.shared.interactive) { 870 const drop_event = event; 871 872 drop_event.preventDefault(); 873 drop_event.stopPropagation(); 874 set(dragging, false); 875 876 if (upload_component) { 877 upload_component.loadFilesFromDrop(drop_event); 878 } 879 } 880 }; 881 882 let old_value = gradio.props.value; 883 let mounted = false; 884 885 user_effect(() => { 886 if (!mounted) { 887 old_value = gradio.props.value; 888 mounted = true; 889 890 return; 891 } 892 893 if (old_value !== gradio.props.value) { 894 old_value = gradio.props.value; 895 gradio.dispatch("change"); 896 } 897 }); 898 899 let status = user_derived(() => gradio?.shared?.loading_status.stream_state); 900 var fragment = comment(); 901 var node = first_child(fragment); 902 903 { 904 var consequent = ($$anchor) => { 905 { 906 let $0 = user_derived(() => get(dragging) ? "focus" : "base"); 907 let $1 = user_derived(() => gradio.props.height || undefined); 908 909 Block($$anchor, { 910 get visible() { 911 return gradio.shared.visible; 912 }, 913 variant: "solid", 914 get border_mode() { 915 return get($0); 916 }, 917 padding: false, 918 get elem_id() { 919 return gradio.shared.elem_id; 920 }, 921 922 get elem_classes() { 923 return gradio.shared.elem_classes; 924 }, 925 926 get height() { 927 return get($1); 928 }, 929 930 get width() { 931 return gradio.props.width; 932 }, 933 allow_overflow: false, 934 get container() { 935 return gradio.shared.container; 936 }, 937 'scale{gradio.shared.scale}': true, 938 get min_width() { 939 return gradio.shared.min_width; 940 }, 941 942 get fullscreen() { 943 return get(fullscreen); 944 }, 945 946 set fullscreen($$value) { 947 set(fullscreen, $$value, true); 948 }, 949 950 children: ($$anchor, $$slotProps) => { 951 var fragment_2 = root_2();
952 var node_1 = first_child(fragment_2); 953 954 Static(node_1, spread_props( 955 { 956 get autoscroll() { 957 return gradio.shared.autoscroll; 958 }, 959 960 get i18n() { 961 return gradio.i18n; 962 } 963 }, 964 () => gradio.shared.loading_status, 965 { 966 on_clear_status: () => gradio.dispatch("clear_status", gradio.shared.loading_status) 967 } 968 )); 969 970 var node_2 = sibling(node_1, 2); 971 972 ImagePreview(node_2, { 973 get fullscreen() { 974 return get(fullscreen); 975 }, 976 977 get value() { 978 return gradio.props.value; 979 }, 980 981 get label() { 982 return gradio.shared.label; 983 }, 984 985 get show_label() { 986 return gradio.shared.show_label; 987 }, 988 989 get selectable() { 990 return gradio.props._selectable; 991 }, 992 993 get i18n() { 994 return gradio.i18n; 995 }, 996 997 get buttons() { 998 return gradio.props.buttons; 999 }, 1000 1001 on_custom_button_click: (id) => { 1002 gradio.dispatch("custom_button_click", { id }); 1003 }, 1004 1005 $$events: { 1006 select: ({ detail }) => gradio.dispatch("select", detail), 1007 share: ({ detail }) => gradio.dispatch("share", detail), 1008 error: ({ detail }) => gradio.dispatch("error", detail), 1009 fullscreen: ({ detail }) => { 1010 set(fullscreen, detail, true); 1011 } 1012 } 1013 }); 1014 1015 append($$anchor, fragment_2); 1016 }, 1017 $$slots: { default: true } 1018 }); 1019 } 1020 }; 1021 1022 var alternate_2 = ($$anchor) => { 1023 { 1024 let $0 = user_derived(() => gradio.props.value === null ? "dashed" : "solid"); 1025 let $1 = user_derived(() => get(dragging) ? "focus" : "base"); 1026 let $2 = user_derived(() => gradio.props.height || undefined); 1027 1028 Block($$anchor, { 1029 get visible() { 1030 return gradio.shared.visible; 1031 }, 1032 1033 get variant() { 1034 return get($0); 1035 }, 1036 1037 get border_mode() { 1038 return get($1); 1039 }, 1040 padding: false, 1041 get elem_id() { 1042 return gradio.shared.elem_id; 1043 }, 1044 1045 get elem_classes() { 1046 return gradio.shared.elem_classes; 1047 }, 1048 1049 get height() { 1050 return get($2); 1051 }, 1052 1053 get width() { 1054 return gradio.props.width; 1055 }, 1056 allow_overflow: false, 1057 get container() { 1058 return gradio.shared.container; 1059 }, 1060 1061 get scale() { 1062 return gradio.shared.scale; 1063 }, 1064 1065 get min_width() { 1066 return gradio.shared.min_width; 1067 }, 1068 1069 get fullscreen() { 1070 return get(fullscreen); 1071 }, 1072 1073 set fullscreen($$value) { 1074 set(fullscreen, $$value, true); 1075 }, 1076 1077 $$events: { 1078 dragenter: handle_drag_event, 1079 dragleave: handle_drag_event, 1080 dragover: handle_drag_event, 1081 drop: handle_drop 1082 }, 1083 1084 children: ($$anchor, $$slotProps) => { 1085 var fragment_4 = root_4(); 1086 var node_3 = first_child(fragment_4); 1087 1088 { 1089 var consequent_1 = ($$anchor) => { 1090 Static($$anchor, spread_props( 1091 { 1092 get autoscroll() { 1093 return gradio.shared.autoscroll; 1094 }, 1095 1096 get i18n() { 1097 return gradio.i18n; 1098 } 1099 }, 1100 () => gradio.shared.loading_status, 1101 { 1102 on_clear_status: () => gradio.dispatch("clear_status", gradio.shared.loading_status) 1103 } 1104 )); 1105 }; 1106 1107 if_block(node_3, ($$render) => { 1108 if (gradio.shared.loading_status.type === "output") $$render(consequent_1); 1109 }); 1110 } 1111 1112 var node_4 = sibling(node_3, 2); 1113 1114 { 1115 let $0 = user_derived(() => gradio.props.buttons === null 1116 ? true 1117 : gradio.props.buttons.some((btn) => typeof btn === "string" && btn === "fullscreen")); 1118 1119 let $1 = user_derived(() => gradio.shared.loading_status?.status === "pending" || gradio.shared.loading_status?.status === "streaming"); 1120 let $2 = user_derived(() => gradio.shared.loading_status?.time_limit); 1121 let $3 = user_derived(() => gradio.shared.client?.stream); 1122 1123 bind_this( 1124 ImageUploader(node_4, { 1125 get selectable() { 1126 return gradio.props._selectable; 1127 }, 1128 1129 get root() { 1130 return gradio.shared.root; 1131 }, 1132 1133 get sources() { 1134 return gradio.props.sources; 1135 }, 1136 1137 get fullscreen() { 1138 return get(fullscreen); 1139 }, 1140 1141 get show_fullscreen_button() { 1142 return get($0); 1143 }, 1144
1145 onerror: (detail) => { 1146 gradio.shared.loading_status.status = "error"; 1147 gradio.dispatch("error", detail); 1148 }, 1149 1150 get label() { 1151 return gradio.shared.label; 1152 }, 1153 1154 get show_label() { 1155 return gradio.shared.show_label; 1156 }, 1157 1158 get pending() { 1159 return get($1); 1160 }, 1161 1162 get streaming() { 1163 return gradio.props.streaming; 1164 }, 1165 1166 get webcam_options() { 1167 return gradio.props.webcam_options; 1168 }, 1169 1170 get stream_every() { 1171 return gradio.props.stream_every; 1172 }, 1173 1174 get time_limit() { 1175 return get($2); 1176 }, 1177 1178 get max_file_size() { 1179 return gradio.shared.max_file_size; 1180 }, 1181 1182 get i18n() { 1183 return gradio.i18n; 1184 }, 1185 upload: (...args) => gradio.shared.client.upload(...args), 1186 get stream_handler() { 1187 return get($3); 1188 }, 1189 1190 get stream_state() { 1191 return get(status); 1192 }, 1193 1194 get upload_promise() { 1195 return get(upload_promise); 1196 }, 1197 1198 set upload_promise($$value) { 1199 set(upload_promise, $$value, true); 1200 }, 1201 1202 get active_source() { 1203 return get(active_source); 1204 }, 1205 1206 set active_source($$value) { 1207 set(active_source, $$value); 1208 }, 1209 1210 get value() { 1211 return gradio.props.value; 1212 }, 1213 1214 set value($$value) { 1215 gradio.props.value = $$value; 1216 }, 1217 1218 get dragging() { 1219 return get(dragging); 1220 }, 1221 1222 set dragging($$value) { 1223 set(dragging, $$value, true); 1224 }, 1225 1226 $$events: { 1227 edit: () => gradio.dispatch("edit"), 1228 clear: () => { 1229 set(fullscreen, false); 1230 gradio.dispatch("clear"); 1231 gradio.dispatch("input"); 1232 }, 1233 1234 stream: ({ detail }) => { 1235 stream_data = detail; 1236 gradio.dispatch("stream", detail); 1237 }, 1238 drag: ({ detail }) => set(dragging, detail, true), 1239 upload: () => { 1240 gradio.dispatch("upload"); 1241 gradio.dispatch("input"); 1242 }, 1243 select: ({ detail }) => gradio.dispatch("select", detail), 1244 share: ({ detail }) => gradio.dispatch("share", detail), 1245 close_stream: () => { 1246 gradio.dispatch("close_stream"); 1247 }, 1248 1249 fullscreen: ({ detail }) => { 1250 set(fullscreen, detail, true); 1251 } 1252 }, 1253 1254 children: ($$anchor, $$slotProps) => { 1255 var fragment_6 = comment(); 1256 var node_5 = first_child(fragment_6); 1257 1258 { 1259 var consequent_2 = ($$anchor) => { 1260 UploadText($$anchor, { 1261 get i18n() { 1262 return gradio.i18n; 1263 }, 1264 type: 'image', 1265 get placeholder() { 1266 return gradio.props.placeholder; 1267 } 1268 }); 1269 }; 1270 1271 var alternate_1 = ($$anchor) => { 1272 var fragment_8 = comment(); 1273 var node_6 = first_child(fragment_8); 1274 1275 { 1276 var consequent_3 = ($$anchor) => { 1277 UploadText($$anchor, { 1278 get i18n() { 1279 return gradio.i18n; 1280 }, 1281 type: 'clipboard', 1282 mode: 'short' 1283 }); 1284 }; 1285 1286 var alternate = ($$anchor) => { 1287 Empty($$anchor, { 1288 unpadded_box: true, 1289 size: 'large', 1290 children: ($$anchor, $$slotProps) => { 1291 Image($$anchor); 1292 }, 1293 $$slots: { default: true } 1294 }); 1295 }; 1296 1297 if_block( 1298 node_6, 1299 ($$render) => { 1300 if (get(active_source) === "clipboard") $$render(consequent_3); else $$render(alternate, false); 1301 }, 1302 true 1303 ); 1304 } 1305 1306 append($$anchor, fragment_8); 1307 }; 1308 1309 if_block(node_5, ($$render) => { 1310 if (get(active_source) === "upload" || !get(active_source)) $$render(consequent_2); else $$render(alternate_1, false); 1311 }); 1312 } 1313 1314 append($$anchor, fragment_6); 1315 }, 1316 $$slots: { default: true } 1317 }), 1318 ($$value) => upload_component = $$value, 1319 () => upload_component 1320 ); 1321 } 1322 1323 append($$anchor, fragment_4); 1324 }, 1325 $$slots: { default: true } 1326 }); 1327 } 1328 }; 1329 1330 if_block(node, ($$render) => { 1331 if (!gradio.shared.interactive) $$render(consequent); else $$render(alternate_2, false); 1332 }); 1333 } 1334 1335 append($$anchor, fragment); 1336 pop(); 1337} 1338 1339export { Image$1 as BaseImage, ImageUploader as BaseImageUploader, ImagePreview as BaseStaticImage, Webcam, Index as default }; 1340//# sourceMappingURL=Index-ClljYZ7y.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.