@bylqwjc/media-editor-video 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{mountVideoEditor as
|
|
1
|
+
import{mountVideoEditor as _r}from"./legacy.js";import{FILTER_PRESETS as jr,buildFilterCss as Yr,evenize as Vt,outputSize as jo}from"@media-editor/core";import{fitStickerBox as Vr,getOverlayRotation as un,overlayBBox as Gt,scaleOverlay as Yo,translateOverlay as Vo}from"@media-editor/core/browser";import{VideoEditorEngine as Xr}from"@media-editor/core/engine";import{VideoEditorEngine as Ka}from"@media-editor/core/engine";const qn='-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif',Xo=["Arial","Segoe UI","Microsoft YaHei","Microsoft JhengHei","PingFang SC","Helvetica","Verdana","Tahoma","Trebuchet MS","Georgia","Times New Roman","Courier New","NSimSun","SimSun","SimHei","KaiTi","FangSong","Noto Sans SC"],qr={"Microsoft YaHei":"\u5FAE\u8F6F\u96C5\u9ED1","Microsoft JhengHei":"\u5FAE\u8F6F\u6B63\u9ED1\u4F53","PingFang SC":"\u82F9\u65B9",SimSun:"\u5B8B\u4F53",NSimSun:"\u65B0\u5B8B\u4F53",SimHei:"\u9ED1\u4F53",KaiTi:"\u6977\u4F53",FangSong:"\u4EFF\u5B8B","Noto Sans SC":"\u601D\u6E90\u9ED1\u4F53","Songti SC":"\u5B8B\u4F53-\u7B80","Heiti SC":"\u9ED1\u4F53-\u7B80","Kaiti SC":"\u6977\u4F53-\u7B80",STSong:"\u534E\u6587\u5B8B\u4F53",STHeiti:"\u534E\u6587\u9ED1\u4F53",STKaiti:"\u534E\u6587\u6977\u4F53",STFangsong:"\u534E\u6587\u4EFF\u5B8B",STZhongsong:"\u534E\u6587\u4E2D\u5B8B",YouYuan:"\u5E7C\u5706",LiSu:"\u96B6\u4E66"},Wr=["microsoft yahei","microsoft jhenghei","pingfang","simsun","nsimsun","simhei","kaiti","fangsong","noto sans sc","songti","heiti","stsong","stheiti","stkaiti","stfangsong","stzhongsong","youyuan","lisu"],qo={heading:{text:"Heading and some body",fontSize:120,width:600,fontWeight:"700",textAlign:"center",color:"#ffffff",backgroundColor:"transparent",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.35)",x:0,y:4,blur:18}},subtitle:{text:"Subtitle line",fontSize:72,width:560,fontWeight:"600",textAlign:"center",color:"#ffffff",backgroundColor:"transparent",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.28)",x:0,y:2,blur:12}},label:{text:"Label",fontSize:44,width:300,fontWeight:"700",textAlign:"center",color:"#ffffff",backgroundColor:"rgba(8,8,10,0.72)",borderColor:"#000000",borderWidth:0,boxShadow:{color:"rgba(0,0,0,0.18)",x:0,y:2,blur:8},paddingX:24,paddingY:16}},vo=[{key:"none",label:"Cut",short:"Cut",duration:0},{key:"fade",label:"Fade",short:"Fade",duration:.45},{key:"slide",label:"Slide",short:"Slide",duration:.45},{key:"wipe",label:"Wipe",short:"Wipe",duration:.45},{key:"flip",label:"Flip",short:"Flip",duration:.35},{key:"clockWipe",label:"Clock",short:"Clock",duration:.5},{key:"star",label:"Star",short:"Star",duration:.35},{key:"circle",label:"Circle",short:"Circle",duration:.45},{key:"rectangle",label:"Rectangle",short:"Rect",duration:.45}];let Wo=!1,Ko=!1;const zt="me-video-timeline-selectionchange",Uo="Aa Sample 123";let Wn=null;function Qt(){if(Wo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-text-enhancer-style",e.textContent=`
|
|
2
2
|
.me-video-inspector-rail {
|
|
3
3
|
flex: 0 0 min(380px, 32vw);
|
|
4
4
|
min-width: 320px;
|
|
@@ -30,7 +30,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
30
30
|
color: var(--me-fg, #ededf0);
|
|
31
31
|
box-shadow: none;
|
|
32
32
|
backdrop-filter: none;
|
|
33
|
-
font: 13px/1.45 ${
|
|
33
|
+
font: 13px/1.45 ${qn};
|
|
34
34
|
box-sizing: border-box;
|
|
35
35
|
overflow: auto;
|
|
36
36
|
}
|
|
@@ -197,7 +197,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
197
197
|
background: var(--me-surface, #141416);
|
|
198
198
|
color: var(--me-fg-muted, #9a9aa3);
|
|
199
199
|
cursor: pointer;
|
|
200
|
-
font: 12px/1.2 ${
|
|
200
|
+
font: 12px/1.2 ${qn};
|
|
201
201
|
box-shadow: inset 0 0 0 1px transparent;
|
|
202
202
|
transition: transform 120ms ease, color 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
|
|
203
203
|
}
|
|
@@ -394,7 +394,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
394
394
|
border-radius: 10px;
|
|
395
395
|
background: var(--me-chip, #f1f1f3);
|
|
396
396
|
color: var(--me-fg, #0a0a0a);
|
|
397
|
-
font: 600 14px/1 ${
|
|
397
|
+
font: 600 14px/1 ${qn};
|
|
398
398
|
cursor: pointer;
|
|
399
399
|
display: inline-flex;
|
|
400
400
|
align-items: center;
|
|
@@ -1608,7 +1608,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
1608
1608
|
padding: 18px 16px 20px;
|
|
1609
1609
|
}
|
|
1610
1610
|
}
|
|
1611
|
-
`,document.head.appendChild(e),
|
|
1611
|
+
`,document.head.appendChild(e),Wo=!0}function kn(){if(Ko||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-timeline-enhancer-style",e.textContent=`
|
|
1612
1612
|
.me-video-transition-panel {
|
|
1613
1613
|
width: 100%;
|
|
1614
1614
|
}
|
|
@@ -2032,19 +2032,19 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
2032
2032
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2033
2033
|
}
|
|
2034
2034
|
}
|
|
2035
|
-
`,document.head.appendChild(e),Wo=!0}function ae(e,t,n){return Math.min(Math.max(e,t),n)}function In(e){if(!Number.isFinite(e))return 0;let t=e%360;return t>180&&(t-=360),t<-180&&(t+=360),Math.abs(t)<.001?0:t}function Wn(e="auto"){return e!=="auto"?e:typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}function Uo(e){if(!e)return null;const t=String(e).toLowerCase();return t==="zh-hant"||/^zh-(tw|hk|mo)/.test(t)?"zh-Hant":t==="zh"||t.startsWith("zh-")?"zh":(t.startsWith("en"),"en")}function Xt(e){const t=Uo(e);return t||(typeof navigator<"u"?Uo(navigator.language)??"en":"en")}const vo={en:{untitledText:"Untitled text",textPresets:{heading:"Heading and some body",subtitle:"Subtitle line",label:"Label"},text:{tool:"Text",addText:"Add text",moveOnCanvas:"Move on canvas",close:"Close",hint:"Match the reference text styling here first. This version renders text as a full-length overlay, so font, shadow, stroke, background and alignment will export exactly.",empty:"No text overlay yet. Add one to start editing.",heading:"Heading",subtitle:"Subtitle",label:"Label",placeholder:"Type your text",content:"Content",font:"Font",weight:"Weight",fontSize:"Font Size",boxWidth:"Box Width",color:"Color",background:"Background",stroke:"Stroke",strokeColor:"Stroke Color",opacity:"Opacity",shadowBlur:"Shadow Blur",align:"Align",duplicate:"Duplicate",delete:"Delete",addLabel:"Add label"},transitions:{tool:"Transitions",title:"Transitions",fadeAll:"Fade all",close:"Close",hint:"Pick a cut between clips on the timeline. These transitions are exported through ffmpeg xfade/acrossfade, so the result is baked into the final video.",empty:"Need at least 2 clips to place a transition. Split or duplicate a clip first.",duration:"Duration",clearSelected:"Clear selected",clearAll:"Clear all",cut:"Cut",instantCut:"Instant cut",selection:(e,t)=>`Between clip ${e} and clip ${t}`,selectionEmpty:"Open Trim to place transitions on the timeline.",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`Between clip ${e} and clip ${t}`,markerTitle:(e,t,n,o)=>`Clip ${e} \u2192 ${t}: ${n}${o?` (${o})`:""}`,options:{none:{label:"Cut",short:"Cut"},fade:{label:"Fade",short:"Fade"},slide:{label:"Slide",short:"Slide"},wipe:{label:"Wipe",short:"Wipe"},flip:{label:"Flip",short:"Flip"},clockWipe:{label:"Clock",short:"Clock"},star:{label:"Star",short:"Star"},circle:{label:"Circle",short:"Circle"},rectangle:{label:"Rectangle",short:"Rect"}}}},zh:{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6807\u9898\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6807\u7B7E"},text:{tool:"\u6587\u5B57",addText:"\u6DFB\u52A0\u6587\u5B57",moveOnCanvas:"\u753B\u5E03\u5B9A\u4F4D",close:"\u5173\u95ED",hint:"\u5148\u5728\u8FD9\u91CC\u628A\u6587\u5B57\u6837\u5F0F\u8C03\u5230\u548C\u53C2\u8003\u4E00\u81F4\u3002\u8BE5\u7248\u672C\u4F1A\u628A\u6587\u5B57\u4F5C\u4E3A\u5B8C\u6574\u8986\u76D6\u5C42\u5BFC\u51FA\uFF0C\u5B57\u4F53\u3001\u9634\u5F71\u3001\u63CF\u8FB9\u3001\u80CC\u666F\u548C\u5BF9\u9F50\u65B9\u5F0F\u90FD\u4F1A\u88AB\u51C6\u786E\u4FDD\u7559\u3002",empty:"\u8FD8\u6CA1\u6709\u6587\u5B57\u56FE\u5C42\uFF0C\u5148\u6DFB\u52A0\u4E00\u4E2A\u5F00\u59CB\u7F16\u8F91\u3002",heading:"\u6807\u9898",subtitle:"\u5B57\u5E55",label:"\u6807\u7B7E",placeholder:"\u8F93\u5165\u6587\u5B57\u5185\u5BB9",content:"\u5185\u5BB9",font:"\u5B57\u4F53",weight:"\u5B57\u91CD",fontSize:"\u5B57\u53F7",boxWidth:"\u6587\u672C\u5BBD\u5EA6",color:"\u989C\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u8FB9",strokeColor:"\u63CF\u8FB9\u989C\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9634\u5F71\u6A21\u7CCA",align:"\u5BF9\u9F50",duplicate:"\u590D\u5236",delete:"\u5220\u9664",addLabel:"\u6DFB\u52A0\u6807\u7B7E"},transitions:{tool:"\u8F6C\u573A",title:"\u8F6C\u573A",fadeAll:"\u5168\u90E8\u6DE1\u5165\u6DE1\u51FA",close:"\u5173\u95ED",hint:"\u5728\u65F6\u95F4\u8F74\u4E0A\u9009\u62E9\u4E24\u4E2A\u7247\u6BB5\u4E4B\u95F4\u7684\u5207\u70B9\u3002\u8F6C\u573A\u4F1A\u901A\u8FC7 ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u8FDB\u6700\u7EC8\u5BFC\u51FA\u89C6\u9891\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u4E2A\u7247\u6BB5\u624D\u80FD\u8BBE\u7F6E\u8F6C\u573A\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u590D\u5236\u7247\u6BB5\u3002",duration:"\u65F6\u957F",clearSelected:"\u6E05\u9664\u5F53\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u6362",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u5F00\u526A\u8F91\u5DE5\u5177\u540E\uFF0C\u53EF\u5728\u65F6\u95F4\u8F74\u4E0A\u8BBE\u7F6E\u8F6C\u573A\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u95F4`,markerTitle:(e,t,n,o)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${o?`\uFF08${o}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52A8",short:"\u6ED1\u52A8"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F6C",short:"\u7FFB\u8F6C"},clockWipe:{label:"\u65F6\u949F",short:"\u65F6\u949F"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5706\u5F62",short:"\u5706\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}},"zh-Hant":{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6A19\u984C\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6A19\u7C64"},text:{tool:"\u6587\u5B57",addText:"\u65B0\u589E\u6587\u5B57",moveOnCanvas:"\u756B\u5E03\u5B9A\u4F4D",close:"\u95DC\u9589",hint:"\u5148\u5728\u9019\u88E1\u628A\u6587\u5B57\u6A23\u5F0F\u8ABF\u5230\u548C\u53C3\u8003\u4E00\u81F4\u3002\u9019\u500B\u7248\u672C\u6703\u628A\u6587\u5B57\u4F5C\u70BA\u5B8C\u6574\u8986\u84CB\u5C64\u5C0E\u51FA\uFF0C\u5B57\u9AD4\u3001\u9670\u5F71\u3001\u63CF\u908A\u3001\u80CC\u666F\u548C\u5C0D\u9F4A\u65B9\u5F0F\u90FD\u6703\u88AB\u6E96\u78BA\u4FDD\u7559\u3002",empty:"\u9084\u6C92\u6709\u6587\u5B57\u5716\u5C64\uFF0C\u5148\u65B0\u589E\u4E00\u500B\u958B\u59CB\u7DE8\u8F2F\u3002",heading:"\u6A19\u984C",subtitle:"\u5B57\u5E55",label:"\u6A19\u7C64",placeholder:"\u8F38\u5165\u6587\u5B57\u5167\u5BB9",content:"\u5167\u5BB9",font:"\u5B57\u9AD4",weight:"\u5B57\u91CD",fontSize:"\u5B57\u7D1A",boxWidth:"\u6587\u5B57\u5BEC\u5EA6",color:"\u984F\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u908A",strokeColor:"\u63CF\u908A\u984F\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9670\u5F71\u6A21\u7CCA",align:"\u5C0D\u9F4A",duplicate:"\u8907\u88FD",delete:"\u522A\u9664",addLabel:"\u65B0\u589E\u6A19\u7C64"},transitions:{tool:"\u8F49\u5834",title:"\u8F49\u5834",fadeAll:"\u5168\u90E8\u6DE1\u5316",close:"\u95DC\u9589",hint:"\u5728\u6642\u9593\u8EF8\u4E0A\u9078\u64C7\u5169\u500B\u7247\u6BB5\u4E4B\u9593\u7684\u5207\u9EDE\u3002\u8F49\u5834\u6703\u900F\u904E ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u9032\u6700\u7D42\u5C0E\u51FA\u5F71\u7247\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u500B\u7247\u6BB5\u624D\u80FD\u8A2D\u5B9A\u8F49\u5834\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u8907\u88FD\u7247\u6BB5\u3002",duration:"\u6642\u9577",clearSelected:"\u6E05\u9664\u76EE\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u63DB",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u958B\u526A\u8F2F\u5DE5\u5177\u5F8C\uFF0C\u53EF\u5728\u6642\u9593\u8EF8\u4E0A\u8A2D\u5B9A\u8F49\u5834\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u9593`,markerTitle:(e,t,n,o)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${o?`\uFF08${o}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52D5",short:"\u6ED1\u52D5"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F49",short:"\u7FFB\u8F49"},clockWipe:{label:"\u6642\u9418",short:"\u6642\u9418"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5713\u5F62",short:"\u5713\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}}};function Go(e){const t=Xt(e);return vo[t]??vo.en}const Zo={en:{tool:"Effects",title:"Effects",close:"Close",hint:"Adjust color, tone, and finishing details here.",details:"Details",empty:"No effect settings yet."},zh:{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u5173\u95ED",hint:"\u5728\u8FD9\u91CC\u53EF\u4EE5\u8C03\u6574\u8272\u5F69\u3001\u660E\u5EA6\u548C\u6548\u679C\u7EC6\u8282\u3002",details:"\u7EC6\u8282\u8C03\u6574",empty:"\u6682\u65E0\u53EF\u8C03\u6574\u9879"},"zh-Hant":{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u95DC\u9589",hint:"\u5728\u9019\u88E1\u53EF\u4EE5\u8ABF\u6574\u8272\u5F69\u3001\u660E\u5EA6\u8207\u6548\u679C\u7D30\u7BC0\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",empty:"\u66AB\u7121\u53EF\u8ABF\u6574\u9805"}};function qr(e){const t=Xt(e);return Zo[t]??Zo.en}const Jo={en:{title:"Audio",close:"Close",source:"Source",speed:"Speed",duration:"Duration",volume:"Volume",fadeIn:"Fade In",fadeOut:"Fade Out",speedHint:"Speed can be adjusted here and will be used when exporting audio."},zh:{title:"\u97F3\u8F68",close:"\u5173\u95ED",source:"\u6765\u6E90",speed:"\u500D\u6570",duration:"\u65F6\u957F",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u65F6\u957F",fadeOut:"\u6DE1\u51FA\u65F6\u957F",speedHint:"\u8FD9\u91CC\u53EF\u4EE5\u76F4\u63A5\u8C03\u6574\u97F3\u9891\u500D\u6570\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u6309\u8BE5\u500D\u6570\u5904\u7406\u3002"},"zh-Hant":{title:"\u97F3\u8ECC",close:"\u95DC\u9589",source:"\u4F86\u6E90",speed:"\u500D\u6578",duration:"\u6642\u9577",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u6642\u9577",fadeOut:"\u6DE1\u51FA\u6642\u9577",speedHint:"\u9019\u88E1\u53EF\u4EE5\u76F4\u63A5\u8ABF\u6574\u97F3\u8A0A\u500D\u6578\uFF0C\u5C0E\u51FA\u6642\u6703\u6309\u8A72\u500D\u6578\u8655\u7406\u3002"}};function Wr(e){const t=Xt(e);return Jo[t]??Jo.en}const Qo={en:{tool:"Adjust",title:"Adjust",close:"Close",hint:"Select an adjustment layer to edit its controls here.",details:"Details",placeholder:"Select an adjustment layer to start editing.",videoInfoHint:"Default video details are shown here when no adjustment layer is selected.",videoInfoTitle:"Video details",videoName:"Name",ratio:"Ratio",canvasSize:"Canvas",resolution:"Resolution",frameRate:"Frame rate",bitrate:"Bitrate",format:"Format",fileSize:"File size",codec:"Codec",sourceSize:"Source size",videoLength:"Duration",notAvailable:"-"},zh:{tool:"\u8C03\u8282",title:"\u8C03\u8282",close:"\u5173\u95ED",hint:"\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\u540E\uFF0C\u53EF\u4EE5\u5728\u8FD9\u91CC\u7EE7\u7EED\u8C03\u6574\u53C2\u6570\u3002",details:"\u7EC6\u8282\u8C03\u6574",placeholder:"\u8BF7\u5148\u9009\u4E2D\u4E00\u4E2A\u8C03\u8282\u56FE\u5C42\u518D\u7EE7\u7EED\u7F16\u8F91\u3002",videoInfoHint:"\u5F53\u524D\u672A\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\uFF0C\u8FD9\u91CC\u663E\u793A\u9ED8\u8BA4\u89C6\u9891\u4FE1\u606F\u3002",videoInfoTitle:"\u89C6\u9891\u4FE1\u606F",videoName:"\u540D\u79F0",ratio:"\u6BD4\u4F8B",canvasSize:"\u753B\u5E03\u5927\u5C0F",resolution:"\u5206\u8FA8\u7387",frameRate:"\u5E27\u7387",bitrate:"\u7801\u7387",format:"\u683C\u5F0F",fileSize:"\u6587\u4EF6\u5927\u5C0F",codec:"\u7F16\u7801",sourceSize:"\u6E90\u5C3A\u5BF8",videoLength:"\u89C6\u9891\u65F6\u957F",notAvailable:"-"},"zh-Hant":{tool:"\u8ABF\u7BC0",title:"\u8ABF\u7BC0",close:"\u95DC\u9589",hint:"\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\u5F8C\uFF0C\u53EF\u4EE5\u5728\u9019\u88E1\u7E7C\u7E8C\u8ABF\u6574\u53C3\u6578\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",placeholder:"\u8ACB\u5148\u9078\u4E2D\u4E00\u500B\u8ABF\u7BC0\u5716\u5C64\u518D\u7E7C\u7E8C\u7DE8\u8F2F\u3002",videoInfoHint:"\u76EE\u524D\u672A\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\uFF0C\u9019\u88E1\u986F\u793A\u9810\u8A2D\u8996\u983B\u8CC7\u8A0A\u3002",videoInfoTitle:"\u8996\u983B\u8CC7\u8A0A",videoName:"\u540D\u7A31",ratio:"\u6BD4\u4F8B",canvasSize:"\u756B\u5E03\u5927\u5C0F",resolution:"\u89E3\u6790\u5EA6",frameRate:"\u5E40\u7387",bitrate:"\u78BC\u7387",format:"\u683C\u5F0F",fileSize:"\u6A94\u6848\u5927\u5C0F",codec:"\u7DE8\u78BC",sourceSize:"\u4F86\u6E90\u5C3A\u5BF8",videoLength:"\u8996\u983B\u6642\u9577",notAvailable:"-"}};function Kr(e){const t=Xt(e);return Qo[t]??Qo.en}function Ur(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
|
2035
|
+
`,document.head.appendChild(e),Ko=!0}function ae(e,t,n){return Math.min(Math.max(e,t),n)}function In(e){if(!Number.isFinite(e))return 0;let t=e%360;return t>180&&(t-=360),t<-180&&(t+=360),Math.abs(t)<.001?0:t}function Kn(e="auto"){return e!=="auto"?e:typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}function Go(e){if(!e)return null;const t=String(e).toLowerCase();return t==="zh-hant"||/^zh-(tw|hk|mo)/.test(t)?"zh-Hant":t==="zh"||t.startsWith("zh-")?"zh":(t.startsWith("en"),"en")}function Xt(e){const t=Go(e);return t||(typeof navigator<"u"?Go(navigator.language)??"en":"en")}const ho={en:{untitledText:"Untitled text",textPresets:{heading:"Heading and some body",subtitle:"Subtitle line",label:"Label"},text:{tool:"Text",addText:"Add text",moveOnCanvas:"Move on canvas",close:"Close",hint:"Match the reference text styling here first. This version renders text as a full-length overlay, so font, shadow, stroke, background and alignment will export exactly.",empty:"No text overlay yet. Add one to start editing.",heading:"Heading",subtitle:"Subtitle",label:"Label",placeholder:"Type your text",content:"Content",font:"Font",weight:"Weight",fontSize:"Font Size",boxWidth:"Box Width",color:"Color",background:"Background",stroke:"Stroke",strokeColor:"Stroke Color",opacity:"Opacity",shadowBlur:"Shadow Blur",align:"Align",duplicate:"Duplicate",delete:"Delete",addLabel:"Add label"},transitions:{tool:"Transitions",title:"Transitions",fadeAll:"Fade all",close:"Close",hint:"Pick a cut between clips on the timeline. These transitions are exported through ffmpeg xfade/acrossfade, so the result is baked into the final video.",empty:"Need at least 2 clips to place a transition. Split or duplicate a clip first.",duration:"Duration",clearSelected:"Clear selected",clearAll:"Clear all",cut:"Cut",instantCut:"Instant cut",selection:(e,t)=>`Between clip ${e} and clip ${t}`,selectionEmpty:"Open Trim to place transitions on the timeline.",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`Between clip ${e} and clip ${t}`,markerTitle:(e,t,n,r)=>`Clip ${e} \u2192 ${t}: ${n}${r?` (${r})`:""}`,options:{none:{label:"Cut",short:"Cut"},fade:{label:"Fade",short:"Fade"},slide:{label:"Slide",short:"Slide"},wipe:{label:"Wipe",short:"Wipe"},flip:{label:"Flip",short:"Flip"},clockWipe:{label:"Clock",short:"Clock"},star:{label:"Star",short:"Star"},circle:{label:"Circle",short:"Circle"},rectangle:{label:"Rectangle",short:"Rect"}}}},zh:{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6807\u9898\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6807\u7B7E"},text:{tool:"\u6587\u5B57",addText:"\u6DFB\u52A0\u6587\u5B57",moveOnCanvas:"\u753B\u5E03\u5B9A\u4F4D",close:"\u5173\u95ED",hint:"\u5148\u5728\u8FD9\u91CC\u628A\u6587\u5B57\u6837\u5F0F\u8C03\u5230\u548C\u53C2\u8003\u4E00\u81F4\u3002\u8BE5\u7248\u672C\u4F1A\u628A\u6587\u5B57\u4F5C\u4E3A\u5B8C\u6574\u8986\u76D6\u5C42\u5BFC\u51FA\uFF0C\u5B57\u4F53\u3001\u9634\u5F71\u3001\u63CF\u8FB9\u3001\u80CC\u666F\u548C\u5BF9\u9F50\u65B9\u5F0F\u90FD\u4F1A\u88AB\u51C6\u786E\u4FDD\u7559\u3002",empty:"\u8FD8\u6CA1\u6709\u6587\u5B57\u56FE\u5C42\uFF0C\u5148\u6DFB\u52A0\u4E00\u4E2A\u5F00\u59CB\u7F16\u8F91\u3002",heading:"\u6807\u9898",subtitle:"\u5B57\u5E55",label:"\u6807\u7B7E",placeholder:"\u8F93\u5165\u6587\u5B57\u5185\u5BB9",content:"\u5185\u5BB9",font:"\u5B57\u4F53",weight:"\u5B57\u91CD",fontSize:"\u5B57\u53F7",boxWidth:"\u6587\u672C\u5BBD\u5EA6",color:"\u989C\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u8FB9",strokeColor:"\u63CF\u8FB9\u989C\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9634\u5F71\u6A21\u7CCA",align:"\u5BF9\u9F50",duplicate:"\u590D\u5236",delete:"\u5220\u9664",addLabel:"\u6DFB\u52A0\u6807\u7B7E"},transitions:{tool:"\u8F6C\u573A",title:"\u8F6C\u573A",fadeAll:"\u5168\u90E8\u6DE1\u5165\u6DE1\u51FA",close:"\u5173\u95ED",hint:"\u5728\u65F6\u95F4\u8F74\u4E0A\u9009\u62E9\u4E24\u4E2A\u7247\u6BB5\u4E4B\u95F4\u7684\u5207\u70B9\u3002\u8F6C\u573A\u4F1A\u901A\u8FC7 ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u8FDB\u6700\u7EC8\u5BFC\u51FA\u89C6\u9891\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u4E2A\u7247\u6BB5\u624D\u80FD\u8BBE\u7F6E\u8F6C\u573A\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u590D\u5236\u7247\u6BB5\u3002",duration:"\u65F6\u957F",clearSelected:"\u6E05\u9664\u5F53\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u6362",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u5F00\u526A\u8F91\u5DE5\u5177\u540E\uFF0C\u53EF\u5728\u65F6\u95F4\u8F74\u4E0A\u8BBE\u7F6E\u8F6C\u573A\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u95F4`,markerTitle:(e,t,n,r)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${r?`\uFF08${r}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52A8",short:"\u6ED1\u52A8"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F6C",short:"\u7FFB\u8F6C"},clockWipe:{label:"\u65F6\u949F",short:"\u65F6\u949F"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5706\u5F62",short:"\u5706\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}},"zh-Hant":{untitledText:"\u672A\u547D\u540D\u6587\u5B57",textPresets:{heading:"\u4E3B\u6A19\u984C\u548C\u6B63\u6587",subtitle:"\u5B57\u5E55\u6587\u6848",label:"\u6A19\u7C64"},text:{tool:"\u6587\u5B57",addText:"\u65B0\u589E\u6587\u5B57",moveOnCanvas:"\u756B\u5E03\u5B9A\u4F4D",close:"\u95DC\u9589",hint:"\u5148\u5728\u9019\u88E1\u628A\u6587\u5B57\u6A23\u5F0F\u8ABF\u5230\u548C\u53C3\u8003\u4E00\u81F4\u3002\u9019\u500B\u7248\u672C\u6703\u628A\u6587\u5B57\u4F5C\u70BA\u5B8C\u6574\u8986\u84CB\u5C64\u5C0E\u51FA\uFF0C\u5B57\u9AD4\u3001\u9670\u5F71\u3001\u63CF\u908A\u3001\u80CC\u666F\u548C\u5C0D\u9F4A\u65B9\u5F0F\u90FD\u6703\u88AB\u6E96\u78BA\u4FDD\u7559\u3002",empty:"\u9084\u6C92\u6709\u6587\u5B57\u5716\u5C64\uFF0C\u5148\u65B0\u589E\u4E00\u500B\u958B\u59CB\u7DE8\u8F2F\u3002",heading:"\u6A19\u984C",subtitle:"\u5B57\u5E55",label:"\u6A19\u7C64",placeholder:"\u8F38\u5165\u6587\u5B57\u5167\u5BB9",content:"\u5167\u5BB9",font:"\u5B57\u9AD4",weight:"\u5B57\u91CD",fontSize:"\u5B57\u7D1A",boxWidth:"\u6587\u5B57\u5BEC\u5EA6",color:"\u984F\u8272",background:"\u80CC\u666F",stroke:"\u63CF\u908A",strokeColor:"\u63CF\u908A\u984F\u8272",opacity:"\u900F\u660E\u5EA6",shadowBlur:"\u9670\u5F71\u6A21\u7CCA",align:"\u5C0D\u9F4A",duplicate:"\u8907\u88FD",delete:"\u522A\u9664",addLabel:"\u65B0\u589E\u6A19\u7C64"},transitions:{tool:"\u8F49\u5834",title:"\u8F49\u5834",fadeAll:"\u5168\u90E8\u6DE1\u5316",close:"\u95DC\u9589",hint:"\u5728\u6642\u9593\u8EF8\u4E0A\u9078\u64C7\u5169\u500B\u7247\u6BB5\u4E4B\u9593\u7684\u5207\u9EDE\u3002\u8F49\u5834\u6703\u900F\u904E ffmpeg \u7684 xfade/acrossfade \u70D8\u7119\u9032\u6700\u7D42\u5C0E\u51FA\u5F71\u7247\u3002",empty:"\u81F3\u5C11\u9700\u8981 2 \u500B\u7247\u6BB5\u624D\u80FD\u8A2D\u5B9A\u8F49\u5834\u3002\u53EF\u4EE5\u5148\u5206\u5272\u6216\u8907\u88FD\u7247\u6BB5\u3002",duration:"\u6642\u9577",clearSelected:"\u6E05\u9664\u76EE\u524D",clearAll:"\u6E05\u9664\u5168\u90E8",cut:"\u786C\u5207",instantCut:"\u76F4\u63A5\u5207\u63DB",selection:(e,t)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5`,selectionEmpty:"\u6253\u958B\u526A\u8F2F\u5DE5\u5177\u5F8C\uFF0C\u53EF\u5728\u6642\u9593\u8EF8\u4E0A\u8A2D\u5B9A\u8F49\u5834\u3002",boundary:(e,t,n)=>`${e}\u2192${t} ${n}`,boundaryTitle:(e,t)=>`\u7B2C ${e} \u6BB5\u5230\u7B2C ${t} \u6BB5\u4E4B\u9593`,markerTitle:(e,t,n,r)=>`\u7B2C ${e} \u6BB5 \u2192 \u7B2C ${t} \u6BB5\uFF1A${n}${r?`\uFF08${r}\uFF09`:""}`,options:{none:{label:"\u786C\u5207",short:"\u786C\u5207"},fade:{label:"\u6DE1\u5316",short:"\u6DE1\u5316"},slide:{label:"\u6ED1\u52D5",short:"\u6ED1\u52D5"},wipe:{label:"\u64E6\u9664",short:"\u64E6\u9664"},flip:{label:"\u7FFB\u8F49",short:"\u7FFB\u8F49"},clockWipe:{label:"\u6642\u9418",short:"\u6642\u9418"},star:{label:"\u661F\u5F62",short:"\u661F\u5F62"},circle:{label:"\u5713\u5F62",short:"\u5713\u5F62"},rectangle:{label:"\u77E9\u5F62",short:"\u77E9\u5F62"}}}}};function Zo(e){const t=Xt(e);return ho[t]??ho.en}const Jo={en:{tool:"Effects",title:"Effects",close:"Close",hint:"Adjust color, tone, and finishing details here.",details:"Details",empty:"No effect settings yet."},zh:{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u5173\u95ED",hint:"\u5728\u8FD9\u91CC\u53EF\u4EE5\u8C03\u6574\u8272\u5F69\u3001\u660E\u5EA6\u548C\u6548\u679C\u7EC6\u8282\u3002",details:"\u7EC6\u8282\u8C03\u6574",empty:"\u6682\u65E0\u53EF\u8C03\u6574\u9879"},"zh-Hant":{tool:"\u7279\u6548",title:"\u7279\u6548",close:"\u95DC\u9589",hint:"\u5728\u9019\u88E1\u53EF\u4EE5\u8ABF\u6574\u8272\u5F69\u3001\u660E\u5EA6\u8207\u6548\u679C\u7D30\u7BC0\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",empty:"\u66AB\u7121\u53EF\u8ABF\u6574\u9805"}};function Kr(e){const t=Xt(e);return Jo[t]??Jo.en}const Qo={en:{title:"Audio",close:"Close",source:"Source",speed:"Speed",duration:"Duration",volume:"Volume",fadeIn:"Fade In",fadeOut:"Fade Out",speedHint:"Speed can be adjusted here and will be used when exporting audio."},zh:{title:"\u97F3\u8F68",close:"\u5173\u95ED",source:"\u6765\u6E90",speed:"\u500D\u6570",duration:"\u65F6\u957F",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u65F6\u957F",fadeOut:"\u6DE1\u51FA\u65F6\u957F",speedHint:"\u8FD9\u91CC\u53EF\u4EE5\u76F4\u63A5\u8C03\u6574\u97F3\u9891\u500D\u6570\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u6309\u8BE5\u500D\u6570\u5904\u7406\u3002"},"zh-Hant":{title:"\u97F3\u8ECC",close:"\u95DC\u9589",source:"\u4F86\u6E90",speed:"\u500D\u6578",duration:"\u6642\u9577",volume:"\u97F3\u91CF",fadeIn:"\u6DE1\u5165\u6642\u9577",fadeOut:"\u6DE1\u51FA\u6642\u9577",speedHint:"\u9019\u88E1\u53EF\u4EE5\u76F4\u63A5\u8ABF\u6574\u97F3\u8A0A\u500D\u6578\uFF0C\u5C0E\u51FA\u6642\u6703\u6309\u8A72\u500D\u6578\u8655\u7406\u3002"}};function Ur(e){const t=Xt(e);return Qo[t]??Qo.en}const er={en:{tool:"Adjust",title:"Adjust",close:"Close",hint:"Select an adjustment layer to edit its controls here.",details:"Details",placeholder:"Select an adjustment layer to start editing.",videoInfoHint:"Default video details are shown here when no adjustment layer is selected.",videoInfoTitle:"Video details",videoName:"Name",ratio:"Ratio",canvasSize:"Canvas",resolution:"Resolution",frameRate:"Frame rate",bitrate:"Bitrate",format:"Format",fileSize:"File size",codec:"Codec",sourceSize:"Source size",videoLength:"Duration",notAvailable:"-"},zh:{tool:"\u8C03\u8282",title:"\u8C03\u8282",close:"\u5173\u95ED",hint:"\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\u540E\uFF0C\u53EF\u4EE5\u5728\u8FD9\u91CC\u7EE7\u7EED\u8C03\u6574\u53C2\u6570\u3002",details:"\u7EC6\u8282\u8C03\u6574",placeholder:"\u8BF7\u5148\u9009\u4E2D\u4E00\u4E2A\u8C03\u8282\u56FE\u5C42\u518D\u7EE7\u7EED\u7F16\u8F91\u3002",videoInfoHint:"\u5F53\u524D\u672A\u9009\u4E2D\u8C03\u8282\u56FE\u5C42\uFF0C\u8FD9\u91CC\u663E\u793A\u9ED8\u8BA4\u89C6\u9891\u4FE1\u606F\u3002",videoInfoTitle:"\u89C6\u9891\u4FE1\u606F",videoName:"\u540D\u79F0",ratio:"\u6BD4\u4F8B",canvasSize:"\u753B\u5E03\u5927\u5C0F",resolution:"\u5206\u8FA8\u7387",frameRate:"\u5E27\u7387",bitrate:"\u7801\u7387",format:"\u683C\u5F0F",fileSize:"\u6587\u4EF6\u5927\u5C0F",codec:"\u7F16\u7801",sourceSize:"\u6E90\u5C3A\u5BF8",videoLength:"\u89C6\u9891\u65F6\u957F",notAvailable:"-"},"zh-Hant":{tool:"\u8ABF\u7BC0",title:"\u8ABF\u7BC0",close:"\u95DC\u9589",hint:"\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\u5F8C\uFF0C\u53EF\u4EE5\u5728\u9019\u88E1\u7E7C\u7E8C\u8ABF\u6574\u53C3\u6578\u3002",details:"\u7D30\u7BC0\u8ABF\u6574",placeholder:"\u8ACB\u5148\u9078\u4E2D\u4E00\u500B\u8ABF\u7BC0\u5716\u5C64\u518D\u7E7C\u7E8C\u7DE8\u8F2F\u3002",videoInfoHint:"\u76EE\u524D\u672A\u9078\u4E2D\u8ABF\u7BC0\u5716\u5C64\uFF0C\u9019\u88E1\u986F\u793A\u9810\u8A2D\u8996\u983B\u8CC7\u8A0A\u3002",videoInfoTitle:"\u8996\u983B\u8CC7\u8A0A",videoName:"\u540D\u7A31",ratio:"\u6BD4\u4F8B",canvasSize:"\u756B\u5E03\u5927\u5C0F",resolution:"\u89E3\u6790\u5EA6",frameRate:"\u5E40\u7387",bitrate:"\u78BC\u7387",format:"\u683C\u5F0F",fileSize:"\u6A94\u6848\u5927\u5C0F",codec:"\u7DE8\u78BC",sourceSize:"\u4F86\u6E90\u5C3A\u5BF8",videoLength:"\u8996\u983B\u6642\u9577",notAvailable:"-"}};function Gr(e){const t=Xt(e);return er[t]??er.en}function Zr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
|
2036
2036
|
<path d="M9 15l6-6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/>
|
|
2037
2037
|
<path d="M7.6 16.4l-1.2 2.4a.7.7 0 0 0 .93.93L9.7 18.5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
2038
2038
|
<path d="M14.4 8.4l1.2-2.4a.7.7 0 0 1 .93-.93l1.47 1.47a.7.7 0 0 1-.05 1.04L15.6 8.8" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
2039
2039
|
<path d="M6 7.4l.52 1.18L7.7 9.1l-1.18.52L6 10.8l-.52-1.18L4.3 9.1l1.18-.52L6 7.4Z" fill="#f59e0b" stroke="none"/>
|
|
2040
2040
|
<path d="M17.6 11.2l.38.86.86.38-.86.38-.38.86-.38-.86-.86-.38.86-.38.38-.86Z" fill="var(--me-accent, #7c7cf0)" stroke="none"/>
|
|
2041
2041
|
<circle cx="11.2" cy="12.8" r="1.55" fill="#22c55e" stroke="white" stroke-width=".9"/>
|
|
2042
|
-
</svg>`}function
|
|
2042
|
+
</svg>`}function Jr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
|
2043
2043
|
<path d="M6 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
2044
2044
|
<path d="M18 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
|
|
2045
2045
|
<rect x="4.2" y="8" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
|
|
2046
2046
|
<rect x="16.2" y="11.2" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
|
|
2047
|
-
</svg>`}function En(e,t){const n=ho(t),o=e.transitions.options[n.key]??e.transitions.options.none;return{...n,label:o.label,short:o.short}}function Kn(e,t=vo.en.untitledText){return String(e??"").replace(/\s+/g," ").trim()||t}function Ra(e){if(!e)return!1;const t=String(e).trim().toLowerCase();return t!==""&&t!=="transparent"}function ho(e){return fo.find(t=>t.key===e)??fo[0]}function mn(e){const t=Number(e)||0;return`${t.toFixed(t>=1?1:2).replace(/0+$/,"").replace(/\.$/,"")}s`}function Dt(e){return Math.max(0,(Number(e?.out)||0)-(Number(e?.in)||0))}function bn(e){return ae(Number(e)||1,.5,2)}function Zr(e){return`${bn(e).toFixed(2)}x`}function Jr(e,t=1){const n=String(e??"").trim().replace(/x$/i,""),o=Number(n);return Number.isFinite(o)?bn(o):bn(t)}function Qr(e,t=0){const n=String(e??"").trim().replace(/s$/i,""),o=Number(n);return Number.isFinite(o)?Math.max(0,o):Math.max(0,t)}function Un(e,t=.4,n=.4){const o=ho(e?.type??"none"),a=Math.max(0,Math.min(1.2,t-.05,n-.05));if(o.key==="none"||a<=.05)return{type:"none",duration:0};const s=Number(e?.duration),u=ae(Number.isFinite(s)?s:o.duration,.1,a);return{type:o.key,duration:u}}function xo(e){const t=e?.clips??[],n=Math.max(0,t.length-1),o=Array.isArray(e?.transitions)?e.transitions:[],a=[];for(let s=0;s<n;s++)a.push(Un(o[s],Dt(t[s]),Dt(t[s+1])));return a}function er(e,t,n="heading"){const a=e.getState().canvas??{w:1080,h:1920},s=Xo[n]??Xo.heading,u=Math.min(s.width,Math.max(240,a.w-64)),f=Math.min(s.fontSize,Math.max(32,Math.round(a.w*.11))),v=ae(Math.round(a.h*.18),32,Math.max(32,a.h-180));return{type:"text",x:Math.round((a.w-u)/2),y:v,text:t.textPresets[n]??s.text,color:s.color,fontSize:f,fontFamily:"Arial",fontWeight:s.fontWeight,fontStyle:"normal",textAlign:s.textAlign,width:u,backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,paddingX:s.paddingX??Math.max(14,Math.round(f*.18)),paddingY:s.paddingY??Math.max(10,Math.round(f*.14)),boxShadow:s.boxShadow?{...s.boxShadow}:void 0,lineHeight:1.1,textPreset:n,textDecoration:"",textTransform:void 0,animation:"none",rotation:0}}const qt=3,je=.5,Wt=.1,gn=99,bo=36,tr=6;function lt(e,t=0){return Number.isFinite(e?.startAt)?Math.max(0,Number(e.startAt)):Math.max(0,t)}function Bt(e,t=0,n=qt){const o=lt(e,t);return Number.isFinite(e?.endAt)?Math.max(o+je,Number(e.endAt)):o+Math.max(je,n)}function Sn(e,t=qt){return Math.max(je,Bt(e,0,t)-lt(e,0))}function vt(e,t=0){return Number.isFinite(e?.timelineTrack)?ae(Math.round(Number(e.timelineTrack)),0,gn):Math.max(0,t)}function ei(e){return e==="pen"||e==="line"||e==="arrow"||e==="rect"||e==="ellipse"}function nn(e){return ei(e?.type)}function Zt(e){return e?.type==="text"||e?.type==="sticker"||e?.type==="filter"||e?.type==="adjust"||nn(e)}function Ln(e){return e*(bo+tr)}function go(e){const t=Array.isArray(e)?e:e?.overlays;return[...new Set((t??[]).filter(n=>Zt(n)).map(n=>vt(n)))].sort((n,o)=>n-o)}function Rn(e){const t=new Map;return go(e).forEach((n,o)=>{t.set(n,o)}),t}function ti(e){return go(e).length}function ni(e){const t=ti(e);return t?Ln(t-1)+bo:0}function Fn(e,t){const o=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!o)return{timelineInner:null,timelineHost:null};o.style.position="relative";const a=o.firstElementChild,s=ni(t),u=[];for(const M of o.children)M instanceof HTMLElement&&M.classList.contains("me-video-overlay-track-host")&&u.push(M);const f=[...o.children].find(M=>M!==a&&!(M instanceof HTMLElement&&M.classList.contains("me-video-overlay-track-host")))??null;if(!f)return u.forEach(M=>M.remove()),{timelineInner:o,timelineHost:null};const v=u.shift()??null;if(u.forEach(M=>M.remove()),s<=0)return v?.remove(),{timelineInner:o,timelineHost:null};const S=v??document.createElement("div");return v||(S.className="me-video-overlay-track-host"),S.style.height=`${s}px`,(S.parentElement!==o||S.nextElementSibling!==f)&&o.insertBefore(S,f),{timelineInner:o,timelineHost:S}}function oi(e){return((Array.isArray(e)?e:e?.overlays)??[]).reduce((n,o)=>Zt(o)?Math.max(n,Bt(o)):n,0)}function nr(e,t,n,o){return e<o-1e-6&&n<t-1e-6}function Fa(e,t,n,o=-1){const a=new Map;(e??[]).forEach((s,u)=>{if(u===o||!Zt(s))return;const f=vt(s);let v=a.get(f);v||(v=[],a.set(f,v)),v.push({startAt:lt(s),endAt:Bt(s)})});for(let s=0;s<=gn;s++)if((a.get(s)??[]).every(f=>!nr(t,n,f.startAt,f.endAt)))return s;return gn}function ri(e,t,n,o,a){const s=ae(Math.round(Number(a)||0),0,gn);return(e??[]).every((u,f)=>f===t||!Zt(u)||vt(u)!==s?!0:!nr(n,o,lt(u),Bt(u)))}function pt(e,t,n,o,a,s,u){if(!e)return u;const f=e.getBoundingClientRect(),v=Math.max(0,s-f.top),S=go(t),M=ae(Math.floor(v/(bo+tr)),0,S.length),G=M<S.length?S[M]:ae((S[S.length-1]??-1)+1,0,gn);return ri(t,n,o,a,G)?G:u}function Jt(e,t,n={}){const o=lt(e,0),a=Sn(e),s=Number.isFinite(n.startAt)?Number(n.startAt):o,u=Number.isFinite(n.endAt)?Number(n.endAt):s+a,f=Math.max(0,s),v=Math.max(f+je,u),S=Math.max(je,Number(t)||qt,v),M=ae(f,0,Math.max(0,S-je)),G=ae(v,M+je,Math.max(M+je,S));return{startAt:M,endAt:G,timelineTrack:vt({timelineTrack:n.timelineTrack??e?.timelineTrack})}}function or(e,t=1){const n=Math.max(0,Math.round(Number(t)||0));return n?(e??[]).map(o=>Zt(o)?{...o,timelineTrack:ae(vt(o)+n,0,gn)}:o):[...e??[]]}function on(e){return or(e,1)}function rr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="text").sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function ir(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="sticker").sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function ar(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="filter").sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function sr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="adjust").sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function yo(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>nn(t.overlay)).sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function ii(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Zt(t.overlay)).sort((t,n)=>{const o=vt(t.overlay)-vt(n.overlay);if(o!==0)return o;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function yt(e){return[...new Set((e??[]).map(t=>Number(t)).filter(t=>Number.isInteger(t)&&t>=0))].sort((t,n)=>t-n)}function Gn(e){if(e.__meVideoTimelineSelectionStore)return e.__meVideoTimelineSelectionStore;const t={video:new Set,text:new Set,audio:new Set,anchors:{video:null,text:null,audio:null},initialized:!1};return e.__meVideoTimelineSelectionStore=t,t}function ai(e,t){return t==="text"?e.text:t==="audio"?e.audio:e.video}function lr(){return["video","text","audio"]}function _t(e,t){return yt([...ai(Gn(e),t)])}function wo(e,t){const n=yt(t),o=yt([...e]);return o.length===n.length&&o.every((a,s)=>a===n[s])?!1:(e.clear(),n.forEach(a=>e.add(a)),!0)}function si(e){e.dispatchEvent(new CustomEvent(zt))}function pn(e,t={},n={}){const o=Gn(e);let a=!1;if(Object.prototype.hasOwnProperty.call(t,"video")&&(a=wo(o.video,t.video)||a),Object.prototype.hasOwnProperty.call(t,"text")&&(a=wo(o.text,t.text)||a),Object.prototype.hasOwnProperty.call(t,"audio")&&(a=wo(o.audio,t.audio)||a),Object.prototype.hasOwnProperty.call(n,"video")){const s=Number.isInteger(n.video)&&n.video>=0?n.video:null;o.anchors.video!==s&&(o.anchors.video=s,a=!0)}if(Object.prototype.hasOwnProperty.call(n,"text")){const s=Number.isInteger(n.text)&&n.text>=0?n.text:null;o.anchors.text!==s&&(o.anchors.text=s,a=!0)}if(Object.prototype.hasOwnProperty.call(n,"audio")){const s=Number.isInteger(n.audio)&&n.audio>=0?n.audio:null;o.anchors.audio!==s&&(o.anchors.audio=s,a=!0)}return a&&si(e),o}function bt(e,t,n,o={}){const a=yt(n),s={[t]:a},u={[t]:a.length?o.anchor??a[a.length-1]:null};if(!o.preserveOther)for(const f of lr())f!==t&&(s[f]=[],u[f]=null);return pn(e,s,u),a}function ko(e){pn(e,{video:[],text:[],audio:[]},{video:null,text:null,audio:null})}function Eo(e){return _t(e,"video").length>0||_t(e,"text").length>0||_t(e,"audio").length>0}function So(e,t,n){const o=new Set(yt(n)),a=_t(e,t),s=a.filter(u=>o.has(u));return a.length!==s.length&&pn(e,{[t]:s},{[t]:s.length?s[s.length-1]:null}),s}function Pt(e,t,n,o,a=[]){const s=yt(a),u=!!(o?.ctrlKey||o?.metaKey),f=!!o?.shiftKey,v=Gn(e),S=_t(e,t);let M=S,G=n;if(f){const j=v.anchors[t],oe=s.indexOf(j),Q=s.indexOf(n);if(oe!==-1&&Q!==-1){const Z=Math.min(oe,Q),ie=Math.max(oe,Q),he=s.slice(Z,ie+1);M=u?yt([...S,...he]):he,G=j}else u?M=S.includes(n)?S.filter(Z=>Z!==n):[...S,n]:M=[n]}else u?M=S.includes(n)?S.filter(j=>j!==n):[...S,n]:M=[n];M=yt(M);const T={[t]:M},F={[t]:M.length?G:null};if(!u)for(const j of lr())j!==t&&(T[j]=[],F[j]=null);return pn(e,T,F),M}function li(e,t){const n=Gn(e);n.initialized||(n.initialized=!0)}function Tn(e){const t=typeof e.getState=="function"?e.getState():null;return Math.max(typeof e.contentDuration=="function"?e.contentDuration():0,oi(t),je)}function Zn(e){const t=String(e??"").trim();if(!t)return NaN;const n=t.split(":").map(a=>a.trim()).filter(Boolean);if(!n.length)return NaN;let o=0;for(const a of n){const s=Number(a);if(!Number.isFinite(s))return NaN;o=o*60+s}return o}function Jn(e){return e instanceof HTMLElement?String(e.dataset.meRawTimeText||e.textContent||"").trim():""}function yn(e){const t=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(t){const a=[...t.children].find(u=>u instanceof HTMLElement&&String(u.style.transform||"").includes("translateX(-50%)")),s=Zn(Jn(a));if(Number.isFinite(s))return s}const n=[...e.querySelectorAll(".me-video-trim-actions span")].find(a=>Jn(a).includes("/")),o=Jn(n);if(o){const a=Zn(o.split("/")[0]);if(Number.isFinite(a))return a}return 0}function Bn(e,t){return So(e,"video",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function Lo(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="text")}function cr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="sticker")}function dr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="filter")}function Qn(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="adjust")}function ur(e,t){return _t(e,"text").filter(n=>nn(t.overlays?.[n]))}function $n(e,t){const n=ii(t).map(o=>o.index);return So(e,"text",n).filter(o=>Zt(t.overlays?.[o]))}function Cn(e,t){return So(e,"audio",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function ci(e,t){const n=yt(t).filter(s=>!!e[s]);if(!n.length)return{clips:e,selection:[],changed:!1};const o=n[n.length-1]+1,a=n.map(s=>({...e[s]}));return{clips:[...e.slice(0,o),...a,...e.slice(o)],selection:a.map((s,u)=>o+u),changed:!0}}function To(e,t){const n=yt(t).filter(f=>Zt(e[f]));if(!n.length)return{overlays:e,selection:[],changed:!1};const o=n.map(f=>{const v=e[f];return v?.type==="pen"?{...v,points:(v.points??[]).map((S,M)=>(M%2===0,(Number(S)||0)+24))}:v?.type==="line"||v?.type==="arrow"?{...v,x1:(Number(v.x1)||0)+24,y1:(Number(v.y1)||0)+24,x2:(Number(v.x2)||0)+24,y2:(Number(v.y2)||0)+24}:{...v,x:(Number(v.x)||0)+24,y:(Number(v.y)||0)+24}}),s=[...or(e,o.length),...o.map((f,v)=>({...f,timelineTrack:ae(v,0,gn)}))],u=s.length-o.length;return{overlays:s,selection:o.map((f,v)=>u+v),changed:!0}}function di(e,t){const n=yt(t).filter(s=>!!e[s]);if(!n.length)return{audioClips:e,selection:[],changed:!1};const o=n[n.length-1]+1,a=n.map(s=>{const u=e[s];return{...u,track:Number.isInteger(u?.track)&&u.track>=0?u.track:s,startAt:Math.max(0,(Number(u.startAt)||0)+.2)}});return{audioClips:[...e.slice(0,o),...a,...e.slice(o)],selection:a.map((s,u)=>o+u),changed:!0}}function ui(e,t){const n=yt(t).filter(a=>!!e[a]);if(!n.length||n.length>=e.length)return{clips:e,selection:n,changed:!1};const o=new Set(n);return{clips:e.filter((a,s)=>!o.has(s)),selection:[],changed:!0}}function Co(e,t){const n=new Set(yt(t).filter(o=>Zt(e[o])));return n.size?{overlays:e.filter((o,a)=>!n.has(a)),selection:[],changed:!0}:{overlays:e,selection:[],changed:!1}}function mi(e,t){const n=new Set(yt(t).filter(o=>!!e[o]));return n.size?{audioClips:e.filter((o,a)=>!n.has(a)),selection:[],changed:!0}:{audioClips:e,selection:[],changed:!1}}function pi(e,t,n){const o=new Set(yt(t).filter(v=>!!e[v]));if(!o.size)return{clips:e,selection:[],changed:!1};let a=0,s=!1;const u=[],f=[];for(let v=0;v<e.length;v++){const S=e[v],M=Math.max(0,(Number(S?.out)||0)-(Number(S?.in)||0)),G=a+M;if(o.has(v)&&n>a+Wt&&n<G-Wt){const T=(Number(S.in)||0)+(n-a);f.push(u.length),u.push({...S,out:T}),f.push(u.length),u.push({...S,in:T}),s=!0}else o.has(v)&&f.push(u.length),u.push(S);a=G}return{clips:s?u:e,selection:s?f:yt(t),changed:s}}function fi(e,t,n,o){const a=new Set(yt(t).filter(v=>Zt(e[v])));if(!a.size)return{overlays:e,selection:[],changed:!1};let s=!1;const u=[],f=[];for(let v=0;v<e.length;v++){const S=e[v];if(Zt(S)&&a.has(v)){const M=lt(S),G=Bt(S,M),T=ae(o,M+je,G-je);if(T>M+1e-6&&T<G-1e-6){f.push(u.length),u.push({...S,...Jt(S,n,{startAt:M,endAt:T,timelineTrack:vt(S)})}),f.push(u.length),u.push({...S,...Jt(S,n,{startAt:T,endAt:G,timelineTrack:vt(S)})}),s=!0;continue}f.push(u.length)}u.push(S)}return{overlays:s?u:e,selection:s?f:yt(t),changed:s}}function vi(e,t,n){const o=new Set(yt(t).filter(f=>!!e[f]));if(!o.size)return{audioClips:e,selection:[],changed:!1};let a=!1;const s=[],u=[];for(let f=0;f<e.length;f++){const v=e[f],S=Math.max(0,Number(v?.startAt)||0),M=Dt(v),G=S+M;if(o.has(f)&&n>S+Wt&&n<G-Wt){const T=(Number(v.in)||0)+(n-S),F=Math.max(0,T-(Number(v.in)||0)),j=Math.max(0,(Number(v.out)||0)-T);u.push(s.length),s.push({...v,track:Number.isInteger(v?.track)&&v.track>=0?v.track:f,out:T,fadeIn:Math.min(Number(v.fadeIn)||0,F),fadeOut:0}),u.push(s.length),s.push({...v,track:Number.isInteger(v?.track)&&v.track>=0?v.track:f,in:T,startAt:n,fadeIn:0,fadeOut:Math.min(Number(v.fadeOut)||0,j)}),a=!0;continue}o.has(f)&&u.push(s.length),s.push(v)}return{audioClips:a?s:e,selection:a?u:yt(t),changed:a}}function hi(e,t,n){const o=new Set(yt(t));let a=0;for(let s=0;s<e.length;s++){const u=e[s],f=Math.max(0,(Number(u?.out)||0)-(Number(u?.in)||0)),v=a+f;if(o.has(s)&&n>a+Wt&&n<v-Wt)return!0;a=v}return!1}function xi(e,t,n){return yt(t).some(o=>{const a=e[o];if(!Zt(a))return!1;const s=lt(a),u=Bt(a,s);return n>s+je&&n<u-je})}function bi(e,t,n){return yt(t).some(o=>{const a=e[o];if(!a)return!1;const s=Math.max(0,Number(a.startAt)||0),u=s+Dt(a);return n>s+Wt&&n<u-Wt})}function gi(e,t){const n=t.getState(),o=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=Bn(e,o),f=Cn(e,a),v=$n(e,n);if(!u.length&&!f.length&&!v.length)return!1;let S=o,M=a,G=s,T=u,F=f,j=v,oe=!1;if(u.length){const Q=ci(S,u);S=Q.clips,T=Q.selection,oe=Q.changed||oe}if(f.length){const Q=di(M,f);M=Q.audioClips,F=Q.selection,oe=Q.changed||oe}if(v.length){const Q=To(G,v);G=Q.overlays,j=Q.selection,oe=Q.changed||oe}return oe?(t.commit({clips:S,audioClips:M,overlays:G}),pn(e,{video:T,audio:F,text:j},{video:T.length?T[T.length-1]:null,audio:F.length?F[F.length-1]:null,text:j.length?j[j.length-1]:null}),!0):!1}function mr(e,t){const n=t.getState(),o=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=Bn(e,o),f=Cn(e,a),v=$n(e,n);let S=o,M=a,G=s,T=u,F=f,j=v,oe=!1;const Q=ui(S,u);Q.changed&&(S=Q.clips,T=Q.selection,oe=!0);const Z=Co(G,v);Z.changed&&(G=Z.overlays,j=Z.selection,oe=!0);const ie=mi(M,f);return ie.changed&&(M=ie.audioClips,F=ie.selection,oe=!0),oe?(t.commit({clips:S,audioClips:M,overlays:G}),pn(e,{video:T,audio:F,text:j},{video:T.length?T[T.length-1]:null,audio:F.length?F[F.length-1]:null,text:j.length?j[j.length-1]:null}),!0):!1}function yi(e,t){const n=t.getState(),o=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=yn(e),f=Bn(e,o),v=Cn(e,a),S=$n(e,n);let M=o,G=a,T=s,F=f,j=v,oe=S,Q=!1;if(f.length){const Z=pi(M,f,u);M=Z.clips,F=Z.selection,Q=Z.changed||Q}if(v.length){const Z=vi(G,v,u);G=Z.audioClips,j=Z.selection,Q=Z.changed||Q}if(S.length){const Z=fi(T,S,Math.max(Tn(t),u+je),u);T=Z.overlays,oe=Z.selection,Q=Z.changed||Q}return Q?(t.commit({clips:M,audioClips:G,overlays:T}),pn(e,{video:F,audio:j,text:oe},{video:F.length?F[F.length-1]:null,audio:j.length?j[j.length-1]:null,text:oe.length?oe[oe.length-1]:null}),!0):!1}function eo(e,t){const n=document.createElement("div");n.className="me-video-text-field";const o=document.createElement("label");return o.textContent=e,n.append(o,t),n}function Yt(e){const t=document.createElement("button");return t.type="button",t.className="me-video-text-mini",t.textContent=e,t}function wi(e,t){const n=document.createElement("button");return n.type="button",n.className="me-video-text-preset",n.dataset.preset=t,n.textContent=e,n}const ki=[{value:"300",label:"Light"},{value:"400",label:"Regular"},{value:"500",label:"Medium"},{value:"600",label:"Semibold"},{value:"700",label:"Bold"},{value:"800",label:"Extra Bold"}],pr={en:{content:"Content",preset:"Preset",styles:"Styles",size:"Size",fill:"Fill",decoration:"Decoration",italic:"Italic",underline:"Underline",strike:"Strike",case:"Case",caseNone:"None",uppercase:"Uppercase",lowercase:"Lowercase",capitalize:"Capitalize",alignLeft:"Left",alignCenter:"Center",alignRight:"Right",animations:"Animations",animation:"Animation",fontStroke:"Font stroke",fontShadow:"Font shadow",x:"X",y:"Y",blur:"Blur",transparent:"Transparent",none:"None"},zh:{content:"\u5185\u5BB9",preset:"\u9884\u8BBE",styles:"\u6837\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u9970",italic:"\u659C\u4F53",underline:"\u4E0B\u5212\u7EBF",strike:"\u5220\u9664\u7EBF",case:"\u5927\u5C0F\u5199",caseNone:"\u65E0",uppercase:"\u5168\u90E8\u5927\u5199",lowercase:"\u5168\u90E8\u5C0F\u5199",capitalize:"\u9996\u5B57\u6BCD\u5927\u5199",alignLeft:"\u5DE6\u5BF9\u9F50",alignCenter:"\u5C45\u4E2D",alignRight:"\u53F3\u5BF9\u9F50",animations:"\u52A8\u753B",animation:"\u52A8\u753B",fontStroke:"\u6587\u5B57\u63CF\u8FB9",fontShadow:"\u6587\u5B57\u9634\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u65E0"},"zh-Hant":{content:"\u5167\u5BB9",preset:"\u9810\u8A2D",styles:"\u6A23\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u98FE",italic:"\u659C\u9AD4",underline:"\u5E95\u7DDA",strike:"\u522A\u9664\u7DDA",case:"\u5927\u5C0F\u5BEB",caseNone:"\u7121",uppercase:"\u5168\u90E8\u5927\u5BEB",lowercase:"\u5168\u90E8\u5C0F\u5BEB",capitalize:"\u9996\u5B57\u6BCD\u5927\u5BEB",alignLeft:"\u9760\u5DE6",alignCenter:"\u7F6E\u4E2D",alignRight:"\u9760\u53F3",animations:"\u52D5\u756B",animation:"\u52D5\u756B",fontStroke:"\u6587\u5B57\u63CF\u908A",fontShadow:"\u6587\u5B57\u9670\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u7121"}},fr={en:{tool:"Ratio",title:"Ratio & canvas size",restore:"Restore",close:"Close",commonPresets:"Platform ratio presets",customSize:"Custom resolution",fitMode:"Canvas fill mode",width:"Width (px)",height:"Height (px)",lockRatio:"Lock ratio",unlockRatio:"Unlock ratio",quickPortrait:"1080p Portrait",quickLandscape:"1080p Landscape",summary:"Current output",baseOutput:"Base output",cover:"Crop to fill",contain:"Fit inside",force:"Stretch to fill",coverHint:"Fills the canvas and crops any overflow.",containHint:"Keeps the full frame and may add letterboxing.",forceHint:"Stretches the frame to the target size without cropping.",cinematic:"Cinematic",tablet:"Tablet"},zh:{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u4E0E\u753B\u5E03\u5C3A\u5BF8",restore:"\u6062\u590D",close:"\u5173\u95ED",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9884\u8BBE",customSize:"\u81EA\u5B9A\u4E49\u5206\u8FA8\u7387",fitMode:"\u753B\u9762\u586B\u5145\u9009\u9879",width:"\u5BBD\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9501\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9501\u6BD4\u4F8B",quickPortrait:"1080p \u7AD6\u5C4F",quickLandscape:"1080p \u6A2A\u5C4F",summary:"\u5F53\u524D\u8F93\u51FA",baseOutput:"\u539F\u59CB\u8F93\u51FA",cover:"\u88C1\u526A\u94FA\u6EE1",contain:"\u5B8C\u6574\u663E\u793A",force:"\u62C9\u4F38\u94FA\u6EE1",coverHint:"\u94FA\u6EE1\u753B\u5E03\uFF0C\u591A\u4F59\u533A\u57DF\u4F1A\u88AB\u88C1\u526A\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u753B\u9762\uFF0C\u53EF\u80FD\u51FA\u73B0\u7559\u767D\u3002",forceHint:"\u5F3A\u5236\u62C9\u4F38\u5230\u76EE\u6807\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u526A\u3002",cinematic:"\u7535\u5F71\u5BBD\u5C4F",tablet:"\u5E73\u677F"},"zh-Hant":{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u8207\u756B\u5E03\u5C3A\u5BF8",restore:"\u9084\u539F",close:"\u95DC\u9589",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9810\u8A2D",customSize:"\u81EA\u8A02\u89E3\u6790\u5EA6",fitMode:"\u756B\u9762\u586B\u5145\u9078\u9805",width:"\u5BEC\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9396\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9396\u6BD4\u4F8B",quickPortrait:"1080p \u76F4\u5F0F",quickLandscape:"1080p \u6A6B\u5F0F",summary:"\u76EE\u524D\u8F38\u51FA",baseOutput:"\u539F\u59CB\u8F38\u51FA",cover:"\u88C1\u5207\u92EA\u6EFF",contain:"\u5B8C\u6574\u986F\u793A",force:"\u62C9\u4F38\u92EA\u6EFF",coverHint:"\u92EA\u6EFF\u756B\u5E03\uFF0C\u591A\u9918\u5340\u57DF\u6703\u88AB\u88C1\u5207\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u756B\u9762\uFF0C\u53EF\u80FD\u51FA\u73FE\u7559\u767D\u3002",forceHint:"\u5F37\u5236\u62C9\u4F38\u81F3\u76EE\u6A19\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u5207\u3002",cinematic:"\u96FB\u5F71\u5BEC\u87A2\u5E55",tablet:"\u5E73\u677F"}},Ei=[{id:"facebook-post",platform:"Facebook",type:"Post",iconText:"f",iconTheme:"facebook",ratios:["1:1","4:5","16:9"]},{id:"facebook-story",platform:"Facebook",type:"Story",iconText:"f",iconTheme:"facebook",ratios:["9:16"]},{id:"instagram-post",platform:"Instagram",type:"Post",iconText:"IG",iconTheme:"instagram",ratios:["1:1","4:5","16:9"]},{id:"instagram-story",platform:"Instagram",type:"Story",iconText:"IG",iconTheme:"instagram",ratios:["9:16"]},{id:"tiktok-photo",platform:"TikTok",type:"Photo",iconText:"T",iconTheme:"tiktok",ratios:["1:1","4:5","9:16"]},{id:"x-post",platform:"X",type:"Post",iconText:"X",iconTheme:"x",ratios:["1:1","16:9"]},{id:"linkedin-post",platform:"LinkedIn",type:"Post",iconText:"in",iconTheme:"linkedin",ratios:["1:1","16:9"]},{id:"pinterest-post",platform:"Pinterest",type:"Post",iconText:"P",iconTheme:"pinterest",ratios:["2:3","1:1"]},{id:"reddit-media",platform:"Reddit",type:"Media",iconText:"R",iconTheme:"reddit",ratios:["1:1","16:9"]},{id:"threads-post",platform:"Threads",type:"Post",iconText:"@",iconTheme:"threads",ratios:["1:1","4:5","16:9"]},{id:"telegram-post",platform:"Telegram",type:"Post",iconText:"TG",iconTheme:"telegram",ratios:["1:1","16:9"]}],Si=["9:16","16:9","1:1","4:5","2:3","3:2"],vr={en:{tool:"Sticker",title:"Stickers",uploadTitle:"Upload sticker",uploadHint:"Click or drop an image here",uploadFormats:"Supports PNG, JPG, WEBP, SVG",libraryTitle:"Built-in sticker library",classicTitle:"Classic stickers",vibeTitle:"Vibe stickers",shapeTitle:"Shape stickers",defaultLabel:"Sticker",uploadedLabel:"Image sticker",emojiLabel:"Emoji sticker"},zh:{tool:"\u8D34\u7EB8",title:"\u8D34\u7EB8",uploadTitle:"\u81EA\u5B9A\u4E49\u672C\u5730\u56FE\u7247\u8D34\u7EB8",uploadHint:"\u70B9\u51FB\u6216\u62D6\u62FD\u56FE\u7247\u5230\u8FD9\u91CC",uploadFormats:"\u652F\u6301 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5185\u7F6E\u7ECF\u5178\u8D34\u7EB8\u5E93",classicTitle:"\u7ECF\u5178\u8D34\u7EB8",vibeTitle:"\u6C1B\u56F4\u8D34\u7EB8",shapeTitle:"\u5F62\u72B6\u8D34\u7EB8",defaultLabel:"\u8D34\u7EB8",uploadedLabel:"\u56FE\u7247\u8D34\u7EB8",emojiLabel:"\u8868\u60C5\u8D34\u7EB8"},"zh-Hant":{tool:"\u8CBC\u7D19",title:"\u8CBC\u7D19",uploadTitle:"\u81EA\u8A02\u672C\u6A5F\u5716\u7247\u8CBC\u7D19",uploadHint:"\u9EDE\u64CA\u6216\u62D6\u62FD\u5716\u7247\u5230\u9019\u88E1",uploadFormats:"\u652F\u63F4 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5167\u5EFA\u7D93\u5178\u8CBC\u7D19\u5EAB",classicTitle:"\u7D93\u5178\u8CBC\u7D19",vibeTitle:"\u6C1B\u570D\u8CBC\u7D19",shapeTitle:"\u5F62\u72C0\u8CBC\u7D19",defaultLabel:"\u8CBC\u7D19",uploadedLabel:"\u5716\u7247\u8CBC\u7D19",emojiLabel:"\u8868\u60C5\u8CBC\u7D19"}},Mo={en:{tool:"Color",title:"Color",filterTool:"Filter",filterTitle:"Filter",presets:"Filter presets",adjustments:"Adjustments",reset:"Reset",brightness:"Brightness",contrast:"Contrast",saturation:"Saturation",temperature:"Temperature",tint:"Tint",vibrance:"Vibrance",gamma:"Gamma",colorSection:"Color",toneSection:"Brightness",effectsSection:"Effects",highlights:"Highlights",shadows:"Shadows",whites:"Whites",blacks:"Blacks",lightSense:"Light Sense",sharpen:"Sharpen",clarity:"Clarity",grain:"Grain",fade:"Fade",vignette:"Vignette",presetNames:{none:"Normal",sepia:"Retro",cool:"Cold",warm:"Warm",vivid:"Cyber",bw:"B&W"}},zh:{tool:"\u8C03\u8272",title:"\u8C03\u8272",filterTool:"\u6EE4\u955C",filterTitle:"\u6EE4\u955C",presets:"\u6EE4\u955C\u9884\u8BBE",adjustments:"\u753B\u9762\u5FAE\u8C03",reset:"\u91CD\u7F6E",brightness:"\u4EAE\u5EA6",contrast:"\u5BF9\u6BD4\u5EA6",saturation:"\u9971\u548C\u5EA6",temperature:"\u8272\u6E29",tint:"\u8272\u8C03",vibrance:"\u81EA\u7136\u9971\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9634\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u9510\u5316",clarity:"\u6E05\u6670",grain:"\u9897\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u753B (Normal)",sepia:"\u590D\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u9633 (Warm)",vivid:"\u8D5B\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}},"zh-Hant":{tool:"\u8ABF\u8272",title:"\u8ABF\u8272",filterTool:"\u6FFE\u93E1",filterTitle:"\u6FFE\u93E1",presets:"\u6FFE\u93E1\u9810\u8A2D",adjustments:"\u756B\u9762\u5FAE\u8ABF",reset:"\u91CD\u8A2D",brightness:"\u4EAE\u5EA6",contrast:"\u5C0D\u6BD4\u5EA6",saturation:"\u98FD\u548C\u5EA6",temperature:"\u8272\u6EAB",tint:"\u8272\u8ABF",vibrance:"\u81EA\u7136\u98FD\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9670\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u92B3\u5316",clarity:"\u6E05\u6670",grain:"\u9846\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u756B (Normal)",sepia:"\u5FA9\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u967D (Warm)",vivid:"\u8CFD\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}}};function Li(e){const t=Xt(e);return{...vr.en,...vr[t]??{}}}function No(e){const t=Xt(e),n=Mo[t]??{};return{...Mo.en,...n,presetNames:{...Mo.en.presetNames,...n.presetNames??{}}}}function Mn(e,t,n="rgba(255,255,255,0.16)"){let o="";return e==="triangle"?o=`<polygon points="128,28 224,220 32,220" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="circle"?o=`<circle cx="128" cy="128" r="94" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="square"?o=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="diamond"?o=`<polygon points="128,24 224,128 128,232 32,128" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="star"?o=`<polygon points="128,24 154,92 228,96 170,142 188,220 128,176 68,220 86,142 28,96 102,92" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="heart"?o=`<path d="M128 220c-7-7-18-16-30-27C64 165 38 141 38 102c0-28 20-50 48-50 18 0 33 10 42 24 9-14 24-24 42-24 28 0 48 22 48 50 0 39-26 63-60 91-12 11-23 20-30 27Z" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:o=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`,`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">${o}</svg>`)}`}function Ti(e){return[{id:"classic",title:e.classicTitle,items:[{id:"heart-eyes",emoji:"\u{1F60D}",label:`${e.emojiLabel} 1`},{id:"joy",emoji:"\u{1F602}",label:`${e.emojiLabel} 2`},{id:"grin",emoji:"\u{1F603}",label:`${e.emojiLabel} 3`},{id:"pray",emoji:"\u{1F64F}",label:`${e.emojiLabel} 4`},{id:"thumbs-up",emoji:"\u{1F44D}",label:`${e.emojiLabel} 5`},{id:"hundred",emoji:"\u{1F4AF}",label:`${e.emojiLabel} 6`},{id:"cat-smile",emoji:"\u{1F63A}",label:`${e.emojiLabel} 7`},{id:"cat-happy",emoji:"\u{1F638}",label:`${e.emojiLabel} 8`},{id:"paw",emoji:"\u{1F43E}",label:`${e.emojiLabel} 9`},{id:"fish",emoji:"\u{1F41F}",label:`${e.emojiLabel} 10`}]},{id:"vibe",title:e.vibeTitle,items:[{id:"sparkles",emoji:"\u2728",label:`${e.emojiLabel} 5`},{id:"heart",emoji:"\u{1F497}",label:`${e.emojiLabel} 6`},{id:"fire",emoji:"\u{1F525}",label:`${e.emojiLabel} 7`},{id:"party",emoji:"\u{1F389}",label:`${e.emojiLabel} 8`}]},{id:"shape",title:e.shapeTitle,items:[{id:"triangle",src:Mn("triangle","#f97316"),label:"Triangle"},{id:"circle",src:Mn("circle","#22c55e"),label:"Circle"},{id:"square",src:Mn("square","#3b82f6"),label:"Square"},{id:"diamond",src:Mn("diamond","#8b5cf6"),label:"Diamond"},{id:"star",src:Mn("star","#facc15"),label:"Star"},{id:"heart-shape",src:Mn("heart","#fb7185"),label:"Heart"}]}]}function Ci(e){const t=Xt(e),n={...pr.en,...pr[t]??{}};return n.searchFont||(n.searchFont=t==="zh-Hant"?"\u641C\u5C0B\u5B57\u9AD4...":t==="zh"?"\u641C\u7D22\u5B57\u4F53...":"Search font..."),n.loadingFonts||(n.loadingFonts=t==="zh-Hant"?"\u6B63\u5728\u8B80\u53D6\u5B57\u9AD4...":t==="zh"?"\u6B63\u5728\u8BFB\u53D6\u5B57\u4F53...":"Loading fonts..."),n.noFonts||(n.noFonts=t==="zh-Hant"?"\u627E\u4E0D\u5230\u5B57\u9AD4":t==="zh"?"\u6CA1\u6709\u627E\u5230\u5B57\u4F53":"No fonts found"),n.sampleText||(n.sampleText=Ko),n}function Mi(e){const t=Xt(e);return{...fr.en,...fr[t]??{}}}const hr={en:{tool:"Annotate",title:"Annotate",hint:"Configure the annotation tools here.",tools:"Tools",color:"Color",custom:"Custom",width:"Line width",reset:"Reset",brush:"Brush",eraser:"Eraser",line:"Line",arrow:"Arrow",rectangle:"Rectangle",ellipse:"Ellipse"},zh:{tool:"\u6807\u6CE8",title:"\u6807\u6CE8",hint:"\u5728\u8FD9\u91CC\u914D\u7F6E\u6807\u6CE8\u5DE5\u5177\u7684\u6837\u5F0F\u53C2\u6570\u3002",tools:"\u5DE5\u5177",color:"\u989C\u8272",custom:"\u81EA\u5B9A\u4E49",width:"\u7EBF\u5BBD",reset:"\u91CD\u7F6E",brush:"\u753B\u7B14",eraser:"\u6A61\u76AE",line:"\u76F4\u7EBF",arrow:"\u7BAD\u5934",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706"},"zh-Hant":{tool:"\u6A19\u8A3B",title:"\u6A19\u8A3B",hint:"\u5728\u9019\u88E1\u8A2D\u5B9A\u6A19\u8A3B\u5DE5\u5177\u7684\u6A23\u5F0F\u53C3\u6578\u3002",tools:"\u5DE5\u5177",color:"\u984F\u8272",custom:"\u81EA\u8A02",width:"\u7DDA\u5BEC",reset:"\u91CD\u8A2D",brush:"\u756B\u7B46",eraser:"\u6A61\u76AE",line:"\u76F4\u7DDA",arrow:"\u7BAD\u982D",rectangle:"\u77E9\u5F62",ellipse:"\u6A62\u5713"}};function Ni(e){const t=Xt(e);return hr[t]??hr.en}const xr=[{key:"brush"},{key:"eraser"},{key:"line"},{key:"arrow"},{key:"rectangle"},{key:"ellipse"}],Dn=2,_n=24,Nn=14,Ba=["pen","line","arrow","rect","ellipse"],Ai={brush:"pen",line:"line",arrow:"arrow",rectangle:"rect",ellipse:"ellipse"},br=["#ffffff","#ff4d4f","#ff7a45","#ffa940","#fadb14","#95de64","#52c41a","#13c2c2","#40a9ff","#2f54eb","#7c7cf0","#eb2f96","#722ed1","#000000"],sn={tool:"brush",color:"#ff4d4f",width:4};function Oi(e){switch(e){case"eraser":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M7.2 15.8 14.9 8a1.8 1.8 0 0 1 2.6 0l2.6 2.6a1.8 1.8 0 0 1 0 2.6l-5.3 5.3a2.4 2.4 0 0 1-1.7.7h-4a2.4 2.4 0 0 1-1.7-.7l-1-1a1.2 1.2 0 0 1 0-1.7Z" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/><path d="M13.1 19.2h6.2" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"/></svg>';case"line":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 19 19 5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/></svg>';case"arrow":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 16 15 6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/><path d="M10.5 6H15v4.5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg>';case"rectangle":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><rect x="5.5" y="5.5" width="13" height="13" rx="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';case"ellipse":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><ellipse cx="12" cy="12" rx="6.6" ry="6.6" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';default:return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m8.2 15.8 7.9-7.9a1.9 1.9 0 0 1 2.7 2.7l-7.9 7.9" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M7.5 16.5c-.5 2.5-2.4 3.8-3.8 4 .2-1.5 1.5-3.3 4-3.8Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/></svg>'}}function zi(){return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m5 19 3.9-1 9.2-9.2a1.8 1.8 0 0 0 0-2.6l-.3-.3a1.8 1.8 0 0 0-2.6 0L6 15.1 5 19Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="m13.7 7.3 3 3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><path d="m5 19 3.3-3.3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>'}function gr(e,t){switch(e?.type){case"pen":return t.brush;case"line":return t.line;case"arrow":return t.arrow;case"rect":return t.rectangle;case"ellipse":return t.ellipse;default:return t.tool}}function $a(e){switch(e?.type){case"pen":return"brush";case"line":return"line";case"arrow":return"arrow";case"rect":return"rectangle";case"ellipse":return"ellipse";default:return sn.tool}}function to(e=sn){const t=xr.some(o=>o.key===e?.tool)?e.tool:sn.tool,n=wr(e?.color);return{tool:t,color:n,width:ae(Math.round(Number(e?.width)||sn.width),Dn,_n)}}function Ao(e,t){return e?.tool===t?.tool&&e?.color===t?.color&&Number(e?.width)===Number(t?.width)}function yr(e){return Ao(e,sn)}function Pi(e){return`${ae(Math.round(Number(e)||sn.width),Dn,_n)}px`}function wr(e){const t=String(e??"").trim().toLowerCase();return/^#?[0-9a-f]{3}$/.test(t)?`#${t.replace("#","").split("").map(o=>`${o}${o}`).join("")}`:/^#?[0-9a-f]{6}$/.test(t)?`#${t.replace("#","")}`:sn.color}function no(e){const t=wr(e);return{r:Number.parseInt(t.slice(1,3),16),g:Number.parseInt(t.slice(3,5),16),b:Number.parseInt(t.slice(5,7),16)}}function oo(e,t,n){return`#${[e,t,n].map(o=>ae(Math.round(Number(o)||0),0,255).toString(16).padStart(2,"0")).join("")}`}function Oo(e,t,n){const o=ae(Number(e)||0,0,255)/255,a=ae(Number(t)||0,0,255)/255,s=ae(Number(n)||0,0,255)/255,u=Math.max(o,a,s),f=Math.min(o,a,s),v=u-f;let S=0;return v>0&&(u===o?S=60*((a-s)/v%6):u===a?S=60*((s-o)/v+2):S=60*((o-a)/v+4)),S<0&&(S+=360),{h:S,s:u<=0?0:v/u,v:u}}function zo(e,t,n){const o=((Number(e)||0)%360+360)%360,a=ae(Number(t)||0,0,1),s=ae(Number(n)||0,0,1),u=s*a,f=o/60,v=u*(1-Math.abs(f%2-1));let S=0,M=0,G=0;f>=0&&f<1?(S=u,M=v):f<2?(S=v,M=u):f<3?(M=u,G=v):f<4?(M=v,G=u):f<5?(S=v,G=u):(S=u,G=v);const T=s-u;return{r:Math.round((S+T)*255),g:Math.round((M+T)*255),b:Math.round((G+T)*255)}}function Hi(e){const t=zo(e,1,1);return oo(t.r,t.g,t.b)}const Ii=["none","sepia","cool","warm","vivid","bw"],Da=["brightness","contrast","saturation","temperature","tint","vibrance","gamma"],An={brightness:0,contrast:0,saturation:0,temperature:0,tint:0,vibrance:0,gamma:0,highlights:0,shadows:0,whites:0,blacks:0,lightSense:0,sharpen:0,clarity:0,grain:0,fade:0,vignette:0},Po=Object.keys(An);function kr(e){return[{title:e.colorSection,items:[{key:"temperature",label:e.temperature,format:"offset",min:-1,max:1},{key:"tint",label:e.tint,format:"offset",min:-1,max:1},{key:"saturation",label:e.saturation,format:"percent",min:-1,max:1},{key:"vibrance",label:e.vibrance,format:"offset",min:-1,max:1},{key:"gamma",label:e.gamma,format:"percent",min:-1,max:1}]},{title:e.toneSection,items:[{key:"brightness",label:e.brightness,format:"percent",min:-1,max:1},{key:"contrast",label:e.contrast,format:"percent",min:-1,max:1},{key:"highlights",label:e.highlights,format:"offset",min:-1,max:1},{key:"shadows",label:e.shadows,format:"offset",min:-1,max:1},{key:"whites",label:e.whites,format:"offset",min:-1,max:1},{key:"blacks",label:e.blacks,format:"offset",min:-1,max:1},{key:"lightSense",label:e.lightSense,format:"offset",min:-1,max:1}]},{title:e.effectsSection,items:[{key:"sharpen",label:e.sharpen,format:"amount",min:0,max:1},{key:"clarity",label:e.clarity,format:"amount",min:0,max:1},{key:"grain",label:e.grain,format:"amount",min:0,max:1},{key:"fade",label:e.fade,format:"amount",min:0,max:1},{key:"vignette",label:e.vignette,format:"amount",min:0,max:1}]}]}function Ri(e){if(typeof e.applyMut=="function"){e.applyMut(t=>({...t,filters:{...t.filters,...An}}));return}e.setFilters({...An})}function Fi(e){const t=new Map(Dr.map(n=>[n.id,n]));return Ii.map(n=>{if(n==="none")return{id:"",css:"",label:e.presetNames.none};const o=t.get(n);return o?{...o,label:e.presetNames[n]??o.label??n}:null}).filter(Boolean)}function Er(e,t="percent"){if(t==="offset"){const n=Math.round((Number(e)||0)*100);return n>0?`+${n}`:`${n}`}return t==="amount"?`${Math.round((Number(e)||0)*100)}%`:`${Math.round((1+(Number(e)||0))*100)}%`}function Ho(e){return[e?.textContent,e?.getAttribute?.("title"),e?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Io(e){return e instanceof HTMLButtonElement?(e.dataset.meTrimHidden="true",e):e??null}function Bi(e){return e instanceof HTMLButtonElement?(e.dataset.meAnnotateHidden="true",e):e??null}function ro(e){const t=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(e.find(n=>{const o=Ho(n);return t.some(a=>o.includes(a))})??e[0]??null)}function $i(e){const t=["annotate","annotation","markup","draw","doodle","\u6807\u6CE8","\u5857\u9E26","\u5857\u9D09"];return Bi(e.find(n=>{const o=Ho(n);return t.some(a=>o.includes(a))})??null)}function Sr(e,t,n){try{const o=document.createElement("canvas");o.width=208,o.height=118;const a=o.getContext("2d");if(!a)return"";const s=t/n,u=o.width/o.height;let f=0,v=0,S=t,M=n;return s>u?(S=n*u,f=(t-S)/2):s<u&&(M=t/u,v=(n-M)/2),a.drawImage(e,f,v,S,M,0,0,o.width,o.height),o.toDataURL("image/jpeg",.82)}catch{return""}}function Di(e){const t=e.querySelector(".me-video-canvas-stage canvas");if(t instanceof HTMLCanvasElement&&t.width>8&&t.height>8)return Sr(t,t.width,t.height);const n=e.querySelector("video");return n instanceof HTMLVideoElement&&n.videoWidth>8&&n.videoHeight>8?Sr(n,n.videoWidth,n.videoHeight):""}function _i(e){const t=String(e??"").split(":").map(a=>Number(a));if(t.length!==2)return null;const[n,o]=t;return!(n>0)||!(o>0)?null:n/o}function io(e,t=1080){const n=_i(e)??1;return n>=1?{w:Math.max(2,Vt(t*n)),h:Math.max(2,Vt(t))}:{w:Math.max(2,Vt(t)),h:Math.max(2,Vt(t/n))}}function ji(){return Ei.map(e=>({...e,ratios:e.ratios.map(t=>({ratio:t,...io(t)}))}))}function Lr(e){return`${e.platform} ${e.type}`}function Yi(e){switch(e.id){case"facebook-post":return"FB Post";case"facebook-story":return"FB Story";case"instagram-post":return"IG Post";case"instagram-story":return"IG Story";case"tiktok-photo":return"TikTok";case"x-post":return"X Post";case"linkedin-post":return"LinkedIn";case"pinterest-post":return"Pinterest";case"reddit-media":return"Reddit";case"threads-post":return"Threads";case"telegram-post":return"Telegram";default:return Lr(e)}}function Vi(e){return Si.map(t=>{const n=io(t),o=e.filter(a=>a.ratios.some(s=>s.ratio===t));return o.length?{ratio:t,...n,groups:o,hint:o.map(a=>Lr(a)).join(" / "),tags:o.map(a=>Yi(a))}:null}).filter(Boolean)}function On(e){return`${Math.max(2,Vt(e?.w??0))} x ${Math.max(2,Vt(e?.h??0))} px`}function Tr(e){const t=e?.canvas??{w:1080,h:1920};return _o(t,{...e,scale:void 0})}function jn(e){return e?.scale?{w:Math.max(2,Vt(e.scale.width)),h:Math.max(2,Vt(e.scale.height))}:Tr(e)}function Ro(e){return e==="contain"||e==="force"?e:"cover"}function fn(e,t){const n=Number(e),o=Number.isFinite(n)&&n>0?n:t;return Math.max(2,Vt(o||2))}function Xi(e,t){const n=Math.max(2,Vt(t?.w??0)),o=Math.max(2,Vt(t?.h??0));return e.find(a=>Math.abs(a.w-n)<=2&&Math.abs(a.h-o)<=2)??null}function qi(e,t){switch(Ro(t)){case"contain":return e.containHint;case"force":return e.forceHint;default:return e.coverHint}}function ao(e,t){e.replaceChildren();for(const n of t){const o=document.createElement("option");o.value=n.value,o.textContent=n.label,e.appendChild(o)}}function Yn(e=[],t=[]){const n=typeof Intl<"u"?new Intl.Collator(void 0,{sensitivity:"base",numeric:!0}):null,o=new Set;return[...e,...t].map(a=>String(a??"").trim()).filter(Boolean).filter(a=>{const s=a.toLowerCase();return o.has(s)?!1:(o.add(s),!0)}).sort((a,s)=>n?n.compare(a,s):a.localeCompare(s))}function Fo(e){return`"${String(e??"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}", ${Xn}`}function so(e){const t=String(e??"").trim();return Vr[t]||t}function Bo(e){const t=String(e??"").trim(),n=so(t);return n&&n!==t?`${n} (${t})`:t}function Wi(e){const t=String(e??"").trim();return`${t} ${so(t)} ${Bo(t)}`.toLowerCase()}function Cr(e){return/[\u3400-\u9fff\uf900-\ufaff]/.test(String(e??""))}function Ki(e){const t=String(e??"").trim().toLowerCase();return t?Xr.some(n=>t.includes(n))?!0:Cr(so(e)):!1}function Ui(e,t=!1){const n=Yn(e);if(!t)return n;const o=[],a=[];for(const s of n)Ki(s)?o.push(s):a.push(s);return[...o,...a]}async function Gi(){return qn||(qn=(async()=>{const e=Yn(Vo);if(typeof window>"u"||typeof window.queryLocalFonts!="function")return e;try{const n=(await window.queryLocalFonts()).map(o=>o?.family||o?.fullName||"").filter(Boolean);return Yn(n,e)}catch{return e}})(),qn)}function Zi(e){const t=document.createElement("div");t.className="me-video-font-picker";const n=document.createElement("button");n.type="button",n.className="me-video-font-picker-trigger";const o=document.createElement("span");o.className="me-video-font-picker-label";const a=document.createElement("span");a.className="me-video-font-picker-chevron",a.textContent="v",n.append(o,a);const s=document.createElement("div");s.className="me-video-font-picker-dropdown",s.hidden=!0;const u=document.createElement("label");u.className="me-video-font-picker-search";const f=document.createElement("span");f.className="me-video-font-picker-search-icon",f.innerHTML='<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><circle cx="7" cy="7" r="4.5" stroke="currentColor" stroke-width="1.4"></circle><path d="M10.5 10.5L14 14" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path></svg>';const v=document.createElement("input");v.type="search",v.className="me-video-font-picker-search-input",v.placeholder=e.searchFont,v.autocomplete="off",v.spellcheck=!1;const S=document.createElement("div");S.className="me-video-font-picker-list",u.append(f,v),s.append(u,S),t.append(n,s);let M=!1,G=!1,T=!1,F="Arial",j=Yn(Vo),oe=!1;const Q=typeof requestAnimationFrame=="function"?requestAnimationFrame:Y=>setTimeout(Y,0);function Z(){F||(F="Arial"),j=Yn(j,[F])}function ie(Y){const L=document.createElement("div");return L.className="me-video-font-picker-message",L.textContent=Y,L}function he(Y){const L=document.createElement("button");L.type="button",L.className="me-video-font-picker-option",Y===F&&L.classList.add("is-active"),L.dataset.family=Y;const B=document.createElement("span");B.className="me-video-font-picker-option-name",B.textContent=Bo(Y),B.style.fontFamily=Fo(Y);const q=document.createElement("span");return q.className="me-video-font-picker-option-preview",q.textContent=e.sampleText||Ko,q.style.fontFamily=Fo(Y),L.append(B,q),L.addEventListener("click",()=>{x(Y),t.dispatchEvent(new CustomEvent("fontchange",{detail:{value:Y}})),te(!1),n.focus()}),L}function ne(){const Y=F||"Arial";o.textContent=so(Y),o.style.fontFamily=Fo(F||"Arial"),n.title=Bo(Y),n.disabled=G}function xe(){if(S.replaceChildren(),!M)return;if(T){S.appendChild(ie(e.loadingFonts));return}Z();const Y=String(v.value??"").trim().toLowerCase(),L=Ui(j.filter(B=>!Y||Wi(B).includes(Y)),oe);if(!L.length){S.appendChild(ie(e.noFonts));return}for(const B of L)S.appendChild(he(B))}function te(Y){G&&Y||(M=!!Y,t.classList.toggle("is-open",M),s.hidden=!M,M?Q(()=>{v.focus(),v.select()}):v.value="",xe())}async function w(){if(!T){T=!0,xe();try{j=await Gi(),Z()}finally{T=!1,xe()}}}function x(Y,{silent:L=!1}={}){F=String(Y??"").trim()||"Arial",Z(),ne(),!L&&M&&xe()}function k(){return F||"Arial"}function N(Y){G=!!Y,G&&te(!1),ne(),v.disabled=G}function y(Y){const L=Cr(Y);oe!==L&&(oe=L,M&&xe())}function z(Y){M&&(t.contains(Y.target)||te(!1))}return n.addEventListener("click",async()=>{const Y=!M;te(Y),Y&&await w()}),v.addEventListener("input",()=>xe()),document.addEventListener("pointerdown",z,!0),x("Arial",{silent:!0}),N(!1),{wrap:t,setValue:x,getValue:k,setDisabled:N,setContextText:y,destroy(){document.removeEventListener("pointerdown",z,!0)}}}function Ji(e){const t=String(e??"").trim().toLowerCase();return/^#([0-9a-f]{3}|[0-9a-f]{6})$/.test(t)?t.length===7?t:`#${t.slice(1).split("").map(n=>`${n}${n}`).join("")}`:null}function vn(e,t="#ffffff"){const n=String(e??"").trim();if(!n)return t;if(n.toLowerCase()==="transparent")return"transparent";const o=Ji(n);if(o)return o;const a=n.match(/^rgba?\(([^)]+)\)$/i);if(a){const s=a[1].split(",").slice(0,3).map(u=>ae(Math.round(Number(u.trim())||0),0,255));if(s.length===3)return`#${s.map(u=>u.toString(16).padStart(2,"0")).join("")}`}return t}function Tt(e,t,n=""){const o=document.createElement("div");o.className=`me-video-text-row${n?` ${n}`:""}`;const a=document.createElement("label");return a.className="me-video-text-row-label",a.textContent=e,o.append(a,t),o}function Kt(e){const t=document.createElement("section");t.className="me-video-text-section";const n=document.createElement("h4");n.className="me-video-text-section-title",n.textContent=e;const o=document.createElement("div");return o.className="me-video-text-section-body",t.append(n,o),{section:t,body:o,title:n}}function lo({allowTransparent:e=!1,fallback:t="#ffffff",transparentLabel:n="Transparent"}={}){const o=document.createElement("div");o.className="me-video-text-color-control";const a=document.createElement("input");a.type="color",a.className="me-video-text-color-swatch",a.value=vn(t,"#ffffff");const s=document.createElement("input");s.type="text",s.className="me-video-text-input me-video-text-color-text",s.spellcheck=!1,o.append(a,s);let u=null;e&&(u=document.createElement("button"),u.type="button",u.className="me-video-text-toggle me-video-text-transparent-toggle",u.textContent=n,o.appendChild(u));function f(){return o.dataset.transparent==="true"}function v(T){o.dataset.transparent=T?"true":"false",u?.classList.toggle("is-active",T),a.disabled=T,T?s.value="transparent":(!s.value||s.value==="transparent")&&(s.value=a.value||vn(t,"#ffffff"))}function S(T){if(e&&String(T??"").trim().toLowerCase()==="transparent"){v(!0);return}const F=vn(T,vn(t,"#ffffff"));a.value=F==="transparent"?vn(t,"#ffffff"):F,s.value=F==="transparent"?"transparent":F,e&&v(F==="transparent")}function M(){return e&&f()?"transparent":vn(s.value||a.value,a.value||vn(t,"#ffffff"))}function G(T){a.disabled=T||e&&f(),s.disabled=T,u&&(u.disabled=T)}return S(t),{wrap:o,swatch:a,text:s,transparentButton:u,setTransparent:v,setValue:S,getValue:M,setDisabled:G}}function co(e){const t=e.querySelector(".me-video-workspace");if(!t)return null;let n=t.querySelector(".me-video-inspector-rail");return n||(n=document.createElement("aside"),n.className="me-video-inspector-rail",n.hidden=!0,t.appendChild(n)),n}function rn(e,t){const n=co(e);return n?(t.parentElement!==n&&n.appendChild(t),n):null}function Ht(e){const t=co(e);if(!t)return;const n=[...t.children].some(o=>o instanceof HTMLElement&&!o.hidden);t.hidden=!n}function Mr(e,t,n){const o=co(e);if(!(!o||!(t instanceof HTMLElement))){for(const a of o.children)if(!(!(a instanceof HTMLElement)||a===t)){if(n){a.dataset.meInspectorPrevHidden||(a.dataset.meInspectorPrevHidden=a.hidden?"true":"false"),a.hidden=!0;continue}Object.prototype.hasOwnProperty.call(a.dataset,"meInspectorPrevHidden")&&(a.hidden=a.dataset.meInspectorPrevHidden==="true",delete a.dataset.meInspectorPrevHidden)}}}function Nr(e){return new Set(String(e??"").split(/\s+/).map(t=>t.trim()).filter(Boolean))}function Qi(e){return[...e].join(" ").trim()}function ea(e,t,n,o){Qt(),kn();const a=o(),s=Go(a),u=s.text,f=Ci(a),v=document.createElement("div");v.className="me-video-text-panel",v.hidden=!0,e.appendChild(v);const S=document.createElement("div");S.className="me-video-text-toolbar";const M=document.createElement("strong");M.textContent=u.tool;const G=Yt(u.addText),T=Yt(u.moveOnCanvas),F=Yt(u.duplicate),j=Yt(u.delete);j.classList.add("me-video-text-danger");const oe=Yt(u.close);S.append(M);const Q=document.createElement("div");Q.className="me-video-text-list";const Z=document.createElement("div");Z.className="me-video-text-empty",Z.textContent=u.empty;const ie=document.createElement("textarea");ie.className="me-video-text-input me-video-text-textarea",ie.placeholder=u.placeholder;const he=document.createElement("select");he.className="me-video-text-select",ao(he,[{value:"none",label:f.none},{value:"heading",label:u.heading},{value:"subtitle",label:u.subtitle},{value:"label",label:u.label}]);const ne=Zi(f),xe=document.createElement("select");xe.className="me-video-text-select",ao(xe,ki);const te=document.createElement("input");te.type="number",te.min="8",te.max="320",te.step="1",te.className="me-video-text-input";const w=lo({fallback:"#ffffff"}),x=lo({allowTransparent:!0,fallback:"#111111",transparentLabel:f.transparent}),k=document.createElement("div");k.className="me-video-text-inline";const N=[{value:"left",label:f.alignLeft},{value:"center",label:f.alignCenter},{value:"right",label:f.alignRight}].map(m=>{const H=document.createElement("button");return H.type="button",H.className="me-video-text-align",H.dataset.align=m.value,H.textContent=m.label,k.appendChild(H),{value:m.value,button:H}}),y=document.createElement("div");y.className="me-video-text-toggle-group";const z=document.createElement("button");z.type="button",z.className="me-video-text-toggle is-italic",z.title=f.italic,z.textContent="I";const Y=document.createElement("button");Y.type="button",Y.className="me-video-text-toggle is-underline",Y.title=f.underline,Y.textContent="U";const L=document.createElement("button");L.type="button",L.className="me-video-text-toggle is-strike",L.title=f.strike,L.textContent="S",y.append(z,Y,L);const B=document.createElement("select");B.className="me-video-text-select",ao(B,[{value:"none",label:f.caseNone},{value:"uppercase",label:f.uppercase},{value:"lowercase",label:f.lowercase},{value:"capitalize",label:f.capitalize}]);const q=document.createElement("div");q.className="me-video-text-slider-row";const V=document.createElement("input");V.type="number",V.min="0",V.max="100",V.step="1",V.className="me-video-text-input";const X=document.createElement("input");X.type="range",X.min="0",X.max="100",X.step="1",q.append(V,X);const re=document.createElement("select");re.className="me-video-text-select",ao(re,[{value:"none",label:f.none}]);const pe=lo({fallback:"#000000"}),se=document.createElement("input");se.type="number",se.min="0",se.max="32",se.step="1",se.className="me-video-text-input";const A=lo({fallback:"#000000"}),b=document.createElement("input");b.type="number",b.min="-80",b.max="80",b.step="1",b.className="me-video-text-input";const le=document.createElement("input");le.type="number",le.min="-80",le.max="80",le.step="1",le.className="me-video-text-input";const Le=document.createElement("input");Le.type="number",Le.min="0",Le.max="80",Le.step="1",Le.className="me-video-text-input";const ve=document.createElement("div");ve.className="me-video-text-section-body",ve.append(Tt(u.content,ie,"is-area"),Tt(f.preset,he));const Re=Kt(f.styles);Re.body.append(Tt(u.font,ne.wrap),Tt(u.weight,xe),Tt(f.size,te),Tt(u.color,w.wrap),Tt(f.fill,x.wrap),Tt(u.align,k),Tt(f.decoration,y),Tt(f.case,B),Tt(u.opacity,q));const D=Kt(f.animations);D.body.append(Tt(f.animation,re));const ee=Kt(f.fontStroke);ee.body.append(Tt(u.color,pe.wrap),Tt(f.size,se));const _=Kt(f.fontShadow);_.body.append(Tt(u.color,A.wrap),Tt(f.x,b),Tt(f.y,le),Tt(f.blur,Le)),v.append(S,Z,ve,Re.section,D.section,ee.section,_.section);let K=null,fe=null,qe=null,Oe=null,Je=null,Ge=null,Ye=null,dt=null,rt=!1,ze=null,it=!1,xt=!1;const wt="text",ke=typeof requestAnimationFrame=="function"?requestAnimationFrame:m=>setTimeout(m,16),Pe=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ce()),Ce=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ce()),et=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],tt={key:"rotate",x:.5,y:0};function ht(){Promise.resolve().then(()=>{xt=!1;const m=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,m-1)})}function gt(m){xt=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return m()}finally{ht()}}function ce(){it||(it=!0,ke(()=>{it=!1,Ke()}))}function Se(m){const H=!!m;if(H===rt){Ke();return}rt=H,rt&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:wt}})),Ke()}function Ve(){return fe?[...fe.querySelectorAll("button")].filter(m=>m!==K&&!m.classList.contains("me-video-text-tool")):[]}function Ze(){Ve()[0]?.click()}function at(){if(!K)return;const m=Wn(n());K.dataset.theme=m}function Et(){rn(e,v),Ht(e)}function St(){v.hidden=!rt,K&&K.classList.toggle("is-active",rt),Et()}function Rt(m){if(!m.length){ze=null;return}const H=Lo(e,t.getState());ze=H.length?H[H.length-1]:null}function ut(){const m=t.getState().overlays??[];if(ze==null)return null;const H=m[ze];return H?.type==="text"?H:null}function It(){return Tn(t)}function Lt(){return yn(e)}function jt(){if(!t.history?.present)return;const m=Lt(),H=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(H)?H:-1)-m)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:m}},typeof t.emit=="function"&&t.emit())}function At(m,H,W={}){const d=(t.getState().overlays??[])[m];!d||d.type!=="text"||t.updateOverlay(m,Jt(d,It(),H),W)}function Ct(m){if(typeof t.applyMut=="function"){t.applyMut(W=>({...W,overlays:[...on(W.overlays),{...m,timelineTrack:0}]}));return}const H=on(t.getState().overlays);t.commit?.({overlays:[...H,{...m,timelineTrack:0}]})}function mt(m,H={}){if(ze==null)return;const W=H.preservePreset||Object.prototype.hasOwnProperty.call(m,"textPreset")?m:{...m,textPreset:"none"};t.updateOverlay(ze,W)}function Ut(m="heading"){const H=It();let W=ae(Lt(),0,Math.max(0,H-je)),l=Math.min(H,W+qt);l-W<je&&(W=ae(H-qt,0,Math.max(0,H-je)),l=Math.max(W+je,H));const d={...er(t,s,m),...Jt(null,H,{startAt:W,endAt:l,timelineTrack:0})};Ct(d);const r=t.getState().overlays??[];ze=r.length?r.length-1:null,ze!=null&&bt(e,"text",[ze]),Ze(),Se(!0)}function E(){const m=t.getState(),H=To(m.overlays??[],Lo(e,m));H.changed&&(t.commit({overlays:H.overlays}),ze=H.selection.length?H.selection[H.selection.length-1]:null,bt(e,"text",H.selection),Ke())}function R(){const m=t.getState(),H=Co(m.overlays??[],Lo(e,m));H.changed&&(t.commit({overlays:H.overlays}),ze=null,bt(e,"text",[]),Ke())}function U(m){if(!ut()){Ut(m);return}const W=er(t,s,m);mt({text:W.text,fontSize:W.fontSize,width:W.width,fontWeight:W.fontWeight,fontFamily:W.fontFamily,fontStyle:W.fontStyle,textAlign:W.textAlign,color:W.color,backgroundColor:W.backgroundColor,borderColor:W.borderColor,borderWidth:W.borderWidth,paddingX:W.paddingX,paddingY:W.paddingY,lineHeight:W.lineHeight,boxShadow:W.boxShadow?{...W.boxShadow}:void 0,textDecoration:W.textDecoration??"",textTransform:W.textTransform,animation:"none",textPreset:m},{preservePreset:!0})}function Te(){const{timelineInner:m,timelineHost:H}=Fn(e,t.getState());if(!m||!H){Oe?.remove(),Oe=null,Pe&&Je&&(Pe.unobserve(Je),Je=null),qe=null;return}qe=m,(!Oe||!Oe.isConnected||Oe.parentElement!==H)&&(Oe?.remove(),Oe=document.createElement("div"),Oe.className="me-video-text-timeline me-video-overlay-timeline me-video-text-overlay-layer");for(const W of[...H.children])W!==Oe&&W instanceof HTMLElement&&W.classList.contains("me-video-text-overlay-layer")&&W.remove();(Oe.parentElement!==H||H.lastElementChild!==Oe)&&H.appendChild(Oe),Pe&&Je!==qe&&(Je&&Pe.unobserve(Je),Je=qe,Pe.observe(qe))}function Fe(){const m=e.querySelector(".me-video-canvas-stage");if(!m){Ye?.remove(),Ye=null,Ce&&dt&&(Ce.unobserve(dt),dt=null),Ge=null;return}Ge=m,Ge.style.position="relative",!Ye||!Ye.isConnected||Ye.parentElement!==Ge?(Ye?.remove(),Ye=document.createElement("div"),Ye.className="me-video-text-canvas-layer",Ye.addEventListener("pointerdown",H=>{H.target===Ye&&(H.preventDefault(),H.stopPropagation())}),Ye.addEventListener("click",H=>{H.target===Ye&&(H.preventDefault(),H.stopPropagation(),ze=null,ko(e),rt?Se(!1):Ke())}),Ge.appendChild(Ye)):Ge.lastElementChild!==Ye&&Ge.appendChild(Ye),Ce&&dt!==Ge&&(dt&&Ce.unobserve(dt),dt=Ge,Ce.observe(Ge))}function p(){if(!Ge)return null;const H=t.getState().canvas??{},W=Math.max(1,Number(H.w)||0),l=Math.max(1,Number(H.h)||0);if(!W||!l)return null;const d=Ge.getBoundingClientRect(),r=Ge.querySelector("canvas, video, img")||[...Ge.children].find(O=>O!==Ye)||null;let i=0,c=0,h=Ge.clientWidth||W,I=Ge.clientHeight||l;if(r instanceof HTMLElement){const O=r.getBoundingClientRect();O.width>0&&O.height>0&&(i=O.left-d.left,c=O.top-d.top,h=O.width,I=O.height)}if(!(h>0&&I>0)){const O=Ge.clientWidth||W,J=Ge.clientHeight||l,C=Math.min(O/W,J/l)||1;h=W*C,I=l*C,i=Math.max(0,(O-h)/2),c=Math.max(0,(J-I)/2)}return{stageLeft:d.left,stageTop:d.top,left:i,top:c,scaleX:h/W,scaleY:I/l}}function g(m,H){const W=lt(m),l=Bt(m,W);return H>=W-.001&&H<=l+.001}function $(m,H,W){const l=Pt(e,"text",m,H,W);ze=l.length?l[l.length-1]:null,Se(!0),Ke()}function de(m,H,W){return{x:(m-W.stageLeft-W.left)/W.scaleX,y:(H-W.stageTop-W.top)/W.scaleY}}function be(m,H,W,l){return{x:W,y:l,fontSize:H.fontSize,width:H.width,paddingX:H.paddingX,paddingY:H.paddingY,borderWidth:H.borderWidth,boxShadow:H.boxShadow}}function ye(m,H,W){const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;const d=t.getState().canvas??{w:1080,h:1920},r=Gt(l);if(!r)return;const i=H.clientX,c=H.clientY,h=Math.max(0,(Number(d.w)||0)-r.w),I=Math.max(0,(Number(d.h)||0)-r.h),O=(P,me,ue)=>{const Me=(P-i)/W.scaleX,we=(me-c)/W.scaleY,ge=ae(r.x+Me,0,h),Ae=ae(r.y+we,0,I);t.updateOverlay(m,{x:ge,y:Ae},ue?{transient:!0}:void 0)},J=P=>{P.preventDefault(),O(P.clientX,P.clientY,!0)},C=P=>{window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",C),window.removeEventListener("pointercancel",C),O(P.clientX,P.clientY,!1)};window.addEventListener("pointermove",J),window.addEventListener("pointerup",C),window.addEventListener("pointercancel",C)}function Be(m,H,W,l){const d=(t.getState().overlays??[])[m];if(!d||d.type!=="text")return;const r=Gt(d);if(!r)return;const i=t.getState().canvas??{w:1080,h:1920},c=H.x===.5?.5:1-H.x,h=H.y===.5?.5:1-H.y,I=r.x+r.w*c,O=r.y+r.h*h,J=Math.max(.1,24/Math.max(24,r.w),24/Math.max(24,r.h)),C=H.x===.5?1/0:Math.max(.1,(c===0?(Number(i.w)||0)-I:I)/Math.max(1,r.w)),P=H.y===.5?1/0:Math.max(.1,(h===0?(Number(i.h)||0)-O:O)/Math.max(1,r.h)),me=Math.max(J,Math.min(C,P,8)),ue=(ge,Ae,_e)=>{const Xe=de(ge,Ae,l),We=[];H.x!==.5&&We.push(Math.abs(Xe.x-I)/Math.max(1,r.w)),H.y!==.5&&We.push(Math.abs(Xe.y-O)/Math.max(1,r.h));const st=We.length?Math.max(...We):1,Nt=ae(st,J,me),$t=jo(d,Nt),cn=Gt($t);if(!cn)return;const dn=I-cn.w*c,Hn=O-cn.h*h;t.updateOverlay(m,be(d,$t,dn,Hn),_e?{transient:!0}:void 0)},Me=ge=>{ge.preventDefault(),ue(ge.clientX,ge.clientY,!0)},we=ge=>{window.removeEventListener("pointermove",Me),window.removeEventListener("pointerup",we),window.removeEventListener("pointercancel",we),ue(ge.clientX,ge.clientY,!1)};window.addEventListener("pointermove",Me),window.addEventListener("pointerup",we),window.addEventListener("pointercancel",we)}function Ee(m,H,W){const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;const d=Gt(l);if(!d)return;const r=W.stageLeft+W.left+(d.x+d.w/2)*W.scaleX,i=W.stageTop+W.top+(d.y+d.h/2)*W.scaleY,c=Math.atan2(H.clientY-i,H.clientX-r),h=un(l),I=(C,P,me,ue)=>{const Me=Math.atan2(P-i,C-r);let we=In(h+(Me-c)*180/Math.PI);ue&&(we=Math.round(we/15)*15),t.updateOverlay(m,{rotation:we},me?{transient:!0}:void 0)},O=C=>{C.preventDefault(),I(C.clientX,C.clientY,!0,C.shiftKey)},J=C=>{window.removeEventListener("pointermove",O),window.removeEventListener("pointerup",J),window.removeEventListener("pointercancel",J),I(C.clientX,C.clientY,!1,C.shiftKey)};window.addEventListener("pointermove",O),window.addEventListener("pointerup",J),window.addEventListener("pointercancel",J)}function $e(m,H){if(Fe(),!Ye)return;Ye.replaceChildren();const W=p();if(!W){Ye.hidden=!0;return}Ye.hidden=!1;const l=Lt(),d=m.map(i=>i.index),r=m.filter(i=>g(i.overlay,l));for(const i of r){const c=Gt(i.overlay);if(!c)continue;const h=document.createElement("button");h.type="button",h.className="me-video-text-canvas-hit";const I=H.has(i.index),O=I&&ze===i.index;I&&h.classList.add("is-active"),h.title=Kn(i.overlay.text,s.untitledText),h.style.left=`${W.left+c.x*W.scaleX}px`,h.style.top=`${W.top+c.y*W.scaleY}px`,h.style.width=`${Math.max(18,c.w*W.scaleX)}px`,h.style.height=`${Math.max(18,c.h*W.scaleY)}px`;const J=un(i.overlay);if(J&&(h.style.transform=`rotate(${J}deg)`,h.style.transformOrigin="center center"),h.addEventListener("pointerdown",C=>{if(C.preventDefault(),C.stopPropagation(),C.shiftKey||C.ctrlKey||C.metaKey){$(i.index,C,d);return}ze=i.index,bt(e,"text",[i.index]),Se(!0),ye(i.index,C,W)}),O){for(const P of et){const me=document.createElement("span");me.className="me-video-text-canvas-handle",me.dataset.handle=P.key,me.style.left=`${P.x*100}%`,me.style.top=`${P.y*100}%`,me.addEventListener("pointerdown",ue=>{ue.preventDefault(),ue.stopPropagation(),ze=i.index,bt(e,"text",[i.index]),Se(!0),Be(i.index,P,ue,W)}),h.appendChild(me)}const C=document.createElement("span");C.className="me-video-text-canvas-handle",C.dataset.handle=tt.key,C.style.left=`${tt.x*100}%`,C.style.top=`${tt.y*100}%`,C.addEventListener("pointerdown",P=>{P.preventDefault(),P.stopPropagation(),ze=i.index,bt(e,"text",[i.index]),Se(!0),Ee(i.index,P,W)}),h.appendChild(C)}Ye.appendChild(h)}}function Ne(m,H,W){if(!qe)return;const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;if(W.shiftKey||W.ctrlKey||W.metaKey){W.preventDefault(),W.stopPropagation();const P=Pt(e,"text",m,W,rr(t.getState()).map(me=>me.index));ze=P.length?P[P.length-1]:null,Ze(),Se(!0);return}W.preventDefault(),W.stopPropagation(),ze=m,bt(e,"text",[m]),Ze(),rt||Se(!0);const d=It(),r=Math.max(qe.clientWidth/d,.001),i=lt(l),c=Bt(l,i),h=Math.max(je,c-i),I=vt(l),O=W.clientX,J=P=>{const me=(P.clientX-O)/r,ue=t.getState().overlays??[];if(H==="move"){const ge=Math.max(0,i+me),Ae=ge+h,_e=pt(Oe,ue,m,ge,Ae,P.clientY,I);At(m,{startAt:ge,endAt:Ae,timelineTrack:_e},{transient:!0});return}if(H==="start"){const ge=ae(i+me,0,c-je),Ae=pt(Oe,ue,m,ge,c,P.clientY,I);At(m,{startAt:ge,endAt:c,timelineTrack:Ae},{transient:!0});return}const Me=Math.max(i+je,c+me),we=pt(Oe,ue,m,i,Me,P.clientY,I);At(m,{startAt:i,endAt:Me,timelineTrack:we},{transient:!0})},C=P=>{window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",C),window.removeEventListener("pointercancel",C);const me=(P.clientX-O)/r,ue=t.getState().overlays??[];if(H==="move"){const ge=Math.max(0,i+me),Ae=ge+h,_e=pt(Oe,ue,m,ge,Ae,P.clientY,I);At(m,{startAt:ge,endAt:Ae,timelineTrack:_e});return}if(H==="start"){const ge=ae(i+me,0,c-je),Ae=pt(Oe,ue,m,ge,c,P.clientY,I);At(m,{startAt:ge,endAt:c,timelineTrack:Ae});return}const Me=Math.max(i+je,c+me),we=pt(Oe,ue,m,i,Me,P.clientY,I);At(m,{startAt:i,endAt:Me,timelineTrack:we})};window.addEventListener("pointermove",J),window.addEventListener("pointerup",C),window.addEventListener("pointercancel",C),Ke()}function De(m,H){if(Te(),!Oe||!qe||(Oe.replaceChildren(),Oe.hidden=m.length===0,!m.length))return;const W=It(),l=qe.clientWidth/W,d=Rn(t.getState()),r=new Map;for(const i of m){const c=vt(i.overlay),h=d.get(c)??c;let I=r.get(c);I||(I=document.createElement("div"),I.className="me-video-overlay-track-row",I.dataset.track=String(c),I.style.top=`${Ln(h)}px`,r.set(c,I),Oe.appendChild(I));const O=document.createElement("div");O.className="me-video-text-track-clip",H.has(i.index)&&O.classList.add("is-active");const J=lt(i.overlay),C=Sn(i.overlay);O.style.left=`${J*l}px`,O.style.width=`${Math.max(36,C*l)}px`;const P=document.createElement("span");P.className="me-video-text-track-icon",P.textContent="Aa";const me=document.createElement("span");me.className="me-video-text-track-label",me.textContent=Kn(i.overlay.text,s.untitledText),me.title=me.textContent;const ue=document.createElement("span");ue.className="me-video-text-track-handle is-start";const Me=document.createElement("span");Me.className="me-video-text-track-handle is-end",O.append(P,me,ue,Me),O.addEventListener("pointerdown",we=>Ne(i.index,"move",we)),ue.addEventListener("pointerdown",we=>Ne(i.index,"start",we)),Me.addEventListener("pointerdown",we=>Ne(i.index,"end",we)),O.addEventListener("click",we=>{if(we.preventDefault(),we.stopPropagation(),we.shiftKey||we.ctrlKey||we.metaKey){Ze(),Ke();return}const ge=Pt(e,"text",i.index,we,m.map(Ae=>Ae.index));ze=ge.length?ge[ge.length-1]:null,Ze(),Se(!0),Ke()}),I.appendChild(O)}}function Qe(m,H){Q.replaceChildren(),Q.hidden=m.length===0,Z.hidden=m.length>0;for(const W of m){const l=document.createElement("button");l.type="button",l.className="me-video-text-chip",H.has(W.index)&&l.classList.add("is-active"),l.textContent=Kn(W.overlay.text,s.untitledText),l.title=Kn(W.overlay.text,s.untitledText),l.addEventListener("click",d=>{const r=Pt(e,"text",W.index,d,m.map(i=>i.index));ze=r.length?r[r.length-1]:null,Ke()}),Q.appendChild(l)}}function Ie(m){ie.disabled=m,ne.setDisabled(m),xe.disabled=m,te.disabled=m,N.forEach(({button:H})=>H.disabled=m),B.disabled=m,re.disabled=m,V.disabled=m,X.disabled=m,se.disabled=m,b.disabled=m,le.disabled=m,Le.disabled=m,w.setDisabled(m),x.setDisabled(m),pe.setDisabled(m),A.setDisabled(m),F.disabled=m,j.disabled=m,T.disabled=m,z.disabled=m,Y.disabled=m,L.disabled=m}function He(m){const H=String(ae(Math.round(Number(m)||0),0,100));V.value=H,X.value=H}function Ue(m){const H=Nr(m?.textDecoration);z.classList.toggle("is-active",!!m&&String(m.fontStyle??"normal")==="italic"),Y.classList.toggle("is-active",!!m&&H.has("underline")),L.classList.toggle("is-active",!!m&&H.has("line-through"))}function ct(m="left"){N.forEach(({value:H,button:W})=>{})}function ft(m){if(Ie(!!!m),!m){he.value="none",ie.value="",ne.setContextText(""),ne.setValue("Arial",{silent:!0}),xe.value="700",te.value="72",w.setValue("#ffffff"),x.setValue("transparent"),ct("center"),B.value="none",re.value="none",pe.setValue("#000000"),se.value="0",A.setValue("#000000"),b.value="0",le.value="4",Le.value="18",He(100),Ue(null);return}const W=m.boxShadow??{};he.value=String(m.textPreset??"none"),ie.value=String(m.text??""),ne.setContextText(m.text??""),ne.setValue(String(m.fontFamily??"Arial"),{silent:!0}),xe.value=String(m.fontWeight??"700"),te.value=String(Math.round(Number(m.fontSize)||72)),w.setValue(m.color??"#ffffff"),x.setValue(m.backgroundColor??"transparent"),ct(m.textAlign==="right"||m.textAlign==="center"?m.textAlign:"left"),B.value=m.textTransform?String(m.textTransform):"none",re.value=m.animation?String(m.animation):"none",pe.setValue(m.borderColor??"#000000"),se.value=String(Math.round(Number(m.borderWidth)||0)),A.setValue(W.color??"#000000"),b.value=String(Math.round(Number(W.x)||0)),le.value=String(Math.round(Number(W.y)||0)),Le.value=String(Math.round(Number(W.blur)||0)),He(Number.isFinite(m.opacity)?m.opacity:100),Ue(m)}function Ke(){gt(()=>{const m=rr(t.getState());Rt(m);const H=new Set(_t(e,"text"));De(m,H),$e(m,H),Qe(m,H),ft(ut()),St(),Et(),at()}),jt()}function nt(){gt(()=>{const m=e.querySelector(".me-video-toolrail");m&&(fe=m,$i([...fe.querySelectorAll("button")].filter(H=>H instanceof HTMLButtonElement&&H!==K&&!H.classList.contains("me-video-text-tool"))),(!K||!K.isConnected)&&(K=document.createElement("button"),K.type="button",K.className="me-video-text-tool",K.innerHTML=`<span class="me-video-text-tool-icon">T</span><span class="me-video-text-tool-label">${u.tool}</span>`,K.addEventListener("click",()=>{Ut("heading")})),K.isConnected||fe.appendChild(K),at(),Et())})}function ot(m){return!!m&&(m===v||v.contains(m)||m===K||m===Oe||Oe?.contains?.(m)||m===Ye||Ye?.contains?.(m))}function Ot(m){return m.some(H=>{if(!ot(H.target))return!0;for(const W of H.addedNodes)if(!ot(W))return!0;for(const W of H.removedNodes)if(!ot(W))return!0;return!1})}function Ft(m,H){m.swatch.addEventListener("input",()=>{m.transparentButton&&m.wrap.dataset.transparent==="true"&&m.setTransparent(!1),m.text.value=m.swatch.value,H(m.getValue())}),m.text.addEventListener("change",()=>{const W=String(m.text.value??"").trim();if(m.transparentButton&&W.toLowerCase()==="transparent"){m.setTransparent(!0),H("transparent");return}const l=vn(W,m.swatch.value||"#ffffff");m.swatch.value=l==="transparent"?m.swatch.value||"#ffffff":l,m.text.value=l,m.transparentButton&&m.setTransparent(!1),H(l)}),m.transparentButton?.addEventListener("click",()=>{const W=m.wrap.dataset.transparent!=="true";m.setTransparent(W),H(m.getValue())})}function kt(m){const H=ut();if(!H)return;const W={color:"#000000",x:0,y:4,blur:18,...H.boxShadow??{}};mt({boxShadow:{...W,...m}})}function ln(m){const H=ut();if(!H)return;const W=Nr(H.textDecoration);W.has(m)?W.delete(m):W.add(m),mt({textDecoration:Qi(W)||void 0})}const an=new MutationObserver(m=>{xt||e.__meVideoEnhancerObserverLock||Ot(m)&&(nt(),ce())}),en=m=>{m?.detail?.id!==wt&&rt&&(rt=!1,Ke())},Mt=()=>{Ke()};an.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",en),e.addEventListener(zt,Mt),window.addEventListener("resize",Et);const tn=t.subscribe(()=>{Ke()});return G.addEventListener("click",()=>Ut("heading")),T.addEventListener("click",()=>{Ze(),Se(!0)}),F.addEventListener("click",E),j.addEventListener("click",R),oe.addEventListener("click",()=>{Se(!1)}),ie.addEventListener("input",()=>{ne.setContextText(ie.value),mt({text:ie.value})}),he.addEventListener("change",()=>{if(he.value==="none"){ut()&&mt({textPreset:"none"},{preservePreset:!0});return}U(he.value)}),ne.wrap.addEventListener("fontchange",()=>mt({fontFamily:ne.getValue()})),xe.addEventListener("change",()=>mt({fontWeight:xe.value})),te.addEventListener("change",()=>mt({fontSize:ae(Number(te.value)||72,8,320)})),Ft(w,m=>mt({color:m})),Ft(x,m=>mt({backgroundColor:m})),N.forEach(({value:m,button:H})=>{H.addEventListener("click",()=>{ct(m),mt({textAlign:m})})}),B.addEventListener("change",()=>mt({textTransform:B.value==="none"?void 0:B.value})),re.addEventListener("change",()=>mt({animation:re.value==="none"?void 0:re.value})),se.addEventListener("change",()=>mt({borderWidth:ae(Number(se.value)||0,0,32)})),Ft(pe,m=>mt({borderColor:m})),Ft(A,m=>kt({color:m})),b.addEventListener("change",()=>kt({x:ae(Number(b.value)||0,-80,80)})),le.addEventListener("change",()=>kt({y:ae(Number(le.value)||0,-80,80)})),Le.addEventListener("change",()=>kt({blur:ae(Number(Le.value)||0,0,80)})),V.addEventListener("input",()=>{const m=ae(Number(V.value)||0,0,100);He(m),mt({opacity:m})}),X.addEventListener("input",()=>{const m=ae(Number(X.value)||0,0,100);He(m),mt({opacity:m})}),z.addEventListener("click",()=>{const m=ut();m&&mt({fontStyle:String(m.fontStyle??"normal")==="italic"?"normal":"italic"})}),Y.addEventListener("click",()=>ln("underline")),L.addEventListener("click",()=>ln("line-through")),nt(),Ke(),{destroy(){an.disconnect(),Pe&&Je&&Pe.unobserve(Je),Ce&&dt&&Ce.unobserve(dt),tn(),e.removeEventListener("me-video-inspector-open",en),e.removeEventListener(zt,Mt),window.removeEventListener("resize",Et),ne.destroy(),K?.remove(),Oe?.remove(),Ye?.remove(),v.remove(),Ht(e)}}}function ta(e,t,n){Qt(),kn();const o=Li(n()),a=Ti(o),s=document.createElement("div");s.className="me-video-text-panel me-video-sticker-panel",s.hidden=!0,e.appendChild(s);const u=document.createElement("div");u.className="me-video-text-toolbar";const f=document.createElement("strong");f.textContent=o.title,u.append(f);const v=Kt(o.uploadTitle),S=document.createElement("label");S.className="me-video-sticker-upload-zone";const M=document.createElement("span");M.className="me-video-sticker-upload-icon",M.textContent="\u{1F5BC}";const G=document.createElement("span");G.className="me-video-sticker-upload-text",G.textContent=o.uploadHint;const T=document.createElement("span");T.className="me-video-sticker-upload-subtext",T.textContent=o.uploadFormats;const F=document.createElement("input");F.type="file",F.accept="image/png,image/jpeg,image/webp,image/svg+xml",S.append(M,G,T,F),v.body.appendChild(S);const j=Kt(o.libraryTitle),oe=document.createElement("div");oe.className="me-video-sticker-library",j.body.appendChild(oe),s.append(u,v.section,j.section);let Q=null,Z=null,ie=null,he=null,ne=null,xe=null,te=null,w=null,x=null,k=!1,N=null,y=!1,z=!1;const Y="sticker",L=typeof requestAnimationFrame=="function"?requestAnimationFrame:E=>setTimeout(E,16),B=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>se()),q=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>se()),V=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],X={key:"rotate",x:.5,y:0};function re(){Promise.resolve().then(()=>{z=!1;const E=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,E-1)})}function pe(E){z=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return E()}finally{re()}}function se(){y||(y=!0,L(()=>{y=!1,ut()}))}function A(E){const R=!!E;if(R===k){ut();return}k=R,k&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Y}})),ut()}function b(E=Z){return E?[...E.children].filter(R=>R instanceof HTMLButtonElement&&!R.classList.contains("me-video-text-tool")):[]}function le(E){return[E?.textContent,E?.getAttribute?.("title"),E?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Le(E){const R=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(E.find(U=>{const Te=le(U);return R.some(Fe=>Te.includes(Fe))})??E[0]??null)}function ve(E){const R=[o.tool,o.title,"sticker","stickers","\u8D34\u7EB8","\u8CBC\u7D19"].map(U=>String(U??"").trim().toLowerCase()).filter(Boolean);return E.find(U=>{const Te=le(U);return R.some(Fe=>Te.includes(Fe))})??E[Math.min(5,Math.max(0,E.length-1))]??null}function Re(){if(Q?.classList.toggle("is-active",k),!!ie&&k){ie.classList.remove("is-active");return}}function D(){ie&&(ie.classList.contains("is-active")||ie.click())}function ee(){rn(e,s),Ht(e)}function _(){s.hidden=!k,Re(),ee()}function K(E){if(!E.length){N=null;return}const R=cr(e,t.getState());N=R.length?R[R.length-1]:null}function fe(){return Tn(t)}function qe(){return yn(e)}function Oe(){if(!t.history?.present)return;const E=qe(),R=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(R)?R:-1)-E)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:E}},typeof t.emit=="function"&&t.emit())}function Je(E){return E?.emoji?`${o.defaultLabel} ${E.emoji}`:E?.src?o.uploadedLabel:o.defaultLabel}function Ge(E){const R=Gt(E);if(!R)return null;if(!E?.emoji)return R;const U=.84,Te=R.w*(1-U)/2,Fe=R.h*(1-U)/2;return{x:R.x+Te,y:R.y+Fe,w:R.w*U,h:R.h*U}}function Ye(E,R){if(!E?.emoji)return R;const Te=1/.84,Fe=(Te-1)/2;return{x:R.x-R.w*Fe,y:R.y-R.h*Fe,w:R.w*Te,h:R.h*Te}}function dt(E,R){const U=Math.max(1,Number(R?.w)||1080),Te=Math.max(1,Number(R?.h)||1920),Fe=ae(Number.isFinite(E?.w)?E.w:8,8,Math.max(8,U)),p=ae(Number.isFinite(E?.h)?E.h:8,8,Math.max(8,Te));return{x:ae(Number.isFinite(E?.x)?E.x:0,0,Math.max(0,U-Fe)),y:ae(Number.isFinite(E?.y)?E.y:0,0,Math.max(0,Te-p)),w:Fe,h:p}}function rt(E){return E?.emoji||"\u2726"}function ze(E,R,U={}){const Fe=(t.getState().overlays??[])[E];!Fe||Fe.type!=="sticker"||t.updateOverlay(E,Jt(Fe,fe(),R),U)}function it(E){if(typeof t.applyMut=="function"){t.applyMut(U=>({...U,overlays:[...on(U.overlays),{...E,timelineTrack:0}]}));return}const R=on(t.getState().overlays);t.commit?.({overlays:[...R,{...E,timelineTrack:0}]})}function xt(E){return new Promise(R=>{const U=new Image;U.onload=()=>R({w:U.naturalWidth||256,h:U.naturalHeight||256}),U.onerror=()=>R({w:256,h:256}),U.src=E})}async function wt(E){const R=fe();let U=ae(qe(),0,Math.max(0,R-je)),Te=Math.min(R,U+qt);Te-U<je&&(U=ae(R-qt,0,Math.max(0,R-je)),Te=Math.max(U+je,R));const Fe=t.getState().canvas??{w:1080,h:1920},p=E.emoji?{w:256,h:256}:await xt(E.src),g=Math.max(96,Math.round(Math.min(Fe.w,Fe.h)*.24)),$=jr(p.w,p.h,g),de={type:"sticker",x:Math.round((Fe.w-$.w)/2),y:Math.round((Fe.h-$.h)/2),w:$.w,h:$.h,rotation:0,...E.emoji?{emoji:E.emoji}:{src:E.src},...Jt(null,R,{startAt:U,endAt:Te,timelineTrack:0})};it(de);const be=t.getState().overlays??[];N=be.length?be.length-1:null,N!=null&&bt(e,"text",[N]),D(),A(!0)}async function ke(E){const R=E?.[0];if(!R||!String(R.type||"").startsWith("image/")&&!/\.(png|jpe?g|webp|svg)$/i.test(R.name||""))return;const U=await new Promise((Te,Fe)=>{const p=new FileReader;p.onload=()=>Te(String(p.result||"")),p.onerror=()=>Fe(p.error||new Error("Failed to read sticker file")),p.readAsDataURL(R)}).catch(()=>"");U&&(F.value="",await wt({src:U}))}function Pe(){oe.replaceChildren();for(const E of a){const R=document.createElement("div");R.className="me-video-sticker-library-group";const U=document.createElement("div");U.className="me-video-sticker-library-title",U.textContent=E.title;const Te=document.createElement("div");Te.className="me-video-sticker-grid";for(const Fe of E.items){const p=document.createElement("button");if(p.type="button",p.className="me-video-sticker-card",p.title=Fe.label,p.setAttribute("aria-label",Fe.label),Fe.emoji){const g=document.createElement("span");g.className="me-video-sticker-card-emoji",g.textContent=Fe.emoji,p.appendChild(g)}else if(Fe.src){const g=document.createElement("img");g.src=Fe.src,g.alt=Fe.label,p.appendChild(g)}p.addEventListener("click",()=>{wt(Fe)}),Te.appendChild(p)}R.append(U,Te),oe.appendChild(R)}}function Ce(){pe(()=>{const E=e.querySelector(".me-video-toolrail");E&&(Z=E,(!Q||!Q.isConnected)&&(Q=document.createElement("button"),Q.type="button",Q.className="me-video-text-tool",Q.innerHTML=`<span class="me-video-text-tool-icon">\u2726</span><span class="me-video-text-tool-label">${o.tool}</span>`,Q.title=o.tool,Q.setAttribute("aria-label",o.tool),Q.addEventListener("click",()=>{const R=!k;R&&D(),A(R)})),Q.isConnected||Z.appendChild(Q),ee())})}function et(){const{timelineInner:E,timelineHost:R}=Fn(e,t.getState());if(!E||!R){ne?.remove(),ne=null,B&&xe&&(B.unobserve(xe),xe=null),he=null;return}he=E,(!ne||!ne.isConnected||ne.parentElement!==R)&&(ne?.remove(),ne=document.createElement("div"),ne.className="me-video-text-timeline me-video-sticker-timeline me-video-overlay-timeline me-video-sticker-overlay-layer");for(const U of[...R.children])U!==ne&&U instanceof HTMLElement&&U.classList.contains("me-video-sticker-overlay-layer")&&U.remove();(ne.parentElement!==R||R.lastElementChild!==ne)&&R.appendChild(ne),B&&xe!==he&&(xe&&B.unobserve(xe),xe=he,B.observe(he))}function tt(){const E=e.querySelector(".me-video-canvas-stage");if(!E){w?.remove(),w=null,q&&x&&(q.unobserve(x),x=null),te=null;return}te=E,te.style.position="relative",!w||!w.isConnected||w.parentElement!==te?(w?.remove(),w=document.createElement("div"),w.className="me-video-text-canvas-layer me-video-sticker-canvas-layer",w.addEventListener("pointerdown",R=>{R.target===w&&(R.preventDefault(),R.stopPropagation())}),w.addEventListener("click",R=>{R.target===w&&(R.preventDefault(),R.stopPropagation(),N=null,ko(e),k?A(!1):ut())}),te.appendChild(w)):te.lastElementChild!==w&&te.appendChild(w),q&&x!==te&&(x&&q.unobserve(x),x=te,q.observe(te))}function ht(){if(!te)return null;const R=t.getState().canvas??{},U=Math.max(1,Number(R.w)||0),Te=Math.max(1,Number(R.h)||0);if(!U||!Te)return null;const Fe=te.getBoundingClientRect(),p=te.querySelector("canvas, video, img")||[...te.children].find(ye=>ye!==w)||null;let g=0,$=0,de=te.clientWidth||U,be=te.clientHeight||Te;if(p instanceof HTMLElement){const ye=p.getBoundingClientRect();ye.width>0&&ye.height>0&&(g=ye.left-Fe.left,$=ye.top-Fe.top,de=ye.width,be=ye.height)}if(!(de>0&&be>0)){const ye=te.clientWidth||U,Be=te.clientHeight||Te,Ee=Math.min(ye/U,Be/Te)||1;de=U*Ee,be=Te*Ee,g=Math.max(0,(ye-de)/2),$=Math.max(0,(Be-be)/2)}return{stageLeft:Fe.left,stageTop:Fe.top,left:g,top:$,scaleX:de/U,scaleY:be/Te}}function gt(E,R){const U=lt(E),Te=Bt(E,U);return R>=U-.001&&R<=Te+.001}function ce(E,R,U){const Te=Pt(e,"text",E,R,U);N=Te.length?Te[Te.length-1]:null,A(!0),ut()}function Se(E,R,U){return{x:(E-U.stageLeft-U.left)/U.scaleX,y:(R-U.stageTop-U.top)/U.scaleY}}function Ve(E,R,U){const Te=(t.getState().overlays??[])[E];if(!Te||Te.type!=="sticker")return;const Fe=t.getState().canvas??{w:1080,h:1920},p=Gt(Te);if(!p)return;const g=R.clientX,$=R.clientY,de=Math.max(0,(Number(Fe.w)||0)-p.w),be=Math.max(0,(Number(Fe.h)||0)-p.h),ye=($e,Ne,De)=>{const Qe=($e-g)/U.scaleX,Ie=(Ne-$)/U.scaleY,He=ae(p.x+Qe,0,de),Ue=ae(p.y+Ie,0,be);t.updateOverlay(E,{x:He,y:Ue},De?{transient:!0}:void 0)},Be=$e=>{$e.preventDefault(),ye($e.clientX,$e.clientY,!0)},Ee=$e=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",Ee),window.removeEventListener("pointercancel",Ee),ye($e.clientX,$e.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",Ee),window.addEventListener("pointercancel",Ee)}function Ze(E,R,U,Te){const Fe=(t.getState().overlays??[])[E];if(!Fe||Fe.type!=="sticker")return;const p=Ge(Fe);if(!p)return;const g=t.getState().canvas??{w:1080,h:1920},$=R.x===.5?.5:1-R.x,de=R.y===.5?.5:1-R.y,be=p.x+p.w*$,ye=p.y+p.h*de,Be=Math.max(.1,24/Math.max(24,p.w),24/Math.max(24,p.h)),Ee=R.x===.5?1/0:Math.max(.1,($===0?(Number(g.w)||0)-be:be)/Math.max(1,p.w)),$e=R.y===.5?1/0:Math.max(.1,(de===0?(Number(g.h)||0)-ye:ye)/Math.max(1,p.h)),Ne=Math.max(Be,Math.min(Ee,$e,8)),De=(He,Ue,ct)=>{const ft=Se(He,Ue,Te),Ke=[];R.x!==.5&&Ke.push(Math.abs(ft.x-be)/Math.max(1,p.w)),R.y!==.5&&Ke.push(Math.abs(ft.y-ye)/Math.max(1,p.h));const nt=Ke.filter(Number.isFinite),ot=nt.length?Math.max(...nt):1,Ot=ae(ot,Be,Ne),Ft={x:be-p.w*Ot*$,y:ye-p.h*Ot*de,w:Math.max(8,p.w*Ot),h:Math.max(8,p.h*Ot)},kt=dt(Ye(Fe,Ft),g);t.updateOverlay(E,{x:kt.x,y:kt.y,w:kt.w,h:kt.h},ct?{transient:!0}:void 0)},Qe=He=>{He.preventDefault(),De(He.clientX,He.clientY,!0)},Ie=He=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",Ie),window.removeEventListener("pointercancel",Ie),De(He.clientX,He.clientY,!1)};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",Ie),window.addEventListener("pointercancel",Ie)}function at(E,R,U){const Te=(t.getState().overlays??[])[E];if(!Te||Te.type!=="sticker")return;const Fe=Ge(Te);if(!Fe)return;const p=U.stageLeft+U.left+(Fe.x+Fe.w/2)*U.scaleX,g=U.stageTop+U.top+(Fe.y+Fe.h/2)*U.scaleY,$=Math.atan2(R.clientY-g,R.clientX-p),de=un(Te),be=(Ee,$e,Ne,De)=>{const Qe=Math.atan2($e-g,Ee-p);let Ie=In(de+(Qe-$)*180/Math.PI);De&&(Ie=Math.round(Ie/15)*15),t.updateOverlay(E,{rotation:Ie},Ne?{transient:!0}:void 0)},ye=Ee=>{Ee.preventDefault(),be(Ee.clientX,Ee.clientY,!0,Ee.shiftKey)},Be=Ee=>{window.removeEventListener("pointermove",ye),window.removeEventListener("pointerup",Be),window.removeEventListener("pointercancel",Be),be(Ee.clientX,Ee.clientY,!1,Ee.shiftKey)};window.addEventListener("pointermove",ye),window.addEventListener("pointerup",Be),window.addEventListener("pointercancel",Be)}function Et(E,R){if(tt(),!w)return;w.replaceChildren();const U=ht();if(!U){w.hidden=!0;return}w.hidden=!1;const Te=qe(),Fe=E.map(g=>g.index),p=E.filter(g=>gt(g.overlay,Te));for(const g of p){const $=Ge(g.overlay);if(!$)continue;const de=document.createElement("button");de.type="button",de.className="me-video-text-canvas-hit me-video-sticker-canvas-hit";const be=R.has(g.index),ye=be&&N===g.index;be&&de.classList.add("is-active"),de.title=Je(g.overlay),de.style.left=`${U.left+$.x*U.scaleX}px`,de.style.top=`${U.top+$.y*U.scaleY}px`,de.style.width=`${Math.max(18,$.w*U.scaleX)}px`,de.style.height=`${Math.max(18,$.h*U.scaleY)}px`;const Be=un(g.overlay);if(Be&&(de.style.transform=`rotate(${Be}deg)`,de.style.transformOrigin="center center"),de.addEventListener("pointerdown",Ee=>{if(Ee.preventDefault(),Ee.stopPropagation(),Ee.shiftKey||Ee.ctrlKey||Ee.metaKey){ce(g.index,Ee,Fe);return}N=g.index,bt(e,"text",[g.index]),A(!0),Ve(g.index,Ee,U)}),ye){for(const $e of V){const Ne=document.createElement("span");Ne.className="me-video-text-canvas-handle",Ne.dataset.handle=$e.key,Ne.style.left=`${$e.x*100}%`,Ne.style.top=`${$e.y*100}%`,Ne.addEventListener("pointerdown",De=>{De.preventDefault(),De.stopPropagation(),N=g.index,bt(e,"text",[g.index]),A(!0),Ze(g.index,$e,De,U)}),de.appendChild(Ne)}const Ee=document.createElement("span");Ee.className="me-video-text-canvas-handle",Ee.dataset.handle=X.key,Ee.style.left=`${X.x*100}%`,Ee.style.top=`${X.y*100}%`,Ee.addEventListener("pointerdown",$e=>{$e.preventDefault(),$e.stopPropagation(),N=g.index,bt(e,"text",[g.index]),A(!0),at(g.index,$e,U)}),de.appendChild(Ee)}w.appendChild(de)}}function St(E,R,U){if(!he)return;const Te=(t.getState().overlays??[])[E];if(!Te||Te.type!=="sticker")return;if(U.shiftKey||U.ctrlKey||U.metaKey){U.preventDefault(),U.stopPropagation();const $e=Pt(e,"text",E,U,ir(t.getState()).map(Ne=>Ne.index));N=$e.length?$e[$e.length-1]:null,D(),A(!0);return}U.preventDefault(),U.stopPropagation(),N=E,bt(e,"text",[E]),D(),k||A(!0);const Fe=fe(),p=Math.max(he.clientWidth/Fe,.001),g=lt(Te),$=Bt(Te,g),de=Math.max(je,$-g),be=vt(Te),ye=U.clientX,Be=$e=>{const Ne=($e.clientX-ye)/p,De=t.getState().overlays??[];if(R==="move"){const He=Math.max(0,g+Ne),Ue=He+de,ct=pt(ne,De,E,He,Ue,$e.clientY,be);ze(E,{startAt:He,endAt:Ue,timelineTrack:ct},{transient:!0});return}if(R==="start"){const He=ae(g+Ne,0,$-je),Ue=pt(ne,De,E,He,$,$e.clientY,be);ze(E,{startAt:He,endAt:$,timelineTrack:Ue},{transient:!0});return}const Qe=Math.max(g+je,$+Ne),Ie=pt(ne,De,E,g,Qe,$e.clientY,be);ze(E,{startAt:g,endAt:Qe,timelineTrack:Ie},{transient:!0})},Ee=$e=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",Ee),window.removeEventListener("pointercancel",Ee);const Ne=($e.clientX-ye)/p,De=t.getState().overlays??[];if(R==="move"){const He=Math.max(0,g+Ne),Ue=He+de,ct=pt(ne,De,E,He,Ue,$e.clientY,be);ze(E,{startAt:He,endAt:Ue,timelineTrack:ct});return}if(R==="start"){const He=ae(g+Ne,0,$-je),Ue=pt(ne,De,E,He,$,$e.clientY,be);ze(E,{startAt:He,endAt:$,timelineTrack:Ue});return}const Qe=Math.max(g+je,$+Ne),Ie=pt(ne,De,E,g,Qe,$e.clientY,be);ze(E,{startAt:g,endAt:Qe,timelineTrack:Ie})};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",Ee),window.addEventListener("pointercancel",Ee),ut()}function Rt(E,R){if(et(),!ne||!he||(ne.replaceChildren(),ne.hidden=E.length===0,!E.length))return;const U=fe(),Te=he.clientWidth/U,Fe=Rn(t.getState()),p=new Map;for(const g of E){const $=vt(g.overlay),de=Fe.get($)??$;let be=p.get($);be||(be=document.createElement("div"),be.className="me-video-overlay-track-row",be.dataset.track=String($),be.style.top=`${Ln(de)}px`,p.set($,be),ne.appendChild(be));const ye=document.createElement("div");ye.className="me-video-text-track-clip me-video-sticker-track-clip",R.has(g.index)&&ye.classList.add("is-active");const Be=lt(g.overlay),Ee=Sn(g.overlay);ye.style.left=`${Be*Te}px`,ye.style.width=`${Math.max(36,Ee*Te)}px`;const $e=document.createElement("span");$e.className="me-video-text-track-icon",$e.textContent=rt(g.overlay);const Ne=document.createElement("span");Ne.className="me-video-text-track-label",Ne.textContent=Je(g.overlay),Ne.title=Ne.textContent;const De=document.createElement("span");De.className="me-video-text-track-handle is-start";const Qe=document.createElement("span");Qe.className="me-video-text-track-handle is-end",ye.append($e,Ne,De,Qe),ye.addEventListener("pointerdown",Ie=>St(g.index,"move",Ie)),De.addEventListener("pointerdown",Ie=>St(g.index,"start",Ie)),Qe.addEventListener("pointerdown",Ie=>St(g.index,"end",Ie)),ye.addEventListener("click",Ie=>{if(Ie.preventDefault(),Ie.stopPropagation(),Ie.shiftKey||Ie.ctrlKey||Ie.metaKey){D(),ut();return}const He=Pt(e,"text",g.index,Ie,E.map(Ue=>Ue.index));N=He.length?He[He.length-1]:null,D(),A(!0),ut()}),be.appendChild(ye)}}function ut(){pe(()=>{Ce();const E=b().find(Te=>Te.classList.contains("is-active"))??null;k&&E&&E!==ie&&E!==Q&&(D(),se());const R=ir(t.getState());K(R);const U=new Set(cr(e,t.getState()));Rt(R,U),Et(R,U),_(),ee()}),Oe()}function It(E){return!!E&&(E===s||s.contains(E)||E===Q||Q?.contains?.(E)||E===ne||ne?.contains?.(E)||E===w||w?.contains?.(E))}function Lt(E){return E.some(R=>{if(!It(R.target))return!0;for(const U of R.addedNodes)if(!It(U))return!0;for(const U of R.removedNodes)if(!It(U))return!0;return!1})}const jt=new MutationObserver(E=>{z||e.__meVideoEnhancerObserverLock||Lt(E)&&(Ce(),se())}),At=E=>{E?.detail?.id!==Y&&k&&(k=!1,ut())},Ct=()=>{ut()},mt=E=>{const R=E.target;if(!(R instanceof Node)||!Q||!Q.contains(R))return;E.preventDefault(),E.stopPropagation(),E.stopImmediatePropagation?.();const U=!k;U&&(D(),se()),A(U)};jt.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",At),e.addEventListener(zt,Ct),e.addEventListener("click",mt,!0),window.addEventListener("resize",ee);const Ut=t.subscribe(()=>{ut()});return F.addEventListener("change",()=>{ke(F.files)}),S.addEventListener("dragenter",E=>{E.preventDefault(),S.classList.add("is-dragover")}),S.addEventListener("dragover",E=>{E.preventDefault(),S.classList.add("is-dragover")}),S.addEventListener("dragleave",E=>{E.target===S&&S.classList.remove("is-dragover")}),S.addEventListener("drop",E=>{E.preventDefault(),S.classList.remove("is-dragover"),ke(E.dataTransfer?.files)}),Pe(),Ce=function(){pe(()=>{const E=e.querySelector(".me-video-toolrail");if(!E)return;Z=E;const R=b(Z);ie=Le(R),Q=ve(R),Re(),ee()})},Ce(),ut(),{destroy(){jt.disconnect(),B&&xe&&B.unobserve(xe),q&&x&&q.unobserve(x),Ut(),e.removeEventListener("me-video-inspector-open",At),e.removeEventListener(zt,Ct),e.removeEventListener("click",mt,!0),window.removeEventListener("resize",ee),k=!1,Re(),ne?.remove(),w?.remove(),s.remove(),Ht(e)}}}function na(e,t,n){Qt(),kn();const o=No(n()),a=Fi(o),s=new Map(a.map(p=>[String(p.id??""),p])),u=a.find(p=>p.id)?.id??"",f=document.createElement("div");f.className="me-video-text-panel me-video-color-panel me-video-filter-panel",f.hidden=!0,e.appendChild(f);const v=document.createElement("div");v.className="me-video-text-toolbar";const S=document.createElement("strong");S.textContent=o.filterTitle;const M=Yt(o.reset);v.append(S,M);const G=Kt(o.presets),T=document.createElement("div");T.className="me-video-color-grid",G.body.appendChild(T);const F=a.map(p=>{const g=document.createElement("button");g.type="button",g.className="me-video-color-card",g.dataset.presetId=p.id??"";const $=document.createElement("div");$.className="me-video-color-preview",$.style.filter=p.css||"none";const de=document.createElement("img");de.alt="",de.draggable=!1,de.hidden=!0,$.appendChild(de);const be=document.createElement("div");return be.className="me-video-color-card-title",be.textContent=p.label,g.append($,be),T.appendChild(g),{entry:p,buttonEl:g,previewImage:de}});f.append(v,G.section);let j=null,oe=null,Q=null,Z=null,ie=null,he=null,ne=null,xe=null,te=null,w=null,x=null,k=null,N=!1,y=null,z=!1,Y=!1,L="";const B="filter",q=typeof requestAnimationFrame=="function"?requestAnimationFrame:p=>setTimeout(p,16),V=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>b()),X=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>b()),re=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],pe={key:"rotate",x:.5,y:0};function se(){Promise.resolve().then(()=>{Y=!1;const p=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,p-1)})}function A(p){Y=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return p()}finally{se()}}function b(){z||(z=!0,q(()=>{z=!1,Ct()}))}function le(p=oe){return p?[...p.children].filter(g=>g instanceof HTMLButtonElement&&g!==Z&&!g.classList.contains("me-video-text-tool")):[]}function Le(p){const g=[o.filterTool,o.filterTitle,"filter","filters","\u6EE4\u955C","\u6FFE\u93E1"].map($=>String($??"").trim().toLowerCase()).filter(Boolean);return p.find($=>{const de=Ho($);return g.some(be=>de.includes(be))})??p[3]??null}function ve(){Q&&(Q.classList.contains("is-active")||Q.click())}function Re(){rn(e,f),Ht(e)}function D(p){const g=!!p;if(g===N){Ct();return}N=g,N&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:B}})),Ct()}function ee(){if(j?.classList.toggle("is-active",N),!!Q&&N){Q.classList.remove("is-active");return}}function _(){f.hidden=!N,ee(),Re()}function K(){const p=t.getState().overlays??[];if(y==null)return null;const g=p[y];return g?.type==="filter"?g:null}function fe(){return Tn(t)}function qe(){return yn(e)}function Oe(){if(!t.history?.present)return;const p=qe(),g=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(g)?g:-1)-p)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:p}},typeof t.emit=="function"&&t.emit())}function Je(p){if(!p.length){y=null;return}const g=dr(e,t.getState());y=g.length?g[g.length-1]:null}function Ge(p){return String(p?.filterPreset??"").trim()}function Ye(p){return s.get(Ge(p))??null}function dt(p){return Ye(p)?.css||"none"}function rt(p){return Ye(p)?.label||o.filterTitle}function ze(p){const g=Number(p?.w),$=Number(p?.h);return!(g>0)||!($>0)?null:{x:Number(p?.x)||0,y:Number(p?.y)||0,w:Math.max(48,g),h:Math.max(48,$)}}function it(p,g){const $=ze(p);if(!$)return p;const de=Math.max(.1,Number(g)||1);return{...p,w:Math.max(48,$.w*de),h:Math.max(48,$.h*de)}}function xt(p,g,$={}){const be=(t.getState().overlays??[])[p];!be||be.type!=="filter"||t.updateOverlay(p,Jt(be,fe(),g),$)}function wt(p,g){y!=null&&t.updateOverlay(y,p,g)}function ke(p){if(typeof t.applyMut=="function"){t.applyMut($=>({...$,overlays:[...on($.overlays),{...p,timelineTrack:0}]}));return}const g=on(t.getState().overlays);t.commit?.({overlays:[...g,{...p,timelineTrack:0}]})}function Pe(p=u){const g=t.getState().canvas??{w:1080,h:1920},$=ae(Math.round((Number(g.w)||1080)*.68),180,Math.max(180,(Number(g.w)||1080)-48)),de=ae(Math.round((Number(g.h)||1920)*.3),120,Math.max(120,(Number(g.h)||1920)-48));return{type:"filter",x:Math.round(((Number(g.w)||1080)-$)/2),y:Math.round(((Number(g.h)||1920)-de)/2),w:$,h:de,rotation:0,filterPreset:p||void 0}}function Ce(p=u){const g=fe();let $=ae(qe(),0,Math.max(0,g-je)),de=Math.min(g,$+qt);de-$<je&&($=ae(g-qt,0,Math.max(0,g-je)),de=Math.max($+je,g));const be={...Pe(p),...Jt(null,g,{startAt:$,endAt:de,timelineTrack:0})};ke(be);const ye=t.getState().overlays??[];y=ye.length?ye.length-1:null,y!=null&&bt(e,"text",[y]),ht(!0),ve(),D(!0)}function et(p){if(!K()){Ce(p);return}wt({filterPreset:p||void 0}),D(!0)}function tt(p){if(p){if(!L){p.hidden=!0,p.removeAttribute("src");return}p.src!==L&&(p.src=L),p.hidden=!1}}function ht(p=!1){if(L&&!p)return;const g=Di(e);g&&(g===L&&!p||(L=g,F.forEach(({previewImage:$})=>tt($))))}function gt(){K()&&wt({filterPreset:void 0})}function ce(){A(()=>{const p=e.querySelector(".me-video-toolrail");if(!p)return;oe=p;const g=le(oe);Q=ro(g),ie=Le(g),ie?(Z?.remove(),j=ie):((!Z||!Z.isConnected)&&(Z=document.createElement("button"),Z.type="button",Z.className="me-video-text-tool me-video-filter-tool",Z.innerHTML=`<span class="me-video-text-tool-icon">\u25A3</span><span class="me-video-text-tool-label">${o.filterTool}</span>`),Z.title=o.filterTool,Z.setAttribute("aria-label",o.filterTool),Z.isConnected?ie?.parentElement===oe&&Z.nextSibling!==ie&&oe.insertBefore(Z,ie):ie?.parentElement===oe?oe.insertBefore(Z,ie):oe.appendChild(Z),j=Z),j?.setAttribute?.("title",o.filterTool),j?.setAttribute?.("aria-label",o.filterTool),ee(),Re()})}function Se(){const{timelineInner:p,timelineHost:g}=Fn(e,t.getState());if(!p||!g){ne?.remove(),ne=null,V&&xe&&(V.unobserve(xe),xe=null),he=null;return}he=p,(!ne||!ne.isConnected||ne.parentElement!==g)&&(ne?.remove(),ne=document.createElement("div"),ne.className="me-video-text-timeline me-video-overlay-timeline me-video-filter-overlay-layer");for(const $ of[...g.children])$!==ne&&$ instanceof HTMLElement&&$.classList.contains("me-video-filter-overlay-layer")&&$.remove();(ne.parentElement!==g||g.lastElementChild!==ne)&&g.appendChild(ne),V&&xe!==he&&(xe&&V.unobserve(xe),xe=he,V.observe(he))}function Ve(){const p=e.querySelector(".me-video-canvas-stage");if(!p){w?.remove(),w=null,x?.remove(),x=null,X&&k&&(X.unobserve(k),k=null),te=null;return}te=p,te.style.position="relative",(!w||!w.isConnected||w.parentElement!==te)&&(w?.remove(),w=document.createElement("div"),w.className="me-video-filter-effect-layer",te.appendChild(w)),(!x||!x.isConnected||x.parentElement!==te)&&(x?.remove(),x=document.createElement("div"),x.className="me-video-filter-control-layer",te.appendChild(x)),te.lastElementChild!==x&&te.appendChild(x),X&&k!==te&&(k&&X.unobserve(k),k=te,X.observe(te))}function Ze(){if(!te)return null;const g=t.getState().canvas??{},$=Math.max(1,Number(g.w)||0),de=Math.max(1,Number(g.h)||0);if(!$||!de)return null;const be=te.getBoundingClientRect(),ye=te.querySelector("canvas, video, img")||[...te.children].find(De=>De!==w&&De!==x)||null;let Be=0,Ee=0,$e=te.clientWidth||$,Ne=te.clientHeight||de;if(ye instanceof HTMLElement){const De=ye.getBoundingClientRect();De.width>0&&De.height>0&&(Be=De.left-be.left,Ee=De.top-be.top,$e=De.width,Ne=De.height)}if(!($e>0&&Ne>0)){const De=te.clientWidth||$,Qe=te.clientHeight||de,Ie=Math.min(De/$,Qe/de)||1;$e=$*Ie,Ne=de*Ie,Be=Math.max(0,(De-$e)/2),Ee=Math.max(0,(Qe-Ne)/2)}return{stageLeft:be.left,stageTop:be.top,left:Be,top:Ee,scaleX:$e/$,scaleY:Ne/de}}function at(p,g){const $=lt(p),de=Bt(p,$);return g>=$-.001&&g<=de+.001}function Et(p,g,$){const de=Pt(e,"text",p,g,$);y=de.length?de[de.length-1]:null,D(!0),Ct()}function St(p,g,$){return{x:(p-$.stageLeft-$.left)/$.scaleX,y:(g-$.stageTop-$.top)/$.scaleY}}function Rt(p,g,$){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const be=t.getState().canvas??{w:1080,h:1920},ye=ze(de);if(!ye)return;const Be=g.clientX,Ee=g.clientY,$e=Math.max(0,(Number(be.w)||0)-ye.w),Ne=Math.max(0,(Number(be.h)||0)-ye.h),De=(He,Ue,ct)=>{const ft=(He-Be)/$.scaleX,Ke=(Ue-Ee)/$.scaleY,nt=ae(ye.x+ft,0,$e),ot=ae(ye.y+Ke,0,Ne);t.updateOverlay(p,{x:nt,y:ot},ct?{transient:!0}:void 0)},Qe=He=>{He.preventDefault(),De(He.clientX,He.clientY,!0)},Ie=He=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",Ie),window.removeEventListener("pointercancel",Ie),De(He.clientX,He.clientY,!1)};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",Ie),window.addEventListener("pointercancel",Ie)}function ut(p,g,$,de){const be=(t.getState().overlays??[])[p];if(!be||be.type!=="filter")return;const ye=ze(be);if(!ye)return;const Be=t.getState().canvas??{w:1080,h:1920},Ee=g.x===.5?.5:1-g.x,$e=g.y===.5?.5:1-g.y,Ne=ye.x+ye.w*Ee,De=ye.y+ye.h*$e,Qe=Math.max(.1,48/Math.max(48,ye.w),48/Math.max(48,ye.h)),Ie=g.x===.5?1/0:Math.max(.1,(Ee===0?(Number(Be.w)||0)-Ne:Ne)/Math.max(1,ye.w)),He=g.y===.5?1/0:Math.max(.1,($e===0?(Number(Be.h)||0)-De:De)/Math.max(1,ye.h)),Ue=Math.max(Qe,Math.min(Ie,He,8)),ct=(nt,ot,Ot)=>{const Ft=St(nt,ot,de),kt=[];g.x!==.5&&kt.push(Math.abs(Ft.x-Ne)/Math.max(1,ye.w)),g.y!==.5&&kt.push(Math.abs(Ft.y-De)/Math.max(1,ye.h));const ln=kt.length?Math.max(...kt):1,an=ae(ln,Qe,Ue),en=it(be,an),Mt=ze(en);if(!Mt)return;const tn=Ne-Mt.w*Ee,m=De-Mt.h*$e;t.updateOverlay(p,{x:tn,y:m,w:Mt.w,h:Mt.h},Ot?{transient:!0}:void 0)},ft=nt=>{nt.preventDefault(),ct(nt.clientX,nt.clientY,!0)},Ke=nt=>{window.removeEventListener("pointermove",ft),window.removeEventListener("pointerup",Ke),window.removeEventListener("pointercancel",Ke),ct(nt.clientX,nt.clientY,!1)};window.addEventListener("pointermove",ft),window.addEventListener("pointerup",Ke),window.addEventListener("pointercancel",Ke)}function It(p,g,$){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const be=ze(de);if(!be)return;const ye=$.stageLeft+$.left+(be.x+be.w/2)*$.scaleX,Be=$.stageTop+$.top+(be.y+be.h/2)*$.scaleY,Ee=Math.atan2(g.clientY-Be,g.clientX-ye),$e=un(de),Ne=(Ie,He,Ue,ct)=>{const ft=Math.atan2(He-Be,Ie-ye);let Ke=In($e+(ft-Ee)*180/Math.PI);ct&&(Ke=Math.round(Ke/15)*15),t.updateOverlay(p,{rotation:Ke},Ue?{transient:!0}:void 0)},De=Ie=>{Ie.preventDefault(),Ne(Ie.clientX,Ie.clientY,!0,Ie.shiftKey)},Qe=Ie=>{window.removeEventListener("pointermove",De),window.removeEventListener("pointerup",Qe),window.removeEventListener("pointercancel",Qe),Ne(Ie.clientX,Ie.clientY,!1,Ie.shiftKey)};window.addEventListener("pointermove",De),window.addEventListener("pointerup",Qe),window.addEventListener("pointercancel",Qe)}function Lt(p,g){if(Ve(),!w||!x)return;if(w.replaceChildren(),x.replaceChildren(),!Ze()){w.hidden=!0,x.hidden=!0;return}x.hidden=!0;const de=qe();if(!p.filter(ye=>at(ye.overlay,de)).length){w.hidden=!0;return}w.hidden=!0}function jt(p,g,$){if(!he)return;const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;if($.shiftKey||$.ctrlKey||$.metaKey){$.preventDefault(),$.stopPropagation();const He=Pt(e,"text",p,$,ar(t.getState()).map(Ue=>Ue.index));y=He.length?He[He.length-1]:null,ve(),D(!0);return}$.preventDefault(),$.stopPropagation(),y=p,bt(e,"text",[p]),ve(),N||D(!0);const be=fe(),ye=Math.max(he.clientWidth/be,.001),Be=lt(de),Ee=Bt(de,Be),$e=Math.max(je,Ee-Be),Ne=vt(de),De=$.clientX,Qe=He=>{const Ue=(He.clientX-De)/ye,ct=t.getState().overlays??[];if(g==="move"){const nt=Math.max(0,Be+Ue),ot=nt+$e,Ot=pt(ne,ct,p,nt,ot,He.clientY,Ne);xt(p,{startAt:nt,endAt:ot,timelineTrack:Ot},{transient:!0});return}if(g==="start"){const nt=ae(Be+Ue,0,Ee-je),ot=pt(ne,ct,p,nt,Ee,He.clientY,Ne);xt(p,{startAt:nt,endAt:Ee,timelineTrack:ot},{transient:!0});return}const ft=Math.max(Be+je,Ee+Ue),Ke=pt(ne,ct,p,Be,ft,He.clientY,Ne);xt(p,{startAt:Be,endAt:ft,timelineTrack:Ke},{transient:!0})},Ie=He=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",Ie),window.removeEventListener("pointercancel",Ie);const Ue=(He.clientX-De)/ye,ct=t.getState().overlays??[];if(g==="move"){const nt=Math.max(0,Be+Ue),ot=nt+$e,Ot=pt(ne,ct,p,nt,ot,He.clientY,Ne);xt(p,{startAt:nt,endAt:ot,timelineTrack:Ot});return}if(g==="start"){const nt=ae(Be+Ue,0,Ee-je),ot=pt(ne,ct,p,nt,Ee,He.clientY,Ne);xt(p,{startAt:nt,endAt:Ee,timelineTrack:ot});return}const ft=Math.max(Be+je,Ee+Ue),Ke=pt(ne,ct,p,Be,ft,He.clientY,Ne);xt(p,{startAt:Be,endAt:ft,timelineTrack:Ke})};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",Ie),window.addEventListener("pointercancel",Ie),Ct()}function At(p,g){if(Se(),!ne||!he||(ne.replaceChildren(),ne.hidden=p.length===0,!p.length))return;const $=fe(),de=he.clientWidth/$,be=Rn(t.getState()),ye=new Map;for(const Be of p){const Ee=vt(Be.overlay),$e=be.get(Ee)??Ee;let Ne=ye.get(Ee);Ne||(Ne=document.createElement("div"),Ne.className="me-video-overlay-track-row",Ne.dataset.track=String(Ee),Ne.style.top=`${Ln($e)}px`,ye.set(Ee,Ne),ne.appendChild(Ne));const De=document.createElement("div");De.className="me-video-text-track-clip me-video-filter-track-clip",g.has(Be.index)&&De.classList.add("is-active");const Qe=lt(Be.overlay),Ie=Sn(Be.overlay);De.style.left=`${Qe*de}px`,De.style.width=`${Math.max(36,Ie*de)}px`;const He=document.createElement("span");He.className="me-video-text-track-icon",He.textContent="Fx";const Ue=document.createElement("span");Ue.className="me-video-text-track-label",Ue.textContent=rt(Be.overlay),Ue.title=Ue.textContent;const ct=document.createElement("span");ct.className="me-video-text-track-handle is-start";const ft=document.createElement("span");ft.className="me-video-text-track-handle is-end",De.append(He,Ue,ct,ft),De.addEventListener("pointerdown",Ke=>jt(Be.index,"move",Ke)),ct.addEventListener("pointerdown",Ke=>jt(Be.index,"start",Ke)),ft.addEventListener("pointerdown",Ke=>jt(Be.index,"end",Ke)),De.addEventListener("click",Ke=>{if(Ke.preventDefault(),Ke.stopPropagation(),Ke.shiftKey||Ke.ctrlKey||Ke.metaKey){ve(),Ct();return}const nt=Pt(e,"text",Be.index,Ke,p.map(ot=>ot.index));y=nt.length?nt[nt.length-1]:null,ve(),D(!0),Ct()}),Ne.appendChild(De)}}function Ct(){A(()=>{ce(),ht();const p=ar(t.getState());Je(p);const g=new Set(dr(e,t.getState()));At(p,g),Lt(p,g);const $=Ge(K());F.forEach(({entry:de,buttonEl:be,previewImage:ye})=>{be.classList.toggle("is-active",String(de.id??"")===$),tt(ye)}),M.disabled=!$,_(),Re()}),Oe()}function mt(p){return!!p&&(p===f||f.contains(p)||p===j||j?.contains?.(p)||p===Z||Z?.contains?.(p)||p===ne||ne?.contains?.(p)||p===w||w?.contains?.(p)||p===x||x?.contains?.(p))}function Ut(p){return p.some(g=>{if(!mt(g.target))return!0;for(const $ of g.addedNodes)if(!mt($))return!0;for(const $ of g.removedNodes)if(!mt($))return!0;return!1})}const E=new MutationObserver(p=>{Y||e.__meVideoEnhancerObserverLock||Ut(p)&&(ce(),b())}),R=p=>{const g=p.target;!(g instanceof Node)||!j||!j.contains(g)||(p.preventDefault(),p.stopPropagation(),p.stopImmediatePropagation?.(),Ce(u))},U=p=>{p?.detail?.id!==B&&N&&(N=!1,Ct())},Te=()=>{Ct()};E.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",U),e.addEventListener(zt,Te),e.addEventListener("click",R,!0),window.addEventListener("resize",Re);const Fe=t.subscribe(()=>{Ct()});return F.forEach(({entry:p,buttonEl:g})=>{g.addEventListener("click",()=>{et(p.id||"")})}),M.addEventListener("click",()=>{gt()}),ce(),Ct(),{destroy(){E.disconnect(),V&&xe&&V.unobserve(xe),X&&k&&X.unobserve(k),Fe(),e.removeEventListener("me-video-inspector-open",U),e.removeEventListener(zt,Te),e.removeEventListener("click",R,!0),window.removeEventListener("resize",Re),Z?.remove(),ne?.remove(),w?.remove(),x?.remove(),f.remove(),Ht(e)}}}function oa(e,t,n,o){Qt();const a=No(o()),s=qr(o()),u=kr(a),f=document.createElement("div");f.className="me-video-text-panel me-video-color-panel me-video-effects-panel",f.hidden=!0,e.appendChild(f);const v=document.createElement("div");v.className="me-video-text-toolbar";const S=document.createElement("strong");S.textContent=s.title;const M=Yt(a.reset),G=Yt(s.close);v.append(S,M,G),f.appendChild(v);const T=document.createElement("p");T.className="me-video-text-hint",T.textContent=s.hint,f.appendChild(T);const F=u.map(D=>{const ee=Kt(D.title),_=D.items.map(K=>{const fe=document.createElement("div");fe.className="me-video-color-slider-control";const qe=document.createElement("span");qe.className="me-video-color-slider-value";const Oe=document.createElement("input");return Oe.type="range",Oe.min=String(K.min),Oe.max=String(K.max),Oe.step="0.02",Oe.dataset.adjustment=K.key,fe.append(qe,Oe),ee.body.appendChild(Tt(K.label,fe)),{...K,value:qe,range:Oe}});return f.appendChild(ee.section),{...D,controls:_}});let j=null,oe=null,Q=null,Z=null,ie=!1,he=!1,ne=!1;const xe="effects",te=typeof requestAnimationFrame=="function"?requestAnimationFrame:D=>setTimeout(D,16);function w(){Promise.resolve().then(()=>{ne=!1;const D=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,D-1)})}function x(D){ne=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return D()}finally{w()}}function k(){he||(he=!0,te(()=>{he=!1,pe()}))}function N(D=oe){return D?[...D.children].filter(ee=>ee instanceof HTMLButtonElement&&ee!==j&&!ee.classList.contains("me-video-text-tool")):[]}function y(){Z&&(Z.isConnected&&(Z.style.display=Z.dataset.meTrimDisplay??"",Z.hidden=Z.dataset.meTrimHidden==="true",delete Z.dataset.meTrimDisplay,delete Z.dataset.meTrimHidden),Z=null)}function z(D){if(!D){y();return}Z!==D&&(y(),D.classList.remove("is-active"),D.dataset.meTrimDisplay=D.style.display??"",D.dataset.meTrimHidden=D.hidden?"true":"false",D.hidden=!0,D.style.display="none",Z=D)}function Y(){if(Q&&!Q.classList.contains("is-active")){Q.click();return}const D=N()[0];D&&!D.classList.contains("is-active")&&D.click()}function L(D){if(!j||!(D instanceof HTMLButtonElement))return;const ee=D.getAttribute("style");ee?j.setAttribute("style",ee):j.removeAttribute("style"),j.hidden=!1,j.style.display=""}function B(){j&&(j.dataset.theme=Wn(n()))}function q(){rn(e,f),Ht(e)}function V(D){const ee=!!D;if(ee===ie){pe();return}ie=ee,ie&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:xe}})),pe()}function X(){if(j?.classList.toggle("is-active",ie),!!Q&&ie){Q.classList.remove("is-active");return}}function re(){f.hidden=!ie,X(),q()}function pe(){x(()=>{N().find(K=>K!==Q&&!K.hidden&&K.style.display!=="none"&&K.classList.contains("is-active"))&&(ie=!1),ie&&Y();const ee=t.getState().filters??{},_=Po.some(K=>Math.abs(Number(ee[K])||0)>1e-4);F.forEach(K=>{K.controls.forEach(fe=>{const qe=ae(Number(ee[fe.key])||0,fe.min,fe.max);fe.range.value=String(qe),fe.value.textContent=Er(qe,fe.format)})}),M.disabled=!_,re(),B()})}function se(){x(()=>{const D=e.querySelector(".me-video-toolrail");if(!D)return;oe=D;const ee=N(oe);Q=ro(ee),z(Q);const _=Q??ee[0]??null;(!j||!j.isConnected)&&(j=document.createElement("button"),j.type="button",j.className="me-video-text-tool me-video-effects-tool",j.innerHTML=`<span class="me-video-text-tool-icon">${Ur()}</span><span class="me-video-text-tool-label">${s.tool}</span>`),j.setAttribute("title",s.tool),j.setAttribute("aria-label",s.tool),L(_),j.isConnected?_?.parentElement===oe&&j.nextSibling!==_&&oe.insertBefore(j,_):_?.parentElement===oe?oe.insertBefore(j,_):oe.appendChild(j),B(),X(),q()})}function A(D){return!!D&&(D===f||f.contains(D)||D===j||j?.contains?.(D))}function b(D){return D.some(ee=>{if(!A(ee.target))return!0;for(const _ of ee.addedNodes)if(!A(_))return!0;for(const _ of ee.removedNodes)if(!A(_))return!0;return!1})}const le=new MutationObserver(D=>{ne||e.__meVideoEnhancerObserverLock||b(D)&&(se(),k())}),Le=D=>{D?.detail?.id!==xe&&ie&&(ie=!1,pe())},ve=D=>{const ee=D.target;if(!(ee instanceof Node)||!j||!j.contains(ee))return;D.preventDefault(),D.stopPropagation(),D.stopImmediatePropagation?.();const _=!ie;_&&Y(),V(_)};le.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",Le),e.addEventListener("click",ve,!0),window.addEventListener("resize",k);const Re=t.subscribe(()=>{k()});return F.forEach(D=>{D.controls.forEach(ee=>{ee.range.addEventListener("input",()=>{const _=ae(Number(ee.range.value)||0,ee.min,ee.max);ee.value.textContent=Er(_,ee.format),t.setFilter(ee.key,_,{transient:!0})}),ee.range.addEventListener("change",()=>{const _=ae(Number(ee.range.value)||0,ee.min,ee.max);t.setFilter(ee.key,_)})})}),M.addEventListener("click",()=>{Ri(t)}),G.addEventListener("click",()=>{V(!1)}),se(),pe(),{destroy(){le.disconnect(),Re(),e.removeEventListener("me-video-inspector-open",Le),e.removeEventListener("click",ve,!0),window.removeEventListener("resize",k),y(),j?.remove(),f.remove(),Ht(e)}}}function ra(e,t,n,o){Qt(),kn();const a=No(o()),s=Kr(o()),u=kr(a),f=new Set(["brightness","contrast","saturation","temperature","tint","vibrance","gamma","highlights","shadows","whites","blacks","lightSense"]);function v(l,d,r){return l==="percent"?{min:(1+d)*100,max:(1+r)*100}:{min:d*100,max:r*100}}function S(l,d){const r=Number(l)||0;return d==="percent"?(1+r)*100:r*100}function M(l,d){const r=Number(l)||0;return d==="percent"?r/100-1:r/100}function G(l,d){const r=Math.round(S(l,d)*10)/10;return Number.isInteger(r),String(r)}function T(l,d){let r=Math.abs(Math.round(Number(l)||0)),i=Math.abs(Math.round(Number(d)||0));for(;i;){const c=r%i;r=i,i=c}return r||1}function F(l){const d=Math.max(1,Vt(l?.w??0)),r=Math.max(1,Vt(l?.h??0)),i=T(d,r);return`${d/i}:${r/i}`}function j(l){const d=Number(l);if(!(d>0))return s.notAvailable;const r=["B","KB","MB","GB","TB"];let i=d,c=0;for(;i>=1024&&c<r.length-1;)i/=1024,c+=1;const h=i>=100||c===0?0:i>=10?1:2;return`${i.toFixed(h)} ${r[c]}`}function oe(l){const d=Number(l);return d>0?`${d.toFixed(2)} fps`:s.notAvailable}function Q(l,d){const r=Number(l),i=Number(d);if(!(r>0)||!(i>0))return s.notAvailable;const c=r*8/i;return c>=1e6?`${(c/1e6).toFixed(2)} Mbps`:c>=1e3?`${Math.round(c/1e3)} Kbps`:`${Math.round(c)} bps`}function Z(l){const d=String(l?.file?.type||l?.type||l?.mime||"").trim();if(d.includes("/"))return d.split("/").pop().toUpperCase();const i=String(l?.file?.name||l?.name||"").trim().match(/\.([a-z0-9]+)$/i);return i?i[1].toUpperCase():s.notAvailable}function ie(l){return String(l?.codec||l?.videoCodec||l?.codecName||l?.encoding||"").trim()||s.notAvailable}function he(l){const d=Math.max(0,Math.round(Number(l?.width??l?.dims?.w)||0)),r=Math.max(0,Math.round(Number(l?.height??l?.dims?.h)||0));return!(d>0)||!(r>0)?s.notAvailable:`${d} x ${r} px`}function ne(){const d=t.getState().clips??[],r=_t(e,"video").filter(I=>!!d[I]),c=(d[r[r.length-1]]??d[0]??null)?.srcIdx??0;return{source:(typeof t.getVideoSource=="function"?t.getVideoSource(c):null)??t.videoSources?.[c]??t.videoSources?.[0]??null,sourceIndex:c}}function xe(){const l=t.getState(),{source:d,sourceIndex:r}=ne(),i=l.canvas??{w:1080,h:1920},c=jn(l),h=Number(d?.frameRate??d?.fps)||30,I=Number(d?.duration)||Ce()||0,O=Number(d?.file?.size??d?.size)||0;return{videoName:String(d?.file?.name||d?.name||"").trim()||(d?`video-${r+1}`:s.notAvailable),ratio:F(c),canvasSize:On(i),resolution:On(c),frameRate:oe(h),bitrate:Q(O,I),format:Z(d),fileSize:j(O),codec:ie(d),sourceSize:he(d),videoLength:mn(Ce())}}const te=document.createElement("div");te.className="me-video-text-panel me-video-color-panel me-video-effects-panel me-video-feature-one-panel",te.hidden=!0,e.appendChild(te);const w=document.createElement("div");w.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=s.title;const k=Yt(a.reset);w.append(x,k);const N=document.createElement("p");N.className="me-video-text-hint",N.textContent=s.hint;const y=document.createElement("div");y.className="me-video-text-empty",y.textContent=s.placeholder;const z=document.createElement("div");z.className="me-video-text-panel me-video-feature-one-info-panel",z.hidden=!0,e.appendChild(z);const Y=document.createElement("div");Y.className="me-video-text-toolbar";const L=document.createElement("strong");L.textContent=s.videoInfoTitle,Y.append(L);const B=Kt(s.videoInfoTitle);B.section.classList.add("me-video-feature-one-meta-section"),B.title.remove();const q=[{key:"videoName",label:s.videoName},{key:"ratio",label:s.ratio},{key:"canvasSize",label:s.canvasSize},{key:"resolution",label:s.resolution},{key:"frameRate",label:s.frameRate},{key:"bitrate",label:s.bitrate},{key:"format",label:s.format},{key:"fileSize",label:s.fileSize},{key:"codec",label:s.codec},{key:"sourceSize",label:s.sourceSize},{key:"videoLength",label:s.videoLength}].map(l=>{const d=document.createElement("div");return d.className="me-video-feature-one-meta-value",B.body.appendChild(Tt(l.label,d)),{...l,valueEl:d}});te.append(w,N,y),z.append(Y,B.section);const V=u.map(l=>{const d=Kt(l.title),r=l.items.map(i=>{const c=v(i.format,i.min,i.max),h=document.createElement("div");h.className="me-video-color-slider-control me-video-color-number-control";const I=document.createElement("input");I.type="range",I.min=String(i.min),I.max=String(i.max),I.step="0.01",I.dataset.adjustment=i.key;const O=document.createElement("input");return O.type="number",O.min=String(c.min),O.max=String(c.max),O.step="1",O.inputMode="decimal",O.dataset.adjustment=i.key,h.append(I,O),d.body.appendChild(Tt(i.label,h)),{...i,range:I,input:O,displayMin:c.min,displayMax:c.max}});return te.appendChild(d.section),{...l,section:d.section,controls:r}});let X=null,re=null,pe=null,se=null,A=null,b=null,le=null,Le=null,ve=null,Re=null,D=null,ee=!1,_=null,K=!1,fe=!1;const qe="adjust",Oe=typeof requestAnimationFrame=="function"?requestAnimationFrame:l=>setTimeout(l,16),Je=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>it()),Ge=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>it()),Ye=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],dt={key:"rotate",x:.5,y:0};function rt(){Promise.resolve().then(()=>{fe=!1;const l=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,l-1)})}function ze(l){fe=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return l()}finally{rt()}}function it(){K||(K=!0,Oe(()=>{K=!1,ot()}))}function xt(l=re){return l?[...l.children].filter(d=>d instanceof HTMLButtonElement&&d!==X&&!d.classList.contains("me-video-text-tool")):[]}function wt(){se&&(se.isConnected&&(se.style.display=se.dataset.meTrimDisplay??"",se.hidden=se.dataset.meTrimHidden==="true",delete se.dataset.meTrimDisplay,delete se.dataset.meTrimHidden),se=null)}function ke(l){if(!l){wt();return}se!==l&&(wt(),l.classList.remove("is-active"),l.dataset.meTrimDisplay=l.style.display??"",l.dataset.meTrimHidden=l.hidden?"true":"false",l.hidden=!0,l.style.display="none",se=l)}function Pe(){if(pe&&!pe.classList.contains("is-active")){pe.click();return}const l=xt()[0];l&&!l.classList.contains("is-active")&&l.click()}function Ce(){return Tn(t)}function et(){return yn(e)}function tt(){if(!t.history?.present)return;const l=et(),d=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(d)?d:-1)-l)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:l}},typeof t.emit=="function"&&t.emit())}function ht(l){const d={...An};for(const r of Po){const i=Number(l?.[r]);Number.isFinite(i)&&(d[r]=f.has(r)?ae(i,-1,1):ae(i,0,1))}return d}function gt(l){const d=ht(l);return Po.some(r=>Math.abs(Number(d[r])||0)>1e-4)}function ce(l){const d=ht(l),r=[],i=_r(d,"");return i&&r.push(i),Math.abs(d.vibrance)>1e-4&&r.push(`saturate(${(1+d.vibrance*.65).toFixed(3)})`),Math.abs(d.temperature)>1e-4&&(d.temperature>0&&r.push(`sepia(${Math.min(.36,d.temperature*.28).toFixed(3)})`),r.push(`hue-rotate(${(-d.temperature*14).toFixed(2)}deg)`)),Math.abs(d.tint)>1e-4&&r.push(`hue-rotate(${(d.tint*10).toFixed(2)}deg)`),Math.abs(d.gamma)>1e-4&&r.push(`brightness(${(1+d.gamma*.08).toFixed(3)})`),(d.clarity>1e-4||d.sharpen>1e-4)&&r.push(`contrast(${(1+d.clarity*.16+d.sharpen*.1).toFixed(3)})`),r.join(" ").trim()||"none"}function Se(l){const d=ht(l),r=[];if(d.fade>1e-4&&r.push(`linear-gradient(0deg, rgba(255,245,235,${(d.fade*.18).toFixed(3)}), rgba(255,245,235,${(d.fade*.18).toFixed(3)}))`),d.vignette>1e-4){const i=(.28+d.vignette*.3).toFixed(3),c=(.16+d.vignette*.22).toFixed(3);r.push(`radial-gradient(circle at center, rgba(0,0,0,0) ${i}, rgba(0,0,0,${c}) 100%)`)}return d.grain>1e-4&&r.push(`linear-gradient(135deg, rgba(255,255,255,${(d.grain*.05).toFixed(3)}) 0%, rgba(0,0,0,${(d.grain*.05).toFixed(3)}) 100%)`),r.join(", ")}function Ve(){const l=t.getState().overlays??[];if(_==null)return null;const d=l[_];return d?.type==="adjust"?d:null}function Ze(l){if(!l.length){_=null;return}const d=Qn(e,t.getState());_=d.length?d[d.length-1]:null}function at(l){const d=Number(l?.w),r=Number(l?.h);return!(d>0)||!(r>0)?null:{x:Number(l?.x)||0,y:Number(l?.y)||0,w:Math.max(48,d),h:Math.max(48,r)}}function Et(l,d){const r=at(l);if(!r)return l;const i=Math.max(.1,Number(d)||1);return{...l,w:Math.max(48,r.w*i),h:Math.max(48,r.h*i)}}function St(l,d,r={}){const c=(t.getState().overlays??[])[l];!c||c.type!=="adjust"||t.updateOverlay(l,Jt(c,Ce(),d),r)}function Rt(l,d){_!=null&&t.updateOverlay(_,l,d)}function ut(l){const d=t.getState().overlays??[],r=d.length;if(typeof t.applyMut=="function")return t.applyMut(c=>({...c,overlays:[...on(c.overlays),{...l,timelineTrack:0}]})),r;const i=on(d);return t.commit?.({overlays:[...i,{...l,timelineTrack:0}]}),r}function It(){const l=t.getState().canvas??{w:1080,h:1920};return{type:"adjust",x:0,y:0,w:Math.max(1,Number(l.w)||1080),h:Math.max(1,Number(l.h)||1920),rotation:0,...An}}function Lt(){const l=Ce();let d=ae(et(),0,Math.max(0,l-je)),r=Math.min(l,d+qt);r-d<je&&(d=ae(l-qt,0,Math.max(0,l-je)),r=Math.max(d+je,l));const i={...It(),...Jt(null,l,{startAt:d,endAt:r,timelineTrack:0})},c=ut(i);_=Number.isInteger(c)?c:null,bt(e,"text",_==null?[]:[_],{preserveOther:!0}),Pe(),ft(_!=null)}function jt(){const l=t.getState(),d=To(l.overlays??[],Qn(e,l));d.changed&&(t.commit({overlays:d.overlays}),_=d.selection.length?d.selection[d.selection.length-1]:null,bt(e,"text",d.selection),ot())}function At(){const l=t.getState(),d=Co(l.overlays??[],Qn(e,l));d.changed&&(t.commit({overlays:d.overlays}),_=null,bt(e,"text",[]),ot())}function Ct(){Ve()&&Rt({...An})}function mt(l){if(!X||!(l instanceof HTMLButtonElement))return;const d=l.getAttribute("style");d?X.setAttribute("style",d):X.removeAttribute("style"),X.hidden=!1,X.style.display=""}function Ut(){X&&(X.dataset.theme=Wn(n()))}function E(){rn(e,te),rn(e,z),Ht(e)}function R(){const{timelineInner:l,timelineHost:d}=Fn(e,t.getState());if(!l||!d){b?.remove(),b=null,Je&&le&&(Je.unobserve(le),le=null),A=null;return}A=l,(!b||!b.isConnected||b.parentElement!==d)&&(b?.remove(),b=document.createElement("div"),b.className="me-video-text-timeline me-video-overlay-timeline me-video-feature-one-overlay-layer");for(const r of[...d.children])r!==b&&r instanceof HTMLElement&&r.classList.contains("me-video-feature-one-overlay-layer")&&r.remove();(b.parentElement!==d||d.lastElementChild!==b)&&d.appendChild(b),Je&&le!==A&&(le&&Je.unobserve(le),le=A,Je.observe(A))}function U(){const l=e.querySelector(".me-video-canvas-stage");if(!l){ve?.remove(),ve=null,Re?.remove(),Re=null,Ge&&D&&(Ge.unobserve(D),D=null),Le=null;return}Le=l,Le.style.position="relative",(!ve||!ve.isConnected||ve.parentElement!==Le)&&(ve?.remove(),ve=document.createElement("div"),ve.className="me-video-filter-effect-layer",Le.appendChild(ve)),(!Re||!Re.isConnected||Re.parentElement!==Le)&&(Re?.remove(),Re=document.createElement("div"),Re.className="me-video-filter-control-layer",Le.appendChild(Re)),Le.lastElementChild!==Re&&Le.appendChild(Re),Ge&&D!==Le&&(D&&Ge.unobserve(D),D=Le,Ge.observe(Le))}function Te(){if(!Le)return null;const d=t.getState().canvas??{},r=Math.max(1,Number(d.w)||0),i=Math.max(1,Number(d.h)||0);if(!r||!i)return null;const c=Le.getBoundingClientRect(),h=Le.querySelector("canvas, video, img")||[...Le.children].find(P=>P!==ve&&P!==Re)||null;let I=0,O=0,J=Le.clientWidth||r,C=Le.clientHeight||i;if(h instanceof HTMLElement){const P=h.getBoundingClientRect();P.width>0&&P.height>0&&(I=P.left-c.left,O=P.top-c.top,J=P.width,C=P.height)}if(!(J>0&&C>0)){const P=Le.clientWidth||r,me=Le.clientHeight||i,ue=Math.min(P/r,me/i)||1;J=r*ue,C=i*ue,I=Math.max(0,(P-J)/2),O=Math.max(0,(me-C)/2)}return{stageLeft:c.left,stageTop:c.top,left:I,top:O,scaleX:J/r,scaleY:C/i}}function Fe(l,d){const r=lt(l),i=Bt(l,r);return d>=r-.001&&d<=i+.001}function p(l,d,r){const i=Pt(e,"text",l,d,r);_=i.length?i[i.length-1]:null,ft(!0),ot()}function g(l,d,r){return{x:(l-r.stageLeft-r.left)/r.scaleX,y:(d-r.stageTop-r.top)/r.scaleY}}function $(l,d,r){const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;const c=t.getState().canvas??{w:1080,h:1920},h=at(i);if(!h)return;const I=d.clientX,O=d.clientY,J=Math.max(0,(Number(c.w)||0)-h.w),C=Math.max(0,(Number(c.h)||0)-h.h),P=(Me,we,ge)=>{const Ae=(Me-I)/r.scaleX,_e=(we-O)/r.scaleY,Xe=ae(h.x+Ae,0,J),We=ae(h.y+_e,0,C);t.updateOverlay(l,{x:Xe,y:We},ge?{transient:!0}:void 0)},me=Me=>{Me.preventDefault(),P(Me.clientX,Me.clientY,!0)},ue=Me=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ue),window.removeEventListener("pointercancel",ue),P(Me.clientX,Me.clientY,!1)};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ue),window.addEventListener("pointercancel",ue)}function de(l,d,r,i){const c=(t.getState().overlays??[])[l];if(!c||c.type!=="adjust")return;const h=at(c);if(!h)return;const I=t.getState().canvas??{w:1080,h:1920},O=d.x===.5?.5:1-d.x,J=d.y===.5?.5:1-d.y,C=h.x+h.w*O,P=h.y+h.h*J,me=Math.max(.1,48/Math.max(48,h.w),48/Math.max(48,h.h)),ue=d.x===.5?1/0:Math.max(.1,(O===0?(Number(I.w)||0)-C:C)/Math.max(1,h.w)),Me=d.y===.5?1/0:Math.max(.1,(J===0?(Number(I.h)||0)-P:P)/Math.max(1,h.h)),we=Math.max(me,Math.min(ue,Me,8)),ge=(Xe,We,st)=>{const Nt=g(Xe,We,i),$t=[];d.x!==.5&&$t.push(Math.abs(Nt.x-C)/Math.max(1,h.w)),d.y!==.5&&$t.push(Math.abs(Nt.y-P)/Math.max(1,h.h));const cn=$t.length?Math.max(...$t):1,dn=ae(cn,me,we),Hn=Et(c,dn),hn=at(Hn);if(!hn)return;const Vn=C-hn.w*O,xn=P-hn.h*J;t.updateOverlay(l,{x:Vn,y:xn,w:hn.w,h:hn.h},st?{transient:!0}:void 0)},Ae=Xe=>{Xe.preventDefault(),ge(Xe.clientX,Xe.clientY,!0)},_e=Xe=>{window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",_e),window.removeEventListener("pointercancel",_e),ge(Xe.clientX,Xe.clientY,!1)};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",_e),window.addEventListener("pointercancel",_e)}function be(l,d,r){const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;const c=at(i);if(!c)return;const h=r.stageLeft+r.left+(c.x+c.w/2)*r.scaleX,I=r.stageTop+r.top+(c.y+c.h/2)*r.scaleY,O=Math.atan2(d.clientY-I,d.clientX-h),J=un(i),C=(ue,Me,we,ge)=>{const Ae=Math.atan2(Me-I,ue-h);let _e=In(J+(Ae-O)*180/Math.PI);ge&&(_e=Math.round(_e/15)*15),t.updateOverlay(l,{rotation:_e},we?{transient:!0}:void 0)},P=ue=>{ue.preventDefault(),C(ue.clientX,ue.clientY,!0,ue.shiftKey)},me=ue=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",me),window.removeEventListener("pointercancel",me),C(ue.clientX,ue.clientY,!1,ue.shiftKey)};window.addEventListener("pointermove",P),window.addEventListener("pointerup",me),window.addEventListener("pointercancel",me)}function ye(l,d){if(U(),!ve||!Re)return;if(ve.replaceChildren(),Re.replaceChildren(),!Te()){ve.hidden=!0,Re.hidden=!0;return}Re.hidden=!0;const i=et();if(!l.filter(h=>Fe(h.overlay,i)).length){ve.hidden=!0;return}ve.hidden=!0}function Be(l,d,r){if(!A)return;const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;if(r.shiftKey||r.ctrlKey||r.metaKey){r.preventDefault(),r.stopPropagation();const Me=Pt(e,"text",l,r,sr(t.getState()).map(we=>we.index));_=Me.length?Me[Me.length-1]:null,Pe(),ft(!0);return}r.preventDefault(),r.stopPropagation(),_=l,bt(e,"text",[l]),Pe(),ee||ft(!0);const c=Ce(),h=Math.max(A.clientWidth/c,.001),I=lt(i),O=Bt(i,I),J=Math.max(je,O-I),C=vt(i),P=r.clientX,me=Me=>{const we=(Me.clientX-P)/h,ge=t.getState().overlays??[];if(d==="move"){const Xe=Math.max(0,I+we),We=Xe+J,st=pt(b,ge,l,Xe,We,Me.clientY,C);St(l,{startAt:Xe,endAt:We,timelineTrack:st},{transient:!0});return}if(d==="start"){const Xe=ae(I+we,0,O-je),We=pt(b,ge,l,Xe,O,Me.clientY,C);St(l,{startAt:Xe,endAt:O,timelineTrack:We},{transient:!0});return}const Ae=Math.max(I+je,O+we),_e=pt(b,ge,l,I,Ae,Me.clientY,C);St(l,{startAt:I,endAt:Ae,timelineTrack:_e},{transient:!0})},ue=Me=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ue),window.removeEventListener("pointercancel",ue);const we=(Me.clientX-P)/h,ge=t.getState().overlays??[];if(d==="move"){const Xe=Math.max(0,I+we),We=Xe+J,st=pt(b,ge,l,Xe,We,Me.clientY,C);St(l,{startAt:Xe,endAt:We,timelineTrack:st});return}if(d==="start"){const Xe=ae(I+we,0,O-je),We=pt(b,ge,l,Xe,O,Me.clientY,C);St(l,{startAt:Xe,endAt:O,timelineTrack:We});return}const Ae=Math.max(I+je,O+we),_e=pt(b,ge,l,I,Ae,Me.clientY,C);St(l,{startAt:I,endAt:Ae,timelineTrack:_e})};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ue),window.addEventListener("pointercancel",ue),ot()}function Ee(l,d){if(R(),!b||!A||(b.replaceChildren(),b.hidden=l.length===0,!l.length))return;const r=Ce(),i=A.clientWidth/r,c=Rn(t.getState()),h=new Map;for(const I of l){const O=vt(I.overlay),J=c.get(O)??O;let C=h.get(O);C||(C=document.createElement("div"),C.className="me-video-overlay-track-row",C.dataset.track=String(O),C.style.top=`${Ln(J)}px`,h.set(O,C),b.appendChild(C));const P=document.createElement("div");P.className="me-video-text-track-clip me-video-filter-track-clip",d.has(I.index)&&P.classList.add("is-active");const me=lt(I.overlay),ue=Sn(I.overlay);P.style.left=`${me*i}px`,P.style.width=`${Math.max(36,ue*i)}px`;const Me=document.createElement("span");Me.className="me-video-text-track-icon",Me.textContent="Adj";const we=document.createElement("span");we.className="me-video-text-track-label",we.textContent=s.tool,we.title=we.textContent;const ge=document.createElement("span");ge.className="me-video-text-track-handle is-start";const Ae=document.createElement("span");Ae.className="me-video-text-track-handle is-end",P.append(Me,we,ge,Ae),P.addEventListener("pointerdown",_e=>Be(I.index,"move",_e)),ge.addEventListener("pointerdown",_e=>Be(I.index,"start",_e)),Ae.addEventListener("pointerdown",_e=>Be(I.index,"end",_e)),P.addEventListener("click",_e=>{if(_e.preventDefault(),_e.stopPropagation(),_e.shiftKey||_e.ctrlKey||_e.metaKey){Pe(),ot();return}const Xe=Pt(e,"text",I.index,_e,l.map(We=>We.index));_=Xe.length?Xe[Xe.length-1]:null,Pe(),ft(!0),ot()}),C.appendChild(P)}}function $e(l){V.forEach(d=>{d.controls.forEach(r=>{r.range.disabled=l,r.input.disabled=l})}),k.disabled=l}function Ne(){const l=xe();q.forEach(d=>{const r=String(l[d.key]??s.notAvailable);d.valueEl.textContent=r,d.valueEl.title=r})}function De(l){const d=!!l;if($e(!d),k.hidden=!d,y.hidden=d,V.forEach(i=>{i.section.hidden=!d}),Ne(),!d)return;const r=ht(l);V.forEach(i=>{i.controls.forEach(c=>{const h=ae(Number(r[c.key])||0,c.min,c.max);c.range.value=String(h),c.input.value=G(h,c.format)})}),d&&(k.disabled=!gt(l))}function Qe(){return ee&&!!Ve()}function Ie(){return xt().some(r=>r!==pe&&!r.hidden&&r.style.display!=="none"&&r.classList.contains("is-active"))?!0:[...e.querySelectorAll(".me-video-toolrail .me-video-text-tool.is-active")].some(r=>r!==X)}function He(){const l=co(e);return l instanceof HTMLElement?[...l.children].some(d=>d instanceof HTMLElement&&d!==te&&d!==z&&!d.hidden):!1}function Ue(){return ee&&!!Ve()&&!Ie()}function ct(){const l=Cn(e,t.getState().audioClips??[]).length>0;return!Ie()&&!He()&&!l&&!Ve()}function ft(l){const d=!!l;if(d===ee){ot();return}ee=d,ee&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:qe}})),ot()}function Ke(){ee=!1,_=null,e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:"video-info"}})),te.hidden=!0,Ne(),z.hidden=!1,Ft(),E()}function nt(){te.hidden=!Ue(),z.hidden=!ct(),Ft(),E()}function ot(){ze(()=>{Ie()&&(ee=!1),ee&&Pe(),Ot();const l=sr(t.getState());Ze(l);const d=new Set(Qn(e,t.getState()));Ee(l,d),ye(l,d),De(Ve()),nt(),Ut()}),tt()}function Ot(){ze(()=>{const l=e.querySelector(".me-video-toolrail");if(!l)return;re=l;const d=xt(re);pe=ro(d),ke(pe);const r=pe??d[0]??null;(!X||!X.isConnected)&&(X=document.createElement("button"),X.type="button",X.className="me-video-text-tool me-video-feature-one-tool",X.innerHTML=`<span class="me-video-text-tool-icon">${Gr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`,X.addEventListener("click",()=>{Lt()})),X.setAttribute("title",s.tool),X.setAttribute("aria-label",s.tool),mt(r),X.isConnected?r?.parentElement===re&&X.nextSibling!==r&&re.insertBefore(X,r):r?.parentElement===re?re.insertBefore(X,r):re.appendChild(X),Ut(),X.classList.toggle("is-active",Qe()),Ft(),E()})}function Ft(){if(X?.classList.toggle("is-active",Qe()),!!pe){if(Qe()){pe.classList.remove("is-active");return}pe.classList.remove("is-active")}}function kt(l){return!!l&&(l===te||te.contains(l)||l===z||z.contains(l)||l===X||X?.contains?.(l)||l===b||b?.contains?.(l)||l===ve||ve?.contains?.(l)||l===Re||Re?.contains?.(l))}function ln(l){return l.some(d=>{if(!kt(d.target))return!0;for(const r of d.addedNodes)if(!kt(r))return!0;for(const r of d.removedNodes)if(!kt(r))return!0;return!1})}const an=new MutationObserver(l=>{fe||e.__meVideoEnhancerObserverLock||ln(l)&&(Ot(),it())}),en=l=>{l?.detail?.id===qe||l?.detail?.id==="video-info"||(ee=!1,te.hidden=!0,z.hidden=!0,Ft(),E(),it())},Mt=l=>{const d=l.target;d instanceof Element&&d.closest(".me-video-toolrail button")&&it()},tn=()=>{if(!Eo(e)){Ke();return}ot()};an.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",en),e.addEventListener("click",Mt,!0),e.addEventListener(zt,tn),window.addEventListener("resize",E);const m=t.subscribe(()=>{ot()});function H(l){const d=Number(l.input.value);if(!Number.isFinite(d))return null;const r=ae(d,l.displayMin,l.displayMax),i=ae(M(r,l.format),l.min,l.max);return{displayValue:r,internalValue:i}}function W(l){const d=Number(l.range.value);if(!Number.isFinite(d))return null;const r=ae(d,l.min,l.max);return{internalValue:r,displayValue:ae(S(r,l.format),l.displayMin,l.displayMax)}}return V.forEach(l=>{l.controls.forEach(d=>{d.range.addEventListener("input",()=>{const r=W(d);r&&(d.input.value=G(r.internalValue,d.format),Rt({[d.key]:r.internalValue},{transient:!0}))}),d.range.addEventListener("change",()=>{const r=W(d);if(!r){ot();return}d.input.value=G(r.internalValue,d.format),Rt({[d.key]:r.internalValue})}),d.input.addEventListener("input",()=>{const r=H(d);r&&(d.range.value=String(r.internalValue),Rt({[d.key]:r.internalValue},{transient:!0}))}),d.input.addEventListener("change",()=>{const r=H(d);if(!r){ot();return}d.range.value=String(r.internalValue),d.input.value=G(r.internalValue,d.format),Rt({[d.key]:r.internalValue})}),d.input.addEventListener("blur",()=>{const r=H(d);if(!r){ot();return}d.range.value=String(r.internalValue),d.input.value=G(r.internalValue,d.format)})})}),k.addEventListener("click",()=>{Ct()}),Ot(),ot(),{destroy(){an.disconnect(),m(),Je&&le&&Je.unobserve(le),Ge&&D&&Ge.unobserve(D),e.removeEventListener("me-video-inspector-open",en),e.removeEventListener("click",Mt,!0),e.removeEventListener(zt,tn),window.removeEventListener("resize",E),wt(),X?.remove(),b?.remove(),ve?.remove(),Re?.remove(),te.remove(),z.remove(),Ht(e)}}}function ia(e,t,n){Qt();const o=Mi(n()),a=ji(),s=Vi(a),u=document.createElement("div");u.className="me-video-text-panel me-video-ratio-panel",u.hidden=!0,e.appendChild(u);const f=document.createElement("div");f.className="me-video-text-toolbar";const v=document.createElement("strong");v.textContent=o.title,f.append(v);const S=Kt(o.commonPresets),M=document.createElement("div");M.className="me-video-ratio-card-grid",S.body.appendChild(M);const G=Kt(o.customSize),T=document.createElement("input");T.type="number",T.min="2",T.step="2",T.className="me-video-text-input";const F=document.createElement("input");F.type="number",F.min="2",F.step="2",F.className="me-video-text-input";const j=eo(o.width,T),oe=eo(o.height,F),Q=document.createElement("div");Q.className="me-video-ratio-dimension-grid";const Z=document.createElement("div");Z.className="me-video-ratio-cross",Z.textContent="x",Q.append(j,Z,oe);const ie=document.createElement("div");ie.className="me-video-ratio-lock-row";const he=document.createElement("button");he.type="button",he.className="me-video-ratio-lock-toggle me-video-ratio-lock-inline";const ne=document.createElement("button");ne.type="button",ne.className="me-video-ratio-quick",ne.textContent=o.quickPortrait;const xe=document.createElement("button");xe.type="button",xe.className="me-video-ratio-quick",xe.textContent=o.quickLandscape,G.title.appendChild(he),ie.append(ne,xe);const te=document.createElement("p");te.className="me-video-ratio-summary",G.body.append(Q,ie,te);const w=Kt(o.fitMode),x=document.createElement("div");x.className="me-video-ratio-fit-group";const k=[{fit:"cover",label:o.cover},{fit:"contain",label:o.contain},{fit:"force",label:o.force}].map(ce=>{const Se=document.createElement("button");return Se.type="button",Se.className="me-video-ratio-fit-button",Se.dataset.fit=ce.fit,Se.textContent=ce.label,x.appendChild(Se),{fit:ce.fit,button:Se}}),N=document.createElement("p");N.className="me-video-ratio-note",w.body.append(x,N),u.append(f,G.section,w.section,S.section);let y=null,z=null,Y=null,L=null,B=null,q=!1,V=!0,X=!1,re=!1;const pe="resize",se=io("9:16"),A=io("16:9"),b=typeof requestAnimationFrame=="function"?requestAnimationFrame:ce=>setTimeout(ce,16);function le(){Promise.resolve().then(()=>{re=!1;const ce=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,ce-1)})}function Le(ce){re=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return ce()}finally{le()}}function ve(){X||(X=!0,b(()=>{X=!1,Pe()}))}function Re(ce=z){return ce?[...ce.children].filter(Se=>Se instanceof HTMLButtonElement&&Se!==y&&!Se.classList.contains("me-video-text-tool")):[]}function D(ce){return[ce?.textContent,ce?.getAttribute?.("title"),ce?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function ee(ce){const Se=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(ce.find(Ve=>{const Ze=D(Ve);return Se.some(at=>Ze.includes(at))})??ce[0]??null)}function _(){if(L&&q){L.classList.remove("is-active");return}}function K(ce){const Se=[o.tool,o.title,"ratio","resize","\u6BD4\u4F8B","\u756B\u5E03","\u753B\u5E03"].map(Ve=>String(Ve??"").trim().toLowerCase()).filter(Boolean);return ce.find(Ve=>{const Ze=D(Ve);return Se.some(at=>Ze.includes(at))})??ce[ce.length-1]??null}function fe(){B&&(B.isConnected&&(B.style.display=B.dataset.meResizeDisplay??"",B.hidden=B.dataset.meResizeHidden==="true",delete B.dataset.meResizeDisplay,delete B.dataset.meResizeHidden),B=null)}function qe(ce){if(!ce){fe();return}B!==ce&&(fe(),ce.dataset.meResizeDisplay=ce.style.display??"",ce.dataset.meResizeHidden=ce.hidden?"true":"false",ce.hidden=!0,ce.style.display="none",B=ce)}function Oe(){L&&(L.classList.contains("is-active")||L.click())}function Je(){rn(e,u),Ht(e)}function Ge(ce){const Se=!!ce;if(Se===q){Pe();return}q=Se,q&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:pe}})),Pe()}function Ye(){const ce=e.querySelector(".me-video-toolrail");if(!ce)return;z=ce;const Se=Re(z);L=ee(Se),Y=K(Se),qe(Y),(!y||!y.isConnected)&&(y=document.createElement("button"),y.type="button",y.className="me-video-text-tool me-video-ratio-tool",y.innerHTML=`<span class="me-video-text-tool-icon">\u2922</span><span class="me-video-text-tool-label">${o.tool}</span>`,y.title=o.tool,y.setAttribute("aria-label",o.tool),y.addEventListener("click",()=>{const Ve=!q;Ve&&(Oe(),ve()),Ge(Ve)})),y.isConnected?Y?.parentElement===z&&y.nextSibling!==Y&&z.insertBefore(y,Y):Y?.parentElement===z?z.insertBefore(y,Y):z.appendChild(y),y.classList.toggle("is-active",q),_(),Je()}function dt(){u.hidden=!q,y?.classList.toggle("is-active",q),_(),Je()}function rt(ce=t.getState()){return Ro(ce?.scale?.fit)}function ze(){he.textContent=V?"\u{1F512}":"\u{1F513}",he.title=V?o.lockRatio:o.unlockRatio,he.setAttribute("aria-label",he.title),he.classList.toggle("is-active",V)}function it(ce,Se,Ve=rt(),Ze=!1){const at={width:fn(ce,2),height:fn(Se,2),fit:Ro(Ve)};if(Ze){t.patch({scale:at},{transient:!0});return}t.commit({scale:at})}function xt(ce){const Se=jn(t.getState()),Ve=fn(ce,Se.w);if(!V)return{width:Ve,height:fn(F.value,Se.h)};const Ze=Se.w>0&&Se.h>0?Se.w/Se.h:1;return{width:Ve,height:fn(Ve/Ze,Se.h)}}function wt(ce){const Se=jn(t.getState()),Ve=fn(ce,Se.h);if(!V)return{width:fn(T.value,Se.w),height:Ve};const Ze=Se.w>0&&Se.h>0?Se.w/Se.h:1;return{width:fn(Ve*Ze,Se.w),height:Ve}}function ke(ce){const Se=Xi(s,ce);M.replaceChildren();for(const Ve of s){const Ze=document.createElement("button");Ze.type="button",Ze.className="me-video-ratio-preset-group",Ze.title=`${Ve.ratio} (${On(Ve)})`,Se&&Se.ratio===Ve.ratio&&Ze.classList.add("is-active");const at=document.createElement("div");at.className="me-video-ratio-preset-head";const Et=document.createElement("div");Et.className="me-video-ratio-preset-title";const St=document.createElement("strong");St.className="me-video-ratio-preset-ratio",St.textContent=Ve.ratio;const Rt=document.createElement("span");Rt.className="me-video-ratio-preset-size",Rt.textContent=`(${On(Ve)})`,Et.append(St,Rt);const ut=document.createElement("span");ut.className="me-video-ratio-preset-marker",ut.setAttribute("aria-hidden","true"),at.append(Et,ut);const It=document.createElement("p");It.className="me-video-ratio-preset-hint",It.textContent=Ve.hint,Ze.addEventListener("click",()=>{it(Ve.w,Ve.h,rt())}),Ze.append(at,It),M.appendChild(Ze)}}function Pe(){Le(()=>{Ye();const ce=t.getState(),Se=Re().find(Et=>Et.classList.contains("is-active"))??null;q&&Se&&Se!==L&&(Oe(),ve());const Ve=jn(ce),Ze=Tr(ce),at=rt(ce);T.value=String(Ve.w),F.value=String(Ve.h),ze(),te.innerHTML=`<strong>${o.summary}:</strong> ${On(Ve)}${ce.scale?` | ${o.baseOutput}: ${On(Ze)}`:""}`,N.textContent=qi(o,at),k.forEach(Et=>{Et.button.classList.toggle("is-active",Et.fit===at)}),ke(Ve),dt()})}function Ce(ce){return!!ce&&(ce===u||u.contains(ce))}function et(ce){return ce.some(Se=>{if(!Ce(Se.target))return!0;for(const Ve of Se.addedNodes)if(!Ce(Ve))return!0;for(const Ve of Se.removedNodes)if(!Ce(Ve))return!0;return!1})}const tt=new MutationObserver(ce=>{re||e.__meVideoEnhancerObserverLock||et(ce)&&(Le(()=>{Ye()}),ve())}),ht=ce=>{ce?.detail?.id!==pe&&(q&&(q=!1,dt()),ve())};tt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",ht),window.addEventListener("resize",ve);const gt=t.subscribe(()=>{ve()});return T.addEventListener("input",()=>{const ce=xt(T.value);it(ce.width,ce.height,rt(),!0)}),T.addEventListener("change",()=>{const ce=xt(T.value);it(ce.width,ce.height,rt())}),F.addEventListener("input",()=>{const ce=wt(F.value);it(ce.width,ce.height,rt(),!0)}),F.addEventListener("change",()=>{const ce=wt(F.value);it(ce.width,ce.height,rt())}),he.addEventListener("click",()=>{V=!V,Pe()}),ne.addEventListener("click",()=>{it(se.w,se.h,rt())}),xe.addEventListener("click",()=>{it(A.w,A.h,rt())}),k.forEach(ce=>{ce.button.addEventListener("click",()=>{const Se=jn(t.getState());it(Se.w,Se.h,ce.fit)})}),Ye(),Pe(),{destroy(){tt.disconnect(),gt(),e.removeEventListener("me-video-inspector-open",ht),window.removeEventListener("resize",ve),fe(),y?.remove(),u.remove(),Ht(e)}}}function aa(e,t,n,o){Qt(),kn();const a=Go(o()),s=a.transitions,u=document.createElement("div");u.className="me-video-text-panel me-video-transition-panel",u.hidden=!0,e.appendChild(u);const f=document.createElement("div");f.className="me-video-text-toolbar";const v=document.createElement("strong");v.textContent=s.title;const S=Yt(s.fadeAll),M=Yt(s.close);f.append(v,S,M);const G=document.createElement("p");G.className="me-video-text-hint",G.textContent=s.hint;const T=document.createElement("div");T.className="me-video-text-list";const F=document.createElement("div");F.className="me-video-text-empty",F.textContent=s.empty;const j=document.createElement("div");j.className="me-video-transition-selection";const oe=document.createElement("div");oe.className="me-video-transition-grid";const Q=fo.map(ke=>{const Pe=En(a,ke.key),Ce=document.createElement("button");return Ce.type="button",Ce.className="me-video-transition-choice",Ce.dataset.transition=ke.key,Ce.innerHTML=`<strong>${Pe.label}</strong><span>${ke.key==="none"?s.instantCut:`${s.duration} ${mn(ke.duration)}`}</span>`,oe.appendChild(Ce),Ce}),Z=document.createElement("input");Z.type="range",Z.min="0.1",Z.max="1.2",Z.step="0.05";const ie=document.createElement("div");ie.className="me-video-text-inline";const he=document.createElement("span");ie.append(Z,he);const ne=eo(s.duration,ie);ne.classList.add("is-span-2");const xe=document.createElement("div");xe.className="me-video-transition-actions";const te=Yt(s.clearSelected),w=wi(s.clearAll,"clear");w.classList.add("me-video-text-cta"),xe.append(w,te),u.append(f,G,T,F,j,oe,ne,xe);let x=null,k=null,N=null,y=null,z=null,Y=!1,L=0,B=!1,q=!1;const V="transition",X=typeof requestAnimationFrame=="function"?requestAnimationFrame:ke=>setTimeout(ke,16),re=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>A());function pe(){Promise.resolve().then(()=>{q=!1;const ke=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,ke-1)})}function se(ke){q=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return ke()}finally{pe()}}function A(){B||(B=!0,X(()=>{B=!1,Ye()}))}function b(ke){const Pe=!!ke;if(Pe===Y){Ye();return}Y=Pe,Y&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:V}})),Ye()}function le(){return k?[...k.querySelectorAll("button")].filter(ke=>ke!==x):[]}function Le(){le()[0]?.click()}function ve(){x&&(x.dataset.theme=Wn(n()))}function Re(){rn(e,u),Ht(e)}function D(){u.hidden=!Y,x&&x.classList.toggle("is-active",Y),Re()}function ee(ke){const Pe=Math.max(0,(ke.clips??[]).length-1);if(!Pe){L=0;return}L=ae(L,0,Pe-1)}function _(ke,Pe=!1){if(Pe){t.patch({transitions:ke},{transient:!0});return}t.commit({transitions:ke})}function K(ke,Pe=!1){const Ce=t.getState(),et=xo(Ce),tt=Ce.clips??[];ee(Ce),!(!et.length||!tt[L]||!tt[L+1])&&(et[L]=Un({...et[L],...ke},Dt(tt[L]),Dt(tt[L+1])),_(et,Pe))}function fe(ke){const Pe=t.getState(),Ce=xo(Pe),et=Pe.clips??[];if(ee(Pe),!Ce.length||!et[L]||!et[L+1])return;const tt=En(a,ke);Ce[L]=Un({type:ke,duration:ke==="none"?0:Ce[L]?.duration||tt.duration},Dt(et[L]),Dt(et[L+1])),_(Ce)}function qe(ke){const Ce=t.getState().clips??[];if(Ce.length<2)return;const et=En(a,ke),tt=[];for(let ht=0;ht<Ce.length-1;ht++)tt.push(Un({type:ke,duration:ke==="none"?0:et.duration},Dt(Ce[ht]),Dt(Ce[ht+1])));_(tt)}function Oe(){const Pe=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!Pe){y?.remove(),y=null,re&&z&&(re.unobserve(z),z=null),N=null;return}N=Pe,N.style.position="relative",(!y||!y.isConnected||y.parentElement!==N)&&(y?.remove(),y=document.createElement("div"),y.className="me-video-transition-track",N.appendChild(y)),re&&z!==N&&(z&&re.unobserve(z),z=N,re.observe(N))}function Je(ke,Pe){T.replaceChildren();const Ce=Math.max(0,(ke.clips??[]).length-1);for(let et=0;et<Ce;et++){const tt=document.createElement("button");tt.type="button",tt.className="me-video-text-chip",et===L&&tt.classList.add("is-active");const ht=Pe[et],gt=En(a,ht?.type??"none");tt.textContent=s.boundary(et+1,et+2,gt.short),tt.title=s.boundaryTitle(et+1,et+2),tt.addEventListener("click",()=>{L=et,Le(),b(!0)}),T.appendChild(tt)}}function Ge(ke,Pe){if(Oe(),!y||!N)return;y.replaceChildren();const Ce=ke.clips??[];if(Ce.length<2)return;const et=Math.max(typeof t.contentDuration=="function"?t.contentDuration():0,.001),tt=N.clientWidth/et;let ht=0;for(let gt=0;gt<Ce.length-1;gt++){ht+=Dt(Ce[gt]);const ce=Pe[gt],Se=En(a,ce?.type??"none"),Ve=ce?.type==="none",Ze=document.createElement("button");Ze.type="button",Ze.className="me-video-transition-marker",Ve&&Ze.classList.add("is-cut-only"),ce?.type!=="none"&&Ze.classList.add("is-enabled"),gt===L&&Ze.classList.add("is-active"),Ze.style.left=`${ht*tt}px`,Ze.title=s.markerTitle(gt+1,gt+2,Se.label,ce?.type!=="none"?mn(ce.duration):"");const at=document.createElement("span");at.className="me-video-transition-pill",at.textContent=Ve?"":Se.short,Ze.appendChild(at),Ze.addEventListener("click",()=>{L=gt,Le(),b(!0)}),y.appendChild(Ze)}}function Ye(){se(()=>{const ke=t.getState(),Pe=xo(ke);ee(ke),Je(ke,Pe),Ge(ke,Pe);const Ce=Pe[L]??null,et=En(a,Ce?.type??"none");F.hidden=Pe.length>0,j.textContent=Ce?s.selection(L+1,L+2):s.selectionEmpty,Z.disabled=!Ce||et.key==="none",te.disabled=!Ce,w.disabled=Pe.length===0,S.disabled=Pe.length===0,Z.value=String(Ce&&et.key!=="none"?Ce.duration:ho("fade").duration),he.textContent=Ce&&et.key!=="none"?mn(Ce.duration):s.cut,Q.forEach(tt=>{const ht=!!Ce&&tt.dataset.transition===et.key;tt.classList.toggle("is-active",ht),tt.disabled=!Ce}),D(),Re(),ve()})}function dt(){se(()=>{const ke=e.querySelector(".me-video-toolrail");ke&&(k=ke,(!x||!x.isConnected)&&(x=document.createElement("button"),x.type="button",x.className="me-video-text-tool",x.innerHTML=`<span class="me-video-text-tool-icon">Fx</span><span class="me-video-text-tool-label">${s.tool}</span>`,x.addEventListener("click",()=>{const Pe=!Y;Pe&&Le(),b(Pe)})),x.isConnected||k.appendChild(x),ve(),Re())})}function rt(ke){return!!ke&&(ke===u||u.contains(ke)||ke===x||ke===y||y?.contains(ke))}function ze(ke){return ke.some(Pe=>{if(!rt(Pe.target))return!0;for(const Ce of Pe.addedNodes)if(!rt(Ce))return!0;for(const Ce of Pe.removedNodes)if(!rt(Ce))return!0;return!1})}const it=new MutationObserver(ke=>{q||e.__meVideoEnhancerObserverLock||ze(ke)&&(dt(),A())}),xt=ke=>{ke?.detail?.id!==V&&Y&&(Y=!1,Ye())};it.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",xt),window.addEventListener("resize",A);const wt=t.subscribe(()=>{A()});return Q.forEach(ke=>{ke.addEventListener("click",()=>{fe(ke.dataset.transition??"none")})}),Z.addEventListener("input",()=>{he.textContent=mn(Z.value),K({duration:Number(Z.value)||.4},!0)}),Z.addEventListener("change",()=>{K({duration:Number(Z.value)||.4})}),S.addEventListener("click",()=>qe("fade")),te.addEventListener("click",()=>fe("none")),w.addEventListener("click",()=>qe("none")),M.addEventListener("click",()=>{b(!1)}),dt(),Ye(),{destroy(){it.disconnect(),wt(),re?.disconnect(),e.removeEventListener("me-video-inspector-open",xt),window.removeEventListener("resize",A),x?.remove(),y?.remove(),u.remove(),Ht(e)}}}function sa(e,t,n){Qt();const o=Ni(n()),a=typeof requestAnimationFrame=="function"?requestAnimationFrame:r=>setTimeout(r,16),s=document.createElement("div");s.className="me-video-text-panel me-video-add-panel",s.hidden=!0,e.appendChild(s);const u=document.createElement("div");u.className="me-video-text-toolbar";const f=document.createElement("strong");f.textContent=o.title;const v=Yt(o.reset);u.append(f,v);const S=document.createElement("p");S.className="me-video-text-hint",S.textContent=o.hint;const M=document.createElement("div");M.className="me-video-add-body";const G=document.createElement("section");G.className="me-video-add-section";const T=document.createElement("div");T.className="me-video-add-section-head";const F=document.createElement("span");F.className="me-video-add-section-title",F.textContent=o.tools,T.appendChild(F);const j=document.createElement("div");j.className="me-video-add-tool-grid";const oe=document.createElement("section");oe.className="me-video-add-section";const Q=document.createElement("div");Q.className="me-video-add-section-head";const Z=document.createElement("span");Z.className="me-video-add-section-title",Z.textContent=o.color,Q.appendChild(Z);const ie=document.createElement("div");ie.className="me-video-add-color-grid";const he=document.createElement("div");he.className="me-video-add-custom-color";const ne=document.createElement("div");ne.className="me-video-add-custom-head";const xe=document.createElement("div");xe.className="me-video-add-custom-preview";const te=document.createElement("span");te.className="me-video-add-custom-label",te.textContent=o.custom,ne.append(xe,te);const w=document.createElement("div");w.className="me-video-add-spectrum";const x=document.createElement("span");x.className="me-video-add-spectrum-thumb",w.appendChild(x);const k=document.createElement("div");k.className="me-video-add-hue-row";const N=document.createElement("div");N.className="me-video-add-custom-preview";const y=document.createElement("input");y.type="range",y.min="0",y.max="360",y.step="1",y.className="me-video-add-hue-slider",k.append(N,y);const z=document.createElement("div");z.className="me-video-add-rgb-grid";const Y={};["r","g","b"].forEach(r=>{const i=document.createElement("label");i.className="me-video-add-rgb-field";const c=document.createElement("input");c.type="number",c.min="0",c.max="255",c.step="1",c.inputMode="numeric",c.className="me-video-add-rgb-input";const h=document.createElement("span");h.className="me-video-add-rgb-label",h.textContent=r.toUpperCase(),i.append(c,h),z.appendChild(i),Y[r]=c}),he.append(ne,w,k,z);const L=document.createElement("section");L.className="me-video-add-section";const B=document.createElement("div");B.className="me-video-add-section-head";const q=document.createElement("span");q.className="me-video-add-section-title",q.textContent=o.width;const V=document.createElement("span");V.className="me-video-add-section-value",B.append(q,V);const X=document.createElement("input");X.type="range",X.min=String(Dn),X.max=String(_n),X.step="1",X.className="me-video-add-slider",G.append(T,j),oe.append(Q,ie,he),L.append(B,X),M.append(G,oe,L),s.append(u,S,M);let re=null,pe=null,se=null,A=null,b=null,le=null,Le=null,ve=null,Re=null,D=!1,ee=!1,_=null,K=to(),fe=null,qe=null,Oe=null,Je=0,Ge=0;const Ye="add",dt=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"ml",x:0,y:.5},{key:"mr",x:1,y:.5},{key:"bl",x:0,y:1},{key:"bm",x:.5,y:1},{key:"br",x:1,y:1}],rt={key:"rotate",x:.5,y:0},ze=typeof ResizeObserver=="function"?new ResizeObserver(()=>{Lt()}):null,it=typeof ResizeObserver=="function"?new ResizeObserver(()=>{Lt()}):null,xt=xr.map(r=>{const i=document.createElement("button");return i.type="button",i.className="me-video-add-tool-card",i.dataset.tool=r.key,i.innerHTML=`<span class="me-video-add-tool-icon">${Oi(r.key)}</span><span class="me-video-add-tool-label">${o[r.key]}</span>`,i.addEventListener("click",()=>{At({tool:r.key})}),j.appendChild(i),i}),wt=br.map(r=>{const i=document.createElement("button");return i.type="button",i.className="me-video-add-color-chip",i.dataset.color=r,i.dataset.tone=r==="#ffffff"?"light":"dark",i.style.background=r,i.title=r,i.setAttribute("aria-label",r),i.addEventListener("click",()=>{At({color:r})}),ie.appendChild(i),i});function ke(r,i,c){Oe?.();const h=r==="mouse"?["mousemove"]:["pointermove"],I=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],O=C=>{i(C)},J=C=>{h.forEach(P=>window.removeEventListener(P,O)),I.forEach(P=>window.removeEventListener(P,J)),Oe=null,c(C)};Oe=()=>{h.forEach(C=>window.removeEventListener(C,O)),I.forEach(C=>window.removeEventListener(C,J))},h.forEach(C=>window.addEventListener(C,O)),I.forEach(C=>window.addEventListener(C,J))}function Pe(r,i){const c=w.getBoundingClientRect();if(!(c.width>0&&c.height>0))return;const h=ae((r-c.left)/c.width,0,1),I=1-ae((i-c.top)/c.height,0,1),O=no(K.color),J=Oo(O.r,O.g,O.b),C=zo(J.h,h,I);At({color:oo(C.r,C.g,C.b)})}function Ce(r){const i=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),c=r.type==="mousedown"?"mouse":"pointer";if(c==="mouse"){if(i<Ge)return}else Ge=i+80;r.preventDefault(),r.stopPropagation(),Pe(r.clientX,r.clientY),ke(c,h=>{h.preventDefault(),Pe(h.clientX,h.clientY)},()=>{})}function et(r){const i=no(K.color),c=Oo(i.r,i.g,i.b),h=zo(ae(Number(r)||0,0,360),c.s,c.v);At({color:oo(h.r,h.g,h.b)})}function tt(r,i){const c=no(K.color),h={r:c.r,g:c.g,b:c.b};Number.isFinite(Number(i))&&(h[r]=ae(Number(i),0,255)),At({color:oo(h.r,h.g,h.b)})}function ht(){return(t.getState().overlays??[]).map((r,i)=>({overlay:r,index:i})).filter(r=>nn(r.overlay))}function gt(){const r=t.getState().overlays??[];if(_==null)return null;const i=r[_];return nn(i)?i:null}function ce(){const r=gt();if(!r)return!1;const i=to({tool:K.tool,color:r.color,width:r.width});return Ao(K,i)?!1:(K=i,!0)}function Se(r,i,c={}){if(!gt()||_==null)return;const I={};Object.prototype.hasOwnProperty.call(i,"color")&&(I.color=r.color),Object.prototype.hasOwnProperty.call(i,"width")&&(I.width=r.width),Object.keys(I).length&&t.updateOverlay(_,I,c)}function Ve(){return Tn(t)}function Ze(){return yn(e)}function at(r,i,c={}){const I=(t.getState().overlays??[])[r];nn(I)&&t.updateOverlay(r,Jt(I,Ve(),i),c)}function Et(r){const i=t.getState().overlays??[],c=i.length;if(typeof t.applyMut=="function")return t.applyMut(I=>({...I,overlays:[...on(I.overlays),{...r,timelineTrack:0}]})),c;const h=on(i);return t.commit?.({overlays:[...h,{...r,timelineTrack:0}]}),c}function St(r){const i=Ve();let c=ae(Ze(),0,Math.max(0,i-je)),h=Math.min(i,c+qt);h-c<je&&(c=ae(i-qt,0,Math.max(0,i-je)),h=Math.max(c+je,i));const I={...r,...Jt(null,i,{startAt:c,endAt:h,timelineTrack:0})},O=Et(I);_=Number.isInteger(O)?O:null,bt(e,"text",_==null?[]:[_]),E(),p(!0)}function Rt(){const{timelineInner:r,timelineHost:i}=Fn(e,t.getState());if(!r||!i){ve?.remove(),ve=null,ze&&Re&&(ze.unobserve(Re),Re=null),Le=null;return}Le=r,(!ve||!ve.isConnected||ve.parentElement!==i)&&(ve?.remove(),ve=document.createElement("div"),ve.className="me-video-text-timeline me-video-overlay-timeline me-video-add-overlay-layer");for(const c of[...i.children])c!==ve&&c instanceof HTMLElement&&c.classList.contains("me-video-add-overlay-layer")&&c.remove();(ve.parentElement!==i||i.lastElementChild!==ve)&&i.appendChild(ve),ze&&Re!==Le&&(Re&&ze.unobserve(Re),Re=Le,ze.observe(Le))}function ut(r,i,c){if(!Le)return;const h=(t.getState().overlays??[])[r];if(!nn(h))return;if(c.shiftKey||c.ctrlKey||c.metaKey){c.preventDefault(),c.stopPropagation();const ge=Pt(e,"text",r,c,yo(t.getState()).map(Ae=>Ae.index));_=ge.length?ge[ge.length-1]:null,E(),p(!0);return}c.preventDefault(),c.stopPropagation(),_=r,bt(e,"text",[r]),E(),D||p(!0);const I=Ve(),O=Math.max(Le.clientWidth/I,.001),J=lt(h),C=Bt(h,J),P=Math.max(je,C-J),me=vt(h),ue=c.clientX,Me=ge=>{const Ae=(ge.clientX-ue)/O,_e=t.getState().overlays??[];if(i==="move"){const st=Math.max(0,J+Ae),Nt=st+P,$t=pt(ve,_e,r,st,Nt,ge.clientY,me);at(r,{startAt:st,endAt:Nt,timelineTrack:$t},{transient:!0});return}if(i==="start"){const st=ae(J+Ae,0,C-je),Nt=pt(ve,_e,r,st,C,ge.clientY,me);at(r,{startAt:st,endAt:C,timelineTrack:Nt},{transient:!0});return}const Xe=Math.max(J+je,C+Ae),We=pt(ve,_e,r,J,Xe,ge.clientY,me);at(r,{startAt:J,endAt:Xe,timelineTrack:We},{transient:!0})},we=ge=>{window.removeEventListener("pointermove",Me),window.removeEventListener("pointerup",we),window.removeEventListener("pointercancel",we);const Ae=(ge.clientX-ue)/O,_e=t.getState().overlays??[];if(i==="move"){const st=Math.max(0,J+Ae),Nt=st+P,$t=pt(ve,_e,r,st,Nt,ge.clientY,me);at(r,{startAt:st,endAt:Nt,timelineTrack:$t});return}if(i==="start"){const st=ae(J+Ae,0,C-je),Nt=pt(ve,_e,r,st,C,ge.clientY,me);at(r,{startAt:st,endAt:C,timelineTrack:Nt});return}const Xe=Math.max(J+je,C+Ae),We=pt(ve,_e,r,J,Xe,ge.clientY,me);at(r,{startAt:J,endAt:Xe,timelineTrack:We})};window.addEventListener("pointermove",Me),window.addEventListener("pointerup",we),window.addEventListener("pointercancel",we),Mt()}function It(r,i){if(Rt(),!ve||!Le||(ve.replaceChildren(),ve.hidden=r.length===0,!r.length))return;const c=Ve(),h=Le.clientWidth/c,I=Rn(t.getState()),O=new Map;for(const J of r){const C=vt(J.overlay),P=I.get(C)??C;let me=O.get(C);me||(me=document.createElement("div"),me.className="me-video-overlay-track-row",me.dataset.track=String(C),me.style.top=`${Ln(P)}px`,O.set(C,me),ve.appendChild(me));const ue=document.createElement("div");ue.className="me-video-text-track-clip me-video-add-track-clip",i.has(J.index)&&ue.classList.add("is-active");const Me=lt(J.overlay),we=Sn(J.overlay);ue.style.left=`${Me*h}px`,ue.style.width=`${Math.max(36,we*h)}px`;const ge=document.createElement("span");ge.className="me-video-text-track-icon",ge.textContent="+";const Ae=document.createElement("span");Ae.className="me-video-text-track-label",Ae.textContent=gr(J.overlay,o),Ae.title=Ae.textContent;const _e=document.createElement("span");_e.className="me-video-text-track-handle is-start";const Xe=document.createElement("span");Xe.className="me-video-text-track-handle is-end",ue.append(ge,Ae,_e,Xe),ue.addEventListener("pointerdown",We=>ut(J.index,"move",We)),_e.addEventListener("pointerdown",We=>ut(J.index,"start",We)),Xe.addEventListener("pointerdown",We=>ut(J.index,"end",We)),ue.addEventListener("click",We=>{if(We.preventDefault(),We.stopPropagation(),We.shiftKey||We.ctrlKey||We.metaKey){E(),Mt();return}const st=Pt(e,"text",J.index,We,r.map(Nt=>Nt.index));_=st.length?st[st.length-1]:null,E(),p(!0),Mt()}),me.appendChild(ue)}}function Lt(){ee||(ee=!0,a(()=>{ee=!1,Mt()}))}function jt(){xt.forEach(c=>{c.classList.toggle("is-active",c.dataset.tool===K.tool)}),wt.forEach(c=>{c.classList.toggle("is-active",c.dataset.color===K.color)});const r=no(K.color),i=Oo(r.r,r.g,r.b);he.classList.toggle("is-active",!br.includes(K.color)),he.style.setProperty("--me-add-color-current",K.color),he.style.setProperty("--me-add-color-hue",Hi(i.h)),xe.style.background=K.color,N.style.background=K.color,x.style.left=`${i.s*100}%`,x.style.top=`${(1-i.v)*100}%`,y.value=String(Math.round(i.h)),Y.r.value=String(r.r),Y.g.value=String(r.g),Y.b.value=String(r.b),X.value=String(ae(Math.round(Number(K.width)||sn.width),Dn,_n)),V.textContent=Pi(K.width),v.disabled=yr(K)}function At(r,i={}){const c=to({...K,...r});if(Ao(K,c)){i.applyToSelected&&Se(c,r,i.overlayOptions);return}K=c,i.applyToSelected!==!1&&Se(c,r,i.overlayOptions),jt(),Lt()}function Ct(){if(yr(K)){jt();return}K=to(),jt(),Lt()}function mt(r=pe){return r?[...r.children].filter(i=>i instanceof HTMLButtonElement&&i!==re&&!i.classList.contains("me-video-text-tool")):[]}function Ut(){re?.classList.toggle("is-active",D)}function E(){se&&(se.classList.contains("is-active")||se.click())}function R(){rn(e,s),Ht(e)}function U(){fe=null}function Te(){qe?.(),qe=null,U()}function Fe(){s.hidden=!D,Ut(),R()}function p(r){const i=!!r;if(i===D){Mt();return}D=i,D?(e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Ye}})),E()):(Te(),Oe?.(),Oe=null),Mt()}function g(){const r=e.querySelector(".me-video-toolrail");r&&(pe=r,se=ro(mt(r)),(!re||!re.isConnected)&&(re=document.createElement("button"),re.type="button",re.className="me-video-text-tool me-video-add-tool",re.innerHTML=`<span class="me-video-text-tool-icon">${zi()}</span><span class="me-video-text-tool-label">${o.tool}</span>`,re.title=o.tool,re.setAttribute("aria-label",o.tool),re.addEventListener("click",()=>{const i=!D;i&&E(),p(i)})),re.isConnected?re.parentElement===pe&&re!==pe.lastElementChild&&pe.appendChild(re):pe.appendChild(re),Fe())}function $(){const r=e.querySelector(".me-video-canvas-stage");if(!r){b?.remove(),b=null,it&&le&&(it.unobserve(le),le=null),A=null;return}A=r,A.style.position="relative",!b||!b.isConnected||b.parentElement!==A?(b?.remove(),b=document.createElement("div"),b.className="me-video-add-canvas-layer",b.addEventListener("pointerdown",en),b.addEventListener("mousedown",en),b.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),A.appendChild(b)):A.lastElementChild!==b&&A.appendChild(b),it&&le!==A&&(le&&it.unobserve(le),le=A,it.observe(A)),b.hidden=!D,b.dataset.tool=K.tool}function de(){if(!A)return null;const r=t.getState().canvas??{},i=Math.max(1,Number(r.w)||0),c=Math.max(1,Number(r.h)||0);if(!i||!c)return null;const h=A.getBoundingClientRect(),I=A.querySelector("canvas, video, img")||[...A.children].find(me=>me!==b)||null;let O=0,J=0,C=A.clientWidth||i,P=A.clientHeight||c;if(I instanceof HTMLElement){const me=I.getBoundingClientRect();me.width>0&&me.height>0&&(O=me.left-h.left,J=me.top-h.top,C=me.width,P=me.height)}if(!(C>0&&P>0)){const me=A.clientWidth||i,ue=A.clientHeight||c,Me=Math.min(me/i,ue/c)||1;C=i*Me,P=c*Me,O=Math.max(0,(me-C)/2),J=Math.max(0,(ue-P)/2)}return{stageLeft:h.left,stageTop:h.top,left:O,top:J,width:C,height:P,canvasWidth:i,canvasHeight:c,scaleX:C/i,scaleY:P/c}}function be(r,i,c){return{x:ae((r-c.stageLeft-c.left)/c.scaleX,0,c.canvasWidth),y:ae((i-c.stageTop-c.top)/c.scaleY,0,c.canvasHeight)}}function ye(r,i,c){return Number.isFinite(r?.clientX)&&Number.isFinite(r?.clientY)?be(r.clientX,r.clientY,i):c}function Be(r,i){return{x:Math.min(r.x,i.x),y:Math.min(r.y,i.y),w:Math.abs(i.x-r.x),h:Math.abs(i.y-r.y)}}function Ee(r,i){const c=lt(r),h=Bt(r,c);return i>=c-.001&&i<=h+.001}function $e(r,i,c){const h=Pt(e,"text",r,i,c);_=h.length?h[h.length-1]:null,p(!0),Mt()}function Ne(r,i,c,h,I){const O=Math.atan2(h-i,c-r),J=Math.max(12,I*3.5),C=c-J*Math.cos(O-Math.PI/7),P=h-J*Math.sin(O-Math.PI/7),me=c-J*Math.cos(O+Math.PI/7),ue=h-J*Math.sin(O+Math.PI/7);return`M ${C} ${P} L ${c} ${h} L ${me} ${ue}`}function De(r){if(!Array.isArray(r)||r.length<4)return"";let i=`M ${r[0]} ${r[1]}`;for(let c=2;c<r.length;c+=2)i+=` L ${r[c]} ${r[c+1]}`;return i}function Qe(r){const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.classList.add("me-video-add-preview-svg"),i.setAttribute("viewBox",`0 0 ${r.canvasWidth} ${r.canvasHeight}`),i.setAttribute("width",String(r.width)),i.setAttribute("height",String(r.height)),i.style.left=`${r.left}px`,i.style.top=`${r.top}px`,i.style.width=`${r.width}px`,i.style.height=`${r.height}px`,i}function Ie(r,i,c){const h=document.createElementNS("http://www.w3.org/2000/svg",r);return h.classList.add("me-video-add-preview-shape"),h.setAttribute("stroke",i),h.setAttribute("stroke-width",String(c)),h}function He(r){if(!fe)return null;const i=Qe(r);if(fe.type==="pen"){const c=De(fe.points);if(!c)return i;const h=Ie("path",fe.color,fe.width);return h.setAttribute("d",c),i.appendChild(h),i}if(fe.type==="line"||fe.type==="arrow"){const c=Ie("line",fe.color,fe.width);if(c.setAttribute("x1",String(fe.x1)),c.setAttribute("y1",String(fe.y1)),c.setAttribute("x2",String(fe.x2)),c.setAttribute("y2",String(fe.y2)),i.appendChild(c),fe.type==="arrow"){const h=Ie("path",fe.color,fe.width);h.setAttribute("d",Ne(fe.x1,fe.y1,fe.x2,fe.y2,fe.width)),i.appendChild(h)}return i}if(fe.type==="rect"){const c=Ie("rect",fe.color,fe.width);return c.setAttribute("x",String(fe.x)),c.setAttribute("y",String(fe.y)),c.setAttribute("width",String(fe.w)),c.setAttribute("height",String(fe.h)),i.appendChild(c),i}if(fe.type==="ellipse"){const c=Ie("ellipse",fe.color,fe.width);return c.setAttribute("cx",String(fe.x+fe.w/2)),c.setAttribute("cy",String(fe.y+fe.h/2)),c.setAttribute("rx",String(Math.abs(fe.w/2))),c.setAttribute("ry",String(Math.abs(fe.h/2))),i.appendChild(c),i}return i}function Ue(){if($(),!b)return;const r=de();if(b.hidden=!D||!r,!D||!r){b.replaceChildren();return}b.dataset.tool=K.tool,b.replaceChildren();const i=He(r);i&&b.appendChild(i);const c=yo(t.getState()),h=new Set(ur(e,t.getState())),I=Ze(),O=c.map(P=>P.index),J=c.filter(P=>Ee(P.overlay,I)),C=K.tool==="eraser"?[]:h.size?J.filter(P=>h.has(P.index)):J;for(const P of C){const me=Gt(P.overlay);if(!me)continue;const ue=document.createElement("button");ue.type="button",ue.className="me-video-text-canvas-hit";const Me=h.has(P.index),we=Me&&_===P.index;Me&&ue.classList.add("is-active"),ue.title=gr(P.overlay,o),ue.style.left=`${r.left+me.x*r.scaleX}px`,ue.style.top=`${r.top+me.y*r.scaleY}px`,ue.style.width=`${Math.max(18,me.w*r.scaleX)}px`,ue.style.height=`${Math.max(18,me.h*r.scaleY)}px`;const ge=un(P.overlay);if(ge&&(ue.style.transform=`rotate(${ge}deg)`,ue.style.transformOrigin="center center"),ue.addEventListener("pointerdown",Ae=>{if(Ae.preventDefault(),Ae.stopPropagation(),Ae.shiftKey||Ae.ctrlKey||Ae.metaKey){$e(P.index,Ae,O);return}_=P.index,bt(e,"text",[P.index]),p(!0),ct(P.index,Ae,r)}),we){for(const _e of dt){const Xe=document.createElement("span");Xe.className="me-video-text-canvas-handle",Xe.dataset.handle=_e.key,Xe.style.left=`${_e.x*100}%`,Xe.style.top=`${_e.y*100}%`,Xe.addEventListener("pointerdown",We=>{We.preventDefault(),We.stopPropagation(),_=P.index,bt(e,"text",[P.index]),p(!0),ft(P.index,_e,We,r)}),ue.appendChild(Xe)}const Ae=document.createElement("span");Ae.className="me-video-text-canvas-handle",Ae.dataset.handle=rt.key,Ae.style.left=`${rt.x*100}%`,Ae.style.top=`${rt.y*100}%`,Ae.addEventListener("pointerdown",_e=>{_e.preventDefault(),_e.stopPropagation(),_=P.index,bt(e,"text",[P.index]),p(!0),Ke(P.index,_e,r)}),ue.appendChild(Ae)}b.appendChild(ue)}}function ct(r,i,c){const h=(t.getState().overlays??[])[r];if(!nn(h))return;const I=t.getState().canvas??{w:1080,h:1920},O=Gt(h);if(!O)return;const J=i.clientX,C=i.clientY,P=Math.max(0,(Number(I.w)||0)-O.w),me=Math.max(0,(Number(I.h)||0)-O.h),ue=(ge,Ae,_e)=>{const Xe=(ge-J)/c.scaleX,We=(Ae-C)/c.scaleY,st=ae(O.x+Xe,0,P),Nt=ae(O.y+We,0,me),$t=Yo(h,st-O.x,Nt-O.y);t.updateOverlay(r,$t,_e?{transient:!0}:void 0)},Me=ge=>{ge.preventDefault(),ue(ge.clientX,ge.clientY,!0)},we=ge=>{window.removeEventListener("pointermove",Me),window.removeEventListener("pointerup",we),window.removeEventListener("pointercancel",we),ue(ge.clientX,ge.clientY,!1)};window.addEventListener("pointermove",Me),window.addEventListener("pointerup",we),window.addEventListener("pointercancel",we)}function ft(r,i,c,h){const I=(t.getState().overlays??[])[r];if(!nn(I))return;const O=Gt(I);if(!O)return;const J=t.getState().canvas??{w:1080,h:1920},C=i.x===.5?.5:1-i.x,P=i.y===.5?.5:1-i.y,me=O.x+O.w*C,ue=O.y+O.h*P,Me=Math.max(.1,24/Math.max(24,O.w),24/Math.max(24,O.h)),we=i.x===.5?1/0:Math.max(.1,(C===0?(Number(J.w)||0)-me:me)/Math.max(1,O.w)),ge=i.y===.5?1/0:Math.max(.1,(P===0?(Number(J.h)||0)-ue:ue)/Math.max(1,O.h)),Ae=Math.max(Me,Math.min(we,ge,8)),_e=(st,Nt,$t)=>{const cn=be(st,Nt,h),dn=[];i.x!==.5&&dn.push(Math.abs(cn.x-me)/Math.max(1,O.w)),i.y!==.5&&dn.push(Math.abs(cn.y-ue)/Math.max(1,O.h));const Hn=dn.length?Math.max(...dn):1,hn=ae(Hn,Me,Ae),Vn=jo(I,hn),xn=Gt(Vn);if(!xn)return;const Rr=me-xn.w*C,Fr=ue-xn.h*P,Br=Yo(Vn,Rr-xn.x,Fr-xn.y);t.updateOverlay(r,Br,$t?{transient:!0}:void 0)},Xe=st=>{st.preventDefault(),_e(st.clientX,st.clientY,!0)},We=st=>{window.removeEventListener("pointermove",Xe),window.removeEventListener("pointerup",We),window.removeEventListener("pointercancel",We),_e(st.clientX,st.clientY,!1)};window.addEventListener("pointermove",Xe),window.addEventListener("pointerup",We),window.addEventListener("pointercancel",We)}function Ke(r,i,c){const h=(t.getState().overlays??[])[r];if(!nn(h))return;const I=Gt(h);if(!I)return;const O=c.stageLeft+c.left+(I.x+I.w/2)*c.scaleX,J=c.stageTop+c.top+(I.y+I.h/2)*c.scaleY,C=Math.atan2(i.clientY-J,i.clientX-O),P=un(h),me=(we,ge,Ae,_e)=>{const Xe=Math.atan2(ge-J,we-O);let We=In(P+(Xe-C)*180/Math.PI);_e&&(We=Math.round(We/15)*15),t.updateOverlay(r,{rotation:We},Ae?{transient:!0}:void 0)},ue=we=>{we.preventDefault(),me(we.clientX,we.clientY,!0,we.shiftKey)},Me=we=>{window.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",Me),window.removeEventListener("pointercancel",Me),me(we.clientX,we.clientY,!1,we.shiftKey)};window.addEventListener("pointermove",ue),window.addEventListener("pointerup",Me),window.addEventListener("pointercancel",Me)}function nt(r,i,c,h,I,O,J){const C=I-c,P=O-h,me=C*C+P*P||1,ue=ae(((r-c)*C+(i-h)*P)/me,0,1),Me=c+ue*C,we=h+ue*P;return(r-Me)**2+(i-we)**2<=J*J}function ot(r,i,c){if(!r)return!1;if(r.type==="pen"){for(let h=0;h+3<r.points.length;h+=2)if(nt(i,c,r.points[h],r.points[h+1],r.points[h+2],r.points[h+3],Nn+(Number(r.width)||0)/2))return!0;return!1}return r.type==="line"||r.type==="arrow"?nt(i,c,r.x1,r.y1,r.x2,r.y2,Nn+(Number(r.width)||0)/2):r.type==="rect"||r.type==="ellipse"?i>=r.x-Nn&&i<=r.x+r.w+Nn&&c>=r.y-Nn&&c<=r.y+r.h+Nn:!1}function Ot(r){const i=ht();for(let c=i.length-1;c>=0;c--)if(ot(i[c].overlay,r.x,r.y)){t.removeOverlay(i[c].index),Lt();return}}function Ft(r,i,c){Ot(r),kt(c,h=>{h.preventDefault(),Ot(be(h.clientX,h.clientY,i))},()=>{})}function kt(r,i,c){Te();const h=r==="mouse"?["mousemove"]:["pointermove"],I=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],O=C=>{i(C)},J=C=>{h.forEach(P=>window.removeEventListener(P,O)),I.forEach(P=>window.removeEventListener(P,J)),qe=null,c(C)};qe=()=>{h.forEach(C=>window.removeEventListener(C,O)),I.forEach(C=>window.removeEventListener(C,J))},h.forEach(C=>window.addEventListener(C,O)),I.forEach(C=>window.addEventListener(C,J))}function ln(r,i,c){const h=[r.x,r.y],I=O=>{const J=h[h.length-2],C=h[h.length-1];Math.hypot(O.x-J,O.y-C)<1||h.push(O.x,O.y)};fe={type:"pen",points:[...h],color:K.color,width:K.width},Ue(),kt(c,O=>{O.preventDefault();const J=be(O.clientX,O.clientY,i);I(J),fe={type:"pen",points:[...h],color:K.color,width:K.width},Ue()},O=>{const J=ye(O,i,{x:h[h.length-2],y:h[h.length-1]});I(J);const C=[...h];U(),Ue(),!(C.length<4)&&(St({type:"pen",points:C,color:K.color,width:K.width,rotation:0}),Lt())})}function an(r,i,c,h){const I=Ai[r];if(!I)return;const O=J=>{if(I==="line"||I==="arrow")return{type:I,x1:i.x,y1:i.y,x2:J.x,y2:J.y,color:K.color,width:K.width};const C=Be(i,J);return{type:I,x:C.x,y:C.y,w:C.w,h:C.h,color:K.color,width:K.width}};fe=O(i),Ue(),kt(h,J=>{J.preventDefault();const C=be(J.clientX,J.clientY,c);fe=O(C),Ue()},J=>{const C=ye(J,c,i),P=O(C);U(),Ue(),P&&((P.type==="line"||P.type==="arrow")&&Math.hypot(P.x2-P.x1,P.y2-P.y1)<2||(P.type==="rect"||P.type==="ellipse")&&(P.w<2||P.h<2)||St({...P,rotation:0}))})}function en(r){if(!D)return;const i=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),c=r.type==="mousedown"?"mouse":"pointer";if(c==="mouse"){if(i<Je)return}else Je=i+80;if(typeof r.button=="number"&&r.button!==0)return;r.preventDefault(),r.stopPropagation();const h=de();if(!h)return;const I=be(r.clientX,r.clientY,h);if(K.tool==="eraser"){Ft(I,h,c);return}if(K.tool==="brush"){ln(I,h,c);return}an(K.tool,I,h,c)}function Mt(){const r=ur(e,t.getState());_=r.length?r[r.length-1]:null,ce(),mt().find(c=>c!==se&&!c.hidden&&c.style.display!=="none"&&c.classList.contains("is-active"))&&(D=!1,Te()),D&&E(),jt(),Fe(),Ue(),It(yo(t.getState()),new Set(r)),R()}function tn(r){return!!r&&(r===s||s.contains(r)||r===re||re?.contains?.(r)||r===ve||ve?.contains?.(r)||r===b||b?.contains?.(r))}function m(r){return r.some(i=>{if(!tn(i.target))return!0;for(const c of i.addedNodes)if(!tn(c))return!0;for(const c of i.removedNodes)if(!tn(c))return!0;return!1})}const H=new MutationObserver(r=>{m(r)&&(g(),Lt())}),W=r=>{r?.detail?.id!==Ye&&D&&p(!1)},l=()=>{Lt()};H.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",W),e.addEventListener(zt,l),window.addEventListener("resize",Lt);const d=t.subscribe(()=>{Lt()});return v.addEventListener("click",()=>{Ct()}),w.addEventListener("pointerdown",Ce),w.addEventListener("mousedown",Ce),y.addEventListener("input",()=>{et(y.value)}),Object.entries(Y).forEach(([r,i])=>{i.addEventListener("input",()=>{tt(r,i.value)})}),X.addEventListener("input",()=>{At({width:ae(Number(X.value)||sn.width,Dn,_n)})}),g(),Mt(),{destroy(){H.disconnect(),d(),Te(),Oe?.(),Oe=null,ze&&Re&&ze.unobserve(Re),ze?.disconnect?.(),it&&le&&it.unobserve(le),it?.disconnect?.(),e.removeEventListener("me-video-inspector-open",W),e.removeEventListener(zt,l),window.removeEventListener("resize",Lt),re?.remove(),ve?.remove(),b?.remove(),s.remove(),Ht(e)}}}function la(e,t,n){Qt();const o=Wr(n()),a=document.createElement("div");a.className="me-video-text-panel me-video-audio-panel",a.hidden=!0;const s=document.createElement("div");s.className="me-video-text-toolbar";const u=document.createElement("strong");u.textContent=o.title;const f=Yt(o.close);s.append(u,f);const v=document.createElement("div");v.className="me-video-audio-source";const S=document.createElement("div");S.className="me-video-text-grid";function M(_=""){const K=document.createElement("input");return K.type="text",K.readOnly=!0,K.className=["me-video-audio-value",_].filter(Boolean).join(" "),K}function G(_,K,fe){const qe=document.createElement("div");return qe.className="me-video-text-inline",qe.append(K,fe),eo(_,qe)}const T=document.createElement("input");T.type="range",T.min="50",T.max="200",T.step="1",T.disabled=!1,T.value="100",T.title=o.speedHint;const F=M("is-compact is-readonly");F.readOnly=!1,F.classList.remove("is-readonly"),F.inputMode="decimal",F.title=o.speedHint;const j=G(o.speed,T,F),oe=document.createElement("input");oe.type="range",oe.min=String(Wt),oe.max="1",oe.step="0.01",oe.disabled=!1,oe.value="1";const Q=M("is-readonly");Q.readOnly=!1,Q.classList.remove("is-readonly"),Q.inputMode="decimal";const Z=G(o.duration,oe,Q),ie=document.createElement("input");ie.type="range",ie.min="0",ie.max="2",ie.step="0.01";const he=M(),ne=G(o.volume,ie,he),xe=document.createElement("input");xe.type="range",xe.min="0",xe.max="0.1",xe.step="0.05";const te=M(),w=G(o.fadeIn,xe,te),x=document.createElement("input");x.type="range",x.min="0",x.max="0.1",x.step="0.05";const k=M(),N=G(o.fadeOut,x,k);S.append(j,Z,ne,w,N),a.append(s,v,S);let y=null,z=!1,Y=!1;const L="audio",B=typeof requestAnimationFrame=="function"?requestAnimationFrame:_=>setTimeout(_,16);function q(_){const K=Math.max(0,Number(_)||0);return K<=1e-4?"-\u221EdB":`${(20*Math.log10(K)).toFixed(1)}dB`}function V(){const _=e.querySelector(".me-video-trim-panel");if(_ instanceof HTMLElement)for(const K of[..._.children].slice(2))K instanceof HTMLElement&&K.querySelector('input[type="range"]')&&/♪/.test(K.textContent??"")&&(K.style.display="none")}function X(){a.hidden=!z,rn(e,a),Mr(e,a,z),Ht(e)}function re(_){const K=!!_;if(K===z){X();return}z=K,z&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:L}})),X()}function pe(){pn(e,{audio:[]},{audio:null})}function se(_,K,fe,qe){let Oe=ae(Number(K)||0,0,_),Je=ae(Number(fe)||0,0,_);return Oe+Je<=_?{fadeIn:Oe,fadeOut:Je}:(qe==="fadeOut"?Oe=Math.max(0,_-Je):Je=Math.max(0,_-Oe),{fadeIn:Oe,fadeOut:Je})}function A(_){const K=t.getAudioSource?.(_?.srcIdx);return Math.max(Dt(_),Number(K?.duration)||0)}function b(_,K=!1,fe="fadeIn"){const qe=t.getState(),Oe=qe.audioClips??[];if(y==null||!Oe[y])return;const Je=Oe[y],Ge=Dt({...Je,..._}),Ye=se(Ge,_.fadeIn??Je.fadeIn,_.fadeOut??Je.fadeOut,fe),dt=ze=>({...ze,..._,speed:bn(_.speed??ze.speed),volume:ae(Number(_.volume??ze.volume)||0,0,2),fadeIn:Ye.fadeIn,fadeOut:Ye.fadeOut}),rt=typeof t.patchAudio=="function"?t.patchAudio(qe,y,dt).audioClips??Oe:Oe.map((ze,it)=>it===y?dt(ze):ze);if(K){t.patch({audioClips:rt},{transient:!0});return}t.commit({audioClips:rt})}function le(_,K=!1){const qe=t.getState().audioClips??[];if(y==null||!qe[y])return;const Oe=qe[y],Je=A(Oe),Ge=Math.max(0,Number(Oe.in)||0),Ye=Math.max(Wt,Je-Ge),dt=ae(Number(_)||0,Wt,Ye);b({out:Ge+dt},K,"fadeIn")}function Le(){if(V(),!(e.querySelector(".me-video-trim-panel")instanceof HTMLElement)){z&&re(!1),y=null;return}const K=t.getState(),fe=K.audioClips??[],qe=Cn(e,fe),Oe=Bn(e,K.clips??[]),Je=$n(e,K),Ge=qe.length===1&&Oe.length===0&&Je.length===0?qe[0]:null;if(y=Number.isInteger(Ge)&&fe[Ge]?Ge:null,y==null){z&&re(!1);return}const Ye=fe[y],dt=t.getAudioSource?.(Ye.srcIdx),rt=dt?.file?.name||dt?.name||`${o.source} ${y+1}`,ze=Dt(Ye),it=Math.max(ze,Number(dt?.duration)||0),xt=Math.max(ze,Math.max(Wt,it-Math.max(0,Number(Ye.in)||0))),wt=bn(Ye.speed),ke=ae(Number(Ye.fadeIn)||0,0,ze),Pe=ae(Number(Ye.fadeOut)||0,0,Math.max(0,ze-ke));v.textContent=`${o.source}: ${rt}`,T.value=String(Math.round(wt*100)),F.value=Zr(wt),oe.max=String(xt),oe.value=String(ae(ze,Wt,xt)),Q.value=mn(ze),ie.value=String(ae(Number(Ye.volume)||0,0,2)),he.value=q(Ye.volume),xe.max=String(Math.max(.1,ze)),x.max=String(Math.max(.1,ze)),xe.value=String(ke),x.value=String(Pe),te.value=mn(ke),k.value=mn(Pe),xe.disabled=ze<=1e-4,x.disabled=ze<=1e-4,re(!0)}function ve(){Y||(Y=!0,B(()=>{Y=!1,Le()}))}const Re=_=>{if(_?.detail?.id!==L){if(_t(e,"audio").length>0){pe();return}z&&re(!1)}},D=new MutationObserver(()=>{ve()});D.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",Re),e.addEventListener(zt,ve);const ee=t.subscribe(()=>{ve()});return f.addEventListener("click",()=>{pe()}),T.addEventListener("input",()=>{b({speed:bn((Number(T.value)||100)/100)},!0,"fadeIn")}),T.addEventListener("change",()=>{b({speed:bn((Number(T.value)||100)/100)},!1,"fadeIn")}),F.addEventListener("change",()=>{const _=y==null?null:(t.getState().audioClips??[])[y]??null;b({speed:Jr(F.value,_?.speed??1)},!1,"fadeIn")}),F.addEventListener("keydown",_=>{_.key==="Enter"&&(_.preventDefault(),F.blur())}),oe.addEventListener("input",()=>{le(Number(oe.value)||0,!0)}),oe.addEventListener("change",()=>{le(Number(oe.value)||0,!1)}),Q.addEventListener("change",()=>{const _=y==null?null:(t.getState().audioClips??[])[y]??null;le(Qr(Q.value,Dt(_)),!1)}),Q.addEventListener("keydown",_=>{_.key==="Enter"&&(_.preventDefault(),Q.blur())}),ie.addEventListener("input",()=>{b({volume:Number(ie.value)||0},!0,"fadeIn")}),ie.addEventListener("change",()=>{b({volume:Number(ie.value)||0},!1,"fadeIn")}),xe.addEventListener("input",()=>{b({fadeIn:Number(xe.value)||0},!0,"fadeIn")}),xe.addEventListener("change",()=>{b({fadeIn:Number(xe.value)||0},!1,"fadeIn")}),x.addEventListener("input",()=>{b({fadeOut:Number(x.value)||0},!0,"fadeOut")}),x.addEventListener("change",()=>{b({fadeOut:Number(x.value)||0},!1,"fadeOut")}),Le(),{destroy(){D.disconnect(),ee(),e.removeEventListener("me-video-inspector-open",Re),e.removeEventListener(zt,ve),Mr(e,a,!1),a.remove(),Ht(e)}}}function ca(e,t,n=()=>null){Qt();let o=!1,a=null,s=null,u=null,f=null;const v=typeof requestAnimationFrame=="function"?requestAnimationFrame:x=>setTimeout(x,16);function S(){o||(o=!0,v(()=>{o=!1,te()}))}function M(){return Xt(typeof n=="function"?n():null)==="en"?"Cover":"\u5C01\u9762"}function G(x){return[x.textContent,x.title,x.getAttribute("aria-label"),x.getAttribute("data-tool"),x.getAttribute("data-testid")].filter(Boolean).join(" ").replace(/\s+/g," ").trim()}function T(x){if(!(x instanceof HTMLElement)||x===a||x.classList.contains("me-video-cover-set-btn")||x.classList.contains("me-video-cover-upload-btn")||x.closest(".me-video-timeline-area"))return!1;for(let N=x.parentElement,y=0;N&&y<8;y+=1,N=N.parentElement){const z=String(N.textContent||"");if(z.includes("\u9009\u62E9\u5C01\u9762\u5E27")||/select\s+cover\s+frame/i.test(z))return!1}const k=G(x);return k?!!(k.includes("\u5C01\u9762")||/\b(cover|poster|thumbnail)\b/i.test(k)):!1}function F(){const x=e.querySelector(".me-video-toolrail"),N=(x?[...x.querySelectorAll('button,[role="button"]')]:[]).find(T);return N instanceof HTMLElement?N:[...e.querySelectorAll('button,[role="button"]')].find(T)}function j(){const x=e.querySelector(".me-video-timeline-scroll");return x instanceof HTMLElement?x:null}function oe(x){return[...x.children].find(k=>k instanceof HTMLElement&&k!==f&&k.dataset.meTimelineCoverSlot!=="true")}function Q(x){const N=x?.querySelector("[data-clipblock]")?.parentElement;return N instanceof HTMLElement?N:null}function Z(x,k){return f instanceof HTMLElement||(f=document.createElement("div"),f.className="me-video-timeline-cover-slot",f.dataset.meTimelineCoverSlot="true"),x.style.display="flex",x.style.alignItems="flex-start",k instanceof HTMLElement&&(k.style.flex="0 0 auto"),(f.parentElement!==x||x.firstElementChild!==f)&&x.insertBefore(f,k??x.firstChild),f}function ie(){return a instanceof HTMLButtonElement||(a=document.createElement("button"),a.type="button",a.className="me-video-timeline-cover-proxy",a.innerHTML='<img alt="" draggable="false"><svg class="me-video-timeline-cover-proxy-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20h16"/><path d="M6 18l9.5-9.5a2.1 2.1 0 0 1 3 3L9 21H5v-4z"/><path d="M14 6l4 4"/></svg><span class="me-video-timeline-cover-proxy-label"></span>',a.addEventListener("click",x=>{x.preventDefault(),x.stopPropagation(),u?.click()})),a}function he(){typeof t?.commit=="function"&&t.commit({poster:void 0}),S()}function ne(){return s instanceof HTMLButtonElement||(s=document.createElement("button"),s.type="button",s.className="me-video-timeline-cover-clear",s.innerHTML='<svg viewBox="0 0 12 12" aria-hidden="true"><path d="M3 3l6 6M9 3L3 9"/></svg>',s.addEventListener("click",x=>{x.preventDefault(),x.stopPropagation(),he()})),s}function xe(x,k,N){const y=M(),z=ie(),Y=ne(),L=z.querySelector(".me-video-timeline-cover-proxy-label");L&&(L.textContent=y);const B=z.querySelector("img"),q=typeof t?.getState=="function"?t.getState():{},V=q?.poster?.useAsVideoCover&&typeof q.poster.preview=="string"?q.poster.preview:"";B instanceof HTMLImageElement&&(V?B.src=V:B.removeAttribute("src")),z.classList.toggle("has-cover-image",!!V),z.title=x.title||x.getAttribute("aria-label")||y,z.setAttribute("aria-label",z.title),z.classList.toggle("is-active",x.classList.contains("is-active")||x.getAttribute("aria-pressed")==="true"),z.parentElement!==k&&k.insertBefore(z,k.firstChild),Y.hidden=!V,Y.title=Xt(typeof n=="function"?n():null)==="en"?"Remove cover":"\u53D6\u6D88\u5C01\u9762",Y.setAttribute("aria-label",Y.title),Y.parentElement!==k&&k.appendChild(Y),k.style.overflow="visible"}function te(){const x=F(),k=j(),N=k instanceof HTMLElement?oe(k):null,y=N instanceof HTMLElement?Q(N):null;if(!(x instanceof HTMLElement)||!(k instanceof HTMLElement)||!(N instanceof HTMLElement)||!(y instanceof HTMLElement)){u&&(u.removeAttribute("data-me-cover-hidden"),u=null),a?.remove(),s?.remove(),f?.remove(),f=null;return}u&&u!==x&&u.removeAttribute("data-me-cover-hidden"),u=x,u.setAttribute("data-me-cover-hidden","true");const z=Z(k,N);xe(x,z,y)}const w=new MutationObserver(()=>{S()});return w.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","title","aria-label","aria-pressed"]}),S(),{destroy(){w.disconnect(),u?.removeAttribute("data-me-cover-hidden"),a?.remove(),s?.remove(),f?.remove()}}}function da(e,t,n=()=>null){Qt();let o=!1,a=null,s=null,u=null;const f=typeof requestAnimationFrame=="function"?requestAnimationFrame:L=>setTimeout(L,16);function v(){o||(o=!0,f(()=>{o=!1,y()}))}function S(){return Xt(typeof n=="function"?n():null)==="en"}function M(){const B=[...e.querySelectorAll("button")].filter(q=>{const V=String(q.textContent||q.title||"").trim();return V.includes("\u5BFC\u51FA\u5C01\u9762")||/export\s+cover/i.test(V)});for(const q of B){if(!(q instanceof HTMLButtonElement))continue;let V=q.parentElement;for(let X=0;V&&X<8;X+=1,V=V.parentElement){const re=String(V.textContent||"");if(re.includes("\u9009\u62E9\u5C01\u9762\u5E27")||/select\s+cover\s+frame/i.test(re))return{root:V,exportButton:q}}}return null}function G(L){const q=String(L.textContent||"").match(/(\d{1,2}:\d{2}(?:\.\d+)?)\s*\//);if(q){const X=Zn(q[1]);if(Number.isFinite(X))return X}const V=L.querySelector('input[type="range"]');if(V instanceof HTMLInputElement){const X=Number(V.value);if(Number.isFinite(X))return Math.max(0,X)}return 0}function T(L){return new Promise((B,q)=>{const V=new Image;V.onload=()=>B(V),V.onerror=q,V.src=L})}function F(L,B){const q=Math.max(1,Math.round(Number(L)||0)),V=Math.max(1,Math.round(Number(B)||0));if(!q||!V)return null;const re=Math.min(1,1920/Math.max(q,V));return{width:Math.max(1,Math.round(q*re)),height:Math.max(1,Math.round(V*re))}}function j(L,B=null){const q=L instanceof HTMLImageElement?L.naturalWidth:L.videoWidth,V=L instanceof HTMLImageElement?L.naturalHeight:L.videoHeight;if(!q||!V)return"";const X=B?F(B.width,B.height):null,re=X?.width??q,pe=X?.height??V,se=document.createElement("canvas");se.width=re,se.height=pe;const A=se.getContext("2d");if(!A)return"";if(X){const b=Math.max(re/q,pe/V),le=re/b,Le=pe/b,ve=Math.max(0,(q-le)/2),Re=Math.max(0,(V-Le)/2);A.drawImage(L,ve,Re,Math.min(q,le),Math.min(V,Le),0,0,re,pe)}else A.drawImage(L,0,0,q,V);return se.toDataURL("image/png")}async function oe(L){const B=String(L||"").trim();if(!B)return"";if(/^data:image\/(?:png|jpe?g);base64,/i.test(B))return B;try{const V=await(await fetch(B)).blob(),X=URL.createObjectURL(V);try{const re=await T(X);return j(re)}finally{URL.revokeObjectURL(X)}}catch{try{const q=await T(B);return j(q)}catch{return""}}}async function Q(L){const B=L.getBoundingClientRect(),q=B.top+B.height*.68;function V(b){const le=b.getBoundingClientRect();return le.width<80||le.height<120||le.top>q?null:le}const X=[...L.querySelectorAll("*")].map(b=>{if(!(b instanceof HTMLElement))return null;const le=V(b);if(!le)return null;const ve=getComputedStyle(b).backgroundImage.match(/url\(["']?(.+?)["']?\)/);return ve?{node:b,rect:le,src:ve[1]}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0];if(X?.src){const b=await oe(X.src);if(b)return b}const re=[...L.querySelectorAll("canvas")].map(b=>{const le=V(b);return le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(re instanceof HTMLCanvasElement)try{return re.toDataURL("image/png")}catch{return""}const se=[...L.querySelectorAll("video")].map(b=>{const le=V(b);return b instanceof HTMLVideoElement&&le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(se instanceof HTMLVideoElement&&se.videoWidth&&se.videoHeight)try{const b=document.createElement("canvas");b.width=se.videoWidth,b.height=se.videoHeight;const le=b.getContext("2d");return le?(le.drawImage(se,0,0,b.width,b.height),b.toDataURL("image/png")):""}catch{return""}const A=[...L.querySelectorAll("img")].map(b=>{const le=V(b);return b instanceof HTMLImageElement&&b.src&&le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(A instanceof HTMLImageElement){try{const b=j(A);if(b)return b}catch{}return oe(A.src)}return""}function Z(L){const B=L.getBoundingClientRect(),q=B.top+B.height*.68;function V(pe){const se=pe.getBoundingClientRect();return se.width<80||se.height<120||se.top>q?null:se}const X=[];for(const pe of L.querySelectorAll("video,canvas,img")){const se=V(pe);se&&(pe instanceof HTMLVideoElement&&pe.videoWidth&&pe.videoHeight?X.push({width:pe.videoWidth,height:pe.videoHeight,area:se.width*se.height}):pe instanceof HTMLCanvasElement&&pe.width&&pe.height?X.push({width:pe.width,height:pe.height,area:se.width*se.height}):pe instanceof HTMLImageElement&&X.push({width:pe.naturalWidth||se.width,height:pe.naturalHeight||se.height,area:se.width*se.height}))}const re=X.filter(pe=>pe.width>0&&pe.height>0).sort((pe,se)=>se.area-pe.area)[0];return re?F(re.width,re.height):null}function ie(L){return new Promise((B,q)=>{const V=new FileReader;V.onload=()=>B(String(V.result||"")),V.onerror=()=>q(V.error),V.readAsDataURL(L)})}async function he(L,B){const q=String(L?.name||"");if(!(!!L&&(/^image\//.test(L.type||"")||/\.(png|jpe?g|webp|gif|bmp)$/i.test(q))))return"";const X=await ie(L);if(!X)return"";const re=await T(X);return j(re,Z(B))}function ne(L){const B=[...L.querySelectorAll("button")],q=B.find(X=>{if(X===a)return!1;const re=String(X.textContent||X.title||X.getAttribute("aria-label")||"").trim();return re==="\xD7"||re==="\xD7"||re.includes("\u5173\u95ED")||/\b(close|dismiss)\b/i.test(re)});if(q instanceof HTMLButtonElement){q.click();return}const V=B.find(X=>{const re=String(X.textContent||"").trim();return re==="\u53D6\u6D88"||/^cancel$/i.test(re)});if(V instanceof HTMLButtonElement){V.click();return}document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0}))}function xe(L,B){const q=G(L),V={time:q,useAsVideoCover:!0,...B?{preview:B}:{}};typeof t?.commit=="function"?t.commit({poster:V}):typeof t?.setPoster=="function"&&t.setPoster(q),ne(L),v()}async function te(L){const B=await Q(L);xe(L,B)}async function w(L,B){const q=await he(B,L);q&&xe(L,q)}function x(L){a instanceof HTMLButtonElement||(a=document.createElement("button"),a.type="button",a.className="me-video-cover-set-btn",a.addEventListener("click",async V=>{V.preventDefault(),V.stopPropagation();const X=M();if(X?.root){a.disabled=!0;try{await te(X.root)}finally{a.disabled=!1}}}));const q=!!(typeof t?.getState=="function"?t.getState():{})?.poster?.useAsVideoCover;return a.textContent=q?S()?"Cover set":"\u5DF2\u8BBE\u4E3A\u5C01\u9762":S()?"Set as cover":"\u8BBE\u4E3A\u5C01\u9762",a.classList.toggle("is-set",q),a.title=a.textContent,a.setAttribute("aria-label",a.textContent),a}function k(){return u instanceof HTMLInputElement||(u=document.createElement("input"),u.type="file",u.accept="image/png,image/jpeg,image/webp,image/*",u.hidden=!0,u.setAttribute("aria-hidden","true"),u.addEventListener("change",async()=>{const L=u.files?.[0];if(u.value="",!L)return;const B=M();if(B?.root){s instanceof HTMLButtonElement&&(s.disabled=!0);try{await w(B.root,L)}finally{s instanceof HTMLButtonElement&&(s.disabled=!1)}}}),e.appendChild(u)),u}function N(L){return s instanceof HTMLButtonElement||(s=document.createElement("button"),s.type="button",s.className="me-video-cover-upload-btn",s.addEventListener("click",B=>{B.preventDefault(),B.stopPropagation(),k().click()})),s.textContent=S()?"Upload cover":"\u4E0A\u4F20\u5C01\u9762",s.title=s.textContent,s.setAttribute("aria-label",s.textContent),s}function y(){const L=M();if(!L?.root||!L.exportButton){a?.remove(),s?.remove();return}const B=x(L.root),q=N(L.root),V=L.exportButton.parentElement;V instanceof HTMLElement&&((B.parentElement!==L.exportButton.parentElement||B.nextElementSibling!==L.exportButton)&&V.insertBefore(B,L.exportButton),(q.parentElement!==V||q.nextElementSibling!==B)&&V.insertBefore(q,B))}const z=new MutationObserver(v);z.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden","value"]});const Y=typeof t?.subscribe=="function"?t.subscribe(v):null;return v(),{destroy(){z.disconnect(),Y?.(),a?.remove(),s?.remove(),u?.remove()}}}function ua(e,t,n=()=>null){kn();let o=!1;const a=typeof requestAnimationFrame=="function"?requestAnimationFrame:w=>setTimeout(w,16);function s(w){return!!w.closest(["[data-clipblock]","[data-audioclip]",".me-video-text-track-clip",".me-video-text-canvas-hit",".me-video-text-chip",".me-video-trim-action-btn",".me-video-transition-marker",".me-video-text-panel",".me-video-inspector-rail",".me-video-toolrail button",".me-video-timeline-zoom button","input","select","textarea","button","label"].join(","))}function u(w){return!!w.closest(["input","select","textarea",'[contenteditable="true"]','[contenteditable=""]'].join(","))}function f(){o||(o=!0,a(()=>{o=!1,oe()}))}function v(){const w=e.querySelector(".me-video-timeline-scroll");if(!(w instanceof HTMLElement))return;const x=Xt(typeof n=="function"?n():null);w.title=x==="en"?"Hold Ctrl or Shift to select multiple layers.":"\u6309\u4F4F Ctrl \u6216 Shift \u53EF\u591A\u9009\u56FE\u5C42\u3002"}function S(){const w=new Set(_t(e,"video"));for(const x of e.querySelectorAll("[data-clipblock]")){const k=Number(x.getAttribute("data-clipblock"));x.classList.toggle("me-video-multi-selected",Number.isInteger(k)&&w.has(k))}}function M(w=1/0){const x=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!(x instanceof HTMLElement))return[];const k=[];for(const N of x.querySelectorAll("span")){if(!String(N.textContent??"").trim().startsWith("\u266A"))continue;const z=N.parentElement;!(z instanceof HTMLElement)||k.includes(z)||k.push(z)}return Number.isFinite(w)?k.slice(0,Math.max(0,w)):k}function G(){const w=t.getState().audioClips??[],x=new Set(_t(e,"audio")),k=M(),N=k.slice(0,w.length);k.slice(w.length).forEach(y=>{y instanceof HTMLElement&&(y.removeAttribute("data-audioclip"),y.classList.remove("me-video-multi-selected"),y.style.removeProperty("background"),y.style.removeProperty("border"),y.style.removeProperty("box-shadow"),y.style.removeProperty("color"),y.style.removeProperty("transform"),y.style.removeProperty("opacity"))}),N.forEach((y,z)=>{y.dataset.audioclip=String(z);const Y=x.has(z),L=[...y.children].filter(A=>A instanceof HTMLElement),B=L.length>1?1:0,q=L[B]??null,V=L.filter((A,b)=>b!==B),X=[...y.querySelectorAll("span")],re=Y?"linear-gradient(180deg, rgba(34,197,94,0.96) 0%, rgba(21,128,61,0.94) 100%)":"linear-gradient(180deg, rgba(220,252,231,0.98) 0%, rgba(187,247,208,0.94) 100%)",pe=Y?"2px solid rgba(21,128,61,0.96)":"2px solid rgba(34,197,94,0.5)",se="#166534";y.classList.toggle("me-video-multi-selected",Y),y.style.boxShadow=Y?"0 0 0 2px rgba(34,197,94,0.22), 0 8px 18px rgba(22,101,52,0.16)":"0 1px 6px rgba(22,101,52,0.08)",y.style.background=re,y.style.border=pe,y.style.color=se,y.style.transform=Y?"translateY(-1px)":"none",y.style.opacity=Y?"1":"0.98",q instanceof HTMLElement&&(q.style.background=re,q.style.border=pe,q.style.color=se,q.style.boxShadow=Y?"0 0 0 1px rgba(21,128,61,0.14), 0 8px 18px rgba(22,101,52,0.14)":"0 1px 6px rgba(22,101,52,0.08)"),V.forEach(A=>{A.style.background=Y?"rgba(21,128,61,0.92)":"rgba(34,197,94,0.72)",A.style.opacity="1"}),X.forEach((A,b)=>{A.style.color=b===0?se:"rgba(22,101,52,0.9)",A.style.opacity="1"})})}function T(){return[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].map(w=>{if(!(w instanceof HTMLElement)||w.tagName.toLowerCase()!=="button")return w;const x=document.createElement("div");for(const k of[...w.attributes])k.name==="type"||k.name==="disabled"||x.setAttribute(k.name,k.value);return x.innerHTML=w.innerHTML,x.style.cssText=w.style.cssText,x.style.display="flex",x.style.justifyContent="center",x.style.alignItems="center",x.setAttribute("role","button"),x.tabIndex=w.disabled?-1:0,x.setAttribute("aria-disabled",w.disabled?"true":"false"),w.disabled&&(x.dataset.disabled="true"),w.replaceWith(x),x})}function F(w,x,k,N){const y=T();if(y.length<3)return;const z=w.clips??[],Y=w.audioClips??[],L=yn(e),B=x.length>0||k.length>0||N.length>0,q=hi(z,x,L)||bi(Y,k,L)||xi(w.overlays??[],N,L),V=B,X=k.length>0||N.length>0||x.length>0&&x.length<z.length,re=[q,V,X];y.forEach((pe,se)=>{const A=re[se];pe.setAttribute("aria-disabled",A?"false":"true"),pe.tabIndex=A?0:-1,A?delete pe.dataset.disabled:pe.dataset.disabled="true",pe.style.opacity=A?"1":"0.5",se===2?(pe.style.color=A?"#dc2626":"var(--me-fg-muted, #9a9aa3)",pe.style.background="",pe.style.boxShadow=""):(pe.style.color=A?"var(--me-fg, #ededf0)":"var(--me-fg-muted, #9a9aa3)",pe.style.background="",pe.style.boxShadow="")})}function j(w){w===0?yi(e,t):w===1?gi(e,t):w===2&&mr(e,t),f()}function oe(){const w=t.getState();li(e,w),v();const x=Bn(e,w.clips??[]),k=Cn(e,w.audioClips??[]),N=$n(e,w);S(),G(),F(w,x,k,N)}function Q(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-clipblock]");if(!x||!e.contains(x))return;const k=Number(x.getAttribute("data-clipblock"));if(!Number.isInteger(k))return;const N=(t.getState().clips??[]).map((y,z)=>z);if(w.shiftKey||w.ctrlKey||w.metaKey){w.preventDefault(),w.stopPropagation(),Pt(e,"video",k,w,N),f();return}bt(e,"video",[k]),f()}function Z(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-audioclip]");if(!x||!e.contains(x))return;const k=Number(x.getAttribute("data-audioclip"));if(!Number.isInteger(k))return;const N=(t.getState().audioClips??[]).map((y,z)=>z);if(w.shiftKey||w.ctrlKey||w.metaKey){w.preventDefault(),w.stopPropagation(),Pt(e,"audio",k,w,N),f();return}bt(e,"audio",[k]),f()}function ie(w){w.target instanceof Element&&e.contains(w.target)&&(s(w.target)||Eo(e)&&(ko(e),f()))}function he(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-clipblock]");if(x&&e.contains(x)&&(w.shiftKey||w.ctrlKey||w.metaKey)){w.preventDefault(),w.stopPropagation();return}const k=w.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!k||!e.contains(k))return;const y=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(k);y!==-1&&(w.preventDefault(),w.stopPropagation(),k.getAttribute("aria-disabled")!=="true"&&j(y))}function ne(w){if(!(w.target instanceof Element))return;if((w.key==="Delete"||w.key==="Backspace")&&!u(w.target)&&Eo(e)){w.preventDefault(),w.stopPropagation(),mr(e,t),f();return}if(w.key!=="Enter"&&w.key!==" ")return;const x=w.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!x||!e.contains(x))return;const N=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(x);N!==-1&&(w.preventDefault(),w.stopPropagation(),x.getAttribute("aria-disabled")!=="true"&&j(N))}const xe=new MutationObserver(()=>{f()});xe.observe(e,{childList:!0,subtree:!0}),e.addEventListener("pointerdown",Q,!0),e.addEventListener("pointerdown",Z,!0),e.addEventListener("pointerdown",ie,!0),e.addEventListener("click",he,!0),e.addEventListener("keydown",ne,!0),e.addEventListener(zt,f),window.addEventListener("resize",f);const te=t.subscribe(()=>{f()});return oe(),{destroy(){xe.disconnect(),te(),e.removeEventListener("pointerdown",Q,!0),e.removeEventListener("pointerdown",Z,!0),e.removeEventListener("pointerdown",ie,!0),e.removeEventListener("click",he,!0),e.removeEventListener("keydown",ne,!0),e.removeEventListener(zt,f),window.removeEventListener("resize",f)}}}const uo=[{key:"480p",label:"480P",shortEdge:480},{key:"720p",label:"720P",shortEdge:720},{key:"1080p",label:"1080P",shortEdge:1080},{key:"2k",label:"2K",shortEdge:1440},{key:"4k",label:"4K",shortEdge:2160},{key:"8k",label:"8K",shortEdge:4320},{key:"source",label:"\u539F\u59CB"},{key:"custom",label:"\u81EA\u5B9A\u4E49"}],ma=[{key:"mov",label:"MOV",extension:"mov"},{key:"mp4",label:"MP4",extension:"mp4"},{key:"mxf",label:"MXF",extension:"mxf"}],pa=[24,25,30,50,60],fa=[{key:"aac",label:"AAC"},{key:"mp3",label:"MP3"}],va=[96,128,192,256,320],Ar="me-video-export-enhancer-styles";function ha(){if(document.getElementById(Ar))return;const e=document.createElement("style");e.id=Ar,e.textContent=`
|
|
2047
|
+
</svg>`}function En(e,t){const n=xo(t),r=e.transitions.options[n.key]??e.transitions.options.none;return{...n,label:r.label,short:r.short}}function Un(e,t=ho.en.untitledText){return String(e??"").replace(/\s+/g," ").trim()||t}function Da(e){if(!e)return!1;const t=String(e).trim().toLowerCase();return t!==""&&t!=="transparent"}function xo(e){return vo.find(t=>t.key===e)??vo[0]}function mn(e){const t=Number(e)||0;return`${t.toFixed(t>=1?1:2).replace(/0+$/,"").replace(/\.$/,"")}s`}function Dt(e){return Math.max(0,(Number(e?.out)||0)-(Number(e?.in)||0))}function bn(e){return ae(Number(e)||1,.5,2)}function Qr(e){return`${bn(e).toFixed(2)}x`}function ei(e,t=1){const n=String(e??"").trim().replace(/x$/i,""),r=Number(n);return Number.isFinite(r)?bn(r):bn(t)}function ti(e,t=0){const n=String(e??"").trim().replace(/s$/i,""),r=Number(n);return Number.isFinite(r)?Math.max(0,r):Math.max(0,t)}function Gn(e,t=.4,n=.4){const r=xo(e?.type??"none"),a=Math.max(0,Math.min(1.2,t-.05,n-.05));if(r.key==="none"||a<=.05)return{type:"none",duration:0};const s=Number(e?.duration),u=ae(Number.isFinite(s)?s:r.duration,.1,a);return{type:r.key,duration:u}}function bo(e){const t=e?.clips??[],n=Math.max(0,t.length-1),r=Array.isArray(e?.transitions)?e.transitions:[],a=[];for(let s=0;s<n;s++)a.push(Gn(r[s],Dt(t[s]),Dt(t[s+1])));return a}function tr(e,t,n="heading"){const a=e.getState().canvas??{w:1080,h:1920},s=qo[n]??qo.heading,u=Math.min(s.width,Math.max(240,a.w-64)),f=Math.min(s.fontSize,Math.max(32,Math.round(a.w*.11))),v=ae(Math.round(a.h*.18),32,Math.max(32,a.h-180));return{type:"text",x:Math.round((a.w-u)/2),y:v,text:t.textPresets[n]??s.text,color:s.color,fontSize:f,fontFamily:"Arial",fontWeight:s.fontWeight,fontStyle:"normal",textAlign:s.textAlign,width:u,backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,paddingX:s.paddingX??Math.max(14,Math.round(f*.18)),paddingY:s.paddingY??Math.max(10,Math.round(f*.14)),boxShadow:s.boxShadow?{...s.boxShadow}:void 0,lineHeight:1.1,textPreset:n,textDecoration:"",textTransform:void 0,animation:"none",rotation:0}}const qt=3,je=.5,Wt=.1,gn=99,go=36,nr=6;function lt(e,t=0){return Number.isFinite(e?.startAt)?Math.max(0,Number(e.startAt)):Math.max(0,t)}function Bt(e,t=0,n=qt){const r=lt(e,t);return Number.isFinite(e?.endAt)?Math.max(r+je,Number(e.endAt)):r+Math.max(je,n)}function Sn(e,t=qt){return Math.max(je,Bt(e,0,t)-lt(e,0))}function vt(e,t=0){return Number.isFinite(e?.timelineTrack)?ae(Math.round(Number(e.timelineTrack)),0,gn):Math.max(0,t)}function ni(e){return e==="pen"||e==="line"||e==="arrow"||e==="rect"||e==="ellipse"}function nn(e){return ni(e?.type)}function Zt(e){return e?.type==="text"||e?.type==="sticker"||e?.type==="filter"||e?.type==="adjust"||nn(e)}function Ln(e){return e*(go+nr)}function yo(e){const t=Array.isArray(e)?e:e?.overlays;return[...new Set((t??[]).filter(n=>Zt(n)).map(n=>vt(n)))].sort((n,r)=>n-r)}function Rn(e){const t=new Map;return yo(e).forEach((n,r)=>{t.set(n,r)}),t}function oi(e){return yo(e).length}function ri(e){const t=oi(e);return t?Ln(t-1)+go:0}function ii(e){return e instanceof HTMLElement&&(e.dataset.meTimelineCoverSlot==="true"||e.classList.contains("me-video-timeline-cover-slot"))}function ai(e){const t=e.querySelector(".me-video-timeline-scroll");return t instanceof HTMLElement?t:null}function Fn(e){const t=ai(e);return t?[...t.children].find(n=>n instanceof HTMLElement&&!ii(n))??null:null}function or(e){const n=Fn(e)?.firstElementChild;return n instanceof HTMLElement?n:null}function Bn(e,t){const n=Fn(e);if(!n)return{timelineInner:null,timelineHost:null};n.style.position="relative";const r=n.firstElementChild,a=ri(t),s=[];for(const k of n.children)k instanceof HTMLElement&&k.classList.contains("me-video-overlay-track-host")&&s.push(k);const u=[...n.children].find(k=>k!==r&&!(k instanceof HTMLElement&&k.classList.contains("me-video-overlay-track-host")))??null;if(!u)return s.forEach(k=>k.remove()),{timelineInner:n,timelineHost:null};const f=s.shift()??null;if(s.forEach(k=>k.remove()),a<=0)return f?.remove(),{timelineInner:n,timelineHost:null};const v=f??document.createElement("div");return f||(v.className="me-video-overlay-track-host"),v.style.height=`${a}px`,(v.parentElement!==n||v.nextElementSibling!==u)&&n.insertBefore(v,u),{timelineInner:n,timelineHost:v}}function si(e){return((Array.isArray(e)?e:e?.overlays)??[]).reduce((n,r)=>Zt(r)?Math.max(n,Bt(r)):n,0)}function rr(e,t,n,r){return e<r-1e-6&&n<t-1e-6}function _a(e,t,n,r=-1){const a=new Map;(e??[]).forEach((s,u)=>{if(u===r||!Zt(s))return;const f=vt(s);let v=a.get(f);v||(v=[],a.set(f,v)),v.push({startAt:lt(s),endAt:Bt(s)})});for(let s=0;s<=gn;s++)if((a.get(s)??[]).every(f=>!rr(t,n,f.startAt,f.endAt)))return s;return gn}function li(e,t,n,r,a){const s=ae(Math.round(Number(a)||0),0,gn);return(e??[]).every((u,f)=>f===t||!Zt(u)||vt(u)!==s?!0:!rr(n,r,lt(u),Bt(u)))}function pt(e,t,n,r,a,s,u){if(!e)return u;const f=e.getBoundingClientRect(),v=Math.max(0,s-f.top),k=yo(t),H=ae(Math.floor(v/(go+nr)),0,k.length),G=H<k.length?k[H]:ae((k[k.length-1]??-1)+1,0,gn);return li(t,n,r,a,G)?G:u}function Jt(e,t,n={}){const r=lt(e,0),a=Sn(e),s=Number.isFinite(n.startAt)?Number(n.startAt):r,u=Number.isFinite(n.endAt)?Number(n.endAt):s+a,f=Math.max(0,s),v=Math.max(f+je,u),k=Math.max(je,Number(t)||qt,v),H=ae(f,0,Math.max(0,k-je)),G=ae(v,H+je,Math.max(H+je,k));return{startAt:H,endAt:G,timelineTrack:vt({timelineTrack:n.timelineTrack??e?.timelineTrack})}}function ir(e,t=1){const n=Math.max(0,Math.round(Number(t)||0));return n?(e??[]).map(r=>Zt(r)?{...r,timelineTrack:ae(vt(r)+n,0,gn)}:r):[...e??[]]}function on(e){return ir(e,1)}function ar(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="text").sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function sr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="sticker").sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function lr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="filter").sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function cr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="adjust").sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function wo(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>nn(t.overlay)).sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function ci(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Zt(t.overlay)).sort((t,n)=>{const r=vt(t.overlay)-vt(n.overlay);if(r!==0)return r;const a=lt(t.overlay)-lt(n.overlay);return Math.abs(a)>1e-6?a:t.index-n.index})}function yt(e){return[...new Set((e??[]).map(t=>Number(t)).filter(t=>Number.isInteger(t)&&t>=0))].sort((t,n)=>t-n)}function Zn(e){if(e.__meVideoTimelineSelectionStore)return e.__meVideoTimelineSelectionStore;const t={video:new Set,text:new Set,audio:new Set,anchors:{video:null,text:null,audio:null},initialized:!1};return e.__meVideoTimelineSelectionStore=t,t}function di(e,t){return t==="text"?e.text:t==="audio"?e.audio:e.video}function dr(){return["video","text","audio"]}function _t(e,t){return yt([...di(Zn(e),t)])}function ko(e,t){const n=yt(t),r=yt([...e]);return r.length===n.length&&r.every((a,s)=>a===n[s])?!1:(e.clear(),n.forEach(a=>e.add(a)),!0)}function ui(e){e.dispatchEvent(new CustomEvent(zt))}function pn(e,t={},n={}){const r=Zn(e);let a=!1;if(Object.prototype.hasOwnProperty.call(t,"video")&&(a=ko(r.video,t.video)||a),Object.prototype.hasOwnProperty.call(t,"text")&&(a=ko(r.text,t.text)||a),Object.prototype.hasOwnProperty.call(t,"audio")&&(a=ko(r.audio,t.audio)||a),Object.prototype.hasOwnProperty.call(n,"video")){const s=Number.isInteger(n.video)&&n.video>=0?n.video:null;r.anchors.video!==s&&(r.anchors.video=s,a=!0)}if(Object.prototype.hasOwnProperty.call(n,"text")){const s=Number.isInteger(n.text)&&n.text>=0?n.text:null;r.anchors.text!==s&&(r.anchors.text=s,a=!0)}if(Object.prototype.hasOwnProperty.call(n,"audio")){const s=Number.isInteger(n.audio)&&n.audio>=0?n.audio:null;r.anchors.audio!==s&&(r.anchors.audio=s,a=!0)}return a&&ui(e),r}function bt(e,t,n,r={}){const a=yt(n),s={[t]:a},u={[t]:a.length?r.anchor??a[a.length-1]:null};if(!r.preserveOther)for(const f of dr())f!==t&&(s[f]=[],u[f]=null);return pn(e,s,u),a}function Eo(e){pn(e,{video:[],text:[],audio:[]},{video:null,text:null,audio:null})}function So(e){return _t(e,"video").length>0||_t(e,"text").length>0||_t(e,"audio").length>0}function Lo(e,t,n){const r=new Set(yt(n)),a=_t(e,t),s=a.filter(u=>r.has(u));return a.length!==s.length&&pn(e,{[t]:s},{[t]:s.length?s[s.length-1]:null}),s}function Pt(e,t,n,r,a=[]){const s=yt(a),u=!!(r?.ctrlKey||r?.metaKey),f=!!r?.shiftKey,v=Zn(e),k=_t(e,t);let H=k,G=n;if(f){const j=v.anchors[t],oe=s.indexOf(j),Q=s.indexOf(n);if(oe!==-1&&Q!==-1){const Z=Math.min(oe,Q),ie=Math.max(oe,Q),he=s.slice(Z,ie+1);H=u?yt([...k,...he]):he,G=j}else u?H=k.includes(n)?k.filter(Z=>Z!==n):[...k,n]:H=[n]}else u?H=k.includes(n)?k.filter(j=>j!==n):[...k,n]:H=[n];H=yt(H);const T={[t]:H},F={[t]:H.length?G:null};if(!u)for(const j of dr())j!==t&&(T[j]=[],F[j]=null);return pn(e,T,F),H}function mi(e,t){const n=Zn(e);n.initialized||(n.initialized=!0)}function Tn(e){const t=typeof e.getState=="function"?e.getState():null;return Math.max(typeof e.contentDuration=="function"?e.contentDuration():0,si(t),je)}function Jn(e){const t=String(e??"").trim();if(!t)return NaN;const n=t.split(":").map(a=>a.trim()).filter(Boolean);if(!n.length)return NaN;let r=0;for(const a of n){const s=Number(a);if(!Number.isFinite(s))return NaN;r=r*60+s}return r}function Qn(e){return e instanceof HTMLElement?String(e.dataset.meRawTimeText||e.textContent||"").trim():""}function yn(e){const t=or(e);if(t){const a=[...t.children].find(u=>u instanceof HTMLElement&&String(u.style.transform||"").includes("translateX(-50%)")),s=Jn(Qn(a));if(Number.isFinite(s))return s}const n=[...e.querySelectorAll(".me-video-trim-actions span")].find(a=>Qn(a).includes("/")),r=Qn(n);if(r){const a=Jn(r.split("/")[0]);if(Number.isFinite(a))return a}return 0}function $n(e,t){return Lo(e,"video",(t??[]).map((n,r)=>r)).filter(n=>!!t[n])}function To(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="text")}function ur(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="sticker")}function mr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="filter")}function eo(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="adjust")}function pr(e,t){return _t(e,"text").filter(n=>nn(t.overlays?.[n]))}function Dn(e,t){const n=ci(t).map(r=>r.index);return Lo(e,"text",n).filter(r=>Zt(t.overlays?.[r]))}function Mn(e,t){return Lo(e,"audio",(t??[]).map((n,r)=>r)).filter(n=>!!t[n])}function pi(e,t){const n=yt(t).filter(s=>!!e[s]);if(!n.length)return{clips:e,selection:[],changed:!1};const r=n[n.length-1]+1,a=n.map(s=>({...e[s]}));return{clips:[...e.slice(0,r),...a,...e.slice(r)],selection:a.map((s,u)=>r+u),changed:!0}}function Mo(e,t){const n=yt(t).filter(f=>Zt(e[f]));if(!n.length)return{overlays:e,selection:[],changed:!1};const r=n.map(f=>{const v=e[f];return v?.type==="pen"?{...v,points:(v.points??[]).map((k,H)=>(H%2===0,(Number(k)||0)+24))}:v?.type==="line"||v?.type==="arrow"?{...v,x1:(Number(v.x1)||0)+24,y1:(Number(v.y1)||0)+24,x2:(Number(v.x2)||0)+24,y2:(Number(v.y2)||0)+24}:{...v,x:(Number(v.x)||0)+24,y:(Number(v.y)||0)+24}}),s=[...ir(e,r.length),...r.map((f,v)=>({...f,timelineTrack:ae(v,0,gn)}))],u=s.length-r.length;return{overlays:s,selection:r.map((f,v)=>u+v),changed:!0}}function fi(e,t){const n=yt(t).filter(s=>!!e[s]);if(!n.length)return{audioClips:e,selection:[],changed:!1};const r=n[n.length-1]+1,a=n.map(s=>{const u=e[s];return{...u,track:Number.isInteger(u?.track)&&u.track>=0?u.track:s,startAt:Math.max(0,(Number(u.startAt)||0)+.2)}});return{audioClips:[...e.slice(0,r),...a,...e.slice(r)],selection:a.map((s,u)=>r+u),changed:!0}}function vi(e,t){const n=yt(t).filter(a=>!!e[a]);if(!n.length||n.length>=e.length)return{clips:e,selection:n,changed:!1};const r=new Set(n);return{clips:e.filter((a,s)=>!r.has(s)),selection:[],changed:!0}}function Co(e,t){const n=new Set(yt(t).filter(r=>Zt(e[r])));return n.size?{overlays:e.filter((r,a)=>!n.has(a)),selection:[],changed:!0}:{overlays:e,selection:[],changed:!1}}function hi(e,t){const n=new Set(yt(t).filter(r=>!!e[r]));return n.size?{audioClips:e.filter((r,a)=>!n.has(a)),selection:[],changed:!0}:{audioClips:e,selection:[],changed:!1}}function xi(e,t,n){const r=new Set(yt(t).filter(v=>!!e[v]));if(!r.size)return{clips:e,selection:[],changed:!1};let a=0,s=!1;const u=[],f=[];for(let v=0;v<e.length;v++){const k=e[v],H=Math.max(0,(Number(k?.out)||0)-(Number(k?.in)||0)),G=a+H;if(r.has(v)&&n>a+Wt&&n<G-Wt){const T=(Number(k.in)||0)+(n-a);f.push(u.length),u.push({...k,out:T}),f.push(u.length),u.push({...k,in:T}),s=!0}else r.has(v)&&f.push(u.length),u.push(k);a=G}return{clips:s?u:e,selection:s?f:yt(t),changed:s}}function bi(e,t,n,r){const a=new Set(yt(t).filter(v=>Zt(e[v])));if(!a.size)return{overlays:e,selection:[],changed:!1};let s=!1;const u=[],f=[];for(let v=0;v<e.length;v++){const k=e[v];if(Zt(k)&&a.has(v)){const H=lt(k),G=Bt(k,H),T=ae(r,H+je,G-je);if(T>H+1e-6&&T<G-1e-6){f.push(u.length),u.push({...k,...Jt(k,n,{startAt:H,endAt:T,timelineTrack:vt(k)})}),f.push(u.length),u.push({...k,...Jt(k,n,{startAt:T,endAt:G,timelineTrack:vt(k)})}),s=!0;continue}f.push(u.length)}u.push(k)}return{overlays:s?u:e,selection:s?f:yt(t),changed:s}}function gi(e,t,n){const r=new Set(yt(t).filter(f=>!!e[f]));if(!r.size)return{audioClips:e,selection:[],changed:!1};let a=!1;const s=[],u=[];for(let f=0;f<e.length;f++){const v=e[f],k=Math.max(0,Number(v?.startAt)||0),H=Dt(v),G=k+H;if(r.has(f)&&n>k+Wt&&n<G-Wt){const T=(Number(v.in)||0)+(n-k),F=Math.max(0,T-(Number(v.in)||0)),j=Math.max(0,(Number(v.out)||0)-T);u.push(s.length),s.push({...v,track:Number.isInteger(v?.track)&&v.track>=0?v.track:f,out:T,fadeIn:Math.min(Number(v.fadeIn)||0,F),fadeOut:0}),u.push(s.length),s.push({...v,track:Number.isInteger(v?.track)&&v.track>=0?v.track:f,in:T,startAt:n,fadeIn:0,fadeOut:Math.min(Number(v.fadeOut)||0,j)}),a=!0;continue}r.has(f)&&u.push(s.length),s.push(v)}return{audioClips:a?s:e,selection:a?u:yt(t),changed:a}}function yi(e,t,n){const r=new Set(yt(t));let a=0;for(let s=0;s<e.length;s++){const u=e[s],f=Math.max(0,(Number(u?.out)||0)-(Number(u?.in)||0)),v=a+f;if(r.has(s)&&n>a+Wt&&n<v-Wt)return!0;a=v}return!1}function wi(e,t,n){return yt(t).some(r=>{const a=e[r];if(!Zt(a))return!1;const s=lt(a),u=Bt(a,s);return n>s+je&&n<u-je})}function ki(e,t,n){return yt(t).some(r=>{const a=e[r];if(!a)return!1;const s=Math.max(0,Number(a.startAt)||0),u=s+Dt(a);return n>s+Wt&&n<u-Wt})}function Ei(e,t){const n=t.getState(),r=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=$n(e,r),f=Mn(e,a),v=Dn(e,n);if(!u.length&&!f.length&&!v.length)return!1;let k=r,H=a,G=s,T=u,F=f,j=v,oe=!1;if(u.length){const Q=pi(k,u);k=Q.clips,T=Q.selection,oe=Q.changed||oe}if(f.length){const Q=fi(H,f);H=Q.audioClips,F=Q.selection,oe=Q.changed||oe}if(v.length){const Q=Mo(G,v);G=Q.overlays,j=Q.selection,oe=Q.changed||oe}return oe?(t.commit({clips:k,audioClips:H,overlays:G}),pn(e,{video:T,audio:F,text:j},{video:T.length?T[T.length-1]:null,audio:F.length?F[F.length-1]:null,text:j.length?j[j.length-1]:null}),!0):!1}function fr(e,t){const n=t.getState(),r=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=$n(e,r),f=Mn(e,a),v=Dn(e,n);let k=r,H=a,G=s,T=u,F=f,j=v,oe=!1;const Q=vi(k,u);Q.changed&&(k=Q.clips,T=Q.selection,oe=!0);const Z=Co(G,v);Z.changed&&(G=Z.overlays,j=Z.selection,oe=!0);const ie=hi(H,f);return ie.changed&&(H=ie.audioClips,F=ie.selection,oe=!0),oe?(t.commit({clips:k,audioClips:H,overlays:G}),pn(e,{video:T,audio:F,text:j},{video:T.length?T[T.length-1]:null,audio:F.length?F[F.length-1]:null,text:j.length?j[j.length-1]:null}),!0):!1}function Si(e,t){const n=t.getState(),r=n.clips??[],a=n.audioClips??[],s=n.overlays??[],u=yn(e),f=$n(e,r),v=Mn(e,a),k=Dn(e,n);let H=r,G=a,T=s,F=f,j=v,oe=k,Q=!1;if(f.length){const Z=xi(H,f,u);H=Z.clips,F=Z.selection,Q=Z.changed||Q}if(v.length){const Z=gi(G,v,u);G=Z.audioClips,j=Z.selection,Q=Z.changed||Q}if(k.length){const Z=bi(T,k,Math.max(Tn(t),u+je),u);T=Z.overlays,oe=Z.selection,Q=Z.changed||Q}return Q?(t.commit({clips:H,audioClips:G,overlays:T}),pn(e,{video:F,audio:j,text:oe},{video:F.length?F[F.length-1]:null,audio:j.length?j[j.length-1]:null,text:oe.length?oe[oe.length-1]:null}),!0):!1}function to(e,t){const n=document.createElement("div");n.className="me-video-text-field";const r=document.createElement("label");return r.textContent=e,n.append(r,t),n}function Yt(e){const t=document.createElement("button");return t.type="button",t.className="me-video-text-mini",t.textContent=e,t}function Li(e,t){const n=document.createElement("button");return n.type="button",n.className="me-video-text-preset",n.dataset.preset=t,n.textContent=e,n}const Ti=[{value:"300",label:"Light"},{value:"400",label:"Regular"},{value:"500",label:"Medium"},{value:"600",label:"Semibold"},{value:"700",label:"Bold"},{value:"800",label:"Extra Bold"}],vr={en:{content:"Content",preset:"Preset",styles:"Styles",size:"Size",fill:"Fill",decoration:"Decoration",italic:"Italic",underline:"Underline",strike:"Strike",case:"Case",caseNone:"None",uppercase:"Uppercase",lowercase:"Lowercase",capitalize:"Capitalize",alignLeft:"Left",alignCenter:"Center",alignRight:"Right",animations:"Animations",animation:"Animation",fontStroke:"Font stroke",fontShadow:"Font shadow",x:"X",y:"Y",blur:"Blur",transparent:"Transparent",none:"None"},zh:{content:"\u5185\u5BB9",preset:"\u9884\u8BBE",styles:"\u6837\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u9970",italic:"\u659C\u4F53",underline:"\u4E0B\u5212\u7EBF",strike:"\u5220\u9664\u7EBF",case:"\u5927\u5C0F\u5199",caseNone:"\u65E0",uppercase:"\u5168\u90E8\u5927\u5199",lowercase:"\u5168\u90E8\u5C0F\u5199",capitalize:"\u9996\u5B57\u6BCD\u5927\u5199",alignLeft:"\u5DE6\u5BF9\u9F50",alignCenter:"\u5C45\u4E2D",alignRight:"\u53F3\u5BF9\u9F50",animations:"\u52A8\u753B",animation:"\u52A8\u753B",fontStroke:"\u6587\u5B57\u63CF\u8FB9",fontShadow:"\u6587\u5B57\u9634\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u65E0"},"zh-Hant":{content:"\u5167\u5BB9",preset:"\u9810\u8A2D",styles:"\u6A23\u5F0F",size:"\u5927\u5C0F",fill:"\u586B\u5145",decoration:"\u4FEE\u98FE",italic:"\u659C\u9AD4",underline:"\u5E95\u7DDA",strike:"\u522A\u9664\u7DDA",case:"\u5927\u5C0F\u5BEB",caseNone:"\u7121",uppercase:"\u5168\u90E8\u5927\u5BEB",lowercase:"\u5168\u90E8\u5C0F\u5BEB",capitalize:"\u9996\u5B57\u6BCD\u5927\u5BEB",alignLeft:"\u9760\u5DE6",alignCenter:"\u7F6E\u4E2D",alignRight:"\u9760\u53F3",animations:"\u52D5\u756B",animation:"\u52D5\u756B",fontStroke:"\u6587\u5B57\u63CF\u908A",fontShadow:"\u6587\u5B57\u9670\u5F71",x:"X",y:"Y",blur:"\u6A21\u7CCA",transparent:"\u900F\u660E",none:"\u7121"}},hr={en:{tool:"Ratio",title:"Ratio & canvas size",restore:"Restore",close:"Close",commonPresets:"Platform ratio presets",customSize:"Custom resolution",fitMode:"Canvas fill mode",width:"Width (px)",height:"Height (px)",lockRatio:"Lock ratio",unlockRatio:"Unlock ratio",quickPortrait:"1080p Portrait",quickLandscape:"1080p Landscape",summary:"Current output",baseOutput:"Base output",cover:"Crop to fill",contain:"Fit inside",force:"Stretch to fill",coverHint:"Fills the canvas and crops any overflow.",containHint:"Keeps the full frame and may add letterboxing.",forceHint:"Stretches the frame to the target size without cropping.",cinematic:"Cinematic",tablet:"Tablet"},zh:{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u4E0E\u753B\u5E03\u5C3A\u5BF8",restore:"\u6062\u590D",close:"\u5173\u95ED",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9884\u8BBE",customSize:"\u81EA\u5B9A\u4E49\u5206\u8FA8\u7387",fitMode:"\u753B\u9762\u586B\u5145\u9009\u9879",width:"\u5BBD\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9501\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9501\u6BD4\u4F8B",quickPortrait:"1080p \u7AD6\u5C4F",quickLandscape:"1080p \u6A2A\u5C4F",summary:"\u5F53\u524D\u8F93\u51FA",baseOutput:"\u539F\u59CB\u8F93\u51FA",cover:"\u88C1\u526A\u94FA\u6EE1",contain:"\u5B8C\u6574\u663E\u793A",force:"\u62C9\u4F38\u94FA\u6EE1",coverHint:"\u94FA\u6EE1\u753B\u5E03\uFF0C\u591A\u4F59\u533A\u57DF\u4F1A\u88AB\u88C1\u526A\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u753B\u9762\uFF0C\u53EF\u80FD\u51FA\u73B0\u7559\u767D\u3002",forceHint:"\u5F3A\u5236\u62C9\u4F38\u5230\u76EE\u6807\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u526A\u3002",cinematic:"\u7535\u5F71\u5BBD\u5C4F",tablet:"\u5E73\u677F"},"zh-Hant":{tool:"\u6BD4\u4F8B",title:"\u6BD4\u4F8B\u8207\u756B\u5E03\u5C3A\u5BF8",restore:"\u9084\u539F",close:"\u95DC\u9589",commonPresets:"\u5E73\u53F0\u6BD4\u4F8B\u9810\u8A2D",customSize:"\u81EA\u8A02\u89E3\u6790\u5EA6",fitMode:"\u756B\u9762\u586B\u5145\u9078\u9805",width:"\u5BEC\u5EA6 (px)",height:"\u9AD8\u5EA6 (px)",lockRatio:"\u9396\u5B9A\u6BD4\u4F8B",unlockRatio:"\u89E3\u9396\u6BD4\u4F8B",quickPortrait:"1080p \u76F4\u5F0F",quickLandscape:"1080p \u6A6B\u5F0F",summary:"\u76EE\u524D\u8F38\u51FA",baseOutput:"\u539F\u59CB\u8F38\u51FA",cover:"\u88C1\u5207\u92EA\u6EFF",contain:"\u5B8C\u6574\u986F\u793A",force:"\u62C9\u4F38\u92EA\u6EFF",coverHint:"\u92EA\u6EFF\u756B\u5E03\uFF0C\u591A\u9918\u5340\u57DF\u6703\u88AB\u88C1\u5207\u3002",containHint:"\u5B8C\u6574\u4FDD\u7559\u756B\u9762\uFF0C\u53EF\u80FD\u51FA\u73FE\u7559\u767D\u3002",forceHint:"\u5F37\u5236\u62C9\u4F38\u81F3\u76EE\u6A19\u5C3A\u5BF8\uFF0C\u4E0D\u88C1\u5207\u3002",cinematic:"\u96FB\u5F71\u5BEC\u87A2\u5E55",tablet:"\u5E73\u677F"}},Mi=[{id:"facebook-post",platform:"Facebook",type:"Post",iconText:"f",iconTheme:"facebook",ratios:["1:1","4:5","16:9"]},{id:"facebook-story",platform:"Facebook",type:"Story",iconText:"f",iconTheme:"facebook",ratios:["9:16"]},{id:"instagram-post",platform:"Instagram",type:"Post",iconText:"IG",iconTheme:"instagram",ratios:["1:1","4:5","16:9"]},{id:"instagram-story",platform:"Instagram",type:"Story",iconText:"IG",iconTheme:"instagram",ratios:["9:16"]},{id:"tiktok-photo",platform:"TikTok",type:"Photo",iconText:"T",iconTheme:"tiktok",ratios:["1:1","4:5","9:16"]},{id:"x-post",platform:"X",type:"Post",iconText:"X",iconTheme:"x",ratios:["1:1","16:9"]},{id:"linkedin-post",platform:"LinkedIn",type:"Post",iconText:"in",iconTheme:"linkedin",ratios:["1:1","16:9"]},{id:"pinterest-post",platform:"Pinterest",type:"Post",iconText:"P",iconTheme:"pinterest",ratios:["2:3","1:1"]},{id:"reddit-media",platform:"Reddit",type:"Media",iconText:"R",iconTheme:"reddit",ratios:["1:1","16:9"]},{id:"threads-post",platform:"Threads",type:"Post",iconText:"@",iconTheme:"threads",ratios:["1:1","4:5","16:9"]},{id:"telegram-post",platform:"Telegram",type:"Post",iconText:"TG",iconTheme:"telegram",ratios:["1:1","16:9"]}],Ci=["9:16","16:9","1:1","4:5","2:3","3:2"],xr={en:{tool:"Sticker",title:"Stickers",uploadTitle:"Upload sticker",uploadHint:"Click or drop an image here",uploadFormats:"Supports PNG, JPG, WEBP, SVG",libraryTitle:"Built-in sticker library",classicTitle:"Classic stickers",vibeTitle:"Vibe stickers",shapeTitle:"Shape stickers",defaultLabel:"Sticker",uploadedLabel:"Image sticker",emojiLabel:"Emoji sticker"},zh:{tool:"\u8D34\u7EB8",title:"\u8D34\u7EB8",uploadTitle:"\u81EA\u5B9A\u4E49\u672C\u5730\u56FE\u7247\u8D34\u7EB8",uploadHint:"\u70B9\u51FB\u6216\u62D6\u62FD\u56FE\u7247\u5230\u8FD9\u91CC",uploadFormats:"\u652F\u6301 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5185\u7F6E\u7ECF\u5178\u8D34\u7EB8\u5E93",classicTitle:"\u7ECF\u5178\u8D34\u7EB8",vibeTitle:"\u6C1B\u56F4\u8D34\u7EB8",shapeTitle:"\u5F62\u72B6\u8D34\u7EB8",defaultLabel:"\u8D34\u7EB8",uploadedLabel:"\u56FE\u7247\u8D34\u7EB8",emojiLabel:"\u8868\u60C5\u8D34\u7EB8"},"zh-Hant":{tool:"\u8CBC\u7D19",title:"\u8CBC\u7D19",uploadTitle:"\u81EA\u8A02\u672C\u6A5F\u5716\u7247\u8CBC\u7D19",uploadHint:"\u9EDE\u64CA\u6216\u62D6\u62FD\u5716\u7247\u5230\u9019\u88E1",uploadFormats:"\u652F\u63F4 PNG\u3001JPG\u3001WEBP\u3001SVG",libraryTitle:"\u5167\u5EFA\u7D93\u5178\u8CBC\u7D19\u5EAB",classicTitle:"\u7D93\u5178\u8CBC\u7D19",vibeTitle:"\u6C1B\u570D\u8CBC\u7D19",shapeTitle:"\u5F62\u72C0\u8CBC\u7D19",defaultLabel:"\u8CBC\u7D19",uploadedLabel:"\u5716\u7247\u8CBC\u7D19",emojiLabel:"\u8868\u60C5\u8CBC\u7D19"}},No={en:{tool:"Color",title:"Color",filterTool:"Filter",filterTitle:"Filter",presets:"Filter presets",adjustments:"Adjustments",reset:"Reset",brightness:"Brightness",contrast:"Contrast",saturation:"Saturation",temperature:"Temperature",tint:"Tint",vibrance:"Vibrance",gamma:"Gamma",colorSection:"Color",toneSection:"Brightness",effectsSection:"Effects",highlights:"Highlights",shadows:"Shadows",whites:"Whites",blacks:"Blacks",lightSense:"Light Sense",sharpen:"Sharpen",clarity:"Clarity",grain:"Grain",fade:"Fade",vignette:"Vignette",presetNames:{none:"Normal",sepia:"Retro",cool:"Cold",warm:"Warm",vivid:"Cyber",bw:"B&W"}},zh:{tool:"\u8C03\u8272",title:"\u8C03\u8272",filterTool:"\u6EE4\u955C",filterTitle:"\u6EE4\u955C",presets:"\u6EE4\u955C\u9884\u8BBE",adjustments:"\u753B\u9762\u5FAE\u8C03",reset:"\u91CD\u7F6E",brightness:"\u4EAE\u5EA6",contrast:"\u5BF9\u6BD4\u5EA6",saturation:"\u9971\u548C\u5EA6",temperature:"\u8272\u6E29",tint:"\u8272\u8C03",vibrance:"\u81EA\u7136\u9971\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9634\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u9510\u5316",clarity:"\u6E05\u6670",grain:"\u9897\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u753B (Normal)",sepia:"\u590D\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u9633 (Warm)",vivid:"\u8D5B\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}},"zh-Hant":{tool:"\u8ABF\u8272",title:"\u8ABF\u8272",filterTool:"\u6FFE\u93E1",filterTitle:"\u6FFE\u93E1",presets:"\u6FFE\u93E1\u9810\u8A2D",adjustments:"\u756B\u9762\u5FAE\u8ABF",reset:"\u91CD\u8A2D",brightness:"\u4EAE\u5EA6",contrast:"\u5C0D\u6BD4\u5EA6",saturation:"\u98FD\u548C\u5EA6",temperature:"\u8272\u6EAB",tint:"\u8272\u8ABF",vibrance:"\u81EA\u7136\u98FD\u548C\u5EA6",gamma:"Gamma",colorSection:"\u8272\u5F69",toneSection:"\u660E\u5EA6",effectsSection:"\u6548\u679C",highlights:"\u9AD8\u5149",shadows:"\u9670\u5F71",whites:"\u767D\u8272",blacks:"\u9ED1\u8272",lightSense:"\u5149\u611F",sharpen:"\u92B3\u5316",clarity:"\u6E05\u6670",grain:"\u9846\u7C92",fade:"\u892A\u8272",vignette:"\u6697\u89D2",presetNames:{none:"\u539F\u756B (Normal)",sepia:"\u5FA9\u53E4 (Retro)",cool:"\u51B7\u8272 (Cold)",warm:"\u6696\u967D (Warm)",vivid:"\u8CFD\u535A (Cyber)",bw:"\u9ED1\u767D (B&W)"}}};function Ni(e){const t=Xt(e);return{...xr.en,...xr[t]??{}}}function Ao(e){const t=Xt(e),n=No[t]??{};return{...No.en,...n,presetNames:{...No.en.presetNames,...n.presetNames??{}}}}function Cn(e,t,n="rgba(255,255,255,0.16)"){let r="";return e==="triangle"?r=`<polygon points="128,28 224,220 32,220" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="circle"?r=`<circle cx="128" cy="128" r="94" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="square"?r=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`:e==="diamond"?r=`<polygon points="128,24 224,128 128,232 32,128" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="star"?r=`<polygon points="128,24 154,92 228,96 170,142 188,220 128,176 68,220 86,142 28,96 102,92" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:e==="heart"?r=`<path d="M128 220c-7-7-18-16-30-27C64 165 38 141 38 102c0-28 20-50 48-50 18 0 33 10 42 24 9-14 24-24 42-24 28 0 48 22 48 50 0 39-26 63-60 91-12 11-23 20-30 27Z" fill="${t}" stroke="${n}" stroke-width="8" stroke-linejoin="round"/>`:r=`<rect x="40" y="40" width="176" height="176" rx="40" fill="${t}" stroke="${n}" stroke-width="8"/>`,`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">${r}</svg>`)}`}function Ai(e){return[{id:"classic",title:e.classicTitle,items:[{id:"heart-eyes",emoji:"\u{1F60D}",label:`${e.emojiLabel} 1`},{id:"joy",emoji:"\u{1F602}",label:`${e.emojiLabel} 2`},{id:"grin",emoji:"\u{1F603}",label:`${e.emojiLabel} 3`},{id:"pray",emoji:"\u{1F64F}",label:`${e.emojiLabel} 4`},{id:"thumbs-up",emoji:"\u{1F44D}",label:`${e.emojiLabel} 5`},{id:"hundred",emoji:"\u{1F4AF}",label:`${e.emojiLabel} 6`},{id:"cat-smile",emoji:"\u{1F63A}",label:`${e.emojiLabel} 7`},{id:"cat-happy",emoji:"\u{1F638}",label:`${e.emojiLabel} 8`},{id:"paw",emoji:"\u{1F43E}",label:`${e.emojiLabel} 9`},{id:"fish",emoji:"\u{1F41F}",label:`${e.emojiLabel} 10`}]},{id:"vibe",title:e.vibeTitle,items:[{id:"sparkles",emoji:"\u2728",label:`${e.emojiLabel} 5`},{id:"heart",emoji:"\u{1F497}",label:`${e.emojiLabel} 6`},{id:"fire",emoji:"\u{1F525}",label:`${e.emojiLabel} 7`},{id:"party",emoji:"\u{1F389}",label:`${e.emojiLabel} 8`}]},{id:"shape",title:e.shapeTitle,items:[{id:"triangle",src:Cn("triangle","#f97316"),label:"Triangle"},{id:"circle",src:Cn("circle","#22c55e"),label:"Circle"},{id:"square",src:Cn("square","#3b82f6"),label:"Square"},{id:"diamond",src:Cn("diamond","#8b5cf6"),label:"Diamond"},{id:"star",src:Cn("star","#facc15"),label:"Star"},{id:"heart-shape",src:Cn("heart","#fb7185"),label:"Heart"}]}]}function Oi(e){const t=Xt(e),n={...vr.en,...vr[t]??{}};return n.searchFont||(n.searchFont=t==="zh-Hant"?"\u641C\u5C0B\u5B57\u9AD4...":t==="zh"?"\u641C\u7D22\u5B57\u4F53...":"Search font..."),n.loadingFonts||(n.loadingFonts=t==="zh-Hant"?"\u6B63\u5728\u8B80\u53D6\u5B57\u9AD4...":t==="zh"?"\u6B63\u5728\u8BFB\u53D6\u5B57\u4F53...":"Loading fonts..."),n.noFonts||(n.noFonts=t==="zh-Hant"?"\u627E\u4E0D\u5230\u5B57\u9AD4":t==="zh"?"\u6CA1\u6709\u627E\u5230\u5B57\u4F53":"No fonts found"),n.sampleText||(n.sampleText=Uo),n}function zi(e){const t=Xt(e);return{...hr.en,...hr[t]??{}}}const br={en:{tool:"Annotate",title:"Annotate",hint:"Configure the annotation tools here.",tools:"Tools",color:"Color",custom:"Custom",width:"Line width",reset:"Reset",brush:"Brush",eraser:"Eraser",line:"Line",arrow:"Arrow",rectangle:"Rectangle",ellipse:"Ellipse"},zh:{tool:"\u6807\u6CE8",title:"\u6807\u6CE8",hint:"\u5728\u8FD9\u91CC\u914D\u7F6E\u6807\u6CE8\u5DE5\u5177\u7684\u6837\u5F0F\u53C2\u6570\u3002",tools:"\u5DE5\u5177",color:"\u989C\u8272",custom:"\u81EA\u5B9A\u4E49",width:"\u7EBF\u5BBD",reset:"\u91CD\u7F6E",brush:"\u753B\u7B14",eraser:"\u6A61\u76AE",line:"\u76F4\u7EBF",arrow:"\u7BAD\u5934",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706"},"zh-Hant":{tool:"\u6A19\u8A3B",title:"\u6A19\u8A3B",hint:"\u5728\u9019\u88E1\u8A2D\u5B9A\u6A19\u8A3B\u5DE5\u5177\u7684\u6A23\u5F0F\u53C3\u6578\u3002",tools:"\u5DE5\u5177",color:"\u984F\u8272",custom:"\u81EA\u8A02",width:"\u7DDA\u5BEC",reset:"\u91CD\u8A2D",brush:"\u756B\u7B46",eraser:"\u6A61\u76AE",line:"\u76F4\u7DDA",arrow:"\u7BAD\u982D",rectangle:"\u77E9\u5F62",ellipse:"\u6A62\u5713"}};function Pi(e){const t=Xt(e);return br[t]??br.en}const gr=[{key:"brush"},{key:"eraser"},{key:"line"},{key:"arrow"},{key:"rectangle"},{key:"ellipse"}],_n=2,jn=24,Nn=14,ja=["pen","line","arrow","rect","ellipse"],Hi={brush:"pen",line:"line",arrow:"arrow",rectangle:"rect",ellipse:"ellipse"},yr=["#ffffff","#ff4d4f","#ff7a45","#ffa940","#fadb14","#95de64","#52c41a","#13c2c2","#40a9ff","#2f54eb","#7c7cf0","#eb2f96","#722ed1","#000000"],sn={tool:"brush",color:"#ff4d4f",width:4};function Ii(e){switch(e){case"eraser":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M7.2 15.8 14.9 8a1.8 1.8 0 0 1 2.6 0l2.6 2.6a1.8 1.8 0 0 1 0 2.6l-5.3 5.3a2.4 2.4 0 0 1-1.7.7h-4a2.4 2.4 0 0 1-1.7-.7l-1-1a1.2 1.2 0 0 1 0-1.7Z" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/><path d="M13.1 19.2h6.2" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"/></svg>';case"line":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 19 19 5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/></svg>';case"arrow":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 16 15 6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/><path d="M10.5 6H15v4.5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/></svg>';case"rectangle":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><rect x="5.5" y="5.5" width="13" height="13" rx="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';case"ellipse":return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><ellipse cx="12" cy="12" rx="6.6" ry="6.6" fill="none" stroke="currentColor" stroke-width="1.8"/></svg>';default:return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m8.2 15.8 7.9-7.9a1.9 1.9 0 0 1 2.7 2.7l-7.9 7.9" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M7.5 16.5c-.5 2.5-2.4 3.8-3.8 4 .2-1.5 1.5-3.3 4-3.8Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"/></svg>'}}function Ri(){return'<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m5 19 3.9-1 9.2-9.2a1.8 1.8 0 0 0 0-2.6l-.3-.3a1.8 1.8 0 0 0-2.6 0L6 15.1 5 19Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><path d="m13.7 7.3 3 3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/><path d="m5 19 3.3-3.3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>'}function wr(e,t){switch(e?.type){case"pen":return t.brush;case"line":return t.line;case"arrow":return t.arrow;case"rect":return t.rectangle;case"ellipse":return t.ellipse;default:return t.tool}}function Ya(e){switch(e?.type){case"pen":return"brush";case"line":return"line";case"arrow":return"arrow";case"rect":return"rectangle";case"ellipse":return"ellipse";default:return sn.tool}}function no(e=sn){const t=gr.some(r=>r.key===e?.tool)?e.tool:sn.tool,n=Er(e?.color);return{tool:t,color:n,width:ae(Math.round(Number(e?.width)||sn.width),_n,jn)}}function Oo(e,t){return e?.tool===t?.tool&&e?.color===t?.color&&Number(e?.width)===Number(t?.width)}function kr(e){return Oo(e,sn)}function Fi(e){return`${ae(Math.round(Number(e)||sn.width),_n,jn)}px`}function Er(e){const t=String(e??"").trim().toLowerCase();return/^#?[0-9a-f]{3}$/.test(t)?`#${t.replace("#","").split("").map(r=>`${r}${r}`).join("")}`:/^#?[0-9a-f]{6}$/.test(t)?`#${t.replace("#","")}`:sn.color}function oo(e){const t=Er(e);return{r:Number.parseInt(t.slice(1,3),16),g:Number.parseInt(t.slice(3,5),16),b:Number.parseInt(t.slice(5,7),16)}}function ro(e,t,n){return`#${[e,t,n].map(r=>ae(Math.round(Number(r)||0),0,255).toString(16).padStart(2,"0")).join("")}`}function zo(e,t,n){const r=ae(Number(e)||0,0,255)/255,a=ae(Number(t)||0,0,255)/255,s=ae(Number(n)||0,0,255)/255,u=Math.max(r,a,s),f=Math.min(r,a,s),v=u-f;let k=0;return v>0&&(u===r?k=60*((a-s)/v%6):u===a?k=60*((s-r)/v+2):k=60*((r-a)/v+4)),k<0&&(k+=360),{h:k,s:u<=0?0:v/u,v:u}}function Po(e,t,n){const r=((Number(e)||0)%360+360)%360,a=ae(Number(t)||0,0,1),s=ae(Number(n)||0,0,1),u=s*a,f=r/60,v=u*(1-Math.abs(f%2-1));let k=0,H=0,G=0;f>=0&&f<1?(k=u,H=v):f<2?(k=v,H=u):f<3?(H=u,G=v):f<4?(H=v,G=u):f<5?(k=v,G=u):(k=u,G=v);const T=s-u;return{r:Math.round((k+T)*255),g:Math.round((H+T)*255),b:Math.round((G+T)*255)}}function Bi(e){const t=Po(e,1,1);return ro(t.r,t.g,t.b)}const $i=["none","sepia","cool","warm","vivid","bw"],Va=["brightness","contrast","saturation","temperature","tint","vibrance","gamma"],An={brightness:0,contrast:0,saturation:0,temperature:0,tint:0,vibrance:0,gamma:0,highlights:0,shadows:0,whites:0,blacks:0,lightSense:0,sharpen:0,clarity:0,grain:0,fade:0,vignette:0},Ho=Object.keys(An);function Sr(e){return[{title:e.colorSection,items:[{key:"temperature",label:e.temperature,format:"offset",min:-1,max:1},{key:"tint",label:e.tint,format:"offset",min:-1,max:1},{key:"saturation",label:e.saturation,format:"percent",min:-1,max:1},{key:"vibrance",label:e.vibrance,format:"offset",min:-1,max:1},{key:"gamma",label:e.gamma,format:"percent",min:-1,max:1}]},{title:e.toneSection,items:[{key:"brightness",label:e.brightness,format:"percent",min:-1,max:1},{key:"contrast",label:e.contrast,format:"percent",min:-1,max:1},{key:"highlights",label:e.highlights,format:"offset",min:-1,max:1},{key:"shadows",label:e.shadows,format:"offset",min:-1,max:1},{key:"whites",label:e.whites,format:"offset",min:-1,max:1},{key:"blacks",label:e.blacks,format:"offset",min:-1,max:1},{key:"lightSense",label:e.lightSense,format:"offset",min:-1,max:1}]},{title:e.effectsSection,items:[{key:"sharpen",label:e.sharpen,format:"amount",min:0,max:1},{key:"clarity",label:e.clarity,format:"amount",min:0,max:1},{key:"grain",label:e.grain,format:"amount",min:0,max:1},{key:"fade",label:e.fade,format:"amount",min:0,max:1},{key:"vignette",label:e.vignette,format:"amount",min:0,max:1}]}]}function Di(e){if(typeof e.applyMut=="function"){e.applyMut(t=>({...t,filters:{...t.filters,...An}}));return}e.setFilters({...An})}function _i(e){const t=new Map(jr.map(n=>[n.id,n]));return $i.map(n=>{if(n==="none")return{id:"",css:"",label:e.presetNames.none};const r=t.get(n);return r?{...r,label:e.presetNames[n]??r.label??n}:null}).filter(Boolean)}function Lr(e,t="percent"){if(t==="offset"){const n=Math.round((Number(e)||0)*100);return n>0?`+${n}`:`${n}`}return t==="amount"?`${Math.round((Number(e)||0)*100)}%`:`${Math.round((1+(Number(e)||0))*100)}%`}function Io(e){return[e?.textContent,e?.getAttribute?.("title"),e?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Ro(e){return e instanceof HTMLButtonElement?(e.dataset.meTrimHidden="true",e):e??null}function ji(e){return e instanceof HTMLButtonElement?(e.dataset.meAnnotateHidden="true",e):e??null}function io(e){const t=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Ro(e.find(n=>{const r=Io(n);return t.some(a=>r.includes(a))})??e[0]??null)}function Yi(e){const t=["annotate","annotation","markup","draw","doodle","\u6807\u6CE8","\u5857\u9E26","\u5857\u9D09"];return ji(e.find(n=>{const r=Io(n);return t.some(a=>r.includes(a))})??null)}function Tr(e,t,n){try{const r=document.createElement("canvas");r.width=208,r.height=118;const a=r.getContext("2d");if(!a)return"";const s=t/n,u=r.width/r.height;let f=0,v=0,k=t,H=n;return s>u?(k=n*u,f=(t-k)/2):s<u&&(H=t/u,v=(n-H)/2),a.drawImage(e,f,v,k,H,0,0,r.width,r.height),r.toDataURL("image/jpeg",.82)}catch{return""}}function Vi(e){const t=e.querySelector(".me-video-canvas-stage canvas");if(t instanceof HTMLCanvasElement&&t.width>8&&t.height>8)return Tr(t,t.width,t.height);const n=e.querySelector("video");return n instanceof HTMLVideoElement&&n.videoWidth>8&&n.videoHeight>8?Tr(n,n.videoWidth,n.videoHeight):""}function Xi(e){const t=String(e??"").split(":").map(a=>Number(a));if(t.length!==2)return null;const[n,r]=t;return!(n>0)||!(r>0)?null:n/r}function ao(e,t=1080){const n=Xi(e)??1;return n>=1?{w:Math.max(2,Vt(t*n)),h:Math.max(2,Vt(t))}:{w:Math.max(2,Vt(t)),h:Math.max(2,Vt(t/n))}}function qi(){return Mi.map(e=>({...e,ratios:e.ratios.map(t=>({ratio:t,...ao(t)}))}))}function Mr(e){return`${e.platform} ${e.type}`}function Wi(e){switch(e.id){case"facebook-post":return"FB Post";case"facebook-story":return"FB Story";case"instagram-post":return"IG Post";case"instagram-story":return"IG Story";case"tiktok-photo":return"TikTok";case"x-post":return"X Post";case"linkedin-post":return"LinkedIn";case"pinterest-post":return"Pinterest";case"reddit-media":return"Reddit";case"threads-post":return"Threads";case"telegram-post":return"Telegram";default:return Mr(e)}}function Ki(e){return Ci.map(t=>{const n=ao(t),r=e.filter(a=>a.ratios.some(s=>s.ratio===t));return r.length?{ratio:t,...n,groups:r,hint:r.map(a=>Mr(a)).join(" / "),tags:r.map(a=>Wi(a))}:null}).filter(Boolean)}function On(e){return`${Math.max(2,Vt(e?.w??0))} x ${Math.max(2,Vt(e?.h??0))} px`}function Cr(e){const t=e?.canvas??{w:1080,h:1920};return jo(t,{...e,scale:void 0})}function Yn(e){return e?.scale?{w:Math.max(2,Vt(e.scale.width)),h:Math.max(2,Vt(e.scale.height))}:Cr(e)}function Fo(e){return e==="contain"||e==="force"?e:"cover"}function fn(e,t){const n=Number(e),r=Number.isFinite(n)&&n>0?n:t;return Math.max(2,Vt(r||2))}function Ui(e,t){const n=Math.max(2,Vt(t?.w??0)),r=Math.max(2,Vt(t?.h??0));return e.find(a=>Math.abs(a.w-n)<=2&&Math.abs(a.h-r)<=2)??null}function Gi(e,t){switch(Fo(t)){case"contain":return e.containHint;case"force":return e.forceHint;default:return e.coverHint}}function so(e,t){e.replaceChildren();for(const n of t){const r=document.createElement("option");r.value=n.value,r.textContent=n.label,e.appendChild(r)}}function Vn(e=[],t=[]){const n=typeof Intl<"u"?new Intl.Collator(void 0,{sensitivity:"base",numeric:!0}):null,r=new Set;return[...e,...t].map(a=>String(a??"").trim()).filter(Boolean).filter(a=>{const s=a.toLowerCase();return r.has(s)?!1:(r.add(s),!0)}).sort((a,s)=>n?n.compare(a,s):a.localeCompare(s))}function Bo(e){return`"${String(e??"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}", ${qn}`}function lo(e){const t=String(e??"").trim();return qr[t]||t}function $o(e){const t=String(e??"").trim(),n=lo(t);return n&&n!==t?`${n} (${t})`:t}function Zi(e){const t=String(e??"").trim();return`${t} ${lo(t)} ${$o(t)}`.toLowerCase()}function Nr(e){return/[\u3400-\u9fff\uf900-\ufaff]/.test(String(e??""))}function Ji(e){const t=String(e??"").trim().toLowerCase();return t?Wr.some(n=>t.includes(n))?!0:Nr(lo(e)):!1}function Qi(e,t=!1){const n=Vn(e);if(!t)return n;const r=[],a=[];for(const s of n)Ji(s)?r.push(s):a.push(s);return[...r,...a]}async function ea(){return Wn||(Wn=(async()=>{const e=Vn(Xo);if(typeof window>"u"||typeof window.queryLocalFonts!="function")return e;try{const n=(await window.queryLocalFonts()).map(r=>r?.family||r?.fullName||"").filter(Boolean);return Vn(n,e)}catch{return e}})(),Wn)}function ta(e){const t=document.createElement("div");t.className="me-video-font-picker";const n=document.createElement("button");n.type="button",n.className="me-video-font-picker-trigger";const r=document.createElement("span");r.className="me-video-font-picker-label";const a=document.createElement("span");a.className="me-video-font-picker-chevron",a.textContent="v",n.append(r,a);const s=document.createElement("div");s.className="me-video-font-picker-dropdown",s.hidden=!0;const u=document.createElement("label");u.className="me-video-font-picker-search";const f=document.createElement("span");f.className="me-video-font-picker-search-icon",f.innerHTML='<svg viewBox="0 0 16 16" fill="none" aria-hidden="true"><circle cx="7" cy="7" r="4.5" stroke="currentColor" stroke-width="1.4"></circle><path d="M10.5 10.5L14 14" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path></svg>';const v=document.createElement("input");v.type="search",v.className="me-video-font-picker-search-input",v.placeholder=e.searchFont,v.autocomplete="off",v.spellcheck=!1;const k=document.createElement("div");k.className="me-video-font-picker-list",u.append(f,v),s.append(u,k),t.append(n,s);let H=!1,G=!1,T=!1,F="Arial",j=Vn(Xo),oe=!1;const Q=typeof requestAnimationFrame=="function"?requestAnimationFrame:Y=>setTimeout(Y,0);function Z(){F||(F="Arial"),j=Vn(j,[F])}function ie(Y){const L=document.createElement("div");return L.className="me-video-font-picker-message",L.textContent=Y,L}function he(Y){const L=document.createElement("button");L.type="button",L.className="me-video-font-picker-option",Y===F&&L.classList.add("is-active"),L.dataset.family=Y;const B=document.createElement("span");B.className="me-video-font-picker-option-name",B.textContent=$o(Y),B.style.fontFamily=Bo(Y);const q=document.createElement("span");return q.className="me-video-font-picker-option-preview",q.textContent=e.sampleText||Uo,q.style.fontFamily=Bo(Y),L.append(B,q),L.addEventListener("click",()=>{x(Y),t.dispatchEvent(new CustomEvent("fontchange",{detail:{value:Y}})),te(!1),n.focus()}),L}function ne(){const Y=F||"Arial";r.textContent=lo(Y),r.style.fontFamily=Bo(F||"Arial"),n.title=$o(Y),n.disabled=G}function xe(){if(k.replaceChildren(),!H)return;if(T){k.appendChild(ie(e.loadingFonts));return}Z();const Y=String(v.value??"").trim().toLowerCase(),L=Qi(j.filter(B=>!Y||Zi(B).includes(Y)),oe);if(!L.length){k.appendChild(ie(e.noFonts));return}for(const B of L)k.appendChild(he(B))}function te(Y){G&&Y||(H=!!Y,t.classList.toggle("is-open",H),s.hidden=!H,H?Q(()=>{v.focus(),v.select()}):v.value="",xe())}async function w(){if(!T){T=!0,xe();try{j=await ea(),Z()}finally{T=!1,xe()}}}function x(Y,{silent:L=!1}={}){F=String(Y??"").trim()||"Arial",Z(),ne(),!L&&H&&xe()}function E(){return F||"Arial"}function C(Y){G=!!Y,G&&te(!1),ne(),v.disabled=G}function y(Y){const L=Nr(Y);oe!==L&&(oe=L,H&&xe())}function O(Y){H&&(t.contains(Y.target)||te(!1))}return n.addEventListener("click",async()=>{const Y=!H;te(Y),Y&&await w()}),v.addEventListener("input",()=>xe()),document.addEventListener("pointerdown",O,!0),x("Arial",{silent:!0}),C(!1),{wrap:t,setValue:x,getValue:E,setDisabled:C,setContextText:y,destroy(){document.removeEventListener("pointerdown",O,!0)}}}function na(e){const t=String(e??"").trim().toLowerCase();return/^#([0-9a-f]{3}|[0-9a-f]{6})$/.test(t)?t.length===7?t:`#${t.slice(1).split("").map(n=>`${n}${n}`).join("")}`:null}function vn(e,t="#ffffff"){const n=String(e??"").trim();if(!n)return t;if(n.toLowerCase()==="transparent")return"transparent";const r=na(n);if(r)return r;const a=n.match(/^rgba?\(([^)]+)\)$/i);if(a){const s=a[1].split(",").slice(0,3).map(u=>ae(Math.round(Number(u.trim())||0),0,255));if(s.length===3)return`#${s.map(u=>u.toString(16).padStart(2,"0")).join("")}`}return t}function Tt(e,t,n=""){const r=document.createElement("div");r.className=`me-video-text-row${n?` ${n}`:""}`;const a=document.createElement("label");return a.className="me-video-text-row-label",a.textContent=e,r.append(a,t),r}function Kt(e){const t=document.createElement("section");t.className="me-video-text-section";const n=document.createElement("h4");n.className="me-video-text-section-title",n.textContent=e;const r=document.createElement("div");return r.className="me-video-text-section-body",t.append(n,r),{section:t,body:r,title:n}}function co({allowTransparent:e=!1,fallback:t="#ffffff",transparentLabel:n="Transparent"}={}){const r=document.createElement("div");r.className="me-video-text-color-control";const a=document.createElement("input");a.type="color",a.className="me-video-text-color-swatch",a.value=vn(t,"#ffffff");const s=document.createElement("input");s.type="text",s.className="me-video-text-input me-video-text-color-text",s.spellcheck=!1,r.append(a,s);let u=null;e&&(u=document.createElement("button"),u.type="button",u.className="me-video-text-toggle me-video-text-transparent-toggle",u.textContent=n,r.appendChild(u));function f(){return r.dataset.transparent==="true"}function v(T){r.dataset.transparent=T?"true":"false",u?.classList.toggle("is-active",T),a.disabled=T,T?s.value="transparent":(!s.value||s.value==="transparent")&&(s.value=a.value||vn(t,"#ffffff"))}function k(T){if(e&&String(T??"").trim().toLowerCase()==="transparent"){v(!0);return}const F=vn(T,vn(t,"#ffffff"));a.value=F==="transparent"?vn(t,"#ffffff"):F,s.value=F==="transparent"?"transparent":F,e&&v(F==="transparent")}function H(){return e&&f()?"transparent":vn(s.value||a.value,a.value||vn(t,"#ffffff"))}function G(T){a.disabled=T||e&&f(),s.disabled=T,u&&(u.disabled=T)}return k(t),{wrap:r,swatch:a,text:s,transparentButton:u,setTransparent:v,setValue:k,getValue:H,setDisabled:G}}function uo(e){const t=e.querySelector(".me-video-workspace");if(!t)return null;let n=t.querySelector(".me-video-inspector-rail");return n||(n=document.createElement("aside"),n.className="me-video-inspector-rail",n.hidden=!0,t.appendChild(n)),n}function rn(e,t){const n=uo(e);return n?(t.parentElement!==n&&n.appendChild(t),n):null}function Ht(e){const t=uo(e);if(!t)return;const n=[...t.children].some(r=>r instanceof HTMLElement&&!r.hidden);t.hidden=!n}function Ar(e,t,n){const r=uo(e);if(!(!r||!(t instanceof HTMLElement))){for(const a of r.children)if(!(!(a instanceof HTMLElement)||a===t)){if(n){a.dataset.meInspectorPrevHidden||(a.dataset.meInspectorPrevHidden=a.hidden?"true":"false"),a.hidden=!0;continue}Object.prototype.hasOwnProperty.call(a.dataset,"meInspectorPrevHidden")&&(a.hidden=a.dataset.meInspectorPrevHidden==="true",delete a.dataset.meInspectorPrevHidden)}}}function Or(e){return new Set(String(e??"").split(/\s+/).map(t=>t.trim()).filter(Boolean))}function oa(e){return[...e].join(" ").trim()}function ra(e,t,n,r){Qt(),kn();const a=r(),s=Zo(a),u=s.text,f=Oi(a),v=document.createElement("div");v.className="me-video-text-panel",v.hidden=!0,e.appendChild(v);const k=document.createElement("div");k.className="me-video-text-toolbar";const H=document.createElement("strong");H.textContent=u.tool;const G=Yt(u.addText),T=Yt(u.moveOnCanvas),F=Yt(u.duplicate),j=Yt(u.delete);j.classList.add("me-video-text-danger");const oe=Yt(u.close);k.append(H);const Q=document.createElement("div");Q.className="me-video-text-list";const Z=document.createElement("div");Z.className="me-video-text-empty",Z.textContent=u.empty;const ie=document.createElement("textarea");ie.className="me-video-text-input me-video-text-textarea",ie.placeholder=u.placeholder;const he=document.createElement("select");he.className="me-video-text-select",so(he,[{value:"none",label:f.none},{value:"heading",label:u.heading},{value:"subtitle",label:u.subtitle},{value:"label",label:u.label}]);const ne=ta(f),xe=document.createElement("select");xe.className="me-video-text-select",so(xe,Ti);const te=document.createElement("input");te.type="number",te.min="8",te.max="320",te.step="1",te.className="me-video-text-input";const w=co({fallback:"#ffffff"}),x=co({allowTransparent:!0,fallback:"#111111",transparentLabel:f.transparent}),E=document.createElement("div");E.className="me-video-text-inline";const C=[{value:"left",label:f.alignLeft},{value:"center",label:f.alignCenter},{value:"right",label:f.alignRight}].map(m=>{const P=document.createElement("button");return P.type="button",P.className="me-video-text-align",P.dataset.align=m.value,P.textContent=m.label,E.appendChild(P),{value:m.value,button:P}}),y=document.createElement("div");y.className="me-video-text-toggle-group";const O=document.createElement("button");O.type="button",O.className="me-video-text-toggle is-italic",O.title=f.italic,O.textContent="I";const Y=document.createElement("button");Y.type="button",Y.className="me-video-text-toggle is-underline",Y.title=f.underline,Y.textContent="U";const L=document.createElement("button");L.type="button",L.className="me-video-text-toggle is-strike",L.title=f.strike,L.textContent="S",y.append(O,Y,L);const B=document.createElement("select");B.className="me-video-text-select",so(B,[{value:"none",label:f.caseNone},{value:"uppercase",label:f.uppercase},{value:"lowercase",label:f.lowercase},{value:"capitalize",label:f.capitalize}]);const q=document.createElement("div");q.className="me-video-text-slider-row";const V=document.createElement("input");V.type="number",V.min="0",V.max="100",V.step="1",V.className="me-video-text-input";const X=document.createElement("input");X.type="range",X.min="0",X.max="100",X.step="1",q.append(V,X);const re=document.createElement("select");re.className="me-video-text-select",so(re,[{value:"none",label:f.none}]);const pe=co({fallback:"#000000"}),se=document.createElement("input");se.type="number",se.min="0",se.max="32",se.step="1",se.className="me-video-text-input";const N=co({fallback:"#000000"}),b=document.createElement("input");b.type="number",b.min="-80",b.max="80",b.step="1",b.className="me-video-text-input";const le=document.createElement("input");le.type="number",le.min="-80",le.max="80",le.step="1",le.className="me-video-text-input";const Le=document.createElement("input");Le.type="number",Le.min="0",Le.max="80",Le.step="1",Le.className="me-video-text-input";const ve=document.createElement("div");ve.className="me-video-text-section-body",ve.append(Tt(u.content,ie,"is-area"),Tt(f.preset,he));const Ie=Kt(f.styles);Ie.body.append(Tt(u.font,ne.wrap),Tt(u.weight,xe),Tt(f.size,te),Tt(u.color,w.wrap),Tt(f.fill,x.wrap),Tt(u.align,E),Tt(f.decoration,y),Tt(f.case,B),Tt(u.opacity,q));const D=Kt(f.animations);D.body.append(Tt(f.animation,re));const ee=Kt(f.fontStroke);ee.body.append(Tt(u.color,pe.wrap),Tt(f.size,se));const _=Kt(f.fontShadow);_.body.append(Tt(u.color,N.wrap),Tt(f.x,b),Tt(f.y,le),Tt(f.blur,Le)),v.append(k,Z,ve,Ie.section,D.section,ee.section,_.section);let K=null,fe=null,qe=null,Oe=null,Je=null,Ge=null,Ye=null,dt=null,rt=!1,ze=null,it=!1,xt=!1;const wt="text",we=typeof requestAnimationFrame=="function"?requestAnimationFrame:m=>setTimeout(m,16),Re=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ce()),Me=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ce()),et=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],tt={key:"rotate",x:.5,y:0};function ht(){Promise.resolve().then(()=>{xt=!1;const m=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,m-1)})}function gt(m){xt=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return m()}finally{ht()}}function ce(){it||(it=!0,we(()=>{it=!1,Ke()}))}function Se(m){const P=!!m;if(P===rt){Ke();return}rt=P,rt&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:wt}})),Ke()}function Ve(){return fe?[...fe.querySelectorAll("button")].filter(m=>m!==K&&!m.classList.contains("me-video-text-tool")):[]}function Ze(){Ve()[0]?.click()}function at(){if(!K)return;const m=Kn(n());K.dataset.theme=m}function Et(){rn(e,v),Ht(e)}function St(){v.hidden=!rt,K&&K.classList.toggle("is-active",rt),Et()}function Rt(m){if(!m.length){ze=null;return}const P=To(e,t.getState());ze=P.length?P[P.length-1]:null}function ut(){const m=t.getState().overlays??[];if(ze==null)return null;const P=m[ze];return P?.type==="text"?P:null}function It(){return Tn(t)}function Lt(){return yn(e)}function jt(){if(!t.history?.present)return;const m=Lt(),P=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(P)?P:-1)-m)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:m}},typeof t.emit=="function"&&t.emit())}function At(m,P,W={}){const d=(t.getState().overlays??[])[m];!d||d.type!=="text"||t.updateOverlay(m,Jt(d,It(),P),W)}function Mt(m){if(typeof t.applyMut=="function"){t.applyMut(W=>({...W,overlays:[...on(W.overlays),{...m,timelineTrack:0}]}));return}const P=on(t.getState().overlays);t.commit?.({overlays:[...P,{...m,timelineTrack:0}]})}function mt(m,P={}){if(ze==null)return;const W=P.preservePreset||Object.prototype.hasOwnProperty.call(m,"textPreset")?m:{...m,textPreset:"none"};t.updateOverlay(ze,W)}function Ut(m="heading"){const P=It();let W=ae(Lt(),0,Math.max(0,P-je)),l=Math.min(P,W+qt);l-W<je&&(W=ae(P-qt,0,Math.max(0,P-je)),l=Math.max(W+je,P));const d={...tr(t,s,m),...Jt(null,P,{startAt:W,endAt:l,timelineTrack:0})};Mt(d);const o=t.getState().overlays??[];ze=o.length?o.length-1:null,ze!=null&&bt(e,"text",[ze]),Ze(),Se(!0)}function S(){const m=t.getState(),P=Mo(m.overlays??[],To(e,m));P.changed&&(t.commit({overlays:P.overlays}),ze=P.selection.length?P.selection[P.selection.length-1]:null,bt(e,"text",P.selection),Ke())}function R(){const m=t.getState(),P=Co(m.overlays??[],To(e,m));P.changed&&(t.commit({overlays:P.overlays}),ze=null,bt(e,"text",[]),Ke())}function U(m){if(!ut()){Ut(m);return}const W=tr(t,s,m);mt({text:W.text,fontSize:W.fontSize,width:W.width,fontWeight:W.fontWeight,fontFamily:W.fontFamily,fontStyle:W.fontStyle,textAlign:W.textAlign,color:W.color,backgroundColor:W.backgroundColor,borderColor:W.borderColor,borderWidth:W.borderWidth,paddingX:W.paddingX,paddingY:W.paddingY,lineHeight:W.lineHeight,boxShadow:W.boxShadow?{...W.boxShadow}:void 0,textDecoration:W.textDecoration??"",textTransform:W.textTransform,animation:"none",textPreset:m},{preservePreset:!0})}function Te(){const{timelineInner:m,timelineHost:P}=Bn(e,t.getState());if(!m||!P){Oe?.remove(),Oe=null,Re&&Je&&(Re.unobserve(Je),Je=null),qe=null;return}qe=m,(!Oe||!Oe.isConnected||Oe.parentElement!==P)&&(Oe?.remove(),Oe=document.createElement("div"),Oe.className="me-video-text-timeline me-video-overlay-timeline me-video-text-overlay-layer");for(const W of[...P.children])W!==Oe&&W instanceof HTMLElement&&W.classList.contains("me-video-text-overlay-layer")&&W.remove();(Oe.parentElement!==P||P.lastElementChild!==Oe)&&P.appendChild(Oe),Re&&Je!==qe&&(Je&&Re.unobserve(Je),Je=qe,Re.observe(qe))}function Fe(){const m=e.querySelector(".me-video-canvas-stage");if(!m){Ye?.remove(),Ye=null,Me&&dt&&(Me.unobserve(dt),dt=null),Ge=null;return}Ge=m,Ge.style.position="relative",!Ye||!Ye.isConnected||Ye.parentElement!==Ge?(Ye?.remove(),Ye=document.createElement("div"),Ye.className="me-video-text-canvas-layer",Ye.addEventListener("pointerdown",P=>{P.target===Ye&&(P.preventDefault(),P.stopPropagation())}),Ye.addEventListener("click",P=>{P.target===Ye&&(P.preventDefault(),P.stopPropagation(),ze=null,Eo(e),rt?Se(!1):Ke())}),Ge.appendChild(Ye)):Ge.lastElementChild!==Ye&&Ge.appendChild(Ye),Me&&dt!==Ge&&(dt&&Me.unobserve(dt),dt=Ge,Me.observe(Ge))}function p(){if(!Ge)return null;const P=t.getState().canvas??{},W=Math.max(1,Number(P.w)||0),l=Math.max(1,Number(P.h)||0);if(!W||!l)return null;const d=Ge.getBoundingClientRect(),o=Ge.querySelector("canvas, video, img")||[...Ge.children].find(A=>A!==Ye)||null;let i=0,c=0,h=Ge.clientWidth||W,I=Ge.clientHeight||l;if(o instanceof HTMLElement){const A=o.getBoundingClientRect();A.width>0&&A.height>0&&(i=A.left-d.left,c=A.top-d.top,h=A.width,I=A.height)}if(!(h>0&&I>0)){const A=Ge.clientWidth||W,J=Ge.clientHeight||l,M=Math.min(A/W,J/l)||1;h=W*M,I=l*M,i=Math.max(0,(A-h)/2),c=Math.max(0,(J-I)/2)}return{stageLeft:d.left,stageTop:d.top,left:i,top:c,scaleX:h/W,scaleY:I/l}}function g(m,P){const W=lt(m),l=Bt(m,W);return P>=W-.001&&P<=l+.001}function $(m,P,W){const l=Pt(e,"text",m,P,W);ze=l.length?l[l.length-1]:null,Se(!0),Ke()}function de(m,P,W){return{x:(m-W.stageLeft-W.left)/W.scaleX,y:(P-W.stageTop-W.top)/W.scaleY}}function be(m,P,W,l){return{x:W,y:l,fontSize:P.fontSize,width:P.width,paddingX:P.paddingX,paddingY:P.paddingY,borderWidth:P.borderWidth,boxShadow:P.boxShadow}}function ye(m,P,W){const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;const d=t.getState().canvas??{w:1080,h:1920},o=Gt(l);if(!o)return;const i=P.clientX,c=P.clientY,h=Math.max(0,(Number(d.w)||0)-o.w),I=Math.max(0,(Number(d.h)||0)-o.h),A=(z,me,ue)=>{const Ce=(z-i)/W.scaleX,ke=(me-c)/W.scaleY,ge=ae(o.x+Ce,0,h),Ae=ae(o.y+ke,0,I);t.updateOverlay(m,{x:ge,y:Ae},ue?{transient:!0}:void 0)},J=z=>{z.preventDefault(),A(z.clientX,z.clientY,!0)},M=z=>{window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",M),window.removeEventListener("pointercancel",M),A(z.clientX,z.clientY,!1)};window.addEventListener("pointermove",J),window.addEventListener("pointerup",M),window.addEventListener("pointercancel",M)}function Be(m,P,W,l){const d=(t.getState().overlays??[])[m];if(!d||d.type!=="text")return;const o=Gt(d);if(!o)return;const i=t.getState().canvas??{w:1080,h:1920},c=P.x===.5?.5:1-P.x,h=P.y===.5?.5:1-P.y,I=o.x+o.w*c,A=o.y+o.h*h,J=Math.max(.1,24/Math.max(24,o.w),24/Math.max(24,o.h)),M=P.x===.5?1/0:Math.max(.1,(c===0?(Number(i.w)||0)-I:I)/Math.max(1,o.w)),z=P.y===.5?1/0:Math.max(.1,(h===0?(Number(i.h)||0)-A:A)/Math.max(1,o.h)),me=Math.max(J,Math.min(M,z,8)),ue=(ge,Ae,_e)=>{const Xe=de(ge,Ae,l),We=[];P.x!==.5&&We.push(Math.abs(Xe.x-I)/Math.max(1,o.w)),P.y!==.5&&We.push(Math.abs(Xe.y-A)/Math.max(1,o.h));const st=We.length?Math.max(...We):1,Nt=ae(st,J,me),$t=Yo(d,Nt),cn=Gt($t);if(!cn)return;const dn=I-cn.w*c,Hn=A-cn.h*h;t.updateOverlay(m,be(d,$t,dn,Hn),_e?{transient:!0}:void 0)},Ce=ge=>{ge.preventDefault(),ue(ge.clientX,ge.clientY,!0)},ke=ge=>{window.removeEventListener("pointermove",Ce),window.removeEventListener("pointerup",ke),window.removeEventListener("pointercancel",ke),ue(ge.clientX,ge.clientY,!1)};window.addEventListener("pointermove",Ce),window.addEventListener("pointerup",ke),window.addEventListener("pointercancel",ke)}function Ee(m,P,W){const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;const d=Gt(l);if(!d)return;const o=W.stageLeft+W.left+(d.x+d.w/2)*W.scaleX,i=W.stageTop+W.top+(d.y+d.h/2)*W.scaleY,c=Math.atan2(P.clientY-i,P.clientX-o),h=un(l),I=(M,z,me,ue)=>{const Ce=Math.atan2(z-i,M-o);let ke=In(h+(Ce-c)*180/Math.PI);ue&&(ke=Math.round(ke/15)*15),t.updateOverlay(m,{rotation:ke},me?{transient:!0}:void 0)},A=M=>{M.preventDefault(),I(M.clientX,M.clientY,!0,M.shiftKey)},J=M=>{window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",J),window.removeEventListener("pointercancel",J),I(M.clientX,M.clientY,!1,M.shiftKey)};window.addEventListener("pointermove",A),window.addEventListener("pointerup",J),window.addEventListener("pointercancel",J)}function $e(m,P){if(Fe(),!Ye)return;Ye.replaceChildren();const W=p();if(!W){Ye.hidden=!0;return}Ye.hidden=!1;const l=Lt(),d=m.map(i=>i.index),o=m.filter(i=>g(i.overlay,l));for(const i of o){const c=Gt(i.overlay);if(!c)continue;const h=document.createElement("button");h.type="button",h.className="me-video-text-canvas-hit";const I=P.has(i.index),A=I&&ze===i.index;I&&h.classList.add("is-active"),h.title=Un(i.overlay.text,s.untitledText),h.style.left=`${W.left+c.x*W.scaleX}px`,h.style.top=`${W.top+c.y*W.scaleY}px`,h.style.width=`${Math.max(18,c.w*W.scaleX)}px`,h.style.height=`${Math.max(18,c.h*W.scaleY)}px`;const J=un(i.overlay);if(J&&(h.style.transform=`rotate(${J}deg)`,h.style.transformOrigin="center center"),h.addEventListener("pointerdown",M=>{if(M.preventDefault(),M.stopPropagation(),M.shiftKey||M.ctrlKey||M.metaKey){$(i.index,M,d);return}ze=i.index,bt(e,"text",[i.index]),Se(!0),ye(i.index,M,W)}),A){for(const z of et){const me=document.createElement("span");me.className="me-video-text-canvas-handle",me.dataset.handle=z.key,me.style.left=`${z.x*100}%`,me.style.top=`${z.y*100}%`,me.addEventListener("pointerdown",ue=>{ue.preventDefault(),ue.stopPropagation(),ze=i.index,bt(e,"text",[i.index]),Se(!0),Be(i.index,z,ue,W)}),h.appendChild(me)}const M=document.createElement("span");M.className="me-video-text-canvas-handle",M.dataset.handle=tt.key,M.style.left=`${tt.x*100}%`,M.style.top=`${tt.y*100}%`,M.addEventListener("pointerdown",z=>{z.preventDefault(),z.stopPropagation(),ze=i.index,bt(e,"text",[i.index]),Se(!0),Ee(i.index,z,W)}),h.appendChild(M)}Ye.appendChild(h)}}function Ne(m,P,W){if(!qe)return;const l=(t.getState().overlays??[])[m];if(!l||l.type!=="text")return;if(W.shiftKey||W.ctrlKey||W.metaKey){W.preventDefault(),W.stopPropagation();const z=Pt(e,"text",m,W,ar(t.getState()).map(me=>me.index));ze=z.length?z[z.length-1]:null,Ze(),Se(!0);return}W.preventDefault(),W.stopPropagation(),ze=m,bt(e,"text",[m]),Ze(),rt||Se(!0);const d=It(),o=Math.max(qe.clientWidth/d,.001),i=lt(l),c=Bt(l,i),h=Math.max(je,c-i),I=vt(l),A=W.clientX,J=z=>{const me=(z.clientX-A)/o,ue=t.getState().overlays??[];if(P==="move"){const ge=Math.max(0,i+me),Ae=ge+h,_e=pt(Oe,ue,m,ge,Ae,z.clientY,I);At(m,{startAt:ge,endAt:Ae,timelineTrack:_e},{transient:!0});return}if(P==="start"){const ge=ae(i+me,0,c-je),Ae=pt(Oe,ue,m,ge,c,z.clientY,I);At(m,{startAt:ge,endAt:c,timelineTrack:Ae},{transient:!0});return}const Ce=Math.max(i+je,c+me),ke=pt(Oe,ue,m,i,Ce,z.clientY,I);At(m,{startAt:i,endAt:Ce,timelineTrack:ke},{transient:!0})},M=z=>{window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",M),window.removeEventListener("pointercancel",M);const me=(z.clientX-A)/o,ue=t.getState().overlays??[];if(P==="move"){const ge=Math.max(0,i+me),Ae=ge+h,_e=pt(Oe,ue,m,ge,Ae,z.clientY,I);At(m,{startAt:ge,endAt:Ae,timelineTrack:_e});return}if(P==="start"){const ge=ae(i+me,0,c-je),Ae=pt(Oe,ue,m,ge,c,z.clientY,I);At(m,{startAt:ge,endAt:c,timelineTrack:Ae});return}const Ce=Math.max(i+je,c+me),ke=pt(Oe,ue,m,i,Ce,z.clientY,I);At(m,{startAt:i,endAt:Ce,timelineTrack:ke})};window.addEventListener("pointermove",J),window.addEventListener("pointerup",M),window.addEventListener("pointercancel",M),Ke()}function De(m,P){if(Te(),!Oe||!qe||(Oe.replaceChildren(),Oe.hidden=m.length===0,!m.length))return;const W=It(),l=qe.clientWidth/W,d=Rn(t.getState()),o=new Map;for(const i of m){const c=vt(i.overlay),h=d.get(c)??c;let I=o.get(c);I||(I=document.createElement("div"),I.className="me-video-overlay-track-row",I.dataset.track=String(c),I.style.top=`${Ln(h)}px`,o.set(c,I),Oe.appendChild(I));const A=document.createElement("div");A.className="me-video-text-track-clip",P.has(i.index)&&A.classList.add("is-active");const J=lt(i.overlay),M=Sn(i.overlay);A.style.left=`${J*l}px`,A.style.width=`${Math.max(36,M*l)}px`;const z=document.createElement("span");z.className="me-video-text-track-icon",z.textContent="Aa";const me=document.createElement("span");me.className="me-video-text-track-label",me.textContent=Un(i.overlay.text,s.untitledText),me.title=me.textContent;const ue=document.createElement("span");ue.className="me-video-text-track-handle is-start";const Ce=document.createElement("span");Ce.className="me-video-text-track-handle is-end",A.append(z,me,ue,Ce),A.addEventListener("pointerdown",ke=>Ne(i.index,"move",ke)),ue.addEventListener("pointerdown",ke=>Ne(i.index,"start",ke)),Ce.addEventListener("pointerdown",ke=>Ne(i.index,"end",ke)),A.addEventListener("click",ke=>{if(ke.preventDefault(),ke.stopPropagation(),ke.shiftKey||ke.ctrlKey||ke.metaKey){Ze(),Ke();return}const ge=Pt(e,"text",i.index,ke,m.map(Ae=>Ae.index));ze=ge.length?ge[ge.length-1]:null,Ze(),Se(!0),Ke()}),I.appendChild(A)}}function Qe(m,P){Q.replaceChildren(),Q.hidden=m.length===0,Z.hidden=m.length>0;for(const W of m){const l=document.createElement("button");l.type="button",l.className="me-video-text-chip",P.has(W.index)&&l.classList.add("is-active"),l.textContent=Un(W.overlay.text,s.untitledText),l.title=Un(W.overlay.text,s.untitledText),l.addEventListener("click",d=>{const o=Pt(e,"text",W.index,d,m.map(i=>i.index));ze=o.length?o[o.length-1]:null,Ke()}),Q.appendChild(l)}}function He(m){ie.disabled=m,ne.setDisabled(m),xe.disabled=m,te.disabled=m,C.forEach(({button:P})=>P.disabled=m),B.disabled=m,re.disabled=m,V.disabled=m,X.disabled=m,se.disabled=m,b.disabled=m,le.disabled=m,Le.disabled=m,w.setDisabled(m),x.setDisabled(m),pe.setDisabled(m),N.setDisabled(m),F.disabled=m,j.disabled=m,T.disabled=m,O.disabled=m,Y.disabled=m,L.disabled=m}function Pe(m){const P=String(ae(Math.round(Number(m)||0),0,100));V.value=P,X.value=P}function Ue(m){const P=Or(m?.textDecoration);O.classList.toggle("is-active",!!m&&String(m.fontStyle??"normal")==="italic"),Y.classList.toggle("is-active",!!m&&P.has("underline")),L.classList.toggle("is-active",!!m&&P.has("line-through"))}function ct(m="left"){C.forEach(({value:P,button:W})=>{})}function ft(m){if(He(!!!m),!m){he.value="none",ie.value="",ne.setContextText(""),ne.setValue("Arial",{silent:!0}),xe.value="700",te.value="72",w.setValue("#ffffff"),x.setValue("transparent"),ct("center"),B.value="none",re.value="none",pe.setValue("#000000"),se.value="0",N.setValue("#000000"),b.value="0",le.value="4",Le.value="18",Pe(100),Ue(null);return}const W=m.boxShadow??{};he.value=String(m.textPreset??"none"),ie.value=String(m.text??""),ne.setContextText(m.text??""),ne.setValue(String(m.fontFamily??"Arial"),{silent:!0}),xe.value=String(m.fontWeight??"700"),te.value=String(Math.round(Number(m.fontSize)||72)),w.setValue(m.color??"#ffffff"),x.setValue(m.backgroundColor??"transparent"),ct(m.textAlign==="right"||m.textAlign==="center"?m.textAlign:"left"),B.value=m.textTransform?String(m.textTransform):"none",re.value=m.animation?String(m.animation):"none",pe.setValue(m.borderColor??"#000000"),se.value=String(Math.round(Number(m.borderWidth)||0)),N.setValue(W.color??"#000000"),b.value=String(Math.round(Number(W.x)||0)),le.value=String(Math.round(Number(W.y)||0)),Le.value=String(Math.round(Number(W.blur)||0)),Pe(Number.isFinite(m.opacity)?m.opacity:100),Ue(m)}function Ke(){gt(()=>{const m=ar(t.getState());Rt(m);const P=new Set(_t(e,"text"));De(m,P),$e(m,P),Qe(m,P),ft(ut()),St(),Et(),at()}),jt()}function nt(){gt(()=>{const m=e.querySelector(".me-video-toolrail");m&&(fe=m,Yi([...fe.querySelectorAll("button")].filter(P=>P instanceof HTMLButtonElement&&P!==K&&!P.classList.contains("me-video-text-tool"))),(!K||!K.isConnected)&&(K=document.createElement("button"),K.type="button",K.className="me-video-text-tool",K.innerHTML=`<span class="me-video-text-tool-icon">T</span><span class="me-video-text-tool-label">${u.tool}</span>`,K.addEventListener("click",()=>{Ut("heading")})),K.isConnected||fe.appendChild(K),at(),Et())})}function ot(m){return!!m&&(m===v||v.contains(m)||m===K||m===Oe||Oe?.contains?.(m)||m===Ye||Ye?.contains?.(m))}function Ot(m){return m.some(P=>{if(!ot(P.target))return!0;for(const W of P.addedNodes)if(!ot(W))return!0;for(const W of P.removedNodes)if(!ot(W))return!0;return!1})}function Ft(m,P){m.swatch.addEventListener("input",()=>{m.transparentButton&&m.wrap.dataset.transparent==="true"&&m.setTransparent(!1),m.text.value=m.swatch.value,P(m.getValue())}),m.text.addEventListener("change",()=>{const W=String(m.text.value??"").trim();if(m.transparentButton&&W.toLowerCase()==="transparent"){m.setTransparent(!0),P("transparent");return}const l=vn(W,m.swatch.value||"#ffffff");m.swatch.value=l==="transparent"?m.swatch.value||"#ffffff":l,m.text.value=l,m.transparentButton&&m.setTransparent(!1),P(l)}),m.transparentButton?.addEventListener("click",()=>{const W=m.wrap.dataset.transparent!=="true";m.setTransparent(W),P(m.getValue())})}function kt(m){const P=ut();if(!P)return;const W={color:"#000000",x:0,y:4,blur:18,...P.boxShadow??{}};mt({boxShadow:{...W,...m}})}function ln(m){const P=ut();if(!P)return;const W=Or(P.textDecoration);W.has(m)?W.delete(m):W.add(m),mt({textDecoration:oa(W)||void 0})}const an=new MutationObserver(m=>{xt||e.__meVideoEnhancerObserverLock||Ot(m)&&(nt(),ce())}),en=m=>{m?.detail?.id!==wt&&rt&&(rt=!1,Ke())},Ct=()=>{Ke()};an.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",en),e.addEventListener(zt,Ct),window.addEventListener("resize",Et);const tn=t.subscribe(()=>{Ke()});return G.addEventListener("click",()=>Ut("heading")),T.addEventListener("click",()=>{Ze(),Se(!0)}),F.addEventListener("click",S),j.addEventListener("click",R),oe.addEventListener("click",()=>{Se(!1)}),ie.addEventListener("input",()=>{ne.setContextText(ie.value),mt({text:ie.value})}),he.addEventListener("change",()=>{if(he.value==="none"){ut()&&mt({textPreset:"none"},{preservePreset:!0});return}U(he.value)}),ne.wrap.addEventListener("fontchange",()=>mt({fontFamily:ne.getValue()})),xe.addEventListener("change",()=>mt({fontWeight:xe.value})),te.addEventListener("change",()=>mt({fontSize:ae(Number(te.value)||72,8,320)})),Ft(w,m=>mt({color:m})),Ft(x,m=>mt({backgroundColor:m})),C.forEach(({value:m,button:P})=>{P.addEventListener("click",()=>{ct(m),mt({textAlign:m})})}),B.addEventListener("change",()=>mt({textTransform:B.value==="none"?void 0:B.value})),re.addEventListener("change",()=>mt({animation:re.value==="none"?void 0:re.value})),se.addEventListener("change",()=>mt({borderWidth:ae(Number(se.value)||0,0,32)})),Ft(pe,m=>mt({borderColor:m})),Ft(N,m=>kt({color:m})),b.addEventListener("change",()=>kt({x:ae(Number(b.value)||0,-80,80)})),le.addEventListener("change",()=>kt({y:ae(Number(le.value)||0,-80,80)})),Le.addEventListener("change",()=>kt({blur:ae(Number(Le.value)||0,0,80)})),V.addEventListener("input",()=>{const m=ae(Number(V.value)||0,0,100);Pe(m),mt({opacity:m})}),X.addEventListener("input",()=>{const m=ae(Number(X.value)||0,0,100);Pe(m),mt({opacity:m})}),O.addEventListener("click",()=>{const m=ut();m&&mt({fontStyle:String(m.fontStyle??"normal")==="italic"?"normal":"italic"})}),Y.addEventListener("click",()=>ln("underline")),L.addEventListener("click",()=>ln("line-through")),nt(),Ke(),{destroy(){an.disconnect(),Re&&Je&&Re.unobserve(Je),Me&&dt&&Me.unobserve(dt),tn(),e.removeEventListener("me-video-inspector-open",en),e.removeEventListener(zt,Ct),window.removeEventListener("resize",Et),ne.destroy(),K?.remove(),Oe?.remove(),Ye?.remove(),v.remove(),Ht(e)}}}function ia(e,t,n){Qt(),kn();const r=Ni(n()),a=Ai(r),s=document.createElement("div");s.className="me-video-text-panel me-video-sticker-panel",s.hidden=!0,e.appendChild(s);const u=document.createElement("div");u.className="me-video-text-toolbar";const f=document.createElement("strong");f.textContent=r.title,u.append(f);const v=Kt(r.uploadTitle),k=document.createElement("label");k.className="me-video-sticker-upload-zone";const H=document.createElement("span");H.className="me-video-sticker-upload-icon",H.textContent="\u{1F5BC}";const G=document.createElement("span");G.className="me-video-sticker-upload-text",G.textContent=r.uploadHint;const T=document.createElement("span");T.className="me-video-sticker-upload-subtext",T.textContent=r.uploadFormats;const F=document.createElement("input");F.type="file",F.accept="image/png,image/jpeg,image/webp,image/svg+xml",k.append(H,G,T,F),v.body.appendChild(k);const j=Kt(r.libraryTitle),oe=document.createElement("div");oe.className="me-video-sticker-library",j.body.appendChild(oe),s.append(u,v.section,j.section);let Q=null,Z=null,ie=null,he=null,ne=null,xe=null,te=null,w=null,x=null,E=!1,C=null,y=!1,O=!1;const Y="sticker",L=typeof requestAnimationFrame=="function"?requestAnimationFrame:S=>setTimeout(S,16),B=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>se()),q=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>se()),V=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],X={key:"rotate",x:.5,y:0};function re(){Promise.resolve().then(()=>{O=!1;const S=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,S-1)})}function pe(S){O=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return S()}finally{re()}}function se(){y||(y=!0,L(()=>{y=!1,ut()}))}function N(S){const R=!!S;if(R===E){ut();return}E=R,E&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Y}})),ut()}function b(S=Z){return S?[...S.children].filter(R=>R instanceof HTMLButtonElement&&!R.classList.contains("me-video-text-tool")):[]}function le(S){return[S?.textContent,S?.getAttribute?.("title"),S?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Le(S){const R=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Ro(S.find(U=>{const Te=le(U);return R.some(Fe=>Te.includes(Fe))})??S[0]??null)}function ve(S){const R=[r.tool,r.title,"sticker","stickers","\u8D34\u7EB8","\u8CBC\u7D19"].map(U=>String(U??"").trim().toLowerCase()).filter(Boolean);return S.find(U=>{const Te=le(U);return R.some(Fe=>Te.includes(Fe))})??S[Math.min(5,Math.max(0,S.length-1))]??null}function Ie(){if(Q?.classList.toggle("is-active",E),!!ie&&E){ie.classList.remove("is-active");return}}function D(){ie&&(ie.classList.contains("is-active")||ie.click())}function ee(){rn(e,s),Ht(e)}function _(){s.hidden=!E,Ie(),ee()}function K(S){if(!S.length){C=null;return}const R=ur(e,t.getState());C=R.length?R[R.length-1]:null}function fe(){return Tn(t)}function qe(){return yn(e)}function Oe(){if(!t.history?.present)return;const S=qe(),R=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(R)?R:-1)-S)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:S}},typeof t.emit=="function"&&t.emit())}function Je(S){return S?.emoji?`${r.defaultLabel} ${S.emoji}`:S?.src?r.uploadedLabel:r.defaultLabel}function Ge(S){const R=Gt(S);if(!R)return null;if(!S?.emoji)return R;const U=.84,Te=R.w*(1-U)/2,Fe=R.h*(1-U)/2;return{x:R.x+Te,y:R.y+Fe,w:R.w*U,h:R.h*U}}function Ye(S,R){if(!S?.emoji)return R;const Te=1/.84,Fe=(Te-1)/2;return{x:R.x-R.w*Fe,y:R.y-R.h*Fe,w:R.w*Te,h:R.h*Te}}function dt(S,R){const U=Math.max(1,Number(R?.w)||1080),Te=Math.max(1,Number(R?.h)||1920),Fe=ae(Number.isFinite(S?.w)?S.w:8,8,Math.max(8,U)),p=ae(Number.isFinite(S?.h)?S.h:8,8,Math.max(8,Te));return{x:ae(Number.isFinite(S?.x)?S.x:0,0,Math.max(0,U-Fe)),y:ae(Number.isFinite(S?.y)?S.y:0,0,Math.max(0,Te-p)),w:Fe,h:p}}function rt(S){return S?.emoji||"\u2726"}function ze(S,R,U={}){const Fe=(t.getState().overlays??[])[S];!Fe||Fe.type!=="sticker"||t.updateOverlay(S,Jt(Fe,fe(),R),U)}function it(S){if(typeof t.applyMut=="function"){t.applyMut(U=>({...U,overlays:[...on(U.overlays),{...S,timelineTrack:0}]}));return}const R=on(t.getState().overlays);t.commit?.({overlays:[...R,{...S,timelineTrack:0}]})}function xt(S){return new Promise(R=>{const U=new Image;U.onload=()=>R({w:U.naturalWidth||256,h:U.naturalHeight||256}),U.onerror=()=>R({w:256,h:256}),U.src=S})}async function wt(S){const R=fe();let U=ae(qe(),0,Math.max(0,R-je)),Te=Math.min(R,U+qt);Te-U<je&&(U=ae(R-qt,0,Math.max(0,R-je)),Te=Math.max(U+je,R));const Fe=t.getState().canvas??{w:1080,h:1920},p=S.emoji?{w:256,h:256}:await xt(S.src),g=Math.max(96,Math.round(Math.min(Fe.w,Fe.h)*.24)),$=Vr(p.w,p.h,g),de={type:"sticker",x:Math.round((Fe.w-$.w)/2),y:Math.round((Fe.h-$.h)/2),w:$.w,h:$.h,rotation:0,...S.emoji?{emoji:S.emoji}:{src:S.src},...Jt(null,R,{startAt:U,endAt:Te,timelineTrack:0})};it(de);const be=t.getState().overlays??[];C=be.length?be.length-1:null,C!=null&&bt(e,"text",[C]),D(),N(!0)}async function we(S){const R=S?.[0];if(!R||!String(R.type||"").startsWith("image/")&&!/\.(png|jpe?g|webp|svg)$/i.test(R.name||""))return;const U=await new Promise((Te,Fe)=>{const p=new FileReader;p.onload=()=>Te(String(p.result||"")),p.onerror=()=>Fe(p.error||new Error("Failed to read sticker file")),p.readAsDataURL(R)}).catch(()=>"");U&&(F.value="",await wt({src:U}))}function Re(){oe.replaceChildren();for(const S of a){const R=document.createElement("div");R.className="me-video-sticker-library-group";const U=document.createElement("div");U.className="me-video-sticker-library-title",U.textContent=S.title;const Te=document.createElement("div");Te.className="me-video-sticker-grid";for(const Fe of S.items){const p=document.createElement("button");if(p.type="button",p.className="me-video-sticker-card",p.title=Fe.label,p.setAttribute("aria-label",Fe.label),Fe.emoji){const g=document.createElement("span");g.className="me-video-sticker-card-emoji",g.textContent=Fe.emoji,p.appendChild(g)}else if(Fe.src){const g=document.createElement("img");g.src=Fe.src,g.alt=Fe.label,p.appendChild(g)}p.addEventListener("click",()=>{wt(Fe)}),Te.appendChild(p)}R.append(U,Te),oe.appendChild(R)}}function Me(){pe(()=>{const S=e.querySelector(".me-video-toolrail");S&&(Z=S,(!Q||!Q.isConnected)&&(Q=document.createElement("button"),Q.type="button",Q.className="me-video-text-tool",Q.innerHTML=`<span class="me-video-text-tool-icon">\u2726</span><span class="me-video-text-tool-label">${r.tool}</span>`,Q.title=r.tool,Q.setAttribute("aria-label",r.tool),Q.addEventListener("click",()=>{const R=!E;R&&D(),N(R)})),Q.isConnected||Z.appendChild(Q),ee())})}function et(){const{timelineInner:S,timelineHost:R}=Bn(e,t.getState());if(!S||!R){ne?.remove(),ne=null,B&&xe&&(B.unobserve(xe),xe=null),he=null;return}he=S,(!ne||!ne.isConnected||ne.parentElement!==R)&&(ne?.remove(),ne=document.createElement("div"),ne.className="me-video-text-timeline me-video-sticker-timeline me-video-overlay-timeline me-video-sticker-overlay-layer");for(const U of[...R.children])U!==ne&&U instanceof HTMLElement&&U.classList.contains("me-video-sticker-overlay-layer")&&U.remove();(ne.parentElement!==R||R.lastElementChild!==ne)&&R.appendChild(ne),B&&xe!==he&&(xe&&B.unobserve(xe),xe=he,B.observe(he))}function tt(){const S=e.querySelector(".me-video-canvas-stage");if(!S){w?.remove(),w=null,q&&x&&(q.unobserve(x),x=null),te=null;return}te=S,te.style.position="relative",!w||!w.isConnected||w.parentElement!==te?(w?.remove(),w=document.createElement("div"),w.className="me-video-text-canvas-layer me-video-sticker-canvas-layer",w.addEventListener("pointerdown",R=>{R.target===w&&(R.preventDefault(),R.stopPropagation())}),w.addEventListener("click",R=>{R.target===w&&(R.preventDefault(),R.stopPropagation(),C=null,Eo(e),E?N(!1):ut())}),te.appendChild(w)):te.lastElementChild!==w&&te.appendChild(w),q&&x!==te&&(x&&q.unobserve(x),x=te,q.observe(te))}function ht(){if(!te)return null;const R=t.getState().canvas??{},U=Math.max(1,Number(R.w)||0),Te=Math.max(1,Number(R.h)||0);if(!U||!Te)return null;const Fe=te.getBoundingClientRect(),p=te.querySelector("canvas, video, img")||[...te.children].find(ye=>ye!==w)||null;let g=0,$=0,de=te.clientWidth||U,be=te.clientHeight||Te;if(p instanceof HTMLElement){const ye=p.getBoundingClientRect();ye.width>0&&ye.height>0&&(g=ye.left-Fe.left,$=ye.top-Fe.top,de=ye.width,be=ye.height)}if(!(de>0&&be>0)){const ye=te.clientWidth||U,Be=te.clientHeight||Te,Ee=Math.min(ye/U,Be/Te)||1;de=U*Ee,be=Te*Ee,g=Math.max(0,(ye-de)/2),$=Math.max(0,(Be-be)/2)}return{stageLeft:Fe.left,stageTop:Fe.top,left:g,top:$,scaleX:de/U,scaleY:be/Te}}function gt(S,R){const U=lt(S),Te=Bt(S,U);return R>=U-.001&&R<=Te+.001}function ce(S,R,U){const Te=Pt(e,"text",S,R,U);C=Te.length?Te[Te.length-1]:null,N(!0),ut()}function Se(S,R,U){return{x:(S-U.stageLeft-U.left)/U.scaleX,y:(R-U.stageTop-U.top)/U.scaleY}}function Ve(S,R,U){const Te=(t.getState().overlays??[])[S];if(!Te||Te.type!=="sticker")return;const Fe=t.getState().canvas??{w:1080,h:1920},p=Gt(Te);if(!p)return;const g=R.clientX,$=R.clientY,de=Math.max(0,(Number(Fe.w)||0)-p.w),be=Math.max(0,(Number(Fe.h)||0)-p.h),ye=($e,Ne,De)=>{const Qe=($e-g)/U.scaleX,He=(Ne-$)/U.scaleY,Pe=ae(p.x+Qe,0,de),Ue=ae(p.y+He,0,be);t.updateOverlay(S,{x:Pe,y:Ue},De?{transient:!0}:void 0)},Be=$e=>{$e.preventDefault(),ye($e.clientX,$e.clientY,!0)},Ee=$e=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",Ee),window.removeEventListener("pointercancel",Ee),ye($e.clientX,$e.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",Ee),window.addEventListener("pointercancel",Ee)}function Ze(S,R,U,Te){const Fe=(t.getState().overlays??[])[S];if(!Fe||Fe.type!=="sticker")return;const p=Ge(Fe);if(!p)return;const g=t.getState().canvas??{w:1080,h:1920},$=R.x===.5?.5:1-R.x,de=R.y===.5?.5:1-R.y,be=p.x+p.w*$,ye=p.y+p.h*de,Be=Math.max(.1,24/Math.max(24,p.w),24/Math.max(24,p.h)),Ee=R.x===.5?1/0:Math.max(.1,($===0?(Number(g.w)||0)-be:be)/Math.max(1,p.w)),$e=R.y===.5?1/0:Math.max(.1,(de===0?(Number(g.h)||0)-ye:ye)/Math.max(1,p.h)),Ne=Math.max(Be,Math.min(Ee,$e,8)),De=(Pe,Ue,ct)=>{const ft=Se(Pe,Ue,Te),Ke=[];R.x!==.5&&Ke.push(Math.abs(ft.x-be)/Math.max(1,p.w)),R.y!==.5&&Ke.push(Math.abs(ft.y-ye)/Math.max(1,p.h));const nt=Ke.filter(Number.isFinite),ot=nt.length?Math.max(...nt):1,Ot=ae(ot,Be,Ne),Ft={x:be-p.w*Ot*$,y:ye-p.h*Ot*de,w:Math.max(8,p.w*Ot),h:Math.max(8,p.h*Ot)},kt=dt(Ye(Fe,Ft),g);t.updateOverlay(S,{x:kt.x,y:kt.y,w:kt.w,h:kt.h},ct?{transient:!0}:void 0)},Qe=Pe=>{Pe.preventDefault(),De(Pe.clientX,Pe.clientY,!0)},He=Pe=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",He),window.removeEventListener("pointercancel",He),De(Pe.clientX,Pe.clientY,!1)};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",He),window.addEventListener("pointercancel",He)}function at(S,R,U){const Te=(t.getState().overlays??[])[S];if(!Te||Te.type!=="sticker")return;const Fe=Ge(Te);if(!Fe)return;const p=U.stageLeft+U.left+(Fe.x+Fe.w/2)*U.scaleX,g=U.stageTop+U.top+(Fe.y+Fe.h/2)*U.scaleY,$=Math.atan2(R.clientY-g,R.clientX-p),de=un(Te),be=(Ee,$e,Ne,De)=>{const Qe=Math.atan2($e-g,Ee-p);let He=In(de+(Qe-$)*180/Math.PI);De&&(He=Math.round(He/15)*15),t.updateOverlay(S,{rotation:He},Ne?{transient:!0}:void 0)},ye=Ee=>{Ee.preventDefault(),be(Ee.clientX,Ee.clientY,!0,Ee.shiftKey)},Be=Ee=>{window.removeEventListener("pointermove",ye),window.removeEventListener("pointerup",Be),window.removeEventListener("pointercancel",Be),be(Ee.clientX,Ee.clientY,!1,Ee.shiftKey)};window.addEventListener("pointermove",ye),window.addEventListener("pointerup",Be),window.addEventListener("pointercancel",Be)}function Et(S,R){if(tt(),!w)return;w.replaceChildren();const U=ht();if(!U){w.hidden=!0;return}w.hidden=!1;const Te=qe(),Fe=S.map(g=>g.index),p=S.filter(g=>gt(g.overlay,Te));for(const g of p){const $=Ge(g.overlay);if(!$)continue;const de=document.createElement("button");de.type="button",de.className="me-video-text-canvas-hit me-video-sticker-canvas-hit";const be=R.has(g.index),ye=be&&C===g.index;be&&de.classList.add("is-active"),de.title=Je(g.overlay),de.style.left=`${U.left+$.x*U.scaleX}px`,de.style.top=`${U.top+$.y*U.scaleY}px`,de.style.width=`${Math.max(18,$.w*U.scaleX)}px`,de.style.height=`${Math.max(18,$.h*U.scaleY)}px`;const Be=un(g.overlay);if(Be&&(de.style.transform=`rotate(${Be}deg)`,de.style.transformOrigin="center center"),de.addEventListener("pointerdown",Ee=>{if(Ee.preventDefault(),Ee.stopPropagation(),Ee.shiftKey||Ee.ctrlKey||Ee.metaKey){ce(g.index,Ee,Fe);return}C=g.index,bt(e,"text",[g.index]),N(!0),Ve(g.index,Ee,U)}),ye){for(const $e of V){const Ne=document.createElement("span");Ne.className="me-video-text-canvas-handle",Ne.dataset.handle=$e.key,Ne.style.left=`${$e.x*100}%`,Ne.style.top=`${$e.y*100}%`,Ne.addEventListener("pointerdown",De=>{De.preventDefault(),De.stopPropagation(),C=g.index,bt(e,"text",[g.index]),N(!0),Ze(g.index,$e,De,U)}),de.appendChild(Ne)}const Ee=document.createElement("span");Ee.className="me-video-text-canvas-handle",Ee.dataset.handle=X.key,Ee.style.left=`${X.x*100}%`,Ee.style.top=`${X.y*100}%`,Ee.addEventListener("pointerdown",$e=>{$e.preventDefault(),$e.stopPropagation(),C=g.index,bt(e,"text",[g.index]),N(!0),at(g.index,$e,U)}),de.appendChild(Ee)}w.appendChild(de)}}function St(S,R,U){if(!he)return;const Te=(t.getState().overlays??[])[S];if(!Te||Te.type!=="sticker")return;if(U.shiftKey||U.ctrlKey||U.metaKey){U.preventDefault(),U.stopPropagation();const $e=Pt(e,"text",S,U,sr(t.getState()).map(Ne=>Ne.index));C=$e.length?$e[$e.length-1]:null,D(),N(!0);return}U.preventDefault(),U.stopPropagation(),C=S,bt(e,"text",[S]),D(),E||N(!0);const Fe=fe(),p=Math.max(he.clientWidth/Fe,.001),g=lt(Te),$=Bt(Te,g),de=Math.max(je,$-g),be=vt(Te),ye=U.clientX,Be=$e=>{const Ne=($e.clientX-ye)/p,De=t.getState().overlays??[];if(R==="move"){const Pe=Math.max(0,g+Ne),Ue=Pe+de,ct=pt(ne,De,S,Pe,Ue,$e.clientY,be);ze(S,{startAt:Pe,endAt:Ue,timelineTrack:ct},{transient:!0});return}if(R==="start"){const Pe=ae(g+Ne,0,$-je),Ue=pt(ne,De,S,Pe,$,$e.clientY,be);ze(S,{startAt:Pe,endAt:$,timelineTrack:Ue},{transient:!0});return}const Qe=Math.max(g+je,$+Ne),He=pt(ne,De,S,g,Qe,$e.clientY,be);ze(S,{startAt:g,endAt:Qe,timelineTrack:He},{transient:!0})},Ee=$e=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",Ee),window.removeEventListener("pointercancel",Ee);const Ne=($e.clientX-ye)/p,De=t.getState().overlays??[];if(R==="move"){const Pe=Math.max(0,g+Ne),Ue=Pe+de,ct=pt(ne,De,S,Pe,Ue,$e.clientY,be);ze(S,{startAt:Pe,endAt:Ue,timelineTrack:ct});return}if(R==="start"){const Pe=ae(g+Ne,0,$-je),Ue=pt(ne,De,S,Pe,$,$e.clientY,be);ze(S,{startAt:Pe,endAt:$,timelineTrack:Ue});return}const Qe=Math.max(g+je,$+Ne),He=pt(ne,De,S,g,Qe,$e.clientY,be);ze(S,{startAt:g,endAt:Qe,timelineTrack:He})};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",Ee),window.addEventListener("pointercancel",Ee),ut()}function Rt(S,R){if(et(),!ne||!he||(ne.replaceChildren(),ne.hidden=S.length===0,!S.length))return;const U=fe(),Te=he.clientWidth/U,Fe=Rn(t.getState()),p=new Map;for(const g of S){const $=vt(g.overlay),de=Fe.get($)??$;let be=p.get($);be||(be=document.createElement("div"),be.className="me-video-overlay-track-row",be.dataset.track=String($),be.style.top=`${Ln(de)}px`,p.set($,be),ne.appendChild(be));const ye=document.createElement("div");ye.className="me-video-text-track-clip me-video-sticker-track-clip",R.has(g.index)&&ye.classList.add("is-active");const Be=lt(g.overlay),Ee=Sn(g.overlay);ye.style.left=`${Be*Te}px`,ye.style.width=`${Math.max(36,Ee*Te)}px`;const $e=document.createElement("span");$e.className="me-video-text-track-icon",$e.textContent=rt(g.overlay);const Ne=document.createElement("span");Ne.className="me-video-text-track-label",Ne.textContent=Je(g.overlay),Ne.title=Ne.textContent;const De=document.createElement("span");De.className="me-video-text-track-handle is-start";const Qe=document.createElement("span");Qe.className="me-video-text-track-handle is-end",ye.append($e,Ne,De,Qe),ye.addEventListener("pointerdown",He=>St(g.index,"move",He)),De.addEventListener("pointerdown",He=>St(g.index,"start",He)),Qe.addEventListener("pointerdown",He=>St(g.index,"end",He)),ye.addEventListener("click",He=>{if(He.preventDefault(),He.stopPropagation(),He.shiftKey||He.ctrlKey||He.metaKey){D(),ut();return}const Pe=Pt(e,"text",g.index,He,S.map(Ue=>Ue.index));C=Pe.length?Pe[Pe.length-1]:null,D(),N(!0),ut()}),be.appendChild(ye)}}function ut(){pe(()=>{Me();const S=b().find(Te=>Te.classList.contains("is-active"))??null;E&&S&&S!==ie&&S!==Q&&(D(),se());const R=sr(t.getState());K(R);const U=new Set(ur(e,t.getState()));Rt(R,U),Et(R,U),_(),ee()}),Oe()}function It(S){return!!S&&(S===s||s.contains(S)||S===Q||Q?.contains?.(S)||S===ne||ne?.contains?.(S)||S===w||w?.contains?.(S))}function Lt(S){return S.some(R=>{if(!It(R.target))return!0;for(const U of R.addedNodes)if(!It(U))return!0;for(const U of R.removedNodes)if(!It(U))return!0;return!1})}const jt=new MutationObserver(S=>{O||e.__meVideoEnhancerObserverLock||Lt(S)&&(Me(),se())}),At=S=>{S?.detail?.id!==Y&&E&&(E=!1,ut())},Mt=()=>{ut()},mt=S=>{const R=S.target;if(!(R instanceof Node)||!Q||!Q.contains(R))return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation?.();const U=!E;U&&(D(),se()),N(U)};jt.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",At),e.addEventListener(zt,Mt),e.addEventListener("click",mt,!0),window.addEventListener("resize",ee);const Ut=t.subscribe(()=>{ut()});return F.addEventListener("change",()=>{we(F.files)}),k.addEventListener("dragenter",S=>{S.preventDefault(),k.classList.add("is-dragover")}),k.addEventListener("dragover",S=>{S.preventDefault(),k.classList.add("is-dragover")}),k.addEventListener("dragleave",S=>{S.target===k&&k.classList.remove("is-dragover")}),k.addEventListener("drop",S=>{S.preventDefault(),k.classList.remove("is-dragover"),we(S.dataTransfer?.files)}),Re(),Me=function(){pe(()=>{const S=e.querySelector(".me-video-toolrail");if(!S)return;Z=S;const R=b(Z);ie=Le(R),Q=ve(R),Ie(),ee()})},Me(),ut(),{destroy(){jt.disconnect(),B&&xe&&B.unobserve(xe),q&&x&&q.unobserve(x),Ut(),e.removeEventListener("me-video-inspector-open",At),e.removeEventListener(zt,Mt),e.removeEventListener("click",mt,!0),window.removeEventListener("resize",ee),E=!1,Ie(),ne?.remove(),w?.remove(),s.remove(),Ht(e)}}}function aa(e,t,n){Qt(),kn();const r=Ao(n()),a=_i(r),s=new Map(a.map(p=>[String(p.id??""),p])),u=a.find(p=>p.id)?.id??"",f=document.createElement("div");f.className="me-video-text-panel me-video-color-panel me-video-filter-panel",f.hidden=!0,e.appendChild(f);const v=document.createElement("div");v.className="me-video-text-toolbar";const k=document.createElement("strong");k.textContent=r.filterTitle;const H=Yt(r.reset);v.append(k,H);const G=Kt(r.presets),T=document.createElement("div");T.className="me-video-color-grid",G.body.appendChild(T);const F=a.map(p=>{const g=document.createElement("button");g.type="button",g.className="me-video-color-card",g.dataset.presetId=p.id??"";const $=document.createElement("div");$.className="me-video-color-preview",$.style.filter=p.css||"none";const de=document.createElement("img");de.alt="",de.draggable=!1,de.hidden=!0,$.appendChild(de);const be=document.createElement("div");return be.className="me-video-color-card-title",be.textContent=p.label,g.append($,be),T.appendChild(g),{entry:p,buttonEl:g,previewImage:de}});f.append(v,G.section);let j=null,oe=null,Q=null,Z=null,ie=null,he=null,ne=null,xe=null,te=null,w=null,x=null,E=null,C=!1,y=null,O=!1,Y=!1,L="";const B="filter",q=typeof requestAnimationFrame=="function"?requestAnimationFrame:p=>setTimeout(p,16),V=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>b()),X=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>b()),re=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],pe={key:"rotate",x:.5,y:0};function se(){Promise.resolve().then(()=>{Y=!1;const p=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,p-1)})}function N(p){Y=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return p()}finally{se()}}function b(){O||(O=!0,q(()=>{O=!1,Mt()}))}function le(p=oe){return p?[...p.children].filter(g=>g instanceof HTMLButtonElement&&g!==Z&&!g.classList.contains("me-video-text-tool")):[]}function Le(p){const g=[r.filterTool,r.filterTitle,"filter","filters","\u6EE4\u955C","\u6FFE\u93E1"].map($=>String($??"").trim().toLowerCase()).filter(Boolean);return p.find($=>{const de=Io($);return g.some(be=>de.includes(be))})??p[3]??null}function ve(){Q&&(Q.classList.contains("is-active")||Q.click())}function Ie(){rn(e,f),Ht(e)}function D(p){const g=!!p;if(g===C){Mt();return}C=g,C&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:B}})),Mt()}function ee(){if(j?.classList.toggle("is-active",C),!!Q&&C){Q.classList.remove("is-active");return}}function _(){f.hidden=!C,ee(),Ie()}function K(){const p=t.getState().overlays??[];if(y==null)return null;const g=p[y];return g?.type==="filter"?g:null}function fe(){return Tn(t)}function qe(){return yn(e)}function Oe(){if(!t.history?.present)return;const p=qe(),g=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(g)?g:-1)-p)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:p}},typeof t.emit=="function"&&t.emit())}function Je(p){if(!p.length){y=null;return}const g=mr(e,t.getState());y=g.length?g[g.length-1]:null}function Ge(p){return String(p?.filterPreset??"").trim()}function Ye(p){return s.get(Ge(p))??null}function dt(p){return Ye(p)?.css||"none"}function rt(p){return Ye(p)?.label||r.filterTitle}function ze(p){const g=Number(p?.w),$=Number(p?.h);return!(g>0)||!($>0)?null:{x:Number(p?.x)||0,y:Number(p?.y)||0,w:Math.max(48,g),h:Math.max(48,$)}}function it(p,g){const $=ze(p);if(!$)return p;const de=Math.max(.1,Number(g)||1);return{...p,w:Math.max(48,$.w*de),h:Math.max(48,$.h*de)}}function xt(p,g,$={}){const be=(t.getState().overlays??[])[p];!be||be.type!=="filter"||t.updateOverlay(p,Jt(be,fe(),g),$)}function wt(p,g){y!=null&&t.updateOverlay(y,p,g)}function we(p){if(typeof t.applyMut=="function"){t.applyMut($=>({...$,overlays:[...on($.overlays),{...p,timelineTrack:0}]}));return}const g=on(t.getState().overlays);t.commit?.({overlays:[...g,{...p,timelineTrack:0}]})}function Re(p=u){const g=t.getState().canvas??{w:1080,h:1920},$=ae(Math.round((Number(g.w)||1080)*.68),180,Math.max(180,(Number(g.w)||1080)-48)),de=ae(Math.round((Number(g.h)||1920)*.3),120,Math.max(120,(Number(g.h)||1920)-48));return{type:"filter",x:Math.round(((Number(g.w)||1080)-$)/2),y:Math.round(((Number(g.h)||1920)-de)/2),w:$,h:de,rotation:0,filterPreset:p||void 0}}function Me(p=u){const g=fe();let $=ae(qe(),0,Math.max(0,g-je)),de=Math.min(g,$+qt);de-$<je&&($=ae(g-qt,0,Math.max(0,g-je)),de=Math.max($+je,g));const be={...Re(p),...Jt(null,g,{startAt:$,endAt:de,timelineTrack:0})};we(be);const ye=t.getState().overlays??[];y=ye.length?ye.length-1:null,y!=null&&bt(e,"text",[y]),ht(!0),ve(),D(!0)}function et(p){if(!K()){Me(p);return}wt({filterPreset:p||void 0}),D(!0)}function tt(p){if(p){if(!L){p.hidden=!0,p.removeAttribute("src");return}p.src!==L&&(p.src=L),p.hidden=!1}}function ht(p=!1){if(L&&!p)return;const g=Vi(e);g&&(g===L&&!p||(L=g,F.forEach(({previewImage:$})=>tt($))))}function gt(){K()&&wt({filterPreset:void 0})}function ce(){N(()=>{const p=e.querySelector(".me-video-toolrail");if(!p)return;oe=p;const g=le(oe);Q=io(g),ie=Le(g),ie?(Z?.remove(),j=ie):((!Z||!Z.isConnected)&&(Z=document.createElement("button"),Z.type="button",Z.className="me-video-text-tool me-video-filter-tool",Z.innerHTML=`<span class="me-video-text-tool-icon">\u25A3</span><span class="me-video-text-tool-label">${r.filterTool}</span>`),Z.title=r.filterTool,Z.setAttribute("aria-label",r.filterTool),Z.isConnected?ie?.parentElement===oe&&Z.nextSibling!==ie&&oe.insertBefore(Z,ie):ie?.parentElement===oe?oe.insertBefore(Z,ie):oe.appendChild(Z),j=Z),j?.setAttribute?.("title",r.filterTool),j?.setAttribute?.("aria-label",r.filterTool),ee(),Ie()})}function Se(){const{timelineInner:p,timelineHost:g}=Bn(e,t.getState());if(!p||!g){ne?.remove(),ne=null,V&&xe&&(V.unobserve(xe),xe=null),he=null;return}he=p,(!ne||!ne.isConnected||ne.parentElement!==g)&&(ne?.remove(),ne=document.createElement("div"),ne.className="me-video-text-timeline me-video-overlay-timeline me-video-filter-overlay-layer");for(const $ of[...g.children])$!==ne&&$ instanceof HTMLElement&&$.classList.contains("me-video-filter-overlay-layer")&&$.remove();(ne.parentElement!==g||g.lastElementChild!==ne)&&g.appendChild(ne),V&&xe!==he&&(xe&&V.unobserve(xe),xe=he,V.observe(he))}function Ve(){const p=e.querySelector(".me-video-canvas-stage");if(!p){w?.remove(),w=null,x?.remove(),x=null,X&&E&&(X.unobserve(E),E=null),te=null;return}te=p,te.style.position="relative",(!w||!w.isConnected||w.parentElement!==te)&&(w?.remove(),w=document.createElement("div"),w.className="me-video-filter-effect-layer",te.appendChild(w)),(!x||!x.isConnected||x.parentElement!==te)&&(x?.remove(),x=document.createElement("div"),x.className="me-video-filter-control-layer",te.appendChild(x)),te.lastElementChild!==x&&te.appendChild(x),X&&E!==te&&(E&&X.unobserve(E),E=te,X.observe(te))}function Ze(){if(!te)return null;const g=t.getState().canvas??{},$=Math.max(1,Number(g.w)||0),de=Math.max(1,Number(g.h)||0);if(!$||!de)return null;const be=te.getBoundingClientRect(),ye=te.querySelector("canvas, video, img")||[...te.children].find(De=>De!==w&&De!==x)||null;let Be=0,Ee=0,$e=te.clientWidth||$,Ne=te.clientHeight||de;if(ye instanceof HTMLElement){const De=ye.getBoundingClientRect();De.width>0&&De.height>0&&(Be=De.left-be.left,Ee=De.top-be.top,$e=De.width,Ne=De.height)}if(!($e>0&&Ne>0)){const De=te.clientWidth||$,Qe=te.clientHeight||de,He=Math.min(De/$,Qe/de)||1;$e=$*He,Ne=de*He,Be=Math.max(0,(De-$e)/2),Ee=Math.max(0,(Qe-Ne)/2)}return{stageLeft:be.left,stageTop:be.top,left:Be,top:Ee,scaleX:$e/$,scaleY:Ne/de}}function at(p,g){const $=lt(p),de=Bt(p,$);return g>=$-.001&&g<=de+.001}function Et(p,g,$){const de=Pt(e,"text",p,g,$);y=de.length?de[de.length-1]:null,D(!0),Mt()}function St(p,g,$){return{x:(p-$.stageLeft-$.left)/$.scaleX,y:(g-$.stageTop-$.top)/$.scaleY}}function Rt(p,g,$){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const be=t.getState().canvas??{w:1080,h:1920},ye=ze(de);if(!ye)return;const Be=g.clientX,Ee=g.clientY,$e=Math.max(0,(Number(be.w)||0)-ye.w),Ne=Math.max(0,(Number(be.h)||0)-ye.h),De=(Pe,Ue,ct)=>{const ft=(Pe-Be)/$.scaleX,Ke=(Ue-Ee)/$.scaleY,nt=ae(ye.x+ft,0,$e),ot=ae(ye.y+Ke,0,Ne);t.updateOverlay(p,{x:nt,y:ot},ct?{transient:!0}:void 0)},Qe=Pe=>{Pe.preventDefault(),De(Pe.clientX,Pe.clientY,!0)},He=Pe=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",He),window.removeEventListener("pointercancel",He),De(Pe.clientX,Pe.clientY,!1)};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",He),window.addEventListener("pointercancel",He)}function ut(p,g,$,de){const be=(t.getState().overlays??[])[p];if(!be||be.type!=="filter")return;const ye=ze(be);if(!ye)return;const Be=t.getState().canvas??{w:1080,h:1920},Ee=g.x===.5?.5:1-g.x,$e=g.y===.5?.5:1-g.y,Ne=ye.x+ye.w*Ee,De=ye.y+ye.h*$e,Qe=Math.max(.1,48/Math.max(48,ye.w),48/Math.max(48,ye.h)),He=g.x===.5?1/0:Math.max(.1,(Ee===0?(Number(Be.w)||0)-Ne:Ne)/Math.max(1,ye.w)),Pe=g.y===.5?1/0:Math.max(.1,($e===0?(Number(Be.h)||0)-De:De)/Math.max(1,ye.h)),Ue=Math.max(Qe,Math.min(He,Pe,8)),ct=(nt,ot,Ot)=>{const Ft=St(nt,ot,de),kt=[];g.x!==.5&&kt.push(Math.abs(Ft.x-Ne)/Math.max(1,ye.w)),g.y!==.5&&kt.push(Math.abs(Ft.y-De)/Math.max(1,ye.h));const ln=kt.length?Math.max(...kt):1,an=ae(ln,Qe,Ue),en=it(be,an),Ct=ze(en);if(!Ct)return;const tn=Ne-Ct.w*Ee,m=De-Ct.h*$e;t.updateOverlay(p,{x:tn,y:m,w:Ct.w,h:Ct.h},Ot?{transient:!0}:void 0)},ft=nt=>{nt.preventDefault(),ct(nt.clientX,nt.clientY,!0)},Ke=nt=>{window.removeEventListener("pointermove",ft),window.removeEventListener("pointerup",Ke),window.removeEventListener("pointercancel",Ke),ct(nt.clientX,nt.clientY,!1)};window.addEventListener("pointermove",ft),window.addEventListener("pointerup",Ke),window.addEventListener("pointercancel",Ke)}function It(p,g,$){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const be=ze(de);if(!be)return;const ye=$.stageLeft+$.left+(be.x+be.w/2)*$.scaleX,Be=$.stageTop+$.top+(be.y+be.h/2)*$.scaleY,Ee=Math.atan2(g.clientY-Be,g.clientX-ye),$e=un(de),Ne=(He,Pe,Ue,ct)=>{const ft=Math.atan2(Pe-Be,He-ye);let Ke=In($e+(ft-Ee)*180/Math.PI);ct&&(Ke=Math.round(Ke/15)*15),t.updateOverlay(p,{rotation:Ke},Ue?{transient:!0}:void 0)},De=He=>{He.preventDefault(),Ne(He.clientX,He.clientY,!0,He.shiftKey)},Qe=He=>{window.removeEventListener("pointermove",De),window.removeEventListener("pointerup",Qe),window.removeEventListener("pointercancel",Qe),Ne(He.clientX,He.clientY,!1,He.shiftKey)};window.addEventListener("pointermove",De),window.addEventListener("pointerup",Qe),window.addEventListener("pointercancel",Qe)}function Lt(p,g){if(Ve(),!w||!x)return;if(w.replaceChildren(),x.replaceChildren(),!Ze()){w.hidden=!0,x.hidden=!0;return}x.hidden=!0;const de=qe();if(!p.filter(ye=>at(ye.overlay,de)).length){w.hidden=!0;return}w.hidden=!0}function jt(p,g,$){if(!he)return;const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;if($.shiftKey||$.ctrlKey||$.metaKey){$.preventDefault(),$.stopPropagation();const Pe=Pt(e,"text",p,$,lr(t.getState()).map(Ue=>Ue.index));y=Pe.length?Pe[Pe.length-1]:null,ve(),D(!0);return}$.preventDefault(),$.stopPropagation(),y=p,bt(e,"text",[p]),ve(),C||D(!0);const be=fe(),ye=Math.max(he.clientWidth/be,.001),Be=lt(de),Ee=Bt(de,Be),$e=Math.max(je,Ee-Be),Ne=vt(de),De=$.clientX,Qe=Pe=>{const Ue=(Pe.clientX-De)/ye,ct=t.getState().overlays??[];if(g==="move"){const nt=Math.max(0,Be+Ue),ot=nt+$e,Ot=pt(ne,ct,p,nt,ot,Pe.clientY,Ne);xt(p,{startAt:nt,endAt:ot,timelineTrack:Ot},{transient:!0});return}if(g==="start"){const nt=ae(Be+Ue,0,Ee-je),ot=pt(ne,ct,p,nt,Ee,Pe.clientY,Ne);xt(p,{startAt:nt,endAt:Ee,timelineTrack:ot},{transient:!0});return}const ft=Math.max(Be+je,Ee+Ue),Ke=pt(ne,ct,p,Be,ft,Pe.clientY,Ne);xt(p,{startAt:Be,endAt:ft,timelineTrack:Ke},{transient:!0})},He=Pe=>{window.removeEventListener("pointermove",Qe),window.removeEventListener("pointerup",He),window.removeEventListener("pointercancel",He);const Ue=(Pe.clientX-De)/ye,ct=t.getState().overlays??[];if(g==="move"){const nt=Math.max(0,Be+Ue),ot=nt+$e,Ot=pt(ne,ct,p,nt,ot,Pe.clientY,Ne);xt(p,{startAt:nt,endAt:ot,timelineTrack:Ot});return}if(g==="start"){const nt=ae(Be+Ue,0,Ee-je),ot=pt(ne,ct,p,nt,Ee,Pe.clientY,Ne);xt(p,{startAt:nt,endAt:Ee,timelineTrack:ot});return}const ft=Math.max(Be+je,Ee+Ue),Ke=pt(ne,ct,p,Be,ft,Pe.clientY,Ne);xt(p,{startAt:Be,endAt:ft,timelineTrack:Ke})};window.addEventListener("pointermove",Qe),window.addEventListener("pointerup",He),window.addEventListener("pointercancel",He),Mt()}function At(p,g){if(Se(),!ne||!he||(ne.replaceChildren(),ne.hidden=p.length===0,!p.length))return;const $=fe(),de=he.clientWidth/$,be=Rn(t.getState()),ye=new Map;for(const Be of p){const Ee=vt(Be.overlay),$e=be.get(Ee)??Ee;let Ne=ye.get(Ee);Ne||(Ne=document.createElement("div"),Ne.className="me-video-overlay-track-row",Ne.dataset.track=String(Ee),Ne.style.top=`${Ln($e)}px`,ye.set(Ee,Ne),ne.appendChild(Ne));const De=document.createElement("div");De.className="me-video-text-track-clip me-video-filter-track-clip",g.has(Be.index)&&De.classList.add("is-active");const Qe=lt(Be.overlay),He=Sn(Be.overlay);De.style.left=`${Qe*de}px`,De.style.width=`${Math.max(36,He*de)}px`;const Pe=document.createElement("span");Pe.className="me-video-text-track-icon",Pe.textContent="Fx";const Ue=document.createElement("span");Ue.className="me-video-text-track-label",Ue.textContent=rt(Be.overlay),Ue.title=Ue.textContent;const ct=document.createElement("span");ct.className="me-video-text-track-handle is-start";const ft=document.createElement("span");ft.className="me-video-text-track-handle is-end",De.append(Pe,Ue,ct,ft),De.addEventListener("pointerdown",Ke=>jt(Be.index,"move",Ke)),ct.addEventListener("pointerdown",Ke=>jt(Be.index,"start",Ke)),ft.addEventListener("pointerdown",Ke=>jt(Be.index,"end",Ke)),De.addEventListener("click",Ke=>{if(Ke.preventDefault(),Ke.stopPropagation(),Ke.shiftKey||Ke.ctrlKey||Ke.metaKey){ve(),Mt();return}const nt=Pt(e,"text",Be.index,Ke,p.map(ot=>ot.index));y=nt.length?nt[nt.length-1]:null,ve(),D(!0),Mt()}),Ne.appendChild(De)}}function Mt(){N(()=>{ce(),ht();const p=lr(t.getState());Je(p);const g=new Set(mr(e,t.getState()));At(p,g),Lt(p,g);const $=Ge(K());F.forEach(({entry:de,buttonEl:be,previewImage:ye})=>{be.classList.toggle("is-active",String(de.id??"")===$),tt(ye)}),H.disabled=!$,_(),Ie()}),Oe()}function mt(p){return!!p&&(p===f||f.contains(p)||p===j||j?.contains?.(p)||p===Z||Z?.contains?.(p)||p===ne||ne?.contains?.(p)||p===w||w?.contains?.(p)||p===x||x?.contains?.(p))}function Ut(p){return p.some(g=>{if(!mt(g.target))return!0;for(const $ of g.addedNodes)if(!mt($))return!0;for(const $ of g.removedNodes)if(!mt($))return!0;return!1})}const S=new MutationObserver(p=>{Y||e.__meVideoEnhancerObserverLock||Ut(p)&&(ce(),b())}),R=p=>{const g=p.target;!(g instanceof Node)||!j||!j.contains(g)||(p.preventDefault(),p.stopPropagation(),p.stopImmediatePropagation?.(),Me(u))},U=p=>{p?.detail?.id!==B&&C&&(C=!1,Mt())},Te=()=>{Mt()};S.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",U),e.addEventListener(zt,Te),e.addEventListener("click",R,!0),window.addEventListener("resize",Ie);const Fe=t.subscribe(()=>{Mt()});return F.forEach(({entry:p,buttonEl:g})=>{g.addEventListener("click",()=>{et(p.id||"")})}),H.addEventListener("click",()=>{gt()}),ce(),Mt(),{destroy(){S.disconnect(),V&&xe&&V.unobserve(xe),X&&E&&X.unobserve(E),Fe(),e.removeEventListener("me-video-inspector-open",U),e.removeEventListener(zt,Te),e.removeEventListener("click",R,!0),window.removeEventListener("resize",Ie),Z?.remove(),ne?.remove(),w?.remove(),x?.remove(),f.remove(),Ht(e)}}}function sa(e,t,n,r){Qt();const a=Ao(r()),s=Kr(r()),u=Sr(a),f=document.createElement("div");f.className="me-video-text-panel me-video-color-panel me-video-effects-panel",f.hidden=!0,e.appendChild(f);const v=document.createElement("div");v.className="me-video-text-toolbar";const k=document.createElement("strong");k.textContent=s.title;const H=Yt(a.reset),G=Yt(s.close);v.append(k,H,G),f.appendChild(v);const T=document.createElement("p");T.className="me-video-text-hint",T.textContent=s.hint,f.appendChild(T);const F=u.map(D=>{const ee=Kt(D.title),_=D.items.map(K=>{const fe=document.createElement("div");fe.className="me-video-color-slider-control";const qe=document.createElement("span");qe.className="me-video-color-slider-value";const Oe=document.createElement("input");return Oe.type="range",Oe.min=String(K.min),Oe.max=String(K.max),Oe.step="0.02",Oe.dataset.adjustment=K.key,fe.append(qe,Oe),ee.body.appendChild(Tt(K.label,fe)),{...K,value:qe,range:Oe}});return f.appendChild(ee.section),{...D,controls:_}});let j=null,oe=null,Q=null,Z=null,ie=!1,he=!1,ne=!1;const xe="effects",te=typeof requestAnimationFrame=="function"?requestAnimationFrame:D=>setTimeout(D,16);function w(){Promise.resolve().then(()=>{ne=!1;const D=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,D-1)})}function x(D){ne=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return D()}finally{w()}}function E(){he||(he=!0,te(()=>{he=!1,pe()}))}function C(D=oe){return D?[...D.children].filter(ee=>ee instanceof HTMLButtonElement&&ee!==j&&!ee.classList.contains("me-video-text-tool")):[]}function y(){Z&&(Z.isConnected&&(Z.style.display=Z.dataset.meTrimDisplay??"",Z.hidden=Z.dataset.meTrimHidden==="true",delete Z.dataset.meTrimDisplay,delete Z.dataset.meTrimHidden),Z=null)}function O(D){if(!D){y();return}Z!==D&&(y(),D.classList.remove("is-active"),D.dataset.meTrimDisplay=D.style.display??"",D.dataset.meTrimHidden=D.hidden?"true":"false",D.hidden=!0,D.style.display="none",Z=D)}function Y(){if(Q&&!Q.classList.contains("is-active")){Q.click();return}const D=C()[0];D&&!D.classList.contains("is-active")&&D.click()}function L(D){if(!j||!(D instanceof HTMLButtonElement))return;const ee=D.getAttribute("style");ee?j.setAttribute("style",ee):j.removeAttribute("style"),j.hidden=!1,j.style.display=""}function B(){j&&(j.dataset.theme=Kn(n()))}function q(){rn(e,f),Ht(e)}function V(D){const ee=!!D;if(ee===ie){pe();return}ie=ee,ie&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:xe}})),pe()}function X(){if(j?.classList.toggle("is-active",ie),!!Q&&ie){Q.classList.remove("is-active");return}}function re(){f.hidden=!ie,X(),q()}function pe(){x(()=>{C().find(K=>K!==Q&&!K.hidden&&K.style.display!=="none"&&K.classList.contains("is-active"))&&(ie=!1),ie&&Y();const ee=t.getState().filters??{},_=Ho.some(K=>Math.abs(Number(ee[K])||0)>1e-4);F.forEach(K=>{K.controls.forEach(fe=>{const qe=ae(Number(ee[fe.key])||0,fe.min,fe.max);fe.range.value=String(qe),fe.value.textContent=Lr(qe,fe.format)})}),H.disabled=!_,re(),B()})}function se(){x(()=>{const D=e.querySelector(".me-video-toolrail");if(!D)return;oe=D;const ee=C(oe);Q=io(ee),O(Q);const _=Q??ee[0]??null;(!j||!j.isConnected)&&(j=document.createElement("button"),j.type="button",j.className="me-video-text-tool me-video-effects-tool",j.innerHTML=`<span class="me-video-text-tool-icon">${Zr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`),j.setAttribute("title",s.tool),j.setAttribute("aria-label",s.tool),L(_),j.isConnected?_?.parentElement===oe&&j.nextSibling!==_&&oe.insertBefore(j,_):_?.parentElement===oe?oe.insertBefore(j,_):oe.appendChild(j),B(),X(),q()})}function N(D){return!!D&&(D===f||f.contains(D)||D===j||j?.contains?.(D))}function b(D){return D.some(ee=>{if(!N(ee.target))return!0;for(const _ of ee.addedNodes)if(!N(_))return!0;for(const _ of ee.removedNodes)if(!N(_))return!0;return!1})}const le=new MutationObserver(D=>{ne||e.__meVideoEnhancerObserverLock||b(D)&&(se(),E())}),Le=D=>{D?.detail?.id!==xe&&ie&&(ie=!1,pe())},ve=D=>{const ee=D.target;if(!(ee instanceof Node)||!j||!j.contains(ee))return;D.preventDefault(),D.stopPropagation(),D.stopImmediatePropagation?.();const _=!ie;_&&Y(),V(_)};le.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",Le),e.addEventListener("click",ve,!0),window.addEventListener("resize",E);const Ie=t.subscribe(()=>{E()});return F.forEach(D=>{D.controls.forEach(ee=>{ee.range.addEventListener("input",()=>{const _=ae(Number(ee.range.value)||0,ee.min,ee.max);ee.value.textContent=Lr(_,ee.format),t.setFilter(ee.key,_,{transient:!0})}),ee.range.addEventListener("change",()=>{const _=ae(Number(ee.range.value)||0,ee.min,ee.max);t.setFilter(ee.key,_)})})}),H.addEventListener("click",()=>{Di(t)}),G.addEventListener("click",()=>{V(!1)}),se(),pe(),{destroy(){le.disconnect(),Ie(),e.removeEventListener("me-video-inspector-open",Le),e.removeEventListener("click",ve,!0),window.removeEventListener("resize",E),y(),j?.remove(),f.remove(),Ht(e)}}}function la(e,t,n,r){Qt(),kn();const a=Ao(r()),s=Gr(r()),u=Sr(a),f=new Set(["brightness","contrast","saturation","temperature","tint","vibrance","gamma","highlights","shadows","whites","blacks","lightSense"]);function v(l,d,o){return l==="percent"?{min:(1+d)*100,max:(1+o)*100}:{min:d*100,max:o*100}}function k(l,d){const o=Number(l)||0;return d==="percent"?(1+o)*100:o*100}function H(l,d){const o=Number(l)||0;return d==="percent"?o/100-1:o/100}function G(l,d){const o=Math.round(k(l,d)*10)/10;return Number.isInteger(o),String(o)}function T(l,d){let o=Math.abs(Math.round(Number(l)||0)),i=Math.abs(Math.round(Number(d)||0));for(;i;){const c=o%i;o=i,i=c}return o||1}function F(l){const d=Math.max(1,Vt(l?.w??0)),o=Math.max(1,Vt(l?.h??0)),i=T(d,o);return`${d/i}:${o/i}`}function j(l){const d=Number(l);if(!(d>0))return s.notAvailable;const o=["B","KB","MB","GB","TB"];let i=d,c=0;for(;i>=1024&&c<o.length-1;)i/=1024,c+=1;const h=i>=100||c===0?0:i>=10?1:2;return`${i.toFixed(h)} ${o[c]}`}function oe(l){const d=Number(l);return d>0?`${d.toFixed(2)} fps`:s.notAvailable}function Q(l,d){const o=Number(l),i=Number(d);if(!(o>0)||!(i>0))return s.notAvailable;const c=o*8/i;return c>=1e6?`${(c/1e6).toFixed(2)} Mbps`:c>=1e3?`${Math.round(c/1e3)} Kbps`:`${Math.round(c)} bps`}function Z(l){const d=String(l?.file?.type||l?.type||l?.mime||"").trim();if(d.includes("/"))return d.split("/").pop().toUpperCase();const i=String(l?.file?.name||l?.name||"").trim().match(/\.([a-z0-9]+)$/i);return i?i[1].toUpperCase():s.notAvailable}function ie(l){return String(l?.codec||l?.videoCodec||l?.codecName||l?.encoding||"").trim()||s.notAvailable}function he(l){const d=Math.max(0,Math.round(Number(l?.width??l?.dims?.w)||0)),o=Math.max(0,Math.round(Number(l?.height??l?.dims?.h)||0));return!(d>0)||!(o>0)?s.notAvailable:`${d} x ${o} px`}function ne(){const d=t.getState().clips??[],o=_t(e,"video").filter(I=>!!d[I]),c=(d[o[o.length-1]]??d[0]??null)?.srcIdx??0;return{source:(typeof t.getVideoSource=="function"?t.getVideoSource(c):null)??t.videoSources?.[c]??t.videoSources?.[0]??null,sourceIndex:c}}function xe(){const l=t.getState(),{source:d,sourceIndex:o}=ne(),i=l.canvas??{w:1080,h:1920},c=Yn(l),h=Number(d?.frameRate??d?.fps)||30,I=Number(d?.duration)||Me()||0,A=Number(d?.file?.size??d?.size)||0;return{videoName:String(d?.file?.name||d?.name||"").trim()||(d?`video-${o+1}`:s.notAvailable),ratio:F(c),canvasSize:On(i),resolution:On(c),frameRate:oe(h),bitrate:Q(A,I),format:Z(d),fileSize:j(A),codec:ie(d),sourceSize:he(d),videoLength:mn(Me())}}const te=document.createElement("div");te.className="me-video-text-panel me-video-color-panel me-video-effects-panel me-video-feature-one-panel",te.hidden=!0,e.appendChild(te);const w=document.createElement("div");w.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=s.title;const E=Yt(a.reset);w.append(x,E);const C=document.createElement("p");C.className="me-video-text-hint",C.textContent=s.hint;const y=document.createElement("div");y.className="me-video-text-empty",y.textContent=s.placeholder;const O=document.createElement("div");O.className="me-video-text-panel me-video-feature-one-info-panel",O.hidden=!0,e.appendChild(O);const Y=document.createElement("div");Y.className="me-video-text-toolbar";const L=document.createElement("strong");L.textContent=s.videoInfoTitle,Y.append(L);const B=Kt(s.videoInfoTitle);B.section.classList.add("me-video-feature-one-meta-section"),B.title.remove();const q=[{key:"videoName",label:s.videoName},{key:"ratio",label:s.ratio},{key:"canvasSize",label:s.canvasSize},{key:"resolution",label:s.resolution},{key:"frameRate",label:s.frameRate},{key:"bitrate",label:s.bitrate},{key:"format",label:s.format},{key:"fileSize",label:s.fileSize},{key:"codec",label:s.codec},{key:"sourceSize",label:s.sourceSize},{key:"videoLength",label:s.videoLength}].map(l=>{const d=document.createElement("div");return d.className="me-video-feature-one-meta-value",B.body.appendChild(Tt(l.label,d)),{...l,valueEl:d}});te.append(w,C,y),O.append(Y,B.section);const V=u.map(l=>{const d=Kt(l.title),o=l.items.map(i=>{const c=v(i.format,i.min,i.max),h=document.createElement("div");h.className="me-video-color-slider-control me-video-color-number-control";const I=document.createElement("input");I.type="range",I.min=String(i.min),I.max=String(i.max),I.step="0.01",I.dataset.adjustment=i.key;const A=document.createElement("input");return A.type="number",A.min=String(c.min),A.max=String(c.max),A.step="1",A.inputMode="decimal",A.dataset.adjustment=i.key,h.append(I,A),d.body.appendChild(Tt(i.label,h)),{...i,range:I,input:A,displayMin:c.min,displayMax:c.max}});return te.appendChild(d.section),{...l,section:d.section,controls:o}});let X=null,re=null,pe=null,se=null,N=null,b=null,le=null,Le=null,ve=null,Ie=null,D=null,ee=!1,_=null,K=!1,fe=!1;const qe="adjust",Oe=typeof requestAnimationFrame=="function"?requestAnimationFrame:l=>setTimeout(l,16),Je=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>it()),Ge=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>it()),Ye=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"mr",x:1,y:.5},{key:"br",x:1,y:1},{key:"bm",x:.5,y:1},{key:"bl",x:0,y:1},{key:"ml",x:0,y:.5}],dt={key:"rotate",x:.5,y:0};function rt(){Promise.resolve().then(()=>{fe=!1;const l=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,l-1)})}function ze(l){fe=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return l()}finally{rt()}}function it(){K||(K=!0,Oe(()=>{K=!1,ot()}))}function xt(l=re){return l?[...l.children].filter(d=>d instanceof HTMLButtonElement&&d!==X&&!d.classList.contains("me-video-text-tool")):[]}function wt(){se&&(se.isConnected&&(se.style.display=se.dataset.meTrimDisplay??"",se.hidden=se.dataset.meTrimHidden==="true",delete se.dataset.meTrimDisplay,delete se.dataset.meTrimHidden),se=null)}function we(l){if(!l){wt();return}se!==l&&(wt(),l.classList.remove("is-active"),l.dataset.meTrimDisplay=l.style.display??"",l.dataset.meTrimHidden=l.hidden?"true":"false",l.hidden=!0,l.style.display="none",se=l)}function Re(){if(pe&&!pe.classList.contains("is-active")){pe.click();return}const l=xt()[0];l&&!l.classList.contains("is-active")&&l.click()}function Me(){return Tn(t)}function et(){return yn(e)}function tt(){if(!t.history?.present)return;const l=et(),d=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(d)?d:-1)-l)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:l}},typeof t.emit=="function"&&t.emit())}function ht(l){const d={...An};for(const o of Ho){const i=Number(l?.[o]);Number.isFinite(i)&&(d[o]=f.has(o)?ae(i,-1,1):ae(i,0,1))}return d}function gt(l){const d=ht(l);return Ho.some(o=>Math.abs(Number(d[o])||0)>1e-4)}function ce(l){const d=ht(l),o=[],i=Yr(d,"");return i&&o.push(i),Math.abs(d.vibrance)>1e-4&&o.push(`saturate(${(1+d.vibrance*.65).toFixed(3)})`),Math.abs(d.temperature)>1e-4&&(d.temperature>0&&o.push(`sepia(${Math.min(.36,d.temperature*.28).toFixed(3)})`),o.push(`hue-rotate(${(-d.temperature*14).toFixed(2)}deg)`)),Math.abs(d.tint)>1e-4&&o.push(`hue-rotate(${(d.tint*10).toFixed(2)}deg)`),Math.abs(d.gamma)>1e-4&&o.push(`brightness(${(1+d.gamma*.08).toFixed(3)})`),(d.clarity>1e-4||d.sharpen>1e-4)&&o.push(`contrast(${(1+d.clarity*.16+d.sharpen*.1).toFixed(3)})`),o.join(" ").trim()||"none"}function Se(l){const d=ht(l),o=[];if(d.fade>1e-4&&o.push(`linear-gradient(0deg, rgba(255,245,235,${(d.fade*.18).toFixed(3)}), rgba(255,245,235,${(d.fade*.18).toFixed(3)}))`),d.vignette>1e-4){const i=(.28+d.vignette*.3).toFixed(3),c=(.16+d.vignette*.22).toFixed(3);o.push(`radial-gradient(circle at center, rgba(0,0,0,0) ${i}, rgba(0,0,0,${c}) 100%)`)}return d.grain>1e-4&&o.push(`linear-gradient(135deg, rgba(255,255,255,${(d.grain*.05).toFixed(3)}) 0%, rgba(0,0,0,${(d.grain*.05).toFixed(3)}) 100%)`),o.join(", ")}function Ve(){const l=t.getState().overlays??[];if(_==null)return null;const d=l[_];return d?.type==="adjust"?d:null}function Ze(l){if(!l.length){_=null;return}const d=eo(e,t.getState());_=d.length?d[d.length-1]:null}function at(l){const d=Number(l?.w),o=Number(l?.h);return!(d>0)||!(o>0)?null:{x:Number(l?.x)||0,y:Number(l?.y)||0,w:Math.max(48,d),h:Math.max(48,o)}}function Et(l,d){const o=at(l);if(!o)return l;const i=Math.max(.1,Number(d)||1);return{...l,w:Math.max(48,o.w*i),h:Math.max(48,o.h*i)}}function St(l,d,o={}){const c=(t.getState().overlays??[])[l];!c||c.type!=="adjust"||t.updateOverlay(l,Jt(c,Me(),d),o)}function Rt(l,d){_!=null&&t.updateOverlay(_,l,d)}function ut(l){const d=t.getState().overlays??[],o=d.length;if(typeof t.applyMut=="function")return t.applyMut(c=>({...c,overlays:[...on(c.overlays),{...l,timelineTrack:0}]})),o;const i=on(d);return t.commit?.({overlays:[...i,{...l,timelineTrack:0}]}),o}function It(){const l=t.getState().canvas??{w:1080,h:1920};return{type:"adjust",x:0,y:0,w:Math.max(1,Number(l.w)||1080),h:Math.max(1,Number(l.h)||1920),rotation:0,...An}}function Lt(){const l=Me();let d=ae(et(),0,Math.max(0,l-je)),o=Math.min(l,d+qt);o-d<je&&(d=ae(l-qt,0,Math.max(0,l-je)),o=Math.max(d+je,l));const i={...It(),...Jt(null,l,{startAt:d,endAt:o,timelineTrack:0})},c=ut(i);_=Number.isInteger(c)?c:null,bt(e,"text",_==null?[]:[_],{preserveOther:!0}),Re(),ft(_!=null)}function jt(){const l=t.getState(),d=Mo(l.overlays??[],eo(e,l));d.changed&&(t.commit({overlays:d.overlays}),_=d.selection.length?d.selection[d.selection.length-1]:null,bt(e,"text",d.selection),ot())}function At(){const l=t.getState(),d=Co(l.overlays??[],eo(e,l));d.changed&&(t.commit({overlays:d.overlays}),_=null,bt(e,"text",[]),ot())}function Mt(){Ve()&&Rt({...An})}function mt(l){if(!X||!(l instanceof HTMLButtonElement))return;const d=l.getAttribute("style");d?X.setAttribute("style",d):X.removeAttribute("style"),X.hidden=!1,X.style.display=""}function Ut(){X&&(X.dataset.theme=Kn(n()))}function S(){rn(e,te),rn(e,O),Ht(e)}function R(){const{timelineInner:l,timelineHost:d}=Bn(e,t.getState());if(!l||!d){b?.remove(),b=null,Je&&le&&(Je.unobserve(le),le=null),N=null;return}N=l,(!b||!b.isConnected||b.parentElement!==d)&&(b?.remove(),b=document.createElement("div"),b.className="me-video-text-timeline me-video-overlay-timeline me-video-feature-one-overlay-layer");for(const o of[...d.children])o!==b&&o instanceof HTMLElement&&o.classList.contains("me-video-feature-one-overlay-layer")&&o.remove();(b.parentElement!==d||d.lastElementChild!==b)&&d.appendChild(b),Je&&le!==N&&(le&&Je.unobserve(le),le=N,Je.observe(N))}function U(){const l=e.querySelector(".me-video-canvas-stage");if(!l){ve?.remove(),ve=null,Ie?.remove(),Ie=null,Ge&&D&&(Ge.unobserve(D),D=null),Le=null;return}Le=l,Le.style.position="relative",(!ve||!ve.isConnected||ve.parentElement!==Le)&&(ve?.remove(),ve=document.createElement("div"),ve.className="me-video-filter-effect-layer",Le.appendChild(ve)),(!Ie||!Ie.isConnected||Ie.parentElement!==Le)&&(Ie?.remove(),Ie=document.createElement("div"),Ie.className="me-video-filter-control-layer",Le.appendChild(Ie)),Le.lastElementChild!==Ie&&Le.appendChild(Ie),Ge&&D!==Le&&(D&&Ge.unobserve(D),D=Le,Ge.observe(Le))}function Te(){if(!Le)return null;const d=t.getState().canvas??{},o=Math.max(1,Number(d.w)||0),i=Math.max(1,Number(d.h)||0);if(!o||!i)return null;const c=Le.getBoundingClientRect(),h=Le.querySelector("canvas, video, img")||[...Le.children].find(z=>z!==ve&&z!==Ie)||null;let I=0,A=0,J=Le.clientWidth||o,M=Le.clientHeight||i;if(h instanceof HTMLElement){const z=h.getBoundingClientRect();z.width>0&&z.height>0&&(I=z.left-c.left,A=z.top-c.top,J=z.width,M=z.height)}if(!(J>0&&M>0)){const z=Le.clientWidth||o,me=Le.clientHeight||i,ue=Math.min(z/o,me/i)||1;J=o*ue,M=i*ue,I=Math.max(0,(z-J)/2),A=Math.max(0,(me-M)/2)}return{stageLeft:c.left,stageTop:c.top,left:I,top:A,scaleX:J/o,scaleY:M/i}}function Fe(l,d){const o=lt(l),i=Bt(l,o);return d>=o-.001&&d<=i+.001}function p(l,d,o){const i=Pt(e,"text",l,d,o);_=i.length?i[i.length-1]:null,ft(!0),ot()}function g(l,d,o){return{x:(l-o.stageLeft-o.left)/o.scaleX,y:(d-o.stageTop-o.top)/o.scaleY}}function $(l,d,o){const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;const c=t.getState().canvas??{w:1080,h:1920},h=at(i);if(!h)return;const I=d.clientX,A=d.clientY,J=Math.max(0,(Number(c.w)||0)-h.w),M=Math.max(0,(Number(c.h)||0)-h.h),z=(Ce,ke,ge)=>{const Ae=(Ce-I)/o.scaleX,_e=(ke-A)/o.scaleY,Xe=ae(h.x+Ae,0,J),We=ae(h.y+_e,0,M);t.updateOverlay(l,{x:Xe,y:We},ge?{transient:!0}:void 0)},me=Ce=>{Ce.preventDefault(),z(Ce.clientX,Ce.clientY,!0)},ue=Ce=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ue),window.removeEventListener("pointercancel",ue),z(Ce.clientX,Ce.clientY,!1)};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ue),window.addEventListener("pointercancel",ue)}function de(l,d,o,i){const c=(t.getState().overlays??[])[l];if(!c||c.type!=="adjust")return;const h=at(c);if(!h)return;const I=t.getState().canvas??{w:1080,h:1920},A=d.x===.5?.5:1-d.x,J=d.y===.5?.5:1-d.y,M=h.x+h.w*A,z=h.y+h.h*J,me=Math.max(.1,48/Math.max(48,h.w),48/Math.max(48,h.h)),ue=d.x===.5?1/0:Math.max(.1,(A===0?(Number(I.w)||0)-M:M)/Math.max(1,h.w)),Ce=d.y===.5?1/0:Math.max(.1,(J===0?(Number(I.h)||0)-z:z)/Math.max(1,h.h)),ke=Math.max(me,Math.min(ue,Ce,8)),ge=(Xe,We,st)=>{const Nt=g(Xe,We,i),$t=[];d.x!==.5&&$t.push(Math.abs(Nt.x-M)/Math.max(1,h.w)),d.y!==.5&&$t.push(Math.abs(Nt.y-z)/Math.max(1,h.h));const cn=$t.length?Math.max(...$t):1,dn=ae(cn,me,ke),Hn=Et(c,dn),hn=at(Hn);if(!hn)return;const Xn=M-hn.w*A,xn=z-hn.h*J;t.updateOverlay(l,{x:Xn,y:xn,w:hn.w,h:hn.h},st?{transient:!0}:void 0)},Ae=Xe=>{Xe.preventDefault(),ge(Xe.clientX,Xe.clientY,!0)},_e=Xe=>{window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",_e),window.removeEventListener("pointercancel",_e),ge(Xe.clientX,Xe.clientY,!1)};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",_e),window.addEventListener("pointercancel",_e)}function be(l,d,o){const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;const c=at(i);if(!c)return;const h=o.stageLeft+o.left+(c.x+c.w/2)*o.scaleX,I=o.stageTop+o.top+(c.y+c.h/2)*o.scaleY,A=Math.atan2(d.clientY-I,d.clientX-h),J=un(i),M=(ue,Ce,ke,ge)=>{const Ae=Math.atan2(Ce-I,ue-h);let _e=In(J+(Ae-A)*180/Math.PI);ge&&(_e=Math.round(_e/15)*15),t.updateOverlay(l,{rotation:_e},ke?{transient:!0}:void 0)},z=ue=>{ue.preventDefault(),M(ue.clientX,ue.clientY,!0,ue.shiftKey)},me=ue=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",me),window.removeEventListener("pointercancel",me),M(ue.clientX,ue.clientY,!1,ue.shiftKey)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",me),window.addEventListener("pointercancel",me)}function ye(l,d){if(U(),!ve||!Ie)return;if(ve.replaceChildren(),Ie.replaceChildren(),!Te()){ve.hidden=!0,Ie.hidden=!0;return}Ie.hidden=!0;const i=et();if(!l.filter(h=>Fe(h.overlay,i)).length){ve.hidden=!0;return}ve.hidden=!0}function Be(l,d,o){if(!N)return;const i=(t.getState().overlays??[])[l];if(!i||i.type!=="adjust")return;if(o.shiftKey||o.ctrlKey||o.metaKey){o.preventDefault(),o.stopPropagation();const Ce=Pt(e,"text",l,o,cr(t.getState()).map(ke=>ke.index));_=Ce.length?Ce[Ce.length-1]:null,Re(),ft(!0);return}o.preventDefault(),o.stopPropagation(),_=l,bt(e,"text",[l]),Re(),ee||ft(!0);const c=Me(),h=Math.max(N.clientWidth/c,.001),I=lt(i),A=Bt(i,I),J=Math.max(je,A-I),M=vt(i),z=o.clientX,me=Ce=>{const ke=(Ce.clientX-z)/h,ge=t.getState().overlays??[];if(d==="move"){const Xe=Math.max(0,I+ke),We=Xe+J,st=pt(b,ge,l,Xe,We,Ce.clientY,M);St(l,{startAt:Xe,endAt:We,timelineTrack:st},{transient:!0});return}if(d==="start"){const Xe=ae(I+ke,0,A-je),We=pt(b,ge,l,Xe,A,Ce.clientY,M);St(l,{startAt:Xe,endAt:A,timelineTrack:We},{transient:!0});return}const Ae=Math.max(I+je,A+ke),_e=pt(b,ge,l,I,Ae,Ce.clientY,M);St(l,{startAt:I,endAt:Ae,timelineTrack:_e},{transient:!0})},ue=Ce=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ue),window.removeEventListener("pointercancel",ue);const ke=(Ce.clientX-z)/h,ge=t.getState().overlays??[];if(d==="move"){const Xe=Math.max(0,I+ke),We=Xe+J,st=pt(b,ge,l,Xe,We,Ce.clientY,M);St(l,{startAt:Xe,endAt:We,timelineTrack:st});return}if(d==="start"){const Xe=ae(I+ke,0,A-je),We=pt(b,ge,l,Xe,A,Ce.clientY,M);St(l,{startAt:Xe,endAt:A,timelineTrack:We});return}const Ae=Math.max(I+je,A+ke),_e=pt(b,ge,l,I,Ae,Ce.clientY,M);St(l,{startAt:I,endAt:Ae,timelineTrack:_e})};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ue),window.addEventListener("pointercancel",ue),ot()}function Ee(l,d){if(R(),!b||!N||(b.replaceChildren(),b.hidden=l.length===0,!l.length))return;const o=Me(),i=N.clientWidth/o,c=Rn(t.getState()),h=new Map;for(const I of l){const A=vt(I.overlay),J=c.get(A)??A;let M=h.get(A);M||(M=document.createElement("div"),M.className="me-video-overlay-track-row",M.dataset.track=String(A),M.style.top=`${Ln(J)}px`,h.set(A,M),b.appendChild(M));const z=document.createElement("div");z.className="me-video-text-track-clip me-video-filter-track-clip",d.has(I.index)&&z.classList.add("is-active");const me=lt(I.overlay),ue=Sn(I.overlay);z.style.left=`${me*i}px`,z.style.width=`${Math.max(36,ue*i)}px`;const Ce=document.createElement("span");Ce.className="me-video-text-track-icon",Ce.textContent="Adj";const ke=document.createElement("span");ke.className="me-video-text-track-label",ke.textContent=s.tool,ke.title=ke.textContent;const ge=document.createElement("span");ge.className="me-video-text-track-handle is-start";const Ae=document.createElement("span");Ae.className="me-video-text-track-handle is-end",z.append(Ce,ke,ge,Ae),z.addEventListener("pointerdown",_e=>Be(I.index,"move",_e)),ge.addEventListener("pointerdown",_e=>Be(I.index,"start",_e)),Ae.addEventListener("pointerdown",_e=>Be(I.index,"end",_e)),z.addEventListener("click",_e=>{if(_e.preventDefault(),_e.stopPropagation(),_e.shiftKey||_e.ctrlKey||_e.metaKey){Re(),ot();return}const Xe=Pt(e,"text",I.index,_e,l.map(We=>We.index));_=Xe.length?Xe[Xe.length-1]:null,Re(),ft(!0),ot()}),M.appendChild(z)}}function $e(l){V.forEach(d=>{d.controls.forEach(o=>{o.range.disabled=l,o.input.disabled=l})}),E.disabled=l}function Ne(){const l=xe();q.forEach(d=>{const o=String(l[d.key]??s.notAvailable);d.valueEl.textContent=o,d.valueEl.title=o})}function De(l){const d=!!l;if($e(!d),E.hidden=!d,y.hidden=d,V.forEach(i=>{i.section.hidden=!d}),Ne(),!d)return;const o=ht(l);V.forEach(i=>{i.controls.forEach(c=>{const h=ae(Number(o[c.key])||0,c.min,c.max);c.range.value=String(h),c.input.value=G(h,c.format)})}),d&&(E.disabled=!gt(l))}function Qe(){return ee&&!!Ve()}function He(){return xt().some(o=>o!==pe&&!o.hidden&&o.style.display!=="none"&&o.classList.contains("is-active"))?!0:[...e.querySelectorAll(".me-video-toolrail .me-video-text-tool.is-active")].some(o=>o!==X)}function Pe(){const l=uo(e);return l instanceof HTMLElement?[...l.children].some(d=>d instanceof HTMLElement&&d!==te&&d!==O&&!d.hidden):!1}function Ue(){return ee&&!!Ve()&&!He()}function ct(){const l=Mn(e,t.getState().audioClips??[]).length>0;return!He()&&!Pe()&&!l&&!Ve()}function ft(l){const d=!!l;if(d===ee){ot();return}ee=d,ee&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:qe}})),ot()}function Ke(){ee=!1,_=null,e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:"video-info"}})),te.hidden=!0,Ne(),O.hidden=!1,Ft(),S()}function nt(){te.hidden=!Ue(),O.hidden=!ct(),Ft(),S()}function ot(){ze(()=>{He()&&(ee=!1),ee&&Re(),Ot();const l=cr(t.getState());Ze(l);const d=new Set(eo(e,t.getState()));Ee(l,d),ye(l,d),De(Ve()),nt(),Ut()}),tt()}function Ot(){ze(()=>{const l=e.querySelector(".me-video-toolrail");if(!l)return;re=l;const d=xt(re);pe=io(d),we(pe);const o=pe??d[0]??null;(!X||!X.isConnected)&&(X=document.createElement("button"),X.type="button",X.className="me-video-text-tool me-video-feature-one-tool",X.innerHTML=`<span class="me-video-text-tool-icon">${Jr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`,X.addEventListener("click",()=>{Lt()})),X.setAttribute("title",s.tool),X.setAttribute("aria-label",s.tool),mt(o),X.isConnected?o?.parentElement===re&&X.nextSibling!==o&&re.insertBefore(X,o):o?.parentElement===re?re.insertBefore(X,o):re.appendChild(X),Ut(),X.classList.toggle("is-active",Qe()),Ft(),S()})}function Ft(){if(X?.classList.toggle("is-active",Qe()),!!pe){if(Qe()){pe.classList.remove("is-active");return}pe.classList.remove("is-active")}}function kt(l){return!!l&&(l===te||te.contains(l)||l===O||O.contains(l)||l===X||X?.contains?.(l)||l===b||b?.contains?.(l)||l===ve||ve?.contains?.(l)||l===Ie||Ie?.contains?.(l))}function ln(l){return l.some(d=>{if(!kt(d.target))return!0;for(const o of d.addedNodes)if(!kt(o))return!0;for(const o of d.removedNodes)if(!kt(o))return!0;return!1})}const an=new MutationObserver(l=>{fe||e.__meVideoEnhancerObserverLock||ln(l)&&(Ot(),it())}),en=l=>{l?.detail?.id===qe||l?.detail?.id==="video-info"||(ee=!1,te.hidden=!0,O.hidden=!0,Ft(),S(),it())},Ct=l=>{const d=l.target;d instanceof Element&&d.closest(".me-video-toolrail button")&&it()},tn=()=>{if(!So(e)){Ke();return}ot()};an.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",en),e.addEventListener("click",Ct,!0),e.addEventListener(zt,tn),window.addEventListener("resize",S);const m=t.subscribe(()=>{ot()});function P(l){const d=Number(l.input.value);if(!Number.isFinite(d))return null;const o=ae(d,l.displayMin,l.displayMax),i=ae(H(o,l.format),l.min,l.max);return{displayValue:o,internalValue:i}}function W(l){const d=Number(l.range.value);if(!Number.isFinite(d))return null;const o=ae(d,l.min,l.max);return{internalValue:o,displayValue:ae(k(o,l.format),l.displayMin,l.displayMax)}}return V.forEach(l=>{l.controls.forEach(d=>{d.range.addEventListener("input",()=>{const o=W(d);o&&(d.input.value=G(o.internalValue,d.format),Rt({[d.key]:o.internalValue},{transient:!0}))}),d.range.addEventListener("change",()=>{const o=W(d);if(!o){ot();return}d.input.value=G(o.internalValue,d.format),Rt({[d.key]:o.internalValue})}),d.input.addEventListener("input",()=>{const o=P(d);o&&(d.range.value=String(o.internalValue),Rt({[d.key]:o.internalValue},{transient:!0}))}),d.input.addEventListener("change",()=>{const o=P(d);if(!o){ot();return}d.range.value=String(o.internalValue),d.input.value=G(o.internalValue,d.format),Rt({[d.key]:o.internalValue})}),d.input.addEventListener("blur",()=>{const o=P(d);if(!o){ot();return}d.range.value=String(o.internalValue),d.input.value=G(o.internalValue,d.format)})})}),E.addEventListener("click",()=>{Mt()}),Ot(),ot(),{destroy(){an.disconnect(),m(),Je&&le&&Je.unobserve(le),Ge&&D&&Ge.unobserve(D),e.removeEventListener("me-video-inspector-open",en),e.removeEventListener("click",Ct,!0),e.removeEventListener(zt,tn),window.removeEventListener("resize",S),wt(),X?.remove(),b?.remove(),ve?.remove(),Ie?.remove(),te.remove(),O.remove(),Ht(e)}}}function ca(e,t,n){Qt();const r=zi(n()),a=qi(),s=Ki(a),u=document.createElement("div");u.className="me-video-text-panel me-video-ratio-panel",u.hidden=!0,e.appendChild(u);const f=document.createElement("div");f.className="me-video-text-toolbar";const v=document.createElement("strong");v.textContent=r.title,f.append(v);const k=Kt(r.commonPresets),H=document.createElement("div");H.className="me-video-ratio-card-grid",k.body.appendChild(H);const G=Kt(r.customSize),T=document.createElement("input");T.type="number",T.min="2",T.step="2",T.className="me-video-text-input";const F=document.createElement("input");F.type="number",F.min="2",F.step="2",F.className="me-video-text-input";const j=to(r.width,T),oe=to(r.height,F),Q=document.createElement("div");Q.className="me-video-ratio-dimension-grid";const Z=document.createElement("div");Z.className="me-video-ratio-cross",Z.textContent="x",Q.append(j,Z,oe);const ie=document.createElement("div");ie.className="me-video-ratio-lock-row";const he=document.createElement("button");he.type="button",he.className="me-video-ratio-lock-toggle me-video-ratio-lock-inline";const ne=document.createElement("button");ne.type="button",ne.className="me-video-ratio-quick",ne.textContent=r.quickPortrait;const xe=document.createElement("button");xe.type="button",xe.className="me-video-ratio-quick",xe.textContent=r.quickLandscape,G.title.appendChild(he),ie.append(ne,xe);const te=document.createElement("p");te.className="me-video-ratio-summary",G.body.append(Q,ie,te);const w=Kt(r.fitMode),x=document.createElement("div");x.className="me-video-ratio-fit-group";const E=[{fit:"cover",label:r.cover},{fit:"contain",label:r.contain},{fit:"force",label:r.force}].map(ce=>{const Se=document.createElement("button");return Se.type="button",Se.className="me-video-ratio-fit-button",Se.dataset.fit=ce.fit,Se.textContent=ce.label,x.appendChild(Se),{fit:ce.fit,button:Se}}),C=document.createElement("p");C.className="me-video-ratio-note",w.body.append(x,C),u.append(f,G.section,w.section,k.section);let y=null,O=null,Y=null,L=null,B=null,q=!1,V=!0,X=!1,re=!1;const pe="resize",se=ao("9:16"),N=ao("16:9"),b=typeof requestAnimationFrame=="function"?requestAnimationFrame:ce=>setTimeout(ce,16);function le(){Promise.resolve().then(()=>{re=!1;const ce=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,ce-1)})}function Le(ce){re=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return ce()}finally{le()}}function ve(){X||(X=!0,b(()=>{X=!1,Re()}))}function Ie(ce=O){return ce?[...ce.children].filter(Se=>Se instanceof HTMLButtonElement&&Se!==y&&!Se.classList.contains("me-video-text-tool")):[]}function D(ce){return[ce?.textContent,ce?.getAttribute?.("title"),ce?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function ee(ce){const Se=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Ro(ce.find(Ve=>{const Ze=D(Ve);return Se.some(at=>Ze.includes(at))})??ce[0]??null)}function _(){if(L&&q){L.classList.remove("is-active");return}}function K(ce){const Se=[r.tool,r.title,"ratio","resize","\u6BD4\u4F8B","\u756B\u5E03","\u753B\u5E03"].map(Ve=>String(Ve??"").trim().toLowerCase()).filter(Boolean);return ce.find(Ve=>{const Ze=D(Ve);return Se.some(at=>Ze.includes(at))})??ce[ce.length-1]??null}function fe(){B&&(B.isConnected&&(B.style.display=B.dataset.meResizeDisplay??"",B.hidden=B.dataset.meResizeHidden==="true",delete B.dataset.meResizeDisplay,delete B.dataset.meResizeHidden),B=null)}function qe(ce){if(!ce){fe();return}B!==ce&&(fe(),ce.dataset.meResizeDisplay=ce.style.display??"",ce.dataset.meResizeHidden=ce.hidden?"true":"false",ce.hidden=!0,ce.style.display="none",B=ce)}function Oe(){L&&(L.classList.contains("is-active")||L.click())}function Je(){rn(e,u),Ht(e)}function Ge(ce){const Se=!!ce;if(Se===q){Re();return}q=Se,q&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:pe}})),Re()}function Ye(){const ce=e.querySelector(".me-video-toolrail");if(!ce)return;O=ce;const Se=Ie(O);L=ee(Se),Y=K(Se),qe(Y),(!y||!y.isConnected)&&(y=document.createElement("button"),y.type="button",y.className="me-video-text-tool me-video-ratio-tool",y.innerHTML=`<span class="me-video-text-tool-icon">\u2922</span><span class="me-video-text-tool-label">${r.tool}</span>`,y.title=r.tool,y.setAttribute("aria-label",r.tool),y.addEventListener("click",()=>{const Ve=!q;Ve&&(Oe(),ve()),Ge(Ve)})),y.isConnected?Y?.parentElement===O&&y.nextSibling!==Y&&O.insertBefore(y,Y):Y?.parentElement===O?O.insertBefore(y,Y):O.appendChild(y),y.classList.toggle("is-active",q),_(),Je()}function dt(){u.hidden=!q,y?.classList.toggle("is-active",q),_(),Je()}function rt(ce=t.getState()){return Fo(ce?.scale?.fit)}function ze(){he.textContent=V?"\u{1F512}":"\u{1F513}",he.title=V?r.lockRatio:r.unlockRatio,he.setAttribute("aria-label",he.title),he.classList.toggle("is-active",V)}function it(ce,Se,Ve=rt(),Ze=!1){const at={width:fn(ce,2),height:fn(Se,2),fit:Fo(Ve)};if(Ze){t.patch({scale:at},{transient:!0});return}t.commit({scale:at})}function xt(ce){const Se=Yn(t.getState()),Ve=fn(ce,Se.w);if(!V)return{width:Ve,height:fn(F.value,Se.h)};const Ze=Se.w>0&&Se.h>0?Se.w/Se.h:1;return{width:Ve,height:fn(Ve/Ze,Se.h)}}function wt(ce){const Se=Yn(t.getState()),Ve=fn(ce,Se.h);if(!V)return{width:fn(T.value,Se.w),height:Ve};const Ze=Se.w>0&&Se.h>0?Se.w/Se.h:1;return{width:fn(Ve*Ze,Se.w),height:Ve}}function we(ce){const Se=Ui(s,ce);H.replaceChildren();for(const Ve of s){const Ze=document.createElement("button");Ze.type="button",Ze.className="me-video-ratio-preset-group",Ze.title=`${Ve.ratio} (${On(Ve)})`,Se&&Se.ratio===Ve.ratio&&Ze.classList.add("is-active");const at=document.createElement("div");at.className="me-video-ratio-preset-head";const Et=document.createElement("div");Et.className="me-video-ratio-preset-title";const St=document.createElement("strong");St.className="me-video-ratio-preset-ratio",St.textContent=Ve.ratio;const Rt=document.createElement("span");Rt.className="me-video-ratio-preset-size",Rt.textContent=`(${On(Ve)})`,Et.append(St,Rt);const ut=document.createElement("span");ut.className="me-video-ratio-preset-marker",ut.setAttribute("aria-hidden","true"),at.append(Et,ut);const It=document.createElement("p");It.className="me-video-ratio-preset-hint",It.textContent=Ve.hint,Ze.addEventListener("click",()=>{it(Ve.w,Ve.h,rt())}),Ze.append(at,It),H.appendChild(Ze)}}function Re(){Le(()=>{Ye();const ce=t.getState(),Se=Ie().find(Et=>Et.classList.contains("is-active"))??null;q&&Se&&Se!==L&&(Oe(),ve());const Ve=Yn(ce),Ze=Cr(ce),at=rt(ce);T.value=String(Ve.w),F.value=String(Ve.h),ze(),te.innerHTML=`<strong>${r.summary}:</strong> ${On(Ve)}${ce.scale?` | ${r.baseOutput}: ${On(Ze)}`:""}`,C.textContent=Gi(r,at),E.forEach(Et=>{Et.button.classList.toggle("is-active",Et.fit===at)}),we(Ve),dt()})}function Me(ce){return!!ce&&(ce===u||u.contains(ce))}function et(ce){return ce.some(Se=>{if(!Me(Se.target))return!0;for(const Ve of Se.addedNodes)if(!Me(Ve))return!0;for(const Ve of Se.removedNodes)if(!Me(Ve))return!0;return!1})}const tt=new MutationObserver(ce=>{re||e.__meVideoEnhancerObserverLock||et(ce)&&(Le(()=>{Ye()}),ve())}),ht=ce=>{ce?.detail?.id!==pe&&(q&&(q=!1,dt()),ve())};tt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",ht),window.addEventListener("resize",ve);const gt=t.subscribe(()=>{ve()});return T.addEventListener("input",()=>{const ce=xt(T.value);it(ce.width,ce.height,rt(),!0)}),T.addEventListener("change",()=>{const ce=xt(T.value);it(ce.width,ce.height,rt())}),F.addEventListener("input",()=>{const ce=wt(F.value);it(ce.width,ce.height,rt(),!0)}),F.addEventListener("change",()=>{const ce=wt(F.value);it(ce.width,ce.height,rt())}),he.addEventListener("click",()=>{V=!V,Re()}),ne.addEventListener("click",()=>{it(se.w,se.h,rt())}),xe.addEventListener("click",()=>{it(N.w,N.h,rt())}),E.forEach(ce=>{ce.button.addEventListener("click",()=>{const Se=Yn(t.getState());it(Se.w,Se.h,ce.fit)})}),Ye(),Re(),{destroy(){tt.disconnect(),gt(),e.removeEventListener("me-video-inspector-open",ht),window.removeEventListener("resize",ve),fe(),y?.remove(),u.remove(),Ht(e)}}}function da(e,t,n,r){Qt(),kn();const a=Zo(r()),s=a.transitions,u=document.createElement("div");u.className="me-video-text-panel me-video-transition-panel",u.hidden=!0,e.appendChild(u);const f=document.createElement("div");f.className="me-video-text-toolbar";const v=document.createElement("strong");v.textContent=s.title;const k=Yt(s.fadeAll),H=Yt(s.close);f.append(v,k,H);const G=document.createElement("p");G.className="me-video-text-hint",G.textContent=s.hint;const T=document.createElement("div");T.className="me-video-text-list";const F=document.createElement("div");F.className="me-video-text-empty",F.textContent=s.empty;const j=document.createElement("div");j.className="me-video-transition-selection";const oe=document.createElement("div");oe.className="me-video-transition-grid";const Q=vo.map(we=>{const Re=En(a,we.key),Me=document.createElement("button");return Me.type="button",Me.className="me-video-transition-choice",Me.dataset.transition=we.key,Me.innerHTML=`<strong>${Re.label}</strong><span>${we.key==="none"?s.instantCut:`${s.duration} ${mn(we.duration)}`}</span>`,oe.appendChild(Me),Me}),Z=document.createElement("input");Z.type="range",Z.min="0.1",Z.max="1.2",Z.step="0.05";const ie=document.createElement("div");ie.className="me-video-text-inline";const he=document.createElement("span");ie.append(Z,he);const ne=to(s.duration,ie);ne.classList.add("is-span-2");const xe=document.createElement("div");xe.className="me-video-transition-actions";const te=Yt(s.clearSelected),w=Li(s.clearAll,"clear");w.classList.add("me-video-text-cta"),xe.append(w,te),u.append(f,G,T,F,j,oe,ne,xe);let x=null,E=null,C=null,y=null,O=null,Y=!1,L=0,B=!1,q=!1;const V="transition",X=typeof requestAnimationFrame=="function"?requestAnimationFrame:we=>setTimeout(we,16),re=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>N());function pe(){Promise.resolve().then(()=>{q=!1;const we=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,we-1)})}function se(we){q=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return we()}finally{pe()}}function N(){B||(B=!0,X(()=>{B=!1,Ye()}))}function b(we){const Re=!!we;if(Re===Y){Ye();return}Y=Re,Y&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:V}})),Ye()}function le(){return E?[...E.querySelectorAll("button")].filter(we=>we!==x):[]}function Le(){le()[0]?.click()}function ve(){x&&(x.dataset.theme=Kn(n()))}function Ie(){rn(e,u),Ht(e)}function D(){u.hidden=!Y,x&&x.classList.toggle("is-active",Y),Ie()}function ee(we){const Re=Math.max(0,(we.clips??[]).length-1);if(!Re){L=0;return}L=ae(L,0,Re-1)}function _(we,Re=!1){if(Re){t.patch({transitions:we},{transient:!0});return}t.commit({transitions:we})}function K(we,Re=!1){const Me=t.getState(),et=bo(Me),tt=Me.clips??[];ee(Me),!(!et.length||!tt[L]||!tt[L+1])&&(et[L]=Gn({...et[L],...we},Dt(tt[L]),Dt(tt[L+1])),_(et,Re))}function fe(we){const Re=t.getState(),Me=bo(Re),et=Re.clips??[];if(ee(Re),!Me.length||!et[L]||!et[L+1])return;const tt=En(a,we);Me[L]=Gn({type:we,duration:we==="none"?0:Me[L]?.duration||tt.duration},Dt(et[L]),Dt(et[L+1])),_(Me)}function qe(we){const Me=t.getState().clips??[];if(Me.length<2)return;const et=En(a,we),tt=[];for(let ht=0;ht<Me.length-1;ht++)tt.push(Gn({type:we,duration:we==="none"?0:et.duration},Dt(Me[ht]),Dt(Me[ht+1])));_(tt)}function Oe(){const we=Fn(e);if(!we){y?.remove(),y=null,re&&O&&(re.unobserve(O),O=null),C=null;return}C=we,C.style.position="relative",(!y||!y.isConnected||y.parentElement!==C)&&(y?.remove(),y=document.createElement("div"),y.className="me-video-transition-track",C.appendChild(y)),re&&O!==C&&(O&&re.unobserve(O),O=C,re.observe(C))}function Je(we,Re){T.replaceChildren();const Me=Math.max(0,(we.clips??[]).length-1);for(let et=0;et<Me;et++){const tt=document.createElement("button");tt.type="button",tt.className="me-video-text-chip",et===L&&tt.classList.add("is-active");const ht=Re[et],gt=En(a,ht?.type??"none");tt.textContent=s.boundary(et+1,et+2,gt.short),tt.title=s.boundaryTitle(et+1,et+2),tt.addEventListener("click",()=>{L=et,Le(),b(!0)}),T.appendChild(tt)}}function Ge(we,Re){if(Oe(),!y||!C)return;y.replaceChildren();const Me=we.clips??[];if(Me.length<2)return;const et=Math.max(typeof t.contentDuration=="function"?t.contentDuration():0,.001),tt=C.clientWidth/et;let ht=0;for(let gt=0;gt<Me.length-1;gt++){ht+=Dt(Me[gt]);const ce=Re[gt],Se=En(a,ce?.type??"none"),Ve=ce?.type==="none",Ze=document.createElement("button");Ze.type="button",Ze.className="me-video-transition-marker",Ve&&Ze.classList.add("is-cut-only"),ce?.type!=="none"&&Ze.classList.add("is-enabled"),gt===L&&Ze.classList.add("is-active"),Ze.style.left=`${ht*tt}px`,Ze.title=s.markerTitle(gt+1,gt+2,Se.label,ce?.type!=="none"?mn(ce.duration):"");const at=document.createElement("span");at.className="me-video-transition-pill",at.textContent=Ve?"":Se.short,Ze.appendChild(at),Ze.addEventListener("click",()=>{L=gt,Le(),b(!0)}),y.appendChild(Ze)}}function Ye(){se(()=>{const we=t.getState(),Re=bo(we);ee(we),Je(we,Re),Ge(we,Re);const Me=Re[L]??null,et=En(a,Me?.type??"none");F.hidden=Re.length>0,j.textContent=Me?s.selection(L+1,L+2):s.selectionEmpty,Z.disabled=!Me||et.key==="none",te.disabled=!Me,w.disabled=Re.length===0,k.disabled=Re.length===0,Z.value=String(Me&&et.key!=="none"?Me.duration:xo("fade").duration),he.textContent=Me&&et.key!=="none"?mn(Me.duration):s.cut,Q.forEach(tt=>{const ht=!!Me&&tt.dataset.transition===et.key;tt.classList.toggle("is-active",ht),tt.disabled=!Me}),D(),Ie(),ve()})}function dt(){se(()=>{const we=e.querySelector(".me-video-toolrail");we&&(E=we,(!x||!x.isConnected)&&(x=document.createElement("button"),x.type="button",x.className="me-video-text-tool",x.innerHTML=`<span class="me-video-text-tool-icon">Fx</span><span class="me-video-text-tool-label">${s.tool}</span>`,x.addEventListener("click",()=>{const Re=!Y;Re&&Le(),b(Re)})),x.isConnected||E.appendChild(x),ve(),Ie())})}function rt(we){return!!we&&(we===u||u.contains(we)||we===x||we===y||y?.contains(we))}function ze(we){return we.some(Re=>{if(!rt(Re.target))return!0;for(const Me of Re.addedNodes)if(!rt(Me))return!0;for(const Me of Re.removedNodes)if(!rt(Me))return!0;return!1})}const it=new MutationObserver(we=>{q||e.__meVideoEnhancerObserverLock||ze(we)&&(dt(),N())}),xt=we=>{we?.detail?.id!==V&&Y&&(Y=!1,Ye())};it.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",xt),window.addEventListener("resize",N);const wt=t.subscribe(()=>{N()});return Q.forEach(we=>{we.addEventListener("click",()=>{fe(we.dataset.transition??"none")})}),Z.addEventListener("input",()=>{he.textContent=mn(Z.value),K({duration:Number(Z.value)||.4},!0)}),Z.addEventListener("change",()=>{K({duration:Number(Z.value)||.4})}),k.addEventListener("click",()=>qe("fade")),te.addEventListener("click",()=>fe("none")),w.addEventListener("click",()=>qe("none")),H.addEventListener("click",()=>{b(!1)}),dt(),Ye(),{destroy(){it.disconnect(),wt(),re?.disconnect(),e.removeEventListener("me-video-inspector-open",xt),window.removeEventListener("resize",N),x?.remove(),y?.remove(),u.remove(),Ht(e)}}}function ua(e,t,n){Qt();const r=Pi(n()),a=typeof requestAnimationFrame=="function"?requestAnimationFrame:o=>setTimeout(o,16),s=document.createElement("div");s.className="me-video-text-panel me-video-add-panel",s.hidden=!0,e.appendChild(s);const u=document.createElement("div");u.className="me-video-text-toolbar";const f=document.createElement("strong");f.textContent=r.title;const v=Yt(r.reset);u.append(f,v);const k=document.createElement("p");k.className="me-video-text-hint",k.textContent=r.hint;const H=document.createElement("div");H.className="me-video-add-body";const G=document.createElement("section");G.className="me-video-add-section";const T=document.createElement("div");T.className="me-video-add-section-head";const F=document.createElement("span");F.className="me-video-add-section-title",F.textContent=r.tools,T.appendChild(F);const j=document.createElement("div");j.className="me-video-add-tool-grid";const oe=document.createElement("section");oe.className="me-video-add-section";const Q=document.createElement("div");Q.className="me-video-add-section-head";const Z=document.createElement("span");Z.className="me-video-add-section-title",Z.textContent=r.color,Q.appendChild(Z);const ie=document.createElement("div");ie.className="me-video-add-color-grid";const he=document.createElement("div");he.className="me-video-add-custom-color";const ne=document.createElement("div");ne.className="me-video-add-custom-head";const xe=document.createElement("div");xe.className="me-video-add-custom-preview";const te=document.createElement("span");te.className="me-video-add-custom-label",te.textContent=r.custom,ne.append(xe,te);const w=document.createElement("div");w.className="me-video-add-spectrum";const x=document.createElement("span");x.className="me-video-add-spectrum-thumb",w.appendChild(x);const E=document.createElement("div");E.className="me-video-add-hue-row";const C=document.createElement("div");C.className="me-video-add-custom-preview";const y=document.createElement("input");y.type="range",y.min="0",y.max="360",y.step="1",y.className="me-video-add-hue-slider",E.append(C,y);const O=document.createElement("div");O.className="me-video-add-rgb-grid";const Y={};["r","g","b"].forEach(o=>{const i=document.createElement("label");i.className="me-video-add-rgb-field";const c=document.createElement("input");c.type="number",c.min="0",c.max="255",c.step="1",c.inputMode="numeric",c.className="me-video-add-rgb-input";const h=document.createElement("span");h.className="me-video-add-rgb-label",h.textContent=o.toUpperCase(),i.append(c,h),O.appendChild(i),Y[o]=c}),he.append(ne,w,E,O);const L=document.createElement("section");L.className="me-video-add-section";const B=document.createElement("div");B.className="me-video-add-section-head";const q=document.createElement("span");q.className="me-video-add-section-title",q.textContent=r.width;const V=document.createElement("span");V.className="me-video-add-section-value",B.append(q,V);const X=document.createElement("input");X.type="range",X.min=String(_n),X.max=String(jn),X.step="1",X.className="me-video-add-slider",G.append(T,j),oe.append(Q,ie,he),L.append(B,X),H.append(G,oe,L),s.append(u,k,H);let re=null,pe=null,se=null,N=null,b=null,le=null,Le=null,ve=null,Ie=null,D=!1,ee=!1,_=null,K=no(),fe=null,qe=null,Oe=null,Je=0,Ge=0;const Ye="add",dt=[{key:"tl",x:0,y:0},{key:"tm",x:.5,y:0},{key:"tr",x:1,y:0},{key:"ml",x:0,y:.5},{key:"mr",x:1,y:.5},{key:"bl",x:0,y:1},{key:"bm",x:.5,y:1},{key:"br",x:1,y:1}],rt={key:"rotate",x:.5,y:0},ze=typeof ResizeObserver=="function"?new ResizeObserver(()=>{Lt()}):null,it=typeof ResizeObserver=="function"?new ResizeObserver(()=>{Lt()}):null,xt=gr.map(o=>{const i=document.createElement("button");return i.type="button",i.className="me-video-add-tool-card",i.dataset.tool=o.key,i.innerHTML=`<span class="me-video-add-tool-icon">${Ii(o.key)}</span><span class="me-video-add-tool-label">${r[o.key]}</span>`,i.addEventListener("click",()=>{At({tool:o.key})}),j.appendChild(i),i}),wt=yr.map(o=>{const i=document.createElement("button");return i.type="button",i.className="me-video-add-color-chip",i.dataset.color=o,i.dataset.tone=o==="#ffffff"?"light":"dark",i.style.background=o,i.title=o,i.setAttribute("aria-label",o),i.addEventListener("click",()=>{At({color:o})}),ie.appendChild(i),i});function we(o,i,c){Oe?.();const h=o==="mouse"?["mousemove"]:["pointermove"],I=o==="mouse"?["mouseup"]:["pointerup","pointercancel"],A=M=>{i(M)},J=M=>{h.forEach(z=>window.removeEventListener(z,A)),I.forEach(z=>window.removeEventListener(z,J)),Oe=null,c(M)};Oe=()=>{h.forEach(M=>window.removeEventListener(M,A)),I.forEach(M=>window.removeEventListener(M,J))},h.forEach(M=>window.addEventListener(M,A)),I.forEach(M=>window.addEventListener(M,J))}function Re(o,i){const c=w.getBoundingClientRect();if(!(c.width>0&&c.height>0))return;const h=ae((o-c.left)/c.width,0,1),I=1-ae((i-c.top)/c.height,0,1),A=oo(K.color),J=zo(A.r,A.g,A.b),M=Po(J.h,h,I);At({color:ro(M.r,M.g,M.b)})}function Me(o){const i=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),c=o.type==="mousedown"?"mouse":"pointer";if(c==="mouse"){if(i<Ge)return}else Ge=i+80;o.preventDefault(),o.stopPropagation(),Re(o.clientX,o.clientY),we(c,h=>{h.preventDefault(),Re(h.clientX,h.clientY)},()=>{})}function et(o){const i=oo(K.color),c=zo(i.r,i.g,i.b),h=Po(ae(Number(o)||0,0,360),c.s,c.v);At({color:ro(h.r,h.g,h.b)})}function tt(o,i){const c=oo(K.color),h={r:c.r,g:c.g,b:c.b};Number.isFinite(Number(i))&&(h[o]=ae(Number(i),0,255)),At({color:ro(h.r,h.g,h.b)})}function ht(){return(t.getState().overlays??[]).map((o,i)=>({overlay:o,index:i})).filter(o=>nn(o.overlay))}function gt(){const o=t.getState().overlays??[];if(_==null)return null;const i=o[_];return nn(i)?i:null}function ce(){const o=gt();if(!o)return!1;const i=no({tool:K.tool,color:o.color,width:o.width});return Oo(K,i)?!1:(K=i,!0)}function Se(o,i,c={}){if(!gt()||_==null)return;const I={};Object.prototype.hasOwnProperty.call(i,"color")&&(I.color=o.color),Object.prototype.hasOwnProperty.call(i,"width")&&(I.width=o.width),Object.keys(I).length&&t.updateOverlay(_,I,c)}function Ve(){return Tn(t)}function Ze(){return yn(e)}function at(o,i,c={}){const I=(t.getState().overlays??[])[o];nn(I)&&t.updateOverlay(o,Jt(I,Ve(),i),c)}function Et(o){const i=t.getState().overlays??[],c=i.length;if(typeof t.applyMut=="function")return t.applyMut(I=>({...I,overlays:[...on(I.overlays),{...o,timelineTrack:0}]})),c;const h=on(i);return t.commit?.({overlays:[...h,{...o,timelineTrack:0}]}),c}function St(o){const i=Ve();let c=ae(Ze(),0,Math.max(0,i-je)),h=Math.min(i,c+qt);h-c<je&&(c=ae(i-qt,0,Math.max(0,i-je)),h=Math.max(c+je,i));const I={...o,...Jt(null,i,{startAt:c,endAt:h,timelineTrack:0})},A=Et(I);_=Number.isInteger(A)?A:null,bt(e,"text",_==null?[]:[_]),S(),p(!0)}function Rt(){const{timelineInner:o,timelineHost:i}=Bn(e,t.getState());if(!o||!i){ve?.remove(),ve=null,ze&&Ie&&(ze.unobserve(Ie),Ie=null),Le=null;return}Le=o,(!ve||!ve.isConnected||ve.parentElement!==i)&&(ve?.remove(),ve=document.createElement("div"),ve.className="me-video-text-timeline me-video-overlay-timeline me-video-add-overlay-layer");for(const c of[...i.children])c!==ve&&c instanceof HTMLElement&&c.classList.contains("me-video-add-overlay-layer")&&c.remove();(ve.parentElement!==i||i.lastElementChild!==ve)&&i.appendChild(ve),ze&&Ie!==Le&&(Ie&&ze.unobserve(Ie),Ie=Le,ze.observe(Le))}function ut(o,i,c){if(!Le)return;const h=(t.getState().overlays??[])[o];if(!nn(h))return;if(c.shiftKey||c.ctrlKey||c.metaKey){c.preventDefault(),c.stopPropagation();const ge=Pt(e,"text",o,c,wo(t.getState()).map(Ae=>Ae.index));_=ge.length?ge[ge.length-1]:null,S(),p(!0);return}c.preventDefault(),c.stopPropagation(),_=o,bt(e,"text",[o]),S(),D||p(!0);const I=Ve(),A=Math.max(Le.clientWidth/I,.001),J=lt(h),M=Bt(h,J),z=Math.max(je,M-J),me=vt(h),ue=c.clientX,Ce=ge=>{const Ae=(ge.clientX-ue)/A,_e=t.getState().overlays??[];if(i==="move"){const st=Math.max(0,J+Ae),Nt=st+z,$t=pt(ve,_e,o,st,Nt,ge.clientY,me);at(o,{startAt:st,endAt:Nt,timelineTrack:$t},{transient:!0});return}if(i==="start"){const st=ae(J+Ae,0,M-je),Nt=pt(ve,_e,o,st,M,ge.clientY,me);at(o,{startAt:st,endAt:M,timelineTrack:Nt},{transient:!0});return}const Xe=Math.max(J+je,M+Ae),We=pt(ve,_e,o,J,Xe,ge.clientY,me);at(o,{startAt:J,endAt:Xe,timelineTrack:We},{transient:!0})},ke=ge=>{window.removeEventListener("pointermove",Ce),window.removeEventListener("pointerup",ke),window.removeEventListener("pointercancel",ke);const Ae=(ge.clientX-ue)/A,_e=t.getState().overlays??[];if(i==="move"){const st=Math.max(0,J+Ae),Nt=st+z,$t=pt(ve,_e,o,st,Nt,ge.clientY,me);at(o,{startAt:st,endAt:Nt,timelineTrack:$t});return}if(i==="start"){const st=ae(J+Ae,0,M-je),Nt=pt(ve,_e,o,st,M,ge.clientY,me);at(o,{startAt:st,endAt:M,timelineTrack:Nt});return}const Xe=Math.max(J+je,M+Ae),We=pt(ve,_e,o,J,Xe,ge.clientY,me);at(o,{startAt:J,endAt:Xe,timelineTrack:We})};window.addEventListener("pointermove",Ce),window.addEventListener("pointerup",ke),window.addEventListener("pointercancel",ke),Ct()}function It(o,i){if(Rt(),!ve||!Le||(ve.replaceChildren(),ve.hidden=o.length===0,!o.length))return;const c=Ve(),h=Le.clientWidth/c,I=Rn(t.getState()),A=new Map;for(const J of o){const M=vt(J.overlay),z=I.get(M)??M;let me=A.get(M);me||(me=document.createElement("div"),me.className="me-video-overlay-track-row",me.dataset.track=String(M),me.style.top=`${Ln(z)}px`,A.set(M,me),ve.appendChild(me));const ue=document.createElement("div");ue.className="me-video-text-track-clip me-video-add-track-clip",i.has(J.index)&&ue.classList.add("is-active");const Ce=lt(J.overlay),ke=Sn(J.overlay);ue.style.left=`${Ce*h}px`,ue.style.width=`${Math.max(36,ke*h)}px`;const ge=document.createElement("span");ge.className="me-video-text-track-icon",ge.textContent="+";const Ae=document.createElement("span");Ae.className="me-video-text-track-label",Ae.textContent=wr(J.overlay,r),Ae.title=Ae.textContent;const _e=document.createElement("span");_e.className="me-video-text-track-handle is-start";const Xe=document.createElement("span");Xe.className="me-video-text-track-handle is-end",ue.append(ge,Ae,_e,Xe),ue.addEventListener("pointerdown",We=>ut(J.index,"move",We)),_e.addEventListener("pointerdown",We=>ut(J.index,"start",We)),Xe.addEventListener("pointerdown",We=>ut(J.index,"end",We)),ue.addEventListener("click",We=>{if(We.preventDefault(),We.stopPropagation(),We.shiftKey||We.ctrlKey||We.metaKey){S(),Ct();return}const st=Pt(e,"text",J.index,We,o.map(Nt=>Nt.index));_=st.length?st[st.length-1]:null,S(),p(!0),Ct()}),me.appendChild(ue)}}function Lt(){ee||(ee=!0,a(()=>{ee=!1,Ct()}))}function jt(){xt.forEach(c=>{c.classList.toggle("is-active",c.dataset.tool===K.tool)}),wt.forEach(c=>{c.classList.toggle("is-active",c.dataset.color===K.color)});const o=oo(K.color),i=zo(o.r,o.g,o.b);he.classList.toggle("is-active",!yr.includes(K.color)),he.style.setProperty("--me-add-color-current",K.color),he.style.setProperty("--me-add-color-hue",Bi(i.h)),xe.style.background=K.color,C.style.background=K.color,x.style.left=`${i.s*100}%`,x.style.top=`${(1-i.v)*100}%`,y.value=String(Math.round(i.h)),Y.r.value=String(o.r),Y.g.value=String(o.g),Y.b.value=String(o.b),X.value=String(ae(Math.round(Number(K.width)||sn.width),_n,jn)),V.textContent=Fi(K.width),v.disabled=kr(K)}function At(o,i={}){const c=no({...K,...o});if(Oo(K,c)){i.applyToSelected&&Se(c,o,i.overlayOptions);return}K=c,i.applyToSelected!==!1&&Se(c,o,i.overlayOptions),jt(),Lt()}function Mt(){if(kr(K)){jt();return}K=no(),jt(),Lt()}function mt(o=pe){return o?[...o.children].filter(i=>i instanceof HTMLButtonElement&&i!==re&&!i.classList.contains("me-video-text-tool")):[]}function Ut(){re?.classList.toggle("is-active",D)}function S(){se&&(se.classList.contains("is-active")||se.click())}function R(){rn(e,s),Ht(e)}function U(){fe=null}function Te(){qe?.(),qe=null,U()}function Fe(){s.hidden=!D,Ut(),R()}function p(o){const i=!!o;if(i===D){Ct();return}D=i,D?(e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Ye}})),S()):(Te(),Oe?.(),Oe=null),Ct()}function g(){const o=e.querySelector(".me-video-toolrail");o&&(pe=o,se=io(mt(o)),(!re||!re.isConnected)&&(re=document.createElement("button"),re.type="button",re.className="me-video-text-tool me-video-add-tool",re.innerHTML=`<span class="me-video-text-tool-icon">${Ri()}</span><span class="me-video-text-tool-label">${r.tool}</span>`,re.title=r.tool,re.setAttribute("aria-label",r.tool),re.addEventListener("click",()=>{const i=!D;i&&S(),p(i)})),re.isConnected?re.parentElement===pe&&re!==pe.lastElementChild&&pe.appendChild(re):pe.appendChild(re),Fe())}function $(){const o=e.querySelector(".me-video-canvas-stage");if(!o){b?.remove(),b=null,it&&le&&(it.unobserve(le),le=null),N=null;return}N=o,N.style.position="relative",!b||!b.isConnected||b.parentElement!==N?(b?.remove(),b=document.createElement("div"),b.className="me-video-add-canvas-layer",b.addEventListener("pointerdown",en),b.addEventListener("mousedown",en),b.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),N.appendChild(b)):N.lastElementChild!==b&&N.appendChild(b),it&&le!==N&&(le&&it.unobserve(le),le=N,it.observe(N)),b.hidden=!D,b.dataset.tool=K.tool}function de(){if(!N)return null;const o=t.getState().canvas??{},i=Math.max(1,Number(o.w)||0),c=Math.max(1,Number(o.h)||0);if(!i||!c)return null;const h=N.getBoundingClientRect(),I=N.querySelector("canvas, video, img")||[...N.children].find(me=>me!==b)||null;let A=0,J=0,M=N.clientWidth||i,z=N.clientHeight||c;if(I instanceof HTMLElement){const me=I.getBoundingClientRect();me.width>0&&me.height>0&&(A=me.left-h.left,J=me.top-h.top,M=me.width,z=me.height)}if(!(M>0&&z>0)){const me=N.clientWidth||i,ue=N.clientHeight||c,Ce=Math.min(me/i,ue/c)||1;M=i*Ce,z=c*Ce,A=Math.max(0,(me-M)/2),J=Math.max(0,(ue-z)/2)}return{stageLeft:h.left,stageTop:h.top,left:A,top:J,width:M,height:z,canvasWidth:i,canvasHeight:c,scaleX:M/i,scaleY:z/c}}function be(o,i,c){return{x:ae((o-c.stageLeft-c.left)/c.scaleX,0,c.canvasWidth),y:ae((i-c.stageTop-c.top)/c.scaleY,0,c.canvasHeight)}}function ye(o,i,c){return Number.isFinite(o?.clientX)&&Number.isFinite(o?.clientY)?be(o.clientX,o.clientY,i):c}function Be(o,i){return{x:Math.min(o.x,i.x),y:Math.min(o.y,i.y),w:Math.abs(i.x-o.x),h:Math.abs(i.y-o.y)}}function Ee(o,i){const c=lt(o),h=Bt(o,c);return i>=c-.001&&i<=h+.001}function $e(o,i,c){const h=Pt(e,"text",o,i,c);_=h.length?h[h.length-1]:null,p(!0),Ct()}function Ne(o,i,c,h,I){const A=Math.atan2(h-i,c-o),J=Math.max(12,I*3.5),M=c-J*Math.cos(A-Math.PI/7),z=h-J*Math.sin(A-Math.PI/7),me=c-J*Math.cos(A+Math.PI/7),ue=h-J*Math.sin(A+Math.PI/7);return`M ${M} ${z} L ${c} ${h} L ${me} ${ue}`}function De(o){if(!Array.isArray(o)||o.length<4)return"";let i=`M ${o[0]} ${o[1]}`;for(let c=2;c<o.length;c+=2)i+=` L ${o[c]} ${o[c+1]}`;return i}function Qe(o){const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.classList.add("me-video-add-preview-svg"),i.setAttribute("viewBox",`0 0 ${o.canvasWidth} ${o.canvasHeight}`),i.setAttribute("width",String(o.width)),i.setAttribute("height",String(o.height)),i.style.left=`${o.left}px`,i.style.top=`${o.top}px`,i.style.width=`${o.width}px`,i.style.height=`${o.height}px`,i}function He(o,i,c){const h=document.createElementNS("http://www.w3.org/2000/svg",o);return h.classList.add("me-video-add-preview-shape"),h.setAttribute("stroke",i),h.setAttribute("stroke-width",String(c)),h}function Pe(o){if(!fe)return null;const i=Qe(o);if(fe.type==="pen"){const c=De(fe.points);if(!c)return i;const h=He("path",fe.color,fe.width);return h.setAttribute("d",c),i.appendChild(h),i}if(fe.type==="line"||fe.type==="arrow"){const c=He("line",fe.color,fe.width);if(c.setAttribute("x1",String(fe.x1)),c.setAttribute("y1",String(fe.y1)),c.setAttribute("x2",String(fe.x2)),c.setAttribute("y2",String(fe.y2)),i.appendChild(c),fe.type==="arrow"){const h=He("path",fe.color,fe.width);h.setAttribute("d",Ne(fe.x1,fe.y1,fe.x2,fe.y2,fe.width)),i.appendChild(h)}return i}if(fe.type==="rect"){const c=He("rect",fe.color,fe.width);return c.setAttribute("x",String(fe.x)),c.setAttribute("y",String(fe.y)),c.setAttribute("width",String(fe.w)),c.setAttribute("height",String(fe.h)),i.appendChild(c),i}if(fe.type==="ellipse"){const c=He("ellipse",fe.color,fe.width);return c.setAttribute("cx",String(fe.x+fe.w/2)),c.setAttribute("cy",String(fe.y+fe.h/2)),c.setAttribute("rx",String(Math.abs(fe.w/2))),c.setAttribute("ry",String(Math.abs(fe.h/2))),i.appendChild(c),i}return i}function Ue(){if($(),!b)return;const o=de();if(b.hidden=!D||!o,!D||!o){b.replaceChildren();return}b.dataset.tool=K.tool,b.replaceChildren();const i=Pe(o);i&&b.appendChild(i);const c=wo(t.getState()),h=new Set(pr(e,t.getState())),I=Ze(),A=c.map(z=>z.index),J=c.filter(z=>Ee(z.overlay,I)),M=K.tool==="eraser"?[]:h.size?J.filter(z=>h.has(z.index)):J;for(const z of M){const me=Gt(z.overlay);if(!me)continue;const ue=document.createElement("button");ue.type="button",ue.className="me-video-text-canvas-hit";const Ce=h.has(z.index),ke=Ce&&_===z.index;Ce&&ue.classList.add("is-active"),ue.title=wr(z.overlay,r),ue.style.left=`${o.left+me.x*o.scaleX}px`,ue.style.top=`${o.top+me.y*o.scaleY}px`,ue.style.width=`${Math.max(18,me.w*o.scaleX)}px`,ue.style.height=`${Math.max(18,me.h*o.scaleY)}px`;const ge=un(z.overlay);if(ge&&(ue.style.transform=`rotate(${ge}deg)`,ue.style.transformOrigin="center center"),ue.addEventListener("pointerdown",Ae=>{if(Ae.preventDefault(),Ae.stopPropagation(),Ae.shiftKey||Ae.ctrlKey||Ae.metaKey){$e(z.index,Ae,A);return}_=z.index,bt(e,"text",[z.index]),p(!0),ct(z.index,Ae,o)}),ke){for(const _e of dt){const Xe=document.createElement("span");Xe.className="me-video-text-canvas-handle",Xe.dataset.handle=_e.key,Xe.style.left=`${_e.x*100}%`,Xe.style.top=`${_e.y*100}%`,Xe.addEventListener("pointerdown",We=>{We.preventDefault(),We.stopPropagation(),_=z.index,bt(e,"text",[z.index]),p(!0),ft(z.index,_e,We,o)}),ue.appendChild(Xe)}const Ae=document.createElement("span");Ae.className="me-video-text-canvas-handle",Ae.dataset.handle=rt.key,Ae.style.left=`${rt.x*100}%`,Ae.style.top=`${rt.y*100}%`,Ae.addEventListener("pointerdown",_e=>{_e.preventDefault(),_e.stopPropagation(),_=z.index,bt(e,"text",[z.index]),p(!0),Ke(z.index,_e,o)}),ue.appendChild(Ae)}b.appendChild(ue)}}function ct(o,i,c){const h=(t.getState().overlays??[])[o];if(!nn(h))return;const I=t.getState().canvas??{w:1080,h:1920},A=Gt(h);if(!A)return;const J=i.clientX,M=i.clientY,z=Math.max(0,(Number(I.w)||0)-A.w),me=Math.max(0,(Number(I.h)||0)-A.h),ue=(ge,Ae,_e)=>{const Xe=(ge-J)/c.scaleX,We=(Ae-M)/c.scaleY,st=ae(A.x+Xe,0,z),Nt=ae(A.y+We,0,me),$t=Vo(h,st-A.x,Nt-A.y);t.updateOverlay(o,$t,_e?{transient:!0}:void 0)},Ce=ge=>{ge.preventDefault(),ue(ge.clientX,ge.clientY,!0)},ke=ge=>{window.removeEventListener("pointermove",Ce),window.removeEventListener("pointerup",ke),window.removeEventListener("pointercancel",ke),ue(ge.clientX,ge.clientY,!1)};window.addEventListener("pointermove",Ce),window.addEventListener("pointerup",ke),window.addEventListener("pointercancel",ke)}function ft(o,i,c,h){const I=(t.getState().overlays??[])[o];if(!nn(I))return;const A=Gt(I);if(!A)return;const J=t.getState().canvas??{w:1080,h:1920},M=i.x===.5?.5:1-i.x,z=i.y===.5?.5:1-i.y,me=A.x+A.w*M,ue=A.y+A.h*z,Ce=Math.max(.1,24/Math.max(24,A.w),24/Math.max(24,A.h)),ke=i.x===.5?1/0:Math.max(.1,(M===0?(Number(J.w)||0)-me:me)/Math.max(1,A.w)),ge=i.y===.5?1/0:Math.max(.1,(z===0?(Number(J.h)||0)-ue:ue)/Math.max(1,A.h)),Ae=Math.max(Ce,Math.min(ke,ge,8)),_e=(st,Nt,$t)=>{const cn=be(st,Nt,h),dn=[];i.x!==.5&&dn.push(Math.abs(cn.x-me)/Math.max(1,A.w)),i.y!==.5&&dn.push(Math.abs(cn.y-ue)/Math.max(1,A.h));const Hn=dn.length?Math.max(...dn):1,hn=ae(Hn,Ce,Ae),Xn=Yo(I,hn),xn=Gt(Xn);if(!xn)return;const Br=me-xn.w*M,$r=ue-xn.h*z,Dr=Vo(Xn,Br-xn.x,$r-xn.y);t.updateOverlay(o,Dr,$t?{transient:!0}:void 0)},Xe=st=>{st.preventDefault(),_e(st.clientX,st.clientY,!0)},We=st=>{window.removeEventListener("pointermove",Xe),window.removeEventListener("pointerup",We),window.removeEventListener("pointercancel",We),_e(st.clientX,st.clientY,!1)};window.addEventListener("pointermove",Xe),window.addEventListener("pointerup",We),window.addEventListener("pointercancel",We)}function Ke(o,i,c){const h=(t.getState().overlays??[])[o];if(!nn(h))return;const I=Gt(h);if(!I)return;const A=c.stageLeft+c.left+(I.x+I.w/2)*c.scaleX,J=c.stageTop+c.top+(I.y+I.h/2)*c.scaleY,M=Math.atan2(i.clientY-J,i.clientX-A),z=un(h),me=(ke,ge,Ae,_e)=>{const Xe=Math.atan2(ge-J,ke-A);let We=In(z+(Xe-M)*180/Math.PI);_e&&(We=Math.round(We/15)*15),t.updateOverlay(o,{rotation:We},Ae?{transient:!0}:void 0)},ue=ke=>{ke.preventDefault(),me(ke.clientX,ke.clientY,!0,ke.shiftKey)},Ce=ke=>{window.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",Ce),window.removeEventListener("pointercancel",Ce),me(ke.clientX,ke.clientY,!1,ke.shiftKey)};window.addEventListener("pointermove",ue),window.addEventListener("pointerup",Ce),window.addEventListener("pointercancel",Ce)}function nt(o,i,c,h,I,A,J){const M=I-c,z=A-h,me=M*M+z*z||1,ue=ae(((o-c)*M+(i-h)*z)/me,0,1),Ce=c+ue*M,ke=h+ue*z;return(o-Ce)**2+(i-ke)**2<=J*J}function ot(o,i,c){if(!o)return!1;if(o.type==="pen"){for(let h=0;h+3<o.points.length;h+=2)if(nt(i,c,o.points[h],o.points[h+1],o.points[h+2],o.points[h+3],Nn+(Number(o.width)||0)/2))return!0;return!1}return o.type==="line"||o.type==="arrow"?nt(i,c,o.x1,o.y1,o.x2,o.y2,Nn+(Number(o.width)||0)/2):o.type==="rect"||o.type==="ellipse"?i>=o.x-Nn&&i<=o.x+o.w+Nn&&c>=o.y-Nn&&c<=o.y+o.h+Nn:!1}function Ot(o){const i=ht();for(let c=i.length-1;c>=0;c--)if(ot(i[c].overlay,o.x,o.y)){t.removeOverlay(i[c].index),Lt();return}}function Ft(o,i,c){Ot(o),kt(c,h=>{h.preventDefault(),Ot(be(h.clientX,h.clientY,i))},()=>{})}function kt(o,i,c){Te();const h=o==="mouse"?["mousemove"]:["pointermove"],I=o==="mouse"?["mouseup"]:["pointerup","pointercancel"],A=M=>{i(M)},J=M=>{h.forEach(z=>window.removeEventListener(z,A)),I.forEach(z=>window.removeEventListener(z,J)),qe=null,c(M)};qe=()=>{h.forEach(M=>window.removeEventListener(M,A)),I.forEach(M=>window.removeEventListener(M,J))},h.forEach(M=>window.addEventListener(M,A)),I.forEach(M=>window.addEventListener(M,J))}function ln(o,i,c){const h=[o.x,o.y],I=A=>{const J=h[h.length-2],M=h[h.length-1];Math.hypot(A.x-J,A.y-M)<1||h.push(A.x,A.y)};fe={type:"pen",points:[...h],color:K.color,width:K.width},Ue(),kt(c,A=>{A.preventDefault();const J=be(A.clientX,A.clientY,i);I(J),fe={type:"pen",points:[...h],color:K.color,width:K.width},Ue()},A=>{const J=ye(A,i,{x:h[h.length-2],y:h[h.length-1]});I(J);const M=[...h];U(),Ue(),!(M.length<4)&&(St({type:"pen",points:M,color:K.color,width:K.width,rotation:0}),Lt())})}function an(o,i,c,h){const I=Hi[o];if(!I)return;const A=J=>{if(I==="line"||I==="arrow")return{type:I,x1:i.x,y1:i.y,x2:J.x,y2:J.y,color:K.color,width:K.width};const M=Be(i,J);return{type:I,x:M.x,y:M.y,w:M.w,h:M.h,color:K.color,width:K.width}};fe=A(i),Ue(),kt(h,J=>{J.preventDefault();const M=be(J.clientX,J.clientY,c);fe=A(M),Ue()},J=>{const M=ye(J,c,i),z=A(M);U(),Ue(),z&&((z.type==="line"||z.type==="arrow")&&Math.hypot(z.x2-z.x1,z.y2-z.y1)<2||(z.type==="rect"||z.type==="ellipse")&&(z.w<2||z.h<2)||St({...z,rotation:0}))})}function en(o){if(!D)return;const i=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),c=o.type==="mousedown"?"mouse":"pointer";if(c==="mouse"){if(i<Je)return}else Je=i+80;if(typeof o.button=="number"&&o.button!==0)return;o.preventDefault(),o.stopPropagation();const h=de();if(!h)return;const I=be(o.clientX,o.clientY,h);if(K.tool==="eraser"){Ft(I,h,c);return}if(K.tool==="brush"){ln(I,h,c);return}an(K.tool,I,h,c)}function Ct(){const o=pr(e,t.getState());_=o.length?o[o.length-1]:null,ce(),mt().find(c=>c!==se&&!c.hidden&&c.style.display!=="none"&&c.classList.contains("is-active"))&&(D=!1,Te()),D&&S(),jt(),Fe(),Ue(),It(wo(t.getState()),new Set(o)),R()}function tn(o){return!!o&&(o===s||s.contains(o)||o===re||re?.contains?.(o)||o===ve||ve?.contains?.(o)||o===b||b?.contains?.(o))}function m(o){return o.some(i=>{if(!tn(i.target))return!0;for(const c of i.addedNodes)if(!tn(c))return!0;for(const c of i.removedNodes)if(!tn(c))return!0;return!1})}const P=new MutationObserver(o=>{m(o)&&(g(),Lt())}),W=o=>{o?.detail?.id!==Ye&&D&&p(!1)},l=()=>{Lt()};P.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",W),e.addEventListener(zt,l),window.addEventListener("resize",Lt);const d=t.subscribe(()=>{Lt()});return v.addEventListener("click",()=>{Mt()}),w.addEventListener("pointerdown",Me),w.addEventListener("mousedown",Me),y.addEventListener("input",()=>{et(y.value)}),Object.entries(Y).forEach(([o,i])=>{i.addEventListener("input",()=>{tt(o,i.value)})}),X.addEventListener("input",()=>{At({width:ae(Number(X.value)||sn.width,_n,jn)})}),g(),Ct(),{destroy(){P.disconnect(),d(),Te(),Oe?.(),Oe=null,ze&&Ie&&ze.unobserve(Ie),ze?.disconnect?.(),it&&le&&it.unobserve(le),it?.disconnect?.(),e.removeEventListener("me-video-inspector-open",W),e.removeEventListener(zt,l),window.removeEventListener("resize",Lt),re?.remove(),ve?.remove(),b?.remove(),s.remove(),Ht(e)}}}function ma(e,t,n){Qt();const r=Ur(n()),a=document.createElement("div");a.className="me-video-text-panel me-video-audio-panel",a.hidden=!0;const s=document.createElement("div");s.className="me-video-text-toolbar";const u=document.createElement("strong");u.textContent=r.title;const f=Yt(r.close);s.append(u,f);const v=document.createElement("div");v.className="me-video-audio-source";const k=document.createElement("div");k.className="me-video-text-grid";function H(_=""){const K=document.createElement("input");return K.type="text",K.readOnly=!0,K.className=["me-video-audio-value",_].filter(Boolean).join(" "),K}function G(_,K,fe){const qe=document.createElement("div");return qe.className="me-video-text-inline",qe.append(K,fe),to(_,qe)}const T=document.createElement("input");T.type="range",T.min="50",T.max="200",T.step="1",T.disabled=!1,T.value="100",T.title=r.speedHint;const F=H("is-compact is-readonly");F.readOnly=!1,F.classList.remove("is-readonly"),F.inputMode="decimal",F.title=r.speedHint;const j=G(r.speed,T,F),oe=document.createElement("input");oe.type="range",oe.min=String(Wt),oe.max="1",oe.step="0.01",oe.disabled=!1,oe.value="1";const Q=H("is-readonly");Q.readOnly=!1,Q.classList.remove("is-readonly"),Q.inputMode="decimal";const Z=G(r.duration,oe,Q),ie=document.createElement("input");ie.type="range",ie.min="0",ie.max="2",ie.step="0.01";const he=H(),ne=G(r.volume,ie,he),xe=document.createElement("input");xe.type="range",xe.min="0",xe.max="0.1",xe.step="0.05";const te=H(),w=G(r.fadeIn,xe,te),x=document.createElement("input");x.type="range",x.min="0",x.max="0.1",x.step="0.05";const E=H(),C=G(r.fadeOut,x,E);k.append(j,Z,ne,w,C),a.append(s,v,k);let y=null,O=!1,Y=!1;const L="audio",B=typeof requestAnimationFrame=="function"?requestAnimationFrame:_=>setTimeout(_,16);function q(_){const K=Math.max(0,Number(_)||0);return K<=1e-4?"-\u221EdB":`${(20*Math.log10(K)).toFixed(1)}dB`}function V(){const _=e.querySelector(".me-video-trim-panel");if(_ instanceof HTMLElement)for(const K of[..._.children].slice(2))K instanceof HTMLElement&&K.querySelector('input[type="range"]')&&/♪/.test(K.textContent??"")&&(K.style.display="none")}function X(){a.hidden=!O,rn(e,a),Ar(e,a,O),Ht(e)}function re(_){const K=!!_;if(K===O){X();return}O=K,O&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:L}})),X()}function pe(){pn(e,{audio:[]},{audio:null})}function se(_,K,fe,qe){let Oe=ae(Number(K)||0,0,_),Je=ae(Number(fe)||0,0,_);return Oe+Je<=_?{fadeIn:Oe,fadeOut:Je}:(qe==="fadeOut"?Oe=Math.max(0,_-Je):Je=Math.max(0,_-Oe),{fadeIn:Oe,fadeOut:Je})}function N(_){const K=t.getAudioSource?.(_?.srcIdx);return Math.max(Dt(_),Number(K?.duration)||0)}function b(_,K=!1,fe="fadeIn"){const qe=t.getState(),Oe=qe.audioClips??[];if(y==null||!Oe[y])return;const Je=Oe[y],Ge=Dt({...Je,..._}),Ye=se(Ge,_.fadeIn??Je.fadeIn,_.fadeOut??Je.fadeOut,fe),dt=ze=>({...ze,..._,speed:bn(_.speed??ze.speed),volume:ae(Number(_.volume??ze.volume)||0,0,2),fadeIn:Ye.fadeIn,fadeOut:Ye.fadeOut}),rt=typeof t.patchAudio=="function"?t.patchAudio(qe,y,dt).audioClips??Oe:Oe.map((ze,it)=>it===y?dt(ze):ze);if(K){t.patch({audioClips:rt},{transient:!0});return}t.commit({audioClips:rt})}function le(_,K=!1){const qe=t.getState().audioClips??[];if(y==null||!qe[y])return;const Oe=qe[y],Je=N(Oe),Ge=Math.max(0,Number(Oe.in)||0),Ye=Math.max(Wt,Je-Ge),dt=ae(Number(_)||0,Wt,Ye);b({out:Ge+dt},K,"fadeIn")}function Le(){if(V(),!(e.querySelector(".me-video-trim-panel")instanceof HTMLElement)){O&&re(!1),y=null;return}const K=t.getState(),fe=K.audioClips??[],qe=Mn(e,fe),Oe=$n(e,K.clips??[]),Je=Dn(e,K),Ge=qe.length===1&&Oe.length===0&&Je.length===0?qe[0]:null;if(y=Number.isInteger(Ge)&&fe[Ge]?Ge:null,y==null){O&&re(!1);return}const Ye=fe[y],dt=t.getAudioSource?.(Ye.srcIdx),rt=dt?.file?.name||dt?.name||`${r.source} ${y+1}`,ze=Dt(Ye),it=Math.max(ze,Number(dt?.duration)||0),xt=Math.max(ze,Math.max(Wt,it-Math.max(0,Number(Ye.in)||0))),wt=bn(Ye.speed),we=ae(Number(Ye.fadeIn)||0,0,ze),Re=ae(Number(Ye.fadeOut)||0,0,Math.max(0,ze-we));v.textContent=`${r.source}: ${rt}`,T.value=String(Math.round(wt*100)),F.value=Qr(wt),oe.max=String(xt),oe.value=String(ae(ze,Wt,xt)),Q.value=mn(ze),ie.value=String(ae(Number(Ye.volume)||0,0,2)),he.value=q(Ye.volume),xe.max=String(Math.max(.1,ze)),x.max=String(Math.max(.1,ze)),xe.value=String(we),x.value=String(Re),te.value=mn(we),E.value=mn(Re),xe.disabled=ze<=1e-4,x.disabled=ze<=1e-4,re(!0)}function ve(){Y||(Y=!0,B(()=>{Y=!1,Le()}))}const Ie=_=>{if(_?.detail?.id!==L){if(_t(e,"audio").length>0){pe();return}O&&re(!1)}},D=new MutationObserver(()=>{ve()});D.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",Ie),e.addEventListener(zt,ve);const ee=t.subscribe(()=>{ve()});return f.addEventListener("click",()=>{pe()}),T.addEventListener("input",()=>{b({speed:bn((Number(T.value)||100)/100)},!0,"fadeIn")}),T.addEventListener("change",()=>{b({speed:bn((Number(T.value)||100)/100)},!1,"fadeIn")}),F.addEventListener("change",()=>{const _=y==null?null:(t.getState().audioClips??[])[y]??null;b({speed:ei(F.value,_?.speed??1)},!1,"fadeIn")}),F.addEventListener("keydown",_=>{_.key==="Enter"&&(_.preventDefault(),F.blur())}),oe.addEventListener("input",()=>{le(Number(oe.value)||0,!0)}),oe.addEventListener("change",()=>{le(Number(oe.value)||0,!1)}),Q.addEventListener("change",()=>{const _=y==null?null:(t.getState().audioClips??[])[y]??null;le(ti(Q.value,Dt(_)),!1)}),Q.addEventListener("keydown",_=>{_.key==="Enter"&&(_.preventDefault(),Q.blur())}),ie.addEventListener("input",()=>{b({volume:Number(ie.value)||0},!0,"fadeIn")}),ie.addEventListener("change",()=>{b({volume:Number(ie.value)||0},!1,"fadeIn")}),xe.addEventListener("input",()=>{b({fadeIn:Number(xe.value)||0},!0,"fadeIn")}),xe.addEventListener("change",()=>{b({fadeIn:Number(xe.value)||0},!1,"fadeIn")}),x.addEventListener("input",()=>{b({fadeOut:Number(x.value)||0},!0,"fadeOut")}),x.addEventListener("change",()=>{b({fadeOut:Number(x.value)||0},!1,"fadeOut")}),Le(),{destroy(){D.disconnect(),ee(),e.removeEventListener("me-video-inspector-open",Ie),e.removeEventListener(zt,ve),Ar(e,a,!1),a.remove(),Ht(e)}}}function pa(e,t,n=()=>null){Qt();let r=!1,a=null,s=null,u=null,f=null;const v=typeof requestAnimationFrame=="function"?requestAnimationFrame:x=>setTimeout(x,16);function k(){r||(r=!0,v(()=>{r=!1,te()}))}function H(){return Xt(typeof n=="function"?n():null)==="en"?"Cover":"\u5C01\u9762"}function G(x){return[x.textContent,x.title,x.getAttribute("aria-label"),x.getAttribute("data-tool"),x.getAttribute("data-testid")].filter(Boolean).join(" ").replace(/\s+/g," ").trim()}function T(x){if(!(x instanceof HTMLElement)||x===a||x.classList.contains("me-video-cover-set-btn")||x.classList.contains("me-video-cover-upload-btn")||x.closest(".me-video-timeline-area"))return!1;for(let C=x.parentElement,y=0;C&&y<8;y+=1,C=C.parentElement){const O=String(C.textContent||"");if(O.includes("\u9009\u62E9\u5C01\u9762\u5E27")||/select\s+cover\s+frame/i.test(O))return!1}const E=G(x);return E?!!(E.includes("\u5C01\u9762")||/\b(cover|poster|thumbnail)\b/i.test(E)):!1}function F(){const x=e.querySelector(".me-video-toolrail"),C=(x?[...x.querySelectorAll('button,[role="button"]')]:[]).find(T);return C instanceof HTMLElement?C:[...e.querySelectorAll('button,[role="button"]')].find(T)}function j(){const x=e.querySelector(".me-video-timeline-scroll");return x instanceof HTMLElement?x:null}function oe(x){return[...x.children].find(E=>E instanceof HTMLElement&&E!==f&&E.dataset.meTimelineCoverSlot!=="true")}function Q(x){const C=x?.querySelector("[data-clipblock]")?.parentElement;return C instanceof HTMLElement?C:null}function Z(x,E){return f instanceof HTMLElement||(f=document.createElement("div"),f.className="me-video-timeline-cover-slot",f.dataset.meTimelineCoverSlot="true"),x.style.display="flex",x.style.alignItems="flex-start",E instanceof HTMLElement&&(E.style.flex="0 0 auto"),(f.parentElement!==x||x.firstElementChild!==f)&&x.insertBefore(f,E??x.firstChild),f}function ie(){return a instanceof HTMLButtonElement||(a=document.createElement("button"),a.type="button",a.className="me-video-timeline-cover-proxy",a.innerHTML='<img alt="" draggable="false"><svg class="me-video-timeline-cover-proxy-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20h16"/><path d="M6 18l9.5-9.5a2.1 2.1 0 0 1 3 3L9 21H5v-4z"/><path d="M14 6l4 4"/></svg><span class="me-video-timeline-cover-proxy-label"></span>',a.addEventListener("click",x=>{x.preventDefault(),x.stopPropagation(),u?.click()})),a}function he(){typeof t?.commit=="function"&&t.commit({poster:void 0}),k()}function ne(){return s instanceof HTMLButtonElement||(s=document.createElement("button"),s.type="button",s.className="me-video-timeline-cover-clear",s.innerHTML='<svg viewBox="0 0 12 12" aria-hidden="true"><path d="M3 3l6 6M9 3L3 9"/></svg>',s.addEventListener("click",x=>{x.preventDefault(),x.stopPropagation(),he()})),s}function xe(x,E,C){const y=H(),O=ie(),Y=ne(),L=O.querySelector(".me-video-timeline-cover-proxy-label");L&&(L.textContent=y);const B=O.querySelector("img"),q=typeof t?.getState=="function"?t.getState():{},V=q?.poster?.useAsVideoCover&&typeof q.poster.preview=="string"?q.poster.preview:"";B instanceof HTMLImageElement&&(V?B.src=V:B.removeAttribute("src")),O.classList.toggle("has-cover-image",!!V),O.title=x.title||x.getAttribute("aria-label")||y,O.setAttribute("aria-label",O.title),O.classList.toggle("is-active",x.classList.contains("is-active")||x.getAttribute("aria-pressed")==="true"),O.parentElement!==E&&E.insertBefore(O,E.firstChild),Y.hidden=!V,Y.title=Xt(typeof n=="function"?n():null)==="en"?"Remove cover":"\u53D6\u6D88\u5C01\u9762",Y.setAttribute("aria-label",Y.title),Y.parentElement!==E&&E.appendChild(Y),E.style.overflow="visible"}function te(){const x=F(),E=j(),C=E instanceof HTMLElement?oe(E):null,y=C instanceof HTMLElement?Q(C):null;if(!(x instanceof HTMLElement)||!(E instanceof HTMLElement)||!(C instanceof HTMLElement)||!(y instanceof HTMLElement)){u&&(u.removeAttribute("data-me-cover-hidden"),u=null),a?.remove(),s?.remove(),f?.remove(),f=null;return}u&&u!==x&&u.removeAttribute("data-me-cover-hidden"),u=x,u.setAttribute("data-me-cover-hidden","true");const O=Z(E,C);xe(x,O,y)}const w=new MutationObserver(()=>{k()});return w.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","title","aria-label","aria-pressed"]}),k(),{destroy(){w.disconnect(),u?.removeAttribute("data-me-cover-hidden"),a?.remove(),s?.remove(),f?.remove()}}}function fa(e,t,n=()=>null){Qt();let r=!1,a=null,s=null,u=null;const f=typeof requestAnimationFrame=="function"?requestAnimationFrame:L=>setTimeout(L,16);function v(){r||(r=!0,f(()=>{r=!1,y()}))}function k(){return Xt(typeof n=="function"?n():null)==="en"}function H(){const B=[...e.querySelectorAll("button")].filter(q=>{const V=String(q.textContent||q.title||"").trim();return V.includes("\u5BFC\u51FA\u5C01\u9762")||/export\s+cover/i.test(V)});for(const q of B){if(!(q instanceof HTMLButtonElement))continue;let V=q.parentElement;for(let X=0;V&&X<8;X+=1,V=V.parentElement){const re=String(V.textContent||"");if(re.includes("\u9009\u62E9\u5C01\u9762\u5E27")||/select\s+cover\s+frame/i.test(re))return{root:V,exportButton:q}}}return null}function G(L){const q=String(L.textContent||"").match(/(\d{1,2}:\d{2}(?:\.\d+)?)\s*\//);if(q){const X=Jn(q[1]);if(Number.isFinite(X))return X}const V=L.querySelector('input[type="range"]');if(V instanceof HTMLInputElement){const X=Number(V.value);if(Number.isFinite(X))return Math.max(0,X)}return 0}function T(L){return new Promise((B,q)=>{const V=new Image;V.onload=()=>B(V),V.onerror=q,V.src=L})}function F(L,B){const q=Math.max(1,Math.round(Number(L)||0)),V=Math.max(1,Math.round(Number(B)||0));if(!q||!V)return null;const re=Math.min(1,1920/Math.max(q,V));return{width:Math.max(1,Math.round(q*re)),height:Math.max(1,Math.round(V*re))}}function j(L,B=null){const q=L instanceof HTMLImageElement?L.naturalWidth:L.videoWidth,V=L instanceof HTMLImageElement?L.naturalHeight:L.videoHeight;if(!q||!V)return"";const X=B?F(B.width,B.height):null,re=X?.width??q,pe=X?.height??V,se=document.createElement("canvas");se.width=re,se.height=pe;const N=se.getContext("2d");if(!N)return"";if(X){const b=Math.max(re/q,pe/V),le=re/b,Le=pe/b,ve=Math.max(0,(q-le)/2),Ie=Math.max(0,(V-Le)/2);N.drawImage(L,ve,Ie,Math.min(q,le),Math.min(V,Le),0,0,re,pe)}else N.drawImage(L,0,0,q,V);return se.toDataURL("image/png")}async function oe(L){const B=String(L||"").trim();if(!B)return"";if(/^data:image\/(?:png|jpe?g);base64,/i.test(B))return B;try{const V=await(await fetch(B)).blob(),X=URL.createObjectURL(V);try{const re=await T(X);return j(re)}finally{URL.revokeObjectURL(X)}}catch{try{const q=await T(B);return j(q)}catch{return""}}}async function Q(L){const B=L.getBoundingClientRect(),q=B.top+B.height*.68;function V(b){const le=b.getBoundingClientRect();return le.width<80||le.height<120||le.top>q?null:le}const X=[...L.querySelectorAll("*")].map(b=>{if(!(b instanceof HTMLElement))return null;const le=V(b);if(!le)return null;const ve=getComputedStyle(b).backgroundImage.match(/url\(["']?(.+?)["']?\)/);return ve?{node:b,rect:le,src:ve[1]}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0];if(X?.src){const b=await oe(X.src);if(b)return b}const re=[...L.querySelectorAll("canvas")].map(b=>{const le=V(b);return le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(re instanceof HTMLCanvasElement)try{return re.toDataURL("image/png")}catch{return""}const se=[...L.querySelectorAll("video")].map(b=>{const le=V(b);return b instanceof HTMLVideoElement&&le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(se instanceof HTMLVideoElement&&se.videoWidth&&se.videoHeight)try{const b=document.createElement("canvas");b.width=se.videoWidth,b.height=se.videoHeight;const le=b.getContext("2d");return le?(le.drawImage(se,0,0,b.width,b.height),b.toDataURL("image/png")):""}catch{return""}const N=[...L.querySelectorAll("img")].map(b=>{const le=V(b);return b instanceof HTMLImageElement&&b.src&&le?{node:b,rect:le}:null}).filter(Boolean).sort((b,le)=>le.rect.width*le.rect.height-b.rect.width*b.rect.height)[0]?.node;if(N instanceof HTMLImageElement){try{const b=j(N);if(b)return b}catch{}return oe(N.src)}return""}function Z(L){const B=L.getBoundingClientRect(),q=B.top+B.height*.68;function V(pe){const se=pe.getBoundingClientRect();return se.width<80||se.height<120||se.top>q?null:se}const X=[];for(const pe of L.querySelectorAll("video,canvas,img")){const se=V(pe);se&&(pe instanceof HTMLVideoElement&&pe.videoWidth&&pe.videoHeight?X.push({width:pe.videoWidth,height:pe.videoHeight,area:se.width*se.height}):pe instanceof HTMLCanvasElement&&pe.width&&pe.height?X.push({width:pe.width,height:pe.height,area:se.width*se.height}):pe instanceof HTMLImageElement&&X.push({width:pe.naturalWidth||se.width,height:pe.naturalHeight||se.height,area:se.width*se.height}))}const re=X.filter(pe=>pe.width>0&&pe.height>0).sort((pe,se)=>se.area-pe.area)[0];return re?F(re.width,re.height):null}function ie(L){return new Promise((B,q)=>{const V=new FileReader;V.onload=()=>B(String(V.result||"")),V.onerror=()=>q(V.error),V.readAsDataURL(L)})}async function he(L,B){const q=String(L?.name||"");if(!(!!L&&(/^image\//.test(L.type||"")||/\.(png|jpe?g|webp|gif|bmp)$/i.test(q))))return"";const X=await ie(L);if(!X)return"";const re=await T(X);return j(re,Z(B))}function ne(L){const B=[...L.querySelectorAll("button")],q=B.find(X=>{if(X===a)return!1;const re=String(X.textContent||X.title||X.getAttribute("aria-label")||"").trim();return re==="\xD7"||re==="\xD7"||re.includes("\u5173\u95ED")||/\b(close|dismiss)\b/i.test(re)});if(q instanceof HTMLButtonElement){q.click();return}const V=B.find(X=>{const re=String(X.textContent||"").trim();return re==="\u53D6\u6D88"||/^cancel$/i.test(re)});if(V instanceof HTMLButtonElement){V.click();return}document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0}))}function xe(L,B){const q=G(L),V={time:q,useAsVideoCover:!0,...B?{preview:B}:{}};typeof t?.commit=="function"?t.commit({poster:V}):typeof t?.setPoster=="function"&&t.setPoster(q),ne(L),v()}async function te(L){const B=await Q(L);xe(L,B)}async function w(L,B){const q=await he(B,L);q&&xe(L,q)}function x(L){a instanceof HTMLButtonElement||(a=document.createElement("button"),a.type="button",a.className="me-video-cover-set-btn",a.addEventListener("click",async V=>{V.preventDefault(),V.stopPropagation();const X=H();if(X?.root){a.disabled=!0;try{await te(X.root)}finally{a.disabled=!1}}}));const q=!!(typeof t?.getState=="function"?t.getState():{})?.poster?.useAsVideoCover;return a.textContent=q?k()?"Cover set":"\u5DF2\u8BBE\u4E3A\u5C01\u9762":k()?"Set as cover":"\u8BBE\u4E3A\u5C01\u9762",a.classList.toggle("is-set",q),a.title=a.textContent,a.setAttribute("aria-label",a.textContent),a}function E(){return u instanceof HTMLInputElement||(u=document.createElement("input"),u.type="file",u.accept="image/png,image/jpeg,image/webp,image/*",u.hidden=!0,u.setAttribute("aria-hidden","true"),u.addEventListener("change",async()=>{const L=u.files?.[0];if(u.value="",!L)return;const B=H();if(B?.root){s instanceof HTMLButtonElement&&(s.disabled=!0);try{await w(B.root,L)}finally{s instanceof HTMLButtonElement&&(s.disabled=!1)}}}),e.appendChild(u)),u}function C(L){return s instanceof HTMLButtonElement||(s=document.createElement("button"),s.type="button",s.className="me-video-cover-upload-btn",s.addEventListener("click",B=>{B.preventDefault(),B.stopPropagation(),E().click()})),s.textContent=k()?"Upload cover":"\u4E0A\u4F20\u5C01\u9762",s.title=s.textContent,s.setAttribute("aria-label",s.textContent),s}function y(){const L=H();if(!L?.root||!L.exportButton){a?.remove(),s?.remove();return}const B=x(L.root),q=C(L.root),V=L.exportButton.parentElement;V instanceof HTMLElement&&((B.parentElement!==L.exportButton.parentElement||B.nextElementSibling!==L.exportButton)&&V.insertBefore(B,L.exportButton),(q.parentElement!==V||q.nextElementSibling!==B)&&V.insertBefore(q,B))}const O=new MutationObserver(v);O.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden","value"]});const Y=typeof t?.subscribe=="function"?t.subscribe(v):null;return v(),{destroy(){O.disconnect(),Y?.(),a?.remove(),s?.remove(),u?.remove()}}}function va(e,t,n=()=>null){kn();let r=!1;const a=typeof requestAnimationFrame=="function"?requestAnimationFrame:w=>setTimeout(w,16);function s(w){return!!w.closest(["[data-clipblock]","[data-audioclip]",".me-video-text-track-clip",".me-video-text-canvas-hit",".me-video-text-chip",".me-video-trim-action-btn",".me-video-transition-marker",".me-video-text-panel",".me-video-inspector-rail",".me-video-toolrail button",".me-video-timeline-zoom button","input","select","textarea","button","label"].join(","))}function u(w){return!!w.closest(["input","select","textarea",'[contenteditable="true"]','[contenteditable=""]'].join(","))}function f(){r||(r=!0,a(()=>{r=!1,oe()}))}function v(){const w=e.querySelector(".me-video-timeline-scroll");if(!(w instanceof HTMLElement))return;const x=Xt(typeof n=="function"?n():null);w.title=x==="en"?"Hold Ctrl or Shift to select multiple layers.":"\u6309\u4F4F Ctrl \u6216 Shift \u53EF\u591A\u9009\u56FE\u5C42\u3002"}function k(){const w=new Set(_t(e,"video"));for(const x of e.querySelectorAll("[data-clipblock]")){const E=Number(x.getAttribute("data-clipblock"));x.classList.toggle("me-video-multi-selected",Number.isInteger(E)&&w.has(E))}}function H(w=1/0){const x=Fn(e);if(!(x instanceof HTMLElement))return[];const E=[];for(const C of x.querySelectorAll("span")){if(!String(C.textContent??"").trim().startsWith("\u266A"))continue;const O=C.parentElement;!(O instanceof HTMLElement)||E.includes(O)||E.push(O)}return Number.isFinite(w)?E.slice(0,Math.max(0,w)):E}function G(){const w=t.getState().audioClips??[],x=new Set(_t(e,"audio")),E=H(),C=E.slice(0,w.length);E.slice(w.length).forEach(y=>{y instanceof HTMLElement&&(y.removeAttribute("data-audioclip"),y.classList.remove("me-video-multi-selected"),y.style.removeProperty("background"),y.style.removeProperty("border"),y.style.removeProperty("box-shadow"),y.style.removeProperty("color"),y.style.removeProperty("transform"),y.style.removeProperty("opacity"))}),C.forEach((y,O)=>{y.dataset.audioclip=String(O);const Y=x.has(O),L=[...y.children].filter(N=>N instanceof HTMLElement),B=L.length>1?1:0,q=L[B]??null,V=L.filter((N,b)=>b!==B),X=[...y.querySelectorAll("span")],re=Y?"linear-gradient(180deg, rgba(34,197,94,0.96) 0%, rgba(21,128,61,0.94) 100%)":"linear-gradient(180deg, rgba(220,252,231,0.98) 0%, rgba(187,247,208,0.94) 100%)",pe=Y?"2px solid rgba(21,128,61,0.96)":"2px solid rgba(34,197,94,0.5)",se="#166534";y.classList.toggle("me-video-multi-selected",Y),y.style.boxShadow=Y?"0 0 0 2px rgba(34,197,94,0.22), 0 8px 18px rgba(22,101,52,0.16)":"0 1px 6px rgba(22,101,52,0.08)",y.style.background=re,y.style.border=pe,y.style.color=se,y.style.transform=Y?"translateY(-1px)":"none",y.style.opacity=Y?"1":"0.98",q instanceof HTMLElement&&(q.style.background=re,q.style.border=pe,q.style.color=se,q.style.boxShadow=Y?"0 0 0 1px rgba(21,128,61,0.14), 0 8px 18px rgba(22,101,52,0.14)":"0 1px 6px rgba(22,101,52,0.08)"),V.forEach(N=>{N.style.background=Y?"rgba(21,128,61,0.92)":"rgba(34,197,94,0.72)",N.style.opacity="1"}),X.forEach((N,b)=>{N.style.color=b===0?se:"rgba(22,101,52,0.9)",N.style.opacity="1"})})}function T(){return[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].map(w=>{if(!(w instanceof HTMLElement)||w.tagName.toLowerCase()!=="button")return w;const x=document.createElement("div");for(const E of[...w.attributes])E.name==="type"||E.name==="disabled"||x.setAttribute(E.name,E.value);return x.innerHTML=w.innerHTML,x.style.cssText=w.style.cssText,x.style.display="flex",x.style.justifyContent="center",x.style.alignItems="center",x.setAttribute("role","button"),x.tabIndex=w.disabled?-1:0,x.setAttribute("aria-disabled",w.disabled?"true":"false"),w.disabled&&(x.dataset.disabled="true"),w.replaceWith(x),x})}function F(w,x,E,C){const y=T();if(y.length<3)return;const O=w.clips??[],Y=w.audioClips??[],L=yn(e),B=x.length>0||E.length>0||C.length>0,q=yi(O,x,L)||ki(Y,E,L)||wi(w.overlays??[],C,L),V=B,X=E.length>0||C.length>0||x.length>0&&x.length<O.length,re=[q,V,X];y.forEach((pe,se)=>{const N=re[se];pe.setAttribute("aria-disabled",N?"false":"true"),pe.tabIndex=N?0:-1,N?delete pe.dataset.disabled:pe.dataset.disabled="true",pe.style.opacity=N?"1":"0.5",se===2?(pe.style.color=N?"#dc2626":"var(--me-fg-muted, #9a9aa3)",pe.style.background="",pe.style.boxShadow=""):(pe.style.color=N?"var(--me-fg, #ededf0)":"var(--me-fg-muted, #9a9aa3)",pe.style.background="",pe.style.boxShadow="")})}function j(w){w===0?Si(e,t):w===1?Ei(e,t):w===2&&fr(e,t),f()}function oe(){const w=t.getState();mi(e,w),v();const x=$n(e,w.clips??[]),E=Mn(e,w.audioClips??[]),C=Dn(e,w);k(),G(),F(w,x,E,C)}function Q(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-clipblock]");if(!x||!e.contains(x))return;const E=Number(x.getAttribute("data-clipblock"));if(!Number.isInteger(E))return;const C=(t.getState().clips??[]).map((y,O)=>O);if(w.shiftKey||w.ctrlKey||w.metaKey){w.preventDefault(),w.stopPropagation(),Pt(e,"video",E,w,C),f();return}bt(e,"video",[E]),f()}function Z(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-audioclip]");if(!x||!e.contains(x))return;const E=Number(x.getAttribute("data-audioclip"));if(!Number.isInteger(E))return;const C=(t.getState().audioClips??[]).map((y,O)=>O);if(w.shiftKey||w.ctrlKey||w.metaKey){w.preventDefault(),w.stopPropagation(),Pt(e,"audio",E,w,C),f();return}bt(e,"audio",[E]),f()}function ie(w){w.target instanceof Element&&e.contains(w.target)&&(s(w.target)||So(e)&&(Eo(e),f()))}function he(w){if(!(w.target instanceof Element))return;const x=w.target.closest("[data-clipblock]");if(x&&e.contains(x)&&(w.shiftKey||w.ctrlKey||w.metaKey)){w.preventDefault(),w.stopPropagation();return}const E=w.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!E||!e.contains(E))return;const y=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(E);y!==-1&&(w.preventDefault(),w.stopPropagation(),E.getAttribute("aria-disabled")!=="true"&&j(y))}function ne(w){if(!(w.target instanceof Element))return;if((w.key==="Delete"||w.key==="Backspace")&&!u(w.target)&&So(e)){w.preventDefault(),w.stopPropagation(),fr(e,t),f();return}if(w.key!=="Enter"&&w.key!==" ")return;const x=w.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!x||!e.contains(x))return;const C=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(x);C!==-1&&(w.preventDefault(),w.stopPropagation(),x.getAttribute("aria-disabled")!=="true"&&j(C))}const xe=new MutationObserver(()=>{f()});xe.observe(e,{childList:!0,subtree:!0}),e.addEventListener("pointerdown",Q,!0),e.addEventListener("pointerdown",Z,!0),e.addEventListener("pointerdown",ie,!0),e.addEventListener("click",he,!0),e.addEventListener("keydown",ne,!0),e.addEventListener(zt,f),window.addEventListener("resize",f);const te=t.subscribe(()=>{f()});return oe(),{destroy(){xe.disconnect(),te(),e.removeEventListener("pointerdown",Q,!0),e.removeEventListener("pointerdown",Z,!0),e.removeEventListener("pointerdown",ie,!0),e.removeEventListener("click",he,!0),e.removeEventListener("keydown",ne,!0),e.removeEventListener(zt,f),window.removeEventListener("resize",f)}}}const mo=[{key:"480p",label:"480P",shortEdge:480},{key:"720p",label:"720P",shortEdge:720},{key:"1080p",label:"1080P",shortEdge:1080},{key:"2k",label:"2K",shortEdge:1440},{key:"4k",label:"4K",shortEdge:2160},{key:"8k",label:"8K",shortEdge:4320},{key:"source",label:"\u539F\u59CB"},{key:"custom",label:"\u81EA\u5B9A\u4E49"}],ha=[{key:"mov",label:"MOV",extension:"mov"},{key:"mp4",label:"MP4",extension:"mp4"},{key:"mxf",label:"MXF",extension:"mxf"}],xa=[24,25,30,50,60],ba=[{key:"aac",label:"AAC"},{key:"mp3",label:"MP3"}],ga=[96,128,192,256,320],zr="me-video-export-enhancer-styles";function ya(){if(document.getElementById(zr))return;const e=document.createElement("style");e.id=zr,e.textContent=`
|
|
2048
2048
|
.me-video-export-overlay {
|
|
2049
2049
|
position: absolute;
|
|
2050
2050
|
inset: 0;
|
|
@@ -2301,7 +2301,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
2301
2301
|
justify-content: flex-end;
|
|
2302
2302
|
}
|
|
2303
2303
|
}
|
|
2304
|
-
`,document.head.appendChild(e)}function Or(e){return String(e??"").trim().replace(/\.[a-z0-9]+$/i,"")}function $o(e,t="video"){return String(e??"").replace(/[\\/:*?"<>|]+/g," ").replace(/\s+/g," ").trim()||t}function wn(e,t,n,o){const a=Math.round(Number(e));return Number.isFinite(a)?Math.min(n,Math.max(t,a)):o}function zn(e,t){const n=wn(e,2,8192,t);return n%2===0?n:n-1}function zr(e){return _o(e.canvas,e)}function _a(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),a=t%60;return n>0?`${n}:${String(o).padStart(2,"0")}:${String(a).padStart(2,"0")}`:`${o}:${String(a).padStart(2,"0")}`}function xa(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),a=t%60;return n>0?a>0?`${n} \u5C0F\u65F6 ${o} \u5206 ${a} \u79D2`:`${n} \u5C0F\u65F6 ${o} \u5206`:o>0?a>0?`${o} \u5206 ${a} \u79D2`:`${o} \u5206`:`${a} \u79D2`}function ba(e){const t=Math.max(0,Number(e)||0);return t>=1024*1024*1024?`${(t/(1024*1024*1024)).toFixed(2).replace(/\.?0+$/,"")} GB`:t>=1024*1024?`${(t/(1024*1024)).toFixed(t>=10*1024*1024?0:1).replace(/\.?0+$/,"")} MB`:t>=1024?`${Math.round(t/1024)} KB`:`${Math.round(t)} B`}function mo(e){return`${e.w}\xD7${e.h}`}function Pn(e,t="mp4"){const n=String(e??"").toLowerCase();return n==="mov"||n==="mxf"||n==="mp4"?n:t}function ga(e,t="mp4"){const n=String(e??"").match(/\.([a-z0-9]+)$/i);return Pn(n?.[1],t)}function ya(e,t,n,o){const a=po(e,t.key,n,o);return`${t.label} \xB7 ${mo(a)}`}function po(e,t,n,o){const a=zr(e);if(t==="source")return a;if(t==="custom")return{w:zn(n,a.w),h:zn(o,a.h)};const s=uo.find(v=>v.key===t);if(!s?.shortEdge)return a;const u=a.w>0&&a.h>0?a.w/a.h:1;if(a.w<=a.h){const v=zn(s.shortEdge,a.w);return{w:v,h:zn(v/u,a.h)}}const f=zn(s.shortEdge,a.h);return{w:zn(f*u,a.w),h:f}}function Do(e,t){const n=Math.min(e.w,e.h);let o=2200;return n<=480?o=1400:n<=720?o=3200:n<=1080?o=6800:n<=1440?o=12e3:n<=2160?o=22e3:o=48e3,t>=50&&(o=Math.round(o*1.35)),o}function wa(e){const t=e.exportSettings;if(!t?.width||!t?.height)return"source";const n=Math.min(t.width,t.height);return uo.find(a=>a.shortEdge&&Math.abs(a.shortEdge-n)<=6)?.key??"custom"}function ka(e,t,n){const o=String(t||n||"video.mp4"),a=Pn(e.exportSettings?.format,ga(o,"mp4"));return`${$o(e.exportSettings?.fileName||Or(o),"video")}.${a}`}function Pr(e,t,n){return typeof e.onExported!="function"?e:{...e,onExported(o,a){e.onExported(o,ka(t.getState(),a,n()))}}}function Ea(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:v=>setTimeout(v,16),o=[".me-video-preview-footer span"].join(",");function a(v){return String(v??"").replace(/(\d+:\d{2})\.\d+/g,"$1")}function s(){for(const v of e.querySelectorAll(o)){if(v instanceof HTMLElement&&v.childElementCount>0)continue;const S=String(v.textContent??"");if(!/^\s*\d+:\d{2}(?:\.\d+)?(?:\s*\/\s*\d+:\d{2}(?:\.\d+)?)?\s*$/.test(S))continue;if(v instanceof HTMLElement){const G=String(v.dataset.meRawTimeText||""),T=a(G);(!G||S!==T)&&(v.dataset.meRawTimeText=S)}const M=a(S);M!==v.textContent&&(v.textContent=M)}}function u(){t||(t=!0,n(()=>{t=!1,s()}))}const f=new MutationObserver(()=>{u()});return f.observe(e,{childList:!0,subtree:!0,characterData:!0}),u(),{destroy(){f.disconnect()}}}function Sa(e){let t=!1,n=null;const o=new Set,a=typeof requestAnimationFrame=="function"?requestAnimationFrame:S=>setTimeout(S,16);function s(S){!n||!(S instanceof HTMLElement)||o.has(S)||(n.observe(S),o.add(S))}function u(){const S=e.querySelector(".me-video-workspace");S instanceof HTMLElement&&S.style.setProperty("padding","0","important");const M=e.querySelector(".me-video-preview-shell");if(!(M instanceof HTMLElement))return;const G=M.querySelector(".me-video-preview-scroll");if(!(G instanceof HTMLElement))return;const T=M.querySelector(".me-video-preview-footer"),F=G.querySelector(".me-video-canvas-stage"),j=T instanceof HTMLElement?Math.ceil(T.getBoundingClientRect().height):0,oe=Math.max(0,M.clientHeight-j);M.style.display="grid",M.style.gridTemplateRows=T instanceof HTMLElement?"minmax(0, 1fr) auto":"minmax(0, 1fr)",M.style.height="100%",M.style.minHeight="0",M.style.gap="0",M.style.overflow="hidden",M.style.boxSizing="border-box",G.style.alignSelf="stretch",G.style.justifySelf="stretch",G.style.flex="1 1 0",G.style.minHeight="0",G.style.maxHeight="none",G.style.height=oe>0?`${oe}px`:"100%",F instanceof HTMLElement&&(F.style.minHeight="100%",F.style.boxSizing="border-box"),s(M),s(G),s(T),s(F)}function f(){t||(t=!0,a(()=>{t=!1,u()}))}typeof ResizeObserver=="function"&&(n=new ResizeObserver(()=>{f()}));const v=new MutationObserver(()=>{f()});return v.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("resize",f),f(),{destroy(){v.disconnect(),n?.disconnect?.(),window.removeEventListener("resize",f)}}}function La(e,t){let a=!1,s=null;const u=typeof requestAnimationFrame=="function"?requestAnimationFrame:N=>setTimeout(N,16);function f(N,y){return Number.isInteger(N?.track)&&N.track>=0?N.track:y}function v(N){const y=[...new Set((N??[]).map(f))].sort((z,Y)=>z-Y);return y.length?y:[0]}function S(N){const y=v(N);return new Map(y.map((z,Y)=>[z,Y]))}function M(N,y){const z=v(N);return y<z.length?z[y]:Math.max(...z)+1}function G(N,y,z=!1){const Y=Math.max(0,Math.round(Number(y)||0)),B=t.getState().audioClips??[],q=B[N];if(!q||f(q,N)===Y)return;const V=B.map((X,re)=>re===N?{...X,track:Y}:X);if(z){t.patch({audioClips:V},{transient:!0});return}t.commit({audioClips:V})}function T(){return e.querySelector(".me-video-timeline-scroll > div")}function F(N){if(!(N instanceof HTMLElement))return null;const y=[...N.children].filter(Y=>Y instanceof HTMLElement),z=y.findIndex(Y=>Y.querySelector("[data-clipblock]"));return z===-1?null:y[z+1]instanceof HTMLElement?y[z+1]:null}function j(N,y=1/0){if(!(N instanceof HTMLElement))return[];const z=[...N.children].filter(Y=>Y instanceof HTMLElement&&/♪/.test(Y.textContent??"")&&!!Y.querySelector("span"));return Number.isFinite(y)?z.slice(0,Math.max(0,y)):z}function oe(N,y){if(!(N instanceof HTMLElement)||!(y instanceof HTMLElement))return!1;let z=N;for(;z&&z!==y;){if(`${z.style?.cursor||""} ${typeof window<"u"&&window.getComputedStyle?window.getComputedStyle(z).cursor:""}`.includes("ew-resize"))return!0;z=z.parentElement}return!1}function Q(N,y,z){if(!(N instanceof HTMLElement)||!Number.isFinite(z))return null;const Y=N.getBoundingClientRect(),L=32,q=v(y).length,V=Math.floor(Math.max(0,z-Y.top)/L),X=ae(V,0,q);return M(y,X)}function Z(){const y=t.getState().audioClips??[],z=e.querySelector(".me-video-timeline-area"),Y=e.querySelector(".me-video-timeline-scroll"),L=e.querySelector(".me-video-trim-panel"),B=T(),q=F(B);if(!(z instanceof HTMLElement)||!(Y instanceof HTMLElement)||!(q instanceof HTMLElement))return;const V=S(y),X=Math.max(1,V.size||y.length||1),re=32,pe=X>0?X*28+Math.max(0,X-1)*4:28;z.style.setProperty("max-height","none","important"),z.style.setProperty("overflow","visible","important"),Y.style.setProperty("overflow-y","visible","important"),L instanceof HTMLElement&&L.style.setProperty("overflow","visible","important"),q.style.height=`${pe}px`,q.style.minHeight=`${pe}px`,q.style.overflow="visible";const se="color-mix(in srgb, var(--me-chip, #f1f1f3) 90%, var(--me-border, #d4d4d8) 10%)",A="color-mix(in srgb, var(--me-fg, #374151) 82%, var(--me-fg-muted, #6b7280) 18%)",b="transparent";q.style.background=X>1?`repeating-linear-gradient(to bottom, ${se} 0px, ${se} 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) ${re}px)`:se,q.style.backgroundSize=`100% ${re}px`;const le=j(q,y.length),Le=new Set(le),ve=y.length===0;q.style.color=ve?A:"",[...q.children].forEach(D=>{if(D instanceof HTMLElement&&!Le.has(D)){if(ve){D.style.background="transparent",D.style.border="none",D.style.boxShadow="none",D.style.borderColor=b,D.style.color=A,D.querySelectorAll("span, label, button, strong, small").forEach(ee=>{ee instanceof HTMLElement&&(ee.style.color=A,ee.style.background="transparent",ee.style.border="none",ee.style.borderColor=b,ee.style.boxShadow="none")});return}D.style.removeProperty("background"),D.style.removeProperty("border"),D.style.removeProperty("box-shadow"),D.style.removeProperty("border-color"),D.style.removeProperty("color"),D.querySelectorAll("span, label, button, strong, small").forEach(ee=>{ee instanceof HTMLElement&&(ee.style.removeProperty("color"),ee.style.removeProperty("background"),ee.style.removeProperty("border"),ee.style.removeProperty("border-color"),ee.style.removeProperty("box-shadow"))})}}),le.forEach((D,ee)=>{const _=y[ee],K=f(_,ee),fe=V.get(K)??ee;D.style.top=`${fe*re+2}px`,D.style.bottom="auto",D.style.height="24px"});const Re=z.lastElementChild;if(Re instanceof HTMLElement){const ee=Re.querySelectorAll("label")[1];ee instanceof HTMLElement&&(ee.style.height=`${pe}px`,ee.style.minHeight=`${pe}px`,ve?(ee.style.background=se,ee.style.border="none",ee.style.borderColor=b,ee.style.boxShadow="none",ee.style.color=A,ee.querySelectorAll("span, strong, small").forEach(_=>{_ instanceof HTMLElement&&(_.style.color=A,_.style.border="none")})):(ee.style.removeProperty("background"),ee.style.removeProperty("border"),ee.style.removeProperty("border-color"),ee.style.removeProperty("box-shadow"),ee.style.removeProperty("color"),ee.querySelectorAll("span, strong, small").forEach(_=>{_ instanceof HTMLElement&&(_.style.removeProperty("color"),_.style.removeProperty("border"))})))}}function ie(){a||(a=!0,u(()=>{a=!1,Z()}))}function he(N){if(N.button!==0||!(N.target instanceof Element))return;const y=N.target.closest("[data-audioclip]");if(!(y instanceof HTMLElement)||!e.contains(y)||oe(N.target,y))return;const z=Number(y.getAttribute("data-audioclip"));if(!Number.isInteger(z))return;const L=(t.getState().audioClips??[])[z];L&&(s={index:z,pointerId:N.pointerId,startTrack:f(L,z),currentTrack:f(L,z)})}function ne(N){if(!s||N.pointerId!==s.pointerId)return;const y=T(),z=F(y),Y=t.getState().audioClips??[],L=Q(z,Y,N.clientY);!Number.isInteger(L)||L===s.currentTrack||(s.currentTrack=L,G(s.index,L,!0),ie())}function xe(N,y=!1){if(!s||N!==s.pointerId)return;const z=s;if(s=null,y){z.currentTrack!==z.startTrack&&G(z.index,z.startTrack,!1);return}z.currentTrack!==z.startTrack&&(G(z.index,z.currentTrack,!1),ie())}function te(N){xe(N.pointerId,!1)}function w(N){xe(N.pointerId,!0)}const x=new MutationObserver(()=>{ie()});x.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),e.addEventListener(zt,ie),e.addEventListener("pointerdown",he,!0),window.addEventListener("pointermove",ne),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",w),window.addEventListener("resize",ie);const k=t.subscribe(()=>{ie()});return ie(),{destroy(){x.disconnect(),k(),e.removeEventListener(zt,ie),e.removeEventListener("pointerdown",he,!0),window.removeEventListener("resize",ie),window.removeEventListener("pointermove",ne),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",w)}}}function Ta(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:f=>setTimeout(f,16);function o(){t||(t=!0,n(()=>{t=!1,s()}))}function a(f){return String(f?.style?.transform||"").includes("translateX(-50%)")}function s(){const f=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(f instanceof HTMLElement)for(const v of[...f.children]){if(!(v instanceof HTMLElement)||a(v))continue;const S=Zn(Jn(v));Number.isFinite(S)&&Math.abs(S-Math.round(S))>.001?(v.dataset.meIntegerTickHidden="true",v.style.setProperty("display","none","important")):v.dataset.meIntegerTickHidden==="true"&&(v.style.removeProperty("display"),delete v.dataset.meIntegerTickHidden)}}const u=new MutationObserver(()=>{o()});return u.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener(zt,o),window.addEventListener("resize",o),o(),{destroy(){u.disconnect(),e.removeEventListener(zt,o),window.removeEventListener("resize",o)}}}let Hr=!1;function Ca(){if(Hr||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-trim-history-enhancer-style",e.textContent=`
|
|
2304
|
+
`,document.head.appendChild(e)}function Pr(e){return String(e??"").trim().replace(/\.[a-z0-9]+$/i,"")}function Do(e,t="video"){return String(e??"").replace(/[\\/:*?"<>|]+/g," ").replace(/\s+/g," ").trim()||t}function wn(e,t,n,r){const a=Math.round(Number(e));return Number.isFinite(a)?Math.min(n,Math.max(t,a)):r}function zn(e,t){const n=wn(e,2,8192,t);return n%2===0?n:n-1}function Hr(e){return jo(e.canvas,e)}function Xa(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),a=t%60;return n>0?`${n}:${String(r).padStart(2,"0")}:${String(a).padStart(2,"0")}`:`${r}:${String(a).padStart(2,"0")}`}function wa(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),a=t%60;return n>0?a>0?`${n} \u5C0F\u65F6 ${r} \u5206 ${a} \u79D2`:`${n} \u5C0F\u65F6 ${r} \u5206`:r>0?a>0?`${r} \u5206 ${a} \u79D2`:`${r} \u5206`:`${a} \u79D2`}function ka(e){const t=Math.max(0,Number(e)||0);return t>=1024*1024*1024?`${(t/(1024*1024*1024)).toFixed(2).replace(/\.?0+$/,"")} GB`:t>=1024*1024?`${(t/(1024*1024)).toFixed(t>=10*1024*1024?0:1).replace(/\.?0+$/,"")} MB`:t>=1024?`${Math.round(t/1024)} KB`:`${Math.round(t)} B`}function po(e){return`${e.w}\xD7${e.h}`}function Pn(e,t="mp4"){const n=String(e??"").toLowerCase();return n==="mov"||n==="mxf"||n==="mp4"?n:t}function Ea(e,t="mp4"){const n=String(e??"").match(/\.([a-z0-9]+)$/i);return Pn(n?.[1],t)}function Sa(e,t,n,r){const a=fo(e,t.key,n,r);return`${t.label} \xB7 ${po(a)}`}function fo(e,t,n,r){const a=Hr(e);if(t==="source")return a;if(t==="custom")return{w:zn(n,a.w),h:zn(r,a.h)};const s=mo.find(v=>v.key===t);if(!s?.shortEdge)return a;const u=a.w>0&&a.h>0?a.w/a.h:1;if(a.w<=a.h){const v=zn(s.shortEdge,a.w);return{w:v,h:zn(v/u,a.h)}}const f=zn(s.shortEdge,a.h);return{w:zn(f*u,a.w),h:f}}function _o(e,t){const n=Math.min(e.w,e.h);let r=2200;return n<=480?r=1400:n<=720?r=3200:n<=1080?r=6800:n<=1440?r=12e3:n<=2160?r=22e3:r=48e3,t>=50&&(r=Math.round(r*1.35)),r}function La(e){const t=e.exportSettings;if(!t?.width||!t?.height)return"source";const n=Math.min(t.width,t.height);return mo.find(a=>a.shortEdge&&Math.abs(a.shortEdge-n)<=6)?.key??"custom"}function Ta(e,t,n){const r=String(t||n||"video.mp4"),a=Pn(e.exportSettings?.format,Ea(r,"mp4"));return`${Do(e.exportSettings?.fileName||Pr(r),"video")}.${a}`}function Ir(e,t,n){return typeof e.onExported!="function"?e:{...e,onExported(r,a){e.onExported(r,Ta(t.getState(),a,n()))}}}function Ma(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:v=>setTimeout(v,16),r=[".me-video-preview-footer span"].join(",");function a(v){return String(v??"").replace(/(\d+:\d{2})\.\d+/g,"$1")}function s(){for(const v of e.querySelectorAll(r)){if(v instanceof HTMLElement&&v.childElementCount>0)continue;const k=String(v.textContent??"");if(!/^\s*\d+:\d{2}(?:\.\d+)?(?:\s*\/\s*\d+:\d{2}(?:\.\d+)?)?\s*$/.test(k))continue;if(v instanceof HTMLElement){const G=String(v.dataset.meRawTimeText||""),T=a(G);(!G||k!==T)&&(v.dataset.meRawTimeText=k)}const H=a(k);H!==v.textContent&&(v.textContent=H)}}function u(){t||(t=!0,n(()=>{t=!1,s()}))}const f=new MutationObserver(()=>{u()});return f.observe(e,{childList:!0,subtree:!0,characterData:!0}),u(),{destroy(){f.disconnect()}}}function Ca(e){let t=!1,n=null;const r=new Set,a=typeof requestAnimationFrame=="function"?requestAnimationFrame:k=>setTimeout(k,16);function s(k){!n||!(k instanceof HTMLElement)||r.has(k)||(n.observe(k),r.add(k))}function u(){const k=e.querySelector(".me-video-workspace");k instanceof HTMLElement&&k.style.setProperty("padding","0","important");const H=e.querySelector(".me-video-preview-shell");if(!(H instanceof HTMLElement))return;const G=H.querySelector(".me-video-preview-scroll");if(!(G instanceof HTMLElement))return;const T=H.querySelector(".me-video-preview-footer"),F=G.querySelector(".me-video-canvas-stage"),j=T instanceof HTMLElement?Math.ceil(T.getBoundingClientRect().height):0,oe=Math.max(0,H.clientHeight-j);H.style.display="grid",H.style.gridTemplateRows=T instanceof HTMLElement?"minmax(0, 1fr) auto":"minmax(0, 1fr)",H.style.height="100%",H.style.minHeight="0",H.style.gap="0",H.style.overflow="hidden",H.style.boxSizing="border-box",G.style.alignSelf="stretch",G.style.justifySelf="stretch",G.style.flex="1 1 0",G.style.minHeight="0",G.style.maxHeight="none",G.style.height=oe>0?`${oe}px`:"100%",F instanceof HTMLElement&&(F.style.minHeight="100%",F.style.boxSizing="border-box"),s(H),s(G),s(T),s(F)}function f(){t||(t=!0,a(()=>{t=!1,u()}))}typeof ResizeObserver=="function"&&(n=new ResizeObserver(()=>{f()}));const v=new MutationObserver(()=>{f()});return v.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("resize",f),f(),{destroy(){v.disconnect(),n?.disconnect?.(),window.removeEventListener("resize",f)}}}function Na(e,t){let a=!1,s=null;const u=typeof requestAnimationFrame=="function"?requestAnimationFrame:C=>setTimeout(C,16);function f(C,y){return Number.isInteger(C?.track)&&C.track>=0?C.track:y}function v(C){const y=[...new Set((C??[]).map(f))].sort((O,Y)=>O-Y);return y.length?y:[0]}function k(C){const y=v(C);return new Map(y.map((O,Y)=>[O,Y]))}function H(C,y){const O=v(C);return y<O.length?O[y]:Math.max(...O)+1}function G(C,y,O=!1){const Y=Math.max(0,Math.round(Number(y)||0)),B=t.getState().audioClips??[],q=B[C];if(!q||f(q,C)===Y)return;const V=B.map((X,re)=>re===C?{...X,track:Y}:X);if(O){t.patch({audioClips:V},{transient:!0});return}t.commit({audioClips:V})}function T(){return Fn(e)}function F(C){if(!(C instanceof HTMLElement))return null;const y=[...C.children].filter(Y=>Y instanceof HTMLElement),O=y.findIndex(Y=>Y.querySelector("[data-clipblock]"));return O===-1?null:y[O+1]instanceof HTMLElement?y[O+1]:null}function j(C,y=1/0){if(!(C instanceof HTMLElement))return[];const O=[...C.children].filter(Y=>Y instanceof HTMLElement&&/♪/.test(Y.textContent??"")&&!!Y.querySelector("span"));return Number.isFinite(y)?O.slice(0,Math.max(0,y)):O}function oe(C,y){if(!(C instanceof HTMLElement)||!(y instanceof HTMLElement))return!1;let O=C;for(;O&&O!==y;){if(`${O.style?.cursor||""} ${typeof window<"u"&&window.getComputedStyle?window.getComputedStyle(O).cursor:""}`.includes("ew-resize"))return!0;O=O.parentElement}return!1}function Q(C,y,O){if(!(C instanceof HTMLElement)||!Number.isFinite(O))return null;const Y=C.getBoundingClientRect(),L=32,q=v(y).length,V=Math.floor(Math.max(0,O-Y.top)/L),X=ae(V,0,q);return H(y,X)}function Z(){const y=t.getState().audioClips??[],O=e.querySelector(".me-video-timeline-area"),Y=e.querySelector(".me-video-timeline-scroll"),L=e.querySelector(".me-video-trim-panel"),B=T(),q=F(B);if(!(O instanceof HTMLElement)||!(Y instanceof HTMLElement)||!(q instanceof HTMLElement))return;const V=k(y),X=Math.max(1,V.size||y.length||1),re=32,pe=X>0?X*28+Math.max(0,X-1)*4:28;O.style.setProperty("max-height","none","important"),O.style.setProperty("overflow","visible","important"),Y.style.setProperty("overflow-y","visible","important"),L instanceof HTMLElement&&L.style.setProperty("overflow","visible","important"),q.style.height=`${pe}px`,q.style.minHeight=`${pe}px`,q.style.overflow="visible";const se="color-mix(in srgb, var(--me-chip, #f1f1f3) 90%, var(--me-border, #d4d4d8) 10%)",N="color-mix(in srgb, var(--me-fg, #374151) 82%, var(--me-fg-muted, #6b7280) 18%)",b="transparent";q.style.background=X>1?`repeating-linear-gradient(to bottom, ${se} 0px, ${se} 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) ${re}px)`:se,q.style.backgroundSize=`100% ${re}px`;const le=j(q,y.length),Le=new Set(le),ve=y.length===0;q.style.color=ve?N:"",[...q.children].forEach(D=>{if(D instanceof HTMLElement&&!Le.has(D)){if(ve){D.style.background="transparent",D.style.border="none",D.style.boxShadow="none",D.style.borderColor=b,D.style.color=N,D.querySelectorAll("span, label, button, strong, small").forEach(ee=>{ee instanceof HTMLElement&&(ee.style.color=N,ee.style.background="transparent",ee.style.border="none",ee.style.borderColor=b,ee.style.boxShadow="none")});return}D.style.removeProperty("background"),D.style.removeProperty("border"),D.style.removeProperty("box-shadow"),D.style.removeProperty("border-color"),D.style.removeProperty("color"),D.querySelectorAll("span, label, button, strong, small").forEach(ee=>{ee instanceof HTMLElement&&(ee.style.removeProperty("color"),ee.style.removeProperty("background"),ee.style.removeProperty("border"),ee.style.removeProperty("border-color"),ee.style.removeProperty("box-shadow"))})}}),le.forEach((D,ee)=>{const _=y[ee],K=f(_,ee),fe=V.get(K)??ee;D.style.top=`${fe*re+2}px`,D.style.bottom="auto",D.style.height="24px"});const Ie=O.lastElementChild;if(Ie instanceof HTMLElement){const ee=Ie.querySelectorAll("label")[1];ee instanceof HTMLElement&&(ee.style.height=`${pe}px`,ee.style.minHeight=`${pe}px`,ve?(ee.style.background=se,ee.style.border="none",ee.style.borderColor=b,ee.style.boxShadow="none",ee.style.color=N,ee.querySelectorAll("span, strong, small").forEach(_=>{_ instanceof HTMLElement&&(_.style.color=N,_.style.border="none")})):(ee.style.removeProperty("background"),ee.style.removeProperty("border"),ee.style.removeProperty("border-color"),ee.style.removeProperty("box-shadow"),ee.style.removeProperty("color"),ee.querySelectorAll("span, strong, small").forEach(_=>{_ instanceof HTMLElement&&(_.style.removeProperty("color"),_.style.removeProperty("border"))})))}}function ie(){a||(a=!0,u(()=>{a=!1,Z()}))}function he(C){if(C.button!==0||!(C.target instanceof Element))return;const y=C.target.closest("[data-audioclip]");if(!(y instanceof HTMLElement)||!e.contains(y)||oe(C.target,y))return;const O=Number(y.getAttribute("data-audioclip"));if(!Number.isInteger(O))return;const L=(t.getState().audioClips??[])[O];L&&(s={index:O,pointerId:C.pointerId,startTrack:f(L,O),currentTrack:f(L,O)})}function ne(C){if(!s||C.pointerId!==s.pointerId)return;const y=T(),O=F(y),Y=t.getState().audioClips??[],L=Q(O,Y,C.clientY);!Number.isInteger(L)||L===s.currentTrack||(s.currentTrack=L,G(s.index,L,!0),ie())}function xe(C,y=!1){if(!s||C!==s.pointerId)return;const O=s;if(s=null,y){O.currentTrack!==O.startTrack&&G(O.index,O.startTrack,!1);return}O.currentTrack!==O.startTrack&&(G(O.index,O.currentTrack,!1),ie())}function te(C){xe(C.pointerId,!1)}function w(C){xe(C.pointerId,!0)}const x=new MutationObserver(()=>{ie()});x.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),e.addEventListener(zt,ie),e.addEventListener("pointerdown",he,!0),window.addEventListener("pointermove",ne),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",w),window.addEventListener("resize",ie);const E=t.subscribe(()=>{ie()});return ie(),{destroy(){x.disconnect(),E(),e.removeEventListener(zt,ie),e.removeEventListener("pointerdown",he,!0),window.removeEventListener("resize",ie),window.removeEventListener("pointermove",ne),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",w)}}}function Aa(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:f=>setTimeout(f,16);function r(){t||(t=!0,n(()=>{t=!1,s()}))}function a(f){return String(f?.style?.transform||"").includes("translateX(-50%)")}function s(){const f=or(e);if(f instanceof HTMLElement)for(const v of[...f.children]){if(!(v instanceof HTMLElement)||a(v))continue;const k=Jn(Qn(v));Number.isFinite(k)&&Math.abs(k-Math.round(k))>.001?(v.dataset.meIntegerTickHidden="true",v.style.setProperty("display","none","important")):v.dataset.meIntegerTickHidden==="true"&&(v.style.removeProperty("display"),delete v.dataset.meIntegerTickHidden)}}const u=new MutationObserver(()=>{r()});return u.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener(zt,r),window.addEventListener("resize",r),r(),{destroy(){u.disconnect(),e.removeEventListener(zt,r),window.removeEventListener("resize",r)}}}let Rr=!1;function Oa(){if(Rr||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-trim-history-enhancer-style",e.textContent=`
|
|
2305
2305
|
.me-video-history[data-trim-proxy-hidden="true"] {
|
|
2306
2306
|
display: none !important;
|
|
2307
2307
|
}
|
|
@@ -2373,7 +2373,7 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
2373
2373
|
display: none;
|
|
2374
2374
|
}
|
|
2375
2375
|
}
|
|
2376
|
-
`,document.head.appendChild(e),
|
|
2376
|
+
`,document.head.appendChild(e),Rr=!0}function za(e){Oa();let t=!1,n=null;const r=typeof requestAnimationFrame=="function"?requestAnimationFrame:T=>setTimeout(T,16);function a(){return e.querySelector(".me-video-topbar .me-video-history")}function s(){const T=a();return T instanceof HTMLElement?[...T.querySelectorAll("button")]:[]}function u(T){n instanceof HTMLElement||(n=document.createElement("div"),n.className="me-video-trim-history-proxy");const F=T.querySelector(".me-video-trim-action-btn");return n.parentElement!==T?T.insertBefore(n,F??T.firstChild):F&&n.nextElementSibling!==F&&T.insertBefore(n,F),n}function f(T,F){const j=String(T??"").trim();if(!j)return"";if(F===0){if(/\s/.test(j))return j.split(/\s+/)[0];if(j.length>2)return j.slice(0,2)}return j}function v(T,F,j){T.dataset.historyIndex=String(j);const oe=T.querySelector(".me-video-trim-history-proxy-icon"),Q=T.querySelector(".me-video-trim-history-proxy-label");oe instanceof HTMLElement&&oe.innerHTML!==F.innerHTML&&(oe.innerHTML=F.innerHTML),T.disabled=F.disabled,T.title=F.title||"";const Z=F.getAttribute("aria-label"),ie=(Z||F.title||"").trim();Q instanceof HTMLElement&&(Q.textContent=f(ie,j)),Z?T.setAttribute("aria-label",Z):T.removeAttribute("aria-label")}function k(){const T=a(),F=e.querySelector(".me-video-trim-actions");if(!(T instanceof HTMLElement)||!(F instanceof HTMLElement)){T?.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}const j=s();if(!j.length){T.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}T.setAttribute("data-trim-proxy-hidden","true");const oe=u(F),Q=[];for(j.forEach((Z,ie)=>{let he=oe.children[ie];if(!(he instanceof HTMLButtonElement)){he=document.createElement("button"),he.type="button",he.className="me-video-trim-history-proxy-btn";const ne=document.createElement("span");ne.className="me-video-trim-history-proxy-icon";const xe=document.createElement("span");xe.className="me-video-trim-history-proxy-label",he.append(ne,xe),he.addEventListener("click",()=>{const te=s()[ie];!te||te.disabled||(te.click(),H())}),oe.appendChild(he)}v(he,Z,ie),Q.push(he)});oe.children.length>Q.length;)oe.lastElementChild?.remove()}function H(){t||(t=!0,r(()=>{t=!1,k()}))}const G=new MutationObserver(()=>{H()});return G.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled","style","class","hidden","title","aria-label"]}),window.addEventListener("resize",H),H(),{destroy(){G.disconnect(),window.removeEventListener("resize",H),a()?.removeAttribute("data-trim-proxy-hidden"),n?.remove()}}}function Pa(e,t,n){ya();const r=document.createElement("div");r.className="me-video-export-overlay",r.hidden=!0,r.innerHTML=`
|
|
2377
2377
|
<div class="me-video-export-card" role="dialog" aria-modal="true" aria-label="\u5BFC\u51FA\u8BBE\u7F6E">
|
|
2378
2378
|
<div class="me-video-export-head">
|
|
2379
2379
|
<strong class="me-video-export-title">\u5BFC\u51FA\u8BBE\u7F6E</strong>
|
|
@@ -2454,4 +2454,4 @@ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buil
|
|
|
2454
2454
|
</div>
|
|
2455
2455
|
</div>
|
|
2456
2456
|
</div>
|
|
2457
|
-
`,e.appendChild(
|
|
2457
|
+
`,e.appendChild(r);const a=r.querySelector(".me-video-export-close"),s=r.querySelector('[data-action="cancel"]'),u=r.querySelector('[data-action="confirm"]'),f=r.querySelector("img"),v=r.querySelector(".me-video-export-preview-empty"),k=r.querySelector(".me-video-export-preview-note"),H=r.querySelector(".me-video-export-summary-value"),G=r.querySelector("[data-custom-resolution]"),T=r.querySelector('[data-field="title"]'),F=r.querySelector('[data-field="resolutionPreset"]'),j=r.querySelector('[data-field="customWidth"]'),oe=r.querySelector('[data-field="customHeight"]'),Q=r.querySelector('[data-field="customResolutionHint"]'),Z=r.querySelector('[data-field="format"]'),ie=r.querySelector('[data-field="frameRate"]'),he=r.querySelector('[data-field="bitrateMode"]'),ne=r.querySelector('[data-field="videoBitrateKbps"]'),xe=r.querySelector('[data-field="videoBitrateHint"]'),te=r.querySelector('[data-field="audioCodec"]'),w=r.querySelector('[data-field="audioBitrateKbps"]'),x=new Map;for(const N of mo){const b=document.createElement("option");b.value=N.key,b.textContent=N.label,F.appendChild(b),x.set(N.key,b)}for(const N of ha){const b=document.createElement("option");b.value=N.key,b.textContent=N.label,Z.appendChild(b)}for(const N of xa){const b=document.createElement("option");b.value=String(N),b.textContent=`${N} FPS`,ie.appendChild(b)}for(const N of ba){const b=document.createElement("option");b.value=N.key,b.textContent=N.label,te.appendChild(b)}for(const N of ga){const b=document.createElement("option");b.value=String(N),b.textContent=`${N} kbps`,w.appendChild(b)}let E=null,C=!1;function y(){const N=e.querySelector(".me-video-canvas-stage canvas, .me-video-preview-scroll canvas");if(!(N instanceof HTMLCanvasElement))return"";try{return N.toDataURL("image/png")}catch{return""}}function O(){const N=y();if(N){f.src=N,f.hidden=!1,v.hidden=!0;return}f.hidden=!0,v.hidden=!1}function Y(){const N=t.getState(),b=Hr(N),le=La(N),Le=fo(N,le,N.exportSettings?.width??b.w,N.exportSettings?.height??b.h),ve=wn(N.exportSettings?.frameRate,12,120,30),Ie=_o(Le,ve);return{title:Do(N.exportSettings?.fileName||Pr(n()),"video"),resolutionPreset:le,customWidth:N.exportSettings?.width??b.w,customHeight:N.exportSettings?.height??b.h,format:Pn(N.exportSettings?.format,"mp4"),frameRate:ve,bitrateMode:N.exportSettings?.videoBitrateKbps!=null?"custom":"auto",videoBitrateKbps:N.exportSettings?.videoBitrateKbps??Ie,audioCodec:N.exportSettings?.audioCodec??"aac",audioBitrateKbps:N.exportSettings?.audioBitrateKbps??192}}function L(){const N=t.getState(),b=wn(E.frameRate,12,120,30),le=fo(N,E.resolutionPreset,E.customWidth,E.customHeight),Le=_o(le,b);return{fileName:Do(E.title,"video"),width:E.resolutionPreset==="source"?void 0:le.w,height:E.resolutionPreset==="source"?void 0:le.h,format:Pn(E.format,"mp4"),frameRate:b,videoBitrateKbps:E.bitrateMode==="custom"?wn(E.videoBitrateKbps,100,5e4,Le):void 0,audioBitrateKbps:wn(E.audioBitrateKbps,32,320,192),audioCodec:E.audioCodec==="mp3"?"mp3":"aac"}}function B(){if(!E)return;const N=t.getState(),b=fo(N,E.resolutionPreset,E.customWidth,E.customHeight),le=_o(b,E.frameRate),Le=E.bitrateMode==="custom"?wn(E.videoBitrateKbps,100,5e4,le):le,ve=wn(E.audioBitrateKbps,32,320,192),Ie=Math.max(0,Number(t.contentDuration())||0),D=Ie>0?(Le+ve)*1e3*Ie/8:0;for(const ee of mo){const _=x.get(ee.key);_&&(_.textContent=Sa(N,ee,E.customWidth,E.customHeight))}T.value=E.title,F.value=E.resolutionPreset,j.value=String(E.customWidth),oe.value=String(E.customHeight),Z.value=Pn(E.format,"mp4"),ie.value=String(E.frameRate),he.value=E.bitrateMode,ne.value=String(Le),ne.disabled=E.bitrateMode!=="custom",te.value=E.audioCodec,w.value=String(ve),G.dataset.active=E.resolutionPreset==="custom"?"true":"false",Q.textContent=E.resolutionPreset==="custom"?`\u5F53\u524D\u6309\u81EA\u5B9A\u4E49\u5927\u5C0F\u5BFC\u51FA\uFF1A${po(b)}`:`\u4FEE\u6539\u5BBD\u9AD8\u4F1A\u81EA\u52A8\u5207\u6362\u4E3A\u81EA\u5B9A\u4E49\u5927\u5C0F\uFF0C\u5F53\u524D\u9884\u8BBE\u8F93\u51FA\uFF1A${po(b)}`,xe.textContent=E.bitrateMode==="custom"?`\u5EFA\u8BAE\u503C ${le} kbps`:`\u81EA\u52A8\u7801\u7387\u5C06\u6309 ${le} kbps \u4F30\u7B97`,k.textContent=`\u8F93\u51FA\u5C3A\u5BF8 ${po(b)} \xB7 ${E.frameRate} FPS \xB7 ${Pn(E.format,"mp4").toUpperCase()} \xB7 \u97F3\u9891 ${ve} kbps`,H.textContent=`\u65F6\u957F: ${wa(Ie)} | \u5927\u5C0F: ${ka(D)}\uFF08\u4F30\u8BA1\uFF09`,O()}function q(){E=Y(),r.hidden=!1,B()}function V(){r.hidden=!0,E=null}function X(){!E||!(e.querySelector(".me-video-done")instanceof HTMLButtonElement)||(t.commit({exportSettings:L()}),C=!0,V(),requestAnimationFrame(()=>{const b=e.querySelector(".me-video-done");b instanceof HTMLButtonElement&&b.click()}))}function re(N){if(!(N.target instanceof Element))return;const b=N.target.closest(".me-video-done");if(!(!b||!e.contains(b))&&!(!(b instanceof HTMLButtonElement)||b.disabled)){if(C){C=!1;return}N.preventDefault(),N.stopPropagation(),q()}}function pe(N){N.key==="Escape"&&!r.hidden&&(N.preventDefault(),V())}function se(N,b){E&&(E={...E,[N]:b},B())}return a.addEventListener("click",V),s.addEventListener("click",V),u.addEventListener("click",X),r.addEventListener("click",N=>{N.target===r&&V()}),T.addEventListener("input",()=>se("title",T.value)),F.addEventListener("change",()=>se("resolutionPreset",F.value)),Z.addEventListener("change",()=>se("format",Z.value)),j.addEventListener("input",()=>{E&&(E={...E,resolutionPreset:"custom",customWidth:j.value},B())}),oe.addEventListener("input",()=>{E&&(E={...E,resolutionPreset:"custom",customHeight:oe.value},B())}),ie.addEventListener("change",()=>se("frameRate",ie.value)),he.addEventListener("change",()=>se("bitrateMode",he.value)),ne.addEventListener("input",()=>se("videoBitrateKbps",ne.value)),te.addEventListener("change",()=>se("audioCodec",te.value)),w.addEventListener("change",()=>se("audioBitrateKbps",w.value)),e.addEventListener("click",re,!0),window.addEventListener("keydown",pe),{destroy(){e.removeEventListener("click",re,!0),window.removeEventListener("keydown",pe),r.remove()}}}function Fr(e,t={}){const n=t.height??"100vh",r=()=>{document.fullscreenElement!==e&&e.style.setProperty("--me-editor-shell-height",n)};return r(),requestAnimationFrame(r),window.addEventListener("resize",r),document.addEventListener("fullscreenchange",r),()=>{window.removeEventListener("resize",r),document.removeEventListener("fullscreenchange",r)}}function Ha(e,t={}){const{append:n=!0,backButton:r="\u8FD4\u56DE",className:a="editor-shell",fitToViewport:s=!0,height:u="auto",hostClassName:f="editor-host",actionsClassName:v="editor-actions",onBack:k}=t,H=document.createElement("div");H.className=a,u!=="auto"&&(H.style.height=u);const G=document.createElement("div");G.className=v;let T=null;r!==!1&&(r instanceof HTMLElement?T=r:(T=document.createElement("button"),T.type="button",T.className="btn btn-ghost",T.textContent=typeof r=="string"?r:"\u8FD4\u56DE"),T&&typeof k=="function"&&T.addEventListener("click",k),T&&G.appendChild(T));const F=document.createElement("div");F.className=f,H.append(G,F),n!==!1&&e.appendChild(H);const j=s?Fr(H):()=>{};return{shell:H,actions:G,host:F,backButton:T,destroy(){j(),T&&typeof k=="function"&&T.removeEventListener("click",k),H.remove()}}}function Ia(e,t={}){e.style.position||(e.style.position="relative");const n=document.createElement("div");n.style.cssText="position:relative;width:100%;height:100%;min-height:0;overflow:hidden",e.appendChild(n);const r=document.createElement("div");r.style.cssText="width:100%;height:100%;min-height:0",n.appendChild(r);const a=t.engine??new Xr,s=()=>{const C=u.source;return C&&typeof C=="object"&&"name"in C&&typeof C.name=="string"?C.name:"video.mp4"};let u={...t,engine:a},f=_r(r,Ir(u,a,s));const v=ra(n,a,()=>u.theme,()=>u.locale),k=la(n,a,()=>u.theme,()=>u.locale),H=aa(n,a,()=>u.locale),G=sa(n,a,()=>u.theme,()=>u.locale),T=ia(n,a,()=>u.locale),F=da(n,a,()=>u.theme,()=>u.locale),j=ca(n,a,()=>u.locale),oe=ua(n,a,()=>u.locale),Q=ma(n,a,()=>u.locale),Z=pa(n,a,()=>u.locale),ie=fa(n,a,()=>u.locale),he=va(n,a,()=>u.locale),ne=za(n),xe=Ca(n),te=Ma(n),w=Na(n,a),x=Aa(n),E=Pa(n,a,s);return{update(C={}){u={...u,...C,engine:a},f.update(Ir(u,a,s))},destroy(){E.destroy(),w.destroy(),te.destroy(),xe.destroy(),ne.destroy(),x.destroy(),he.destroy(),ie.destroy(),Z.destroy(),Q.destroy(),oe.destroy(),j.destroy(),F.destroy(),T.destroy(),G.destroy(),H.destroy(),k.destroy(),v.destroy(),f.destroy(),n.remove()}}}export{Ka as VideoEditorEngine,Ha as createVideoEditorShell,Fr as fitVideoEditorShellToViewport,Ia as mountVideoEditor};
|