@bylqwjc/media-editor-video 1.0.1 → 1.0.2

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 Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buildFilterCss as Br,evenize as Yt,outputSize as Do}from"@media-editor/core";import{fitStickerBox as Dr,getOverlayRotation as mn,overlayBBox as Ut,scaleOverlay as _o,translateOverlay as jo}from"@media-editor/core/browser";import{VideoEditorEngine as _r}from"@media-editor/core/engine";import{VideoEditorEngine as ja}from"@media-editor/core/engine";const mo='-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif',Yo=["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"],jr={"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"},Yr=["microsoft yahei","microsoft jhenghei","pingfang","simsun","nsimsun","simhei","kaiti","fangsong","noto sans sc","songti","heiti","stsong","stheiti","stkaiti","stfangsong","stzhongsong","youyuan","lisu"],Vo={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}},po=[{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 Xo=!1,qo=!1;const zt="me-video-timeline-selectionchange",Wo="Aa Sample 123";let Vn=null;function sn(){if(Xo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-text-enhancer-style",e.textContent=`
1
+ import{mountVideoEditor as $r}from"./legacy.js";import{FILTER_PRESETS as Dr,buildFilterCss as _r,evenize as Vt,outputSize as _o}from"@media-editor/core";import{fitStickerBox as jr,getOverlayRotation as un,overlayBBox as Gt,scaleOverlay as jo,translateOverlay as Yo}from"@media-editor/core/browser";import{VideoEditorEngine as Yr}from"@media-editor/core/engine";import{VideoEditorEngine as Va}from"@media-editor/core/engine";const Xn='-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif',Vo=["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"],Vr={"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"},Xr=["microsoft yahei","microsoft jhenghei","pingfang","simsun","nsimsun","simhei","kaiti","fangsong","noto sans sc","songti","heiti","stsong","stheiti","stkaiti","stfangsong","stzhongsong","youyuan","lisu"],Xo={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}},fo=[{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 qo=!1,Wo=!1;const zt="me-video-timeline-selectionchange",Ko="Aa Sample 123";let qn=null;function Qt(){if(qo||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 Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
30
30
  color: var(--me-fg, #ededf0);
31
31
  box-shadow: none;
32
32
  backdrop-filter: none;
33
- font: 13px/1.45 ${mo};
33
+ font: 13px/1.45 ${Xn};
34
34
  box-sizing: border-box;
35
35
  overflow: auto;
36
36
  }
@@ -197,7 +197,7 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,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 ${mo};
200
+ font: 12px/1.2 ${Xn};
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
  }
@@ -234,6 +234,190 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
234
234
  .me-video-toolrail button[data-me-annotate-hidden="true"] {
235
235
  display: none !important;
236
236
  }
237
+ button[data-me-cover-hidden="true"],
238
+ [role="button"][data-me-cover-hidden="true"] {
239
+ display: none !important;
240
+ }
241
+ .me-video-timeline-cover-slot {
242
+ position: relative;
243
+ width: 56px;
244
+ height: 64px;
245
+ min-width: 56px;
246
+ min-height: 64px;
247
+ display: block;
248
+ flex: 0 0 56px;
249
+ margin-top: 26px;
250
+ z-index: 3;
251
+ }
252
+ .me-video-timeline-cover-proxy {
253
+ position: relative;
254
+ width: 100%;
255
+ height: 100%;
256
+ min-width: 100%;
257
+ min-height: 100%;
258
+ padding: 0;
259
+ border: 1px solid var(--me-border-strong, #34343a);
260
+ border-radius: 6px;
261
+ background: var(--me-chip, #1c1c20);
262
+ color: var(--me-fg, #ededf0);
263
+ cursor: pointer;
264
+ font: inherit;
265
+ display: block !important;
266
+ overflow: hidden;
267
+ z-index: 4;
268
+ box-shadow: 0 6px 14px rgba(0,0,0,0.22);
269
+ box-sizing: border-box;
270
+ }
271
+ .me-video-timeline-cover-proxy:not(.has-cover-image) {
272
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 8%, var(--me-surface, #141416));
273
+ color: var(--me-fg, #ededf0);
274
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 72%, var(--me-border-strong, #34343a));
275
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me-accent, #7c7cf0) 18%, transparent);
276
+ display: inline-flex !important;
277
+ flex-direction: column;
278
+ align-items: center;
279
+ justify-content: center;
280
+ gap: 4px;
281
+ }
282
+ .me-video-timeline-cover-proxy img {
283
+ position: absolute;
284
+ inset: 0;
285
+ width: 100%;
286
+ height: 100%;
287
+ object-fit: cover;
288
+ display: block;
289
+ opacity: 0.82;
290
+ }
291
+ .me-video-timeline-cover-proxy:not(.has-cover-image) img {
292
+ display: none;
293
+ }
294
+ .me-video-timeline-cover-proxy::after {
295
+ content: "";
296
+ position: absolute;
297
+ inset: 0;
298
+ background: linear-gradient(to bottom, transparent 35%, rgba(0,0,0,0.58));
299
+ pointer-events: none;
300
+ }
301
+ .me-video-timeline-cover-proxy:not(.has-cover-image)::after {
302
+ display: none;
303
+ }
304
+ .me-video-timeline-cover-proxy-icon {
305
+ display: none;
306
+ width: 16px;
307
+ height: 16px;
308
+ color: currentColor;
309
+ fill: none;
310
+ stroke: currentColor;
311
+ stroke-width: 1.8;
312
+ stroke-linecap: round;
313
+ stroke-linejoin: round;
314
+ }
315
+ .me-video-timeline-cover-proxy:not(.has-cover-image) .me-video-timeline-cover-proxy-icon {
316
+ display: block;
317
+ }
318
+ .me-video-timeline-cover-proxy-label {
319
+ position: absolute;
320
+ left: 4px;
321
+ right: 4px;
322
+ bottom: 4px;
323
+ z-index: 1;
324
+ min-height: 18px;
325
+ border-radius: 4px;
326
+ background: rgba(0,0,0,0.36);
327
+ color: var(--me-accent-fg, #fff);
328
+ display: inline-flex !important;
329
+ align-items: center !important;
330
+ justify-content: center !important;
331
+ font-size: 11px;
332
+ font-weight: 600;
333
+ line-height: 1.15;
334
+ text-shadow: 0 1px 2px rgba(0,0,0,0.45);
335
+ box-sizing: border-box;
336
+ }
337
+ .me-video-timeline-cover-proxy:not(.has-cover-image) .me-video-timeline-cover-proxy-label {
338
+ position: static;
339
+ left: auto;
340
+ right: auto;
341
+ bottom: auto;
342
+ min-height: 0;
343
+ padding: 0;
344
+ background: transparent;
345
+ color: currentColor;
346
+ border-radius: 0;
347
+ font-size: 12px;
348
+ }
349
+ .me-video-timeline-cover-proxy:hover,
350
+ .me-video-timeline-cover-proxy.is-active {
351
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--me-accent, #7c7cf0) 70%, white 10%);
352
+ }
353
+ .me-video-timeline-cover-clear {
354
+ position: absolute;
355
+ top: -6px;
356
+ right: -6px;
357
+ z-index: 7;
358
+ width: 16px;
359
+ height: 16px;
360
+ padding: 0;
361
+ border: 1px solid rgba(255,255,255,0.9);
362
+ border-radius: 999px;
363
+ background: rgba(255,255,255,0.96);
364
+ color: #6b7280;
365
+ cursor: pointer;
366
+ display: inline-flex;
367
+ align-items: center;
368
+ justify-content: center;
369
+ box-shadow: 0 2px 8px rgba(0,0,0,0.28);
370
+ box-sizing: border-box;
371
+ }
372
+ .me-video-timeline-cover-clear:hover {
373
+ color: #ef4444;
374
+ background: #fff;
375
+ }
376
+ .me-video-timeline-cover-clear svg {
377
+ width: 10px;
378
+ height: 10px;
379
+ display: block;
380
+ fill: none;
381
+ stroke: currentColor;
382
+ stroke-width: 2.4;
383
+ stroke-linecap: round;
384
+ }
385
+ .me-video-timeline-cover-clear[hidden] {
386
+ display: none !important;
387
+ }
388
+ .me-video-cover-set-btn,
389
+ .me-video-cover-upload-btn {
390
+ min-width: 98px;
391
+ height: 44px;
392
+ padding: 0 18px;
393
+ border: none;
394
+ border-radius: 10px;
395
+ background: var(--me-chip, #f1f1f3);
396
+ color: var(--me-fg, #0a0a0a);
397
+ font: 600 14px/1 ${Xn};
398
+ cursor: pointer;
399
+ display: inline-flex;
400
+ align-items: center;
401
+ justify-content: center;
402
+ white-space: nowrap;
403
+ }
404
+ .me-video-cover-upload-btn {
405
+ border: 1px solid var(--me-border, #dedee3);
406
+ background: var(--me-surface, #fff);
407
+ color: var(--me-muted, #4b5563);
408
+ }
409
+ .me-video-cover-set-btn:hover {
410
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 10%, var(--me-chip, #f1f1f3));
411
+ }
412
+ .me-video-cover-upload-btn:hover {
413
+ border-color: color-mix(in srgb, var(--me-accent, #7c7cf0) 36%, var(--me-border, #dedee3));
414
+ background: color-mix(in srgb, var(--me-accent, #7c7cf0) 8%, var(--me-surface, #fff));
415
+ color: var(--me-fg, #0a0a0a);
416
+ }
417
+ .me-video-cover-set-btn.is-set {
418
+ background: var(--me-accent, #7c7cf0);
419
+ color: var(--me-accent-fg, #fff);
420
+ }
237
421
  .me-video-text-tool-label {
238
422
  font-size: 11px;
239
423
  font-weight: 600;
@@ -936,7 +1120,7 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
936
1120
  color: color-mix(in srgb, var(--me-accent, #7c7cf0) 82%, #2563eb 18%);
937
1121
  }
938
1122
  .me-video-ratio-preset-tags {
939
- display: flex;
1123
+ display: none;
940
1124
  flex-wrap: wrap;
941
1125
  gap: 8px;
942
1126
  }
@@ -1424,7 +1608,7 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
1424
1608
  padding: 18px 16px 20px;
1425
1609
  }
1426
1610
  }
1427
- `,document.head.appendChild(e),Xo=!0}function wn(){if(qo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-timeline-enhancer-style",e.textContent=`
1611
+ `,document.head.appendChild(e),qo=!0}function kn(){if(Wo||typeof document>"u")return;const e=document.createElement("style");e.id="me-video-timeline-enhancer-style",e.textContent=`
1428
1612
  .me-video-transition-panel {
1429
1613
  width: 100%;
1430
1614
  }
@@ -1848,19 +2032,19 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
1848
2032
  grid-template-columns: repeat(2, minmax(0, 1fr));
1849
2033
  }
1850
2034
  }
1851
- `,document.head.appendChild(e),qo=!0}function re(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 Xn(e="auto"){return e!=="auto"?e:typeof window<"u"&&window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}function Ko(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 ln(e){const t=Ko(e);return t||(typeof navigator<"u"?Ko(navigator.language)??"en":"en")}const fo={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 Uo(e){const t=ln(e);return fo[t]??fo.en}const Go={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 Vr(e){const t=ln(e);return Go[t]??Go.en}const Zo={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 Xr(e){const t=ln(e);return Zo[t]??Zo.en}const Jo={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 qr(e){const t=ln(e);return Jo[t]??Jo.en}function Wr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
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">
1852
2036
  <path d="M9 15l6-6" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"/>
1853
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"/>
1854
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"/>
1855
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"/>
1856
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"/>
1857
2041
  <circle cx="11.2" cy="12.8" r="1.55" fill="#22c55e" stroke="white" stroke-width=".9"/>
1858
- </svg>`}function Kr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2042
+ </svg>`}function Gr(){return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1859
2043
  <path d="M6 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
1860
2044
  <path d="M18 6v12" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/>
1861
2045
  <rect x="4.2" y="8" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
1862
2046
  <rect x="16.2" y="11.2" width="3.6" height="4.8" rx="1.8" fill="currentColor"/>
1863
- </svg>`}function kn(e,t){const n=vo(t),o=e.transitions.options[n.key]??e.transitions.options.none;return{...n,label:o.label,short:o.short}}function qn(e,t=fo.en.untitledText){return String(e??"").replace(/\s+/g," ").trim()||t}function Ia(e){if(!e)return!1;const t=String(e).trim().toLowerCase();return t!==""&&t!=="transparent"}function vo(e){return po.find(t=>t.key===e)??po[0]}function pn(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 xn(e){return re(Number(e)||1,.5,2)}function Ur(e){return`${xn(e).toFixed(2)}x`}function Gr(e,t=1){const n=String(e??"").trim().replace(/x$/i,""),o=Number(n);return Number.isFinite(o)?xn(o):xn(t)}function Zr(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 Wn(e,t=.4,n=.4){const o=vo(e?.type??"none"),l=Math.max(0,Math.min(1.2,t-.05,n-.05));if(o.key==="none"||l<=.05)return{type:"none",duration:0};const s=Number(e?.duration),m=re(Number.isFinite(s)?s:o.duration,.1,l);return{type:o.key,duration:m}}function ho(e){const t=e?.clips??[],n=Math.max(0,t.length-1),o=Array.isArray(e?.transitions)?e.transitions:[],l=[];for(let s=0;s<n;s++)l.push(Wn(o[s],Dt(t[s]),Dt(t[s+1])));return l}function Qo(e,t,n="heading"){const l=e.getState().canvas??{w:1080,h:1920},s=Vo[n]??Vo.heading,m=Math.min(s.width,Math.max(240,l.w-64)),x=Math.min(s.fontSize,Math.max(32,Math.round(l.w*.11))),h=re(Math.round(l.h*.18),32,Math.max(32,l.h-180));return{type:"text",x:Math.round((l.w-m)/2),y:h,text:t.textPresets[n]??s.text,color:s.color,fontSize:x,fontFamily:"Arial",fontWeight:s.fontWeight,fontStyle:"normal",textAlign:s.textAlign,width:m,backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,paddingX:s.paddingX??Math.max(14,Math.round(x*.18)),paddingY:s.paddingY??Math.max(10,Math.round(x*.14)),boxShadow:s.boxShadow?{...s.boxShadow}:void 0,lineHeight:1.1,textPreset:n,textDecoration:"",textTransform:void 0,animation:"none",rotation:0}}const Vt=3,_e=.5,Xt=.1,bn=99,xo=36,er=6;function at(e,t=0){return Number.isFinite(e?.startAt)?Math.max(0,Number(e.startAt)):Math.max(0,t)}function $t(e,t=0,n=Vt){const o=at(e,t);return Number.isFinite(e?.endAt)?Math.max(o+_e,Number(e.endAt)):o+Math.max(_e,n)}function En(e,t=Vt){return Math.max(_e,$t(e,0,t)-at(e,0))}function ft(e,t=0){return Number.isFinite(e?.timelineTrack)?re(Math.round(Number(e.timelineTrack)),0,bn):Math.max(0,t)}function Jr(e){return e==="pen"||e==="line"||e==="arrow"||e==="rect"||e==="ellipse"}function Qt(e){return Jr(e?.type)}function Gt(e){return e?.type==="text"||e?.type==="sticker"||e?.type==="filter"||e?.type==="adjust"||Qt(e)}function Sn(e){return e*(xo+er)}function bo(e){const t=Array.isArray(e)?e:e?.overlays;return[...new Set((t??[]).filter(n=>Gt(n)).map(n=>ft(n)))].sort((n,o)=>n-o)}function Hn(e){const t=new Map;return bo(e).forEach((n,o)=>{t.set(n,o)}),t}function Qr(e){return bo(e).length}function ei(e){const t=Qr(e);return t?Sn(t-1)+xo:0}function Rn(e,t){const o=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!o)return{timelineInner:null,timelineHost:null};o.style.position="relative";const l=o.firstElementChild,s=ei(t),m=[];for(const S of o.children)S instanceof HTMLElement&&S.classList.contains("me-video-overlay-track-host")&&m.push(S);const x=[...o.children].find(S=>S!==l&&!(S instanceof HTMLElement&&S.classList.contains("me-video-overlay-track-host")))??null;if(!x)return m.forEach(S=>S.remove()),{timelineInner:o,timelineHost:null};const h=m.shift()??null;if(m.forEach(S=>S.remove()),s<=0)return h?.remove(),{timelineInner:o,timelineHost:null};const y=h??document.createElement("div");return h||(y.className="me-video-overlay-track-host"),y.style.height=`${s}px`,(y.parentElement!==o||y.nextElementSibling!==x)&&o.insertBefore(y,x),{timelineInner:o,timelineHost:y}}function ti(e){return((Array.isArray(e)?e:e?.overlays)??[]).reduce((n,o)=>Gt(o)?Math.max(n,$t(o)):n,0)}function tr(e,t,n,o){return e<o-1e-6&&n<t-1e-6}function Ha(e,t,n,o=-1){const l=new Map;(e??[]).forEach((s,m)=>{if(m===o||!Gt(s))return;const x=ft(s);let h=l.get(x);h||(h=[],l.set(x,h)),h.push({startAt:at(s),endAt:$t(s)})});for(let s=0;s<=bn;s++)if((l.get(s)??[]).every(x=>!tr(t,n,x.startAt,x.endAt)))return s;return bn}function ni(e,t,n,o,l){const s=re(Math.round(Number(l)||0),0,bn);return(e??[]).every((m,x)=>x===t||!Gt(m)||ft(m)!==s?!0:!tr(n,o,at(m),$t(m)))}function mt(e,t,n,o,l,s,m){if(!e)return m;const x=e.getBoundingClientRect(),h=Math.max(0,s-x.top),y=bo(t),S=re(Math.floor(h/(xo+er)),0,y.length),U=S<y.length?y[S]:re((y[y.length-1]??-1)+1,0,bn);return ni(t,n,o,l,U)?U:m}function Zt(e,t,n={}){const o=at(e,0),l=En(e),s=Number.isFinite(n.startAt)?Number(n.startAt):o,m=Number.isFinite(n.endAt)?Number(n.endAt):s+l,x=Math.max(0,s),h=Math.max(x+_e,m),y=Math.max(_e,Number(t)||Vt,h),S=re(x,0,Math.max(0,y-_e)),U=re(h,S+_e,Math.max(S+_e,y));return{startAt:S,endAt:U,timelineTrack:ft({timelineTrack:n.timelineTrack??e?.timelineTrack})}}function nr(e,t=1){const n=Math.max(0,Math.round(Number(t)||0));return n?(e??[]).map(o=>Gt(o)?{...o,timelineTrack:re(ft(o)+n,0,bn)}:o):[...e??[]]}function en(e){return nr(e,1)}function or(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="text").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function rr(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="sticker").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function ir(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="filter").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function ar(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>t.overlay?.type==="adjust").sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function go(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Qt(t.overlay)).sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function oi(e){return(e.overlays??[]).map((t,n)=>({overlay:t,index:n})).filter(t=>Gt(t.overlay)).sort((t,n)=>{const o=ft(t.overlay)-ft(n.overlay);if(o!==0)return o;const l=at(t.overlay)-at(n.overlay);return Math.abs(l)>1e-6?l:t.index-n.index})}function kt(e){return[...new Set((e??[]).map(t=>Number(t)).filter(t=>Number.isInteger(t)&&t>=0))].sort((t,n)=>t-n)}function Kn(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 ri(e,t){return t==="text"?e.text:t==="audio"?e.audio:e.video}function sr(){return["video","text","audio"]}function _t(e,t){return kt([...ri(Kn(e),t)])}function yo(e,t){const n=kt(t),o=kt([...e]);return o.length===n.length&&o.every((l,s)=>l===n[s])?!1:(e.clear(),n.forEach(l=>e.add(l)),!0)}function ii(e){e.dispatchEvent(new CustomEvent(zt))}function fn(e,t={},n={}){const o=Kn(e);let l=!1;if(Object.prototype.hasOwnProperty.call(t,"video")&&(l=yo(o.video,t.video)||l),Object.prototype.hasOwnProperty.call(t,"text")&&(l=yo(o.text,t.text)||l),Object.prototype.hasOwnProperty.call(t,"audio")&&(l=yo(o.audio,t.audio)||l),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,l=!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,l=!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,l=!0)}return l&&ii(e),o}function gt(e,t,n,o={}){const l=kt(n),s={[t]:l},m={[t]:l.length?o.anchor??l[l.length-1]:null};if(!o.preserveOther)for(const x of sr())x!==t&&(s[x]=[],m[x]=null);return fn(e,s,m),l}function wo(e){fn(e,{video:[],text:[],audio:[]},{video:null,text:null,audio:null})}function ai(e){return _t(e,"video").length>0||_t(e,"text").length>0||_t(e,"audio").length>0}function ko(e,t,n){const o=new Set(kt(n)),l=_t(e,t),s=l.filter(m=>o.has(m));return l.length!==s.length&&fn(e,{[t]:s},{[t]:s.length?s[s.length-1]:null}),s}function Pt(e,t,n,o,l=[]){const s=kt(l),m=!!(o?.ctrlKey||o?.metaKey),x=!!o?.shiftKey,h=Kn(e),y=_t(e,t);let S=y,U=n;if(x){const B=h.anchors[t],ne=s.indexOf(B),Q=s.indexOf(n);if(ne!==-1&&Q!==-1){const k=Math.min(ne,Q),$=Math.max(ne,Q),K=s.slice(k,$+1);S=m?kt([...y,...K]):K,U=B}else m?S=y.includes(n)?y.filter(k=>k!==n):[...y,n]:S=[n]}else m?S=y.includes(n)?y.filter(B=>B!==n):[...y,n]:S=[n];S=kt(S);const w={[t]:S},I={[t]:S.length?U:null};if(!m)for(const B of sr())B!==t&&(w[B]=[],I[B]=null);return fn(e,w,I),S}function si(e,t){const n=Kn(e);n.initialized||(n.initialized=!0)}function Ln(e){const t=typeof e.getState=="function"?e.getState():null;return Math.max(typeof e.contentDuration=="function"?e.contentDuration():0,ti(t),_e)}function Eo(e){const t=String(e??"").trim();if(!t)return NaN;const n=t.split(":").map(l=>l.trim()).filter(Boolean);if(!n.length)return NaN;let o=0;for(const l of n){const s=Number(l);if(!Number.isFinite(s))return NaN;o=o*60+s}return o}function Un(e){return e instanceof HTMLElement?String(e.dataset.meRawTimeText||e.textContent||"").trim():""}function gn(e){const t=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(t){const l=[...t.children].find(m=>m instanceof HTMLElement&&String(m.style.transform||"").includes("translateX(-50%)")),s=Eo(Un(l));if(Number.isFinite(s))return s}const n=[...e.querySelectorAll(".me-video-trim-actions span")].find(l=>Un(l).includes("/")),o=Un(n);if(o){const l=Eo(o.split("/")[0]);if(Number.isFinite(l))return l}return 0}function Fn(e,t){return ko(e,"video",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function So(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="text")}function lr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="sticker")}function cr(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="filter")}function Gn(e,t){return _t(e,"text").filter(n=>t.overlays?.[n]?.type==="adjust")}function dr(e,t){return _t(e,"text").filter(n=>Qt(t.overlays?.[n]))}function $n(e,t){const n=oi(t).map(o=>o.index);return ko(e,"text",n).filter(o=>Gt(t.overlays?.[o]))}function Tn(e,t){return ko(e,"audio",(t??[]).map((n,o)=>o)).filter(n=>!!t[n])}function li(e,t){const n=kt(t).filter(s=>!!e[s]);if(!n.length)return{clips:e,selection:[],changed:!1};const o=n[n.length-1]+1,l=n.map(s=>({...e[s]}));return{clips:[...e.slice(0,o),...l,...e.slice(o)],selection:l.map((s,m)=>o+m),changed:!0}}function Lo(e,t){const n=kt(t).filter(x=>Gt(e[x]));if(!n.length)return{overlays:e,selection:[],changed:!1};const o=n.map(x=>{const h=e[x];return h?.type==="pen"?{...h,points:(h.points??[]).map((y,S)=>(S%2===0,(Number(y)||0)+24))}:h?.type==="line"||h?.type==="arrow"?{...h,x1:(Number(h.x1)||0)+24,y1:(Number(h.y1)||0)+24,x2:(Number(h.x2)||0)+24,y2:(Number(h.y2)||0)+24}:{...h,x:(Number(h.x)||0)+24,y:(Number(h.y)||0)+24}}),s=[...nr(e,o.length),...o.map((x,h)=>({...x,timelineTrack:re(h,0,bn)}))],m=s.length-o.length;return{overlays:s,selection:o.map((x,h)=>m+h),changed:!0}}function ci(e,t){const n=kt(t).filter(s=>!!e[s]);if(!n.length)return{audioClips:e,selection:[],changed:!1};const o=n[n.length-1]+1,l=n.map(s=>{const m=e[s];return{...m,track:Number.isInteger(m?.track)&&m.track>=0?m.track:s,startAt:Math.max(0,(Number(m.startAt)||0)+.2)}});return{audioClips:[...e.slice(0,o),...l,...e.slice(o)],selection:l.map((s,m)=>o+m),changed:!0}}function di(e,t){const n=kt(t).filter(l=>!!e[l]);if(!n.length||n.length>=e.length)return{clips:e,selection:n,changed:!1};const o=new Set(n);return{clips:e.filter((l,s)=>!o.has(s)),selection:[],changed:!0}}function To(e,t){const n=new Set(kt(t).filter(o=>Gt(e[o])));return n.size?{overlays:e.filter((o,l)=>!n.has(l)),selection:[],changed:!0}:{overlays:e,selection:[],changed:!1}}function ui(e,t){const n=new Set(kt(t).filter(o=>!!e[o]));return n.size?{audioClips:e.filter((o,l)=>!n.has(l)),selection:[],changed:!0}:{audioClips:e,selection:[],changed:!1}}function mi(e,t,n){const o=new Set(kt(t).filter(h=>!!e[h]));if(!o.size)return{clips:e,selection:[],changed:!1};let l=0,s=!1;const m=[],x=[];for(let h=0;h<e.length;h++){const y=e[h],S=Math.max(0,(Number(y?.out)||0)-(Number(y?.in)||0)),U=l+S;if(o.has(h)&&n>l+Xt&&n<U-Xt){const w=(Number(y.in)||0)+(n-l);x.push(m.length),m.push({...y,out:w}),x.push(m.length),m.push({...y,in:w}),s=!0}else o.has(h)&&x.push(m.length),m.push(y);l=U}return{clips:s?m:e,selection:s?x:kt(t),changed:s}}function pi(e,t,n,o){const l=new Set(kt(t).filter(h=>Gt(e[h])));if(!l.size)return{overlays:e,selection:[],changed:!1};let s=!1;const m=[],x=[];for(let h=0;h<e.length;h++){const y=e[h];if(Gt(y)&&l.has(h)){const S=at(y),U=$t(y,S),w=re(o,S+_e,U-_e);if(w>S+1e-6&&w<U-1e-6){x.push(m.length),m.push({...y,...Zt(y,n,{startAt:S,endAt:w,timelineTrack:ft(y)})}),x.push(m.length),m.push({...y,...Zt(y,n,{startAt:w,endAt:U,timelineTrack:ft(y)})}),s=!0;continue}x.push(m.length)}m.push(y)}return{overlays:s?m:e,selection:s?x:kt(t),changed:s}}function fi(e,t,n){const o=new Set(kt(t).filter(x=>!!e[x]));if(!o.size)return{audioClips:e,selection:[],changed:!1};let l=!1;const s=[],m=[];for(let x=0;x<e.length;x++){const h=e[x],y=Math.max(0,Number(h?.startAt)||0),S=Dt(h),U=y+S;if(o.has(x)&&n>y+Xt&&n<U-Xt){const w=(Number(h.in)||0)+(n-y),I=Math.max(0,w-(Number(h.in)||0)),B=Math.max(0,(Number(h.out)||0)-w);m.push(s.length),s.push({...h,track:Number.isInteger(h?.track)&&h.track>=0?h.track:x,out:w,fadeIn:Math.min(Number(h.fadeIn)||0,I),fadeOut:0}),m.push(s.length),s.push({...h,track:Number.isInteger(h?.track)&&h.track>=0?h.track:x,in:w,startAt:n,fadeIn:0,fadeOut:Math.min(Number(h.fadeOut)||0,B)}),l=!0;continue}o.has(x)&&m.push(s.length),s.push(h)}return{audioClips:l?s:e,selection:l?m:kt(t),changed:l}}function vi(e,t,n){const o=new Set(kt(t));let l=0;for(let s=0;s<e.length;s++){const m=e[s],x=Math.max(0,(Number(m?.out)||0)-(Number(m?.in)||0)),h=l+x;if(o.has(s)&&n>l+Xt&&n<h-Xt)return!0;l=h}return!1}function hi(e,t,n){return kt(t).some(o=>{const l=e[o];if(!Gt(l))return!1;const s=at(l),m=$t(l,s);return n>s+_e&&n<m-_e})}function xi(e,t,n){return kt(t).some(o=>{const l=e[o];if(!l)return!1;const s=Math.max(0,Number(l.startAt)||0),m=s+Dt(l);return n>s+Xt&&n<m-Xt})}function bi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=Fn(e,o),x=Tn(e,l),h=$n(e,n);if(!m.length&&!x.length&&!h.length)return!1;let y=o,S=l,U=s,w=m,I=x,B=h,ne=!1;if(m.length){const Q=li(y,m);y=Q.clips,w=Q.selection,ne=Q.changed||ne}if(x.length){const Q=ci(S,x);S=Q.audioClips,I=Q.selection,ne=Q.changed||ne}if(h.length){const Q=Lo(U,h);U=Q.overlays,B=Q.selection,ne=Q.changed||ne}return ne?(t.commit({clips:y,audioClips:S,overlays:U}),fn(e,{video:w,audio:I,text:B},{video:w.length?w[w.length-1]:null,audio:I.length?I[I.length-1]:null,text:B.length?B[B.length-1]:null}),!0):!1}function gi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=Fn(e,o),x=Tn(e,l),h=$n(e,n);let y=o,S=l,U=s,w=m,I=x,B=h,ne=!1;const Q=di(y,m);Q.changed&&(y=Q.clips,w=Q.selection,ne=!0);const k=To(U,h);k.changed&&(U=k.overlays,B=k.selection,ne=!0);const $=ui(S,x);return $.changed&&(S=$.audioClips,I=$.selection,ne=!0),ne?(t.commit({clips:y,audioClips:S,overlays:U}),fn(e,{video:w,audio:I,text:B},{video:w.length?w[w.length-1]:null,audio:I.length?I[I.length-1]:null,text:B.length?B[B.length-1]:null}),!0):!1}function yi(e,t){const n=t.getState(),o=n.clips??[],l=n.audioClips??[],s=n.overlays??[],m=gn(e),x=Fn(e,o),h=Tn(e,l),y=$n(e,n);let S=o,U=l,w=s,I=x,B=h,ne=y,Q=!1;if(x.length){const k=mi(S,x,m);S=k.clips,I=k.selection,Q=k.changed||Q}if(h.length){const k=fi(U,h,m);U=k.audioClips,B=k.selection,Q=k.changed||Q}if(y.length){const k=pi(w,y,Math.max(Ln(t),m+_e),m);w=k.overlays,ne=k.selection,Q=k.changed||Q}return Q?(t.commit({clips:S,audioClips:U,overlays:w}),fn(e,{video:I,audio:B,text:ne},{video:I.length?I[I.length-1]:null,audio:B.length?B[B.length-1]:null,text:ne.length?ne[ne.length-1]:null}),!0):!1}function Zn(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 jt(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"}],ur={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"}},mr={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"],pr={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"}},Co={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=ln(e);return{...pr.en,...pr[t]??{}}}function Mo(e){const t=ln(e),n=Co[t]??{};return{...Co.en,...n,presetNames:{...Co.en.presetNames,...n.presetNames??{}}}}function Cn(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: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 Ci(e){const t=ln(e),n={...ur.en,...ur[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=Wo),n}function Mi(e){const t=ln(e);return{...mr.en,...mr[t]??{}}}const fr={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=ln(e);return fr[t]??fr.en}const vr=[{key:"brush"},{key:"eraser"},{key:"line"},{key:"arrow"},{key:"rectangle"},{key:"ellipse"}],Bn=2,Dn=24,Mn=14,Ra=["pen","line","arrow","rect","ellipse"],Ai={brush:"pen",line:"line",arrow:"arrow",rectangle:"rect",ellipse:"ellipse"},hr=["#ffffff","#ff4d4f","#ff7a45","#ffa940","#fadb14","#95de64","#52c41a","#13c2c2","#40a9ff","#2f54eb","#7c7cf0","#eb2f96","#722ed1","#000000"],cn={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 xr(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 Fa(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 cn.tool}}function Jn(e=cn){const t=vr.some(o=>o.key===e?.tool)?e.tool:cn.tool,n=gr(e?.color);return{tool:t,color:n,width:re(Math.round(Number(e?.width)||cn.width),Bn,Dn)}}function No(e,t){return e?.tool===t?.tool&&e?.color===t?.color&&Number(e?.width)===Number(t?.width)}function br(e){return No(e,cn)}function Pi(e){return`${re(Math.round(Number(e)||cn.width),Bn,Dn)}px`}function gr(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("#","")}`:cn.color}function Qn(e){const t=gr(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 eo(e,t,n){return`#${[e,t,n].map(o=>re(Math.round(Number(o)||0),0,255).toString(16).padStart(2,"0")).join("")}`}function Ao(e,t,n){const o=re(Number(e)||0,0,255)/255,l=re(Number(t)||0,0,255)/255,s=re(Number(n)||0,0,255)/255,m=Math.max(o,l,s),x=Math.min(o,l,s),h=m-x;let y=0;return h>0&&(m===o?y=60*((l-s)/h%6):m===l?y=60*((s-o)/h+2):y=60*((o-l)/h+4)),y<0&&(y+=360),{h:y,s:m<=0?0:h/m,v:m}}function Oo(e,t,n){const o=((Number(e)||0)%360+360)%360,l=re(Number(t)||0,0,1),s=re(Number(n)||0,0,1),m=s*l,x=o/60,h=m*(1-Math.abs(x%2-1));let y=0,S=0,U=0;x>=0&&x<1?(y=m,S=h):x<2?(y=h,S=m):x<3?(S=m,U=h):x<4?(S=h,U=m):x<5?(y=h,U=m):(y=m,U=h);const w=s-m;return{r:Math.round((y+w)*255),g:Math.round((S+w)*255),b:Math.round((U+w)*255)}}function Ii(e){const t=Oo(e,1,1);return eo(t.r,t.g,t.b)}const Hi=["none","sepia","cool","warm","vivid","bw"],$a=["brightness","contrast","saturation","temperature","tint","vibrance","gamma"],Nn={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},zo=Object.keys(Nn);function yr(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,...Nn}}));return}e.setFilters({...Nn})}function Fi(e){const t=new Map($r.map(n=>[n.id,n]));return Hi.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 wr(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 Po(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 $i(e){return e instanceof HTMLButtonElement?(e.dataset.meAnnotateHidden="true",e):e??null}function to(e){const t=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(e.find(n=>{const o=Po(n);return t.some(l=>o.includes(l))})??e[0]??null)}function Bi(e){const t=["annotate","annotation","markup","draw","doodle","\u6807\u6CE8","\u5857\u9E26","\u5857\u9D09"];return $i(e.find(n=>{const o=Po(n);return t.some(l=>o.includes(l))})??null)}function kr(e,t,n){try{const o=document.createElement("canvas");o.width=208,o.height=118;const l=o.getContext("2d");if(!l)return"";const s=t/n,m=o.width/o.height;let x=0,h=0,y=t,S=n;return s>m?(y=n*m,x=(t-y)/2):s<m&&(S=t/m,h=(n-S)/2),l.drawImage(e,x,h,y,S,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 kr(t,t.width,t.height);const n=e.querySelector("video");return n instanceof HTMLVideoElement&&n.videoWidth>8&&n.videoHeight>8?kr(n,n.videoWidth,n.videoHeight):""}function _i(e){const t=String(e??"").split(":").map(l=>Number(l));if(t.length!==2)return null;const[n,o]=t;return!(n>0)||!(o>0)?null:n/o}function no(e,t=1080){const n=_i(e)??1;return n>=1?{w:Math.max(2,Yt(t*n)),h:Math.max(2,Yt(t))}:{w:Math.max(2,Yt(t)),h:Math.max(2,Yt(t/n))}}function ji(){return Ei.map(e=>({...e,ratios:e.ratios.map(t=>({ratio:t,...no(t)}))}))}function Er(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 Er(e)}}function Vi(e){return Si.map(t=>{const n=no(t),o=e.filter(l=>l.ratios.some(s=>s.ratio===t));return o.length?{ratio:t,...n,groups:o,hint:o.map(l=>Er(l)).join(" / "),tags:o.map(l=>Yi(l))}:null}).filter(Boolean)}function An(e){return`${Math.max(2,Yt(e?.w??0))} x ${Math.max(2,Yt(e?.h??0))} px`}function Sr(e){const t=e?.canvas??{w:1080,h:1920};return Do(t,{...e,scale:void 0})}function _n(e){return e?.scale?{w:Math.max(2,Yt(e.scale.width)),h:Math.max(2,Yt(e.scale.height))}:Sr(e)}function Ho(e){return e==="contain"||e==="force"?e:"cover"}function vn(e,t){const n=Number(e),o=Number.isFinite(n)&&n>0?n:t;return Math.max(2,Yt(o||2))}function Xi(e,t){const n=Math.max(2,Yt(t?.w??0)),o=Math.max(2,Yt(t?.h??0));return e.find(l=>Math.abs(l.w-n)<=2&&Math.abs(l.h-o)<=2)??null}function qi(e,t){switch(Ho(t)){case"contain":return e.containHint;case"force":return e.forceHint;default:return e.coverHint}}function oo(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 jn(e=[],t=[]){const n=typeof Intl<"u"?new Intl.Collator(void 0,{sensitivity:"base",numeric:!0}):null,o=new Set;return[...e,...t].map(l=>String(l??"").trim()).filter(Boolean).filter(l=>{const s=l.toLowerCase();return o.has(s)?!1:(o.add(s),!0)}).sort((l,s)=>n?n.compare(l,s):l.localeCompare(s))}function Ro(e){return`"${String(e??"").replace(/\\/g,"\\\\").replace(/"/g,'\\"')}", ${mo}`}function ro(e){const t=String(e??"").trim();return jr[t]||t}function Fo(e){const t=String(e??"").trim(),n=ro(t);return n&&n!==t?`${n} (${t})`:t}function Wi(e){const t=String(e??"").trim();return`${t} ${ro(t)} ${Fo(t)}`.toLowerCase()}function Lr(e){return/[\u3400-\u9fff\uf900-\ufaff]/.test(String(e??""))}function Ki(e){const t=String(e??"").trim().toLowerCase();return t?Yr.some(n=>t.includes(n))?!0:Lr(ro(e)):!1}function Ui(e,t=!1){const n=jn(e);if(!t)return n;const o=[],l=[];for(const s of n)Ki(s)?o.push(s):l.push(s);return[...o,...l]}async function Gi(){return Vn||(Vn=(async()=>{const e=jn(Yo);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 jn(n,e)}catch{return e}})(),Vn)}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 l=document.createElement("span");l.className="me-video-font-picker-chevron",l.textContent="v",n.append(o,l);const s=document.createElement("div");s.className="me-video-font-picker-dropdown",s.hidden=!0;const m=document.createElement("label");m.className="me-video-font-picker-search";const x=document.createElement("span");x.className="me-video-font-picker-search-icon",x.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 h=document.createElement("input");h.type="search",h.className="me-video-font-picker-search-input",h.placeholder=e.searchFont,h.autocomplete="off",h.spellcheck=!1;const y=document.createElement("div");y.className="me-video-font-picker-list",m.append(x,h),s.append(m,y),t.append(n,s);let S=!1,U=!1,w=!1,I="Arial",B=jn(Yo),ne=!1;const Q=typeof requestAnimationFrame=="function"?requestAnimationFrame:W=>setTimeout(W,0);function k(){I||(I="Arial"),B=jn(B,[I])}function $(W){const J=document.createElement("div");return J.className="me-video-font-picker-message",J.textContent=W,J}function K(W){const J=document.createElement("button");J.type="button",J.className="me-video-font-picker-option",W===I&&J.classList.add("is-active"),J.dataset.family=W;const ve=document.createElement("span");ve.className="me-video-font-picker-option-name",ve.textContent=Fo(W),ve.style.fontFamily=Ro(W);const he=document.createElement("span");return he.className="me-video-font-picker-option-preview",he.textContent=e.sampleText||Wo,he.style.fontFamily=Ro(W),J.append(ve,he),J.addEventListener("click",()=>{ee(W),t.dispatchEvent(new CustomEvent("fontchange",{detail:{value:W}})),X(!1),n.focus()}),J}function V(){const W=I||"Arial";o.textContent=ro(W),o.style.fontFamily=Ro(I||"Arial"),n.title=Fo(W),n.disabled=U}function Z(){if(y.replaceChildren(),!S)return;if(w){y.appendChild($(e.loadingFonts));return}k();const W=String(h.value??"").trim().toLowerCase(),J=Ui(B.filter(ve=>!W||Wi(ve).includes(W)),ne);if(!J.length){y.appendChild($(e.noFonts));return}for(const ve of J)y.appendChild(K(ve))}function X(W){U&&W||(S=!!W,t.classList.toggle("is-open",S),s.hidden=!S,S?Q(()=>{h.focus(),h.select()}):h.value="",Z())}async function se(){if(!w){w=!0,Z();try{B=await Gi(),k()}finally{w=!1,Z()}}}function ee(W,{silent:J=!1}={}){I=String(W??"").trim()||"Arial",k(),V(),!J&&S&&Z()}function q(){return I||"Arial"}function Y(W){U=!!W,U&&X(!1),V(),h.disabled=U}function T(W){const J=Lr(W);ne!==J&&(ne=J,S&&Z())}function D(W){S&&(t.contains(W.target)||X(!1))}return n.addEventListener("click",async()=>{const W=!S;X(W),W&&await se()}),h.addEventListener("input",()=>Z()),document.addEventListener("pointerdown",D,!0),ee("Arial",{silent:!0}),Y(!1),{wrap:t,setValue:ee,getValue:q,setDisabled:Y,setContextText:T,destroy(){document.removeEventListener("pointerdown",D,!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 hn(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 l=n.match(/^rgba?\(([^)]+)\)$/i);if(l){const s=l[1].split(",").slice(0,3).map(m=>re(Math.round(Number(m.trim())||0),0,255));if(s.length===3)return`#${s.map(m=>m.toString(16).padStart(2,"0")).join("")}`}return t}function Ct(e,t,n=""){const o=document.createElement("div");o.className=`me-video-text-row${n?` ${n}`:""}`;const l=document.createElement("label");return l.className="me-video-text-row-label",l.textContent=e,o.append(l,t),o}function qt(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 io({allowTransparent:e=!1,fallback:t="#ffffff",transparentLabel:n="Transparent"}={}){const o=document.createElement("div");o.className="me-video-text-color-control";const l=document.createElement("input");l.type="color",l.className="me-video-text-color-swatch",l.value=hn(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(l,s);let m=null;e&&(m=document.createElement("button"),m.type="button",m.className="me-video-text-toggle me-video-text-transparent-toggle",m.textContent=n,o.appendChild(m));function x(){return o.dataset.transparent==="true"}function h(w){o.dataset.transparent=w?"true":"false",m?.classList.toggle("is-active",w),l.disabled=w,w?s.value="transparent":(!s.value||s.value==="transparent")&&(s.value=l.value||hn(t,"#ffffff"))}function y(w){if(e&&String(w??"").trim().toLowerCase()==="transparent"){h(!0);return}const I=hn(w,hn(t,"#ffffff"));l.value=I==="transparent"?hn(t,"#ffffff"):I,s.value=I==="transparent"?"transparent":I,e&&h(I==="transparent")}function S(){return e&&x()?"transparent":hn(s.value||l.value,l.value||hn(t,"#ffffff"))}function U(w){l.disabled=w||e&&x(),s.disabled=w,m&&(m.disabled=w)}return y(t),{wrap:o,swatch:l,text:s,transparentButton:m,setTransparent:h,setValue:y,getValue:S,setDisabled:U}}function ao(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 tn(e,t){const n=ao(e);return n?(t.parentElement!==n&&n.appendChild(t),n):null}function It(e){const t=ao(e);if(!t)return;const n=[...t.children].some(o=>o instanceof HTMLElement&&!o.hidden);t.hidden=!n}function Tr(e,t,n){const o=ao(e);if(!(!o||!(t instanceof HTMLElement))){for(const l of o.children)if(!(!(l instanceof HTMLElement)||l===t)){if(n){l.dataset.meInspectorPrevHidden||(l.dataset.meInspectorPrevHidden=l.hidden?"true":"false"),l.hidden=!0;continue}Object.prototype.hasOwnProperty.call(l.dataset,"meInspectorPrevHidden")&&(l.hidden=l.dataset.meInspectorPrevHidden==="true",delete l.dataset.meInspectorPrevHidden)}}}function Cr(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){sn(),wn();const l=o(),s=Uo(l),m=s.text,x=Ci(l),h=document.createElement("div");h.className="me-video-text-panel",h.hidden=!0,e.appendChild(h);const y=document.createElement("div");y.className="me-video-text-toolbar";const S=document.createElement("strong");S.textContent=m.tool;const U=jt(m.addText),w=jt(m.moveOnCanvas),I=jt(m.duplicate),B=jt(m.delete);B.classList.add("me-video-text-danger");const ne=jt(m.close);y.append(S);const Q=document.createElement("div");Q.className="me-video-text-list";const k=document.createElement("div");k.className="me-video-text-empty",k.textContent=m.empty;const $=document.createElement("textarea");$.className="me-video-text-input me-video-text-textarea",$.placeholder=m.placeholder;const K=document.createElement("select");K.className="me-video-text-select",oo(K,[{value:"none",label:x.none},{value:"heading",label:m.heading},{value:"subtitle",label:m.subtitle},{value:"label",label:m.label}]);const V=Zi(x),Z=document.createElement("select");Z.className="me-video-text-select",oo(Z,ki);const X=document.createElement("input");X.type="number",X.min="8",X.max="320",X.step="1",X.className="me-video-text-input";const se=io({fallback:"#ffffff"}),ee=io({allowTransparent:!0,fallback:"#111111",transparentLabel:x.transparent}),q=document.createElement("div");q.className="me-video-text-inline";const Y=[{value:"left",label:x.alignLeft},{value:"center",label:x.alignCenter},{value:"right",label:x.alignRight}].map(u=>{const L=document.createElement("button");return L.type="button",L.className="me-video-text-align",L.dataset.align=u.value,L.textContent=u.label,q.appendChild(L),{value:u.value,button:L}}),T=document.createElement("div");T.className="me-video-text-toggle-group";const D=document.createElement("button");D.type="button",D.className="me-video-text-toggle is-italic",D.title=x.italic,D.textContent="I";const W=document.createElement("button");W.type="button",W.className="me-video-text-toggle is-underline",W.title=x.underline,W.textContent="U";const J=document.createElement("button");J.type="button",J.className="me-video-text-toggle is-strike",J.title=x.strike,J.textContent="S",T.append(D,W,J);const ve=document.createElement("select");ve.className="me-video-text-select",oo(ve,[{value:"none",label:x.caseNone},{value:"uppercase",label:x.uppercase},{value:"lowercase",label:x.lowercase},{value:"capitalize",label:x.capitalize}]);const he=document.createElement("div");he.className="me-video-text-slider-row";const He=document.createElement("input");He.type="number",He.min="0",He.max="100",He.step="1",He.className="me-video-text-input";const ue=document.createElement("input");ue.type="range",ue.min="0",ue.max="100",ue.step="1",he.append(He,ue);const Ee=document.createElement("select");Ee.className="me-video-text-select",oo(Ee,[{value:"none",label:x.none}]);const We=io({fallback:"#000000"}),Fe=document.createElement("input");Fe.type="number",Fe.min="0",Fe.max="32",Fe.step="1",Fe.className="me-video-text-input";const R=io({fallback:"#000000"}),C=document.createElement("input");C.type="number",C.min="-80",C.max="80",C.step="1",C.className="me-video-text-input";const $e=document.createElement("input");$e.type="number",$e.min="-80",$e.max="80",$e.step="1",$e.className="me-video-text-input";const Se=document.createElement("input");Se.type="number",Se.min="0",Se.max="80",Se.step="1",Se.className="me-video-text-input";const ce=document.createElement("div");ce.className="me-video-text-section-body",ce.append(Ct(m.content,$,"is-area"),Ct(x.preset,K));const Re=qt(x.styles);Re.body.append(Ct(m.font,V.wrap),Ct(m.weight,Z),Ct(x.size,X),Ct(m.color,se.wrap),Ct(x.fill,ee.wrap),Ct(m.align,q),Ct(x.decoration,T),Ct(x.case,ve),Ct(m.opacity,he));const O=qt(x.animations);O.body.append(Ct(x.animation,Ee));const G=qt(x.fontStroke);G.body.append(Ct(m.color,We.wrap),Ct(x.size,Fe));const H=qt(x.fontShadow);H.body.append(Ct(m.color,R.wrap),Ct(x.x,C),Ct(x.y,$e),Ct(x.blur,Se)),h.append(y,k,ce,Re.section,O.section,G.section,H.section);let _=null,le=null,Xe=null,Le=null,Ze=null,Ue=null,je=null,ct=null,ot=!1,Te=null,rt=!1,ht=!1;const Et="text",xe=typeof requestAnimationFrame=="function"?requestAnimationFrame:u=>setTimeout(u,16),Ce=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ie()),ke=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>ie()),Qe=[{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}],nt={key:"rotate",x:.5,y:0};function vt(){Promise.resolve().then(()=>{ht=!1;const u=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,u-1)})}function yt(u){ht=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return u()}finally{vt()}}function ie(){rt||(rt=!0,xe(()=>{rt=!1,qe()}))}function ye(u){const L=!!u;if(L===ot){qe();return}ot=L,ot&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Et}})),qe()}function Ye(){return le?[...le.querySelectorAll("button")].filter(u=>u!==_&&!u.classList.contains("me-video-text-tool")):[]}function Ge(){Ye()[0]?.click()}function it(){if(!_)return;const u=Xn(n());_.dataset.theme=u}function Lt(){tn(e,h),It(e)}function Tt(){h.hidden=!ot,_&&_.classList.toggle("is-active",ot),Lt()}function Rt(u){if(!u.length){Te=null;return}const L=So(e,t.getState());Te=L.length?L[L.length-1]:null}function dt(){const u=t.getState().overlays??[];if(Te==null)return null;const L=u[Te];return L?.type==="text"?L:null}function Ht(){return Ln(t)}function bt(){return gn(e)}function Ft(){if(!t.history?.present)return;const u=bt(),L=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(L)?L:-1)-u)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:u}},typeof t.emit=="function"&&t.emit())}function wt(u,L,i={}){const f=(t.getState().overlays??[])[u];!f||f.type!=="text"||t.updateOverlay(u,Zt(f,Ht(),L),i)}function Mt(u){if(typeof t.applyMut=="function"){t.applyMut(i=>({...i,overlays:[...en(i.overlays),{...u,timelineTrack:0}]}));return}const L=en(t.getState().overlays);t.commit?.({overlays:[...L,{...u,timelineTrack:0}]})}function ut(u,L={}){if(Te==null)return;const i=L.preservePreset||Object.prototype.hasOwnProperty.call(u,"textPreset")?u:{...u,textPreset:"none"};t.updateOverlay(Te,i)}function Wt(u="heading"){const L=Ht();let i=re(bt(),0,Math.max(0,L-_e)),c=Math.min(L,i+Vt);c-i<_e&&(i=re(L-Vt,0,Math.max(0,L-_e)),c=Math.max(i+_e,L));const f={...Qo(t,s,u),...Zt(null,L,{startAt:i,endAt:c,timelineTrack:0})};Mt(f);const r=t.getState().overlays??[];Te=r.length?r.length-1:null,Te!=null&&gt(e,"text",[Te]),Ge(),ye(!0)}function g(){const u=t.getState(),L=Lo(u.overlays??[],So(e,u));L.changed&&(t.commit({overlays:L.overlays}),Te=L.selection.length?L.selection[L.selection.length-1]:null,gt(e,"text",L.selection),qe())}function N(){const u=t.getState(),L=To(u.overlays??[],So(e,u));L.changed&&(t.commit({overlays:L.overlays}),Te=null,gt(e,"text",[]),qe())}function j(u){if(!dt()){Wt(u);return}const i=Qo(t,s,u);ut({text:i.text,fontSize:i.fontSize,width:i.width,fontWeight:i.fontWeight,fontFamily:i.fontFamily,fontStyle:i.fontStyle,textAlign:i.textAlign,color:i.color,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,paddingX:i.paddingX,paddingY:i.paddingY,lineHeight:i.lineHeight,boxShadow:i.boxShadow?{...i.boxShadow}:void 0,textDecoration:i.textDecoration??"",textTransform:i.textTransform,animation:"none",textPreset:u},{preservePreset:!0})}function we(){const{timelineInner:u,timelineHost:L}=Rn(e,t.getState());if(!u||!L){Le?.remove(),Le=null,Ce&&Ze&&(Ce.unobserve(Ze),Ze=null),Xe=null;return}Xe=u,(!Le||!Le.isConnected||Le.parentElement!==L)&&(Le?.remove(),Le=document.createElement("div"),Le.className="me-video-text-timeline me-video-overlay-timeline me-video-text-overlay-layer");for(const i of[...L.children])i!==Le&&i instanceof HTMLElement&&i.classList.contains("me-video-text-overlay-layer")&&i.remove();(Le.parentElement!==L||L.lastElementChild!==Le)&&L.appendChild(Le),Ce&&Ze!==Xe&&(Ze&&Ce.unobserve(Ze),Ze=Xe,Ce.observe(Xe))}function Oe(){const u=e.querySelector(".me-video-canvas-stage");if(!u){je?.remove(),je=null,ke&&ct&&(ke.unobserve(ct),ct=null),Ue=null;return}Ue=u,Ue.style.position="relative",!je||!je.isConnected||je.parentElement!==Ue?(je?.remove(),je=document.createElement("div"),je.className="me-video-text-canvas-layer",je.addEventListener("pointerdown",L=>{L.target===je&&(L.preventDefault(),L.stopPropagation())}),je.addEventListener("click",L=>{L.target===je&&(L.preventDefault(),L.stopPropagation(),Te=null,wo(e),ot?ye(!1):qe())}),Ue.appendChild(je)):Ue.lastElementChild!==je&&Ue.appendChild(je),ke&&ct!==Ue&&(ct&&ke.unobserve(ct),ct=Ue,ke.observe(Ue))}function p(){if(!Ue)return null;const L=t.getState().canvas??{},i=Math.max(1,Number(L.w)||0),c=Math.max(1,Number(L.h)||0);if(!i||!c)return null;const f=Ue.getBoundingClientRect(),r=Ue.querySelector("canvas, video, img")||[...Ue.children].find(z=>z!==je)||null;let a=0,d=0,v=Ue.clientWidth||i,M=Ue.clientHeight||c;if(r instanceof HTMLElement){const z=r.getBoundingClientRect();z.width>0&&z.height>0&&(a=z.left-f.left,d=z.top-f.top,v=z.width,M=z.height)}if(!(v>0&&M>0)){const z=Ue.clientWidth||i,F=Ue.clientHeight||c,E=Math.min(z/i,F/c)||1;v=i*E,M=c*E,a=Math.max(0,(z-v)/2),d=Math.max(0,(F-M)/2)}return{stageLeft:f.left,stageTop:f.top,left:a,top:d,scaleX:v/i,scaleY:M/c}}function b(u,L){const i=at(u),c=$t(u,i);return L>=i-.001&&L<=c+.001}function A(u,L,i){const c=Pt(e,"text",u,L,i);Te=c.length?c[c.length-1]:null,ye(!0),qe()}function ae(u,L,i){return{x:(u-i.stageLeft-i.left)/i.scaleX,y:(L-i.stageTop-i.top)/i.scaleY}}function de(u,L,i,c){return{x:i,y:c,fontSize:L.fontSize,width:L.width,paddingX:L.paddingX,paddingY:L.paddingY,borderWidth:L.borderWidth,boxShadow:L.boxShadow}}function me(u,L,i){const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;const f=t.getState().canvas??{w:1080,h:1920},r=Ut(c);if(!r)return;const a=L.clientX,d=L.clientY,v=Math.max(0,(Number(f.w)||0)-r.w),M=Math.max(0,(Number(f.h)||0)-r.h),z=(P,te,oe)=>{const Be=(P-a)/i.scaleX,ge=(te-d)/i.scaleY,fe=re(r.x+Be,0,v),pe=re(r.y+ge,0,M);t.updateOverlay(u,{x:fe,y:pe},oe?{transient:!0}:void 0)},F=P=>{P.preventDefault(),z(P.clientX,P.clientY,!0)},E=P=>{window.removeEventListener("pointermove",F),window.removeEventListener("pointerup",E),window.removeEventListener("pointercancel",E),z(P.clientX,P.clientY,!1)};window.addEventListener("pointermove",F),window.addEventListener("pointerup",E),window.addEventListener("pointercancel",E)}function ze(u,L,i,c){const f=(t.getState().overlays??[])[u];if(!f||f.type!=="text")return;const r=Ut(f);if(!r)return;const a=t.getState().canvas??{w:1080,h:1920},d=L.x===.5?.5:1-L.x,v=L.y===.5?.5:1-L.y,M=r.x+r.w*d,z=r.y+r.h*v,F=Math.max(.1,24/Math.max(24,r.w),24/Math.max(24,r.h)),E=L.x===.5?1/0:Math.max(.1,(d===0?(Number(a.w)||0)-M:M)/Math.max(1,r.w)),P=L.y===.5?1/0:Math.max(.1,(v===0?(Number(a.h)||0)-z:z)/Math.max(1,r.h)),te=Math.max(F,Math.min(E,P,8)),oe=(fe,pe,De)=>{const et=ae(fe,pe,c),tt=[];L.x!==.5&&tt.push(Math.abs(et.x-M)/Math.max(1,r.w)),L.y!==.5&&tt.push(Math.abs(et.y-z)/Math.max(1,r.h));const st=tt.length?Math.max(...tt):1,St=re(st,F,te),Kt=_o(f,St),dn=Ut(Kt);if(!dn)return;const un=M-dn.w*d,an=z-dn.h*v;t.updateOverlay(u,de(f,Kt,un,an),De?{transient:!0}:void 0)},Be=fe=>{fe.preventDefault(),oe(fe.clientX,fe.clientY,!0)},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge),oe(fe.clientX,fe.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge)}function be(u,L,i){const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;const f=Ut(c);if(!f)return;const r=i.stageLeft+i.left+(f.x+f.w/2)*i.scaleX,a=i.stageTop+i.top+(f.y+f.h/2)*i.scaleY,d=Math.atan2(L.clientY-a,L.clientX-r),v=mn(c),M=(E,P,te,oe)=>{const Be=Math.atan2(P-a,E-r);let ge=In(v+(Be-d)*180/Math.PI);oe&&(ge=Math.round(ge/15)*15),t.updateOverlay(u,{rotation:ge},te?{transient:!0}:void 0)},z=E=>{E.preventDefault(),M(E.clientX,E.clientY,!0,E.shiftKey)},F=E=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",F),M(E.clientX,E.clientY,!1,E.shiftKey)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",F),window.addEventListener("pointercancel",F)}function Pe(u,L){if(Oe(),!je)return;je.replaceChildren();const i=p();if(!i){je.hidden=!0;return}je.hidden=!1;const c=bt(),f=u.map(a=>a.index),r=u.filter(a=>b(a.overlay,c));for(const a of r){const d=Ut(a.overlay);if(!d)continue;const v=document.createElement("button");v.type="button",v.className="me-video-text-canvas-hit";const M=L.has(a.index),z=M&&Te===a.index;M&&v.classList.add("is-active"),v.title=qn(a.overlay.text,s.untitledText),v.style.left=`${i.left+d.x*i.scaleX}px`,v.style.top=`${i.top+d.y*i.scaleY}px`,v.style.width=`${Math.max(18,d.w*i.scaleX)}px`,v.style.height=`${Math.max(18,d.h*i.scaleY)}px`;const F=mn(a.overlay);if(F&&(v.style.transform=`rotate(${F}deg)`,v.style.transformOrigin="center center"),v.addEventListener("pointerdown",E=>{if(E.preventDefault(),E.stopPropagation(),E.shiftKey||E.ctrlKey||E.metaKey){A(a.index,E,f);return}Te=a.index,gt(e,"text",[a.index]),ye(!0),me(a.index,E,i)}),z){for(const P of Qe){const te=document.createElement("span");te.className="me-video-text-canvas-handle",te.dataset.handle=P.key,te.style.left=`${P.x*100}%`,te.style.top=`${P.y*100}%`,te.addEventListener("pointerdown",oe=>{oe.preventDefault(),oe.stopPropagation(),Te=a.index,gt(e,"text",[a.index]),ye(!0),ze(a.index,P,oe,i)}),v.appendChild(te)}const E=document.createElement("span");E.className="me-video-text-canvas-handle",E.dataset.handle=nt.key,E.style.left=`${nt.x*100}%`,E.style.top=`${nt.y*100}%`,E.addEventListener("pointerdown",P=>{P.preventDefault(),P.stopPropagation(),Te=a.index,gt(e,"text",[a.index]),ye(!0),be(a.index,P,i)}),v.appendChild(E)}je.appendChild(v)}}function Me(u,L,i){if(!Xe)return;const c=(t.getState().overlays??[])[u];if(!c||c.type!=="text")return;if(i.shiftKey||i.ctrlKey||i.metaKey){i.preventDefault(),i.stopPropagation();const P=Pt(e,"text",u,i,or(t.getState()).map(te=>te.index));Te=P.length?P[P.length-1]:null,Ge(),ye(!0);return}i.preventDefault(),i.stopPropagation(),Te=u,gt(e,"text",[u]),Ge(),ot||ye(!0);const f=Ht(),r=Math.max(Xe.clientWidth/f,.001),a=at(c),d=$t(c,a),v=Math.max(_e,d-a),M=ft(c),z=i.clientX,F=P=>{const te=(P.clientX-z)/r,oe=t.getState().overlays??[];if(L==="move"){const fe=Math.max(0,a+te),pe=fe+v,De=mt(Le,oe,u,fe,pe,P.clientY,M);wt(u,{startAt:fe,endAt:pe,timelineTrack:De},{transient:!0});return}if(L==="start"){const fe=re(a+te,0,d-_e),pe=mt(Le,oe,u,fe,d,P.clientY,M);wt(u,{startAt:fe,endAt:d,timelineTrack:pe},{transient:!0});return}const Be=Math.max(a+_e,d+te),ge=mt(Le,oe,u,a,Be,P.clientY,M);wt(u,{startAt:a,endAt:Be,timelineTrack:ge},{transient:!0})},E=P=>{window.removeEventListener("pointermove",F),window.removeEventListener("pointerup",E),window.removeEventListener("pointercancel",E);const te=(P.clientX-z)/r,oe=t.getState().overlays??[];if(L==="move"){const fe=Math.max(0,a+te),pe=fe+v,De=mt(Le,oe,u,fe,pe,P.clientY,M);wt(u,{startAt:fe,endAt:pe,timelineTrack:De});return}if(L==="start"){const fe=re(a+te,0,d-_e),pe=mt(Le,oe,u,fe,d,P.clientY,M);wt(u,{startAt:fe,endAt:d,timelineTrack:pe});return}const Be=Math.max(a+_e,d+te),ge=mt(Le,oe,u,a,Be,P.clientY,M);wt(u,{startAt:a,endAt:Be,timelineTrack:ge})};window.addEventListener("pointermove",F),window.addEventListener("pointerup",E),window.addEventListener("pointercancel",E),qe()}function Ie(u,L){if(we(),!Le||!Xe||(Le.replaceChildren(),Le.hidden=u.length===0,!u.length))return;const i=Ht(),c=Xe.clientWidth/i,f=Hn(t.getState()),r=new Map;for(const a of u){const d=ft(a.overlay),v=f.get(d)??d;let M=r.get(d);M||(M=document.createElement("div"),M.className="me-video-overlay-track-row",M.dataset.track=String(d),M.style.top=`${Sn(v)}px`,r.set(d,M),Le.appendChild(M));const z=document.createElement("div");z.className="me-video-text-track-clip",L.has(a.index)&&z.classList.add("is-active");const F=at(a.overlay),E=En(a.overlay);z.style.left=`${F*c}px`,z.style.width=`${Math.max(36,E*c)}px`;const P=document.createElement("span");P.className="me-video-text-track-icon",P.textContent="Aa";const te=document.createElement("span");te.className="me-video-text-track-label",te.textContent=qn(a.overlay.text,s.untitledText),te.title=te.textContent;const oe=document.createElement("span");oe.className="me-video-text-track-handle is-start";const Be=document.createElement("span");Be.className="me-video-text-track-handle is-end",z.append(P,te,oe,Be),z.addEventListener("pointerdown",ge=>Me(a.index,"move",ge)),oe.addEventListener("pointerdown",ge=>Me(a.index,"start",ge)),Be.addEventListener("pointerdown",ge=>Me(a.index,"end",ge)),z.addEventListener("click",ge=>{if(ge.preventDefault(),ge.stopPropagation(),ge.shiftKey||ge.ctrlKey||ge.metaKey){Ge(),qe();return}const fe=Pt(e,"text",a.index,ge,u.map(pe=>pe.index));Te=fe.length?fe[fe.length-1]:null,Ge(),ye(!0),qe()}),M.appendChild(z)}}function Je(u,L){Q.replaceChildren(),Q.hidden=u.length===0,k.hidden=u.length>0;for(const i of u){const c=document.createElement("button");c.type="button",c.className="me-video-text-chip",L.has(i.index)&&c.classList.add("is-active"),c.textContent=qn(i.overlay.text,s.untitledText),c.title=qn(i.overlay.text,s.untitledText),c.addEventListener("click",f=>{const r=Pt(e,"text",i.index,f,u.map(a=>a.index));Te=r.length?r[r.length-1]:null,qe()}),Q.appendChild(c)}}function Ae(u){$.disabled=u,V.setDisabled(u),Z.disabled=u,X.disabled=u,Y.forEach(({button:L})=>L.disabled=u),ve.disabled=u,Ee.disabled=u,He.disabled=u,ue.disabled=u,Fe.disabled=u,C.disabled=u,$e.disabled=u,Se.disabled=u,se.setDisabled(u),ee.setDisabled(u),We.setDisabled(u),R.setDisabled(u),I.disabled=u,B.disabled=u,w.disabled=u,D.disabled=u,W.disabled=u,J.disabled=u}function Ne(u){const L=String(re(Math.round(Number(u)||0),0,100));He.value=L,ue.value=L}function Ke(u){const L=Cr(u?.textDecoration);D.classList.toggle("is-active",!!u&&String(u.fontStyle??"normal")==="italic"),W.classList.toggle("is-active",!!u&&L.has("underline")),J.classList.toggle("is-active",!!u&&L.has("line-through"))}function lt(u="left"){Y.forEach(({value:L,button:i})=>{})}function pt(u){if(Ae(!!!u),!u){K.value="none",$.value="",V.setContextText(""),V.setValue("Arial",{silent:!0}),Z.value="700",X.value="72",se.setValue("#ffffff"),ee.setValue("transparent"),lt("center"),ve.value="none",Ee.value="none",We.setValue("#000000"),Fe.value="0",R.setValue("#000000"),C.value="0",$e.value="4",Se.value="18",Ne(100),Ke(null);return}const i=u.boxShadow??{};K.value=String(u.textPreset??"none"),$.value=String(u.text??""),V.setContextText(u.text??""),V.setValue(String(u.fontFamily??"Arial"),{silent:!0}),Z.value=String(u.fontWeight??"700"),X.value=String(Math.round(Number(u.fontSize)||72)),se.setValue(u.color??"#ffffff"),ee.setValue(u.backgroundColor??"transparent"),lt(u.textAlign==="right"||u.textAlign==="center"?u.textAlign:"left"),ve.value=u.textTransform?String(u.textTransform):"none",Ee.value=u.animation?String(u.animation):"none",We.setValue(u.borderColor??"#000000"),Fe.value=String(Math.round(Number(u.borderWidth)||0)),R.setValue(i.color??"#000000"),C.value=String(Math.round(Number(i.x)||0)),$e.value=String(Math.round(Number(i.y)||0)),Se.value=String(Math.round(Number(i.blur)||0)),Ne(Number.isFinite(u.opacity)?u.opacity:100),Ke(u)}function qe(){yt(()=>{const u=or(t.getState());Rt(u);const L=new Set(_t(e,"text"));Ie(u,L),Pe(u,L),Je(u,L),pt(dt()),Tt(),Lt(),it()}),Ft()}function Ve(){yt(()=>{const u=e.querySelector(".me-video-toolrail");u&&(le=u,Bi([...le.querySelectorAll("button")].filter(L=>L instanceof HTMLButtonElement&&L!==_&&!L.classList.contains("me-video-text-tool"))),(!_||!_.isConnected)&&(_=document.createElement("button"),_.type="button",_.className="me-video-text-tool",_.innerHTML=`<span class="me-video-text-tool-icon">T</span><span class="me-video-text-tool-label">${m.tool}</span>`,_.addEventListener("click",()=>{Wt("heading")})),_.isConnected||le.appendChild(_),it(),Lt())})}function xt(u){return!!u&&(u===h||h.contains(u)||u===_||u===Le||Le?.contains?.(u)||u===je||je?.contains?.(u))}function Ot(u){return u.some(L=>{if(!xt(L.target))return!0;for(const i of L.addedNodes)if(!xt(i))return!0;for(const i of L.removedNodes)if(!xt(i))return!0;return!1})}function Bt(u,L){u.swatch.addEventListener("input",()=>{u.transparentButton&&u.wrap.dataset.transparent==="true"&&u.setTransparent(!1),u.text.value=u.swatch.value,L(u.getValue())}),u.text.addEventListener("change",()=>{const i=String(u.text.value??"").trim();if(u.transparentButton&&i.toLowerCase()==="transparent"){u.setTransparent(!0),L("transparent");return}const c=hn(i,u.swatch.value||"#ffffff");u.swatch.value=c==="transparent"?u.swatch.value||"#ffffff":c,u.text.value=c,u.transparentButton&&u.setTransparent(!1),L(c)}),u.transparentButton?.addEventListener("click",()=>{const i=u.wrap.dataset.transparent!=="true";u.setTransparent(i),L(u.getValue())})}function Nt(u){const L=dt();if(!L)return;const i={color:"#000000",x:0,y:4,blur:18,...L.boxShadow??{}};ut({boxShadow:{...i,...u}})}function nn(u){const L=dt();if(!L)return;const i=Cr(L.textDecoration);i.has(u)?i.delete(u):i.add(u),ut({textDecoration:Qi(i)||void 0})}const on=new MutationObserver(u=>{ht||e.__meVideoEnhancerObserverLock||Ot(u)&&(Ve(),ie())}),Jt=u=>{u?.detail?.id!==Et&&ot&&(ot=!1,qe())},At=()=>{qe()};on.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",Jt),e.addEventListener(zt,At),window.addEventListener("resize",Lt);const rn=t.subscribe(()=>{qe()});return U.addEventListener("click",()=>Wt("heading")),w.addEventListener("click",()=>{Ge(),ye(!0)}),I.addEventListener("click",g),B.addEventListener("click",N),ne.addEventListener("click",()=>{ye(!1)}),$.addEventListener("input",()=>{V.setContextText($.value),ut({text:$.value})}),K.addEventListener("change",()=>{if(K.value==="none"){dt()&&ut({textPreset:"none"},{preservePreset:!0});return}j(K.value)}),V.wrap.addEventListener("fontchange",()=>ut({fontFamily:V.getValue()})),Z.addEventListener("change",()=>ut({fontWeight:Z.value})),X.addEventListener("change",()=>ut({fontSize:re(Number(X.value)||72,8,320)})),Bt(se,u=>ut({color:u})),Bt(ee,u=>ut({backgroundColor:u})),Y.forEach(({value:u,button:L})=>{L.addEventListener("click",()=>{lt(u),ut({textAlign:u})})}),ve.addEventListener("change",()=>ut({textTransform:ve.value==="none"?void 0:ve.value})),Ee.addEventListener("change",()=>ut({animation:Ee.value==="none"?void 0:Ee.value})),Fe.addEventListener("change",()=>ut({borderWidth:re(Number(Fe.value)||0,0,32)})),Bt(We,u=>ut({borderColor:u})),Bt(R,u=>Nt({color:u})),C.addEventListener("change",()=>Nt({x:re(Number(C.value)||0,-80,80)})),$e.addEventListener("change",()=>Nt({y:re(Number($e.value)||0,-80,80)})),Se.addEventListener("change",()=>Nt({blur:re(Number(Se.value)||0,0,80)})),He.addEventListener("input",()=>{const u=re(Number(He.value)||0,0,100);Ne(u),ut({opacity:u})}),ue.addEventListener("input",()=>{const u=re(Number(ue.value)||0,0,100);Ne(u),ut({opacity:u})}),D.addEventListener("click",()=>{const u=dt();u&&ut({fontStyle:String(u.fontStyle??"normal")==="italic"?"normal":"italic"})}),W.addEventListener("click",()=>nn("underline")),J.addEventListener("click",()=>nn("line-through")),Ve(),qe(),{destroy(){on.disconnect(),Ce&&Ze&&Ce.unobserve(Ze),ke&&ct&&ke.unobserve(ct),rn(),e.removeEventListener("me-video-inspector-open",Jt),e.removeEventListener(zt,At),window.removeEventListener("resize",Lt),V.destroy(),_?.remove(),Le?.remove(),je?.remove(),h.remove(),It(e)}}}function ta(e,t,n){sn(),wn();const o=Li(n()),l=Ti(o),s=document.createElement("div");s.className="me-video-text-panel me-video-sticker-panel",s.hidden=!0,e.appendChild(s);const m=document.createElement("div");m.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=o.title,m.append(x);const h=qt(o.uploadTitle),y=document.createElement("label");y.className="me-video-sticker-upload-zone";const S=document.createElement("span");S.className="me-video-sticker-upload-icon",S.textContent="\u{1F5BC}";const U=document.createElement("span");U.className="me-video-sticker-upload-text",U.textContent=o.uploadHint;const w=document.createElement("span");w.className="me-video-sticker-upload-subtext",w.textContent=o.uploadFormats;const I=document.createElement("input");I.type="file",I.accept="image/png,image/jpeg,image/webp,image/svg+xml",y.append(S,U,w,I),h.body.appendChild(y);const B=qt(o.libraryTitle),ne=document.createElement("div");ne.className="me-video-sticker-library",B.body.appendChild(ne),s.append(m,h.section,B.section);let Q=null,k=null,$=null,K=null,V=null,Z=null,X=null,se=null,ee=null,q=!1,Y=null,T=!1,D=!1;const W="sticker",J=typeof requestAnimationFrame=="function"?requestAnimationFrame:g=>setTimeout(g,16),ve=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>Fe()),he=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>Fe()),He=[{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}],ue={key:"rotate",x:.5,y:0};function Ee(){Promise.resolve().then(()=>{D=!1;const g=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,g-1)})}function We(g){D=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return g()}finally{Ee()}}function Fe(){T||(T=!0,J(()=>{T=!1,dt()}))}function R(g){const N=!!g;if(N===q){dt();return}q=N,q&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:W}})),dt()}function C(g=k){return g?[...g.children].filter(N=>N instanceof HTMLButtonElement&&!N.classList.contains("me-video-text-tool")):[]}function $e(g){return[g?.textContent,g?.getAttribute?.("title"),g?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function Se(g){const N=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(g.find(j=>{const we=$e(j);return N.some(Oe=>we.includes(Oe))})??g[0]??null)}function ce(g){const N=[o.tool,o.title,"sticker","stickers","\u8D34\u7EB8","\u8CBC\u7D19"].map(j=>String(j??"").trim().toLowerCase()).filter(Boolean);return g.find(j=>{const we=$e(j);return N.some(Oe=>we.includes(Oe))})??g[Math.min(5,Math.max(0,g.length-1))]??null}function Re(){if(Q?.classList.toggle("is-active",q),!!$&&q){$.classList.remove("is-active");return}}function O(){$&&($.classList.contains("is-active")||$.click())}function G(){tn(e,s),It(e)}function H(){s.hidden=!q,Re(),G()}function _(g){if(!g.length){Y=null;return}const N=lr(e,t.getState());Y=N.length?N[N.length-1]:null}function le(){return Ln(t)}function Xe(){return gn(e)}function Le(){if(!t.history?.present)return;const g=Xe(),N=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(N)?N:-1)-g)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:g}},typeof t.emit=="function"&&t.emit())}function Ze(g){return g?.emoji?`${o.defaultLabel} ${g.emoji}`:g?.src?o.uploadedLabel:o.defaultLabel}function Ue(g){const N=Ut(g);if(!N)return null;if(!g?.emoji)return N;const j=.84,we=N.w*(1-j)/2,Oe=N.h*(1-j)/2;return{x:N.x+we,y:N.y+Oe,w:N.w*j,h:N.h*j}}function je(g,N){if(!g?.emoji)return N;const we=1/.84,Oe=(we-1)/2;return{x:N.x-N.w*Oe,y:N.y-N.h*Oe,w:N.w*we,h:N.h*we}}function ct(g,N){const j=Math.max(1,Number(N?.w)||1080),we=Math.max(1,Number(N?.h)||1920),Oe=re(Number.isFinite(g?.w)?g.w:8,8,Math.max(8,j)),p=re(Number.isFinite(g?.h)?g.h:8,8,Math.max(8,we));return{x:re(Number.isFinite(g?.x)?g.x:0,0,Math.max(0,j-Oe)),y:re(Number.isFinite(g?.y)?g.y:0,0,Math.max(0,we-p)),w:Oe,h:p}}function ot(g){return g?.emoji||"\u2726"}function Te(g,N,j={}){const Oe=(t.getState().overlays??[])[g];!Oe||Oe.type!=="sticker"||t.updateOverlay(g,Zt(Oe,le(),N),j)}function rt(g){if(typeof t.applyMut=="function"){t.applyMut(j=>({...j,overlays:[...en(j.overlays),{...g,timelineTrack:0}]}));return}const N=en(t.getState().overlays);t.commit?.({overlays:[...N,{...g,timelineTrack:0}]})}function ht(g){return new Promise(N=>{const j=new Image;j.onload=()=>N({w:j.naturalWidth||256,h:j.naturalHeight||256}),j.onerror=()=>N({w:256,h:256}),j.src=g})}async function Et(g){const N=le();let j=re(Xe(),0,Math.max(0,N-_e)),we=Math.min(N,j+Vt);we-j<_e&&(j=re(N-Vt,0,Math.max(0,N-_e)),we=Math.max(j+_e,N));const Oe=t.getState().canvas??{w:1080,h:1920},p=g.emoji?{w:256,h:256}:await ht(g.src),b=Math.max(96,Math.round(Math.min(Oe.w,Oe.h)*.24)),A=Dr(p.w,p.h,b),ae={type:"sticker",x:Math.round((Oe.w-A.w)/2),y:Math.round((Oe.h-A.h)/2),w:A.w,h:A.h,rotation:0,...g.emoji?{emoji:g.emoji}:{src:g.src},...Zt(null,N,{startAt:j,endAt:we,timelineTrack:0})};rt(ae);const de=t.getState().overlays??[];Y=de.length?de.length-1:null,Y!=null&&gt(e,"text",[Y]),O(),R(!0)}async function xe(g){const N=g?.[0];if(!N||!String(N.type||"").startsWith("image/")&&!/\.(png|jpe?g|webp|svg)$/i.test(N.name||""))return;const j=await new Promise((we,Oe)=>{const p=new FileReader;p.onload=()=>we(String(p.result||"")),p.onerror=()=>Oe(p.error||new Error("Failed to read sticker file")),p.readAsDataURL(N)}).catch(()=>"");j&&(I.value="",await Et({src:j}))}function Ce(){ne.replaceChildren();for(const g of l){const N=document.createElement("div");N.className="me-video-sticker-library-group";const j=document.createElement("div");j.className="me-video-sticker-library-title",j.textContent=g.title;const we=document.createElement("div");we.className="me-video-sticker-grid";for(const Oe of g.items){const p=document.createElement("button");if(p.type="button",p.className="me-video-sticker-card",p.title=Oe.label,p.setAttribute("aria-label",Oe.label),Oe.emoji){const b=document.createElement("span");b.className="me-video-sticker-card-emoji",b.textContent=Oe.emoji,p.appendChild(b)}else if(Oe.src){const b=document.createElement("img");b.src=Oe.src,b.alt=Oe.label,p.appendChild(b)}p.addEventListener("click",()=>{Et(Oe)}),we.appendChild(p)}N.append(j,we),ne.appendChild(N)}}function ke(){We(()=>{const g=e.querySelector(".me-video-toolrail");g&&(k=g,(!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 N=!q;N&&O(),R(N)})),Q.isConnected||k.appendChild(Q),G())})}function Qe(){const{timelineInner:g,timelineHost:N}=Rn(e,t.getState());if(!g||!N){V?.remove(),V=null,ve&&Z&&(ve.unobserve(Z),Z=null),K=null;return}K=g,(!V||!V.isConnected||V.parentElement!==N)&&(V?.remove(),V=document.createElement("div"),V.className="me-video-text-timeline me-video-sticker-timeline me-video-overlay-timeline me-video-sticker-overlay-layer");for(const j of[...N.children])j!==V&&j instanceof HTMLElement&&j.classList.contains("me-video-sticker-overlay-layer")&&j.remove();(V.parentElement!==N||N.lastElementChild!==V)&&N.appendChild(V),ve&&Z!==K&&(Z&&ve.unobserve(Z),Z=K,ve.observe(K))}function nt(){const g=e.querySelector(".me-video-canvas-stage");if(!g){se?.remove(),se=null,he&&ee&&(he.unobserve(ee),ee=null),X=null;return}X=g,X.style.position="relative",!se||!se.isConnected||se.parentElement!==X?(se?.remove(),se=document.createElement("div"),se.className="me-video-text-canvas-layer me-video-sticker-canvas-layer",se.addEventListener("pointerdown",N=>{N.target===se&&(N.preventDefault(),N.stopPropagation())}),se.addEventListener("click",N=>{N.target===se&&(N.preventDefault(),N.stopPropagation(),Y=null,wo(e),q?R(!1):dt())}),X.appendChild(se)):X.lastElementChild!==se&&X.appendChild(se),he&&ee!==X&&(ee&&he.unobserve(ee),ee=X,he.observe(X))}function vt(){if(!X)return null;const N=t.getState().canvas??{},j=Math.max(1,Number(N.w)||0),we=Math.max(1,Number(N.h)||0);if(!j||!we)return null;const Oe=X.getBoundingClientRect(),p=X.querySelector("canvas, video, img")||[...X.children].find(me=>me!==se)||null;let b=0,A=0,ae=X.clientWidth||j,de=X.clientHeight||we;if(p instanceof HTMLElement){const me=p.getBoundingClientRect();me.width>0&&me.height>0&&(b=me.left-Oe.left,A=me.top-Oe.top,ae=me.width,de=me.height)}if(!(ae>0&&de>0)){const me=X.clientWidth||j,ze=X.clientHeight||we,be=Math.min(me/j,ze/we)||1;ae=j*be,de=we*be,b=Math.max(0,(me-ae)/2),A=Math.max(0,(ze-de)/2)}return{stageLeft:Oe.left,stageTop:Oe.top,left:b,top:A,scaleX:ae/j,scaleY:de/we}}function yt(g,N){const j=at(g),we=$t(g,j);return N>=j-.001&&N<=we+.001}function ie(g,N,j){const we=Pt(e,"text",g,N,j);Y=we.length?we[we.length-1]:null,R(!0),dt()}function ye(g,N,j){return{x:(g-j.stageLeft-j.left)/j.scaleX,y:(N-j.stageTop-j.top)/j.scaleY}}function Ye(g,N,j){const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;const Oe=t.getState().canvas??{w:1080,h:1920},p=Ut(we);if(!p)return;const b=N.clientX,A=N.clientY,ae=Math.max(0,(Number(Oe.w)||0)-p.w),de=Math.max(0,(Number(Oe.h)||0)-p.h),me=(Pe,Me,Ie)=>{const Je=(Pe-b)/j.scaleX,Ae=(Me-A)/j.scaleY,Ne=re(p.x+Je,0,ae),Ke=re(p.y+Ae,0,de);t.updateOverlay(g,{x:Ne,y:Ke},Ie?{transient:!0}:void 0)},ze=Pe=>{Pe.preventDefault(),me(Pe.clientX,Pe.clientY,!0)},be=Pe=>{window.removeEventListener("pointermove",ze),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be),me(Pe.clientX,Pe.clientY,!1)};window.addEventListener("pointermove",ze),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be)}function Ge(g,N,j,we){const Oe=(t.getState().overlays??[])[g];if(!Oe||Oe.type!=="sticker")return;const p=Ue(Oe);if(!p)return;const b=t.getState().canvas??{w:1080,h:1920},A=N.x===.5?.5:1-N.x,ae=N.y===.5?.5:1-N.y,de=p.x+p.w*A,me=p.y+p.h*ae,ze=Math.max(.1,24/Math.max(24,p.w),24/Math.max(24,p.h)),be=N.x===.5?1/0:Math.max(.1,(A===0?(Number(b.w)||0)-de:de)/Math.max(1,p.w)),Pe=N.y===.5?1/0:Math.max(.1,(ae===0?(Number(b.h)||0)-me:me)/Math.max(1,p.h)),Me=Math.max(ze,Math.min(be,Pe,8)),Ie=(Ne,Ke,lt)=>{const pt=ye(Ne,Ke,we),qe=[];N.x!==.5&&qe.push(Math.abs(pt.x-de)/Math.max(1,p.w)),N.y!==.5&&qe.push(Math.abs(pt.y-me)/Math.max(1,p.h));const Ve=qe.filter(Number.isFinite),xt=Ve.length?Math.max(...Ve):1,Ot=re(xt,ze,Me),Bt={x:de-p.w*Ot*A,y:me-p.h*Ot*ae,w:Math.max(8,p.w*Ot),h:Math.max(8,p.h*Ot)},Nt=ct(je(Oe,Bt),b);t.updateOverlay(g,{x:Nt.x,y:Nt.y,w:Nt.w,h:Nt.h},lt?{transient:!0}:void 0)},Je=Ne=>{Ne.preventDefault(),Ie(Ne.clientX,Ne.clientY,!0)},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae),Ie(Ne.clientX,Ne.clientY,!1)};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae)}function it(g,N,j){const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;const Oe=Ue(we);if(!Oe)return;const p=j.stageLeft+j.left+(Oe.x+Oe.w/2)*j.scaleX,b=j.stageTop+j.top+(Oe.y+Oe.h/2)*j.scaleY,A=Math.atan2(N.clientY-b,N.clientX-p),ae=mn(we),de=(be,Pe,Me,Ie)=>{const Je=Math.atan2(Pe-b,be-p);let Ae=In(ae+(Je-A)*180/Math.PI);Ie&&(Ae=Math.round(Ae/15)*15),t.updateOverlay(g,{rotation:Ae},Me?{transient:!0}:void 0)},me=be=>{be.preventDefault(),de(be.clientX,be.clientY,!0,be.shiftKey)},ze=be=>{window.removeEventListener("pointermove",me),window.removeEventListener("pointerup",ze),window.removeEventListener("pointercancel",ze),de(be.clientX,be.clientY,!1,be.shiftKey)};window.addEventListener("pointermove",me),window.addEventListener("pointerup",ze),window.addEventListener("pointercancel",ze)}function Lt(g,N){if(nt(),!se)return;se.replaceChildren();const j=vt();if(!j){se.hidden=!0;return}se.hidden=!1;const we=Xe(),Oe=g.map(b=>b.index),p=g.filter(b=>yt(b.overlay,we));for(const b of p){const A=Ue(b.overlay);if(!A)continue;const ae=document.createElement("button");ae.type="button",ae.className="me-video-text-canvas-hit me-video-sticker-canvas-hit";const de=N.has(b.index),me=de&&Y===b.index;de&&ae.classList.add("is-active"),ae.title=Ze(b.overlay),ae.style.left=`${j.left+A.x*j.scaleX}px`,ae.style.top=`${j.top+A.y*j.scaleY}px`,ae.style.width=`${Math.max(18,A.w*j.scaleX)}px`,ae.style.height=`${Math.max(18,A.h*j.scaleY)}px`;const ze=mn(b.overlay);if(ze&&(ae.style.transform=`rotate(${ze}deg)`,ae.style.transformOrigin="center center"),ae.addEventListener("pointerdown",be=>{if(be.preventDefault(),be.stopPropagation(),be.shiftKey||be.ctrlKey||be.metaKey){ie(b.index,be,Oe);return}Y=b.index,gt(e,"text",[b.index]),R(!0),Ye(b.index,be,j)}),me){for(const Pe of He){const Me=document.createElement("span");Me.className="me-video-text-canvas-handle",Me.dataset.handle=Pe.key,Me.style.left=`${Pe.x*100}%`,Me.style.top=`${Pe.y*100}%`,Me.addEventListener("pointerdown",Ie=>{Ie.preventDefault(),Ie.stopPropagation(),Y=b.index,gt(e,"text",[b.index]),R(!0),Ge(b.index,Pe,Ie,j)}),ae.appendChild(Me)}const be=document.createElement("span");be.className="me-video-text-canvas-handle",be.dataset.handle=ue.key,be.style.left=`${ue.x*100}%`,be.style.top=`${ue.y*100}%`,be.addEventListener("pointerdown",Pe=>{Pe.preventDefault(),Pe.stopPropagation(),Y=b.index,gt(e,"text",[b.index]),R(!0),it(b.index,Pe,j)}),ae.appendChild(be)}se.appendChild(ae)}}function Tt(g,N,j){if(!K)return;const we=(t.getState().overlays??[])[g];if(!we||we.type!=="sticker")return;if(j.shiftKey||j.ctrlKey||j.metaKey){j.preventDefault(),j.stopPropagation();const Pe=Pt(e,"text",g,j,rr(t.getState()).map(Me=>Me.index));Y=Pe.length?Pe[Pe.length-1]:null,O(),R(!0);return}j.preventDefault(),j.stopPropagation(),Y=g,gt(e,"text",[g]),O(),q||R(!0);const Oe=le(),p=Math.max(K.clientWidth/Oe,.001),b=at(we),A=$t(we,b),ae=Math.max(_e,A-b),de=ft(we),me=j.clientX,ze=Pe=>{const Me=(Pe.clientX-me)/p,Ie=t.getState().overlays??[];if(N==="move"){const Ne=Math.max(0,b+Me),Ke=Ne+ae,lt=mt(V,Ie,g,Ne,Ke,Pe.clientY,de);Te(g,{startAt:Ne,endAt:Ke,timelineTrack:lt},{transient:!0});return}if(N==="start"){const Ne=re(b+Me,0,A-_e),Ke=mt(V,Ie,g,Ne,A,Pe.clientY,de);Te(g,{startAt:Ne,endAt:A,timelineTrack:Ke},{transient:!0});return}const Je=Math.max(b+_e,A+Me),Ae=mt(V,Ie,g,b,Je,Pe.clientY,de);Te(g,{startAt:b,endAt:Je,timelineTrack:Ae},{transient:!0})},be=Pe=>{window.removeEventListener("pointermove",ze),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be);const Me=(Pe.clientX-me)/p,Ie=t.getState().overlays??[];if(N==="move"){const Ne=Math.max(0,b+Me),Ke=Ne+ae,lt=mt(V,Ie,g,Ne,Ke,Pe.clientY,de);Te(g,{startAt:Ne,endAt:Ke,timelineTrack:lt});return}if(N==="start"){const Ne=re(b+Me,0,A-_e),Ke=mt(V,Ie,g,Ne,A,Pe.clientY,de);Te(g,{startAt:Ne,endAt:A,timelineTrack:Ke});return}const Je=Math.max(b+_e,A+Me),Ae=mt(V,Ie,g,b,Je,Pe.clientY,de);Te(g,{startAt:b,endAt:Je,timelineTrack:Ae})};window.addEventListener("pointermove",ze),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be),dt()}function Rt(g,N){if(Qe(),!V||!K||(V.replaceChildren(),V.hidden=g.length===0,!g.length))return;const j=le(),we=K.clientWidth/j,Oe=Hn(t.getState()),p=new Map;for(const b of g){const A=ft(b.overlay),ae=Oe.get(A)??A;let de=p.get(A);de||(de=document.createElement("div"),de.className="me-video-overlay-track-row",de.dataset.track=String(A),de.style.top=`${Sn(ae)}px`,p.set(A,de),V.appendChild(de));const me=document.createElement("div");me.className="me-video-text-track-clip me-video-sticker-track-clip",N.has(b.index)&&me.classList.add("is-active");const ze=at(b.overlay),be=En(b.overlay);me.style.left=`${ze*we}px`,me.style.width=`${Math.max(36,be*we)}px`;const Pe=document.createElement("span");Pe.className="me-video-text-track-icon",Pe.textContent=ot(b.overlay);const Me=document.createElement("span");Me.className="me-video-text-track-label",Me.textContent=Ze(b.overlay),Me.title=Me.textContent;const Ie=document.createElement("span");Ie.className="me-video-text-track-handle is-start";const Je=document.createElement("span");Je.className="me-video-text-track-handle is-end",me.append(Pe,Me,Ie,Je),me.addEventListener("pointerdown",Ae=>Tt(b.index,"move",Ae)),Ie.addEventListener("pointerdown",Ae=>Tt(b.index,"start",Ae)),Je.addEventListener("pointerdown",Ae=>Tt(b.index,"end",Ae)),me.addEventListener("click",Ae=>{if(Ae.preventDefault(),Ae.stopPropagation(),Ae.shiftKey||Ae.ctrlKey||Ae.metaKey){O(),dt();return}const Ne=Pt(e,"text",b.index,Ae,g.map(Ke=>Ke.index));Y=Ne.length?Ne[Ne.length-1]:null,O(),R(!0),dt()}),de.appendChild(me)}}function dt(){We(()=>{ke();const g=C().find(we=>we.classList.contains("is-active"))??null;q&&g&&g!==$&&g!==Q&&(O(),Fe());const N=rr(t.getState());_(N);const j=new Set(lr(e,t.getState()));Rt(N,j),Lt(N,j),H(),G()}),Le()}function Ht(g){return!!g&&(g===s||s.contains(g)||g===Q||Q?.contains?.(g)||g===V||V?.contains?.(g)||g===se||se?.contains?.(g))}function bt(g){return g.some(N=>{if(!Ht(N.target))return!0;for(const j of N.addedNodes)if(!Ht(j))return!0;for(const j of N.removedNodes)if(!Ht(j))return!0;return!1})}const Ft=new MutationObserver(g=>{D||e.__meVideoEnhancerObserverLock||bt(g)&&(ke(),Fe())}),wt=g=>{g?.detail?.id!==W&&q&&(q=!1,dt())},Mt=()=>{dt()},ut=g=>{const N=g.target;if(!(N instanceof Node)||!Q||!Q.contains(N))return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation?.();const j=!q;j&&(O(),Fe()),R(j)};Ft.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener("me-video-inspector-open",wt),e.addEventListener(zt,Mt),e.addEventListener("click",ut,!0),window.addEventListener("resize",G);const Wt=t.subscribe(()=>{dt()});return I.addEventListener("change",()=>{xe(I.files)}),y.addEventListener("dragenter",g=>{g.preventDefault(),y.classList.add("is-dragover")}),y.addEventListener("dragover",g=>{g.preventDefault(),y.classList.add("is-dragover")}),y.addEventListener("dragleave",g=>{g.target===y&&y.classList.remove("is-dragover")}),y.addEventListener("drop",g=>{g.preventDefault(),y.classList.remove("is-dragover"),xe(g.dataTransfer?.files)}),Ce(),ke=function(){We(()=>{const g=e.querySelector(".me-video-toolrail");if(!g)return;k=g;const N=C(k);$=Se(N),Q=ce(N),Re(),G()})},ke(),dt(),{destroy(){Ft.disconnect(),ve&&Z&&ve.unobserve(Z),he&&ee&&he.unobserve(ee),Wt(),e.removeEventListener("me-video-inspector-open",wt),e.removeEventListener(zt,Mt),e.removeEventListener("click",ut,!0),window.removeEventListener("resize",G),q=!1,Re(),V?.remove(),se?.remove(),s.remove(),It(e)}}}function na(e,t,n){sn(),wn();const o=Mo(n()),l=Fi(o),s=new Map(l.map(p=>[String(p.id??""),p])),m=l.find(p=>p.id)?.id??"",x=document.createElement("div");x.className="me-video-text-panel me-video-color-panel me-video-filter-panel",x.hidden=!0,e.appendChild(x);const h=document.createElement("div");h.className="me-video-text-toolbar";const y=document.createElement("strong");y.textContent=o.filterTitle;const S=jt(o.reset);h.append(y,S);const U=qt(o.presets),w=document.createElement("div");w.className="me-video-color-grid",U.body.appendChild(w);const I=l.map(p=>{const b=document.createElement("button");b.type="button",b.className="me-video-color-card",b.dataset.presetId=p.id??"";const A=document.createElement("div");A.className="me-video-color-preview",A.style.filter=p.css||"none";const ae=document.createElement("img");ae.alt="",ae.draggable=!1,ae.hidden=!0,A.appendChild(ae);const de=document.createElement("div");return de.className="me-video-color-card-title",de.textContent=p.label,b.append(A,de),w.appendChild(b),{entry:p,buttonEl:b,previewImage:ae}});x.append(h,U.section);let B=null,ne=null,Q=null,k=null,$=null,K=null,V=null,Z=null,X=null,se=null,ee=null,q=null,Y=!1,T=null,D=!1,W=!1,J="";const ve="filter",he=typeof requestAnimationFrame=="function"?requestAnimationFrame:p=>setTimeout(p,16),He=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>C()),ue=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>C()),Ee=[{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}],We={key:"rotate",x:.5,y:0};function Fe(){Promise.resolve().then(()=>{W=!1;const p=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,p-1)})}function R(p){W=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return p()}finally{Fe()}}function C(){D||(D=!0,he(()=>{D=!1,Mt()}))}function $e(p=ne){return p?[...p.children].filter(b=>b instanceof HTMLButtonElement&&b!==k&&!b.classList.contains("me-video-text-tool")):[]}function Se(p){const b=[o.filterTool,o.filterTitle,"filter","filters","\u6EE4\u955C","\u6FFE\u93E1"].map(A=>String(A??"").trim().toLowerCase()).filter(Boolean);return p.find(A=>{const ae=Po(A);return b.some(de=>ae.includes(de))})??p[3]??null}function ce(){Q&&(Q.classList.contains("is-active")||Q.click())}function Re(){tn(e,x),It(e)}function O(p){const b=!!p;if(b===Y){Mt();return}Y=b,Y&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:ve}})),Mt()}function G(){if(B?.classList.toggle("is-active",Y),!!Q&&Y){Q.classList.remove("is-active");return}}function H(){x.hidden=!Y,G(),Re()}function _(){const p=t.getState().overlays??[];if(T==null)return null;const b=p[T];return b?.type==="filter"?b:null}function le(){return Ln(t)}function Xe(){return gn(e)}function Le(){if(!t.history?.present)return;const p=Xe(),b=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(b)?b:-1)-p)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:p}},typeof t.emit=="function"&&t.emit())}function Ze(p){if(!p.length){T=null;return}const b=cr(e,t.getState());T=b.length?b[b.length-1]:null}function Ue(p){return String(p?.filterPreset??"").trim()}function je(p){return s.get(Ue(p))??null}function ct(p){return je(p)?.css||"none"}function ot(p){return je(p)?.label||o.filterTitle}function Te(p){const b=Number(p?.w),A=Number(p?.h);return!(b>0)||!(A>0)?null:{x:Number(p?.x)||0,y:Number(p?.y)||0,w:Math.max(48,b),h:Math.max(48,A)}}function rt(p,b){const A=Te(p);if(!A)return p;const ae=Math.max(.1,Number(b)||1);return{...p,w:Math.max(48,A.w*ae),h:Math.max(48,A.h*ae)}}function ht(p,b,A={}){const de=(t.getState().overlays??[])[p];!de||de.type!=="filter"||t.updateOverlay(p,Zt(de,le(),b),A)}function Et(p,b){T!=null&&t.updateOverlay(T,p,b)}function xe(p){if(typeof t.applyMut=="function"){t.applyMut(A=>({...A,overlays:[...en(A.overlays),{...p,timelineTrack:0}]}));return}const b=en(t.getState().overlays);t.commit?.({overlays:[...b,{...p,timelineTrack:0}]})}function Ce(p=m){const b=t.getState().canvas??{w:1080,h:1920},A=re(Math.round((Number(b.w)||1080)*.68),180,Math.max(180,(Number(b.w)||1080)-48)),ae=re(Math.round((Number(b.h)||1920)*.3),120,Math.max(120,(Number(b.h)||1920)-48));return{type:"filter",x:Math.round(((Number(b.w)||1080)-A)/2),y:Math.round(((Number(b.h)||1920)-ae)/2),w:A,h:ae,rotation:0,filterPreset:p||void 0}}function ke(p=m){const b=le();let A=re(Xe(),0,Math.max(0,b-_e)),ae=Math.min(b,A+Vt);ae-A<_e&&(A=re(b-Vt,0,Math.max(0,b-_e)),ae=Math.max(A+_e,b));const de={...Ce(p),...Zt(null,b,{startAt:A,endAt:ae,timelineTrack:0})};xe(de);const me=t.getState().overlays??[];T=me.length?me.length-1:null,T!=null&&gt(e,"text",[T]),vt(!0),ce(),O(!0)}function Qe(p){if(!_()){ke(p);return}Et({filterPreset:p||void 0}),O(!0)}function nt(p){if(p){if(!J){p.hidden=!0,p.removeAttribute("src");return}p.src!==J&&(p.src=J),p.hidden=!1}}function vt(p=!1){if(J&&!p)return;const b=Di(e);b&&(b===J&&!p||(J=b,I.forEach(({previewImage:A})=>nt(A))))}function yt(){_()&&Et({filterPreset:void 0})}function ie(){R(()=>{const p=e.querySelector(".me-video-toolrail");if(!p)return;ne=p;const b=$e(ne);Q=to(b),$=Se(b),$?(k?.remove(),B=$):((!k||!k.isConnected)&&(k=document.createElement("button"),k.type="button",k.className="me-video-text-tool me-video-filter-tool",k.innerHTML=`<span class="me-video-text-tool-icon">\u25A3</span><span class="me-video-text-tool-label">${o.filterTool}</span>`),k.title=o.filterTool,k.setAttribute("aria-label",o.filterTool),k.isConnected?$?.parentElement===ne&&k.nextSibling!==$&&ne.insertBefore(k,$):$?.parentElement===ne?ne.insertBefore(k,$):ne.appendChild(k),B=k),B?.setAttribute?.("title",o.filterTool),B?.setAttribute?.("aria-label",o.filterTool),G(),Re()})}function ye(){const{timelineInner:p,timelineHost:b}=Rn(e,t.getState());if(!p||!b){V?.remove(),V=null,He&&Z&&(He.unobserve(Z),Z=null),K=null;return}K=p,(!V||!V.isConnected||V.parentElement!==b)&&(V?.remove(),V=document.createElement("div"),V.className="me-video-text-timeline me-video-overlay-timeline me-video-filter-overlay-layer");for(const A of[...b.children])A!==V&&A instanceof HTMLElement&&A.classList.contains("me-video-filter-overlay-layer")&&A.remove();(V.parentElement!==b||b.lastElementChild!==V)&&b.appendChild(V),He&&Z!==K&&(Z&&He.unobserve(Z),Z=K,He.observe(K))}function Ye(){const p=e.querySelector(".me-video-canvas-stage");if(!p){se?.remove(),se=null,ee?.remove(),ee=null,ue&&q&&(ue.unobserve(q),q=null),X=null;return}X=p,X.style.position="relative",(!se||!se.isConnected||se.parentElement!==X)&&(se?.remove(),se=document.createElement("div"),se.className="me-video-filter-effect-layer",X.appendChild(se)),(!ee||!ee.isConnected||ee.parentElement!==X)&&(ee?.remove(),ee=document.createElement("div"),ee.className="me-video-filter-control-layer",X.appendChild(ee)),X.lastElementChild!==ee&&X.appendChild(ee),ue&&q!==X&&(q&&ue.unobserve(q),q=X,ue.observe(X))}function Ge(){if(!X)return null;const b=t.getState().canvas??{},A=Math.max(1,Number(b.w)||0),ae=Math.max(1,Number(b.h)||0);if(!A||!ae)return null;const de=X.getBoundingClientRect(),me=X.querySelector("canvas, video, img")||[...X.children].find(Ie=>Ie!==se&&Ie!==ee)||null;let ze=0,be=0,Pe=X.clientWidth||A,Me=X.clientHeight||ae;if(me instanceof HTMLElement){const Ie=me.getBoundingClientRect();Ie.width>0&&Ie.height>0&&(ze=Ie.left-de.left,be=Ie.top-de.top,Pe=Ie.width,Me=Ie.height)}if(!(Pe>0&&Me>0)){const Ie=X.clientWidth||A,Je=X.clientHeight||ae,Ae=Math.min(Ie/A,Je/ae)||1;Pe=A*Ae,Me=ae*Ae,ze=Math.max(0,(Ie-Pe)/2),be=Math.max(0,(Je-Me)/2)}return{stageLeft:de.left,stageTop:de.top,left:ze,top:be,scaleX:Pe/A,scaleY:Me/ae}}function it(p,b){const A=at(p),ae=$t(p,A);return b>=A-.001&&b<=ae+.001}function Lt(p,b,A){const ae=Pt(e,"text",p,b,A);T=ae.length?ae[ae.length-1]:null,O(!0),Mt()}function Tt(p,b,A){return{x:(p-A.stageLeft-A.left)/A.scaleX,y:(b-A.stageTop-A.top)/A.scaleY}}function Rt(p,b,A){const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;const de=t.getState().canvas??{w:1080,h:1920},me=Te(ae);if(!me)return;const ze=b.clientX,be=b.clientY,Pe=Math.max(0,(Number(de.w)||0)-me.w),Me=Math.max(0,(Number(de.h)||0)-me.h),Ie=(Ne,Ke,lt)=>{const pt=(Ne-ze)/A.scaleX,qe=(Ke-be)/A.scaleY,Ve=re(me.x+pt,0,Pe),xt=re(me.y+qe,0,Me);t.updateOverlay(p,{x:Ve,y:xt},lt?{transient:!0}:void 0)},Je=Ne=>{Ne.preventDefault(),Ie(Ne.clientX,Ne.clientY,!0)},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae),Ie(Ne.clientX,Ne.clientY,!1)};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae)}function dt(p,b,A,ae){const de=(t.getState().overlays??[])[p];if(!de||de.type!=="filter")return;const me=Te(de);if(!me)return;const ze=t.getState().canvas??{w:1080,h:1920},be=b.x===.5?.5:1-b.x,Pe=b.y===.5?.5:1-b.y,Me=me.x+me.w*be,Ie=me.y+me.h*Pe,Je=Math.max(.1,48/Math.max(48,me.w),48/Math.max(48,me.h)),Ae=b.x===.5?1/0:Math.max(.1,(be===0?(Number(ze.w)||0)-Me:Me)/Math.max(1,me.w)),Ne=b.y===.5?1/0:Math.max(.1,(Pe===0?(Number(ze.h)||0)-Ie:Ie)/Math.max(1,me.h)),Ke=Math.max(Je,Math.min(Ae,Ne,8)),lt=(Ve,xt,Ot)=>{const Bt=Tt(Ve,xt,ae),Nt=[];b.x!==.5&&Nt.push(Math.abs(Bt.x-Me)/Math.max(1,me.w)),b.y!==.5&&Nt.push(Math.abs(Bt.y-Ie)/Math.max(1,me.h));const nn=Nt.length?Math.max(...Nt):1,on=re(nn,Je,Ke),Jt=rt(de,on),At=Te(Jt);if(!At)return;const rn=Me-At.w*be,u=Ie-At.h*Pe;t.updateOverlay(p,{x:rn,y:u,w:At.w,h:At.h},Ot?{transient:!0}:void 0)},pt=Ve=>{Ve.preventDefault(),lt(Ve.clientX,Ve.clientY,!0)},qe=Ve=>{window.removeEventListener("pointermove",pt),window.removeEventListener("pointerup",qe),window.removeEventListener("pointercancel",qe),lt(Ve.clientX,Ve.clientY,!1)};window.addEventListener("pointermove",pt),window.addEventListener("pointerup",qe),window.addEventListener("pointercancel",qe)}function Ht(p,b,A){const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;const de=Te(ae);if(!de)return;const me=A.stageLeft+A.left+(de.x+de.w/2)*A.scaleX,ze=A.stageTop+A.top+(de.y+de.h/2)*A.scaleY,be=Math.atan2(b.clientY-ze,b.clientX-me),Pe=mn(ae),Me=(Ae,Ne,Ke,lt)=>{const pt=Math.atan2(Ne-ze,Ae-me);let qe=In(Pe+(pt-be)*180/Math.PI);lt&&(qe=Math.round(qe/15)*15),t.updateOverlay(p,{rotation:qe},Ke?{transient:!0}:void 0)},Ie=Ae=>{Ae.preventDefault(),Me(Ae.clientX,Ae.clientY,!0,Ae.shiftKey)},Je=Ae=>{window.removeEventListener("pointermove",Ie),window.removeEventListener("pointerup",Je),window.removeEventListener("pointercancel",Je),Me(Ae.clientX,Ae.clientY,!1,Ae.shiftKey)};window.addEventListener("pointermove",Ie),window.addEventListener("pointerup",Je),window.addEventListener("pointercancel",Je)}function bt(p,b){if(Ye(),!se||!ee)return;if(se.replaceChildren(),ee.replaceChildren(),!Ge()){se.hidden=!0,ee.hidden=!0;return}ee.hidden=!0;const ae=Xe();if(!p.filter(me=>it(me.overlay,ae)).length){se.hidden=!0;return}se.hidden=!0}function Ft(p,b,A){if(!K)return;const ae=(t.getState().overlays??[])[p];if(!ae||ae.type!=="filter")return;if(A.shiftKey||A.ctrlKey||A.metaKey){A.preventDefault(),A.stopPropagation();const Ne=Pt(e,"text",p,A,ir(t.getState()).map(Ke=>Ke.index));T=Ne.length?Ne[Ne.length-1]:null,ce(),O(!0);return}A.preventDefault(),A.stopPropagation(),T=p,gt(e,"text",[p]),ce(),Y||O(!0);const de=le(),me=Math.max(K.clientWidth/de,.001),ze=at(ae),be=$t(ae,ze),Pe=Math.max(_e,be-ze),Me=ft(ae),Ie=A.clientX,Je=Ne=>{const Ke=(Ne.clientX-Ie)/me,lt=t.getState().overlays??[];if(b==="move"){const Ve=Math.max(0,ze+Ke),xt=Ve+Pe,Ot=mt(V,lt,p,Ve,xt,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:xt,timelineTrack:Ot},{transient:!0});return}if(b==="start"){const Ve=re(ze+Ke,0,be-_e),xt=mt(V,lt,p,Ve,be,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:be,timelineTrack:xt},{transient:!0});return}const pt=Math.max(ze+_e,be+Ke),qe=mt(V,lt,p,ze,pt,Ne.clientY,Me);ht(p,{startAt:ze,endAt:pt,timelineTrack:qe},{transient:!0})},Ae=Ne=>{window.removeEventListener("pointermove",Je),window.removeEventListener("pointerup",Ae),window.removeEventListener("pointercancel",Ae);const Ke=(Ne.clientX-Ie)/me,lt=t.getState().overlays??[];if(b==="move"){const Ve=Math.max(0,ze+Ke),xt=Ve+Pe,Ot=mt(V,lt,p,Ve,xt,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:xt,timelineTrack:Ot});return}if(b==="start"){const Ve=re(ze+Ke,0,be-_e),xt=mt(V,lt,p,Ve,be,Ne.clientY,Me);ht(p,{startAt:Ve,endAt:be,timelineTrack:xt});return}const pt=Math.max(ze+_e,be+Ke),qe=mt(V,lt,p,ze,pt,Ne.clientY,Me);ht(p,{startAt:ze,endAt:pt,timelineTrack:qe})};window.addEventListener("pointermove",Je),window.addEventListener("pointerup",Ae),window.addEventListener("pointercancel",Ae),Mt()}function wt(p,b){if(ye(),!V||!K||(V.replaceChildren(),V.hidden=p.length===0,!p.length))return;const A=le(),ae=K.clientWidth/A,de=Hn(t.getState()),me=new Map;for(const ze of p){const be=ft(ze.overlay),Pe=de.get(be)??be;let Me=me.get(be);Me||(Me=document.createElement("div"),Me.className="me-video-overlay-track-row",Me.dataset.track=String(be),Me.style.top=`${Sn(Pe)}px`,me.set(be,Me),V.appendChild(Me));const Ie=document.createElement("div");Ie.className="me-video-text-track-clip me-video-filter-track-clip",b.has(ze.index)&&Ie.classList.add("is-active");const Je=at(ze.overlay),Ae=En(ze.overlay);Ie.style.left=`${Je*ae}px`,Ie.style.width=`${Math.max(36,Ae*ae)}px`;const Ne=document.createElement("span");Ne.className="me-video-text-track-icon",Ne.textContent="Fx";const Ke=document.createElement("span");Ke.className="me-video-text-track-label",Ke.textContent=ot(ze.overlay),Ke.title=Ke.textContent;const lt=document.createElement("span");lt.className="me-video-text-track-handle is-start";const pt=document.createElement("span");pt.className="me-video-text-track-handle is-end",Ie.append(Ne,Ke,lt,pt),Ie.addEventListener("pointerdown",qe=>Ft(ze.index,"move",qe)),lt.addEventListener("pointerdown",qe=>Ft(ze.index,"start",qe)),pt.addEventListener("pointerdown",qe=>Ft(ze.index,"end",qe)),Ie.addEventListener("click",qe=>{if(qe.preventDefault(),qe.stopPropagation(),qe.shiftKey||qe.ctrlKey||qe.metaKey){ce(),Mt();return}const Ve=Pt(e,"text",ze.index,qe,p.map(xt=>xt.index));T=Ve.length?Ve[Ve.length-1]:null,ce(),O(!0),Mt()}),Me.appendChild(Ie)}}function Mt(){R(()=>{ie(),vt();const p=ir(t.getState());Ze(p);const b=new Set(cr(e,t.getState()));wt(p,b),bt(p,b);const A=Ue(_());I.forEach(({entry:ae,buttonEl:de,previewImage:me})=>{de.classList.toggle("is-active",String(ae.id??"")===A),nt(me)}),S.disabled=!A,H(),Re()}),Le()}function ut(p){return!!p&&(p===x||x.contains(p)||p===B||B?.contains?.(p)||p===k||k?.contains?.(p)||p===V||V?.contains?.(p)||p===se||se?.contains?.(p)||p===ee||ee?.contains?.(p))}function Wt(p){return p.some(b=>{if(!ut(b.target))return!0;for(const A of b.addedNodes)if(!ut(A))return!0;for(const A of b.removedNodes)if(!ut(A))return!0;return!1})}const g=new MutationObserver(p=>{W||e.__meVideoEnhancerObserverLock||Wt(p)&&(ie(),C())}),N=p=>{const b=p.target;!(b instanceof Node)||!B||!B.contains(b)||(p.preventDefault(),p.stopPropagation(),p.stopImmediatePropagation?.(),ke(m))},j=p=>{p?.detail?.id!==ve&&Y&&(Y=!1,Mt())},we=()=>{Mt()};g.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",j),e.addEventListener(zt,we),e.addEventListener("click",N,!0),window.addEventListener("resize",Re);const Oe=t.subscribe(()=>{Mt()});return I.forEach(({entry:p,buttonEl:b})=>{b.addEventListener("click",()=>{Qe(p.id||"")})}),S.addEventListener("click",()=>{yt()}),ie(),Mt(),{destroy(){g.disconnect(),He&&Z&&He.unobserve(Z),ue&&q&&ue.unobserve(q),Oe(),e.removeEventListener("me-video-inspector-open",j),e.removeEventListener(zt,we),e.removeEventListener("click",N,!0),window.removeEventListener("resize",Re),k?.remove(),V?.remove(),se?.remove(),ee?.remove(),x.remove(),It(e)}}}function oa(e,t,n,o){sn();const l=Mo(o()),s=Vr(o()),m=yr(l),x=document.createElement("div");x.className="me-video-text-panel me-video-color-panel me-video-effects-panel",x.hidden=!0,e.appendChild(x);const h=document.createElement("div");h.className="me-video-text-toolbar";const y=document.createElement("strong");y.textContent=s.title;const S=jt(l.reset),U=jt(s.close);h.append(y,S,U),x.appendChild(h);const w=document.createElement("p");w.className="me-video-text-hint",w.textContent=s.hint,x.appendChild(w);const I=m.map(O=>{const G=qt(O.title),H=O.items.map(_=>{const le=document.createElement("div");le.className="me-video-color-slider-control";const Xe=document.createElement("span");Xe.className="me-video-color-slider-value";const Le=document.createElement("input");return Le.type="range",Le.min=String(_.min),Le.max=String(_.max),Le.step="0.02",Le.dataset.adjustment=_.key,le.append(Xe,Le),G.body.appendChild(Ct(_.label,le)),{..._,value:Xe,range:Le}});return x.appendChild(G.section),{...O,controls:H}});let B=null,ne=null,Q=null,k=null,$=!1,K=!1,V=!1;const Z="effects",X=typeof requestAnimationFrame=="function"?requestAnimationFrame:O=>setTimeout(O,16);function se(){Promise.resolve().then(()=>{V=!1;const O=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,O-1)})}function ee(O){V=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return O()}finally{se()}}function q(){K||(K=!0,X(()=>{K=!1,We()}))}function Y(O=ne){return O?[...O.children].filter(G=>G instanceof HTMLButtonElement&&G!==B&&!G.classList.contains("me-video-text-tool")):[]}function T(){k&&(k.isConnected&&(k.style.display=k.dataset.meTrimDisplay??"",k.hidden=k.dataset.meTrimHidden==="true",delete k.dataset.meTrimDisplay,delete k.dataset.meTrimHidden),k=null)}function D(O){if(!O){T();return}k!==O&&(T(),O.classList.remove("is-active"),O.dataset.meTrimDisplay=O.style.display??"",O.dataset.meTrimHidden=O.hidden?"true":"false",O.hidden=!0,O.style.display="none",k=O)}function W(){if(Q&&!Q.classList.contains("is-active")){Q.click();return}const O=Y()[0];O&&!O.classList.contains("is-active")&&O.click()}function J(O){if(!B||!(O instanceof HTMLButtonElement))return;const G=O.getAttribute("style");G?B.setAttribute("style",G):B.removeAttribute("style"),B.hidden=!1,B.style.display=""}function ve(){B&&(B.dataset.theme=Xn(n()))}function he(){tn(e,x),It(e)}function He(O){const G=!!O;if(G===$){We();return}$=G,$&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Z}})),We()}function ue(){if(B?.classList.toggle("is-active",$),!!Q&&$){Q.classList.remove("is-active");return}}function Ee(){x.hidden=!$,ue(),he()}function We(){ee(()=>{Y().find(_=>_!==Q&&!_.hidden&&_.style.display!=="none"&&_.classList.contains("is-active"))&&($=!1),$&&W();const G=t.getState().filters??{},H=zo.some(_=>Math.abs(Number(G[_])||0)>1e-4);I.forEach(_=>{_.controls.forEach(le=>{const Xe=re(Number(G[le.key])||0,le.min,le.max);le.range.value=String(Xe),le.value.textContent=wr(Xe,le.format)})}),S.disabled=!H,Ee(),ve()})}function Fe(){ee(()=>{const O=e.querySelector(".me-video-toolrail");if(!O)return;ne=O;const G=Y(ne);Q=to(G),D(Q);const H=Q??G[0]??null;(!B||!B.isConnected)&&(B=document.createElement("button"),B.type="button",B.className="me-video-text-tool me-video-effects-tool",B.innerHTML=`<span class="me-video-text-tool-icon">${Wr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`),B.setAttribute("title",s.tool),B.setAttribute("aria-label",s.tool),J(H),B.isConnected?H?.parentElement===ne&&B.nextSibling!==H&&ne.insertBefore(B,H):H?.parentElement===ne?ne.insertBefore(B,H):ne.appendChild(B),ve(),ue(),he()})}function R(O){return!!O&&(O===x||x.contains(O)||O===B||B?.contains?.(O))}function C(O){return O.some(G=>{if(!R(G.target))return!0;for(const H of G.addedNodes)if(!R(H))return!0;for(const H of G.removedNodes)if(!R(H))return!0;return!1})}const $e=new MutationObserver(O=>{V||e.__meVideoEnhancerObserverLock||C(O)&&(Fe(),q())}),Se=O=>{O?.detail?.id!==Z&&$&&($=!1,We())},ce=O=>{const G=O.target;if(!(G instanceof Node)||!B||!B.contains(G))return;O.preventDefault(),O.stopPropagation(),O.stopImmediatePropagation?.();const H=!$;H&&W(),He(H)};$e.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",Se),e.addEventListener("click",ce,!0),window.addEventListener("resize",q);const Re=t.subscribe(()=>{q()});return I.forEach(O=>{O.controls.forEach(G=>{G.range.addEventListener("input",()=>{const H=re(Number(G.range.value)||0,G.min,G.max);G.value.textContent=wr(H,G.format),t.setFilter(G.key,H,{transient:!0})}),G.range.addEventListener("change",()=>{const H=re(Number(G.range.value)||0,G.min,G.max);t.setFilter(G.key,H)})})}),S.addEventListener("click",()=>{Ri(t)}),U.addEventListener("click",()=>{He(!1)}),Fe(),We(),{destroy(){$e.disconnect(),Re(),e.removeEventListener("me-video-inspector-open",Se),e.removeEventListener("click",ce,!0),window.removeEventListener("resize",q),T(),B?.remove(),x.remove(),It(e)}}}function ra(e,t,n,o){sn(),wn();const l=Mo(o()),s=qr(o()),m=yr(l),x=new Set(["brightness","contrast","saturation","temperature","tint","vibrance","gamma","highlights","shadows","whites","blacks","lightSense"]);function h(i,c,f){return i==="percent"?{min:(1+c)*100,max:(1+f)*100}:{min:c*100,max:f*100}}function y(i,c){const f=Number(i)||0;return c==="percent"?(1+f)*100:f*100}function S(i,c){const f=Number(i)||0;return c==="percent"?f/100-1:f/100}function U(i,c){const f=Math.round(y(i,c)*10)/10;return Number.isInteger(f),String(f)}function w(i,c){let f=Math.abs(Math.round(Number(i)||0)),r=Math.abs(Math.round(Number(c)||0));for(;r;){const a=f%r;f=r,r=a}return f||1}function I(i){const c=Math.max(1,Yt(i?.w??0)),f=Math.max(1,Yt(i?.h??0)),r=w(c,f);return`${c/r}:${f/r}`}function B(i){const c=Number(i);if(!(c>0))return s.notAvailable;const f=["B","KB","MB","GB","TB"];let r=c,a=0;for(;r>=1024&&a<f.length-1;)r/=1024,a+=1;const d=r>=100||a===0?0:r>=10?1:2;return`${r.toFixed(d)} ${f[a]}`}function ne(i){const c=Number(i);return c>0?`${c.toFixed(2)} fps`:s.notAvailable}function Q(i,c){const f=Number(i),r=Number(c);if(!(f>0)||!(r>0))return s.notAvailable;const a=f*8/r;return a>=1e6?`${(a/1e6).toFixed(2)} Mbps`:a>=1e3?`${Math.round(a/1e3)} Kbps`:`${Math.round(a)} bps`}function k(i){const c=String(i?.file?.type||i?.type||i?.mime||"").trim();if(c.includes("/"))return c.split("/").pop().toUpperCase();const r=String(i?.file?.name||i?.name||"").trim().match(/\.([a-z0-9]+)$/i);return r?r[1].toUpperCase():s.notAvailable}function $(i){return String(i?.codec||i?.videoCodec||i?.codecName||i?.encoding||"").trim()||s.notAvailable}function K(i){const c=Math.max(0,Math.round(Number(i?.width??i?.dims?.w)||0)),f=Math.max(0,Math.round(Number(i?.height??i?.dims?.h)||0));return!(c>0)||!(f>0)?s.notAvailable:`${c} x ${f} px`}function V(){const c=t.getState().clips??[],f=_t(e,"video").filter(v=>!!c[v]),a=(c[f[f.length-1]]??c[0]??null)?.srcIdx??0;return{source:(typeof t.getVideoSource=="function"?t.getVideoSource(a):null)??t.videoSources?.[a]??t.videoSources?.[0]??null,sourceIndex:a}}function Z(){const i=t.getState(),{source:c,sourceIndex:f}=V(),r=i.canvas??{w:1080,h:1920},a=_n(i),d=Number(c?.frameRate??c?.fps)||30,v=Number(c?.duration)||ke()||0,M=Number(c?.file?.size??c?.size)||0;return{videoName:String(c?.file?.name||c?.name||"").trim()||(c?`video-${f+1}`:s.notAvailable),ratio:I(a),canvasSize:An(r),resolution:An(a),frameRate:ne(d),bitrate:Q(M,v),format:k(c),fileSize:B(M),codec:$(c),sourceSize:K(c),videoLength:pn(ke())}}const X=document.createElement("div");X.className="me-video-text-panel me-video-color-panel me-video-effects-panel me-video-feature-one-panel",X.hidden=!0,e.appendChild(X);const se=document.createElement("div");se.className="me-video-text-toolbar";const ee=document.createElement("strong");ee.textContent=s.title;const q=jt(l.reset);se.append(ee,q);const Y=document.createElement("p");Y.className="me-video-text-hint",Y.textContent=s.hint;const T=document.createElement("div");T.className="me-video-text-empty",T.textContent=s.placeholder;const D=document.createElement("div");D.className="me-video-text-panel me-video-feature-one-info-panel",D.hidden=!0,e.appendChild(D);const W=document.createElement("div");W.className="me-video-text-toolbar";const J=document.createElement("strong");J.textContent=s.videoInfoTitle,W.append(J);const ve=qt(s.videoInfoTitle);ve.section.classList.add("me-video-feature-one-meta-section"),ve.title.remove();const he=[{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(i=>{const c=document.createElement("div");return c.className="me-video-feature-one-meta-value",ve.body.appendChild(Ct(i.label,c)),{...i,valueEl:c}});X.append(se,Y,T),D.append(W,ve.section);const He=m.map(i=>{const c=qt(i.title),f=i.items.map(r=>{const a=h(r.format,r.min,r.max),d=document.createElement("div");d.className="me-video-color-slider-control me-video-color-number-control";const v=document.createElement("input");v.type="range",v.min=String(r.min),v.max=String(r.max),v.step="0.01",v.dataset.adjustment=r.key;const M=document.createElement("input");return M.type="number",M.min=String(a.min),M.max=String(a.max),M.step="1",M.inputMode="decimal",M.dataset.adjustment=r.key,d.append(v,M),c.body.appendChild(Ct(r.label,d)),{...r,range:v,input:M,displayMin:a.min,displayMax:a.max}});return X.appendChild(c.section),{...i,section:c.section,controls:f}});let ue=null,Ee=null,We=null,Fe=null,R=null,C=null,$e=null,Se=null,ce=null,Re=null,O=null,G=!1,H=null,_=!1,le=!1;const Xe="adjust",Le=typeof requestAnimationFrame=="function"?requestAnimationFrame:i=>setTimeout(i,16),Ze=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>rt()),Ue=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>rt()),je=[{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}],ct={key:"rotate",x:.5,y:0};function ot(){Promise.resolve().then(()=>{le=!1;const i=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,i-1)})}function Te(i){le=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return i()}finally{ot()}}function rt(){_||(_=!0,Le(()=>{_=!1,Ve()}))}function ht(i=Ee){return i?[...i.children].filter(c=>c instanceof HTMLButtonElement&&c!==ue&&!c.classList.contains("me-video-text-tool")):[]}function Et(){Fe&&(Fe.isConnected&&(Fe.style.display=Fe.dataset.meTrimDisplay??"",Fe.hidden=Fe.dataset.meTrimHidden==="true",delete Fe.dataset.meTrimDisplay,delete Fe.dataset.meTrimHidden),Fe=null)}function xe(i){if(!i){Et();return}Fe!==i&&(Et(),i.classList.remove("is-active"),i.dataset.meTrimDisplay=i.style.display??"",i.dataset.meTrimHidden=i.hidden?"true":"false",i.hidden=!0,i.style.display="none",Fe=i)}function Ce(){if(We&&!We.classList.contains("is-active")){We.click();return}const i=ht()[0];i&&!i.classList.contains("is-active")&&i.click()}function ke(){return Ln(t)}function Qe(){return gn(e)}function nt(){if(!t.history?.present)return;const i=Qe(),c=Number(t.history.present.__mePreviewTimelineTime);Math.abs((Number.isFinite(c)?c:-1)-i)<.001||(t.history={...t.history,present:{...t.history.present,__mePreviewTimelineTime:i}},typeof t.emit=="function"&&t.emit())}function vt(i){const c={...Nn};for(const f of zo){const r=Number(i?.[f]);Number.isFinite(r)&&(c[f]=x.has(f)?re(r,-1,1):re(r,0,1))}return c}function yt(i){const c=vt(i);return zo.some(f=>Math.abs(Number(c[f])||0)>1e-4)}function ie(i){const c=vt(i),f=[],r=Br(c,"");return r&&f.push(r),Math.abs(c.vibrance)>1e-4&&f.push(`saturate(${(1+c.vibrance*.65).toFixed(3)})`),Math.abs(c.temperature)>1e-4&&(c.temperature>0&&f.push(`sepia(${Math.min(.36,c.temperature*.28).toFixed(3)})`),f.push(`hue-rotate(${(-c.temperature*14).toFixed(2)}deg)`)),Math.abs(c.tint)>1e-4&&f.push(`hue-rotate(${(c.tint*10).toFixed(2)}deg)`),Math.abs(c.gamma)>1e-4&&f.push(`brightness(${(1+c.gamma*.08).toFixed(3)})`),(c.clarity>1e-4||c.sharpen>1e-4)&&f.push(`contrast(${(1+c.clarity*.16+c.sharpen*.1).toFixed(3)})`),f.join(" ").trim()||"none"}function ye(i){const c=vt(i),f=[];if(c.fade>1e-4&&f.push(`linear-gradient(0deg, rgba(255,245,235,${(c.fade*.18).toFixed(3)}), rgba(255,245,235,${(c.fade*.18).toFixed(3)}))`),c.vignette>1e-4){const r=(.28+c.vignette*.3).toFixed(3),a=(.16+c.vignette*.22).toFixed(3);f.push(`radial-gradient(circle at center, rgba(0,0,0,0) ${r}, rgba(0,0,0,${a}) 100%)`)}return c.grain>1e-4&&f.push(`linear-gradient(135deg, rgba(255,255,255,${(c.grain*.05).toFixed(3)}) 0%, rgba(0,0,0,${(c.grain*.05).toFixed(3)}) 100%)`),f.join(", ")}function Ye(){const i=t.getState().overlays??[];if(H==null)return null;const c=i[H];return c?.type==="adjust"?c:null}function Ge(i){if(!i.length){H=null;return}const c=Gn(e,t.getState());H=c.length?c[c.length-1]:null}function it(i){const c=Number(i?.w),f=Number(i?.h);return!(c>0)||!(f>0)?null:{x:Number(i?.x)||0,y:Number(i?.y)||0,w:Math.max(48,c),h:Math.max(48,f)}}function Lt(i,c){const f=it(i);if(!f)return i;const r=Math.max(.1,Number(c)||1);return{...i,w:Math.max(48,f.w*r),h:Math.max(48,f.h*r)}}function Tt(i,c,f={}){const a=(t.getState().overlays??[])[i];!a||a.type!=="adjust"||t.updateOverlay(i,Zt(a,ke(),c),f)}function Rt(i,c){H!=null&&t.updateOverlay(H,i,c)}function dt(i){const c=t.getState().overlays??[],f=c.length;if(typeof t.applyMut=="function")return t.applyMut(a=>({...a,overlays:[...en(a.overlays),{...i,timelineTrack:0}]})),f;const r=en(c);return t.commit?.({overlays:[...r,{...i,timelineTrack:0}]}),f}function Ht(){const i=t.getState().canvas??{w:1080,h:1920};return{type:"adjust",x:0,y:0,w:Math.max(1,Number(i.w)||1080),h:Math.max(1,Number(i.h)||1920),rotation:0,...Nn}}function bt(){const i=ke();let c=re(Qe(),0,Math.max(0,i-_e)),f=Math.min(i,c+Vt);f-c<_e&&(c=re(i-Vt,0,Math.max(0,i-_e)),f=Math.max(c+_e,i));const r={...Ht(),...Zt(null,i,{startAt:c,endAt:f,timelineTrack:0})},a=dt(r);H=Number.isInteger(a)?a:null,gt(e,"text",H==null?[]:[H],{preserveOther:!0}),Ce(),pt(H!=null)}function Ft(){const i=t.getState(),c=Lo(i.overlays??[],Gn(e,i));c.changed&&(t.commit({overlays:c.overlays}),H=c.selection.length?c.selection[c.selection.length-1]:null,gt(e,"text",c.selection),Ve())}function wt(){const i=t.getState(),c=To(i.overlays??[],Gn(e,i));c.changed&&(t.commit({overlays:c.overlays}),H=null,gt(e,"text",[]),Ve())}function Mt(){Ye()&&Rt({...Nn})}function ut(i){if(!ue||!(i instanceof HTMLButtonElement))return;const c=i.getAttribute("style");c?ue.setAttribute("style",c):ue.removeAttribute("style"),ue.hidden=!1,ue.style.display=""}function Wt(){ue&&(ue.dataset.theme=Xn(n()))}function g(){tn(e,X),tn(e,D),It(e)}function N(){const{timelineInner:i,timelineHost:c}=Rn(e,t.getState());if(!i||!c){C?.remove(),C=null,Ze&&$e&&(Ze.unobserve($e),$e=null),R=null;return}R=i,(!C||!C.isConnected||C.parentElement!==c)&&(C?.remove(),C=document.createElement("div"),C.className="me-video-text-timeline me-video-overlay-timeline me-video-feature-one-overlay-layer");for(const f of[...c.children])f!==C&&f instanceof HTMLElement&&f.classList.contains("me-video-feature-one-overlay-layer")&&f.remove();(C.parentElement!==c||c.lastElementChild!==C)&&c.appendChild(C),Ze&&$e!==R&&($e&&Ze.unobserve($e),$e=R,Ze.observe(R))}function j(){const i=e.querySelector(".me-video-canvas-stage");if(!i){ce?.remove(),ce=null,Re?.remove(),Re=null,Ue&&O&&(Ue.unobserve(O),O=null),Se=null;return}Se=i,Se.style.position="relative",(!ce||!ce.isConnected||ce.parentElement!==Se)&&(ce?.remove(),ce=document.createElement("div"),ce.className="me-video-filter-effect-layer",Se.appendChild(ce)),(!Re||!Re.isConnected||Re.parentElement!==Se)&&(Re?.remove(),Re=document.createElement("div"),Re.className="me-video-filter-control-layer",Se.appendChild(Re)),Se.lastElementChild!==Re&&Se.appendChild(Re),Ue&&O!==Se&&(O&&Ue.unobserve(O),O=Se,Ue.observe(Se))}function we(){if(!Se)return null;const c=t.getState().canvas??{},f=Math.max(1,Number(c.w)||0),r=Math.max(1,Number(c.h)||0);if(!f||!r)return null;const a=Se.getBoundingClientRect(),d=Se.querySelector("canvas, video, img")||[...Se.children].find(E=>E!==ce&&E!==Re)||null;let v=0,M=0,z=Se.clientWidth||f,F=Se.clientHeight||r;if(d instanceof HTMLElement){const E=d.getBoundingClientRect();E.width>0&&E.height>0&&(v=E.left-a.left,M=E.top-a.top,z=E.width,F=E.height)}if(!(z>0&&F>0)){const E=Se.clientWidth||f,P=Se.clientHeight||r,te=Math.min(E/f,P/r)||1;z=f*te,F=r*te,v=Math.max(0,(E-z)/2),M=Math.max(0,(P-F)/2)}return{stageLeft:a.left,stageTop:a.top,left:v,top:M,scaleX:z/f,scaleY:F/r}}function Oe(i,c){const f=at(i),r=$t(i,f);return c>=f-.001&&c<=r+.001}function p(i,c,f){const r=Pt(e,"text",i,c,f);H=r.length?r[r.length-1]:null,pt(!0),Ve()}function b(i,c,f){return{x:(i-f.stageLeft-f.left)/f.scaleX,y:(c-f.stageTop-f.top)/f.scaleY}}function A(i,c,f){const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;const a=t.getState().canvas??{w:1080,h:1920},d=it(r);if(!d)return;const v=c.clientX,M=c.clientY,z=Math.max(0,(Number(a.w)||0)-d.w),F=Math.max(0,(Number(a.h)||0)-d.h),E=(oe,Be,ge)=>{const fe=(oe-v)/f.scaleX,pe=(Be-M)/f.scaleY,De=re(d.x+fe,0,z),et=re(d.y+pe,0,F);t.updateOverlay(i,{x:De,y:et},ge?{transient:!0}:void 0)},P=oe=>{oe.preventDefault(),E(oe.clientX,oe.clientY,!0)},te=oe=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",te),E(oe.clientX,oe.clientY,!1)};window.addEventListener("pointermove",P),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",te)}function ae(i,c,f,r){const a=(t.getState().overlays??[])[i];if(!a||a.type!=="adjust")return;const d=it(a);if(!d)return;const v=t.getState().canvas??{w:1080,h:1920},M=c.x===.5?.5:1-c.x,z=c.y===.5?.5:1-c.y,F=d.x+d.w*M,E=d.y+d.h*z,P=Math.max(.1,48/Math.max(48,d.w),48/Math.max(48,d.h)),te=c.x===.5?1/0:Math.max(.1,(M===0?(Number(v.w)||0)-F:F)/Math.max(1,d.w)),oe=c.y===.5?1/0:Math.max(.1,(z===0?(Number(v.h)||0)-E:E)/Math.max(1,d.h)),Be=Math.max(P,Math.min(te,oe,8)),ge=(De,et,tt)=>{const st=b(De,et,r),St=[];c.x!==.5&&St.push(Math.abs(st.x-F)/Math.max(1,d.w)),c.y!==.5&&St.push(Math.abs(st.y-E)/Math.max(1,d.h));const Kt=St.length?Math.max(...St):1,dn=re(Kt,P,Be),un=Lt(a,dn),an=it(un);if(!an)return;const uo=F-an.w*M,Yn=E-an.h*z;t.updateOverlay(i,{x:uo,y:Yn,w:an.w,h:an.h},tt?{transient:!0}:void 0)},fe=De=>{De.preventDefault(),ge(De.clientX,De.clientY,!0)},pe=De=>{window.removeEventListener("pointermove",fe),window.removeEventListener("pointerup",pe),window.removeEventListener("pointercancel",pe),ge(De.clientX,De.clientY,!1)};window.addEventListener("pointermove",fe),window.addEventListener("pointerup",pe),window.addEventListener("pointercancel",pe)}function de(i,c,f){const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;const a=it(r);if(!a)return;const d=f.stageLeft+f.left+(a.x+a.w/2)*f.scaleX,v=f.stageTop+f.top+(a.y+a.h/2)*f.scaleY,M=Math.atan2(c.clientY-v,c.clientX-d),z=mn(r),F=(te,oe,Be,ge)=>{const fe=Math.atan2(oe-v,te-d);let pe=In(z+(fe-M)*180/Math.PI);ge&&(pe=Math.round(pe/15)*15),t.updateOverlay(i,{rotation:pe},Be?{transient:!0}:void 0)},E=te=>{te.preventDefault(),F(te.clientX,te.clientY,!0,te.shiftKey)},P=te=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",P),window.removeEventListener("pointercancel",P),F(te.clientX,te.clientY,!1,te.shiftKey)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",P),window.addEventListener("pointercancel",P)}function me(i,c){if(j(),!ce||!Re)return;if(ce.replaceChildren(),Re.replaceChildren(),!we()){ce.hidden=!0,Re.hidden=!0;return}Re.hidden=!0;const r=Qe();if(!i.filter(d=>Oe(d.overlay,r)).length){ce.hidden=!0;return}ce.hidden=!0}function ze(i,c,f){if(!R)return;const r=(t.getState().overlays??[])[i];if(!r||r.type!=="adjust")return;if(f.shiftKey||f.ctrlKey||f.metaKey){f.preventDefault(),f.stopPropagation();const oe=Pt(e,"text",i,f,ar(t.getState()).map(Be=>Be.index));H=oe.length?oe[oe.length-1]:null,Ce(),pt(!0);return}f.preventDefault(),f.stopPropagation(),H=i,gt(e,"text",[i]),Ce(),G||pt(!0);const a=ke(),d=Math.max(R.clientWidth/a,.001),v=at(r),M=$t(r,v),z=Math.max(_e,M-v),F=ft(r),E=f.clientX,P=oe=>{const Be=(oe.clientX-E)/d,ge=t.getState().overlays??[];if(c==="move"){const De=Math.max(0,v+Be),et=De+z,tt=mt(C,ge,i,De,et,oe.clientY,F);Tt(i,{startAt:De,endAt:et,timelineTrack:tt},{transient:!0});return}if(c==="start"){const De=re(v+Be,0,M-_e),et=mt(C,ge,i,De,M,oe.clientY,F);Tt(i,{startAt:De,endAt:M,timelineTrack:et},{transient:!0});return}const fe=Math.max(v+_e,M+Be),pe=mt(C,ge,i,v,fe,oe.clientY,F);Tt(i,{startAt:v,endAt:fe,timelineTrack:pe},{transient:!0})},te=oe=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",te);const Be=(oe.clientX-E)/d,ge=t.getState().overlays??[];if(c==="move"){const De=Math.max(0,v+Be),et=De+z,tt=mt(C,ge,i,De,et,oe.clientY,F);Tt(i,{startAt:De,endAt:et,timelineTrack:tt});return}if(c==="start"){const De=re(v+Be,0,M-_e),et=mt(C,ge,i,De,M,oe.clientY,F);Tt(i,{startAt:De,endAt:M,timelineTrack:et});return}const fe=Math.max(v+_e,M+Be),pe=mt(C,ge,i,v,fe,oe.clientY,F);Tt(i,{startAt:v,endAt:fe,timelineTrack:pe})};window.addEventListener("pointermove",P),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",te),Ve()}function be(i,c){if(N(),!C||!R||(C.replaceChildren(),C.hidden=i.length===0,!i.length))return;const f=ke(),r=R.clientWidth/f,a=Hn(t.getState()),d=new Map;for(const v of i){const M=ft(v.overlay),z=a.get(M)??M;let F=d.get(M);F||(F=document.createElement("div"),F.className="me-video-overlay-track-row",F.dataset.track=String(M),F.style.top=`${Sn(z)}px`,d.set(M,F),C.appendChild(F));const E=document.createElement("div");E.className="me-video-text-track-clip me-video-filter-track-clip",c.has(v.index)&&E.classList.add("is-active");const P=at(v.overlay),te=En(v.overlay);E.style.left=`${P*r}px`,E.style.width=`${Math.max(36,te*r)}px`;const oe=document.createElement("span");oe.className="me-video-text-track-icon",oe.textContent="Adj";const Be=document.createElement("span");Be.className="me-video-text-track-label",Be.textContent=s.tool,Be.title=Be.textContent;const ge=document.createElement("span");ge.className="me-video-text-track-handle is-start";const fe=document.createElement("span");fe.className="me-video-text-track-handle is-end",E.append(oe,Be,ge,fe),E.addEventListener("pointerdown",pe=>ze(v.index,"move",pe)),ge.addEventListener("pointerdown",pe=>ze(v.index,"start",pe)),fe.addEventListener("pointerdown",pe=>ze(v.index,"end",pe)),E.addEventListener("click",pe=>{if(pe.preventDefault(),pe.stopPropagation(),pe.shiftKey||pe.ctrlKey||pe.metaKey){Ce(),Ve();return}const De=Pt(e,"text",v.index,pe,i.map(et=>et.index));H=De.length?De[De.length-1]:null,Ce(),pt(!0),Ve()}),F.appendChild(E)}}function Pe(i){He.forEach(c=>{c.controls.forEach(f=>{f.range.disabled=i,f.input.disabled=i})}),q.disabled=i}function Me(){const i=Z();he.forEach(c=>{const f=String(i[c.key]??s.notAvailable);c.valueEl.textContent=f,c.valueEl.title=f})}function Ie(i){const c=!!i;if(Pe(!c),q.hidden=!c,T.hidden=c,He.forEach(r=>{r.section.hidden=!c}),Me(),!c)return;const f=vt(i);He.forEach(r=>{r.controls.forEach(a=>{const d=re(Number(f[a.key])||0,a.min,a.max);a.range.value=String(d),a.input.value=U(d,a.format)})}),c&&(q.disabled=!yt(i))}function Je(){return G&&!!Ye()}function Ae(){return ht().some(f=>f!==We&&!f.hidden&&f.style.display!=="none"&&f.classList.contains("is-active"))?!0:[...e.querySelectorAll(".me-video-toolrail .me-video-text-tool.is-active")].some(f=>f!==ue)}function Ne(){const i=ao(e);return i instanceof HTMLElement?[...i.children].some(c=>c instanceof HTMLElement&&c!==X&&c!==D&&!c.hidden):!1}function Ke(){return G&&!!Ye()&&!Ae()}function lt(){const i=Tn(e,t.getState().audioClips??[]).length>0;return!Ae()&&!Ne()&&!i&&!Ye()}function pt(i){const c=!!i;if(c===G){Ve();return}G=c,G&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:Xe}})),Ve()}function qe(){X.hidden=!Ke(),D.hidden=!lt(),Ot(),g()}function Ve(){Te(()=>{Ae()&&(G=!1),G&&Ce(),xt();const i=ar(t.getState());Ge(i);const c=new Set(Gn(e,t.getState()));be(i,c),me(i,c),Ie(Ye()),qe(),Wt()}),nt()}function xt(){Te(()=>{const i=e.querySelector(".me-video-toolrail");if(!i)return;Ee=i;const c=ht(Ee);We=to(c),xe(We);const f=We??c[0]??null;(!ue||!ue.isConnected)&&(ue=document.createElement("button"),ue.type="button",ue.className="me-video-text-tool me-video-feature-one-tool",ue.innerHTML=`<span class="me-video-text-tool-icon">${Kr()}</span><span class="me-video-text-tool-label">${s.tool}</span>`,ue.addEventListener("click",()=>{bt()})),ue.setAttribute("title",s.tool),ue.setAttribute("aria-label",s.tool),ut(f),ue.isConnected?f?.parentElement===Ee&&ue.nextSibling!==f&&Ee.insertBefore(ue,f):f?.parentElement===Ee?Ee.insertBefore(ue,f):Ee.appendChild(ue),Wt(),ue.classList.toggle("is-active",Je()),Ot(),g()})}function Ot(){if(ue?.classList.toggle("is-active",Je()),!!We){if(Je()){We.classList.remove("is-active");return}We.classList.remove("is-active")}}function Bt(i){return!!i&&(i===X||X.contains(i)||i===D||D.contains(i)||i===ue||ue?.contains?.(i)||i===C||C?.contains?.(i)||i===ce||ce?.contains?.(i)||i===Re||Re?.contains?.(i))}function Nt(i){return i.some(c=>{if(!Bt(c.target))return!0;for(const f of c.addedNodes)if(!Bt(f))return!0;for(const f of c.removedNodes)if(!Bt(f))return!0;return!1})}const nn=new MutationObserver(i=>{le||e.__meVideoEnhancerObserverLock||Nt(i)&&(xt(),rt())}),on=i=>{i?.detail?.id!==Xe&&(G=!1,X.hidden=!0,D.hidden=!0,Ot(),g(),rt())},Jt=i=>{const c=i.target;c instanceof Element&&c.closest(".me-video-toolrail button")&&rt()},At=()=>{Ve()};nn.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden"]}),e.addEventListener("me-video-inspector-open",on),e.addEventListener("click",Jt,!0),e.addEventListener(zt,At),window.addEventListener("resize",g);const rn=t.subscribe(()=>{Ve()});function u(i){const c=Number(i.input.value);if(!Number.isFinite(c))return null;const f=re(c,i.displayMin,i.displayMax),r=re(S(f,i.format),i.min,i.max);return{displayValue:f,internalValue:r}}function L(i){const c=Number(i.range.value);if(!Number.isFinite(c))return null;const f=re(c,i.min,i.max);return{internalValue:f,displayValue:re(y(f,i.format),i.displayMin,i.displayMax)}}return He.forEach(i=>{i.controls.forEach(c=>{c.range.addEventListener("input",()=>{const f=L(c);f&&(c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue},{transient:!0}))}),c.range.addEventListener("change",()=>{const f=L(c);if(!f){Ve();return}c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue})}),c.input.addEventListener("input",()=>{const f=u(c);f&&(c.range.value=String(f.internalValue),Rt({[c.key]:f.internalValue},{transient:!0}))}),c.input.addEventListener("change",()=>{const f=u(c);if(!f){Ve();return}c.range.value=String(f.internalValue),c.input.value=U(f.internalValue,c.format),Rt({[c.key]:f.internalValue})}),c.input.addEventListener("blur",()=>{const f=u(c);if(!f){Ve();return}c.range.value=String(f.internalValue),c.input.value=U(f.internalValue,c.format)})})}),q.addEventListener("click",()=>{Mt()}),xt(),Ve(),{destroy(){nn.disconnect(),rn(),Ze&&$e&&Ze.unobserve($e),Ue&&O&&Ue.unobserve(O),e.removeEventListener("me-video-inspector-open",on),e.removeEventListener("click",Jt,!0),e.removeEventListener(zt,At),window.removeEventListener("resize",g),Et(),ue?.remove(),C?.remove(),ce?.remove(),Re?.remove(),X.remove(),D.remove(),It(e)}}}function ia(e,t,n){sn();const o=Mi(n()),l=ji(),s=Vi(l),m=document.createElement("div");m.className="me-video-text-panel me-video-ratio-panel",m.hidden=!0,e.appendChild(m);const x=document.createElement("div");x.className="me-video-text-toolbar";const h=document.createElement("strong");h.textContent=o.title,x.append(h);const y=qt(o.commonPresets),S=document.createElement("div");S.className="me-video-ratio-card-grid",y.body.appendChild(S);const U=qt(o.customSize),w=document.createElement("input");w.type="number",w.min="2",w.step="2",w.className="me-video-text-input";const I=document.createElement("input");I.type="number",I.min="2",I.step="2",I.className="me-video-text-input";const B=Zn(o.width,w),ne=Zn(o.height,I),Q=document.createElement("div");Q.className="me-video-ratio-dimension-grid";const k=document.createElement("div");k.className="me-video-ratio-cross",k.textContent="x",Q.append(B,k,ne);const $=document.createElement("div");$.className="me-video-ratio-lock-row";const K=document.createElement("button");K.type="button",K.className="me-video-ratio-lock-toggle me-video-ratio-lock-inline";const V=document.createElement("button");V.type="button",V.className="me-video-ratio-quick",V.textContent=o.quickPortrait;const Z=document.createElement("button");Z.type="button",Z.className="me-video-ratio-quick",Z.textContent=o.quickLandscape,U.title.appendChild(K),$.append(V,Z);const X=document.createElement("p");X.className="me-video-ratio-summary",U.body.append(Q,$,X);const se=qt(o.fitMode),ee=document.createElement("div");ee.className="me-video-ratio-fit-group";const q=[{fit:"cover",label:o.cover},{fit:"contain",label:o.contain},{fit:"force",label:o.force}].map(ie=>{const ye=document.createElement("button");return ye.type="button",ye.className="me-video-ratio-fit-button",ye.dataset.fit=ie.fit,ye.textContent=ie.label,ee.appendChild(ye),{fit:ie.fit,button:ye}}),Y=document.createElement("p");Y.className="me-video-ratio-note",se.body.append(ee,Y),m.append(x,U.section,se.section,y.section);let T=null,D=null,W=null,J=null,ve=null,he=!1,He=!0,ue=!1,Ee=!1;const We="resize",Fe=no("9:16"),R=no("16:9"),C=typeof requestAnimationFrame=="function"?requestAnimationFrame:ie=>setTimeout(ie,16);function $e(){Promise.resolve().then(()=>{Ee=!1;const ie=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,ie-1)})}function Se(ie){Ee=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return ie()}finally{$e()}}function ce(){ue||(ue=!0,C(()=>{ue=!1,Ce()}))}function Re(ie=D){return ie?[...ie.children].filter(ye=>ye instanceof HTMLButtonElement&&ye!==T&&!ye.classList.contains("me-video-text-tool")):[]}function O(ie){return[ie?.textContent,ie?.getAttribute?.("title"),ie?.getAttribute?.("aria-label")].filter(Boolean).join(" ").trim().toLowerCase()}function G(ie){const ye=["trim","timeline","\u526A\u8F91","\u65F6\u95F4\u8F74"];return Io(ie.find(Ye=>{const Ge=O(Ye);return ye.some(it=>Ge.includes(it))})??ie[0]??null)}function H(){if(J&&he){J.classList.remove("is-active");return}}function _(ie){const ye=[o.tool,o.title,"ratio","resize","\u6BD4\u4F8B","\u756B\u5E03","\u753B\u5E03"].map(Ye=>String(Ye??"").trim().toLowerCase()).filter(Boolean);return ie.find(Ye=>{const Ge=O(Ye);return ye.some(it=>Ge.includes(it))})??ie[ie.length-1]??null}function le(){ve&&(ve.isConnected&&(ve.style.display=ve.dataset.meResizeDisplay??"",ve.hidden=ve.dataset.meResizeHidden==="true",delete ve.dataset.meResizeDisplay,delete ve.dataset.meResizeHidden),ve=null)}function Xe(ie){if(!ie){le();return}ve!==ie&&(le(),ie.dataset.meResizeDisplay=ie.style.display??"",ie.dataset.meResizeHidden=ie.hidden?"true":"false",ie.hidden=!0,ie.style.display="none",ve=ie)}function Le(){J&&(J.classList.contains("is-active")||J.click())}function Ze(){tn(e,m),It(e)}function Ue(ie){const ye=!!ie;if(ye===he){Ce();return}he=ye,he&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:We}})),Ce()}function je(){const ie=e.querySelector(".me-video-toolrail");if(!ie)return;D=ie;const ye=Re(D);J=G(ye),W=_(ye),Xe(W),(!T||!T.isConnected)&&(T=document.createElement("button"),T.type="button",T.className="me-video-text-tool me-video-ratio-tool",T.innerHTML=`<span class="me-video-text-tool-icon">\u2922</span><span class="me-video-text-tool-label">${o.tool}</span>`,T.title=o.tool,T.setAttribute("aria-label",o.tool),T.addEventListener("click",()=>{const Ye=!he;Ye&&(Le(),ce()),Ue(Ye)})),T.isConnected?W?.parentElement===D&&T.nextSibling!==W&&D.insertBefore(T,W):W?.parentElement===D?D.insertBefore(T,W):D.appendChild(T),T.classList.toggle("is-active",he),H(),Ze()}function ct(){m.hidden=!he,T?.classList.toggle("is-active",he),H(),Ze()}function ot(ie=t.getState()){return Ho(ie?.scale?.fit)}function Te(){K.textContent=He?"\u{1F512}":"\u{1F513}",K.title=He?o.lockRatio:o.unlockRatio,K.setAttribute("aria-label",K.title),K.classList.toggle("is-active",He)}function rt(ie,ye,Ye=ot(),Ge=!1){const it={width:vn(ie,2),height:vn(ye,2),fit:Ho(Ye)};if(Ge){t.patch({scale:it},{transient:!0});return}t.commit({scale:it})}function ht(ie){const ye=_n(t.getState()),Ye=vn(ie,ye.w);if(!He)return{width:Ye,height:vn(I.value,ye.h)};const Ge=ye.w>0&&ye.h>0?ye.w/ye.h:1;return{width:Ye,height:vn(Ye/Ge,ye.h)}}function Et(ie){const ye=_n(t.getState()),Ye=vn(ie,ye.h);if(!He)return{width:vn(w.value,ye.w),height:Ye};const Ge=ye.w>0&&ye.h>0?ye.w/ye.h:1;return{width:vn(Ye*Ge,ye.w),height:Ye}}function xe(ie){const ye=Xi(s,ie);S.replaceChildren();for(const Ye of s){const Ge=document.createElement("button");Ge.type="button",Ge.className="me-video-ratio-preset-group",Ge.title=`${Ye.ratio} (${An(Ye)})`,ye&&ye.ratio===Ye.ratio&&Ge.classList.add("is-active");const it=document.createElement("div");it.className="me-video-ratio-preset-head";const Lt=document.createElement("div");Lt.className="me-video-ratio-preset-title";const Tt=document.createElement("strong");Tt.className="me-video-ratio-preset-ratio",Tt.textContent=Ye.ratio;const Rt=document.createElement("span");Rt.className="me-video-ratio-preset-size",Rt.textContent=`(${An(Ye)})`,Lt.append(Tt,Rt);const dt=document.createElement("span");dt.className="me-video-ratio-preset-marker",dt.setAttribute("aria-hidden","true"),it.append(Lt,dt);const Ht=document.createElement("p");Ht.className="me-video-ratio-preset-hint",Ht.textContent=Ye.hint;const bt=document.createElement("div");bt.className="me-video-ratio-preset-tags";for(const Ft of Ye.tags){const wt=document.createElement("span");wt.className="me-video-ratio-preset-tag",wt.textContent=Ft,bt.appendChild(wt)}Ge.addEventListener("click",()=>{rt(Ye.w,Ye.h,ot())}),Ge.append(it,Ht,bt),S.appendChild(Ge)}}function Ce(){Se(()=>{je();const ie=t.getState(),ye=Re().find(Lt=>Lt.classList.contains("is-active"))??null;he&&ye&&ye!==J&&(Le(),ce());const Ye=_n(ie),Ge=Sr(ie),it=ot(ie);w.value=String(Ye.w),I.value=String(Ye.h),Te(),X.innerHTML=`<strong>${o.summary}:</strong> ${An(Ye)}${ie.scale?` | ${o.baseOutput}: ${An(Ge)}`:""}`,Y.textContent=qi(o,it),q.forEach(Lt=>{Lt.button.classList.toggle("is-active",Lt.fit===it)}),xe(Ye),ct()})}function ke(ie){return!!ie&&(ie===m||m.contains(ie))}function Qe(ie){return ie.some(ye=>{if(!ke(ye.target))return!0;for(const Ye of ye.addedNodes)if(!ke(Ye))return!0;for(const Ye of ye.removedNodes)if(!ke(Ye))return!0;return!1})}const nt=new MutationObserver(ie=>{Ee||e.__meVideoEnhancerObserverLock||Qe(ie)&&(Se(()=>{je()}),ce())}),vt=ie=>{ie?.detail?.id!==We&&(he&&(he=!1,ct()),ce())};nt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",vt),window.addEventListener("resize",ce);const yt=t.subscribe(()=>{ce()});return w.addEventListener("input",()=>{const ie=ht(w.value);rt(ie.width,ie.height,ot(),!0)}),w.addEventListener("change",()=>{const ie=ht(w.value);rt(ie.width,ie.height,ot())}),I.addEventListener("input",()=>{const ie=Et(I.value);rt(ie.width,ie.height,ot(),!0)}),I.addEventListener("change",()=>{const ie=Et(I.value);rt(ie.width,ie.height,ot())}),K.addEventListener("click",()=>{He=!He,Ce()}),V.addEventListener("click",()=>{rt(Fe.w,Fe.h,ot())}),Z.addEventListener("click",()=>{rt(R.w,R.h,ot())}),q.forEach(ie=>{ie.button.addEventListener("click",()=>{const ye=_n(t.getState());rt(ye.w,ye.h,ie.fit)})}),je(),Ce(),{destroy(){nt.disconnect(),yt(),e.removeEventListener("me-video-inspector-open",vt),window.removeEventListener("resize",ce),le(),T?.remove(),m.remove(),It(e)}}}function aa(e,t,n,o){sn(),wn();const l=Uo(o()),s=l.transitions,m=document.createElement("div");m.className="me-video-text-panel me-video-transition-panel",m.hidden=!0,e.appendChild(m);const x=document.createElement("div");x.className="me-video-text-toolbar";const h=document.createElement("strong");h.textContent=s.title;const y=jt(s.fadeAll),S=jt(s.close);x.append(h,y,S);const U=document.createElement("p");U.className="me-video-text-hint",U.textContent=s.hint;const w=document.createElement("div");w.className="me-video-text-list";const I=document.createElement("div");I.className="me-video-text-empty",I.textContent=s.empty;const B=document.createElement("div");B.className="me-video-transition-selection";const ne=document.createElement("div");ne.className="me-video-transition-grid";const Q=po.map(xe=>{const Ce=kn(l,xe.key),ke=document.createElement("button");return ke.type="button",ke.className="me-video-transition-choice",ke.dataset.transition=xe.key,ke.innerHTML=`<strong>${Ce.label}</strong><span>${xe.key==="none"?s.instantCut:`${s.duration} ${pn(xe.duration)}`}</span>`,ne.appendChild(ke),ke}),k=document.createElement("input");k.type="range",k.min="0.1",k.max="1.2",k.step="0.05";const $=document.createElement("div");$.className="me-video-text-inline";const K=document.createElement("span");$.append(k,K);const V=Zn(s.duration,$);V.classList.add("is-span-2");const Z=document.createElement("div");Z.className="me-video-transition-actions";const X=jt(s.clearSelected),se=wi(s.clearAll,"clear");se.classList.add("me-video-text-cta"),Z.append(se,X),m.append(x,U,w,I,B,ne,V,Z);let ee=null,q=null,Y=null,T=null,D=null,W=!1,J=0,ve=!1,he=!1;const He="transition",ue=typeof requestAnimationFrame=="function"?requestAnimationFrame:xe=>setTimeout(xe,16),Ee=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>R());function We(){Promise.resolve().then(()=>{he=!1;const xe=e.__meVideoEnhancerObserverLock??0;e.__meVideoEnhancerObserverLock=Math.max(0,xe-1)})}function Fe(xe){he=!0,e.__meVideoEnhancerObserverLock=(e.__meVideoEnhancerObserverLock??0)+1;try{return xe()}finally{We()}}function R(){ve||(ve=!0,ue(()=>{ve=!1,je()}))}function C(xe){const Ce=!!xe;if(Ce===W){je();return}W=Ce,W&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:He}})),je()}function $e(){return q?[...q.querySelectorAll("button")].filter(xe=>xe!==ee):[]}function Se(){$e()[0]?.click()}function ce(){ee&&(ee.dataset.theme=Xn(n()))}function Re(){tn(e,m),It(e)}function O(){m.hidden=!W,ee&&ee.classList.toggle("is-active",W),Re()}function G(xe){const Ce=Math.max(0,(xe.clips??[]).length-1);if(!Ce){J=0;return}J=re(J,0,Ce-1)}function H(xe,Ce=!1){if(Ce){t.patch({transitions:xe},{transient:!0});return}t.commit({transitions:xe})}function _(xe,Ce=!1){const ke=t.getState(),Qe=ho(ke),nt=ke.clips??[];G(ke),!(!Qe.length||!nt[J]||!nt[J+1])&&(Qe[J]=Wn({...Qe[J],...xe},Dt(nt[J]),Dt(nt[J+1])),H(Qe,Ce))}function le(xe){const Ce=t.getState(),ke=ho(Ce),Qe=Ce.clips??[];if(G(Ce),!ke.length||!Qe[J]||!Qe[J+1])return;const nt=kn(l,xe);ke[J]=Wn({type:xe,duration:xe==="none"?0:ke[J]?.duration||nt.duration},Dt(Qe[J]),Dt(Qe[J+1])),H(ke)}function Xe(xe){const ke=t.getState().clips??[];if(ke.length<2)return;const Qe=kn(l,xe),nt=[];for(let vt=0;vt<ke.length-1;vt++)nt.push(Wn({type:xe,duration:xe==="none"?0:Qe.duration},Dt(ke[vt]),Dt(ke[vt+1])));H(nt)}function Le(){const Ce=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!Ce){T?.remove(),T=null,Ee&&D&&(Ee.unobserve(D),D=null),Y=null;return}Y=Ce,Y.style.position="relative",(!T||!T.isConnected||T.parentElement!==Y)&&(T?.remove(),T=document.createElement("div"),T.className="me-video-transition-track",Y.appendChild(T)),Ee&&D!==Y&&(D&&Ee.unobserve(D),D=Y,Ee.observe(Y))}function Ze(xe,Ce){w.replaceChildren();const ke=Math.max(0,(xe.clips??[]).length-1);for(let Qe=0;Qe<ke;Qe++){const nt=document.createElement("button");nt.type="button",nt.className="me-video-text-chip",Qe===J&&nt.classList.add("is-active");const vt=Ce[Qe],yt=kn(l,vt?.type??"none");nt.textContent=s.boundary(Qe+1,Qe+2,yt.short),nt.title=s.boundaryTitle(Qe+1,Qe+2),nt.addEventListener("click",()=>{J=Qe,Se(),C(!0)}),w.appendChild(nt)}}function Ue(xe,Ce){if(Le(),!T||!Y)return;T.replaceChildren();const ke=xe.clips??[];if(ke.length<2)return;const Qe=Math.max(typeof t.contentDuration=="function"?t.contentDuration():0,.001),nt=Y.clientWidth/Qe;let vt=0;for(let yt=0;yt<ke.length-1;yt++){vt+=Dt(ke[yt]);const ie=Ce[yt],ye=kn(l,ie?.type??"none"),Ye=ie?.type==="none",Ge=document.createElement("button");Ge.type="button",Ge.className="me-video-transition-marker",Ye&&Ge.classList.add("is-cut-only"),ie?.type!=="none"&&Ge.classList.add("is-enabled"),yt===J&&Ge.classList.add("is-active"),Ge.style.left=`${vt*nt}px`,Ge.title=s.markerTitle(yt+1,yt+2,ye.label,ie?.type!=="none"?pn(ie.duration):"");const it=document.createElement("span");it.className="me-video-transition-pill",it.textContent=Ye?"":ye.short,Ge.appendChild(it),Ge.addEventListener("click",()=>{J=yt,Se(),C(!0)}),T.appendChild(Ge)}}function je(){Fe(()=>{const xe=t.getState(),Ce=ho(xe);G(xe),Ze(xe,Ce),Ue(xe,Ce);const ke=Ce[J]??null,Qe=kn(l,ke?.type??"none");I.hidden=Ce.length>0,B.textContent=ke?s.selection(J+1,J+2):s.selectionEmpty,k.disabled=!ke||Qe.key==="none",X.disabled=!ke,se.disabled=Ce.length===0,y.disabled=Ce.length===0,k.value=String(ke&&Qe.key!=="none"?ke.duration:vo("fade").duration),K.textContent=ke&&Qe.key!=="none"?pn(ke.duration):s.cut,Q.forEach(nt=>{const vt=!!ke&&nt.dataset.transition===Qe.key;nt.classList.toggle("is-active",vt),nt.disabled=!ke}),O(),Re(),ce()})}function ct(){Fe(()=>{const xe=e.querySelector(".me-video-toolrail");xe&&(q=xe,(!ee||!ee.isConnected)&&(ee=document.createElement("button"),ee.type="button",ee.className="me-video-text-tool",ee.innerHTML=`<span class="me-video-text-tool-icon">Fx</span><span class="me-video-text-tool-label">${s.tool}</span>`,ee.addEventListener("click",()=>{const Ce=!W;Ce&&Se(),C(Ce)})),ee.isConnected||q.appendChild(ee),ce(),Re())})}function ot(xe){return!!xe&&(xe===m||m.contains(xe)||xe===ee||xe===T||T?.contains(xe))}function Te(xe){return xe.some(Ce=>{if(!ot(Ce.target))return!0;for(const ke of Ce.addedNodes)if(!ot(ke))return!0;for(const ke of Ce.removedNodes)if(!ot(ke))return!0;return!1})}const rt=new MutationObserver(xe=>{he||e.__meVideoEnhancerObserverLock||Te(xe)&&(ct(),R())}),ht=xe=>{xe?.detail?.id!==He&&W&&(W=!1,je())};rt.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",ht),window.addEventListener("resize",R);const Et=t.subscribe(()=>{R()});return Q.forEach(xe=>{xe.addEventListener("click",()=>{le(xe.dataset.transition??"none")})}),k.addEventListener("input",()=>{K.textContent=pn(k.value),_({duration:Number(k.value)||.4},!0)}),k.addEventListener("change",()=>{_({duration:Number(k.value)||.4})}),y.addEventListener("click",()=>Xe("fade")),X.addEventListener("click",()=>le("none")),se.addEventListener("click",()=>Xe("none")),S.addEventListener("click",()=>{C(!1)}),ct(),je(),{destroy(){rt.disconnect(),Et(),Ee?.disconnect(),e.removeEventListener("me-video-inspector-open",ht),window.removeEventListener("resize",R),ee?.remove(),T?.remove(),m.remove(),It(e)}}}function sa(e,t,n){sn();const o=Ni(n()),l=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 m=document.createElement("div");m.className="me-video-text-toolbar";const x=document.createElement("strong");x.textContent=o.title;const h=jt(o.reset);m.append(x,h);const y=document.createElement("p");y.className="me-video-text-hint",y.textContent=o.hint;const S=document.createElement("div");S.className="me-video-add-body";const U=document.createElement("section");U.className="me-video-add-section";const w=document.createElement("div");w.className="me-video-add-section-head";const I=document.createElement("span");I.className="me-video-add-section-title",I.textContent=o.tools,w.appendChild(I);const B=document.createElement("div");B.className="me-video-add-tool-grid";const ne=document.createElement("section");ne.className="me-video-add-section";const Q=document.createElement("div");Q.className="me-video-add-section-head";const k=document.createElement("span");k.className="me-video-add-section-title",k.textContent=o.color,Q.appendChild(k);const $=document.createElement("div");$.className="me-video-add-color-grid";const K=document.createElement("div");K.className="me-video-add-custom-color";const V=document.createElement("div");V.className="me-video-add-custom-head";const Z=document.createElement("div");Z.className="me-video-add-custom-preview";const X=document.createElement("span");X.className="me-video-add-custom-label",X.textContent=o.custom,V.append(Z,X);const se=document.createElement("div");se.className="me-video-add-spectrum";const ee=document.createElement("span");ee.className="me-video-add-spectrum-thumb",se.appendChild(ee);const q=document.createElement("div");q.className="me-video-add-hue-row";const Y=document.createElement("div");Y.className="me-video-add-custom-preview";const T=document.createElement("input");T.type="range",T.min="0",T.max="360",T.step="1",T.className="me-video-add-hue-slider",q.append(Y,T);const D=document.createElement("div");D.className="me-video-add-rgb-grid";const W={};["r","g","b"].forEach(r=>{const a=document.createElement("label");a.className="me-video-add-rgb-field";const d=document.createElement("input");d.type="number",d.min="0",d.max="255",d.step="1",d.inputMode="numeric",d.className="me-video-add-rgb-input";const v=document.createElement("span");v.className="me-video-add-rgb-label",v.textContent=r.toUpperCase(),a.append(d,v),D.appendChild(a),W[r]=d}),K.append(V,se,q,D);const J=document.createElement("section");J.className="me-video-add-section";const ve=document.createElement("div");ve.className="me-video-add-section-head";const he=document.createElement("span");he.className="me-video-add-section-title",he.textContent=o.width;const He=document.createElement("span");He.className="me-video-add-section-value",ve.append(he,He);const ue=document.createElement("input");ue.type="range",ue.min=String(Bn),ue.max=String(Dn),ue.step="1",ue.className="me-video-add-slider",U.append(w,B),ne.append(Q,$,K),J.append(ve,ue),S.append(U,ne,J),s.append(m,y,S);let Ee=null,We=null,Fe=null,R=null,C=null,$e=null,Se=null,ce=null,Re=null,O=!1,G=!1,H=null,_=Jn(),le=null,Xe=null,Le=null,Ze=0,Ue=0;const je="add",ct=[{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}],ot={key:"rotate",x:.5,y:0},Te=typeof ResizeObserver=="function"?new ResizeObserver(()=>{bt()}):null,rt=typeof ResizeObserver=="function"?new ResizeObserver(()=>{bt()}):null,ht=vr.map(r=>{const a=document.createElement("button");return a.type="button",a.className="me-video-add-tool-card",a.dataset.tool=r.key,a.innerHTML=`<span class="me-video-add-tool-icon">${Oi(r.key)}</span><span class="me-video-add-tool-label">${o[r.key]}</span>`,a.addEventListener("click",()=>{wt({tool:r.key})}),B.appendChild(a),a}),Et=hr.map(r=>{const a=document.createElement("button");return a.type="button",a.className="me-video-add-color-chip",a.dataset.color=r,a.dataset.tone=r==="#ffffff"?"light":"dark",a.style.background=r,a.title=r,a.setAttribute("aria-label",r),a.addEventListener("click",()=>{wt({color:r})}),$.appendChild(a),a});function xe(r,a,d){Le?.();const v=r==="mouse"?["mousemove"]:["pointermove"],M=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],z=E=>{a(E)},F=E=>{v.forEach(P=>window.removeEventListener(P,z)),M.forEach(P=>window.removeEventListener(P,F)),Le=null,d(E)};Le=()=>{v.forEach(E=>window.removeEventListener(E,z)),M.forEach(E=>window.removeEventListener(E,F))},v.forEach(E=>window.addEventListener(E,z)),M.forEach(E=>window.addEventListener(E,F))}function Ce(r,a){const d=se.getBoundingClientRect();if(!(d.width>0&&d.height>0))return;const v=re((r-d.left)/d.width,0,1),M=1-re((a-d.top)/d.height,0,1),z=Qn(_.color),F=Ao(z.r,z.g,z.b),E=Oo(F.h,v,M);wt({color:eo(E.r,E.g,E.b)})}function ke(r){const a=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),d=r.type==="mousedown"?"mouse":"pointer";if(d==="mouse"){if(a<Ue)return}else Ue=a+80;r.preventDefault(),r.stopPropagation(),Ce(r.clientX,r.clientY),xe(d,v=>{v.preventDefault(),Ce(v.clientX,v.clientY)},()=>{})}function Qe(r){const a=Qn(_.color),d=Ao(a.r,a.g,a.b),v=Oo(re(Number(r)||0,0,360),d.s,d.v);wt({color:eo(v.r,v.g,v.b)})}function nt(r,a){const d=Qn(_.color),v={r:d.r,g:d.g,b:d.b};Number.isFinite(Number(a))&&(v[r]=re(Number(a),0,255)),wt({color:eo(v.r,v.g,v.b)})}function vt(){return(t.getState().overlays??[]).map((r,a)=>({overlay:r,index:a})).filter(r=>Qt(r.overlay))}function yt(){const r=t.getState().overlays??[];if(H==null)return null;const a=r[H];return Qt(a)?a:null}function ie(){const r=yt();if(!r)return!1;const a=Jn({tool:_.tool,color:r.color,width:r.width});return No(_,a)?!1:(_=a,!0)}function ye(r,a,d={}){if(!yt()||H==null)return;const M={};Object.prototype.hasOwnProperty.call(a,"color")&&(M.color=r.color),Object.prototype.hasOwnProperty.call(a,"width")&&(M.width=r.width),Object.keys(M).length&&t.updateOverlay(H,M,d)}function Ye(){return Ln(t)}function Ge(){return gn(e)}function it(r,a,d={}){const M=(t.getState().overlays??[])[r];Qt(M)&&t.updateOverlay(r,Zt(M,Ye(),a),d)}function Lt(r){const a=t.getState().overlays??[],d=a.length;if(typeof t.applyMut=="function")return t.applyMut(M=>({...M,overlays:[...en(M.overlays),{...r,timelineTrack:0}]})),d;const v=en(a);return t.commit?.({overlays:[...v,{...r,timelineTrack:0}]}),d}function Tt(r){const a=Ye();let d=re(Ge(),0,Math.max(0,a-_e)),v=Math.min(a,d+Vt);v-d<_e&&(d=re(a-Vt,0,Math.max(0,a-_e)),v=Math.max(d+_e,a));const M={...r,...Zt(null,a,{startAt:d,endAt:v,timelineTrack:0})},z=Lt(M);H=Number.isInteger(z)?z:null,gt(e,"text",H==null?[]:[H]),g(),p(!0)}function Rt(){const{timelineInner:r,timelineHost:a}=Rn(e,t.getState());if(!r||!a){ce?.remove(),ce=null,Te&&Re&&(Te.unobserve(Re),Re=null),Se=null;return}Se=r,(!ce||!ce.isConnected||ce.parentElement!==a)&&(ce?.remove(),ce=document.createElement("div"),ce.className="me-video-text-timeline me-video-overlay-timeline me-video-add-overlay-layer");for(const d of[...a.children])d!==ce&&d instanceof HTMLElement&&d.classList.contains("me-video-add-overlay-layer")&&d.remove();(ce.parentElement!==a||a.lastElementChild!==ce)&&a.appendChild(ce),Te&&Re!==Se&&(Re&&Te.unobserve(Re),Re=Se,Te.observe(Se))}function dt(r,a,d){if(!Se)return;const v=(t.getState().overlays??[])[r];if(!Qt(v))return;if(d.shiftKey||d.ctrlKey||d.metaKey){d.preventDefault(),d.stopPropagation();const fe=Pt(e,"text",r,d,go(t.getState()).map(pe=>pe.index));H=fe.length?fe[fe.length-1]:null,g(),p(!0);return}d.preventDefault(),d.stopPropagation(),H=r,gt(e,"text",[r]),g(),O||p(!0);const M=Ye(),z=Math.max(Se.clientWidth/M,.001),F=at(v),E=$t(v,F),P=Math.max(_e,E-F),te=ft(v),oe=d.clientX,Be=fe=>{const pe=(fe.clientX-oe)/z,De=t.getState().overlays??[];if(a==="move"){const st=Math.max(0,F+pe),St=st+P,Kt=mt(ce,De,r,st,St,fe.clientY,te);it(r,{startAt:st,endAt:St,timelineTrack:Kt},{transient:!0});return}if(a==="start"){const st=re(F+pe,0,E-_e),St=mt(ce,De,r,st,E,fe.clientY,te);it(r,{startAt:st,endAt:E,timelineTrack:St},{transient:!0});return}const et=Math.max(F+_e,E+pe),tt=mt(ce,De,r,F,et,fe.clientY,te);it(r,{startAt:F,endAt:et,timelineTrack:tt},{transient:!0})},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge);const pe=(fe.clientX-oe)/z,De=t.getState().overlays??[];if(a==="move"){const st=Math.max(0,F+pe),St=st+P,Kt=mt(ce,De,r,st,St,fe.clientY,te);it(r,{startAt:st,endAt:St,timelineTrack:Kt});return}if(a==="start"){const st=re(F+pe,0,E-_e),St=mt(ce,De,r,st,E,fe.clientY,te);it(r,{startAt:st,endAt:E,timelineTrack:St});return}const et=Math.max(F+_e,E+pe),tt=mt(ce,De,r,F,et,fe.clientY,te);it(r,{startAt:F,endAt:et,timelineTrack:tt})};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge),At()}function Ht(r,a){if(Rt(),!ce||!Se||(ce.replaceChildren(),ce.hidden=r.length===0,!r.length))return;const d=Ye(),v=Se.clientWidth/d,M=Hn(t.getState()),z=new Map;for(const F of r){const E=ft(F.overlay),P=M.get(E)??E;let te=z.get(E);te||(te=document.createElement("div"),te.className="me-video-overlay-track-row",te.dataset.track=String(E),te.style.top=`${Sn(P)}px`,z.set(E,te),ce.appendChild(te));const oe=document.createElement("div");oe.className="me-video-text-track-clip me-video-add-track-clip",a.has(F.index)&&oe.classList.add("is-active");const Be=at(F.overlay),ge=En(F.overlay);oe.style.left=`${Be*v}px`,oe.style.width=`${Math.max(36,ge*v)}px`;const fe=document.createElement("span");fe.className="me-video-text-track-icon",fe.textContent="+";const pe=document.createElement("span");pe.className="me-video-text-track-label",pe.textContent=xr(F.overlay,o),pe.title=pe.textContent;const De=document.createElement("span");De.className="me-video-text-track-handle is-start";const et=document.createElement("span");et.className="me-video-text-track-handle is-end",oe.append(fe,pe,De,et),oe.addEventListener("pointerdown",tt=>dt(F.index,"move",tt)),De.addEventListener("pointerdown",tt=>dt(F.index,"start",tt)),et.addEventListener("pointerdown",tt=>dt(F.index,"end",tt)),oe.addEventListener("click",tt=>{if(tt.preventDefault(),tt.stopPropagation(),tt.shiftKey||tt.ctrlKey||tt.metaKey){g(),At();return}const st=Pt(e,"text",F.index,tt,r.map(St=>St.index));H=st.length?st[st.length-1]:null,g(),p(!0),At()}),te.appendChild(oe)}}function bt(){G||(G=!0,l(()=>{G=!1,At()}))}function Ft(){ht.forEach(d=>{d.classList.toggle("is-active",d.dataset.tool===_.tool)}),Et.forEach(d=>{d.classList.toggle("is-active",d.dataset.color===_.color)});const r=Qn(_.color),a=Ao(r.r,r.g,r.b);K.classList.toggle("is-active",!hr.includes(_.color)),K.style.setProperty("--me-add-color-current",_.color),K.style.setProperty("--me-add-color-hue",Ii(a.h)),Z.style.background=_.color,Y.style.background=_.color,ee.style.left=`${a.s*100}%`,ee.style.top=`${(1-a.v)*100}%`,T.value=String(Math.round(a.h)),W.r.value=String(r.r),W.g.value=String(r.g),W.b.value=String(r.b),ue.value=String(re(Math.round(Number(_.width)||cn.width),Bn,Dn)),He.textContent=Pi(_.width),h.disabled=br(_)}function wt(r,a={}){const d=Jn({..._,...r});if(No(_,d)){a.applyToSelected&&ye(d,r,a.overlayOptions);return}_=d,a.applyToSelected!==!1&&ye(d,r,a.overlayOptions),Ft(),bt()}function Mt(){if(br(_)){Ft();return}_=Jn(),Ft(),bt()}function ut(r=We){return r?[...r.children].filter(a=>a instanceof HTMLButtonElement&&a!==Ee&&!a.classList.contains("me-video-text-tool")):[]}function Wt(){Ee?.classList.toggle("is-active",O)}function g(){Fe&&(Fe.classList.contains("is-active")||Fe.click())}function N(){tn(e,s),It(e)}function j(){le=null}function we(){Xe?.(),Xe=null,j()}function Oe(){s.hidden=!O,Wt(),N()}function p(r){const a=!!r;if(a===O){At();return}O=a,O?(e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:je}})),g()):(we(),Le?.(),Le=null),At()}function b(){const r=e.querySelector(".me-video-toolrail");r&&(We=r,Fe=to(ut(r)),(!Ee||!Ee.isConnected)&&(Ee=document.createElement("button"),Ee.type="button",Ee.className="me-video-text-tool me-video-add-tool",Ee.innerHTML=`<span class="me-video-text-tool-icon">${zi()}</span><span class="me-video-text-tool-label">${o.tool}</span>`,Ee.title=o.tool,Ee.setAttribute("aria-label",o.tool),Ee.addEventListener("click",()=>{const a=!O;a&&g(),p(a)})),Ee.isConnected?Ee.parentElement===We&&Ee!==We.lastElementChild&&We.appendChild(Ee):We.appendChild(Ee),Oe())}function A(){const r=e.querySelector(".me-video-canvas-stage");if(!r){C?.remove(),C=null,rt&&$e&&(rt.unobserve($e),$e=null),R=null;return}R=r,R.style.position="relative",!C||!C.isConnected||C.parentElement!==R?(C?.remove(),C=document.createElement("div"),C.className="me-video-add-canvas-layer",C.addEventListener("pointerdown",Jt),C.addEventListener("mousedown",Jt),C.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation()}),R.appendChild(C)):R.lastElementChild!==C&&R.appendChild(C),rt&&$e!==R&&($e&&rt.unobserve($e),$e=R,rt.observe(R)),C.hidden=!O,C.dataset.tool=_.tool}function ae(){if(!R)return null;const r=t.getState().canvas??{},a=Math.max(1,Number(r.w)||0),d=Math.max(1,Number(r.h)||0);if(!a||!d)return null;const v=R.getBoundingClientRect(),M=R.querySelector("canvas, video, img")||[...R.children].find(te=>te!==C)||null;let z=0,F=0,E=R.clientWidth||a,P=R.clientHeight||d;if(M instanceof HTMLElement){const te=M.getBoundingClientRect();te.width>0&&te.height>0&&(z=te.left-v.left,F=te.top-v.top,E=te.width,P=te.height)}if(!(E>0&&P>0)){const te=R.clientWidth||a,oe=R.clientHeight||d,Be=Math.min(te/a,oe/d)||1;E=a*Be,P=d*Be,z=Math.max(0,(te-E)/2),F=Math.max(0,(oe-P)/2)}return{stageLeft:v.left,stageTop:v.top,left:z,top:F,width:E,height:P,canvasWidth:a,canvasHeight:d,scaleX:E/a,scaleY:P/d}}function de(r,a,d){return{x:re((r-d.stageLeft-d.left)/d.scaleX,0,d.canvasWidth),y:re((a-d.stageTop-d.top)/d.scaleY,0,d.canvasHeight)}}function me(r,a,d){return Number.isFinite(r?.clientX)&&Number.isFinite(r?.clientY)?de(r.clientX,r.clientY,a):d}function ze(r,a){return{x:Math.min(r.x,a.x),y:Math.min(r.y,a.y),w:Math.abs(a.x-r.x),h:Math.abs(a.y-r.y)}}function be(r,a){const d=at(r),v=$t(r,d);return a>=d-.001&&a<=v+.001}function Pe(r,a,d){const v=Pt(e,"text",r,a,d);H=v.length?v[v.length-1]:null,p(!0),At()}function Me(r,a,d,v,M){const z=Math.atan2(v-a,d-r),F=Math.max(12,M*3.5),E=d-F*Math.cos(z-Math.PI/7),P=v-F*Math.sin(z-Math.PI/7),te=d-F*Math.cos(z+Math.PI/7),oe=v-F*Math.sin(z+Math.PI/7);return`M ${E} ${P} L ${d} ${v} L ${te} ${oe}`}function Ie(r){if(!Array.isArray(r)||r.length<4)return"";let a=`M ${r[0]} ${r[1]}`;for(let d=2;d<r.length;d+=2)a+=` L ${r[d]} ${r[d+1]}`;return a}function Je(r){const a=document.createElementNS("http://www.w3.org/2000/svg","svg");return a.classList.add("me-video-add-preview-svg"),a.setAttribute("viewBox",`0 0 ${r.canvasWidth} ${r.canvasHeight}`),a.setAttribute("width",String(r.width)),a.setAttribute("height",String(r.height)),a.style.left=`${r.left}px`,a.style.top=`${r.top}px`,a.style.width=`${r.width}px`,a.style.height=`${r.height}px`,a}function Ae(r,a,d){const v=document.createElementNS("http://www.w3.org/2000/svg",r);return v.classList.add("me-video-add-preview-shape"),v.setAttribute("stroke",a),v.setAttribute("stroke-width",String(d)),v}function Ne(r){if(!le)return null;const a=Je(r);if(le.type==="pen"){const d=Ie(le.points);if(!d)return a;const v=Ae("path",le.color,le.width);return v.setAttribute("d",d),a.appendChild(v),a}if(le.type==="line"||le.type==="arrow"){const d=Ae("line",le.color,le.width);if(d.setAttribute("x1",String(le.x1)),d.setAttribute("y1",String(le.y1)),d.setAttribute("x2",String(le.x2)),d.setAttribute("y2",String(le.y2)),a.appendChild(d),le.type==="arrow"){const v=Ae("path",le.color,le.width);v.setAttribute("d",Me(le.x1,le.y1,le.x2,le.y2,le.width)),a.appendChild(v)}return a}if(le.type==="rect"){const d=Ae("rect",le.color,le.width);return d.setAttribute("x",String(le.x)),d.setAttribute("y",String(le.y)),d.setAttribute("width",String(le.w)),d.setAttribute("height",String(le.h)),a.appendChild(d),a}if(le.type==="ellipse"){const d=Ae("ellipse",le.color,le.width);return d.setAttribute("cx",String(le.x+le.w/2)),d.setAttribute("cy",String(le.y+le.h/2)),d.setAttribute("rx",String(Math.abs(le.w/2))),d.setAttribute("ry",String(Math.abs(le.h/2))),a.appendChild(d),a}return a}function Ke(){if(A(),!C)return;const r=ae();if(C.hidden=!O||!r,!O||!r){C.replaceChildren();return}C.dataset.tool=_.tool,C.replaceChildren();const a=Ne(r);a&&C.appendChild(a);const d=go(t.getState()),v=new Set(dr(e,t.getState())),M=Ge(),z=d.map(P=>P.index),F=d.filter(P=>be(P.overlay,M)),E=_.tool==="eraser"?[]:v.size?F.filter(P=>v.has(P.index)):F;for(const P of E){const te=Ut(P.overlay);if(!te)continue;const oe=document.createElement("button");oe.type="button",oe.className="me-video-text-canvas-hit";const Be=v.has(P.index),ge=Be&&H===P.index;Be&&oe.classList.add("is-active"),oe.title=xr(P.overlay,o),oe.style.left=`${r.left+te.x*r.scaleX}px`,oe.style.top=`${r.top+te.y*r.scaleY}px`,oe.style.width=`${Math.max(18,te.w*r.scaleX)}px`,oe.style.height=`${Math.max(18,te.h*r.scaleY)}px`;const fe=mn(P.overlay);if(fe&&(oe.style.transform=`rotate(${fe}deg)`,oe.style.transformOrigin="center center"),oe.addEventListener("pointerdown",pe=>{if(pe.preventDefault(),pe.stopPropagation(),pe.shiftKey||pe.ctrlKey||pe.metaKey){Pe(P.index,pe,z);return}H=P.index,gt(e,"text",[P.index]),p(!0),lt(P.index,pe,r)}),ge){for(const De of ct){const et=document.createElement("span");et.className="me-video-text-canvas-handle",et.dataset.handle=De.key,et.style.left=`${De.x*100}%`,et.style.top=`${De.y*100}%`,et.addEventListener("pointerdown",tt=>{tt.preventDefault(),tt.stopPropagation(),H=P.index,gt(e,"text",[P.index]),p(!0),pt(P.index,De,tt,r)}),oe.appendChild(et)}const pe=document.createElement("span");pe.className="me-video-text-canvas-handle",pe.dataset.handle=ot.key,pe.style.left=`${ot.x*100}%`,pe.style.top=`${ot.y*100}%`,pe.addEventListener("pointerdown",De=>{De.preventDefault(),De.stopPropagation(),H=P.index,gt(e,"text",[P.index]),p(!0),qe(P.index,De,r)}),oe.appendChild(pe)}C.appendChild(oe)}}function lt(r,a,d){const v=(t.getState().overlays??[])[r];if(!Qt(v))return;const M=t.getState().canvas??{w:1080,h:1920},z=Ut(v);if(!z)return;const F=a.clientX,E=a.clientY,P=Math.max(0,(Number(M.w)||0)-z.w),te=Math.max(0,(Number(M.h)||0)-z.h),oe=(fe,pe,De)=>{const et=(fe-F)/d.scaleX,tt=(pe-E)/d.scaleY,st=re(z.x+et,0,P),St=re(z.y+tt,0,te),Kt=jo(v,st-z.x,St-z.y);t.updateOverlay(r,Kt,De?{transient:!0}:void 0)},Be=fe=>{fe.preventDefault(),oe(fe.clientX,fe.clientY,!0)},ge=fe=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge),oe(fe.clientX,fe.clientY,!1)};window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge)}function pt(r,a,d,v){const M=(t.getState().overlays??[])[r];if(!Qt(M))return;const z=Ut(M);if(!z)return;const F=t.getState().canvas??{w:1080,h:1920},E=a.x===.5?.5:1-a.x,P=a.y===.5?.5:1-a.y,te=z.x+z.w*E,oe=z.y+z.h*P,Be=Math.max(.1,24/Math.max(24,z.w),24/Math.max(24,z.h)),ge=a.x===.5?1/0:Math.max(.1,(E===0?(Number(F.w)||0)-te:te)/Math.max(1,z.w)),fe=a.y===.5?1/0:Math.max(.1,(P===0?(Number(F.h)||0)-oe:oe)/Math.max(1,z.h)),pe=Math.max(Be,Math.min(ge,fe,8)),De=(st,St,Kt)=>{const dn=de(st,St,v),un=[];a.x!==.5&&un.push(Math.abs(dn.x-te)/Math.max(1,z.w)),a.y!==.5&&un.push(Math.abs(dn.y-oe)/Math.max(1,z.h));const an=un.length?Math.max(...un):1,uo=re(an,Be,pe),Yn=_o(M,uo),Pn=Ut(Yn);if(!Pn)return;const Ir=te-Pn.w*E,Hr=oe-Pn.h*P,Rr=jo(Yn,Ir-Pn.x,Hr-Pn.y);t.updateOverlay(r,Rr,Kt?{transient:!0}:void 0)},et=st=>{st.preventDefault(),De(st.clientX,st.clientY,!0)},tt=st=>{window.removeEventListener("pointermove",et),window.removeEventListener("pointerup",tt),window.removeEventListener("pointercancel",tt),De(st.clientX,st.clientY,!1)};window.addEventListener("pointermove",et),window.addEventListener("pointerup",tt),window.addEventListener("pointercancel",tt)}function qe(r,a,d){const v=(t.getState().overlays??[])[r];if(!Qt(v))return;const M=Ut(v);if(!M)return;const z=d.stageLeft+d.left+(M.x+M.w/2)*d.scaleX,F=d.stageTop+d.top+(M.y+M.h/2)*d.scaleY,E=Math.atan2(a.clientY-F,a.clientX-z),P=mn(v),te=(ge,fe,pe,De)=>{const et=Math.atan2(fe-F,ge-z);let tt=In(P+(et-E)*180/Math.PI);De&&(tt=Math.round(tt/15)*15),t.updateOverlay(r,{rotation:tt},pe?{transient:!0}:void 0)},oe=ge=>{ge.preventDefault(),te(ge.clientX,ge.clientY,!0,ge.shiftKey)},Be=ge=>{window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",Be),window.removeEventListener("pointercancel",Be),te(ge.clientX,ge.clientY,!1,ge.shiftKey)};window.addEventListener("pointermove",oe),window.addEventListener("pointerup",Be),window.addEventListener("pointercancel",Be)}function Ve(r,a,d,v,M,z,F){const E=M-d,P=z-v,te=E*E+P*P||1,oe=re(((r-d)*E+(a-v)*P)/te,0,1),Be=d+oe*E,ge=v+oe*P;return(r-Be)**2+(a-ge)**2<=F*F}function xt(r,a,d){if(!r)return!1;if(r.type==="pen"){for(let v=0;v+3<r.points.length;v+=2)if(Ve(a,d,r.points[v],r.points[v+1],r.points[v+2],r.points[v+3],Mn+(Number(r.width)||0)/2))return!0;return!1}return r.type==="line"||r.type==="arrow"?Ve(a,d,r.x1,r.y1,r.x2,r.y2,Mn+(Number(r.width)||0)/2):r.type==="rect"||r.type==="ellipse"?a>=r.x-Mn&&a<=r.x+r.w+Mn&&d>=r.y-Mn&&d<=r.y+r.h+Mn:!1}function Ot(r){const a=vt();for(let d=a.length-1;d>=0;d--)if(xt(a[d].overlay,r.x,r.y)){t.removeOverlay(a[d].index),bt();return}}function Bt(r,a,d){Ot(r),Nt(d,v=>{v.preventDefault(),Ot(de(v.clientX,v.clientY,a))},()=>{})}function Nt(r,a,d){we();const v=r==="mouse"?["mousemove"]:["pointermove"],M=r==="mouse"?["mouseup"]:["pointerup","pointercancel"],z=E=>{a(E)},F=E=>{v.forEach(P=>window.removeEventListener(P,z)),M.forEach(P=>window.removeEventListener(P,F)),Xe=null,d(E)};Xe=()=>{v.forEach(E=>window.removeEventListener(E,z)),M.forEach(E=>window.removeEventListener(E,F))},v.forEach(E=>window.addEventListener(E,z)),M.forEach(E=>window.addEventListener(E,F))}function nn(r,a,d){const v=[r.x,r.y],M=z=>{const F=v[v.length-2],E=v[v.length-1];Math.hypot(z.x-F,z.y-E)<1||v.push(z.x,z.y)};le={type:"pen",points:[...v],color:_.color,width:_.width},Ke(),Nt(d,z=>{z.preventDefault();const F=de(z.clientX,z.clientY,a);M(F),le={type:"pen",points:[...v],color:_.color,width:_.width},Ke()},z=>{const F=me(z,a,{x:v[v.length-2],y:v[v.length-1]});M(F);const E=[...v];j(),Ke(),!(E.length<4)&&(Tt({type:"pen",points:E,color:_.color,width:_.width,rotation:0}),bt())})}function on(r,a,d,v){const M=Ai[r];if(!M)return;const z=F=>{if(M==="line"||M==="arrow")return{type:M,x1:a.x,y1:a.y,x2:F.x,y2:F.y,color:_.color,width:_.width};const E=ze(a,F);return{type:M,x:E.x,y:E.y,w:E.w,h:E.h,color:_.color,width:_.width}};le=z(a),Ke(),Nt(v,F=>{F.preventDefault();const E=de(F.clientX,F.clientY,d);le=z(E),Ke()},F=>{const E=me(F,d,a),P=z(E);j(),Ke(),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)||Tt({...P,rotation:0}))})}function Jt(r){if(!O)return;const a=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),d=r.type==="mousedown"?"mouse":"pointer";if(d==="mouse"){if(a<Ze)return}else Ze=a+80;if(typeof r.button=="number"&&r.button!==0)return;r.preventDefault(),r.stopPropagation();const v=ae();if(!v)return;const M=de(r.clientX,r.clientY,v);if(_.tool==="eraser"){Bt(M,v,d);return}if(_.tool==="brush"){nn(M,v,d);return}on(_.tool,M,v,d)}function At(){const r=dr(e,t.getState());H=r.length?r[r.length-1]:null,ie(),ut().find(d=>d!==Fe&&!d.hidden&&d.style.display!=="none"&&d.classList.contains("is-active"))&&(O=!1,we()),O&&g(),Ft(),Oe(),Ke(),Ht(go(t.getState()),new Set(r)),N()}function rn(r){return!!r&&(r===s||s.contains(r)||r===Ee||Ee?.contains?.(r)||r===ce||ce?.contains?.(r)||r===C||C?.contains?.(r))}function u(r){return r.some(a=>{if(!rn(a.target))return!0;for(const d of a.addedNodes)if(!rn(d))return!0;for(const d of a.removedNodes)if(!rn(d))return!0;return!1})}const L=new MutationObserver(r=>{u(r)&&(b(),bt())}),i=r=>{r?.detail?.id!==je&&O&&p(!1)},c=()=>{bt()};L.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",i),e.addEventListener(zt,c),window.addEventListener("resize",bt);const f=t.subscribe(()=>{bt()});return h.addEventListener("click",()=>{Mt()}),se.addEventListener("pointerdown",ke),se.addEventListener("mousedown",ke),T.addEventListener("input",()=>{Qe(T.value)}),Object.entries(W).forEach(([r,a])=>{a.addEventListener("input",()=>{nt(r,a.value)})}),ue.addEventListener("input",()=>{wt({width:re(Number(ue.value)||cn.width,Bn,Dn)})}),b(),At(),{destroy(){L.disconnect(),f(),we(),Le?.(),Le=null,Te&&Re&&Te.unobserve(Re),Te?.disconnect?.(),rt&&$e&&rt.unobserve($e),rt?.disconnect?.(),e.removeEventListener("me-video-inspector-open",i),e.removeEventListener(zt,c),window.removeEventListener("resize",bt),Ee?.remove(),ce?.remove(),C?.remove(),s.remove(),It(e)}}}function la(e,t,n){sn();const o=Xr(n()),l=document.createElement("div");l.className="me-video-text-panel me-video-audio-panel",l.hidden=!0;const s=document.createElement("div");s.className="me-video-text-toolbar";const m=document.createElement("strong");m.textContent=o.title;const x=jt(o.close);s.append(m,x);const h=document.createElement("div");h.className="me-video-audio-source";const y=document.createElement("div");y.className="me-video-text-grid";function S(H=""){const _=document.createElement("input");return _.type="text",_.readOnly=!0,_.className=["me-video-audio-value",H].filter(Boolean).join(" "),_}function U(H,_,le){const Xe=document.createElement("div");return Xe.className="me-video-text-inline",Xe.append(_,le),Zn(H,Xe)}const w=document.createElement("input");w.type="range",w.min="50",w.max="200",w.step="1",w.disabled=!1,w.value="100",w.title=o.speedHint;const I=S("is-compact is-readonly");I.readOnly=!1,I.classList.remove("is-readonly"),I.inputMode="decimal",I.title=o.speedHint;const B=U(o.speed,w,I),ne=document.createElement("input");ne.type="range",ne.min=String(Xt),ne.max="1",ne.step="0.01",ne.disabled=!1,ne.value="1";const Q=S("is-readonly");Q.readOnly=!1,Q.classList.remove("is-readonly"),Q.inputMode="decimal";const k=U(o.duration,ne,Q),$=document.createElement("input");$.type="range",$.min="0",$.max="2",$.step="0.01";const K=S(),V=U(o.volume,$,K),Z=document.createElement("input");Z.type="range",Z.min="0",Z.max="0.1",Z.step="0.05";const X=S(),se=U(o.fadeIn,Z,X),ee=document.createElement("input");ee.type="range",ee.min="0",ee.max="0.1",ee.step="0.05";const q=S(),Y=U(o.fadeOut,ee,q);y.append(B,k,V,se,Y),l.append(s,h,y);let T=null,D=!1,W=!1;const J="audio",ve=typeof requestAnimationFrame=="function"?requestAnimationFrame:H=>setTimeout(H,16);function he(H){const _=Math.max(0,Number(H)||0);return _<=1e-4?"-\u221EdB":`${(20*Math.log10(_)).toFixed(1)}dB`}function He(){const H=e.querySelector(".me-video-trim-panel");if(H instanceof HTMLElement)for(const _ of[...H.children].slice(2))_ instanceof HTMLElement&&_.querySelector('input[type="range"]')&&/♪/.test(_.textContent??"")&&(_.style.display="none")}function ue(){l.hidden=!D,tn(e,l),Tr(e,l,D),It(e)}function Ee(H){const _=!!H;if(_===D){ue();return}D=_,D&&e.dispatchEvent(new CustomEvent("me-video-inspector-open",{detail:{id:J}})),ue()}function We(){fn(e,{audio:[]},{audio:null})}function Fe(H,_,le,Xe){let Le=re(Number(_)||0,0,H),Ze=re(Number(le)||0,0,H);return Le+Ze<=H?{fadeIn:Le,fadeOut:Ze}:(Xe==="fadeOut"?Le=Math.max(0,H-Ze):Ze=Math.max(0,H-Le),{fadeIn:Le,fadeOut:Ze})}function R(H){const _=t.getAudioSource?.(H?.srcIdx);return Math.max(Dt(H),Number(_?.duration)||0)}function C(H,_=!1,le="fadeIn"){const Xe=t.getState(),Le=Xe.audioClips??[];if(T==null||!Le[T])return;const Ze=Le[T],Ue=Dt({...Ze,...H}),je=Fe(Ue,H.fadeIn??Ze.fadeIn,H.fadeOut??Ze.fadeOut,le),ct=Te=>({...Te,...H,speed:xn(H.speed??Te.speed),volume:re(Number(H.volume??Te.volume)||0,0,2),fadeIn:je.fadeIn,fadeOut:je.fadeOut}),ot=typeof t.patchAudio=="function"?t.patchAudio(Xe,T,ct).audioClips??Le:Le.map((Te,rt)=>rt===T?ct(Te):Te);if(_){t.patch({audioClips:ot},{transient:!0});return}t.commit({audioClips:ot})}function $e(H,_=!1){const Xe=t.getState().audioClips??[];if(T==null||!Xe[T])return;const Le=Xe[T],Ze=R(Le),Ue=Math.max(0,Number(Le.in)||0),je=Math.max(Xt,Ze-Ue),ct=re(Number(H)||0,Xt,je);C({out:Ue+ct},_,"fadeIn")}function Se(){if(He(),!(e.querySelector(".me-video-trim-panel")instanceof HTMLElement)){D&&Ee(!1),T=null;return}const _=t.getState(),le=_.audioClips??[],Xe=Tn(e,le),Le=Fn(e,_.clips??[]),Ze=$n(e,_),Ue=Xe.length===1&&Le.length===0&&Ze.length===0?Xe[0]:null;if(T=Number.isInteger(Ue)&&le[Ue]?Ue:null,T==null){D&&Ee(!1);return}const je=le[T],ct=t.getAudioSource?.(je.srcIdx),ot=ct?.file?.name||ct?.name||`${o.source} ${T+1}`,Te=Dt(je),rt=Math.max(Te,Number(ct?.duration)||0),ht=Math.max(Te,Math.max(Xt,rt-Math.max(0,Number(je.in)||0))),Et=xn(je.speed),xe=re(Number(je.fadeIn)||0,0,Te),Ce=re(Number(je.fadeOut)||0,0,Math.max(0,Te-xe));h.textContent=`${o.source}: ${ot}`,w.value=String(Math.round(Et*100)),I.value=Ur(Et),ne.max=String(ht),ne.value=String(re(Te,Xt,ht)),Q.value=pn(Te),$.value=String(re(Number(je.volume)||0,0,2)),K.value=he(je.volume),Z.max=String(Math.max(.1,Te)),ee.max=String(Math.max(.1,Te)),Z.value=String(xe),ee.value=String(Ce),X.value=pn(xe),q.value=pn(Ce),Z.disabled=Te<=1e-4,ee.disabled=Te<=1e-4,Ee(!0)}function ce(){W||(W=!0,ve(()=>{W=!1,Se()}))}const Re=H=>{if(H?.detail?.id!==J){if(_t(e,"audio").length>0){We();return}D&&Ee(!1)}},O=new MutationObserver(()=>{ce()});O.observe(e,{childList:!0,subtree:!0}),e.addEventListener("me-video-inspector-open",Re),e.addEventListener(zt,ce);const G=t.subscribe(()=>{ce()});return x.addEventListener("click",()=>{We()}),w.addEventListener("input",()=>{C({speed:xn((Number(w.value)||100)/100)},!0,"fadeIn")}),w.addEventListener("change",()=>{C({speed:xn((Number(w.value)||100)/100)},!1,"fadeIn")}),I.addEventListener("change",()=>{const H=T==null?null:(t.getState().audioClips??[])[T]??null;C({speed:Gr(I.value,H?.speed??1)},!1,"fadeIn")}),I.addEventListener("keydown",H=>{H.key==="Enter"&&(H.preventDefault(),I.blur())}),ne.addEventListener("input",()=>{$e(Number(ne.value)||0,!0)}),ne.addEventListener("change",()=>{$e(Number(ne.value)||0,!1)}),Q.addEventListener("change",()=>{const H=T==null?null:(t.getState().audioClips??[])[T]??null;$e(Zr(Q.value,Dt(H)),!1)}),Q.addEventListener("keydown",H=>{H.key==="Enter"&&(H.preventDefault(),Q.blur())}),$.addEventListener("input",()=>{C({volume:Number($.value)||0},!0,"fadeIn")}),$.addEventListener("change",()=>{C({volume:Number($.value)||0},!1,"fadeIn")}),Z.addEventListener("input",()=>{C({fadeIn:Number(Z.value)||0},!0,"fadeIn")}),Z.addEventListener("change",()=>{C({fadeIn:Number(Z.value)||0},!1,"fadeIn")}),ee.addEventListener("input",()=>{C({fadeOut:Number(ee.value)||0},!0,"fadeOut")}),ee.addEventListener("change",()=>{C({fadeOut:Number(ee.value)||0},!1,"fadeOut")}),Se(),{destroy(){O.disconnect(),G(),e.removeEventListener("me-video-inspector-open",Re),e.removeEventListener(zt,ce),Tr(e,l,!1),l.remove(),It(e)}}}function ca(e,t){wn();let n=!1;const o=typeof requestAnimationFrame=="function"?requestAnimationFrame:k=>setTimeout(k,16);function l(k){return!!k.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 s(){n||(n=!0,o(()=>{n=!1,S()}))}function m(){const k=new Set(_t(e,"video"));for(const $ of e.querySelectorAll("[data-clipblock]")){const K=Number($.getAttribute("data-clipblock"));$.classList.toggle("me-video-multi-selected",Number.isInteger(K)&&k.has(K))}}function x(k=1/0){const $=e.querySelector(".me-video-timeline-scroll")?.firstElementChild;if(!($ instanceof HTMLElement))return[];const K=[];for(const V of $.querySelectorAll("span")){if(!String(V.textContent??"").trim().startsWith("\u266A"))continue;const X=V.parentElement;!(X instanceof HTMLElement)||K.includes(X)||K.push(X)}return Number.isFinite(k)?K.slice(0,Math.max(0,k)):K}function h(){const k=t.getState().audioClips??[],$=new Set(_t(e,"audio")),K=x(),V=K.slice(0,k.length);K.slice(k.length).forEach(Z=>{Z instanceof HTMLElement&&(Z.removeAttribute("data-audioclip"),Z.classList.remove("me-video-multi-selected"),Z.style.removeProperty("background"),Z.style.removeProperty("border"),Z.style.removeProperty("box-shadow"),Z.style.removeProperty("color"),Z.style.removeProperty("transform"),Z.style.removeProperty("opacity"))}),V.forEach((Z,X)=>{Z.dataset.audioclip=String(X);const se=$.has(X),ee=[...Z.children].filter(he=>he instanceof HTMLElement),q=ee.length>1?1:0,Y=ee[q]??null,T=ee.filter((he,He)=>He!==q),D=[...Z.querySelectorAll("span")],W=se?"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%)",J=se?"2px solid rgba(21,128,61,0.96)":"2px solid rgba(34,197,94,0.5)",ve="#166534";Z.classList.toggle("me-video-multi-selected",se),Z.style.boxShadow=se?"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)",Z.style.background=W,Z.style.border=J,Z.style.color=ve,Z.style.transform=se?"translateY(-1px)":"none",Z.style.opacity=se?"1":"0.98",Y instanceof HTMLElement&&(Y.style.background=W,Y.style.border=J,Y.style.color=ve,Y.style.boxShadow=se?"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)"),T.forEach(he=>{he.style.background=se?"rgba(21,128,61,0.92)":"rgba(34,197,94,0.72)",he.style.opacity="1"}),D.forEach((he,He)=>{he.style.color=He===0?ve:"rgba(22,101,52,0.9)",he.style.opacity="1"})})}function y(k,$,K,V){const Z=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")];if(Z.length<3)return;const X=k.clips??[],se=k.audioClips??[],ee=gn(e),q=$.length>0||K.length>0||V.length>0,Y=vi(X,$,ee)||xi(se,K,ee)||hi(k.overlays??[],V,ee),T=q,D=K.length>0||V.length>0||$.length>0&&$.length<X.length,W=[Y,T,D];Z.forEach((J,ve)=>{const he=W[ve];J.disabled=!he,J.style.opacity=he?"1":"0.5",ve===2?(J.style.color=he?"#dc2626":"var(--me-fg-muted, #9a9aa3)",J.style.background="",J.style.boxShadow=""):(J.style.color=he?"var(--me-fg, #ededf0)":"var(--me-fg-muted, #9a9aa3)",J.style.background="",J.style.boxShadow="")})}function S(){const k=t.getState();si(e,k);const $=Fn(e,k.clips??[]),K=Tn(e,k.audioClips??[]),V=$n(e,k);m(),h(),y(k,$,K,V)}function U(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-clipblock]");if(!$||!e.contains($))return;const K=Number($.getAttribute("data-clipblock"));if(!Number.isInteger(K))return;const V=(t.getState().clips??[]).map((Z,X)=>X);if(k.shiftKey||k.ctrlKey||k.metaKey){k.preventDefault(),k.stopPropagation(),Pt(e,"video",K,k,V),s();return}gt(e,"video",[K]),s()}function w(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-audioclip]");if(!$||!e.contains($))return;const K=Number($.getAttribute("data-audioclip"));if(!Number.isInteger(K))return;const V=(t.getState().audioClips??[]).map((Z,X)=>X);if(k.shiftKey||k.ctrlKey||k.metaKey){k.preventDefault(),k.stopPropagation(),Pt(e,"audio",K,k,V),s();return}gt(e,"audio",[K]),s()}function I(k){k.target instanceof Element&&e.contains(k.target)&&(l(k.target)||ai(e)&&(wo(e),s()))}function B(k){if(!(k.target instanceof Element))return;const $=k.target.closest("[data-clipblock]");if($&&e.contains($)&&(k.shiftKey||k.ctrlKey||k.metaKey)){k.preventDefault(),k.stopPropagation();return}const K=k.target.closest(".me-video-trim-actions .me-video-trim-action-btn");if(!K||!e.contains(K))return;const Z=[...e.querySelectorAll(".me-video-trim-actions .me-video-trim-action-btn")].indexOf(K);Z!==-1&&(k.preventDefault(),k.stopPropagation(),Z===0?yi(e,t):Z===1?bi(e,t):Z===2&&gi(e,t),s())}const ne=new MutationObserver(()=>{s()});ne.observe(e,{childList:!0,subtree:!0}),e.addEventListener("pointerdown",U,!0),e.addEventListener("pointerdown",w,!0),e.addEventListener("pointerdown",I,!0),e.addEventListener("click",B,!0),e.addEventListener(zt,s),window.addEventListener("resize",s);const Q=t.subscribe(()=>{s()});return S(),{destroy(){ne.disconnect(),Q(),e.removeEventListener("pointerdown",U,!0),e.removeEventListener("pointerdown",w,!0),e.removeEventListener("pointerdown",I,!0),e.removeEventListener("click",B,!0),e.removeEventListener(zt,s),window.removeEventListener("resize",s)}}}const so=[{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"}],da=[{key:"mov",label:"MOV",extension:"mov"},{key:"mp4",label:"MP4",extension:"mp4"},{key:"mxf",label:"MXF",extension:"mxf"}],ua=[24,25,30,50,60],ma=[{key:"aac",label:"AAC"},{key:"mp3",label:"MP3"}],pa=[96,128,192,256,320],Mr="me-video-export-enhancer-styles";function fa(){if(document.getElementById(Mr))return;const e=document.createElement("style");e.id=Mr,e.textContent=`
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=`
1864
2048
  .me-video-export-overlay {
1865
2049
  position: absolute;
1866
2050
  inset: 0;
@@ -2117,7 +2301,7 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
2117
2301
  justify-content: flex-end;
2118
2302
  }
2119
2303
  }
2120
- `,document.head.appendChild(e)}function Nr(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 yn(e,t,n,o){const l=Math.round(Number(e));return Number.isFinite(l)?Math.min(n,Math.max(t,l)):o}function On(e,t){const n=yn(e,2,8192,t);return n%2===0?n:n-1}function Ar(e){return Do(e.canvas,e)}function Ba(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),l=t%60;return n>0?`${n}:${String(o).padStart(2,"0")}:${String(l).padStart(2,"0")}`:`${o}:${String(l).padStart(2,"0")}`}function va(e){const t=Math.max(0,Math.round(Number(e)||0)),n=Math.floor(t/3600),o=Math.floor(t%3600/60),l=t%60;return n>0?l>0?`${n} \u5C0F\u65F6 ${o} \u5206 ${l} \u79D2`:`${n} \u5C0F\u65F6 ${o} \u5206`:o>0?l>0?`${o} \u5206 ${l} \u79D2`:`${o} \u5206`:`${l} \u79D2`}function ha(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 lo(e){return`${e.w}\xD7${e.h}`}function zn(e,t="mp4"){const n=String(e??"").toLowerCase();return n==="mov"||n==="mxf"||n==="mp4"?n:t}function xa(e,t="mp4"){const n=String(e??"").match(/\.([a-z0-9]+)$/i);return zn(n?.[1],t)}function ba(e,t,n,o){const l=co(e,t.key,n,o);return`${t.label} \xB7 ${lo(l)}`}function co(e,t,n,o){const l=Ar(e);if(t==="source")return l;if(t==="custom")return{w:On(n,l.w),h:On(o,l.h)};const s=so.find(h=>h.key===t);if(!s?.shortEdge)return l;const m=l.w>0&&l.h>0?l.w/l.h:1;if(l.w<=l.h){const h=On(s.shortEdge,l.w);return{w:h,h:On(h/m,l.h)}}const x=On(s.shortEdge,l.h);return{w:On(x*m,l.w),h:x}}function Bo(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 ga(e){const t=e.exportSettings;if(!t?.width||!t?.height)return"source";const n=Math.min(t.width,t.height);return so.find(l=>l.shortEdge&&Math.abs(l.shortEdge-n)<=6)?.key??"custom"}function ya(e,t,n){const o=String(t||n||"video.mp4"),l=zn(e.exportSettings?.format,xa(o,"mp4"));return`${$o(e.exportSettings?.fileName||Nr(o),"video")}.${l}`}function Or(e,t,n){return typeof e.onExported!="function"?e:{...e,onExported(o,l){e.onExported(o,ya(t.getState(),l,n()))}}}function wa(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:h=>setTimeout(h,16),o=[".me-video-preview-footer span"].join(",");function l(h){return String(h??"").replace(/(\d+:\d{2})\.\d+/g,"$1")}function s(){for(const h of e.querySelectorAll(o)){if(h instanceof HTMLElement&&h.childElementCount>0)continue;const y=String(h.textContent??"");if(!/^\s*\d+:\d{2}(?:\.\d+)?(?:\s*\/\s*\d+:\d{2}(?:\.\d+)?)?\s*$/.test(y))continue;if(h instanceof HTMLElement){const U=String(h.dataset.meRawTimeText||""),w=l(U);(!U||y!==w)&&(h.dataset.meRawTimeText=y)}const S=l(y);S!==h.textContent&&(h.textContent=S)}}function m(){t||(t=!0,n(()=>{t=!1,s()}))}const x=new MutationObserver(()=>{m()});return x.observe(e,{childList:!0,subtree:!0,characterData:!0}),m(),{destroy(){x.disconnect()}}}function ka(e){let t=!1,n=null;const o=new Set,l=typeof requestAnimationFrame=="function"?requestAnimationFrame:y=>setTimeout(y,16);function s(y){!n||!(y instanceof HTMLElement)||o.has(y)||(n.observe(y),o.add(y))}function m(){const y=e.querySelector(".me-video-workspace");y instanceof HTMLElement&&y.style.setProperty("padding","0","important");const S=e.querySelector(".me-video-preview-shell");if(!(S instanceof HTMLElement))return;const U=S.querySelector(".me-video-preview-scroll");if(!(U instanceof HTMLElement))return;const w=S.querySelector(".me-video-preview-footer"),I=U.querySelector(".me-video-canvas-stage"),B=w instanceof HTMLElement?Math.ceil(w.getBoundingClientRect().height):0,ne=Math.max(0,S.clientHeight-B);S.style.display="grid",S.style.gridTemplateRows=w instanceof HTMLElement?"minmax(0, 1fr) auto":"minmax(0, 1fr)",S.style.height="100%",S.style.minHeight="0",S.style.gap="0",S.style.overflow="hidden",S.style.boxSizing="border-box",U.style.alignSelf="stretch",U.style.justifySelf="stretch",U.style.flex="1 1 0",U.style.minHeight="0",U.style.maxHeight="none",U.style.height=ne>0?`${ne}px`:"100%",I instanceof HTMLElement&&(I.style.minHeight="100%",I.style.boxSizing="border-box"),s(S),s(U),s(w),s(I)}function x(){t||(t=!0,l(()=>{t=!1,m()}))}typeof ResizeObserver=="function"&&(n=new ResizeObserver(()=>{x()}));const h=new MutationObserver(()=>{x()});return h.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("resize",x),x(),{destroy(){h.disconnect(),n?.disconnect?.(),window.removeEventListener("resize",x)}}}function Ea(e,t){let l=!1,s=null;const m=typeof requestAnimationFrame=="function"?requestAnimationFrame:Y=>setTimeout(Y,16);function x(Y,T){return Number.isInteger(Y?.track)&&Y.track>=0?Y.track:T}function h(Y){const T=[...new Set((Y??[]).map(x))].sort((D,W)=>D-W);return T.length?T:[0]}function y(Y){const T=h(Y);return new Map(T.map((D,W)=>[D,W]))}function S(Y,T){const D=h(Y);return T<D.length?D[T]:Math.max(...D)+1}function U(Y,T,D=!1){const W=Math.max(0,Math.round(Number(T)||0)),ve=t.getState().audioClips??[],he=ve[Y];if(!he||x(he,Y)===W)return;const He=ve.map((ue,Ee)=>Ee===Y?{...ue,track:W}:ue);if(D){t.patch({audioClips:He},{transient:!0});return}t.commit({audioClips:He})}function w(){return e.querySelector(".me-video-timeline-scroll > div")}function I(Y){if(!(Y instanceof HTMLElement))return null;const T=[...Y.children].filter(W=>W instanceof HTMLElement),D=T.findIndex(W=>W.querySelector("[data-clipblock]"));return D===-1?null:T[D+1]instanceof HTMLElement?T[D+1]:null}function B(Y,T=1/0){if(!(Y instanceof HTMLElement))return[];const D=[...Y.children].filter(W=>W instanceof HTMLElement&&/♪/.test(W.textContent??"")&&!!W.querySelector("span"));return Number.isFinite(T)?D.slice(0,Math.max(0,T)):D}function ne(Y,T){if(!(Y instanceof HTMLElement)||!(T instanceof HTMLElement))return!1;let D=Y;for(;D&&D!==T;){if(`${D.style?.cursor||""} ${typeof window<"u"&&window.getComputedStyle?window.getComputedStyle(D).cursor:""}`.includes("ew-resize"))return!0;D=D.parentElement}return!1}function Q(Y,T,D){if(!(Y instanceof HTMLElement)||!Number.isFinite(D))return null;const W=Y.getBoundingClientRect(),J=32,he=h(T).length,He=Math.floor(Math.max(0,D-W.top)/J),ue=re(He,0,he);return S(T,ue)}function k(){const T=t.getState().audioClips??[],D=e.querySelector(".me-video-timeline-area"),W=e.querySelector(".me-video-timeline-scroll"),J=e.querySelector(".me-video-trim-panel"),ve=w(),he=I(ve);if(!(D instanceof HTMLElement)||!(W instanceof HTMLElement)||!(he instanceof HTMLElement))return;const He=y(T),ue=Math.max(1,He.size||T.length||1),Ee=32,We=ue>0?ue*28+Math.max(0,ue-1)*4:28;D.style.setProperty("max-height","none","important"),D.style.setProperty("overflow","visible","important"),W.style.setProperty("overflow-y","visible","important"),J instanceof HTMLElement&&J.style.setProperty("overflow","visible","important"),he.style.height=`${We}px`,he.style.minHeight=`${We}px`,he.style.overflow="visible";const Fe="color-mix(in srgb, var(--me-chip, #f1f1f3) 90%, var(--me-border, #d4d4d8) 10%)",R="color-mix(in srgb, var(--me-fg, #374151) 82%, var(--me-fg-muted, #6b7280) 18%)",C="transparent";he.style.background=ue>1?`repeating-linear-gradient(to bottom, ${Fe} 0px, ${Fe} 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) 28px, color-mix(in srgb, var(--me-border, #d4d4d8) 42%, transparent) ${Ee}px)`:Fe,he.style.backgroundSize=`100% ${Ee}px`;const $e=B(he,T.length),Se=new Set($e),ce=T.length===0;he.style.color=ce?R:"",[...he.children].forEach(O=>{if(O instanceof HTMLElement&&!Se.has(O)){if(ce){O.style.background="transparent",O.style.border="none",O.style.boxShadow="none",O.style.borderColor=C,O.style.color=R,O.querySelectorAll("span, label, button, strong, small").forEach(G=>{G instanceof HTMLElement&&(G.style.color=R,G.style.background="transparent",G.style.border="none",G.style.borderColor=C,G.style.boxShadow="none")});return}O.style.removeProperty("background"),O.style.removeProperty("border"),O.style.removeProperty("box-shadow"),O.style.removeProperty("border-color"),O.style.removeProperty("color"),O.querySelectorAll("span, label, button, strong, small").forEach(G=>{G instanceof HTMLElement&&(G.style.removeProperty("color"),G.style.removeProperty("background"),G.style.removeProperty("border"),G.style.removeProperty("border-color"),G.style.removeProperty("box-shadow"))})}}),$e.forEach((O,G)=>{const H=T[G],_=x(H,G),le=He.get(_)??G;O.style.top=`${le*Ee+2}px`,O.style.bottom="auto",O.style.height="24px"});const Re=D.lastElementChild;if(Re instanceof HTMLElement){const G=Re.querySelectorAll("label")[1];G instanceof HTMLElement&&(G.style.height=`${We}px`,G.style.minHeight=`${We}px`,ce?(G.style.background=Fe,G.style.border="none",G.style.borderColor=C,G.style.boxShadow="none",G.style.color=R,G.querySelectorAll("span, strong, small").forEach(H=>{H instanceof HTMLElement&&(H.style.color=R,H.style.border="none")})):(G.style.removeProperty("background"),G.style.removeProperty("border"),G.style.removeProperty("border-color"),G.style.removeProperty("box-shadow"),G.style.removeProperty("color"),G.querySelectorAll("span, strong, small").forEach(H=>{H instanceof HTMLElement&&(H.style.removeProperty("color"),H.style.removeProperty("border"))})))}}function $(){l||(l=!0,m(()=>{l=!1,k()}))}function K(Y){if(Y.button!==0||!(Y.target instanceof Element))return;const T=Y.target.closest("[data-audioclip]");if(!(T instanceof HTMLElement)||!e.contains(T)||ne(Y.target,T))return;const D=Number(T.getAttribute("data-audioclip"));if(!Number.isInteger(D))return;const J=(t.getState().audioClips??[])[D];J&&(s={index:D,pointerId:Y.pointerId,startTrack:x(J,D),currentTrack:x(J,D)})}function V(Y){if(!s||Y.pointerId!==s.pointerId)return;const T=w(),D=I(T),W=t.getState().audioClips??[],J=Q(D,W,Y.clientY);!Number.isInteger(J)||J===s.currentTrack||(s.currentTrack=J,U(s.index,J,!0),$())}function Z(Y,T=!1){if(!s||Y!==s.pointerId)return;const D=s;if(s=null,T){D.currentTrack!==D.startTrack&&U(D.index,D.startTrack,!1);return}D.currentTrack!==D.startTrack&&(U(D.index,D.currentTrack,!1),$())}function X(Y){Z(Y.pointerId,!1)}function se(Y){Z(Y.pointerId,!0)}const ee=new MutationObserver(()=>{$()});ee.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),e.addEventListener(zt,$),e.addEventListener("pointerdown",K,!0),window.addEventListener("pointermove",V),window.addEventListener("pointerup",X),window.addEventListener("pointercancel",se),window.addEventListener("resize",$);const q=t.subscribe(()=>{$()});return $(),{destroy(){ee.disconnect(),q(),e.removeEventListener(zt,$),e.removeEventListener("pointerdown",K,!0),window.removeEventListener("resize",$),window.removeEventListener("pointermove",V),window.removeEventListener("pointerup",X),window.removeEventListener("pointercancel",se)}}}function Sa(e){let t=!1;const n=typeof requestAnimationFrame=="function"?requestAnimationFrame:x=>setTimeout(x,16);function o(){t||(t=!0,n(()=>{t=!1,s()}))}function l(x){return String(x?.style?.transform||"").includes("translateX(-50%)")}function s(){const x=e.querySelector(".me-video-timeline-scroll > div > div:first-child");if(x instanceof HTMLElement)for(const h of[...x.children]){if(!(h instanceof HTMLElement)||l(h))continue;const y=Eo(Un(h));Number.isFinite(y)&&Math.abs(y-Math.round(y))>.001?(h.dataset.meIntegerTickHidden="true",h.style.setProperty("display","none","important")):h.dataset.meIntegerTickHidden==="true"&&(h.style.removeProperty("display"),delete h.dataset.meIntegerTickHidden)}}const m=new MutationObserver(()=>{o()});return m.observe(e,{childList:!0,subtree:!0,characterData:!0}),e.addEventListener(zt,o),window.addEventListener("resize",o),o(),{destroy(){m.disconnect(),e.removeEventListener(zt,o),window.removeEventListener("resize",o)}}}let zr=!1;function La(){if(zr||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 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=`
2121
2305
  .me-video-history[data-trim-proxy-hidden="true"] {
2122
2306
  display: none !important;
2123
2307
  }
@@ -2189,7 +2373,7 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
2189
2373
  display: none;
2190
2374
  }
2191
2375
  }
2192
- `,document.head.appendChild(e),zr=!0}function Ta(e){La();let t=!1,n=null;const o=typeof requestAnimationFrame=="function"?requestAnimationFrame:w=>setTimeout(w,16);function l(){return e.querySelector(".me-video-topbar .me-video-history")}function s(){const w=l();return w instanceof HTMLElement?[...w.querySelectorAll("button")]:[]}function m(w){n instanceof HTMLElement||(n=document.createElement("div"),n.className="me-video-trim-history-proxy");const I=w.querySelector(".me-video-trim-action-btn");return n.parentElement!==w?w.insertBefore(n,I??w.firstChild):I&&n.nextElementSibling!==I&&w.insertBefore(n,I),n}function x(w,I){const B=String(w??"").trim();if(!B)return"";if(I===0){if(/\s/.test(B))return B.split(/\s+/)[0];if(B.length>2)return B.slice(0,2)}return B}function h(w,I,B){w.dataset.historyIndex=String(B);const ne=w.querySelector(".me-video-trim-history-proxy-icon"),Q=w.querySelector(".me-video-trim-history-proxy-label");ne instanceof HTMLElement&&ne.innerHTML!==I.innerHTML&&(ne.innerHTML=I.innerHTML),w.disabled=I.disabled,w.title=I.title||"";const k=I.getAttribute("aria-label"),$=(k||I.title||"").trim();Q instanceof HTMLElement&&(Q.textContent=x($,B)),k?w.setAttribute("aria-label",k):w.removeAttribute("aria-label")}function y(){const w=l(),I=e.querySelector(".me-video-trim-actions");if(!(w instanceof HTMLElement)||!(I instanceof HTMLElement)){w?.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}const B=s();if(!B.length){w.removeAttribute("data-trim-proxy-hidden"),n?.remove();return}w.setAttribute("data-trim-proxy-hidden","true");const ne=m(I),Q=[];for(B.forEach((k,$)=>{let K=ne.children[$];if(!(K instanceof HTMLButtonElement)){K=document.createElement("button"),K.type="button",K.className="me-video-trim-history-proxy-btn";const V=document.createElement("span");V.className="me-video-trim-history-proxy-icon";const Z=document.createElement("span");Z.className="me-video-trim-history-proxy-label",K.append(V,Z),K.addEventListener("click",()=>{const X=s()[$];!X||X.disabled||(X.click(),S())}),ne.appendChild(K)}h(K,k,$),Q.push(K)});ne.children.length>Q.length;)ne.lastElementChild?.remove()}function S(){t||(t=!0,o(()=>{t=!1,y()}))}const U=new MutationObserver(()=>{S()});return U.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled","style","class","hidden","title","aria-label"]}),window.addEventListener("resize",S),S(),{destroy(){U.disconnect(),window.removeEventListener("resize",S),l()?.removeAttribute("data-trim-proxy-hidden"),n?.remove()}}}function Ca(e,t,n){fa();const o=document.createElement("div");o.className="me-video-export-overlay",o.hidden=!0,o.innerHTML=`
2376
+ `,document.head.appendChild(e),Hr=!0}function Ma(e){Ca();let t=!1,n=null;const o=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 S(){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(),M())}),oe.appendChild(he)}v(he,Z,ie),Q.push(he)});oe.children.length>Q.length;)oe.lastElementChild?.remove()}function M(){t||(t=!0,o(()=>{t=!1,S()}))}const G=new MutationObserver(()=>{M()});return G.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled","style","class","hidden","title","aria-label"]}),window.addEventListener("resize",M),M(),{destroy(){G.disconnect(),window.removeEventListener("resize",M),a()?.removeAttribute("data-trim-proxy-hidden"),n?.remove()}}}function Na(e,t,n){ha();const o=document.createElement("div");o.className="me-video-export-overlay",o.hidden=!0,o.innerHTML=`
2193
2377
  <div class="me-video-export-card" role="dialog" aria-modal="true" aria-label="\u5BFC\u51FA\u8BBE\u7F6E">
2194
2378
  <div class="me-video-export-head">
2195
2379
  <strong class="me-video-export-title">\u5BFC\u51FA\u8BBE\u7F6E</strong>
@@ -2270,4 +2454,4 @@ import{mountVideoEditor as Fr}from"./legacy.js";import{FILTER_PRESETS as $r,buil
2270
2454
  </div>
2271
2455
  </div>
2272
2456
  </div>
2273
- `,e.appendChild(o);const l=o.querySelector(".me-video-export-close"),s=o.querySelector('[data-action="cancel"]'),m=o.querySelector('[data-action="confirm"]'),x=o.querySelector("img"),h=o.querySelector(".me-video-export-preview-empty"),y=o.querySelector(".me-video-export-preview-note"),S=o.querySelector(".me-video-export-summary-value"),U=o.querySelector("[data-custom-resolution]"),w=o.querySelector('[data-field="title"]'),I=o.querySelector('[data-field="resolutionPreset"]'),B=o.querySelector('[data-field="customWidth"]'),ne=o.querySelector('[data-field="customHeight"]'),Q=o.querySelector('[data-field="customResolutionHint"]'),k=o.querySelector('[data-field="format"]'),$=o.querySelector('[data-field="frameRate"]'),K=o.querySelector('[data-field="bitrateMode"]'),V=o.querySelector('[data-field="videoBitrateKbps"]'),Z=o.querySelector('[data-field="videoBitrateHint"]'),X=o.querySelector('[data-field="audioCodec"]'),se=o.querySelector('[data-field="audioBitrateKbps"]'),ee=new Map;for(const R of so){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,I.appendChild(C),ee.set(R.key,C)}for(const R of da){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,k.appendChild(C)}for(const R of ua){const C=document.createElement("option");C.value=String(R),C.textContent=`${R} FPS`,$.appendChild(C)}for(const R of ma){const C=document.createElement("option");C.value=R.key,C.textContent=R.label,X.appendChild(C)}for(const R of pa){const C=document.createElement("option");C.value=String(R),C.textContent=`${R} kbps`,se.appendChild(C)}let q=null,Y=!1;function T(){const R=e.querySelector(".me-video-canvas-stage canvas, .me-video-preview-scroll canvas");if(!(R instanceof HTMLCanvasElement))return"";try{return R.toDataURL("image/png")}catch{return""}}function D(){const R=T();if(R){x.src=R,x.hidden=!1,h.hidden=!0;return}x.hidden=!0,h.hidden=!1}function W(){const R=t.getState(),C=Ar(R),$e=ga(R),Se=co(R,$e,R.exportSettings?.width??C.w,R.exportSettings?.height??C.h),ce=yn(R.exportSettings?.frameRate,12,120,30),Re=Bo(Se,ce);return{title:$o(R.exportSettings?.fileName||Nr(n()),"video"),resolutionPreset:$e,customWidth:R.exportSettings?.width??C.w,customHeight:R.exportSettings?.height??C.h,format:zn(R.exportSettings?.format,"mp4"),frameRate:ce,bitrateMode:R.exportSettings?.videoBitrateKbps!=null?"custom":"auto",videoBitrateKbps:R.exportSettings?.videoBitrateKbps??Re,audioCodec:R.exportSettings?.audioCodec??"aac",audioBitrateKbps:R.exportSettings?.audioBitrateKbps??192}}function J(){const R=t.getState(),C=yn(q.frameRate,12,120,30),$e=co(R,q.resolutionPreset,q.customWidth,q.customHeight),Se=Bo($e,C);return{fileName:$o(q.title,"video"),width:q.resolutionPreset==="source"?void 0:$e.w,height:q.resolutionPreset==="source"?void 0:$e.h,format:zn(q.format,"mp4"),frameRate:C,videoBitrateKbps:q.bitrateMode==="custom"?yn(q.videoBitrateKbps,100,5e4,Se):void 0,audioBitrateKbps:yn(q.audioBitrateKbps,32,320,192),audioCodec:q.audioCodec==="mp3"?"mp3":"aac"}}function ve(){if(!q)return;const R=t.getState(),C=co(R,q.resolutionPreset,q.customWidth,q.customHeight),$e=Bo(C,q.frameRate),Se=q.bitrateMode==="custom"?yn(q.videoBitrateKbps,100,5e4,$e):$e,ce=yn(q.audioBitrateKbps,32,320,192),Re=Math.max(0,Number(t.contentDuration())||0),O=Re>0?(Se+ce)*1e3*Re/8:0;for(const G of so){const H=ee.get(G.key);H&&(H.textContent=ba(R,G,q.customWidth,q.customHeight))}w.value=q.title,I.value=q.resolutionPreset,B.value=String(q.customWidth),ne.value=String(q.customHeight),k.value=zn(q.format,"mp4"),$.value=String(q.frameRate),K.value=q.bitrateMode,V.value=String(Se),V.disabled=q.bitrateMode!=="custom",X.value=q.audioCodec,se.value=String(ce),U.dataset.active=q.resolutionPreset==="custom"?"true":"false",Q.textContent=q.resolutionPreset==="custom"?`\u5F53\u524D\u6309\u81EA\u5B9A\u4E49\u5927\u5C0F\u5BFC\u51FA\uFF1A${lo(C)}`:`\u4FEE\u6539\u5BBD\u9AD8\u4F1A\u81EA\u52A8\u5207\u6362\u4E3A\u81EA\u5B9A\u4E49\u5927\u5C0F\uFF0C\u5F53\u524D\u9884\u8BBE\u8F93\u51FA\uFF1A${lo(C)}`,Z.textContent=q.bitrateMode==="custom"?`\u5EFA\u8BAE\u503C ${$e} kbps`:`\u81EA\u52A8\u7801\u7387\u5C06\u6309 ${$e} kbps \u4F30\u7B97`,y.textContent=`\u8F93\u51FA\u5C3A\u5BF8 ${lo(C)} \xB7 ${q.frameRate} FPS \xB7 ${zn(q.format,"mp4").toUpperCase()} \xB7 \u97F3\u9891 ${ce} kbps`,S.textContent=`\u65F6\u957F: ${va(Re)} | \u5927\u5C0F: ${ha(O)}\uFF08\u4F30\u8BA1\uFF09`,D()}function he(){q=W(),o.hidden=!1,ve()}function He(){o.hidden=!0,q=null}function ue(){!q||!(e.querySelector(".me-video-done")instanceof HTMLButtonElement)||(t.commit({exportSettings:J()}),Y=!0,He(),requestAnimationFrame(()=>{const C=e.querySelector(".me-video-done");C instanceof HTMLButtonElement&&C.click()}))}function Ee(R){if(!(R.target instanceof Element))return;const C=R.target.closest(".me-video-done");if(!(!C||!e.contains(C))&&!(!(C instanceof HTMLButtonElement)||C.disabled)){if(Y){Y=!1;return}R.preventDefault(),R.stopPropagation(),he()}}function We(R){R.key==="Escape"&&!o.hidden&&(R.preventDefault(),He())}function Fe(R,C){q&&(q={...q,[R]:C},ve())}return l.addEventListener("click",He),s.addEventListener("click",He),m.addEventListener("click",ue),o.addEventListener("click",R=>{R.target===o&&He()}),w.addEventListener("input",()=>Fe("title",w.value)),I.addEventListener("change",()=>Fe("resolutionPreset",I.value)),k.addEventListener("change",()=>Fe("format",k.value)),B.addEventListener("input",()=>{q&&(q={...q,resolutionPreset:"custom",customWidth:B.value},ve())}),ne.addEventListener("input",()=>{q&&(q={...q,resolutionPreset:"custom",customHeight:ne.value},ve())}),$.addEventListener("change",()=>Fe("frameRate",$.value)),K.addEventListener("change",()=>Fe("bitrateMode",K.value)),V.addEventListener("input",()=>Fe("videoBitrateKbps",V.value)),X.addEventListener("change",()=>Fe("audioCodec",X.value)),se.addEventListener("change",()=>Fe("audioBitrateKbps",se.value)),e.addEventListener("click",Ee,!0),window.addEventListener("keydown",We),{destroy(){e.removeEventListener("click",Ee,!0),window.removeEventListener("keydown",We),o.remove()}}}function Pr(e,t={}){const n=t.height??"100vh",o=()=>{document.fullscreenElement!==e&&e.style.setProperty("--me-editor-shell-height",n)};return o(),requestAnimationFrame(o),window.addEventListener("resize",o),document.addEventListener("fullscreenchange",o),()=>{window.removeEventListener("resize",o),document.removeEventListener("fullscreenchange",o)}}function Ma(e,t={}){const{append:n=!0,backButton:o="\u8FD4\u56DE",className:l="editor-shell",fitToViewport:s=!0,height:m="auto",hostClassName:x="editor-host",actionsClassName:h="editor-actions",onBack:y}=t,S=document.createElement("div");S.className=l,m!=="auto"&&(S.style.height=m);const U=document.createElement("div");U.className=h;let w=null;o!==!1&&(o instanceof HTMLElement?w=o:(w=document.createElement("button"),w.type="button",w.className="btn btn-ghost",w.textContent=typeof o=="string"?o:"\u8FD4\u56DE"),w&&typeof y=="function"&&w.addEventListener("click",y),w&&U.appendChild(w));const I=document.createElement("div");I.className=x,S.append(U,I),n!==!1&&e.appendChild(S);const B=s?Pr(S):()=>{};return{shell:S,actions:U,host:I,backButton:w,destroy(){B(),w&&typeof y=="function"&&w.removeEventListener("click",y),S.remove()}}}function Na(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 o=document.createElement("div");o.style.cssText="width:100%;height:100%;min-height:0",n.appendChild(o);const l=t.engine??new _r,s=()=>{const ee=m.source;return ee&&typeof ee=="object"&&"name"in ee&&typeof ee.name=="string"?ee.name:"video.mp4"};let m={...t,engine:l},x=Fr(o,Or(m,l,s));const h=ea(n,l,()=>m.theme,()=>m.locale),y=ra(n,l,()=>m.theme,()=>m.locale),S=na(n,l,()=>m.locale),U=oa(n,l,()=>m.theme,()=>m.locale),w=ta(n,l,()=>m.locale),I=aa(n,l,()=>m.theme,()=>m.locale),B=ia(n,l,()=>m.locale),ne=sa(n,l,()=>m.locale),Q=la(n,l,()=>m.locale),k=ca(n,l),$=Ta(n),K=ka(n),V=wa(n),Z=Ea(n,l),X=Sa(n),se=Ca(n,l,s);return{update(ee={}){m={...m,...ee,engine:l},x.update(Or(m,l,s))},destroy(){se.destroy(),Z.destroy(),V.destroy(),K.destroy(),$.destroy(),X.destroy(),k.destroy(),Q.destroy(),ne.destroy(),B.destroy(),I.destroy(),w.destroy(),U.destroy(),S.destroy(),y.destroy(),h.destroy(),x.destroy(),n.remove()}}}export{ja as VideoEditorEngine,Ma as createVideoEditorShell,Pr as fitVideoEditorShellToViewport,Na as mountVideoEditor};
2457
+ `,e.appendChild(o);const a=o.querySelector(".me-video-export-close"),s=o.querySelector('[data-action="cancel"]'),u=o.querySelector('[data-action="confirm"]'),f=o.querySelector("img"),v=o.querySelector(".me-video-export-preview-empty"),S=o.querySelector(".me-video-export-preview-note"),M=o.querySelector(".me-video-export-summary-value"),G=o.querySelector("[data-custom-resolution]"),T=o.querySelector('[data-field="title"]'),F=o.querySelector('[data-field="resolutionPreset"]'),j=o.querySelector('[data-field="customWidth"]'),oe=o.querySelector('[data-field="customHeight"]'),Q=o.querySelector('[data-field="customResolutionHint"]'),Z=o.querySelector('[data-field="format"]'),ie=o.querySelector('[data-field="frameRate"]'),he=o.querySelector('[data-field="bitrateMode"]'),ne=o.querySelector('[data-field="videoBitrateKbps"]'),xe=o.querySelector('[data-field="videoBitrateHint"]'),te=o.querySelector('[data-field="audioCodec"]'),w=o.querySelector('[data-field="audioBitrateKbps"]'),x=new Map;for(const A of uo){const b=document.createElement("option");b.value=A.key,b.textContent=A.label,F.appendChild(b),x.set(A.key,b)}for(const A of ma){const b=document.createElement("option");b.value=A.key,b.textContent=A.label,Z.appendChild(b)}for(const A of pa){const b=document.createElement("option");b.value=String(A),b.textContent=`${A} FPS`,ie.appendChild(b)}for(const A of fa){const b=document.createElement("option");b.value=A.key,b.textContent=A.label,te.appendChild(b)}for(const A of va){const b=document.createElement("option");b.value=String(A),b.textContent=`${A} kbps`,w.appendChild(b)}let k=null,N=!1;function y(){const A=e.querySelector(".me-video-canvas-stage canvas, .me-video-preview-scroll canvas");if(!(A instanceof HTMLCanvasElement))return"";try{return A.toDataURL("image/png")}catch{return""}}function z(){const A=y();if(A){f.src=A,f.hidden=!1,v.hidden=!0;return}f.hidden=!0,v.hidden=!1}function Y(){const A=t.getState(),b=zr(A),le=wa(A),Le=po(A,le,A.exportSettings?.width??b.w,A.exportSettings?.height??b.h),ve=wn(A.exportSettings?.frameRate,12,120,30),Re=Do(Le,ve);return{title:$o(A.exportSettings?.fileName||Or(n()),"video"),resolutionPreset:le,customWidth:A.exportSettings?.width??b.w,customHeight:A.exportSettings?.height??b.h,format:Pn(A.exportSettings?.format,"mp4"),frameRate:ve,bitrateMode:A.exportSettings?.videoBitrateKbps!=null?"custom":"auto",videoBitrateKbps:A.exportSettings?.videoBitrateKbps??Re,audioCodec:A.exportSettings?.audioCodec??"aac",audioBitrateKbps:A.exportSettings?.audioBitrateKbps??192}}function L(){const A=t.getState(),b=wn(k.frameRate,12,120,30),le=po(A,k.resolutionPreset,k.customWidth,k.customHeight),Le=Do(le,b);return{fileName:$o(k.title,"video"),width:k.resolutionPreset==="source"?void 0:le.w,height:k.resolutionPreset==="source"?void 0:le.h,format:Pn(k.format,"mp4"),frameRate:b,videoBitrateKbps:k.bitrateMode==="custom"?wn(k.videoBitrateKbps,100,5e4,Le):void 0,audioBitrateKbps:wn(k.audioBitrateKbps,32,320,192),audioCodec:k.audioCodec==="mp3"?"mp3":"aac"}}function B(){if(!k)return;const A=t.getState(),b=po(A,k.resolutionPreset,k.customWidth,k.customHeight),le=Do(b,k.frameRate),Le=k.bitrateMode==="custom"?wn(k.videoBitrateKbps,100,5e4,le):le,ve=wn(k.audioBitrateKbps,32,320,192),Re=Math.max(0,Number(t.contentDuration())||0),D=Re>0?(Le+ve)*1e3*Re/8:0;for(const ee of uo){const _=x.get(ee.key);_&&(_.textContent=ya(A,ee,k.customWidth,k.customHeight))}T.value=k.title,F.value=k.resolutionPreset,j.value=String(k.customWidth),oe.value=String(k.customHeight),Z.value=Pn(k.format,"mp4"),ie.value=String(k.frameRate),he.value=k.bitrateMode,ne.value=String(Le),ne.disabled=k.bitrateMode!=="custom",te.value=k.audioCodec,w.value=String(ve),G.dataset.active=k.resolutionPreset==="custom"?"true":"false",Q.textContent=k.resolutionPreset==="custom"?`\u5F53\u524D\u6309\u81EA\u5B9A\u4E49\u5927\u5C0F\u5BFC\u51FA\uFF1A${mo(b)}`:`\u4FEE\u6539\u5BBD\u9AD8\u4F1A\u81EA\u52A8\u5207\u6362\u4E3A\u81EA\u5B9A\u4E49\u5927\u5C0F\uFF0C\u5F53\u524D\u9884\u8BBE\u8F93\u51FA\uFF1A${mo(b)}`,xe.textContent=k.bitrateMode==="custom"?`\u5EFA\u8BAE\u503C ${le} kbps`:`\u81EA\u52A8\u7801\u7387\u5C06\u6309 ${le} kbps \u4F30\u7B97`,S.textContent=`\u8F93\u51FA\u5C3A\u5BF8 ${mo(b)} \xB7 ${k.frameRate} FPS \xB7 ${Pn(k.format,"mp4").toUpperCase()} \xB7 \u97F3\u9891 ${ve} kbps`,M.textContent=`\u65F6\u957F: ${xa(Re)} | \u5927\u5C0F: ${ba(D)}\uFF08\u4F30\u8BA1\uFF09`,z()}function q(){k=Y(),o.hidden=!1,B()}function V(){o.hidden=!0,k=null}function X(){!k||!(e.querySelector(".me-video-done")instanceof HTMLButtonElement)||(t.commit({exportSettings:L()}),N=!0,V(),requestAnimationFrame(()=>{const b=e.querySelector(".me-video-done");b instanceof HTMLButtonElement&&b.click()}))}function re(A){if(!(A.target instanceof Element))return;const b=A.target.closest(".me-video-done");if(!(!b||!e.contains(b))&&!(!(b instanceof HTMLButtonElement)||b.disabled)){if(N){N=!1;return}A.preventDefault(),A.stopPropagation(),q()}}function pe(A){A.key==="Escape"&&!o.hidden&&(A.preventDefault(),V())}function se(A,b){k&&(k={...k,[A]:b},B())}return a.addEventListener("click",V),s.addEventListener("click",V),u.addEventListener("click",X),o.addEventListener("click",A=>{A.target===o&&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",()=>{k&&(k={...k,resolutionPreset:"custom",customWidth:j.value},B())}),oe.addEventListener("input",()=>{k&&(k={...k,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),o.remove()}}}function Ir(e,t={}){const n=t.height??"100vh",o=()=>{document.fullscreenElement!==e&&e.style.setProperty("--me-editor-shell-height",n)};return o(),requestAnimationFrame(o),window.addEventListener("resize",o),document.addEventListener("fullscreenchange",o),()=>{window.removeEventListener("resize",o),document.removeEventListener("fullscreenchange",o)}}function Aa(e,t={}){const{append:n=!0,backButton:o="\u8FD4\u56DE",className:a="editor-shell",fitToViewport:s=!0,height:u="auto",hostClassName:f="editor-host",actionsClassName:v="editor-actions",onBack:S}=t,M=document.createElement("div");M.className=a,u!=="auto"&&(M.style.height=u);const G=document.createElement("div");G.className=v;let T=null;o!==!1&&(o instanceof HTMLElement?T=o:(T=document.createElement("button"),T.type="button",T.className="btn btn-ghost",T.textContent=typeof o=="string"?o:"\u8FD4\u56DE"),T&&typeof S=="function"&&T.addEventListener("click",S),T&&G.appendChild(T));const F=document.createElement("div");F.className=f,M.append(G,F),n!==!1&&e.appendChild(M);const j=s?Ir(M):()=>{};return{shell:M,actions:G,host:F,backButton:T,destroy(){j(),T&&typeof S=="function"&&T.removeEventListener("click",S),M.remove()}}}function Oa(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 o=document.createElement("div");o.style.cssText="width:100%;height:100%;min-height:0",n.appendChild(o);const a=t.engine??new Yr,s=()=>{const N=u.source;return N&&typeof N=="object"&&"name"in N&&typeof N.name=="string"?N.name:"video.mp4"};let u={...t,engine:a},f=$r(o,Pr(u,a,s));const v=ea(n,a,()=>u.theme,()=>u.locale),S=ra(n,a,()=>u.theme,()=>u.locale),M=na(n,a,()=>u.locale),G=oa(n,a,()=>u.theme,()=>u.locale),T=ta(n,a,()=>u.locale),F=aa(n,a,()=>u.theme,()=>u.locale),j=ia(n,a,()=>u.locale),oe=sa(n,a,()=>u.locale),Q=la(n,a,()=>u.locale),Z=ca(n,a,()=>u.locale),ie=da(n,a,()=>u.locale),he=ua(n,a,()=>u.locale),ne=Ma(n),xe=Sa(n),te=Ea(n),w=La(n,a),x=Ta(n),k=Na(n,a,s);return{update(N={}){u={...u,...N,engine:a},f.update(Pr(u,a,s))},destroy(){k.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(),M.destroy(),S.destroy(),v.destroy(),f.destroy(),n.remove()}}}export{Va as VideoEditorEngine,Aa as createVideoEditorShell,Ir as fitVideoEditorShellToViewport,Oa as mountVideoEditor};