1import{d as Z,u as ee,r as b,E as te,p as A,A as oe,c as p,o as m,b as n,a as s,w as f,t as l,e,ar as L,h as se,j as y,F as R,i as _,f as w,ac as j,aq as B,J as V,G as ie}from"./app-RsKea8o5.js";import{_ as u}from"./HugeiconsIcon.vue_vue_type_script_setup_true_lang-D36_Is65.js";import{_ as q}from"./index-BmOTFpO0.js";import{_ as S}from"./index-Djm_wzqU.js";import{u as re,f as x,T as ne,_ as ae,p as z}from"./useVideoTrimmer-DTJZy5nh.js";import{_ as le}from"./LandingLayout.vue_vue_type_script_setup_true_lang-0zOGT4pF.js";import{u as me,_ as de,a as ue,b as ce,c as pe,d as fe,e as _e,f as ve}from"./ToolUpgradeModal.vue_vue_type_script_setup_true_lang-DDZThVnh.js";import{_ as ge}from"./FileDropZone.vue_vue_type_script_setup_true_lang-YVKfwl1W.js";import{W as be,_ as xe}from"./ProcessingProgress.vue_vue_type_script_setup_true_lang-BYmL7o5J.js";import{_ as he}from"./HowItWorksSection.vue_vue_type_script_setup_true_lang-BfsTQhwS.js";import{_ as ye}from"./CanonicalLink.vue_vue_type_script_setup_true_lang-BeYc7yu1.js";import{S as we}from"./Shield01Icon-CKvIlKQn.js";import{F as ke}from"./FlashIcon-CqVHkz1P.js";import{L as D}from"./LockIcon-DHdaZzKS.js";import{F as Te}from"./FileVideoIcon-CctcsyeR.js";import{C as Ce}from"./Cancel01Icon-DGojgfc9.js";import{C as qe}from"./Clock01Icon-CC13fDrI.js";import{P as $e}from"./PauseIcon-C97MJQFj.js";import{P as Ie}from"./PlayIcon-eNaA-8sj.js";import{A as Le}from"./ArrowRight01Icon-D04wg_Dq.js";import{L as Se}from"./Loading03Icon-CHeztXX0.js";import{S as Ee}from"./AppNavbar.vue_vue_type_script_setup_true_lang-CTOJA9U3.js";import{C as Fe}from"./CheckmarkCircle02Icon-D-PTcbNP.js";import{A as Ue}from"./ArrowDataTransferHorizontalIcon-CRPQqiN_.js";import{D as Me}from"./Download01Icon-DWP7rFug.js";import"./utils-Cq45lf33.js";import"./RovingFocusGroup-D3QouwLK.js";import"./useForwardExpose-DXi0eF_E.js";import"./clamp-BstbYvQo.js";import"./useFormControl-BRvJDsT8.js";import"./VisuallyHiddenInput-CdGkIGTW.js";import"./VisuallyHidden-Gnp4jwIA.js";import"./DropdownMenuTrigger.vue_vue_type_script_setup_true_lang-DqLmnnaC.js";import"./Teleport-CpnQCY9y.js";import"./index-B_siYGUE.js";import"./LandingFooter.vue_vue_type_script_setup_true_lang-DmJkehx-.js";import"./AppLogoIcon.vue_vue_type_script_setup_true_lang-Cgx8zpHc.js";import"./useLocaleSwitcher-DjLXDJUg.js";import"./Tick01Icon-CMS0_aRT.js";import"./Sonner.vue_vue_type_style_index_0_lang-VAYwp5ry.js";import"./useFlashToasts-50RPs8wm.js";import"./useAnalytics-Bxkp3130.js";import"./useBrowserDetect-U22uqA7C.js";import"./DialogTitle.vue_vue_type_script_setup_true_lang-Dp74P03s.js";import"./DialogDescription-DZJI7Kf4.js";import"./DialogTitle-CmvgSLDH.js";import"./TabsTrigger.vue_vue_type_script_setup_true_lang-CEuQ2lZj.js";import"./RovingFocusItem-OppQ6H3F.js";import"./TabsContent.vue_vue_type_script_setup_true_lang-D9VN7BO2.js";import"./Input.vue_vue_type_script_setup_true_lang-D1HhNgzQ.js";import"./index-Z30Umu-o.js";import"./Label.vue_vue_type_script_setup_true_lang-CySY6CII.js";import"./index-ww_ZSx8X.js";import"./AlertCircleIcon-B85MyTNx.js";import"./InformationCircleIcon-CUKxAkIj.js";import"./Alert01Icon-fSMjLWdw.js";import"./CrownIcon-CLp08jGR.js";import"./DialogFooter.vue_vue_type_script_setup_true_lang-BSky3GSp.js";import"./Upload01Icon-C5fhFoE5.js";import"./Progress.vue_vue_type_script_setup_true_lang-D7UVyZyZ.js";import"./isValueEqualOrExist-BirkS3uf.js";import"./ohash.D__AXeF1-C-E83dC9.js";import"./CollapsibleTrigger-BkolMn4l.js";import"./ArrowDown01Icon-DJ3rel_9.js";import"./DialogTrigger-Cd5Ui6Ea.js";import"./index-vmwrf4-U.js";import"./Mail01Icon-BnQa5Zt3.js";import"./NewsIcon-CRzk0O48.js";import"./WorkHistoryIcon-DyTXomyg.js";import"./PlayCircleIcon-BtdLi83T.js";const Pe=["content"],Ae=["content"],Re=["content"],je=["content"],Be=["content"],Ve=["content"],ze={id:"trimmer",class:"border-b py-16 lg:py-24"},De={class:"container mx-auto px-4 sm:px-6 lg:px-8"},Ne={class:"mx-auto max-w-3xl"},Oe={key:0,class:"flex h-80 items-center justify-center rounded-2xl border border-dashed border-border/50 bg-muted/20"},Ke={class:"text-muted-foreground"},Ge={key:1,class:"space-y-6"}
1,He={class:"flex items-center gap-4 rounded-xl border bg-card p-4"},We={class:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-orange-500/10"},Je={class:"min-w-0 flex-1"},Qe={class:"truncate text-sm font-semibold text-foreground"},Xe={class:"flex items-center gap-2 text-xs text-muted-foreground"},Ye={class:"overflow-hidden rounded-xl border bg-black"},Ze={key:0,class:"space-y-4"},et={class:"space-y-3"},tt={class:"flex items-center justify-between"},ot={class:"text-sm font-medium text-foreground"},st={class:"flex items-center gap-3"},it={class:"sr-only"},rt={class:"flex items-center gap-3"},nt={class:"flex-1"},at={class:"mb-1 block text-xs text-muted-foreground"},lt={class:"flex-1"},mt={class:"mb-1 block text-xs text-muted-foreground"},dt={key:0,class:"flex items-center justify-between rounded-lg border bg-muted/30 px-4 py-3"},ut={class:"text-sm text-muted-foreground"},ct={class:"text-sm font-semibold text-foreground"},pt={key:1,class:"flex flex-col items-center gap-3 rounded-xl border bg-muted/30 px-8 py-10"},ft={class:"text-sm font-medium text-foreground"},_t={class:"text-xs text-muted-foreground"},vt={key:4,class:"space-y-4 rounded-xl border border-orange-200/50 bg-orange-50/50 p-5 dark:border-orange-800/30 dark:bg-orange-900/10"},gt={class:"flex items-center gap-3"},bt={class:"text-sm font-semibold text-foreground"},xt={class:"flex items-center gap-3 text-sm text-muted-foreground"},ht={class:"font-medium text-foreground"},yt={class:"flex gap-3"},wt={key:5,class:"rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm text-destructive"},kt={class:"flex items-center justify-center gap-2 text-xs text-muted-foreground"},Do=Z({layout:le,__name:"Trim",setup(Tt){const{__:o}=ee(),E=b(!1);te(()=>{E.value=!0});const t=re(),d=me("trim");A(()=>t.isComplete.value,i=>{i&&d.recordUsage()});const c=b(null),k=b(null),T=b(!1),v=b(""),g=b(""),N=async i=>{i[0]&&await O(i[0])};async function O(i){if(!t.selectFile(i))return;I(),k.value=URL.createObjectURL(i),await ie();const a=c.value;if(!a)return;a.src=k.value;const h=()=>{t.setDuration(a.duration),v.value=x(0),g.value=x(a.duration),G(a)};a.duration&&Number.isFinite(a.duration)?h():a.addEventListener("loadedmetadata",h,{once:!0}),a.addEventListener("play",()=>{T.value=!0}),a.addEventListener("pause",()=>{T.value=!1})}function K(){const i=c.value;i&&(i.paused?(i.currentTime>=t.endTime.value&&(i.currentTime=t.startTime.value),i.play()):i.pause())}let C=null;function G(i){$(),C=()=>{t.isTrimming.value||t.isComplete.value||i.currentTime>=t.endTime.value&&(i.currentTime=t.startTime.value)},i.addEventListener("timeupdate",C)}function $(){C&&c.value&&c.value.removeEventListener("timeupdate",C),C=null}function I(){k.value&&(URL.revokeObjectURL(k.value),k.value=null)}oe(()=>{$(),I()});const F=b([0,0]);A([()=>t.startTime.value,()=>t.endTime.value],([i,r])=>{F.value=[i,r],v.value=x(i),g.value=x(r)});function H(i){if(!i||i.length<2)return;const r=t.startTime.value,a=t.endTime.value;t.setStartTime(i[0]),t.setEndTime(i[1]);const h=c.value;if(h){const X=Math.abs(i[0]-r)>.01,Y=Math.abs(i[1]-a)>.01;X?h.currentTime=t.startTime.value:Y&&(h.currentTime=t.endTime.value)}}function U(){const i=z(v.value);i!==null&&(t.setStartTime(i),c.value&&(c.value.currentTime=t.startTime.value)),v.value=x(t.startTime.value)}function M(){const i=z(g.value);i!==null&&(t.setEndTime(i),c.value&&(c.value.currentTime=t.endTime.value)),g.value=x(t.endTime.value)}function P(){$();const i=c.value;i&&(i.pause(),i.removeAttribute("src"),i.load()),T.value=!1,I(),t.reset(),v.value="",g.value=""}const W=[{num:"01",title:o("tools.trim.step.s1_title"),description:o("tools.trim.step.s1_desc")},{num:"02",title:o("tools.trim.step.s2_title"),description:o("tools.trim.step.s2_desc")},{num:"03",title:o("tools.trim.step.s3_title"),description:o("tools.trim.step.s3_desc")}],J=[{icon:we,title:o("tools.shared.benefit.no_upload_title"),description:o("tools.trim.benefit.no_upload_desc")},{icon:ke,title:o("tools.trim.benefit.instant_title"),description:o("tools.trim.benefit.instant_desc")},{icon:D,title:o("tools.shared.benefit.private_title"),description:o("tools.trim.benefit.private_desc")}
1,{icon:be,title:o("tools.trim.benefit.lossless_title"),description:o("tools.trim.benefit.lossless_desc")}],Q=[{question:o("tools.trim.faq.q1"),answer:o("tools.trim.faq.a1")},{question:o("tools.trim.faq.q2"),answer:o("tools.trim.faq.a2")},{question:o("tools.trim.faq.q3"),answer:o("tools.trim.faq.a3")},{question:o("tools.trim.faq.q4"),answer:o("tools.trim.faq.a4")},{question:o("tools.trim.faq.q5"),answer:o("tools.trim.faq.a5")},{question:o("tools.trim.faq.q6"),answer:o("tools.trim.faq.a6")}];return(i,r)=>(m(),p(R,null,[n(e(se),null,{default:f(()=>[s("title",null,` 2 `+l(e(o)("tools.trim.meta.title",{app_name:e(L)}))+` 3 `,1),s("meta",{name:"description",content:e(o)("tools.trim.meta.description")},null,8,Pe),s("meta",{name:"keywords",content:e(o)("tools.trim.meta.keywords")},null,8,Ae),r[10]||(r[10]=s("meta",{property:"og:type",content:"website"},null,-1)),r[11]||(r[11]=s("meta",{property:"og:url",content:"https://vidow.io/tools/trim"},null,-1)),s("meta",{property:"og:title",content:e(o)("tools.trim.meta.og_title",{app_name:e(L)})},null,8,Re),s("meta",{property:"og:description",content:e(o)("tools.trim.meta.og_description")},null,8,je),r[12]||(r[12]=s("meta",{property:"og:image",content:"https://vidow.io/images/og-trimmer.png"},null,-1)),r[13]||(r[13]=s("meta",{property:"twitter:card",content:"summary_large_image"},null,-1)),r[14]||(r[14]=s("meta",{property:"twitter:url",content:"https://vidow.io/tools/trim"},null,-1)),s("meta",{property:"twitter:title",content:e(o)("tools.trim.meta.twitter_title",{app_name:e(L)})},null,8,Be),s("meta",{property:"twitter:description",content:e(o)("tools.trim.meta.twitter_description")},null,8,Ve),r[15]||(r[15]=s("meta",{property:"twitter:image",content:"https://vidow.io/images/og-trimmer.png"},null,-1))]),_:1}),n(ye),n(de,{title:e(o)("tools.trim.hero.title"),subtitle:e(o)("tools.trim.hero.subtitle"),"badge-class":"border-orange-200/50 bg-orange-100 text-orange-700 dark:border-orange-800/30 dark:bg-orange-900/30 dark:text-orange-300","anchor-id":"trimmer","anchor-label":e(o)("tools.trim.hero.anchor_label")},null,8,["title","subtitle","anchor-label"]),s("section",ze,[s("div",De,[s("div",Ne,[n(ue,{remaining:e(d).remaining.value,limit:e(d).limit.value,"access-mode":e(d).accessMode.value,"trial-enabled":e(d).trialEnabled.value,tool:"trim"},null,8,["remaining","limit","access-mode","trial-enabled"]),E.value?(m(),p("div",Ge,[e(t).selectedFile.value?(m(),p(R,{key:1},[s("div",He,[s("div",We,[n(u,{icon:e(Te),class:"h-5 w-5 text-orange-600 dark:text-orange-400"},null,8,["icon"])]),s("div",Je,[s("p",Qe,l(e(t).selectedFile.value.name),1),s("div",Xe,[n(e(S),{variant:"secondary",class:"text-[10px] uppercase"},{default:f(()=>[w(l(e(t).inputFormat.value),1)]),_:1}),s("span",null,l(e(t).inputFileSize.value),1)])]),n(e(q),{variant:"ghost",size:"icon",class:"shrink-0",disabled:e(t).isTrimming.value||e(t).isLoading.value,onClick:r[0]||(r[0]=a=>P())},{default:f(()=>[n(u,{icon:e(Ce),class:"h-4 w-4"},null,8,["icon"])]),_:1},8,["disabled"])]),s("div",Ye,[s("video",{ref_key:"videoRef",ref:c,playsinline:"",class:"w-full"},null,512)]),!e(t).isTrimming.value&&!e(t).isLoading.value&&!e(t).isComplete.value&&e(t).duration.value>0?(m(),p("div",Ze,[s("div",et,[s("div",tt,[s("label",ot,l(e(o)("tools.trim.select_range_label")),1),n(e(S),{variant:"secondary",class:"text-xs"},{default:f(()=>[n(u,{icon:e(qe),class:"me-1 h-3 w-3"},null,8,["icon"]),w(" "+l(e(x)(e(t).trimDuration.value)),1)]),_:1})]),s("div",st,[s("button",{class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-full border bg-card text-foreground transition-colors hover:bg-muted",onClick:K},[T.value?(m(),y(u,{key:0,icon:e($e),class:"h-4 w-4"},null,8,["icon"])):(m(),y(u,{key:1,icon:e(Ie),class:"h-4 w-4 ms-0.5"},null,8,["icon"])),s("span",it,l(T.value?e(o)("tools.shared.pause"):e(o)("tools.shared.play")),1)]),n(e(ae),{"model-value":F.value,min:0,max:e(t).duration.value,step:.1,"min-steps-between-thumbs":1,class:"flex-1 py-2","onUpdate:modelValue":H},null,8,["model-value","max"])]),s("div",rt,[s("div",nt,[s("label",at,l(e(o)("tools.shared.start")),1),j(s("input",{"onUpdate:modelValue":r[1]||(r[1]=a=>v.value=a),type:"text",class:"w-full rounded-lg border bg-card px-3 py-2 text-center text-sm font-mono tabular-nums text-foreground focus:border-orange-500 focus:outline-none focus:ring-1 focus:ring-orange-500",placeholder:"0:00",onBlur:U,onKeydown:V(U,["enter"])},null,544),[[B,v.value]])]),n(u,{icon:e(Le),class:"mt-5 h-4 w-4 shrink-0 text-muted-foreground rtl:-scale-x-100"},null,8,["icon"]),s("div",lt,[s("label",mt,l(e(o)("tools.shared.end")),1),j(s("input",{"onUpdate:modelValue":r[2]||(r[2]=a=>g.value=a),type:"text",class:"w-full rounded-lg border bg-card px-3 py-2 text-center text-sm font-mono tabular-nums text-foreground focus:border-orange-500 focus:outline-none focus:ring-1 focus:ring-orange-500",placeholder:"0:00",onBlur:M,onKeydown:V(M,["enter"])},null,544),[[B,g.value]])])]),e(t).trimmedSizeEstimate.value?(m(),p("div",dt,[s("span",ut,l(e(o)("tools.trim.estimated_output_size")),1),s("span",ct,l(e(t).trimmedSizeEstimate.value),1)])):_("",!0)])])):_("",!0),e(t).isLoading.value?(m(),p("div",pt,[n(u,{icon:e(Se),class:"h-8 w-8 animate-spin text-orange-500"},null,8,["icon"]),s("p",ft,l(e(t).status.value),1),s("p",_t,l(e(o)("tools.shared.first_use_hint")),1)])):_("",!0),e(t).isTrimming.value?(m(),y(xe,{key:2,progress:e(t).progress.value,status:e(t).status.value,onCancel:r[3]||(r[3]=a=>e(t).cancelTrim())},null,8,["progress","status"])):_("",!0),!e(t).isTrimming.value&&!e(t).isLoading.value&&!e(t).isComplete.value?(m(),y(e(q),{key:3,class:"h-12 w-full text-base",disabled:!e(t).canTrim.value,onClick:r[4]||(r[4]=a=>e(d).checkAndProcess(()=>e(t).startTrim()))},{default:f(()=>[n(u,{icon:e(Ee),class:"me-2 h-4 w-4"}
3,null,8,["icon"]),w(" "+l(e(o)("tools.trim.trim_button")),1)]),_:1},8,["disabled"])):_("",!0),e(t).isComplete.value?(m(),p("div",vt,[s("div",gt,[n(u,{icon:e(Fe),class:"h-5 w-5 text-orange-600 dark:text-orange-400"},null,8,["icon"]),s("span",bt,l(e(o)("tools.trim.trim_complete")),1),e(t).reductionPercent.value!==null&&e(t).reductionPercent.value>0?(m(),y(e(S),{key:0,class:"border-orange-200 bg-orange-100 text-orange-700 dark:border-orange-800 dark:bg-orange-900/30 dark:text-orange-300"},{default:f(()=>[w(l(e(o)("tools.trim.reduction_badge",{percent:e(t).reductionPercent.value})),1)]),_:1})):_("",!0)]),s("div",xt,[s("span",null,l(e(t).inputFileSize.value),1),n(u,{icon:e(Ue),class:"h-3.5 w-3.5"},null,8,["icon"]),s("span",ht,l(e(t).outputFileSize.value),1)]),s("div",yt,[n(e(q),{class:"flex-1",onClick:r[5]||(r[5]=a=>e(t).downloadOutput())},{default:f(()=>[n(u,{icon:e(Me),class:"me-2 h-4 w-4"},null,8,["icon"]),w(" "+l(e(o)("tools.shared.download")),1)]),_:1}),n(e(q),{variant:"outline",onClick:r[6]||(r[6]=a=>P())},{default:f(()=>[w(l(e(o)("tools.trim.trim_another")),1)]),_:1})])])):_("",!0),e(t).error.value?(m(),p("div",wt,l(e(t).error.value),1)):_("",!0)],64)):(m(),y(ge,{key:0,accept:e(ne),subtitle:e(o)("tools.shared.browse_subtitle.mp4_webm_mkv_mov_ogg"),onFilesSelected:N},null,8,["accept","subtitle"])),s("div",kt,[n(u,{icon:e(D),class:"h-3 w-3"},null,8,["icon"]),s("span",null,l(e(o)("tools.shared.privacy_note")),1)])])):(m(),p("div",Oe,[s("p",Ke,l(e(o)("tools.trim.loading")),1)]))])])]),n(he,{steps:W}),n(ce,{title:e(o)("tools.trim.why.title"),subtitle:e(o)("tools.shared.why_in_browser_subtitle"),features:J},null,8,["title","subtitle"]),n(pe,{faqs:Q}),n(fe,{title:e(o)("tools.trim.cta.title"),description:e(o)("tools.trim.cta.description"),"primary-link":{label:e(o)("tools.trim.cta.primary_label"),href:"/tools/compress"},"secondary-link":{label:e(o)("tools.trim.cta.secondary_label"),href:"/tools/convert"}},null,8,["title","description","primary-link","secondary-link"]),n(_e,{open:e(d).showAuthModal.value,onClose:r[7]||(r[7]=a=>e(d).showAuthModal.value=!1),onAuthenticated:r[8]||(r[8]=a=>e(d).onAuthenticated())},null,8,["open"]),n(ve,{open:e(d).showUpgradeModal.value,"trial-enabled":e(d).trialEnabled.value,tool:"trim","access-mode":e(d).accessMode.value,onClose:r[9]||(r[9]=a=>e(d).showUpgradeModal.value=!1)},null,8,["open","trial-enabled","access-mode"])],64))}});export{Do as default};
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.