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