1import { p as prop, i as if_block, r as rest_props, g as spread_props } from './i18n-dpAHICcw.js'; 2import { R as push, y as user_effect, w as get, S as first_child, x as set, a as append, T as pop, a5 as user_derived, u as state, X as sibling, W as from_html, V as child, Y as reset, a6 as comment, t as template_effect, a0 as set_text, v as proxy, N as tick } from './index-CDZuCcOm.js'; 3import { k as key } from './key-BkIRB637.js'; 4import { s as snippet } from './snippet-DVkMfmSq.js'; 5import { U as Upload } from './Upload-BlCAnBIo.js'; 6import { V as Video, 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'; 9/* empty css */ 10/* empty css */ 11import { W as Webcam } from './Webcam-D1D2o0z2.js'; 12/* empty css */ 13import './StreamingBar.svelte_svelte_type_style_lang-BxBb9ZZb.js'; 14/* empty css */ 15import { p as prettyBytes } from './Video-BadoRrLY.js'; 16export { l as loaded, a as playable } from './Video-BadoRrLY.js'; 17import { P as Player, V as VideoPreview } from './VideoPreview-DqE2DF2X.js'; 18export { default as BaseExample } from './Example-8d4mpu3C.js'; 19import { B as Block } from './Block-DntE23uJ.js'; 20import { G as Gradio } from './utils.svelte-CyWLYi-B.js'; 21import { U as UploadText } from './UploadText-COnoIs3F.js'; 22import { S as Static } from './index-DyDpuTN9.js'; 23import './actions-BTh6ZJJ8.js'; 24import './prism-python-C_fanlsZ.js'; 25import './props-BwDqDG8n.js'; 26import './DropdownArrow-BRSpwupS.js'; 27import './Square-Bg2evxzG.js'; 28import './Spinner-CNWYfN22.js'; 29import './StreamingBar-BnG6Vbta.js'; 30import './html-h_YSgefI.js'; 31import './DownloadLink-CmpyjDGR.js'; 32import './Empty-617iGDfy.js'; 33import './ShareButton-c5E0ChlI.js'; 34import './Download-bn1Yc3QR.js'; 35import './IconButtonWrapper-KjCt2Pl8.js'; 36import './Maximize-CNFXHhlb.js'; 37import './VolumeLevels-B3gQy5XO.js'; 38import './Play-BtgJXiAa.js'; 39import './Undo-BTdg4xEQ.js'; 40import './ModifyUpload-iCnymq9K.js'; 41import './Clear-tvJMRS4J.js'; 42import './Edit-CGqSB1Ia.js'; 43import './clone-dZfS06Ds.js'; 44 45var root_2$1 = from_html(`<div class="upload-container svelte-ey25pz"><!></div>`); 46var root_12 = from_html(`<div class="file-name svelte-ey25pz"> </div> <div class="file-size svelte-ey25pz"> </div>`, 1); 47var root_1 = from_html(`<!> <div data-testid="video" class="video-container svelte-ey25pz"><!> <!></div>`, 1); 48 49function InteractiveVideo($$anchor, $$props) { 50 push($$props, true); 51 52 let value = prop($$props, 'value', 15, null), 53 subtitle = prop($$props, 'subtitle', 3, null), 54 sources = prop($$props, 'sources', 19, () => ["webcam", "upload"]), 55 label = prop($$props, 'label', 3, undefined), 56 show_download_button = prop($$props, 'show_download_button', 3, false), 57 show_label = prop($$props, 'show_label', 3, true), 58 initial_active_source = prop($$props, 'active_source', 3, "webcam"), 59 handle_reset_value = prop($$props, 'handle_reset_value', 3, () => {}), 60 max_file_size = prop($$props, 'max_file_size', 3, null), 61 uploading = prop($$props, 'uploading', 15), 62 upload_promise = prop($$props, 'upload_promise', 15), 63 playback_position = prop($$props, 'playback_position', 15); 64 prop($$props, 'buttons', 3, null); 65 prop($$props, 'on_custom_button_click', 3, null); 66 67 let has_change_history = state(false); 68 69 let active_source = user_derived(() => { 70 return initial_active_source() ?? "webcam"; 71 }); 72 73 function handle_load(detail) { 74 value(detail); 75 $$props.onchange?.(detail); 76 77 if (detail) { 78 $$props.onupload?.(detail); 79 } 80 } 81 82 function handle_clear() { 83 value(null); 84 $$props.onchange?.(null); 85 $$props.onclear?.(); 86 } 87 88 function handle_change(video) { 89 set(has_change_history, true); 90 $$props.onchange?.(video); 91 } 92 93 function handle_capture({ detail }) { 94 $$props.onchange?.(detail); 95 } 96 97 let dragging = state(false); 98 99 user_effect(() => { 100 $$props.ondrag?.(get(dragging)); 101 }); 102 103 var fragment = root_1(); 104 var node = first_child(fragment); 105 106 { 107 let $0 = user_derived(() => label() || "Video"); 108 109 BlockLabel(node, { 110 get show_label() { 111 return show_label(); 112 }, 113 114 get Icon() { 115 return Video; 116 }, 117 118 get label() { 119 return get($0); 120 } 121 }); 122 } 123 124 var div = sibling(node, 2);
125 var node_1 = child(div); 126 127 { 128 var consequent_3 = ($$anchor) => { 129 var div_1 = root_2$1(); 130 var node_2 = child(div_1); 131 132 { 133 var consequent_1 = ($$anchor) => { 134 { 135 let $0 = user_derived(() => $$props.i18n("video.drop_to_upload")); 136 137 Upload($$anchor, { 138 filetype: 'video/x-m4v,video/*', 139 onload: handle_load, 140 get max_file_size() { 141 return max_file_size(); 142 }, 143 onerror: (detail) => $$props.onerror?.(detail), 144 get root() { 145 return $$props.root; 146 }, 147 148 get upload() { 149 return $$props.upload; 150 }, 151 152 get stream_handler() { 153 return $$props.stream_handler; 154 }, 155 156 get aria_label() { 157 return get($0); 158 }, 159 160 get upload_promise() { 161 return upload_promise(); 162 }, 163 164 set upload_promise($$value) { 165 upload_promise($$value); 166 }, 167 168 get dragging() { 169 return get(dragging); 170 }, 171 172 set dragging($$value) { 173 set(dragging, $$value, true); 174 }, 175 176 get uploading() { 177 return uploading(); 178 }, 179 180 set uploading($$value) { 181 uploading($$value); 182 }, 183 184 children: ($$anchor, $$slotProps) => { 185 var fragment_2 = comment(); 186 var node_3 = first_child(fragment_2); 187 188 { 189 var consequent = ($$anchor) => { 190 var fragment_3 = comment(); 191 var node_4 = first_child(fragment_3); 192 193 snippet(node_4, () => $$props.children); 194 append($$anchor, fragment_3); 195 }; 196 197 if_block(node_3, ($$render) => { 198 if ($$props.children) $$render(consequent); 199 }); 200 } 201 202 append($$anchor, fragment_2); 203 }, 204 $$slots: { default: true } 205 }); 206 } 207 }; 208 209 var alternate = ($$anchor) => { 210 var fragment_4 = comment(); 211 var node_5 = first_child(fragment_4); 212 213 { 214 var consequent_2 = ($$anchor) => { 215 Webcam($$anchor, { 216 get root() { 217 return $$props.root; 218 }, 219 220 get mirror_webcam() { 221 return $$props.webcam_options.mirror; 222 }, 223 224 get webcam_constraints() { 225 return $$props.webcam_options.constraints; 226 }, 227 228 get include_audio() { 229 return $$props.include_audio; 230 }, 231 mode: 'video', 232 get i18n() { 233 return $$props.i18n; 234 }, 235 236 get upload() { 237 return $$props.upload; 238 }, 239 stream_every: 1, 240 $$events: { 241 error: ({ detail }) => $$props.onerror?.(detail), 242 capture: handle_capture, 243 start_recording: () => $$props.onstart_recording?.(), 244 stop_recording: () => $$props.onstop_recording?.() 245 } 246 }); 247 }; 248 249 if_block( 250 node_5, 251 ($$render) => { 252 if (get(active_source) === "webcam") $$render(consequent_2); 253 }, 254 true 255 ); 256 } 257 258 append($$anchor, fragment_4); 259 }; 260 261 if_block(node_2, ($$render) => { 262 if (get(active_source) === "upload") $$render(consequent_1); else $$render(alternate, false); 263 }); 264 } 265 266 reset(div_1); 267 append($$anchor, div_1); 268 }; 269 270 var alternate_2 = ($$anchor) => { 271 var fragment_6 = comment(); 272 var node_6 = first_child(fragment_6); 273 274 { 275 var consequent_4 = ($$anchor) => { 276 var fragment_7 = comment(); 277 var node_7 = first_child(fragment_7); 278 279 key(node_7, () => value()?.url, ($$anchor) => { 280 { 281 let $0 = user_derived(() => subtitle()?.url); 282 let $1 = user_derived(() => $$props.webcam_options.mirror && get(active_source) === "webcam"); 283 284 Player($$anchor, { 285 get upload() { 286 return $$props.upload; 287 }, 288 289 get root() { 290 return $$props.root; 291 }, 292 interactive: true, 293 get autoplay() { 294 return $$props.autoplay; 295 }, 296 297 get src() { 298 return value().url; 299 }, 300 301 get subtitle() { 302 return get($0); 303 }, 304 is_stream: false, 305 onplay: () => $$props.onplay?.(), 306 onpause: () => $$props.onpause?.(), 307 onstop: () => $$props.onstop?.(), 308 onend: () => $$props.onend?.(), 309 onerror: (error) => $$props.onerror?.(error), 310 get mirror() { 311 return get($1); 312 }, 313 314 get label() { 315 return label(); 316 }, 317 handle_change, 318 get handle_reset_value() { 319 return handle_reset_value(); 320 }, 321 322 get loop() { 323 return $$props.loop; 324 }, 325 326 get value() { 327 return value(); 328 }, 329 330 get i18n() { 331 return $$props.i18n; 332 }, 333 334 get show_download_button() { 335 return show_download_button(); 336 }, 337 handle_clear, 338 get has_change_history() { 339 return get(has_change_history); 340 }, 341 342 get playback_position() { 343 return playback_position(); 344 }, 345 346 set playback_position($$value) { 347 playback_position($$value); 348 } 349 }); 350 } 351 }); 352 353 append($$anchor, fragment_7); 354 }; 355 356 var alternate_1 = ($$anchor) => { 357 var fragment_9 = comment(); 358 var node_8 = first_child(fragment_9); 359 360 { 361 var consequent_5 = ($$anchor) => { 362 var fragment_10 = root_12(); 363 var div_2 = first_child(fragment_10); 364 var text = child(div_2, true); 365 366 reset(div_2); 367 368 var div_3 = sibling(div_2, 2); 369 var text_1 = child(div_3, true); 370 371 reset(div_3); 372 373 template_effect( 374 ($0) => {
375 set_text(text, value().orig_name || value().url); 376 set_text(text_1, $0); 377 }, 378 [() => prettyBytes(value().size)] 379 ); 380 381 append($$anchor, fragment_10); 382 }; 383 384 if_block( 385 node_8, 386 ($$render) => { 387 if (value().size) $$render(consequent_5); 388 }, 389 true 390 ); 391 } 392 393 append($$anchor, fragment_9); 394 }; 395 396 if_block( 397 node_6, 398 ($$render) => { 399 if (value()?.url) $$render(consequent_4); else $$render(alternate_1, false); 400 }, 401 true 402 ); 403 } 404 405 append($$anchor, fragment_6); 406 }; 407 408 if_block(node_1, ($$render) => { 409 if (value() === null || value()?.url === undefined) $$render(consequent_3); else $$render(alternate_2, false); 410 }); 411 } 412 413 var node_9 = sibling(node_1, 2); 414 415 SelectSource(node_9, { 416 get sources() { 417 return sources(); 418 }, 419 handle_clear, 420 get active_source() { 421 return get(active_source); 422 }, 423 424 set active_source($$value) { 425 set(active_source, $$value); 426 } 427 }); 428 429 reset(div); 430 append($$anchor, fragment); 431 pop(); 432} 433 434var root_2 = from_html(`<!> <!>`, 1); 435var root_4 = from_html(`<!> <!>`, 1); 436 437function Index($$anchor, $$props) { 438 push($$props, true); 439 440 const props = rest_props($$props, ['$$slots', '$$events', '$$legacy']); 441 let upload_promise = state(void 0); 442 443 class VideoGradio extends Gradio { 444 async get_data() { 445 if (get(upload_promise)) { 446 await get(upload_promise); 447 await tick(); 448 } 449 450 const data = await super.get_data(); 451 452 return data; 453 } 454 } 455 456 const gradio = new VideoGradio(props); 457 let old_value = state(proxy(gradio.props.value)); 458 let uploading = state(false); 459 let dragging = state(false); 460 let active_source = user_derived(() => gradio.props.sources ? gradio.props.sources[0] : undefined); 461 let initial_value = gradio.props.value; 462 463 user_effect(() => { 464 if (get(old_value) != gradio.props.value) { 465 set(old_value, gradio.props.value, true); 466 gradio.dispatch("change"); 467 } 468 }); 469 470 const handle_reset_value = () => { 471 if (initial_value === null || gradio.props.value === initial_value) { 472 return; 473 } 474 475 gradio.props.value = initial_value; 476 }; 477 478 function handle_change(detail) { 479 if (detail != null) { 480 gradio.props.value = detail; 481 } else { 482 gradio.props.value = null; 483 } 484 } 485 486 function handle_error(detail) { 487 const [level, status] = detail.includes("Invalid file type") ? ["warning", "complete"] : ["error", "error"]; 488 489 gradio.shared.loading_status.status = status; 490 gradio.shared.loading_status.message = detail; 491 gradio.dispatch(level, detail); 492 } 493 494 var fragment = comment(); 495 var node = first_child(fragment); 496 497 { 498 var consequent = ($$anchor) => { 499 { 500 let $0 = user_derived(() => gradio.props.value === null && get(active_source) === "upload" ? "dashed" : "solid"); 501 let $1 = user_derived(() => get(dragging) ? "focus" : "base"); 502 let $2 = user_derived(() => gradio.props.height || undefined); 503 504 Block($$anchor, { 505 get visible() { 506 return gradio.shared.visible; 507 }, 508 509 get variant() { 510 return get($0); 511 }, 512 513 get border_mode() { 514 return get($1); 515 }, 516 padding: false, 517 get elem_id() { 518 return gradio.shared.elem_id; 519 }, 520 521 get elem_classes() { 522 return gradio.shared.elem_classes; 523 }, 524 525 get height() { 526 return get($2); 527 }, 528 529 get width() { 530 return gradio.props.width; 531 }, 532 533 get container() { 534 return gradio.shared.container; 535 }, 536 537 get scale() { 538 return gradio.shared.scale; 539 }, 540 541 get min_width() { 542 return gradio.shared.min_width; 543 }, 544 allow_overflow: false, 545 children: ($$anchor, $$slotProps) => { 546 var fragment_2 = root_2();
547 var node_1 = first_child(fragment_2); 548 549 Static(node_1, spread_props( 550 { 551 get autoscroll() { 552 return gradio.shared.autoscroll; 553 }, 554 555 get i18n() { 556 return gradio.i18n; 557 } 558 }, 559 () => gradio.shared.loading_status, 560 { 561 on_clear_status: () => gradio.dispatch("clear_status", gradio.shared.loading_status) 562 } 563 )); 564 565 var node_2 = sibling(node_1, 2); 566 567 { 568 let $0 = user_derived(() => gradio.props.buttons ?? ["download", "share"]); 569 570 VideoPreview(node_2, { 571 get value() { 572 return gradio.props.value; 573 }, 574 575 get subtitle() { 576 return gradio.props.subtitles; 577 }, 578 579 get label() { 580 return gradio.shared.label; 581 }, 582 583 get show_label() { 584 return gradio.shared.show_label; 585 }, 586 587 get autoplay() { 588 return gradio.props.autoplay; 589 }, 590 591 get loop() { 592 return gradio.props.loop; 593 }, 594 595 get buttons() { 596 return get($0); 597 }, 598 599 on_custom_button_click: (id) => { 600 gradio.dispatch("custom_button_click", { id }); 601 }, 602 onplay: () => gradio.dispatch("play"), 603 onpause: () => gradio.dispatch("pause"), 604 onstop: () => gradio.dispatch("stop"), 605 onend: () => gradio.dispatch("end"), 606 onshare: (detail) => gradio.dispatch("share", detail), 607 onerror: (detail) => gradio.dispatch("error", detail), 608 get i18n() { 609 return gradio.i18n; 610 }, 611 upload: (...args) => gradio.shared.client.upload(...args), 612 get playback_position() { 613 return gradio.props.playback_position; 614 }, 615 616 set playback_position($$value) { 617 gradio.props.playback_position = $$value; 618 } 619 }); 620 } 621 622 append($$anchor, fragment_2); 623 }, 624 $$slots: { default: true } 625 }); 626 } 627 }; 628 629 var alternate = ($$anchor) => { 630 { 631 let $0 = user_derived(() => gradio.props.value === null && get(active_source) === "upload" ? "dashed" : "solid"); 632 let $1 = user_derived(() => get(dragging) ? "focus" : "base"); 633 let $2 = user_derived(() => gradio.props.height || undefined); 634 635 Block($$anchor, { 636 get visible() { 637 return gradio.shared.visible; 638 }, 639 640 get variant() { 641 return get($0); 642 }, 643 644 get border_mode() { 645 return get($1); 646 }, 647 padding: false, 648 get elem_id() { 649 return gradio.shared.elem_id; 650 }, 651 652 get elem_classes() { 653 return gradio.shared.elem_classes; 654 }, 655 656 get height() { 657 return get($2); 658 }, 659 660 get width() { 661 return gradio.props.width; 662 }, 663 664 get container() { 665 return gradio.shared.container; 666 }, 667 668 get scale() { 669 return gradio.shared.scale; 670 }, 671 672 get min_width() { 673 return gradio.shared.min_width; 674 }, 675 allow_overflow: false, 676 children: ($$anchor, $$slotProps) => { 677 var fragment_4 = root_4(); 678 var node_3 = first_child(fragment_4); 679 680 Static(node_3, spread_props( 681 { 682 get autoscroll() { 683 return gradio.shared.autoscroll; 684 }, 685 686 get i18n() { 687 return gradio.i18n; 688 } 689 }, 690 () => gradio.shared.loading_status, 691 { 692 on_clear_status: () => gradio.dispatch("clear_status", gradio.shared.loading_status) 693 } 694 )); 695 696 var node_4 = sibling(node_3, 2); 697 698 { 699 let $0 = user_derived(() => gradio.props.buttons ?? ["download", "share"]); 700 701 InteractiveVideo(node_4, { 702 get value() { 703 return gradio.props.value; 704 }, 705 706 get subtitle() { 707 return gradio.props.subtitles; 708 }, 709 onchange: handle_change, 710 ondrag: (detail) => set(dragging, detail, true), 711 onerror: handle_error, 712 get label() { 713 return gradio.shared.label; 714 }, 715 716 get show_label() { 717 return gradio.shared.show_label; 718 }, 719 720 get buttons() { 721 return get($0); 722 }, 723 724 on_custom_button_click: (id) => { 725 gradio.dispatch("custom_button_click", { id }); 726 }, 727 728 get sources() { 729 return gradio.props.sources; 730 }, 731 732 get active_source() { 733 return get(active_source); 734 }, 735 736 get webcam_options() { 737 return gradio.props.webcam_options; 738 }, 739 740 get include_audio() { 741 return gradio.props.include_audio; 742 }, 743 744 get autoplay() { 745 return gradio.props.autoplay; 746 }, 747 748 get root() { 749 return gradio.shared.root; 750 }, 751 752 get loop() { 753 return gradio.props.loop; 754 }, 755 handle_reset_value, 756 onclear: () => { 757 gradio.props.value = null; 758 gradio.dispatch("clear"); 759 gradio.dispatch("input"); 760 }, 761 onplay: () => gradio.dispatch("play"), 762 onpause: () => gradio.dispatch("pause"), 763 onupload: () => { 764 gradio.dispatch("upload"); 765 gradio.dispatch("input"); 766 }, 767 onstop: () => gradio.dispatch("stop"), 768 onend: () => gradio.dispatch("end"), 769 onstart_recording: () => gradio.dispatch("start_recording"), 770 onstop_recording: () => gradio.dispatch("stop_recording"), 771 get i18n() { 772 return gradio.i18n; 773 }, 774 775 get max_file_size() { 776 return gradio.shared.max_file_size; 777 }, 778 upload: (...args) => gradio.shared.client.upload(...args), 779 stream_handler: (...args) => gradio.shared.client.stream(...args), 780 get upload_promise() { 781 return get(upload_promise); 782 }, 783 784 set upload_promise($$value) { 785 set(upload_promise, $$value, true); 786 }, 787 788 get uploading() { 789 return get(uploading); 790 }, 791 792 set uploading($$value) { 793 set(uploading, $$value, true); 794 }, 795 796 get playback_position() { 797 return gradio.props.playback_position; 798 }, 799 800 set playback_position($$value) { 801 gradio.props.playback_position = $$value; 802 }, 803 804 children: ($$anchor, $$slotProps) => { 805 UploadText($$anchor, { 806 get i18n() { 807 return gradio.i18n; 808 }, 809 type: 'video' 810 }); 811 }, 812 $$slots: { default: true } 813 }); 814 } 815 816 append($$anchor, fragment_4); 817 }, 818 $$slots: { default: true } 819 }); 820 } 821 }; 822 823 if_block(node, ($$render) => { 824 if (!gradio.shared.interactive) $$render(consequent); else $$render(alternate, false); 825 }); 826 } 827 828 append($$anchor, fragment); 829 pop(); 830} 831 832export { InteractiveVideo as BaseInteractiveVideo, Player as BasePlayer, VideoPreview as BaseStaticVideo, Index as default, prettyBytes }; 833//# sourceMappingURL=index-2GKzOdaS.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.