@@ -34,20 +34,34 @@ const controls_dom = {};
34
34
const connection = navigator [ "connection" ] ;
35
35
const dpr = window [ "devicePixelRatio" ] || 1 ;
36
36
37
+ /** @type {number } */
37
38
let x ;
39
+ /** @type {number } */
38
40
let y ;
41
+ /** @type {number } */
39
42
let startX ;
43
+ /** @type {number } */
40
44
let startY ;
45
+ /** @type {number } */
41
46
let viewport_w ;
47
+ /** @type {number } */
42
48
let viewport_h ;
49
+ /** @type {number } */
43
50
let media_w ;
51
+ /** @type {number } */
44
52
let media_h ;
53
+ /** @type {number } */
45
54
let scale ;
46
55
56
+ /** @type {boolean } */
47
57
let is_down ;
58
+ /** @type {boolean } */
48
59
let dragged ;
60
+ /** @type {boolean } */
49
61
let slidable ;
62
+ /** @type {boolean } */
50
63
let toggle_autofit ;
64
+ /** @type {boolean } */
51
65
let toggle_theme ;
52
66
53
67
let current_slide ;
@@ -76,24 +90,43 @@ let animation_fade;
76
90
let animation_slide ;
77
91
let animation_custom ;
78
92
93
+ /** @type {HTMLBodyElement } */
79
94
let body ;
95
+ /** @type {HTMLDivElement= } */
80
96
let panel ;
97
+ /** @type {HTMLDivElement[] } */
81
98
let panes ;
99
+ /** @type {Image|HTMLVideoElement|HTMLElement } */
82
100
let media ;
101
+ /** @type {HTMLImageElement } */
83
102
let media_next = createElement ( "img" ) ;
103
+ /** @type {HTMLDivElement } */
84
104
let slider ;
105
+ /** @type {HTMLDivElement } */
85
106
let header ;
107
+ /** @type {HTMLDivElement } */
86
108
let footer ;
109
+ /** @type {number } */
87
110
let footer_visible = 0 ;
111
+ /** @type {HTMLDivElement } */
88
112
let title ;
113
+ /** @type {HTMLDivElement } */
89
114
let description ;
115
+ /** @type {HTMLDivElement } */
90
116
let button ;
117
+ /** @type {HTMLDivElement } */
91
118
let page_prev ;
119
+ /** @type {HTMLDivElement } */
92
120
let page_next ;
121
+ /** @type {HTMLDivElement= } */
93
122
let maximize ;
123
+ /** @type {HTMLDivElement } */
94
124
let page ;
125
+ /** @type {HTMLDivElement } */
95
126
let player ;
127
+ /** @type {HTMLDivElement } */
96
128
let progress ;
129
+ /** @type {HTMLDivElement } */
97
130
let spinner ;
98
131
99
132
let gallery ;
@@ -210,6 +243,12 @@ export function init(){
210
243
}
211
244
}
212
245
246
+ /**
247
+ * @param {string } classname
248
+ * @param {Function } fn
249
+ * @returns {HTMLDivElement }
250
+ */
251
+
213
252
export function addControl ( classname , fn ) {
214
253
215
254
//console.log("addControl", classname, fn);
@@ -223,6 +262,10 @@ export function addControl(classname, fn){
223
262
return controls_dom [ classname ] = div ;
224
263
}
225
264
265
+ /**
266
+ * @param {string } classname
267
+ */
268
+
226
269
export function removeControl ( classname ) {
227
270
228
271
//console.log("dispatch", classname);
@@ -236,10 +279,15 @@ export function removeControl(classname){
236
279
}
237
280
}
238
281
282
+ /**
283
+ * @param {Event } event
284
+ */
285
+
239
286
function dispatch ( event ) {
240
287
241
288
//console.log("dispatch");
242
289
290
+ /** @type {HTMLDivElement= } */
243
291
const target = event . target . closest ( ".spotlight" ) ;
244
292
245
293
if ( target ) {
@@ -288,6 +336,10 @@ export function show(gallery, group, index){
288
336
init_gallery ( index ) ;
289
337
}
290
338
339
+ /**
340
+ * @param {number } index
341
+ */
342
+
291
343
function init_gallery ( index ) {
292
344
293
345
//console.log("init_gallery", index);
@@ -485,6 +537,10 @@ function prepare_animation(prepare){
485
537
}
486
538
}
487
539
540
+ /**
541
+ * @param {number } index
542
+ */
543
+
488
544
function init_slide ( index ) {
489
545
490
546
//console.log("init_slide", index);
@@ -621,6 +677,10 @@ function toggle_spinner(options_spinner, is_on){
621
677
options_spinner && toggleClass ( spinner , "spin" , is_on ) ;
622
678
}
623
679
680
+ /**
681
+ * @returns {boolean }
682
+ */
683
+
624
684
function has_fullscreen ( ) {
625
685
626
686
//console.log("has_fullscreen");
@@ -744,6 +804,10 @@ function toggle_listener(install){
744
804
toggleListener ( install , window , "popstate" , history_listener ) ;
745
805
}
746
806
807
+ /**
808
+ * @param {PopStateEvent } event
809
+ */
810
+
747
811
function history_listener ( event ) {
748
812
749
813
//console.log("history_listener");
@@ -754,6 +818,10 @@ function history_listener(event) {
754
818
}
755
819
}
756
820
821
+ /**
822
+ * @param {KeyboardEvent } event
823
+ */
824
+
757
825
function key_listener ( event ) {
758
826
759
827
//console.log("key_listener");
@@ -804,6 +872,10 @@ function key_listener(event){
804
872
}
805
873
}
806
874
875
+ /**
876
+ * @param {WheelEvent } event
877
+ */
878
+
807
879
function wheel_listener ( event ) {
808
880
809
881
//console.log("wheel_listener");
@@ -888,6 +960,10 @@ function autohide(){
888
960
}
889
961
}
890
962
963
+ /**
964
+ * @param {number } cooldown
965
+ */
966
+
891
967
function schedule ( cooldown ) {
892
968
893
969
//console.log("schedule", cooldown);
@@ -933,6 +1009,10 @@ export function menu(state){
933
1009
}
934
1010
}
935
1011
1012
+ /**
1013
+ * @param {TouchEvent|MouseEvent } e
1014
+ */
1015
+
936
1016
function start ( e ) {
937
1017
938
1018
//console.log("start");
@@ -956,6 +1036,10 @@ function start(e){
956
1036
toggleAnimation ( panel ) ;
957
1037
}
958
1038
1039
+ /**
1040
+ * @param {TouchEvent|MouseEvent } e
1041
+ */
1042
+
959
1043
function end ( e ) {
960
1044
961
1045
//console.log("end");
@@ -995,6 +1079,10 @@ function end(e){
995
1079
}
996
1080
}
997
1081
1082
+ /**
1083
+ * @param {TouchEvent|MouseEvent } e
1084
+ */
1085
+
998
1086
function move ( e ) {
999
1087
1000
1088
//console.log("move");
@@ -1296,6 +1384,10 @@ export function close(hashchange){
1296
1384
options_onclose && options_onclose ( ) ;
1297
1385
}
1298
1386
1387
+ /**
1388
+ * @param {Image|HTMLVideoElement|HTMLElement } media
1389
+ */
1390
+
1299
1391
function checkout ( media ) {
1300
1392
1301
1393
//console.log("checkout");
@@ -1367,6 +1459,11 @@ export function next(e){
1367
1459
}
1368
1460
}
1369
1461
1462
+ /**
1463
+ * @param {number } slide
1464
+ * @returns {boolean= }
1465
+ */
1466
+
1370
1467
export function goto ( slide ) {
1371
1468
1372
1469
//console.log("goto", slide);
@@ -1395,6 +1492,10 @@ export function goto(slide){
1395
1492
}
1396
1493
}
1397
1494
1495
+ /**
1496
+ * @param {boolean } direction
1497
+ */
1498
+
1398
1499
function prepare ( direction ) {
1399
1500
1400
1501
//console.log("prepare", direction);
@@ -1452,6 +1553,10 @@ function prepare(direction){
1452
1553
}
1453
1554
}
1454
1555
1556
+ /**
1557
+ * @param {boolean } direction
1558
+ */
1559
+
1455
1560
function setup_page ( direction ) {
1456
1561
1457
1562
//console.log("setup_page", direction);
0 commit comments