lexgui 0.1.35 → 0.1.37
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/README.md +75 -16
- package/build/components/audio.js +179 -0
- package/build/components/timeline.js +2761 -3119
- package/build/components/videoeditor.js +10 -2
- package/build/lexgui.css +93 -9
- package/build/lexgui.js +384 -225
- package/build/lexgui.module.js +367 -220
- package/changelog.md +22 -1
- package/demo.js +14 -7
- package/examples/timeline.html +33 -21
- package/package.json +1 -1
|
@@ -491,6 +491,7 @@ class VideoEditor {
|
|
|
491
491
|
await new Promise(r => setTimeout(r, 1000));
|
|
492
492
|
this.video.currentTime = 10000000 * Math.random();
|
|
493
493
|
}
|
|
494
|
+
this.video.currentTime = -1; // BUG: some videos will not play unless this line is present
|
|
494
495
|
this.video.currentTime = 0;
|
|
495
496
|
this.endTime = this.video.duration;
|
|
496
497
|
this.timebar.currentX = this._timeToX(0);
|
|
@@ -498,7 +499,10 @@ class VideoEditor {
|
|
|
498
499
|
this._setStartValue(this.timebar.startX);
|
|
499
500
|
this._setCurrentValue(this.timebar.currentX);
|
|
500
501
|
this.timebar.update(this.timebar.currentX);
|
|
501
|
-
|
|
502
|
+
|
|
503
|
+
if ( !this.requestId ){ // only have one update on flight
|
|
504
|
+
this._update();
|
|
505
|
+
}
|
|
502
506
|
this.controls = options.controls ?? true;
|
|
503
507
|
if(!this.controls) {
|
|
504
508
|
this.hideControls();
|
|
@@ -615,12 +619,16 @@ class VideoEditor {
|
|
|
615
619
|
this.controlsArea.hide();
|
|
616
620
|
}
|
|
617
621
|
|
|
618
|
-
|
|
622
|
+
stopUpdates(){
|
|
623
|
+
|
|
619
624
|
if(this.requestId) {
|
|
620
625
|
cancelAnimationFrame(this.requestId);
|
|
621
626
|
this.requestId = null;
|
|
622
627
|
}
|
|
628
|
+
}
|
|
623
629
|
|
|
630
|
+
delete ( ) {
|
|
631
|
+
this.stopUpdates();
|
|
624
632
|
delete this;
|
|
625
633
|
}
|
|
626
634
|
}
|
package/build/lexgui.css
CHANGED
|
@@ -776,6 +776,7 @@ body.noevents * {
|
|
|
776
776
|
margin-top: 0.3em;
|
|
777
777
|
margin-right: 0.7em;
|
|
778
778
|
color: var(--global-selected-light);
|
|
779
|
+
font-size: 11px;
|
|
779
780
|
}
|
|
780
781
|
|
|
781
782
|
.lextitle.link {
|
|
@@ -934,6 +935,10 @@ body.noevents * {
|
|
|
934
935
|
padding: 2px 3px;
|
|
935
936
|
}
|
|
936
937
|
|
|
938
|
+
.lexdropdown .lexfilter a {
|
|
939
|
+
transform: translateX(-10px);
|
|
940
|
+
}
|
|
941
|
+
|
|
937
942
|
.lexdropdown .lexoptions .lexlistitem {
|
|
938
943
|
font-size: 11px;
|
|
939
944
|
}
|
|
@@ -960,7 +965,8 @@ body.noevents * {
|
|
|
960
965
|
background-color: var(--global-blur-background);
|
|
961
966
|
-webkit-backdrop-filter: blur(10px);
|
|
962
967
|
backdrop-filter: blur(10px);
|
|
963
|
-
padding:
|
|
968
|
+
padding: 0px;
|
|
969
|
+
transform: translateY(-4px);
|
|
964
970
|
z-index: 10;
|
|
965
971
|
margin-top: 5px;
|
|
966
972
|
width: 100%;
|
|
@@ -1277,6 +1283,17 @@ input[type=number] {
|
|
|
1277
1283
|
border: 2px solid var(--global-selected);
|
|
1278
1284
|
}
|
|
1279
1285
|
|
|
1286
|
+
.lexwidget .numberbox span {
|
|
1287
|
+
position: absolute;
|
|
1288
|
+
top: -2px;
|
|
1289
|
+
pointer-events: none;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
.lexinputmeasure {
|
|
1293
|
+
font-family: var(--global-font);
|
|
1294
|
+
font-size: var(--global-font-size);
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1280
1297
|
.lexinputslider {
|
|
1281
1298
|
appearance: none;
|
|
1282
1299
|
-moz-appearance: none;
|
|
@@ -1662,7 +1679,7 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
1662
1679
|
|
|
1663
1680
|
.lexcontextmenu {
|
|
1664
1681
|
position: absolute;
|
|
1665
|
-
padding-right:
|
|
1682
|
+
padding-right: 8px;
|
|
1666
1683
|
z-index: 1001;
|
|
1667
1684
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.63) !important;
|
|
1668
1685
|
background-color: var(--global-blur-background);
|
|
@@ -1692,7 +1709,7 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
1692
1709
|
width: 100%;
|
|
1693
1710
|
color: #d5d7dbee;
|
|
1694
1711
|
padding: 4px;
|
|
1695
|
-
padding-left:
|
|
1712
|
+
padding-left: 8px;
|
|
1696
1713
|
padding-right: 0px;
|
|
1697
1714
|
padding-bottom: 6px;
|
|
1698
1715
|
cursor: pointer;
|
|
@@ -1782,12 +1799,9 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
1782
1799
|
float: right;
|
|
1783
1800
|
margin-top: 3px;
|
|
1784
1801
|
font-weight: bold;
|
|
1785
|
-
color: var(--global-
|
|
1802
|
+
color: var(--global-text-primary);
|
|
1786
1803
|
margin-right: 12px;
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
.lexcontextmenu .lexcontextmenuentry:hover .lexentryshort {
|
|
1790
|
-
color: #f5f5f5;
|
|
1804
|
+
text-align: right;
|
|
1791
1805
|
}
|
|
1792
1806
|
|
|
1793
1807
|
.lexmenubar .lexmenubuttons {
|
|
@@ -2088,7 +2102,7 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2088
2102
|
}
|
|
2089
2103
|
|
|
2090
2104
|
.lexoverlaybuttons .lexbutton {
|
|
2091
|
-
padding:
|
|
2105
|
+
padding: 16px 12px;
|
|
2092
2106
|
font-size: var(--global-font-size-big);
|
|
2093
2107
|
border-radius: 10px;
|
|
2094
2108
|
justify-content: center;
|
|
@@ -2499,6 +2513,76 @@ meter::-webkit-meter-even-less-good-value {
|
|
|
2499
2513
|
width: 95%;
|
|
2500
2514
|
}
|
|
2501
2515
|
|
|
2516
|
+
/* Knob Widget */
|
|
2517
|
+
|
|
2518
|
+
.lexknob {
|
|
2519
|
+
padding: 8px;
|
|
2520
|
+
}
|
|
2521
|
+
|
|
2522
|
+
.lexknob .knobcircle {
|
|
2523
|
+
background: rgb(62,62,62);
|
|
2524
|
+
background: linear-gradient(180deg, rgba(82,82,82,1) 0%, rgba(40,40,40,1) 100%);
|
|
2525
|
+
width: 64px;
|
|
2526
|
+
height: 64px;
|
|
2527
|
+
margin: 0 auto;
|
|
2528
|
+
border-radius: 50%;
|
|
2529
|
+
position: relative;
|
|
2530
|
+
box-shadow: 0px 3px 9px 2px #121212a9;
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
.lexknob.sm .knobcircle {
|
|
2534
|
+
width: 48px;
|
|
2535
|
+
height: 48px;
|
|
2536
|
+
}
|
|
2537
|
+
|
|
2538
|
+
.lexknob.bg .knobcircle {
|
|
2539
|
+
width: 81px;
|
|
2540
|
+
height: 81px;
|
|
2541
|
+
}
|
|
2542
|
+
|
|
2543
|
+
.lexknob .innerknobcircle {
|
|
2544
|
+
background-color:rgba(62,62,62,1);
|
|
2545
|
+
width: 56px;
|
|
2546
|
+
height: 56px;
|
|
2547
|
+
border-radius: 50%;
|
|
2548
|
+
margin: 0;
|
|
2549
|
+
position: absolute;
|
|
2550
|
+
top: 50%;
|
|
2551
|
+
left: 50%;
|
|
2552
|
+
translate: -50% -50%;
|
|
2553
|
+
}
|
|
2554
|
+
|
|
2555
|
+
.lexknob.sm .innerknobcircle {
|
|
2556
|
+
width: 39px;
|
|
2557
|
+
height: 39px;
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
.lexknob.bg .innerknobcircle {
|
|
2561
|
+
width: 73px;
|
|
2562
|
+
height: 73px;
|
|
2563
|
+
}
|
|
2564
|
+
|
|
2565
|
+
.lexknob .knobmarker {
|
|
2566
|
+
background-color: var(--global-selected);
|
|
2567
|
+
filter: brightness(1.5);
|
|
2568
|
+
width: 6px;
|
|
2569
|
+
height: 6px;
|
|
2570
|
+
border-radius: 50%;
|
|
2571
|
+
margin: 0 auto;
|
|
2572
|
+
margin-top: 6px;
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
.lexknob.sm .knobmarker {
|
|
2576
|
+
width: 5px;
|
|
2577
|
+
height: 5px;
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
.lexknob.bg .knobmarker {
|
|
2581
|
+
width: 7px;
|
|
2582
|
+
height: 7px;
|
|
2583
|
+
margin-top: 8px;
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2502
2586
|
/** Timeline */
|
|
2503
2587
|
|
|
2504
2588
|
.lextimeline {
|