Responsive Lightbox & Gallery - Version 2.3.5

Version Description

  • Fix: Insert gallery double preview
  • Tweak: Display of horizontal / vertical igallery images
  • Tweak: Improved gallery images loading performance
  • Tweak: Add gallery number of images displayed
Download this release

Release Info

Developer dfactory
Plugin Icon 128x128 Responsive Lightbox & Gallery
Version 2.3.5
Comparing to
See all releases

Code changes from version 2.3.4 to 2.3.5

assets/jstree/themes/default-dark/32px.png DELETED
Binary file
assets/jstree/themes/default-dark/40px.png DELETED
Binary file
assets/jstree/themes/default-dark/style.css DELETED
@@ -1,1152 +0,0 @@
1
- /* jsTree default dark theme */
2
- .jstree-node,
3
- .jstree-children,
4
- .jstree-container-ul {
5
- display: block;
6
- margin: 0;
7
- padding: 0;
8
- list-style-type: none;
9
- list-style-image: none;
10
- }
11
- .jstree-node {
12
- white-space: nowrap;
13
- }
14
- .jstree-anchor {
15
- display: inline-block;
16
- color: black;
17
- white-space: nowrap;
18
- padding: 0 4px 0 1px;
19
- margin: 0;
20
- vertical-align: top;
21
- }
22
- .jstree-anchor:focus {
23
- outline: 0;
24
- }
25
- .jstree-anchor,
26
- .jstree-anchor:link,
27
- .jstree-anchor:visited,
28
- .jstree-anchor:hover,
29
- .jstree-anchor:active {
30
- text-decoration: none;
31
- color: inherit;
32
- }
33
- .jstree-icon {
34
- display: inline-block;
35
- text-decoration: none;
36
- margin: 0;
37
- padding: 0;
38
- vertical-align: top;
39
- text-align: center;
40
- }
41
- .jstree-icon:empty {
42
- display: inline-block;
43
- text-decoration: none;
44
- margin: 0;
45
- padding: 0;
46
- vertical-align: top;
47
- text-align: center;
48
- }
49
- .jstree-ocl {
50
- cursor: pointer;
51
- }
52
- .jstree-leaf > .jstree-ocl {
53
- cursor: default;
54
- }
55
- .jstree .jstree-open > .jstree-children {
56
- display: block;
57
- }
58
- .jstree .jstree-closed > .jstree-children,
59
- .jstree .jstree-leaf > .jstree-children {
60
- display: none;
61
- }
62
- .jstree-anchor > .jstree-themeicon {
63
- margin-right: 2px;
64
- }
65
- .jstree-no-icons .jstree-themeicon,
66
- .jstree-anchor > .jstree-themeicon-hidden {
67
- display: none;
68
- }
69
- .jstree-hidden,
70
- .jstree-node.jstree-hidden {
71
- display: none;
72
- }
73
- .jstree-rtl .jstree-anchor {
74
- padding: 0 1px 0 4px;
75
- }
76
- .jstree-rtl .jstree-anchor > .jstree-themeicon {
77
- margin-left: 2px;
78
- margin-right: 0;
79
- }
80
- .jstree-rtl .jstree-node {
81
- margin-left: 0;
82
- }
83
- .jstree-rtl .jstree-container-ul > .jstree-node {
84
- margin-right: 0;
85
- }
86
- .jstree-wholerow-ul {
87
- position: relative;
88
- display: inline-block;
89
- min-width: 100%;
90
- }
91
- .jstree-wholerow-ul .jstree-leaf > .jstree-ocl {
92
- cursor: pointer;
93
- }
94
- .jstree-wholerow-ul .jstree-anchor,
95
- .jstree-wholerow-ul .jstree-icon {
96
- position: relative;
97
- }
98
- .jstree-wholerow-ul .jstree-wholerow {
99
- width: 100%;
100
- cursor: pointer;
101
- position: absolute;
102
- left: 0;
103
- -webkit-user-select: none;
104
- -moz-user-select: none;
105
- -ms-user-select: none;
106
- user-select: none;
107
- }
108
- .jstree-contextmenu .jstree-anchor {
109
- -webkit-user-select: none;
110
- /* disable selection/Copy of UIWebView */
111
- -webkit-touch-callout: none;
112
- /* disable the IOS popup when long-press on a link */
113
- }
114
- .vakata-context {
115
- display: none;
116
- }
117
- .vakata-context,
118
- .vakata-context ul {
119
- margin: 0;
120
- padding: 2px;
121
- position: absolute;
122
- background: #f5f5f5;
123
- border: 1px solid #979797;
124
- box-shadow: 2px 2px 2px #999999;
125
- }
126
- .vakata-context ul {
127
- list-style: none;
128
- left: 100%;
129
- margin-top: -2.7em;
130
- margin-left: -4px;
131
- }
132
- .vakata-context .vakata-context-right ul {
133
- left: auto;
134
- right: 100%;
135
- margin-left: auto;
136
- margin-right: -4px;
137
- }
138
- .vakata-context li {
139
- list-style: none;
140
- }
141
- .vakata-context li > a {
142
- display: block;
143
- padding: 0 2em 0 2em;
144
- text-decoration: none;
145
- width: auto;
146
- color: black;
147
- white-space: nowrap;
148
- line-height: 2.4em;
149
- text-shadow: 1px 1px 0 white;
150
- border-radius: 1px;
151
- }
152
- .vakata-context li > a:hover {
153
- position: relative;
154
- background-color: #e8eff7;
155
- box-shadow: 0 0 2px #0a6aa1;
156
- }
157
- .vakata-context li > a.vakata-context-parent {
158
- background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==");
159
- background-position: right center;
160
- background-repeat: no-repeat;
161
- }
162
- .vakata-context li > a:focus {
163
- outline: 0;
164
- }
165
- .vakata-context .vakata-context-hover > a {
166
- position: relative;
167
- background-color: #e8eff7;
168
- box-shadow: 0 0 2px #0a6aa1;
169
- }
170
- .vakata-context .vakata-context-separator > a,
171
- .vakata-context .vakata-context-separator > a:hover {
172
- background: white;
173
- border: 0;
174
- border-top: 1px solid #e2e3e3;
175
- height: 1px;
176
- min-height: 1px;
177
- max-height: 1px;
178
- padding: 0;
179
- margin: 0 0 0 2.4em;
180
- border-left: 1px solid #e0e0e0;
181
- text-shadow: 0 0 0 transparent;
182
- box-shadow: 0 0 0 transparent;
183
- border-radius: 0;
184
- }
185
- .vakata-context .vakata-contextmenu-disabled a,
186
- .vakata-context .vakata-contextmenu-disabled a:hover {
187
- color: silver;
188
- background-color: transparent;
189
- border: 0;
190
- box-shadow: 0 0 0;
191
- }
192
- .vakata-context li > a > i {
193
- text-decoration: none;
194
- display: inline-block;
195
- width: 2.4em;
196
- height: 2.4em;
197
- background: transparent;
198
- margin: 0 0 0 -2em;
199
- vertical-align: top;
200
- text-align: center;
201
- line-height: 2.4em;
202
- }
203
- .vakata-context li > a > i:empty {
204
- width: 2.4em;
205
- line-height: 2.4em;
206
- }
207
- .vakata-context li > a .vakata-contextmenu-sep {
208
- display: inline-block;
209
- width: 1px;
210
- height: 2.4em;
211
- background: white;
212
- margin: 0 0.5em 0 0;
213
- border-left: 1px solid #e2e3e3;
214
- }
215
- .vakata-context .vakata-contextmenu-shortcut {
216
- font-size: 0.8em;
217
- color: silver;
218
- opacity: 0.5;
219
- display: none;
220
- }
221
- .vakata-context-rtl ul {
222
- left: auto;
223
- right: 100%;
224
- margin-left: auto;
225
- margin-right: -4px;
226
- }
227
- .vakata-context-rtl li > a.vakata-context-parent {
228
- background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7");
229
- background-position: left center;
230
- background-repeat: no-repeat;
231
- }
232
- .vakata-context-rtl .vakata-context-separator > a {
233
- margin: 0 2.4em 0 0;
234
- border-left: 0;
235
- border-right: 1px solid #e2e3e3;
236
- }
237
- .vakata-context-rtl .vakata-context-left ul {
238
- right: auto;
239
- left: 100%;
240
- margin-left: -4px;
241
- margin-right: auto;
242
- }
243
- .vakata-context-rtl li > a > i {
244
- margin: 0 -2em 0 0;
245
- }
246
- .vakata-context-rtl li > a .vakata-contextmenu-sep {
247
- margin: 0 0 0 0.5em;
248
- border-left-color: white;
249
- background: #e2e3e3;
250
- }
251
- #jstree-marker {
252
- position: absolute;
253
- top: 0;
254
- left: 0;
255
- margin: -5px 0 0 0;
256
- padding: 0;
257
- border-right: 0;
258
- border-top: 5px solid transparent;
259
- border-bottom: 5px solid transparent;
260
- border-left: 5px solid;
261
- width: 0;
262
- height: 0;
263
- font-size: 0;
264
- line-height: 0;
265
- }
266
- #jstree-dnd {
267
- line-height: 16px;
268
- margin: 0;
269
- padding: 4px;
270
- }
271
- #jstree-dnd .jstree-icon,
272
- #jstree-dnd .jstree-copy {
273
- display: inline-block;
274
- text-decoration: none;
275
- margin: 0 2px 0 0;
276
- padding: 0;
277
- width: 16px;
278
- height: 16px;
279
- }
280
- #jstree-dnd .jstree-ok {
281
- background: green;
282
- }
283
- #jstree-dnd .jstree-er {
284
- background: red;
285
- }
286
- #jstree-dnd .jstree-copy {
287
- margin: 0 2px 0 2px;
288
- }
289
- .jstree-default-dark .jstree-node,
290
- .jstree-default-dark .jstree-icon {
291
- background-repeat: no-repeat;
292
- background-color: transparent;
293
- }
294
- .jstree-default-dark .jstree-anchor,
295
- .jstree-default-dark .jstree-animated,
296
- .jstree-default-dark .jstree-wholerow {
297
- transition: background-color 0.15s, box-shadow 0.15s;
298
- }
299
- .jstree-default-dark .jstree-hovered {
300
- background: #555555;
301
- border-radius: 2px;
302
- box-shadow: inset 0 0 1px #555555;
303
- }
304
- .jstree-default-dark .jstree-context {
305
- background: #555555;
306
- border-radius: 2px;
307
- box-shadow: inset 0 0 1px #555555;
308
- }
309
- .jstree-default-dark .jstree-clicked {
310
- background: #5fa2db;
311
- border-radius: 2px;
312
- box-shadow: inset 0 0 1px #666666;
313
- }
314
- .jstree-default-dark .jstree-no-icons .jstree-anchor > .jstree-themeicon {
315
- display: none;
316
- }
317
- .jstree-default-dark .jstree-disabled {
318
- background: transparent;
319
- color: #666666;
320
- }
321
- .jstree-default-dark .jstree-disabled.jstree-hovered {
322
- background: transparent;
323
- box-shadow: none;
324
- }
325
- .jstree-default-dark .jstree-disabled.jstree-clicked {
326
- background: #333333;
327
- }
328
- .jstree-default-dark .jstree-disabled > .jstree-icon {
329
- opacity: 0.8;
330
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
331
- /* Firefox 10+ */
332
- filter: gray;
333
- /* IE6-9 */
334
- -webkit-filter: grayscale(100%);
335
- /* Chrome 19+ & Safari 6+ */
336
- }
337
- .jstree-default-dark .jstree-search {
338
- font-style: italic;
339
- color: #ffffff;
340
- font-weight: bold;
341
- }
342
- .jstree-default-dark .jstree-no-checkboxes .jstree-checkbox {
343
- display: none !important;
344
- }
345
- .jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked {
346
- background: transparent;
347
- box-shadow: none;
348
- }
349
- .jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered {
350
- background: #555555;
351
- }
352
- .jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked {
353
- background: transparent;
354
- }
355
- .jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered {
356
- background: #555555;
357
- }
358
- .jstree-default-dark > .jstree-striped {
359
- min-width: 100%;
360
- display: inline-block;
361
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat;
362
- }
363
- .jstree-default-dark > .jstree-wholerow-ul .jstree-hovered,
364
- .jstree-default-dark > .jstree-wholerow-ul .jstree-clicked {
365
- background: transparent;
366
- box-shadow: none;
367
- border-radius: 0;
368
- }
369
- .jstree-default-dark .jstree-wholerow {
370
- -moz-box-sizing: border-box;
371
- -webkit-box-sizing: border-box;
372
- box-sizing: border-box;
373
- }
374
- .jstree-default-dark .jstree-wholerow-hovered {
375
- background: #555555;
376
- }
377
- .jstree-default-dark .jstree-wholerow-clicked {
378
- background: #5fa2db;
379
- background: -webkit-linear-gradient(top, #5fa2db 0%, #5fa2db 100%);
380
- background: linear-gradient(to bottom, #5fa2db 0%, #5fa2db 100%);
381
- }
382
- .jstree-default-dark .jstree-node {
383
- min-height: 24px;
384
- line-height: 24px;
385
- margin-left: 24px;
386
- min-width: 24px;
387
- }
388
- .jstree-default-dark .jstree-anchor {
389
- line-height: 24px;
390
- height: 24px;
391
- }
392
- .jstree-default-dark .jstree-icon {
393
- width: 24px;
394
- height: 24px;
395
- line-height: 24px;
396
- }
397
- .jstree-default-dark .jstree-icon:empty {
398
- width: 24px;
399
- height: 24px;
400
- line-height: 24px;
401
- }
402
- .jstree-default-dark.jstree-rtl .jstree-node {
403
- margin-right: 24px;
404
- }
405
- .jstree-default-dark .jstree-wholerow {
406
- height: 24px;
407
- }
408
- .jstree-default-dark .jstree-node,
409
- .jstree-default-dark .jstree-icon {
410
- background-image: url("32px.png");
411
- }
412
- .jstree-default-dark .jstree-node {
413
- background-position: -292px -4px;
414
- background-repeat: repeat-y;
415
- }
416
- .jstree-default-dark .jstree-last {
417
- background: transparent;
418
- }
419
- .jstree-default-dark .jstree-open > .jstree-ocl {
420
- background-position: -132px -4px;
421
- }
422
- .jstree-default-dark .jstree-closed > .jstree-ocl {
423
- background-position: -100px -4px;
424
- }
425
- .jstree-default-dark .jstree-leaf > .jstree-ocl {
426
- background-position: -68px -4px;
427
- }
428
- .jstree-default-dark .jstree-themeicon {
429
- background-position: -260px -4px;
430
- }
431
- .jstree-default-dark > .jstree-no-dots .jstree-node,
432
- .jstree-default-dark > .jstree-no-dots .jstree-leaf > .jstree-ocl {
433
- background: transparent;
434
- }
435
- .jstree-default-dark > .jstree-no-dots .jstree-open > .jstree-ocl {
436
- background-position: -36px -4px;
437
- }
438
- .jstree-default-dark > .jstree-no-dots .jstree-closed > .jstree-ocl {
439
- background-position: -4px -4px;
440
- }
441
- .jstree-default-dark .jstree-disabled {
442
- background: transparent;
443
- }
444
- .jstree-default-dark .jstree-disabled.jstree-hovered {
445
- background: transparent;
446
- }
447
- .jstree-default-dark .jstree-disabled.jstree-clicked {
448
- background: #efefef;
449
- }
450
- .jstree-default-dark .jstree-checkbox {
451
- background-position: -164px -4px;
452
- }
453
- .jstree-default-dark .jstree-checkbox:hover {
454
- background-position: -164px -36px;
455
- }
456
- .jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
457
- .jstree-default-dark .jstree-checked > .jstree-checkbox {
458
- background-position: -228px -4px;
459
- }
460
- .jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
461
- .jstree-default-dark .jstree-checked > .jstree-checkbox:hover {
462
- background-position: -228px -36px;
463
- }
464
- .jstree-default-dark .jstree-anchor > .jstree-undetermined {
465
- background-position: -196px -4px;
466
- }
467
- .jstree-default-dark .jstree-anchor > .jstree-undetermined:hover {
468
- background-position: -196px -36px;
469
- }
470
- .jstree-default-dark .jstree-checkbox-disabled {
471
- opacity: 0.8;
472
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
473
- /* Firefox 10+ */
474
- filter: gray;
475
- /* IE6-9 */
476
- -webkit-filter: grayscale(100%);
477
- /* Chrome 19+ & Safari 6+ */
478
- }
479
- .jstree-default-dark > .jstree-striped {
480
- background-size: auto 48px;
481
- }
482
- .jstree-default-dark.jstree-rtl .jstree-node {
483
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
484
- background-position: 100% 1px;
485
- background-repeat: repeat-y;
486
- }
487
- .jstree-default-dark.jstree-rtl .jstree-last {
488
- background: transparent;
489
- }
490
- .jstree-default-dark.jstree-rtl .jstree-open > .jstree-ocl {
491
- background-position: -132px -36px;
492
- }
493
- .jstree-default-dark.jstree-rtl .jstree-closed > .jstree-ocl {
494
- background-position: -100px -36px;
495
- }
496
- .jstree-default-dark.jstree-rtl .jstree-leaf > .jstree-ocl {
497
- background-position: -68px -36px;
498
- }
499
- .jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-node,
500
- .jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
501
- background: transparent;
502
- }
503
- .jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
504
- background-position: -36px -36px;
505
- }
506
- .jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
507
- background-position: -4px -36px;
508
- }
509
- .jstree-default-dark .jstree-themeicon-custom {
510
- background-color: transparent;
511
- background-image: none;
512
- background-position: 0 0;
513
- }
514
- .jstree-default-dark > .jstree-container-ul .jstree-loading > .jstree-ocl {
515
- background: url("throbber.gif") center center no-repeat;
516
- }
517
- .jstree-default-dark .jstree-file {
518
- background: url("32px.png") -100px -68px no-repeat;
519
- }
520
- .jstree-default-dark .jstree-folder {
521
- background: url("32px.png") -260px -4px no-repeat;
522
- }
523
- .jstree-default-dark > .jstree-container-ul > .jstree-node {
524
- margin-left: 0;
525
- margin-right: 0;
526
- }
527
- #jstree-dnd.jstree-default-dark {
528
- line-height: 24px;
529
- padding: 0 4px;
530
- }
531
- #jstree-dnd.jstree-default-dark .jstree-ok,
532
- #jstree-dnd.jstree-default-dark .jstree-er {
533
- background-image: url("32px.png");
534
- background-repeat: no-repeat;
535
- background-color: transparent;
536
- }
537
- #jstree-dnd.jstree-default-dark i {
538
- background: transparent;
539
- width: 24px;
540
- height: 24px;
541
- line-height: 24px;
542
- }
543
- #jstree-dnd.jstree-default-dark .jstree-ok {
544
- background-position: -4px -68px;
545
- }
546
- #jstree-dnd.jstree-default-dark .jstree-er {
547
- background-position: -36px -68px;
548
- }
549
- .jstree-default-dark .jstree-ellipsis {
550
- overflow: hidden;
551
- }
552
- .jstree-default-dark .jstree-ellipsis .jstree-anchor {
553
- width: calc(100% - 29px);
554
- text-overflow: ellipsis;
555
- overflow: hidden;
556
- }
557
- .jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor {
558
- width: calc(100% - 5px);
559
- }
560
- .jstree-default-dark.jstree-rtl .jstree-node {
561
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
562
- }
563
- .jstree-default-dark.jstree-rtl .jstree-last {
564
- background: transparent;
565
- }
566
- .jstree-default-dark-small .jstree-node {
567
- min-height: 18px;
568
- line-height: 18px;
569
- margin-left: 18px;
570
- min-width: 18px;
571
- }
572
- .jstree-default-dark-small .jstree-anchor {
573
- line-height: 18px;
574
- height: 18px;
575
- }
576
- .jstree-default-dark-small .jstree-icon {
577
- width: 18px;
578
- height: 18px;
579
- line-height: 18px;
580
- }
581
- .jstree-default-dark-small .jstree-icon:empty {
582
- width: 18px;
583
- height: 18px;
584
- line-height: 18px;
585
- }
586
- .jstree-default-dark-small.jstree-rtl .jstree-node {
587
- margin-right: 18px;
588
- }
589
- .jstree-default-dark-small .jstree-wholerow {
590
- height: 18px;
591
- }
592
- .jstree-default-dark-small .jstree-node,
593
- .jstree-default-dark-small .jstree-icon {
594
- background-image: url("32px.png");
595
- }
596
- .jstree-default-dark-small .jstree-node {
597
- background-position: -295px -7px;
598
- background-repeat: repeat-y;
599
- }
600
- .jstree-default-dark-small .jstree-last {
601
- background: transparent;
602
- }
603
- .jstree-default-dark-small .jstree-open > .jstree-ocl {
604
- background-position: -135px -7px;
605
- }
606
- .jstree-default-dark-small .jstree-closed > .jstree-ocl {
607
- background-position: -103px -7px;
608
- }
609
- .jstree-default-dark-small .jstree-leaf > .jstree-ocl {
610
- background-position: -71px -7px;
611
- }
612
- .jstree-default-dark-small .jstree-themeicon {
613
- background-position: -263px -7px;
614
- }
615
- .jstree-default-dark-small > .jstree-no-dots .jstree-node,
616
- .jstree-default-dark-small > .jstree-no-dots .jstree-leaf > .jstree-ocl {
617
- background: transparent;
618
- }
619
- .jstree-default-dark-small > .jstree-no-dots .jstree-open > .jstree-ocl {
620
- background-position: -39px -7px;
621
- }
622
- .jstree-default-dark-small > .jstree-no-dots .jstree-closed > .jstree-ocl {
623
- background-position: -7px -7px;
624
- }
625
- .jstree-default-dark-small .jstree-disabled {
626
- background: transparent;
627
- }
628
- .jstree-default-dark-small .jstree-disabled.jstree-hovered {
629
- background: transparent;
630
- }
631
- .jstree-default-dark-small .jstree-disabled.jstree-clicked {
632
- background: #efefef;
633
- }
634
- .jstree-default-dark-small .jstree-checkbox {
635
- background-position: -167px -7px;
636
- }
637
- .jstree-default-dark-small .jstree-checkbox:hover {
638
- background-position: -167px -39px;
639
- }
640
- .jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
641
- .jstree-default-dark-small .jstree-checked > .jstree-checkbox {
642
- background-position: -231px -7px;
643
- }
644
- .jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
645
- .jstree-default-dark-small .jstree-checked > .jstree-checkbox:hover {
646
- background-position: -231px -39px;
647
- }
648
- .jstree-default-dark-small .jstree-anchor > .jstree-undetermined {
649
- background-position: -199px -7px;
650
- }
651
- .jstree-default-dark-small .jstree-anchor > .jstree-undetermined:hover {
652
- background-position: -199px -39px;
653
- }
654
- .jstree-default-dark-small .jstree-checkbox-disabled {
655
- opacity: 0.8;
656
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
657
- /* Firefox 10+ */
658
- filter: gray;
659
- /* IE6-9 */
660
- -webkit-filter: grayscale(100%);
661
- /* Chrome 19+ & Safari 6+ */
662
- }
663
- .jstree-default-dark-small > .jstree-striped {
664
- background-size: auto 36px;
665
- }
666
- .jstree-default-dark-small.jstree-rtl .jstree-node {
667
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
668
- background-position: 100% 1px;
669
- background-repeat: repeat-y;
670
- }
671
- .jstree-default-dark-small.jstree-rtl .jstree-last {
672
- background: transparent;
673
- }
674
- .jstree-default-dark-small.jstree-rtl .jstree-open > .jstree-ocl {
675
- background-position: -135px -39px;
676
- }
677
- .jstree-default-dark-small.jstree-rtl .jstree-closed > .jstree-ocl {
678
- background-position: -103px -39px;
679
- }
680
- .jstree-default-dark-small.jstree-rtl .jstree-leaf > .jstree-ocl {
681
- background-position: -71px -39px;
682
- }
683
- .jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-node,
684
- .jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
685
- background: transparent;
686
- }
687
- .jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
688
- background-position: -39px -39px;
689
- }
690
- .jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
691
- background-position: -7px -39px;
692
- }
693
- .jstree-default-dark-small .jstree-themeicon-custom {
694
- background-color: transparent;
695
- background-image: none;
696
- background-position: 0 0;
697
- }
698
- .jstree-default-dark-small > .jstree-container-ul .jstree-loading > .jstree-ocl {
699
- background: url("throbber.gif") center center no-repeat;
700
- }
701
- .jstree-default-dark-small .jstree-file {
702
- background: url("32px.png") -103px -71px no-repeat;
703
- }
704
- .jstree-default-dark-small .jstree-folder {
705
- background: url("32px.png") -263px -7px no-repeat;
706
- }
707
- .jstree-default-dark-small > .jstree-container-ul > .jstree-node {
708
- margin-left: 0;
709
- margin-right: 0;
710
- }
711
- #jstree-dnd.jstree-default-dark-small {
712
- line-height: 18px;
713
- padding: 0 4px;
714
- }
715
- #jstree-dnd.jstree-default-dark-small .jstree-ok,
716
- #jstree-dnd.jstree-default-dark-small .jstree-er {
717
- background-image: url("32px.png");
718
- background-repeat: no-repeat;
719
- background-color: transparent;
720
- }
721
- #jstree-dnd.jstree-default-dark-small i {
722
- background: transparent;
723
- width: 18px;
724
- height: 18px;
725
- line-height: 18px;
726
- }
727
- #jstree-dnd.jstree-default-dark-small .jstree-ok {
728
- background-position: -7px -71px;
729
- }
730
- #jstree-dnd.jstree-default-dark-small .jstree-er {
731
- background-position: -39px -71px;
732
- }
733
- .jstree-default-dark-small .jstree-ellipsis {
734
- overflow: hidden;
735
- }
736
- .jstree-default-dark-small .jstree-ellipsis .jstree-anchor {
737
- width: calc(100% - 23px);
738
- text-overflow: ellipsis;
739
- overflow: hidden;
740
- }
741
- .jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor {
742
- width: calc(100% - 5px);
743
- }
744
- .jstree-default-dark-small.jstree-rtl .jstree-node {
745
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==");
746
- }
747
- .jstree-default-dark-small.jstree-rtl .jstree-last {
748
- background: transparent;
749
- }
750
- .jstree-default-dark-large .jstree-node {
751
- min-height: 32px;
752
- line-height: 32px;
753
- margin-left: 32px;
754
- min-width: 32px;
755
- }
756
- .jstree-default-dark-large .jstree-anchor {
757
- line-height: 32px;
758
- height: 32px;
759
- }
760
- .jstree-default-dark-large .jstree-icon {
761
- width: 32px;
762
- height: 32px;
763
- line-height: 32px;
764
- }
765
- .jstree-default-dark-large .jstree-icon:empty {
766
- width: 32px;
767
- height: 32px;
768
- line-height: 32px;
769
- }
770
- .jstree-default-dark-large.jstree-rtl .jstree-node {
771
- margin-right: 32px;
772
- }
773
- .jstree-default-dark-large .jstree-wholerow {
774
- height: 32px;
775
- }
776
- .jstree-default-dark-large .jstree-node,
777
- .jstree-default-dark-large .jstree-icon {
778
- background-image: url("32px.png");
779
- }
780
- .jstree-default-dark-large .jstree-node {
781
- background-position: -288px 0px;
782
- background-repeat: repeat-y;
783
- }
784
- .jstree-default-dark-large .jstree-last {
785
- background: transparent;
786
- }
787
- .jstree-default-dark-large .jstree-open > .jstree-ocl {
788
- background-position: -128px 0px;
789
- }
790
- .jstree-default-dark-large .jstree-closed > .jstree-ocl {
791
- background-position: -96px 0px;
792
- }
793
- .jstree-default-dark-large .jstree-leaf > .jstree-ocl {
794
- background-position: -64px 0px;
795
- }
796
- .jstree-default-dark-large .jstree-themeicon {
797
- background-position: -256px 0px;
798
- }
799
- .jstree-default-dark-large > .jstree-no-dots .jstree-node,
800
- .jstree-default-dark-large > .jstree-no-dots .jstree-leaf > .jstree-ocl {
801
- background: transparent;
802
- }
803
- .jstree-default-dark-large > .jstree-no-dots .jstree-open > .jstree-ocl {
804
- background-position: -32px 0px;
805
- }
806
- .jstree-default-dark-large > .jstree-no-dots .jstree-closed > .jstree-ocl {
807
- background-position: 0px 0px;
808
- }
809
- .jstree-default-dark-large .jstree-disabled {
810
- background: transparent;
811
- }
812
- .jstree-default-dark-large .jstree-disabled.jstree-hovered {
813
- background: transparent;
814
- }
815
- .jstree-default-dark-large .jstree-disabled.jstree-clicked {
816
- background: #efefef;
817
- }
818
- .jstree-default-dark-large .jstree-checkbox {
819
- background-position: -160px 0px;
820
- }
821
- .jstree-default-dark-large .jstree-checkbox:hover {
822
- background-position: -160px -32px;
823
- }
824
- .jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
825
- .jstree-default-dark-large .jstree-checked > .jstree-checkbox {
826
- background-position: -224px 0px;
827
- }
828
- .jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
829
- .jstree-default-dark-large .jstree-checked > .jstree-checkbox:hover {
830
- background-position: -224px -32px;
831
- }
832
- .jstree-default-dark-large .jstree-anchor > .jstree-undetermined {
833
- background-position: -192px 0px;
834
- }
835
- .jstree-default-dark-large .jstree-anchor > .jstree-undetermined:hover {
836
- background-position: -192px -32px;
837
- }
838
- .jstree-default-dark-large .jstree-checkbox-disabled {
839
- opacity: 0.8;
840
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
841
- /* Firefox 10+ */
842
- filter: gray;
843
- /* IE6-9 */
844
- -webkit-filter: grayscale(100%);
845
- /* Chrome 19+ & Safari 6+ */
846
- }
847
- .jstree-default-dark-large > .jstree-striped {
848
- background-size: auto 64px;
849
- }
850
- .jstree-default-dark-large.jstree-rtl .jstree-node {
851
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
852
- background-position: 100% 1px;
853
- background-repeat: repeat-y;
854
- }
855
- .jstree-default-dark-large.jstree-rtl .jstree-last {
856
- background: transparent;
857
- }
858
- .jstree-default-dark-large.jstree-rtl .jstree-open > .jstree-ocl {
859
- background-position: -128px -32px;
860
- }
861
- .jstree-default-dark-large.jstree-rtl .jstree-closed > .jstree-ocl {
862
- background-position: -96px -32px;
863
- }
864
- .jstree-default-dark-large.jstree-rtl .jstree-leaf > .jstree-ocl {
865
- background-position: -64px -32px;
866
- }
867
- .jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-node,
868
- .jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
869
- background: transparent;
870
- }
871
- .jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
872
- background-position: -32px -32px;
873
- }
874
- .jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
875
- background-position: 0px -32px;
876
- }
877
- .jstree-default-dark-large .jstree-themeicon-custom {
878
- background-color: transparent;
879
- background-image: none;
880
- background-position: 0 0;
881
- }
882
- .jstree-default-dark-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
883
- background: url("throbber.gif") center center no-repeat;
884
- }
885
- .jstree-default-dark-large .jstree-file {
886
- background: url("32px.png") -96px -64px no-repeat;
887
- }
888
- .jstree-default-dark-large .jstree-folder {
889
- background: url("32px.png") -256px 0px no-repeat;
890
- }
891
- .jstree-default-dark-large > .jstree-container-ul > .jstree-node {
892
- margin-left: 0;
893
- margin-right: 0;
894
- }
895
- #jstree-dnd.jstree-default-dark-large {
896
- line-height: 32px;
897
- padding: 0 4px;
898
- }
899
- #jstree-dnd.jstree-default-dark-large .jstree-ok,
900
- #jstree-dnd.jstree-default-dark-large .jstree-er {
901
- background-image: url("32px.png");
902
- background-repeat: no-repeat;
903
- background-color: transparent;
904
- }
905
- #jstree-dnd.jstree-default-dark-large i {
906
- background: transparent;
907
- width: 32px;
908
- height: 32px;
909
- line-height: 32px;
910
- }
911
- #jstree-dnd.jstree-default-dark-large .jstree-ok {
912
- background-position: 0px -64px;
913
- }
914
- #jstree-dnd.jstree-default-dark-large .jstree-er {
915
- background-position: -32px -64px;
916
- }
917
- .jstree-default-dark-large .jstree-ellipsis {
918
- overflow: hidden;
919
- }
920
- .jstree-default-dark-large .jstree-ellipsis .jstree-anchor {
921
- width: calc(100% - 37px);
922
- text-overflow: ellipsis;
923
- overflow: hidden;
924
- }
925
- .jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor {
926
- width: calc(100% - 5px);
927
- }
928
- .jstree-default-dark-large.jstree-rtl .jstree-node {
929
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==");
930
- }
931
- .jstree-default-dark-large.jstree-rtl .jstree-last {
932
- background: transparent;
933
- }
934
- @media (max-width: 768px) {
935
- #jstree-dnd.jstree-dnd-responsive {
936
- line-height: 40px;
937
- font-weight: bold;
938
- font-size: 1.1em;
939
- text-shadow: 1px 1px white;
940
- }
941
- #jstree-dnd.jstree-dnd-responsive > i {
942
- background: transparent;
943
- width: 40px;
944
- height: 40px;
945
- }
946
- #jstree-dnd.jstree-dnd-responsive > .jstree-ok {
947
- background-image: url("40px.png");
948
- background-position: 0 -200px;
949
- background-size: 120px 240px;
950
- }
951
- #jstree-dnd.jstree-dnd-responsive > .jstree-er {
952
- background-image: url("40px.png");
953
- background-position: -40px -200px;
954
- background-size: 120px 240px;
955
- }
956
- #jstree-marker.jstree-dnd-responsive {
957
- border-left-width: 10px;
958
- border-top-width: 10px;
959
- border-bottom-width: 10px;
960
- margin-top: -10px;
961
- }
962
- }
963
- @media (max-width: 768px) {
964
- .jstree-default-dark-responsive {
965
- /*
966
- .jstree-open > .jstree-ocl,
967
- .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; }
968
- */
969
- }
970
- .jstree-default-dark-responsive .jstree-icon {
971
- background-image: url("40px.png");
972
- }
973
- .jstree-default-dark-responsive .jstree-node,
974
- .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl {
975
- background: transparent;
976
- }
977
- .jstree-default-dark-responsive .jstree-node {
978
- min-height: 40px;
979
- line-height: 40px;
980
- margin-left: 40px;
981
- min-width: 40px;
982
- white-space: nowrap;
983
- }
984
- .jstree-default-dark-responsive .jstree-anchor {
985
- line-height: 40px;
986
- height: 40px;
987
- }
988
- .jstree-default-dark-responsive .jstree-icon,
989
- .jstree-default-dark-responsive .jstree-icon:empty {
990
- width: 40px;
991
- height: 40px;
992
- line-height: 40px;
993
- }
994
- .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node {
995
- margin-left: 0;
996
- }
997
- .jstree-default-dark-responsive.jstree-rtl .jstree-node {
998
- margin-left: 0;
999
- margin-right: 40px;
1000
- background: transparent;
1001
- }
1002
- .jstree-default-dark-responsive.jstree-rtl .jstree-container-ul > .jstree-node {
1003
- margin-right: 0;
1004
- }
1005
- .jstree-default-dark-responsive .jstree-ocl,
1006
- .jstree-default-dark-responsive .jstree-themeicon,
1007
- .jstree-default-dark-responsive .jstree-checkbox {
1008
- background-size: 120px 240px;
1009
- }
1010
- .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl,
1011
- .jstree-default-dark-responsive.jstree-rtl .jstree-leaf > .jstree-ocl {
1012
- background: transparent;
1013
- }
1014
- .jstree-default-dark-responsive .jstree-open > .jstree-ocl {
1015
- background-position: 0 0px !important;
1016
- }
1017
- .jstree-default-dark-responsive .jstree-closed > .jstree-ocl {
1018
- background-position: 0 -40px !important;
1019
- }
1020
- .jstree-default-dark-responsive.jstree-rtl .jstree-closed > .jstree-ocl {
1021
- background-position: -40px 0px !important;
1022
- }
1023
- .jstree-default-dark-responsive .jstree-themeicon {
1024
- background-position: -40px -40px;
1025
- }
1026
- .jstree-default-dark-responsive .jstree-checkbox,
1027
- .jstree-default-dark-responsive .jstree-checkbox:hover {
1028
- background-position: -40px -80px;
1029
- }
1030
- .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
1031
- .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
1032
- .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox,
1033
- .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox:hover {
1034
- background-position: 0 -80px;
1035
- }
1036
- .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined,
1037
- .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined:hover {
1038
- background-position: 0 -120px;
1039
- }
1040
- .jstree-default-dark-responsive .jstree-anchor {
1041
- font-weight: bold;
1042
- font-size: 1.1em;
1043
- text-shadow: 1px 1px white;
1044
- }
1045
- .jstree-default-dark-responsive > .jstree-striped {
1046
- background: transparent;
1047
- }
1048
- .jstree-default-dark-responsive .jstree-wholerow {
1049
- border-top: 1px solid #666666;
1050
- border-bottom: 1px solid #000000;
1051
- background: #333333;
1052
- height: 40px;
1053
- }
1054
- .jstree-default-dark-responsive .jstree-wholerow-hovered {
1055
- background: #555555;
1056
- }
1057
- .jstree-default-dark-responsive .jstree-wholerow-clicked {
1058
- background: #5fa2db;
1059
- }
1060
- .jstree-default-dark-responsive .jstree-children .jstree-last > .jstree-wholerow {
1061
- box-shadow: inset 0 -6px 3px -5px #111111;
1062
- }
1063
- .jstree-default-dark-responsive .jstree-children .jstree-open > .jstree-wholerow {
1064
- box-shadow: inset 0 6px 3px -5px #111111;
1065
- border-top: 0;
1066
- }
1067
- .jstree-default-dark-responsive .jstree-children .jstree-open + .jstree-open {
1068
- box-shadow: none;
1069
- }
1070
- .jstree-default-dark-responsive .jstree-node,
1071
- .jstree-default-dark-responsive .jstree-icon,
1072
- .jstree-default-dark-responsive .jstree-node > .jstree-ocl,
1073
- .jstree-default-dark-responsive .jstree-themeicon,
1074
- .jstree-default-dark-responsive .jstree-checkbox {
1075
- background-image: url("40px.png");
1076
- background-size: 120px 240px;
1077
- }
1078
- .jstree-default-dark-responsive .jstree-node {
1079
- background-position: -80px 0;
1080
- background-repeat: repeat-y;
1081
- }
1082
- .jstree-default-dark-responsive .jstree-last {
1083
- background: transparent;
1084
- }
1085
- .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl {
1086
- background-position: -40px -120px;
1087
- }
1088
- .jstree-default-dark-responsive .jstree-last > .jstree-ocl {
1089
- background-position: -40px -160px;
1090
- }
1091
- .jstree-default-dark-responsive .jstree-themeicon-custom {
1092
- background-color: transparent;
1093
- background-image: none;
1094
- background-position: 0 0;
1095
- }
1096
- .jstree-default-dark-responsive .jstree-file {
1097
- background: url("40px.png") 0 -160px no-repeat;
1098
- background-size: 120px 240px;
1099
- }
1100
- .jstree-default-dark-responsive .jstree-folder {
1101
- background: url("40px.png") -40px -40px no-repeat;
1102
- background-size: 120px 240px;
1103
- }
1104
- .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node {
1105
- margin-left: 0;
1106
- margin-right: 0;
1107
- }
1108
- }
1109
- .jstree-default-dark {
1110
- background: #333;
1111
- }
1112
- .jstree-default-dark .jstree-anchor {
1113
- color: #999;
1114
- text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
1115
- }
1116
- .jstree-default-dark .jstree-clicked,
1117
- .jstree-default-dark .jstree-checked {
1118
- color: white;
1119
- }
1120
- .jstree-default-dark .jstree-hovered {
1121
- color: white;
1122
- }
1123
- #jstree-marker.jstree-default-dark {
1124
- border-left-color: #999;
1125
- background: transparent;
1126
- }
1127
- .jstree-default-dark .jstree-anchor > .jstree-icon {
1128
- opacity: 0.75;
1129
- }
1130
- .jstree-default-dark .jstree-clicked > .jstree-icon,
1131
- .jstree-default-dark .jstree-hovered > .jstree-icon,
1132
- .jstree-default-dark .jstree-checked > .jstree-icon {
1133
- opacity: 1;
1134
- }
1135
- .jstree-default-dark.jstree-rtl .jstree-node {
1136
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
1137
- }
1138
- .jstree-default-dark.jstree-rtl .jstree-last {
1139
- background: transparent;
1140
- }
1141
- .jstree-default-dark-small.jstree-rtl .jstree-node {
1142
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==");
1143
- }
1144
- .jstree-default-dark-small.jstree-rtl .jstree-last {
1145
- background: transparent;
1146
- }
1147
- .jstree-default-dark-large.jstree-rtl .jstree-node {
1148
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==");
1149
- }
1150
- .jstree-default-dark-large.jstree-rtl .jstree-last {
1151
- background: transparent;
1152
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/jstree/themes/default-dark/style.min.css DELETED
@@ -1 +0,0 @@
1
- .jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jstree-contextmenu .jstree-anchor{-webkit-user-select:none;-webkit-touch-callout:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default-dark .jstree-anchor,.jstree-default-dark .jstree-animated,.jstree-default-dark .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default-dark .jstree-hovered{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-context{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-clicked{background:#5fa2db;border-radius:2px;box-shadow:inset 0 0 1px #666}.jstree-default-dark .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default-dark .jstree-disabled{background:0 0;color:#666}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#333}.jstree-default-dark .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark .jstree-search{font-style:italic;color:#fff;font-weight:700}.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#555}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#555}.jstree-default-dark>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default-dark>.jstree-wholerow-ul .jstree-hovered,.jstree-default-dark>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default-dark .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default-dark .jstree-wholerow-hovered{background:#555}.jstree-default-dark .jstree-wholerow-clicked{background:#5fa2db;background:-webkit-linear-gradient(top,#5fa2db 0,#5fa2db 100%);background:linear-gradient(to bottom,#5fa2db 0,#5fa2db 100%)}.jstree-default-dark .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default-dark .jstree-anchor{line-height:24px;height:24px}.jstree-default-dark .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default-dark .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default-dark.jstree-rtl .jstree-node{margin-right:24px}.jstree-default-dark .jstree-wholerow{height:24px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-image:url(32px.png)}.jstree-default-dark .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default-dark .jstree-last{background:0 0}.jstree-default-dark .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default-dark .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default-dark .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default-dark .jstree-themeicon{background-position:-260px -4px}.jstree-default-dark>.jstree-no-dots .jstree-node,.jstree-default-dark>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default-dark>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default-dark .jstree-disabled{background:0 0}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark .jstree-checkbox{background-position:-164px -4px}.jstree-default-dark .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default-dark .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default-dark .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default-dark .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark>.jstree-striped{background-size:auto 48px}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default-dark.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default-dark.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default-dark .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default-dark .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default-dark>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default-dark .jstree-ok,#jstree-dnd.jstree-default-dark .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default-dark .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default-dark .jstree-er{background-position:-36px -68px}.jstree-default-dark .jstree-ellipsis{overflow:hidden}.jstree-default-dark .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-dark-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-dark-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-dark-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-dark-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-dark-small .jstree-wholerow{height:18px}.jstree-default-dark-small .jstree-node,.jstree-default-dark-small .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-dark-small .jstree-last{background:0 0}.jstree-default-dark-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-dark-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-dark-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-dark-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-node,.jstree-default-dark-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-dark-small .jstree-disabled{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-dark-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-dark-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-small>.jstree-striped{background-size:auto 36px}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-dark-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-dark-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-dark-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-dark-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-dark-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-dark-small .jstree-ok,#jstree-dnd.jstree-default-dark-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-dark-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-dark-small .jstree-er{background-position:-39px -71px}.jstree-default-dark-small .jstree-ellipsis{overflow:hidden}.jstree-default-dark-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-dark-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-dark-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-dark-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-dark-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-dark-large .jstree-wholerow{height:32px}.jstree-default-dark-large .jstree-node,.jstree-default-dark-large .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-dark-large .jstree-last{background:0 0}.jstree-default-dark-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-dark-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-dark-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-dark-large .jstree-themeicon{background-position:-256px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-node,.jstree-default-dark-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-dark-large .jstree-disabled{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-large .jstree-checkbox{background-position:-160px 0}.jstree-default-dark-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-dark-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-large>.jstree-striped{background-size:auto 64px}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-dark-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-dark-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-dark-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-dark-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-dark-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-dark-large .jstree-ok,#jstree-dnd.jstree-default-dark-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-dark-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-dark-large .jstree-er{background-position:-32px -64px}.jstree-default-dark-large .jstree-ellipsis{overflow:hidden}.jstree-default-dark-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-dark-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-dark-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-dark-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-dark-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-dark-responsive .jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl,.jstree-default-dark-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-dark-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-dark-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-dark-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-dark-responsive .jstree-checkbox,.jstree-default-dark-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-dark-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-dark-responsive>.jstree-striped{background:0 0}.jstree-default-dark-responsive .jstree-wholerow{border-top:1px solid #666;border-bottom:1px solid #000;background:#333;height:40px}.jstree-default-dark-responsive .jstree-wholerow-hovered{background:#555}.jstree-default-dark-responsive .jstree-wholerow-clicked{background:#5fa2db}.jstree-default-dark-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #111}.jstree-default-dark-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #111;border-top:0}.jstree-default-dark-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-node>.jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-dark-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-dark-responsive .jstree-last{background:0 0}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-dark-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-dark-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.jstree-default-dark{background:#333}.jstree-default-dark .jstree-anchor{color:#999;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.jstree-default-dark .jstree-clicked,.jstree-default-dark .jstree-checked{color:#fff}.jstree-default-dark .jstree-hovered{color:#fff}#jstree-marker.jstree-default-dark{border-left-color:#999;background:0 0}.jstree-default-dark .jstree-anchor>.jstree-icon{opacity:.75}.jstree-default-dark .jstree-clicked>.jstree-icon,.jstree-default-dark .jstree-hovered>.jstree-icon,.jstree-default-dark .jstree-checked>.jstree-icon{opacity:1}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}
 
assets/jstree/themes/default-dark/throbber.gif DELETED
Binary file
assets/jstree/themes/gray/32px.png DELETED
Binary file
assets/jstree/themes/gray/40px.png DELETED
Binary file
assets/jstree/themes/gray/style.css DELETED
@@ -1,1259 +0,0 @@
1
- /* jsTree gray theme */
2
- .jstree-node,
3
- .jstree-children,
4
- .jstree-container-ul {
5
- display: block;
6
- margin: 0;
7
- padding: 0;
8
- list-style-type: none;
9
- list-style-image: none
10
- }
11
-
12
- .jstree-node {
13
- white-space: nowrap
14
- }
15
-
16
- .jstree-anchor {
17
- display: inline-block;
18
- color: #000;
19
- white-space: nowrap;
20
- padding: 0 4px 0 1px;
21
- margin: 0;
22
- vertical-align: top
23
- }
24
-
25
- .jstree-anchor:focus {
26
- outline: 0
27
- }
28
-
29
- .jstree-anchor,
30
- .jstree-anchor:link,
31
- .jstree-anchor:visited,
32
- .jstree-anchor:hover,
33
- .jstree-anchor:active {
34
- text-decoration: none;
35
- color: inherit
36
- }
37
-
38
- .jstree-icon {
39
- display: inline-block;
40
- text-decoration: none;
41
- margin: 0;
42
- padding: 0;
43
- vertical-align: top;
44
- text-align: center
45
- }
46
-
47
- .jstree-icon:empty {
48
- display: inline-block;
49
- text-decoration: none;
50
- margin: 0;
51
- padding: 0;
52
- vertical-align: top;
53
- text-align: center
54
- }
55
-
56
- .jstree-ocl {
57
- cursor: pointer
58
- }
59
-
60
- .jstree-leaf>.jstree-ocl {
61
- cursor: default
62
- }
63
-
64
- .jstree .jstree-open>.jstree-children {
65
- display: block
66
- }
67
-
68
- .jstree .jstree-closed>.jstree-children,
69
- .jstree .jstree-leaf>.jstree-children {
70
- display: none
71
- }
72
-
73
- .jstree-anchor>.jstree-themeicon {
74
- margin-right: 2px
75
- }
76
-
77
- .jstree-no-icons .jstree-themeicon,
78
- .jstree-anchor>.jstree-themeicon-hidden {
79
- display: none
80
- }
81
-
82
- .jstree-hidden,
83
- .jstree-node.jstree-hidden {
84
- display: none
85
- }
86
-
87
- .jstree-rtl .jstree-anchor {
88
- padding: 0 1px 0 4px
89
- }
90
-
91
- .jstree-rtl .jstree-anchor>.jstree-themeicon {
92
- margin-left: 2px;
93
- margin-right: 0
94
- }
95
-
96
- .jstree-rtl .jstree-node {
97
- margin-left: 0
98
- }
99
-
100
- .jstree-rtl .jstree-container-ul>.jstree-node {
101
- margin-right: 0
102
- }
103
-
104
- .jstree-wholerow-ul {
105
- position: relative;
106
- display: inline-block;
107
- min-width: 100%
108
- }
109
-
110
- .jstree-wholerow-ul .jstree-leaf>.jstree-ocl {
111
- cursor: pointer
112
- }
113
-
114
- .jstree-wholerow-ul .jstree-anchor,
115
- .jstree-wholerow-ul .jstree-icon {
116
- position: relative
117
- }
118
-
119
- .jstree-wholerow-ul .jstree-wholerow {
120
- width: 100%;
121
- cursor: pointer;
122
- position: absolute;
123
- left: 0;
124
- -webkit-user-select: none;
125
- -moz-user-select: none;
126
- -ms-user-select: none;
127
- user-select: none
128
- }
129
-
130
- .vakata-context {
131
- display: none
132
- }
133
-
134
- .vakata-context,
135
- .vakata-context ul {
136
- margin: 0;
137
- padding: 2px;
138
- position: absolute;
139
- background: #f5f5f5;
140
- border: 1px solid #979797;
141
- box-shadow: 2px 2px 2px #999
142
- }
143
-
144
- .vakata-context ul {
145
- list-style: none;
146
- left: 100%;
147
- margin-top: -2.7em;
148
- margin-left: -4px
149
- }
150
-
151
- .vakata-context .vakata-context-right ul {
152
- left: auto;
153
- right: 100%;
154
- margin-left: auto;
155
- margin-right: -4px
156
- }
157
-
158
- .vakata-context li {
159
- list-style: none
160
- }
161
-
162
- .vakata-context li>a {
163
- display: block;
164
- padding: 0 2em;
165
- text-decoration: none;
166
- width: auto;
167
- color: #000;
168
- white-space: nowrap;
169
- line-height: 2.4em;
170
- text-shadow: 1px 1px 0 #fff;
171
- border-radius: 1px
172
- }
173
-
174
- .vakata-context li>a:hover {
175
- position: relative;
176
- background-color: #e8eff7;
177
- box-shadow: 0 0 2px #0a6aa1
178
- }
179
-
180
- .vakata-context li>a.vakata-context-parent {
181
- background-image: url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);
182
- background-position: right center;
183
- background-repeat: no-repeat
184
- }
185
-
186
- .vakata-context li>a:focus {
187
- outline: 0
188
- }
189
-
190
- .vakata-context .vakata-context-hover>a {
191
- position: relative;
192
- background-color: #e8eff7;
193
- box-shadow: 0 0 2px #0a6aa1
194
- }
195
-
196
- .vakata-context .vakata-context-separator>a,
197
- .vakata-context .vakata-context-separator>a:hover {
198
- background: #fff;
199
- border: 0;
200
- border-top: 1px solid #e2e3e3;
201
- height: 1px;
202
- min-height: 1px;
203
- max-height: 1px;
204
- padding: 0;
205
- margin: 0 0 0 2.4em;
206
- border-left: 1px solid #e0e0e0;
207
- text-shadow: 0 0 0 transparent;
208
- box-shadow: 0 0 0 transparent;
209
- border-radius: 0
210
- }
211
-
212
- .vakata-context .vakata-contextmenu-disabled a,
213
- .vakata-context .vakata-contextmenu-disabled a:hover {
214
- color: silver;
215
- background-color: transparent;
216
- border: 0;
217
- box-shadow: 0 0 0
218
- }
219
-
220
- .vakata-context li>a>i {
221
- text-decoration: none;
222
- display: inline-block;
223
- width: 2.4em;
224
- height: 2.4em;
225
- background: 0 0;
226
- margin: 0 0 0 -2em;
227
- vertical-align: top;
228
- text-align: center;
229
- line-height: 2.4em
230
- }
231
-
232
- .vakata-context li>a>i:empty {
233
- width: 2.4em;
234
- line-height: 2.4em
235
- }
236
-
237
- .vakata-context li>a .vakata-contextmenu-sep {
238
- display: inline-block;
239
- width: 1px;
240
- height: 2.4em;
241
- background: #fff;
242
- margin: 0 .5em 0 0;
243
- border-left: 1px solid #e2e3e3
244
- }
245
-
246
- .vakata-context .vakata-contextmenu-shortcut {
247
- font-size: .8em;
248
- color: silver;
249
- opacity: .5;
250
- display: none
251
- }
252
-
253
- .vakata-context-rtl ul {
254
- left: auto;
255
- right: 100%;
256
- margin-left: auto;
257
- margin-right: -4px
258
- }
259
-
260
- .vakata-context-rtl li>a.vakata-context-parent {
261
- background-image: url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);
262
- background-position: left center;
263
- background-repeat: no-repeat
264
- }
265
-
266
- .vakata-context-rtl .vakata-context-separator>a {
267
- margin: 0 2.4em 0 0;
268
- border-left: 0;
269
- border-right: 1px solid #e2e3e3
270
- }
271
-
272
- .vakata-context-rtl .vakata-context-left ul {
273
- right: auto;
274
- left: 100%;
275
- margin-left: -4px;
276
- margin-right: auto
277
- }
278
-
279
- .vakata-context-rtl li>a>i {
280
- margin: 0 -2em 0 0
281
- }
282
-
283
- .vakata-context-rtl li>a .vakata-contextmenu-sep {
284
- margin: 0 0 0 .5em;
285
- border-left-color: #fff;
286
- background: #e2e3e3
287
- }
288
-
289
- #jstree-marker {
290
- position: absolute;
291
- top: 0;
292
- left: 0;
293
- margin: -5px 0 0 0;
294
- padding: 0;
295
- border-right: 0;
296
- border-top: 5px solid transparent;
297
- border-bottom: 5px solid transparent;
298
- border-left: 5px solid;
299
- width: 0;
300
- height: 0;
301
- font-size: 0;
302
- line-height: 0
303
- }
304
-
305
- #jstree-dnd {
306
- line-height: 16px;
307
- margin: 0;
308
- padding: 4px
309
- }
310
-
311
- #jstree-dnd .jstree-icon,
312
- #jstree-dnd .jstree-copy {
313
- display: inline-block;
314
- text-decoration: none;
315
- margin: 0 2px 0 0;
316
- padding: 0;
317
- width: 16px;
318
- height: 16px
319
- }
320
-
321
- #jstree-dnd .jstree-ok {
322
- background: green
323
- }
324
-
325
- #jstree-dnd .jstree-er {
326
- background: red
327
- }
328
-
329
- #jstree-dnd .jstree-copy {
330
- margin: 0 2px
331
- }
332
-
333
- .jstree-gray .jstree-node,
334
- .jstree-gray .jstree-icon {
335
- background-repeat: no-repeat;
336
- background-color: transparent
337
- }
338
-
339
- .jstree-gray .jstree-anchor,
340
- .jstree-gray .jstree-wholerow {
341
- transition: background-color .15s, box-shadow .15s
342
- }
343
-
344
- .jstree-gray .jstree-hovered {
345
- background: #dee0e2;
346
- border-radius: 2px;
347
- box-shadow: inset 0 0 1px #ccc
348
- }
349
-
350
- .jstree-gray .jstree-context {
351
- background: #e7f4f9;
352
- border-radius: 2px;
353
- box-shadow: inset 0 0 1px #ccc
354
- }
355
-
356
- .jstree-gray .jstree-clicked {
357
- background: #b4b9be;
358
- border-radius: 2px;
359
- box-shadow: inset 0 0 1px #999
360
- }
361
-
362
- .jstree-gray .jstree-no-icons .jstree-anchor>.jstree-themeicon {
363
- display: none
364
- }
365
-
366
- .jstree-gray .jstree-disabled {
367
- background: 0 0;
368
- color: #666
369
- }
370
-
371
- .jstree-gray .jstree-disabled.jstree-hovered {
372
- background: 0 0;
373
- box-shadow: none
374
- }
375
-
376
- .jstree-gray .jstree-disabled.jstree-clicked {
377
- background: #efefef
378
- }
379
-
380
- .jstree-gray .jstree-disabled>.jstree-icon {
381
- opacity: .8;
382
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
383
- filter: gray;
384
- -webkit-filter: grayscale(100%)
385
- }
386
-
387
- .jstree-gray .jstree-search {
388
- font-style: italic;
389
- color: #8b0000;
390
- font-weight: 700
391
- }
392
-
393
- .jstree-gray .jstree-no-checkboxes .jstree-checkbox {
394
- display: none!important
395
- }
396
-
397
- .jstree-gray.jstree-checkbox-no-clicked .jstree-clicked {
398
- background: 0 0;
399
- box-shadow: none
400
- }
401
-
402
- .jstree-gray.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered {
403
- background: #e7f4f9
404
- }
405
-
406
- .jstree-gray.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked {
407
- background: 0 0
408
- }
409
-
410
- .jstree-gray.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered {
411
- background: #e7f4f9
412
- }
413
-
414
- .jstree-gray>.jstree-striped {
415
- min-width: 100%;
416
- display: inline-block;
417
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat
418
- }
419
-
420
- .jstree-gray>.jstree-wholerow-ul .jstree-hovered,
421
- .jstree-gray>.jstree-wholerow-ul .jstree-clicked {
422
- background: 0 0;
423
- box-shadow: none;
424
- border-radius: 0
425
- }
426
-
427
- .jstree-gray .jstree-wholerow {
428
- -moz-box-sizing: border-box;
429
- -webkit-box-sizing: border-box;
430
- box-sizing: border-box
431
- }
432
-
433
- .jstree-gray .jstree-wholerow-hovered {
434
- background: #dee0e2;
435
- }
436
-
437
- .jstree-gray .jstree-wholerow-clicked {
438
- background: #b4b9be;
439
- }
440
-
441
- .jstree-gray .jstree-node {
442
- min-height: 24px;
443
- line-height: 24px;
444
- margin-left: 24px;
445
- min-width: 24px
446
- }
447
-
448
- .jstree-gray .jstree-anchor {
449
- line-height: 24px;
450
- height: 24px
451
- }
452
-
453
- .jstree-gray .jstree-icon {
454
- width: 24px;
455
- height: 24px;
456
- line-height: 24px
457
- }
458
-
459
- .jstree-gray .jstree-icon:empty {
460
- width: 24px;
461
- height: 24px;
462
- line-height: 24px
463
- }
464
-
465
- .jstree-gray.jstree-rtl .jstree-node {
466
- margin-right: 24px
467
- }
468
-
469
- .jstree-gray .jstree-wholerow {
470
- height: 24px
471
- }
472
-
473
- .jstree-gray .jstree-node,
474
- .jstree-gray .jstree-icon {
475
- background-image: url(32px.png)
476
- }
477
-
478
- .jstree-gray .jstree-node {
479
- background-position: -292px -4px;
480
- background-repeat: repeat-y
481
- }
482
-
483
- .jstree-gray .jstree-last {
484
- background: 0 0
485
- }
486
-
487
- .jstree-gray .jstree-open>.jstree-ocl {
488
- background-position: -132px -4px
489
- }
490
-
491
- .jstree-gray .jstree-closed>.jstree-ocl {
492
- background-position: -100px -4px
493
- }
494
-
495
- .jstree-gray .jstree-leaf>.jstree-ocl {
496
- background-position: -68px -4px
497
- }
498
-
499
- .jstree-gray .jstree-themeicon {
500
- background-position: -260px -4px
501
- }
502
-
503
- .jstree-gray>.jstree-no-dots .jstree-node,
504
- .jstree-gray>.jstree-no-dots .jstree-leaf>.jstree-ocl {
505
- background: 0 0
506
- }
507
-
508
- .jstree-gray>.jstree-no-dots .jstree-open>.jstree-ocl {
509
- background-position: -36px -4px
510
- }
511
-
512
- .jstree-gray>.jstree-no-dots .jstree-closed>.jstree-ocl {
513
- background-position: -4px -4px
514
- }
515
-
516
- .jstree-gray .jstree-disabled {
517
- background: 0 0
518
- }
519
-
520
- .jstree-gray .jstree-disabled.jstree-hovered {
521
- background: 0 0
522
- }
523
-
524
- .jstree-gray .jstree-disabled.jstree-clicked {
525
- background: #efefef
526
- }
527
-
528
- .jstree-gray .jstree-checkbox {
529
- background-position: -164px -4px
530
- }
531
-
532
- .jstree-gray .jstree-checkbox:hover {
533
- background-position: -164px -36px
534
- }
535
-
536
- .jstree-gray.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
537
- .jstree-gray .jstree-checked>.jstree-checkbox {
538
- background-position: -228px -4px
539
- }
540
-
541
- .jstree-gray.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
542
- .jstree-gray .jstree-checked>.jstree-checkbox:hover {
543
- background-position: -228px -36px
544
- }
545
-
546
- .jstree-gray .jstree-anchor>.jstree-undetermined {
547
- background-position: -196px -4px
548
- }
549
-
550
- .jstree-gray .jstree-anchor>.jstree-undetermined:hover {
551
- background-position: -196px -36px
552
- }
553
-
554
- .jstree-gray .jstree-checkbox-disabled {
555
- opacity: .8;
556
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
557
- filter: gray;
558
- -webkit-filter: grayscale(100%)
559
- }
560
-
561
- .jstree-gray>.jstree-striped {
562
- background-size: auto 48px
563
- }
564
-
565
- .jstree-gray.jstree-rtl .jstree-node {
566
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
567
- background-position: 100% 1px;
568
- background-repeat: repeat-y
569
- }
570
-
571
- .jstree-gray.jstree-rtl .jstree-last {
572
- background: 0 0
573
- }
574
-
575
- .jstree-gray.jstree-rtl .jstree-open>.jstree-ocl {
576
- background-position: -132px -36px
577
- }
578
-
579
- .jstree-gray.jstree-rtl .jstree-closed>.jstree-ocl {
580
- background-position: -100px -36px
581
- }
582
-
583
- .jstree-gray.jstree-rtl .jstree-leaf>.jstree-ocl {
584
- background-position: -68px -36px
585
- }
586
-
587
- .jstree-gray.jstree-rtl>.jstree-no-dots .jstree-node,
588
- .jstree-gray.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
589
- background: 0 0
590
- }
591
-
592
- .jstree-gray.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
593
- background-position: -36px -36px
594
- }
595
-
596
- .jstree-gray.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
597
- background-position: -4px -36px
598
- }
599
-
600
- .jstree-gray .jstree-themeicon-custom {
601
- background-color: transparent;
602
- background-image: none;
603
- background-position: 0 0
604
- }
605
-
606
- .jstree-gray>.jstree-container-ul .jstree-loading>.jstree-ocl {
607
- background: url(throbber.gif) center center no-repeat
608
- }
609
-
610
- .jstree-gray .jstree-file {
611
- background: url(32px.png) -100px -68px no-repeat
612
- }
613
-
614
- .jstree-gray .jstree-folder {
615
- background: url(32px.png) -260px -4px no-repeat
616
- }
617
-
618
- .jstree-gray>.jstree-container-ul>.jstree-node {
619
- margin-left: 0;
620
- margin-right: 0
621
- }
622
-
623
- #jstree-dnd.jstree-gray {
624
- line-height: 24px;
625
- padding: 0 4px
626
- }
627
-
628
- #jstree-dnd.jstree-gray .jstree-ok,
629
- #jstree-dnd.jstree-gray .jstree-er {
630
- background-image: url(32px.png);
631
- background-repeat: no-repeat;
632
- background-color: transparent
633
- }
634
-
635
- #jstree-dnd.jstree-gray i {
636
- background: 0 0;
637
- width: 24px;
638
- height: 24px;
639
- line-height: 24px
640
- }
641
-
642
- #jstree-dnd.jstree-gray .jstree-ok {
643
- background-position: -4px -68px
644
- }
645
-
646
- #jstree-dnd.jstree-gray .jstree-er {
647
- background-position: -36px -68px
648
- }
649
-
650
- .jstree-gray.jstree-rtl .jstree-node {
651
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)
652
- }
653
-
654
- .jstree-gray.jstree-rtl .jstree-last {
655
- background: 0 0
656
- }
657
-
658
- .jstree-gray-small .jstree-node {
659
- min-height: 18px;
660
- line-height: 18px;
661
- margin-left: 18px;
662
- min-width: 18px
663
- }
664
-
665
- .jstree-gray-small .jstree-anchor {
666
- line-height: 18px;
667
- height: 18px
668
- }
669
-
670
- .jstree-gray-small .jstree-icon {
671
- width: 18px;
672
- height: 18px;
673
- line-height: 18px
674
- }
675
-
676
- .jstree-gray-small .jstree-icon:empty {
677
- width: 18px;
678
- height: 18px;
679
- line-height: 18px
680
- }
681
-
682
- .jstree-gray-small.jstree-rtl .jstree-node {
683
- margin-right: 18px
684
- }
685
-
686
- .jstree-gray-small .jstree-wholerow {
687
- height: 18px
688
- }
689
-
690
- .jstree-gray-small .jstree-node,
691
- .jstree-gray-small .jstree-icon {
692
- background-image: url(32px.png)
693
- }
694
-
695
- .jstree-gray-small .jstree-node {
696
- background-position: -295px -7px;
697
- background-repeat: repeat-y
698
- }
699
-
700
- .jstree-gray-small .jstree-last {
701
- background: 0 0
702
- }
703
-
704
- .jstree-gray-small .jstree-open>.jstree-ocl {
705
- background-position: -135px -7px
706
- }
707
-
708
- .jstree-gray-small .jstree-closed>.jstree-ocl {
709
- background-position: -103px -7px
710
- }
711
-
712
- .jstree-gray-small .jstree-leaf>.jstree-ocl {
713
- background-position: -71px -7px
714
- }
715
-
716
- .jstree-gray-small .jstree-themeicon {
717
- background-position: -263px -7px
718
- }
719
-
720
- .jstree-gray-small>.jstree-no-dots .jstree-node,
721
- .jstree-gray-small>.jstree-no-dots .jstree-leaf>.jstree-ocl {
722
- background: 0 0
723
- }
724
-
725
- .jstree-gray-small>.jstree-no-dots .jstree-open>.jstree-ocl {
726
- background-position: -39px -7px
727
- }
728
-
729
- .jstree-gray-small>.jstree-no-dots .jstree-closed>.jstree-ocl {
730
- background-position: -7px -7px
731
- }
732
-
733
- .jstree-gray-small .jstree-disabled {
734
- background: 0 0
735
- }
736
-
737
- .jstree-gray-small .jstree-disabled.jstree-hovered {
738
- background: 0 0
739
- }
740
-
741
- .jstree-gray-small .jstree-disabled.jstree-clicked {
742
- background: #efefef
743
- }
744
-
745
- .jstree-gray-small .jstree-checkbox {
746
- background-position: -167px -7px
747
- }
748
-
749
- .jstree-gray-small .jstree-checkbox:hover {
750
- background-position: -167px -39px
751
- }
752
-
753
- .jstree-gray-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
754
- .jstree-gray-small .jstree-checked>.jstree-checkbox {
755
- background-position: -231px -7px
756
- }
757
-
758
- .jstree-gray-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
759
- .jstree-gray-small .jstree-checked>.jstree-checkbox:hover {
760
- background-position: -231px -39px
761
- }
762
-
763
- .jstree-gray-small .jstree-anchor>.jstree-undetermined {
764
- background-position: -199px -7px
765
- }
766
-
767
- .jstree-gray-small .jstree-anchor>.jstree-undetermined:hover {
768
- background-position: -199px -39px
769
- }
770
-
771
- .jstree-gray-small .jstree-checkbox-disabled {
772
- opacity: .8;
773
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
774
- filter: gray;
775
- -webkit-filter: grayscale(100%)
776
- }
777
-
778
- .jstree-gray-small>.jstree-striped {
779
- background-size: auto 36px
780
- }
781
-
782
- .jstree-gray-small.jstree-rtl .jstree-node {
783
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
784
- background-position: 100% 1px;
785
- background-repeat: repeat-y
786
- }
787
-
788
- .jstree-gray-small.jstree-rtl .jstree-last {
789
- background: 0 0
790
- }
791
-
792
- .jstree-gray-small.jstree-rtl .jstree-open>.jstree-ocl {
793
- background-position: -135px -39px
794
- }
795
-
796
- .jstree-gray-small.jstree-rtl .jstree-closed>.jstree-ocl {
797
- background-position: -103px -39px
798
- }
799
-
800
- .jstree-gray-small.jstree-rtl .jstree-leaf>.jstree-ocl {
801
- background-position: -71px -39px
802
- }
803
-
804
- .jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-node,
805
- .jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
806
- background: 0 0
807
- }
808
-
809
- .jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
810
- background-position: -39px -39px
811
- }
812
-
813
- .jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
814
- background-position: -7px -39px
815
- }
816
-
817
- .jstree-gray-small .jstree-themeicon-custom {
818
- background-color: transparent;
819
- background-image: none;
820
- background-position: 0 0
821
- }
822
-
823
- .jstree-gray-small>.jstree-container-ul .jstree-loading>.jstree-ocl {
824
- background: url(throbber.gif) center center no-repeat
825
- }
826
-
827
- .jstree-gray-small .jstree-file {
828
- background: url(32px.png) -103px -71px no-repeat
829
- }
830
-
831
- .jstree-gray-small .jstree-folder {
832
- background: url(32px.png) -263px -7px no-repeat
833
- }
834
-
835
- .jstree-gray-small>.jstree-container-ul>.jstree-node {
836
- margin-left: 0;
837
- margin-right: 0
838
- }
839
-
840
- #jstree-dnd.jstree-gray-small {
841
- line-height: 18px;
842
- padding: 0 4px
843
- }
844
-
845
- #jstree-dnd.jstree-gray-small .jstree-ok,
846
- #jstree-dnd.jstree-gray-small .jstree-er {
847
- background-image: url(32px.png);
848
- background-repeat: no-repeat;
849
- background-color: transparent
850
- }
851
-
852
- #jstree-dnd.jstree-gray-small i {
853
- background: 0 0;
854
- width: 18px;
855
- height: 18px;
856
- line-height: 18px
857
- }
858
-
859
- #jstree-dnd.jstree-gray-small .jstree-ok {
860
- background-position: -7px -71px
861
- }
862
-
863
- #jstree-dnd.jstree-gray-small .jstree-er {
864
- background-position: -39px -71px
865
- }
866
-
867
- .jstree-gray-small.jstree-rtl .jstree-node {
868
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)
869
- }
870
-
871
- .jstree-gray-small.jstree-rtl .jstree-last {
872
- background: 0 0
873
- }
874
-
875
- .jstree-gray-large .jstree-node {
876
- min-height: 32px;
877
- line-height: 32px;
878
- margin-left: 32px;
879
- min-width: 32px
880
- }
881
-
882
- .jstree-gray-large .jstree-anchor {
883
- line-height: 32px;
884
- height: 32px
885
- }
886
-
887
- .jstree-gray-large .jstree-icon {
888
- width: 32px;
889
- height: 32px;
890
- line-height: 32px
891
- }
892
-
893
- .jstree-gray-large .jstree-icon:empty {
894
- width: 32px;
895
- height: 32px;
896
- line-height: 32px
897
- }
898
-
899
- .jstree-gray-large.jstree-rtl .jstree-node {
900
- margin-right: 32px
901
- }
902
-
903
- .jstree-gray-large .jstree-wholerow {
904
- height: 32px
905
- }
906
-
907
- .jstree-gray-large .jstree-node,
908
- .jstree-gray-large .jstree-icon {
909
- background-image: url(32px.png)
910
- }
911
-
912
- .jstree-gray-large .jstree-node {
913
- background-position: -288px 0;
914
- background-repeat: repeat-y
915
- }
916
-
917
- .jstree-gray-large .jstree-last {
918
- background: 0 0
919
- }
920
-
921
- .jstree-gray-large .jstree-open>.jstree-ocl {
922
- background-position: -128px 0
923
- }
924
-
925
- .jstree-gray-large .jstree-closed>.jstree-ocl {
926
- background-position: -96px 0
927
- }
928
-
929
- .jstree-gray-large .jstree-leaf>.jstree-ocl {
930
- background-position: -64px 0
931
- }
932
-
933
- .jstree-gray-large .jstree-themeicon {
934
- background-position: -256px 0
935
- }
936
-
937
- .jstree-gray-large>.jstree-no-dots .jstree-node,
938
- .jstree-gray-large>.jstree-no-dots .jstree-leaf>.jstree-ocl {
939
- background: 0 0
940
- }
941
-
942
- .jstree-gray-large>.jstree-no-dots .jstree-open>.jstree-ocl {
943
- background-position: -32px 0
944
- }
945
-
946
- .jstree-gray-large>.jstree-no-dots .jstree-closed>.jstree-ocl {
947
- background-position: 0 0
948
- }
949
-
950
- .jstree-gray-large .jstree-disabled {
951
- background: 0 0
952
- }
953
-
954
- .jstree-gray-large .jstree-disabled.jstree-hovered {
955
- background: 0 0
956
- }
957
-
958
- .jstree-gray-large .jstree-disabled.jstree-clicked {
959
- background: #efefef
960
- }
961
-
962
- .jstree-gray-large .jstree-checkbox {
963
- background-position: -160px 0
964
- }
965
-
966
- .jstree-gray-large .jstree-checkbox:hover {
967
- background-position: -160px -32px
968
- }
969
-
970
- .jstree-gray-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
971
- .jstree-gray-large .jstree-checked>.jstree-checkbox {
972
- background-position: -224px 0
973
- }
974
-
975
- .jstree-gray-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
976
- .jstree-gray-large .jstree-checked>.jstree-checkbox:hover {
977
- background-position: -224px -32px
978
- }
979
-
980
- .jstree-gray-large .jstree-anchor>.jstree-undetermined {
981
- background-position: -192px 0
982
- }
983
-
984
- .jstree-gray-large .jstree-anchor>.jstree-undetermined:hover {
985
- background-position: -192px -32px
986
- }
987
-
988
- .jstree-gray-large .jstree-checkbox-disabled {
989
- opacity: .8;
990
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
991
- filter: gray;
992
- -webkit-filter: grayscale(100%)
993
- }
994
-
995
- .jstree-gray-large>.jstree-striped {
996
- background-size: auto 64px
997
- }
998
-
999
- .jstree-gray-large.jstree-rtl .jstree-node {
1000
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
1001
- background-position: 100% 1px;
1002
- background-repeat: repeat-y
1003
- }
1004
-
1005
- .jstree-gray-large.jstree-rtl .jstree-last {
1006
- background: 0 0
1007
- }
1008
-
1009
- .jstree-gray-large.jstree-rtl .jstree-open>.jstree-ocl {
1010
- background-position: -128px -32px
1011
- }
1012
-
1013
- .jstree-gray-large.jstree-rtl .jstree-closed>.jstree-ocl {
1014
- background-position: -96px -32px
1015
- }
1016
-
1017
- .jstree-gray-large.jstree-rtl .jstree-leaf>.jstree-ocl {
1018
- background-position: -64px -32px
1019
- }
1020
-
1021
- .jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-node,
1022
- .jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
1023
- background: 0 0
1024
- }
1025
-
1026
- .jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
1027
- background-position: -32px -32px
1028
- }
1029
-
1030
- .jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
1031
- background-position: 0 -32px
1032
- }
1033
-
1034
- .jstree-gray-large .jstree-themeicon-custom {
1035
- background-color: transparent;
1036
- background-image: none;
1037
- background-position: 0 0
1038
- }
1039
-
1040
- .jstree-gray-large>.jstree-container-ul .jstree-loading>.jstree-ocl {
1041
- background: url(throbber.gif) center center no-repeat
1042
- }
1043
-
1044
- .jstree-gray-large .jstree-file {
1045
- background: url(32px.png) -96px -64px no-repeat
1046
- }
1047
-
1048
- .jstree-gray-large .jstree-folder {
1049
- background: url(32px.png) -256px 0 no-repeat
1050
- }
1051
-
1052
- .jstree-gray-large>.jstree-container-ul>.jstree-node {
1053
- margin-left: 0;
1054
- margin-right: 0
1055
- }
1056
-
1057
- #jstree-dnd.jstree-gray-large {
1058
- line-height: 32px;
1059
- padding: 0 4px
1060
- }
1061
-
1062
- #jstree-dnd.jstree-gray-large .jstree-ok,
1063
- #jstree-dnd.jstree-gray-large .jstree-er {
1064
- background-image: url(32px.png);
1065
- background-repeat: no-repeat;
1066
- background-color: transparent
1067
- }
1068
-
1069
- #jstree-dnd.jstree-gray-large i {
1070
- background: 0 0;
1071
- width: 32px;
1072
- height: 32px;
1073
- line-height: 32px
1074
- }
1075
-
1076
- #jstree-dnd.jstree-gray-large .jstree-ok {
1077
- background-position: 0 -64px
1078
- }
1079
-
1080
- #jstree-dnd.jstree-gray-large .jstree-er {
1081
- background-position: -32px -64px
1082
- }
1083
-
1084
- .jstree-gray-large.jstree-rtl .jstree-node {
1085
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)
1086
- }
1087
-
1088
- .jstree-gray-large.jstree-rtl .jstree-last {
1089
- background: 0 0
1090
- }
1091
-
1092
- @media (max-width:768px) {
1093
- #jstree-dnd.jstree-dnd-responsive {
1094
- line-height: 40px;
1095
- font-weight: 700;
1096
- font-size: 1.1em;
1097
- text-shadow: 1px 1px #fff
1098
- }
1099
- #jstree-dnd.jstree-dnd-responsive>i {
1100
- background: 0 0;
1101
- width: 40px;
1102
- height: 40px
1103
- }
1104
- #jstree-dnd.jstree-dnd-responsive>.jstree-ok {
1105
- background-image: url(40px.png);
1106
- background-position: 0 -200px;
1107
- background-size: 120px 240px
1108
- }
1109
- #jstree-dnd.jstree-dnd-responsive>.jstree-er {
1110
- background-image: url(40px.png);
1111
- background-position: -40px -200px;
1112
- background-size: 120px 240px
1113
- }
1114
- #jstree-marker.jstree-dnd-responsive {
1115
- border-left-width: 10px;
1116
- border-top-width: 10px;
1117
- border-bottom-width: 10px;
1118
- margin-top: -10px
1119
- }
1120
- }
1121
-
1122
- @media (max-width:768px) {
1123
- .jstree-gray-responsive .jstree-icon {
1124
- background-image: url(40px.png)
1125
- }
1126
- .jstree-gray-responsive .jstree-node,
1127
- .jstree-gray-responsive .jstree-leaf>.jstree-ocl {
1128
- background: 0 0
1129
- }
1130
- .jstree-gray-responsive .jstree-node {
1131
- min-height: 40px;
1132
- line-height: 40px;
1133
- margin-left: 40px;
1134
- min-width: 40px;
1135
- white-space: nowrap
1136
- }
1137
- .jstree-gray-responsive .jstree-anchor {
1138
- line-height: 40px;
1139
- height: 40px
1140
- }
1141
- .jstree-gray-responsive .jstree-icon,
1142
- .jstree-gray-responsive .jstree-icon:empty {
1143
- width: 40px;
1144
- height: 40px;
1145
- line-height: 40px
1146
- }
1147
- .jstree-gray-responsive>.jstree-container-ul>.jstree-node {
1148
- margin-left: 0
1149
- }
1150
- .jstree-gray-responsive.jstree-rtl .jstree-node {
1151
- margin-left: 0;
1152
- margin-right: 40px
1153
- }
1154
- .jstree-gray-responsive.jstree-rtl .jstree-container-ul>.jstree-node {
1155
- margin-right: 0
1156
- }
1157
- .jstree-gray-responsive .jstree-ocl,
1158
- .jstree-gray-responsive .jstree-themeicon,
1159
- .jstree-gray-responsive .jstree-checkbox {
1160
- background-size: 120px 240px
1161
- }
1162
- .jstree-gray-responsive .jstree-leaf>.jstree-ocl {
1163
- background: 0 0
1164
- }
1165
- .jstree-gray-responsive .jstree-open>.jstree-ocl {
1166
- background-position: 0 0!important
1167
- }
1168
- .jstree-gray-responsive .jstree-closed>.jstree-ocl {
1169
- background-position: 0 -40px!important
1170
- }
1171
- .jstree-gray-responsive.jstree-rtl .jstree-closed>.jstree-ocl {
1172
- background-position: -40px 0!important
1173
- }
1174
- .jstree-gray-responsive .jstree-themeicon {
1175
- background-position: -40px -40px
1176
- }
1177
- .jstree-gray-responsive .jstree-checkbox,
1178
- .jstree-gray-responsive .jstree-checkbox:hover {
1179
- background-position: -40px -80px
1180
- }
1181
- .jstree-gray-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
1182
- .jstree-gray-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
1183
- .jstree-gray-responsive .jstree-checked>.jstree-checkbox,
1184
- .jstree-gray-responsive .jstree-checked>.jstree-checkbox:hover {
1185
- background-position: 0 -80px
1186
- }
1187
- .jstree-gray-responsive .jstree-anchor>.jstree-undetermined,
1188
- .jstree-gray-responsive .jstree-anchor>.jstree-undetermined:hover {
1189
- background-position: 0 -120px
1190
- }
1191
- .jstree-gray-responsive .jstree-anchor {
1192
- font-weight: 700;
1193
- font-size: 1.1em;
1194
- text-shadow: 1px 1px #fff
1195
- }
1196
- .jstree-gray-responsive>.jstree-striped {
1197
- background: 0 0
1198
- }
1199
- .jstree-gray-responsive .jstree-wholerow {
1200
- border-top: 1px solid rgba(255, 255, 255, .7);
1201
- border-bottom: 1px solid rgba(64, 64, 64, .2);
1202
- background: #ebebeb;
1203
- height: 40px
1204
- }
1205
- .jstree-gray-responsive .jstree-wholerow-hovered {
1206
- background: #e7f4f9
1207
- }
1208
- .jstree-gray-responsive .jstree-wholerow-clicked {
1209
- background: #beebff
1210
- }
1211
- .jstree-gray-responsive .jstree-children .jstree-last>.jstree-wholerow {
1212
- box-shadow: inset 0 -6px 3px -5px #666
1213
- }
1214
- .jstree-gray-responsive .jstree-children .jstree-open>.jstree-wholerow {
1215
- box-shadow: inset 0 6px 3px -5px #666;
1216
- border-top: 0
1217
- }
1218
- .jstree-gray-responsive .jstree-children .jstree-open+.jstree-open {
1219
- box-shadow: none
1220
- }
1221
- .jstree-gray-responsive .jstree-node,
1222
- .jstree-gray-responsive .jstree-icon,
1223
- .jstree-gray-responsive .jstree-node>.jstree-ocl,
1224
- .jstree-gray-responsive .jstree-themeicon,
1225
- .jstree-gray-responsive .jstree-checkbox {
1226
- background-image: url(40px.png);
1227
- background-size: 120px 240px
1228
- }
1229
- .jstree-gray-responsive .jstree-node {
1230
- background-position: -80px 0;
1231
- background-repeat: repeat-y
1232
- }
1233
- .jstree-gray-responsive .jstree-last {
1234
- background: 0 0
1235
- }
1236
- .jstree-gray-responsive .jstree-leaf>.jstree-ocl {
1237
- background-position: -40px -120px
1238
- }
1239
- .jstree-gray-responsive .jstree-last>.jstree-ocl {
1240
- background-position: -40px -160px
1241
- }
1242
- .jstree-gray-responsive .jstree-themeicon-custom {
1243
- background-color: transparent;
1244
- background-image: none;
1245
- background-position: 0 0
1246
- }
1247
- .jstree-gray-responsive .jstree-file {
1248
- background: url(40px.png) 0 -160px no-repeat;
1249
- background-size: 120px 240px
1250
- }
1251
- .jstree-gray-responsive .jstree-folder {
1252
- background: url(40px.png) -40px -40px no-repeat;
1253
- background-size: 120px 240px
1254
- }
1255
- .jstree-gray-responsive>.jstree-container-ul>.jstree-node {
1256
- margin-left: 0;
1257
- margin-right: 0
1258
- }
1259
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/jstree/themes/gray/style.min.css DELETED
@@ -1 +0,0 @@
1
- .jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-gray .jstree-node,.jstree-gray .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-gray .jstree-anchor,.jstree-gray .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-gray .jstree-hovered{background:#dee0e2;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-gray .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-gray .jstree-clicked{background:#b4b9be;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-gray .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-gray .jstree-disabled{background:0 0;color:#666}.jstree-gray .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-gray .jstree-disabled.jstree-clicked{background:#efefef}.jstree-gray .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-gray .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-gray .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-gray.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-gray.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-gray.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-gray.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-gray>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-gray>.jstree-wholerow-ul .jstree-hovered,.jstree-gray>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-gray .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-gray .jstree-wholerow-hovered{background:#dee0e2}.jstree-gray .jstree-wholerow-clicked{background:#b4b9be}.jstree-gray .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-gray .jstree-anchor{line-height:24px;height:24px}.jstree-gray .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-gray .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-gray.jstree-rtl .jstree-node{margin-right:24px}.jstree-gray .jstree-wholerow{height:24px}.jstree-gray .jstree-node,.jstree-gray .jstree-icon{background-image:url(32px.png)}.jstree-gray .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-gray .jstree-last{background:0 0}.jstree-gray .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-gray .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-gray .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-gray .jstree-themeicon{background-position:-260px -4px}.jstree-gray>.jstree-no-dots .jstree-node,.jstree-gray>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-gray>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-gray .jstree-disabled{background:0 0}.jstree-gray .jstree-disabled.jstree-hovered{background:0 0}.jstree-gray .jstree-disabled.jstree-clicked{background:#efefef}.jstree-gray .jstree-checkbox{background-position:-164px -4px}.jstree-gray .jstree-checkbox:hover{background-position:-164px -36px}.jstree-gray.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-gray .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-gray.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-gray .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-gray .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-gray .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-gray .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-gray>.jstree-striped{background-size:auto 48px}.jstree-gray.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-gray.jstree-rtl .jstree-last{background:0 0}.jstree-gray.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-gray.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-gray.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-gray.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-gray.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-gray.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-gray .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-gray>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-gray .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-gray .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-gray>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-gray{line-height:24px;padding:0 4px}#jstree-dnd.jstree-gray .jstree-ok,#jstree-dnd.jstree-gray .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-gray i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-gray .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-gray .jstree-er{background-position:-36px -68px}.jstree-gray.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-gray.jstree-rtl .jstree-last{background:0 0}.jstree-gray-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-gray-small .jstree-anchor{line-height:18px;height:18px}.jstree-gray-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-gray-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-gray-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-gray-small .jstree-wholerow{height:18px}.jstree-gray-small .jstree-node,.jstree-gray-small .jstree-icon{background-image:url(32px.png)}.jstree-gray-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-gray-small .jstree-last{background:0 0}.jstree-gray-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-gray-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-gray-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-gray-small .jstree-themeicon{background-position:-263px -7px}.jstree-gray-small>.jstree-no-dots .jstree-node,.jstree-gray-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-gray-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-gray-small .jstree-disabled{background:0 0}.jstree-gray-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-gray-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-gray-small .jstree-checkbox{background-position:-167px -7px}.jstree-gray-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-gray-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-gray-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-gray-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-gray-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-gray-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-gray-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-gray-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-gray-small>.jstree-striped{background-size:auto 36px}.jstree-gray-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-gray-small.jstree-rtl .jstree-last{background:0 0}.jstree-gray-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-gray-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-gray-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-gray-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-gray-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-gray-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-gray-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-gray-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-gray-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-gray-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-gray-small .jstree-ok,#jstree-dnd.jstree-gray-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-gray-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-gray-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-gray-small .jstree-er{background-position:-39px -71px}.jstree-gray-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-gray-small.jstree-rtl .jstree-last{background:0 0}.jstree-gray-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-gray-large .jstree-anchor{line-height:32px;height:32px}.jstree-gray-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-gray-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-gray-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-gray-large .jstree-wholerow{height:32px}.jstree-gray-large .jstree-node,.jstree-gray-large .jstree-icon{background-image:url(32px.png)}.jstree-gray-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-gray-large .jstree-last{background:0 0}.jstree-gray-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-gray-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-gray-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-gray-large .jstree-themeicon{background-position:-256px 0}.jstree-gray-large>.jstree-no-dots .jstree-node,.jstree-gray-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-gray-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-gray-large .jstree-disabled{background:0 0}.jstree-gray-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-gray-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-gray-large .jstree-checkbox{background-position:-160px 0}.jstree-gray-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-gray-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-gray-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-gray-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-gray-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-gray-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-gray-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-gray-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-gray-large>.jstree-striped{background-size:auto 64px}.jstree-gray-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-gray-large.jstree-rtl .jstree-last{background:0 0}.jstree-gray-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-gray-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-gray-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-gray-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-gray-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-gray-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-gray-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-gray-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-gray-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-gray-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-gray-large .jstree-ok,#jstree-dnd.jstree-gray-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-gray-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-gray-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-gray-large .jstree-er{background-position:-32px -64px}.jstree-gray-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-gray-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}.jstree-gray-responsive .jstree-icon{background-image:url(40px.png)}.jstree-gray-responsive .jstree-node,.jstree-gray-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-gray-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-gray-responsive .jstree-icon,.jstree-gray-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-gray-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-gray-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-gray-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-gray-responsive .jstree-ocl,.jstree-gray-responsive .jstree-themeicon,.jstree-gray-responsive .jstree-checkbox{background-size:120px 240px}.jstree-gray-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-gray-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-gray-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-gray-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-gray-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-gray-responsive .jstree-checkbox,.jstree-gray-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-gray-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-gray-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-gray-responsive .jstree-checked>.jstree-checkbox,.jstree-gray-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-gray-responsive .jstree-anchor>.jstree-undetermined,.jstree-gray-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-gray-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-gray-responsive>.jstree-striped{background:0 0}.jstree-gray-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-gray-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-gray-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-gray-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-gray-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-gray-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-gray-responsive .jstree-node,.jstree-gray-responsive .jstree-icon,.jstree-gray-responsive .jstree-node>.jstree-ocl,.jstree-gray-responsive .jstree-themeicon,.jstree-gray-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-gray-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-gray-responsive .jstree-last{background:0 0}.jstree-gray-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-gray-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-gray-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-gray-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-gray-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-gray-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}
 
assets/jstree/themes/gray/throbber.gif DELETED
Binary file
assets/jstree/themes/modern/32px.png DELETED
Binary file
assets/jstree/themes/modern/40px.png DELETED
Binary file
assets/jstree/themes/modern/style.css DELETED
@@ -1,1261 +0,0 @@
1
- /* jsTree modern theme */
2
- .jstree-node,
3
- .jstree-children,
4
- .jstree-container-ul {
5
- display: block;
6
- margin: 0;
7
- padding: 0;
8
- list-style-type: none;
9
- list-style-image: none
10
- }
11
-
12
- .jstree-node {
13
- white-space: nowrap
14
- }
15
-
16
- .jstree-anchor {
17
- display: inline-block;
18
- color: #000;
19
- white-space: nowrap;
20
- padding: 0 4px 0 1px;
21
- margin: 0;
22
- vertical-align: top
23
- }
24
-
25
- .jstree-anchor:focus {
26
- outline: 0
27
- }
28
-
29
- .jstree-anchor,
30
- .jstree-anchor:link,
31
- .jstree-anchor:visited,
32
- .jstree-anchor:hover,
33
- .jstree-anchor:active {
34
- text-decoration: none;
35
- color: inherit
36
- }
37
-
38
- .jstree-icon {
39
- display: inline-block;
40
- text-decoration: none;
41
- margin: 0;
42
- padding: 0;
43
- vertical-align: top;
44
- text-align: center
45
- }
46
-
47
- .jstree-icon:empty {
48
- display: inline-block;
49
- text-decoration: none;
50
- margin: 0;
51
- padding: 0;
52
- vertical-align: top;
53
- text-align: center
54
- }
55
-
56
- .jstree-ocl {
57
- cursor: pointer
58
- }
59
-
60
- .jstree-leaf>.jstree-ocl {
61
- cursor: default
62
- }
63
-
64
- .jstree .jstree-open>.jstree-children {
65
- display: block
66
- }
67
-
68
- .jstree .jstree-closed>.jstree-children,
69
- .jstree .jstree-leaf>.jstree-children {
70
- display: none
71
- }
72
-
73
- .jstree-anchor>.jstree-themeicon {
74
- margin-right: 2px
75
- }
76
-
77
- .jstree-no-icons .jstree-themeicon,
78
- .jstree-anchor>.jstree-themeicon-hidden {
79
- display: none
80
- }
81
-
82
- .jstree-hidden,
83
- .jstree-node.jstree-hidden {
84
- display: none
85
- }
86
-
87
- .jstree-rtl .jstree-anchor {
88
- padding: 0 1px 0 4px
89
- }
90
-
91
- .jstree-rtl .jstree-anchor>.jstree-themeicon {
92
- margin-left: 2px;
93
- margin-right: 0
94
- }
95
-
96
- .jstree-rtl .jstree-node {
97
- margin-left: 0
98
- }
99
-
100
- .jstree-rtl .jstree-container-ul>.jstree-node {
101
- margin-right: 0
102
- }
103
-
104
- .jstree-wholerow-ul {
105
- position: relative;
106
- display: inline-block;
107
- min-width: 100%
108
- }
109
-
110
- .jstree-wholerow-ul .jstree-leaf>.jstree-ocl {
111
- cursor: pointer
112
- }
113
-
114
- .jstree-wholerow-ul .jstree-anchor,
115
- .jstree-wholerow-ul .jstree-icon {
116
- position: relative
117
- }
118
-
119
- .jstree-wholerow-ul .jstree-wholerow {
120
- width: 100%;
121
- cursor: pointer;
122
- position: absolute;
123
- left: 0;
124
- -webkit-user-select: none;
125
- -moz-user-select: none;
126
- -ms-user-select: none;
127
- user-select: none
128
- }
129
-
130
- .vakata-context {
131
- display: none
132
- }
133
-
134
- .vakata-context,
135
- .vakata-context ul {
136
- margin: 0;
137
- padding: 2px;
138
- position: absolute;
139
- background: #f5f5f5;
140
- border: 1px solid #979797;
141
- box-shadow: 2px 2px 2px #999
142
- }
143
-
144
- .vakata-context ul {
145
- list-style: none;
146
- left: 100%;
147
- margin-top: -2.7em;
148
- margin-left: -4px
149
- }
150
-
151
- .vakata-context .vakata-context-right ul {
152
- left: auto;
153
- right: 100%;
154
- margin-left: auto;
155
- margin-right: -4px
156
- }
157
-
158
- .vakata-context li {
159
- list-style: none
160
- }
161
-
162
- .vakata-context li>a {
163
- display: block;
164
- padding: 0 2em;
165
- text-decoration: none;
166
- width: auto;
167
- color: #000;
168
- white-space: nowrap;
169
- line-height: 2.4em;
170
- text-shadow: 1px 1px 0 #fff;
171
- border-radius: 1px
172
- }
173
-
174
- .vakata-context li>a:hover {
175
- position: relative;
176
- background-color: #e8eff7;
177
- box-shadow: 0 0 2px #0a6aa1
178
- }
179
-
180
- .vakata-context li>a.vakata-context-parent {
181
- background-image: url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);
182
- background-position: right center;
183
- background-repeat: no-repeat
184
- }
185
-
186
- .vakata-context li>a:focus {
187
- outline: 0
188
- }
189
-
190
- .vakata-context .vakata-context-hover>a {
191
- position: relative;
192
- background-color: #e8eff7;
193
- box-shadow: 0 0 2px #0a6aa1
194
- }
195
-
196
- .vakata-context .vakata-context-separator>a,
197
- .vakata-context .vakata-context-separator>a:hover {
198
- background: #fff;
199
- border: 0;
200
- border-top: 1px solid #e2e3e3;
201
- height: 1px;
202
- min-height: 1px;
203
- max-height: 1px;
204
- padding: 0;
205
- margin: 0 0 0 2.4em;
206
- border-left: 1px solid #e0e0e0;
207
- text-shadow: 0 0 0 transparent;
208
- box-shadow: 0 0 0 transparent;
209
- border-radius: 0
210
- }
211
-
212
- .vakata-context .vakata-contextmenu-disabled a,
213
- .vakata-context .vakata-contextmenu-disabled a:hover {
214
- color: silver;
215
- background-color: transparent;
216
- border: 0;
217
- box-shadow: 0 0 0
218
- }
219
-
220
- .vakata-context li>a>i {
221
- text-decoration: none;
222
- display: inline-block;
223
- width: 2.4em;
224
- height: 2.4em;
225
- background: 0 0;
226
- margin: 0 0 0 -2em;
227
- vertical-align: top;
228
- text-align: center;
229
- line-height: 2.4em
230
- }
231
-
232
- .vakata-context li>a>i:empty {
233
- width: 2.4em;
234
- line-height: 2.4em
235
- }
236
-
237
- .vakata-context li>a .vakata-contextmenu-sep {
238
- display: inline-block;
239
- width: 1px;
240
- height: 2.4em;
241
- background: #fff;
242
- margin: 0 .5em 0 0;
243
- border-left: 1px solid #e2e3e3
244
- }
245
-
246
- .vakata-context .vakata-contextmenu-shortcut {
247
- font-size: .8em;
248
- color: silver;
249
- opacity: .5;
250
- display: none
251
- }
252
-
253
- .vakata-context-rtl ul {
254
- left: auto;
255
- right: 100%;
256
- margin-left: auto;
257
- margin-right: -4px
258
- }
259
-
260
- .vakata-context-rtl li>a.vakata-context-parent {
261
- background-image: url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);
262
- background-position: left center;
263
- background-repeat: no-repeat
264
- }
265
-
266
- .vakata-context-rtl .vakata-context-separator>a {
267
- margin: 0 2.4em 0 0;
268
- border-left: 0;
269
- border-right: 1px solid #e2e3e3
270
- }
271
-
272
- .vakata-context-rtl .vakata-context-left ul {
273
- right: auto;
274
- left: 100%;
275
- margin-left: -4px;
276
- margin-right: auto
277
- }
278
-
279
- .vakata-context-rtl li>a>i {
280
- margin: 0 -2em 0 0
281
- }
282
-
283
- .vakata-context-rtl li>a .vakata-contextmenu-sep {
284
- margin: 0 0 0 .5em;
285
- border-left-color: #fff;
286
- background: #e2e3e3
287
- }
288
-
289
- #jstree-marker {
290
- position: absolute;
291
- top: 0;
292
- left: 0;
293
- margin: -5px 0 0 0;
294
- padding: 0;
295
- border-right: 0;
296
- border-top: 5px solid transparent;
297
- border-bottom: 5px solid transparent;
298
- border-left: 5px solid;
299
- width: 0;
300
- height: 0;
301
- font-size: 0;
302
- line-height: 0
303
- }
304
-
305
- #jstree-dnd {
306
- line-height: 16px;
307
- margin: 0;
308
- padding: 4px
309
- }
310
-
311
- #jstree-dnd .jstree-icon,
312
- #jstree-dnd .jstree-copy {
313
- display: inline-block;
314
- text-decoration: none;
315
- margin: 0 2px 0 0;
316
- padding: 0;
317
- width: 16px;
318
- height: 16px
319
- }
320
-
321
- #jstree-dnd .jstree-ok {
322
- background: green
323
- }
324
-
325
- #jstree-dnd .jstree-er {
326
- background: red
327
- }
328
-
329
- #jstree-dnd .jstree-copy {
330
- margin: 0 2px
331
- }
332
-
333
- .jstree-modern .jstree-node,
334
- .jstree-modern .jstree-icon {
335
- background-repeat: no-repeat;
336
- background-color: transparent
337
- }
338
-
339
- .jstree-modern .jstree-anchor,
340
- .jstree-modern .jstree-wholerow {
341
- transition: background-color .15s, box-shadow .15s
342
- }
343
-
344
- .jstree-modern .jstree-hovered {
345
- background: #e7f4f9;
346
- border-radius: 2px;
347
- box-shadow: inset 0 0 1px #ccc
348
- }
349
-
350
- .jstree-modern .jstree-context {
351
- background: #e7f4f9;
352
- border-radius: 2px;
353
- box-shadow: inset 0 0 1px #ccc
354
- }
355
-
356
- .jstree-modern .jstree-clicked {
357
- background: #beebff;
358
- border-radius: 2px;
359
- box-shadow: inset 0 0 1px #999
360
- }
361
-
362
- .jstree-modern .jstree-no-icons .jstree-anchor>.jstree-themeicon {
363
- display: none
364
- }
365
-
366
- .jstree-modern .jstree-disabled {
367
- background: 0 0;
368
- color: #666
369
- }
370
-
371
- .jstree-modern .jstree-disabled.jstree-hovered {
372
- background: 0 0;
373
- box-shadow: none
374
- }
375
-
376
- .jstree-modern .jstree-disabled.jstree-clicked {
377
- background: #efefef
378
- }
379
-
380
- .jstree-modern .jstree-disabled>.jstree-icon {
381
- opacity: .8;
382
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
383
- filter: gray;
384
- -webkit-filter: grayscale(100%)
385
- }
386
-
387
- .jstree-modern .jstree-search {
388
- font-style: italic;
389
- color: #8b0000;
390
- font-weight: 700
391
- }
392
-
393
- .jstree-modern .jstree-no-checkboxes .jstree-checkbox {
394
- display: none!important
395
- }
396
-
397
- .jstree-modern.jstree-checkbox-no-clicked .jstree-clicked {
398
- background: 0 0;
399
- box-shadow: none
400
- }
401
-
402
- .jstree-modern.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered {
403
- background: #e7f4f9
404
- }
405
-
406
- .jstree-modern.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked {
407
- background: 0 0
408
- }
409
-
410
- .jstree-modern.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered {
411
- background: #e7f4f9
412
- }
413
-
414
- .jstree-modern>.jstree-striped {
415
- min-width: 100%;
416
- display: inline-block;
417
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat
418
- }
419
-
420
- .jstree-modern>.jstree-wholerow-ul .jstree-hovered,
421
- .jstree-modern>.jstree-wholerow-ul .jstree-clicked {
422
- background: 0 0;
423
- box-shadow: none;
424
- border-radius: 0
425
- }
426
-
427
- .jstree-modern .jstree-wholerow {
428
- -moz-box-sizing: border-box;
429
- -webkit-box-sizing: border-box;
430
- box-sizing: border-box
431
- }
432
-
433
- .jstree-modern .jstree-wholerow-hovered {
434
- background: #e7f4f9
435
- }
436
-
437
- .jstree-modern .jstree-wholerow-clicked {
438
- background: #beebff;
439
- background: -webkit-linear-gradient(top, #beebff 0, #a8e4ff 100%);
440
- background: linear-gradient(to bottom, #beebff 0, #a8e4ff 100%)
441
- }
442
-
443
- .jstree-modern .jstree-node {
444
- min-height: 24px;
445
- line-height: 24px;
446
- margin-left: 24px;
447
- min-width: 24px
448
- }
449
-
450
- .jstree-modern .jstree-anchor {
451
- line-height: 24px;
452
- height: 24px
453
- }
454
-
455
- .jstree-modern .jstree-icon {
456
- width: 24px;
457
- height: 24px;
458
- line-height: 24px
459
- }
460
-
461
- .jstree-modern .jstree-icon:empty {
462
- width: 24px;
463
- height: 24px;
464
- line-height: 24px
465
- }
466
-
467
- .jstree-modern.jstree-rtl .jstree-node {
468
- margin-right: 24px
469
- }
470
-
471
- .jstree-modern .jstree-wholerow {
472
- height: 24px
473
- }
474
-
475
- .jstree-modern .jstree-node,
476
- .jstree-modern .jstree-icon {
477
- background-image: url(32px.png)
478
- }
479
-
480
- .jstree-modern .jstree-node {
481
- background-position: -292px -4px;
482
- background-repeat: repeat-y
483
- }
484
-
485
- .jstree-modern .jstree-last {
486
- background: 0 0
487
- }
488
-
489
- .jstree-modern .jstree-open>.jstree-ocl {
490
- background-position: -132px -4px
491
- }
492
-
493
- .jstree-modern .jstree-closed>.jstree-ocl {
494
- background-position: -100px -4px
495
- }
496
-
497
- .jstree-modern .jstree-leaf>.jstree-ocl {
498
- background-position: -68px -4px
499
- }
500
-
501
- .jstree-modern .jstree-themeicon {
502
- background-position: -260px -4px
503
- }
504
-
505
- .jstree-modern>.jstree-no-dots .jstree-node,
506
- .jstree-modern>.jstree-no-dots .jstree-leaf>.jstree-ocl {
507
- background: 0 0
508
- }
509
-
510
- .jstree-modern>.jstree-no-dots .jstree-open>.jstree-ocl {
511
- background-position: -36px -4px
512
- }
513
-
514
- .jstree-modern>.jstree-no-dots .jstree-closed>.jstree-ocl {
515
- background-position: -4px -4px
516
- }
517
-
518
- .jstree-modern .jstree-disabled {
519
- background: 0 0
520
- }
521
-
522
- .jstree-modern .jstree-disabled.jstree-hovered {
523
- background: 0 0
524
- }
525
-
526
- .jstree-modern .jstree-disabled.jstree-clicked {
527
- background: #efefef
528
- }
529
-
530
- .jstree-modern .jstree-checkbox {
531
- background-position: -164px -4px
532
- }
533
-
534
- .jstree-modern .jstree-checkbox:hover {
535
- background-position: -164px -36px
536
- }
537
-
538
- .jstree-modern.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
539
- .jstree-modern .jstree-checked>.jstree-checkbox {
540
- background-position: -228px -4px
541
- }
542
-
543
- .jstree-modern.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
544
- .jstree-modern .jstree-checked>.jstree-checkbox:hover {
545
- background-position: -228px -36px
546
- }
547
-
548
- .jstree-modern .jstree-anchor>.jstree-undetermined {
549
- background-position: -196px -4px
550
- }
551
-
552
- .jstree-modern .jstree-anchor>.jstree-undetermined:hover {
553
- background-position: -196px -36px
554
- }
555
-
556
- .jstree-modern .jstree-checkbox-disabled {
557
- opacity: .8;
558
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
559
- filter: gray;
560
- -webkit-filter: grayscale(100%)
561
- }
562
-
563
- .jstree-modern>.jstree-striped {
564
- background-size: auto 48px
565
- }
566
-
567
- .jstree-modern.jstree-rtl .jstree-node {
568
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
569
- background-position: 100% 1px;
570
- background-repeat: repeat-y
571
- }
572
-
573
- .jstree-modern.jstree-rtl .jstree-last {
574
- background: 0 0
575
- }
576
-
577
- .jstree-modern.jstree-rtl .jstree-open>.jstree-ocl {
578
- background-position: -132px -36px
579
- }
580
-
581
- .jstree-modern.jstree-rtl .jstree-closed>.jstree-ocl {
582
- background-position: -100px -36px
583
- }
584
-
585
- .jstree-modern.jstree-rtl .jstree-leaf>.jstree-ocl {
586
- background-position: -68px -36px
587
- }
588
-
589
- .jstree-modern.jstree-rtl>.jstree-no-dots .jstree-node,
590
- .jstree-modern.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
591
- background: 0 0
592
- }
593
-
594
- .jstree-modern.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
595
- background-position: -36px -36px
596
- }
597
-
598
- .jstree-modern.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
599
- background-position: -4px -36px
600
- }
601
-
602
- .jstree-modern .jstree-themeicon-custom {
603
- background-color: transparent;
604
- background-image: none;
605
- background-position: 0 0
606
- }
607
-
608
- .jstree-modern>.jstree-container-ul .jstree-loading>.jstree-ocl {
609
- background: url(throbber.gif) center center no-repeat
610
- }
611
-
612
- .jstree-modern .jstree-file {
613
- background: url(32px.png) -100px -68px no-repeat
614
- }
615
-
616
- .jstree-modern .jstree-folder {
617
- background: url(32px.png) -260px -4px no-repeat
618
- }
619
-
620
- .jstree-modern>.jstree-container-ul>.jstree-node {
621
- margin-left: 0;
622
- margin-right: 0
623
- }
624
-
625
- #jstree-dnd.jstree-modern {
626
- line-height: 24px;
627
- padding: 0 4px
628
- }
629
-
630
- #jstree-dnd.jstree-modern .jstree-ok,
631
- #jstree-dnd.jstree-modern .jstree-er {
632
- background-image: url(32px.png);
633
- background-repeat: no-repeat;
634
- background-color: transparent
635
- }
636
-
637
- #jstree-dnd.jstree-modern i {
638
- background: 0 0;
639
- width: 24px;
640
- height: 24px;
641
- line-height: 24px
642
- }
643
-
644
- #jstree-dnd.jstree-modern .jstree-ok {
645
- background-position: -4px -68px
646
- }
647
-
648
- #jstree-dnd.jstree-modern .jstree-er {
649
- background-position: -36px -68px
650
- }
651
-
652
- .jstree-modern.jstree-rtl .jstree-node {
653
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)
654
- }
655
-
656
- .jstree-modern.jstree-rtl .jstree-last {
657
- background: 0 0
658
- }
659
-
660
- .jstree-modern-small .jstree-node {
661
- min-height: 18px;
662
- line-height: 18px;
663
- margin-left: 18px;
664
- min-width: 18px
665
- }
666
-
667
- .jstree-modern-small .jstree-anchor {
668
- line-height: 18px;
669
- height: 18px
670
- }
671
-
672
- .jstree-modern-small .jstree-icon {
673
- width: 18px;
674
- height: 18px;
675
- line-height: 18px
676
- }
677
-
678
- .jstree-modern-small .jstree-icon:empty {
679
- width: 18px;
680
- height: 18px;
681
- line-height: 18px
682
- }
683
-
684
- .jstree-modern-small.jstree-rtl .jstree-node {
685
- margin-right: 18px
686
- }
687
-
688
- .jstree-modern-small .jstree-wholerow {
689
- height: 18px
690
- }
691
-
692
- .jstree-modern-small .jstree-node,
693
- .jstree-modern-small .jstree-icon {
694
- background-image: url(32px.png)
695
- }
696
-
697
- .jstree-modern-small .jstree-node {
698
- background-position: -295px -7px;
699
- background-repeat: repeat-y
700
- }
701
-
702
- .jstree-modern-small .jstree-last {
703
- background: 0 0
704
- }
705
-
706
- .jstree-modern-small .jstree-open>.jstree-ocl {
707
- background-position: -135px -7px
708
- }
709
-
710
- .jstree-modern-small .jstree-closed>.jstree-ocl {
711
- background-position: -103px -7px
712
- }
713
-
714
- .jstree-modern-small .jstree-leaf>.jstree-ocl {
715
- background-position: -71px -7px
716
- }
717
-
718
- .jstree-modern-small .jstree-themeicon {
719
- background-position: -263px -7px
720
- }
721
-
722
- .jstree-modern-small>.jstree-no-dots .jstree-node,
723
- .jstree-modern-small>.jstree-no-dots .jstree-leaf>.jstree-ocl {
724
- background: 0 0
725
- }
726
-
727
- .jstree-modern-small>.jstree-no-dots .jstree-open>.jstree-ocl {
728
- background-position: -39px -7px
729
- }
730
-
731
- .jstree-modern-small>.jstree-no-dots .jstree-closed>.jstree-ocl {
732
- background-position: -7px -7px
733
- }
734
-
735
- .jstree-modern-small .jstree-disabled {
736
- background: 0 0
737
- }
738
-
739
- .jstree-modern-small .jstree-disabled.jstree-hovered {
740
- background: 0 0
741
- }
742
-
743
- .jstree-modern-small .jstree-disabled.jstree-clicked {
744
- background: #efefef
745
- }
746
-
747
- .jstree-modern-small .jstree-checkbox {
748
- background-position: -167px -7px
749
- }
750
-
751
- .jstree-modern-small .jstree-checkbox:hover {
752
- background-position: -167px -39px
753
- }
754
-
755
- .jstree-modern-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
756
- .jstree-modern-small .jstree-checked>.jstree-checkbox {
757
- background-position: -231px -7px
758
- }
759
-
760
- .jstree-modern-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
761
- .jstree-modern-small .jstree-checked>.jstree-checkbox:hover {
762
- background-position: -231px -39px
763
- }
764
-
765
- .jstree-modern-small .jstree-anchor>.jstree-undetermined {
766
- background-position: -199px -7px
767
- }
768
-
769
- .jstree-modern-small .jstree-anchor>.jstree-undetermined:hover {
770
- background-position: -199px -39px
771
- }
772
-
773
- .jstree-modern-small .jstree-checkbox-disabled {
774
- opacity: .8;
775
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
776
- filter: gray;
777
- -webkit-filter: grayscale(100%)
778
- }
779
-
780
- .jstree-modern-small>.jstree-striped {
781
- background-size: auto 36px
782
- }
783
-
784
- .jstree-modern-small.jstree-rtl .jstree-node {
785
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
786
- background-position: 100% 1px;
787
- background-repeat: repeat-y
788
- }
789
-
790
- .jstree-modern-small.jstree-rtl .jstree-last {
791
- background: 0 0
792
- }
793
-
794
- .jstree-modern-small.jstree-rtl .jstree-open>.jstree-ocl {
795
- background-position: -135px -39px
796
- }
797
-
798
- .jstree-modern-small.jstree-rtl .jstree-closed>.jstree-ocl {
799
- background-position: -103px -39px
800
- }
801
-
802
- .jstree-modern-small.jstree-rtl .jstree-leaf>.jstree-ocl {
803
- background-position: -71px -39px
804
- }
805
-
806
- .jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-node,
807
- .jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
808
- background: 0 0
809
- }
810
-
811
- .jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
812
- background-position: -39px -39px
813
- }
814
-
815
- .jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
816
- background-position: -7px -39px
817
- }
818
-
819
- .jstree-modern-small .jstree-themeicon-custom {
820
- background-color: transparent;
821
- background-image: none;
822
- background-position: 0 0
823
- }
824
-
825
- .jstree-modern-small>.jstree-container-ul .jstree-loading>.jstree-ocl {
826
- background: url(throbber.gif) center center no-repeat
827
- }
828
-
829
- .jstree-modern-small .jstree-file {
830
- background: url(32px.png) -103px -71px no-repeat
831
- }
832
-
833
- .jstree-modern-small .jstree-folder {
834
- background: url(32px.png) -263px -7px no-repeat
835
- }
836
-
837
- .jstree-modern-small>.jstree-container-ul>.jstree-node {
838
- margin-left: 0;
839
- margin-right: 0
840
- }
841
-
842
- #jstree-dnd.jstree-modern-small {
843
- line-height: 18px;
844
- padding: 0 4px
845
- }
846
-
847
- #jstree-dnd.jstree-modern-small .jstree-ok,
848
- #jstree-dnd.jstree-modern-small .jstree-er {
849
- background-image: url(32px.png);
850
- background-repeat: no-repeat;
851
- background-color: transparent
852
- }
853
-
854
- #jstree-dnd.jstree-modern-small i {
855
- background: 0 0;
856
- width: 18px;
857
- height: 18px;
858
- line-height: 18px
859
- }
860
-
861
- #jstree-dnd.jstree-modern-small .jstree-ok {
862
- background-position: -7px -71px
863
- }
864
-
865
- #jstree-dnd.jstree-modern-small .jstree-er {
866
- background-position: -39px -71px
867
- }
868
-
869
- .jstree-modern-small.jstree-rtl .jstree-node {
870
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)
871
- }
872
-
873
- .jstree-modern-small.jstree-rtl .jstree-last {
874
- background: 0 0
875
- }
876
-
877
- .jstree-modern-large .jstree-node {
878
- min-height: 32px;
879
- line-height: 32px;
880
- margin-left: 32px;
881
- min-width: 32px
882
- }
883
-
884
- .jstree-modern-large .jstree-anchor {
885
- line-height: 32px;
886
- height: 32px
887
- }
888
-
889
- .jstree-modern-large .jstree-icon {
890
- width: 32px;
891
- height: 32px;
892
- line-height: 32px
893
- }
894
-
895
- .jstree-modern-large .jstree-icon:empty {
896
- width: 32px;
897
- height: 32px;
898
- line-height: 32px
899
- }
900
-
901
- .jstree-modern-large.jstree-rtl .jstree-node {
902
- margin-right: 32px
903
- }
904
-
905
- .jstree-modern-large .jstree-wholerow {
906
- height: 32px
907
- }
908
-
909
- .jstree-modern-large .jstree-node,
910
- .jstree-modern-large .jstree-icon {
911
- background-image: url(32px.png)
912
- }
913
-
914
- .jstree-modern-large .jstree-node {
915
- background-position: -288px 0;
916
- background-repeat: repeat-y
917
- }
918
-
919
- .jstree-modern-large .jstree-last {
920
- background: 0 0
921
- }
922
-
923
- .jstree-modern-large .jstree-open>.jstree-ocl {
924
- background-position: -128px 0
925
- }
926
-
927
- .jstree-modern-large .jstree-closed>.jstree-ocl {
928
- background-position: -96px 0
929
- }
930
-
931
- .jstree-modern-large .jstree-leaf>.jstree-ocl {
932
- background-position: -64px 0
933
- }
934
-
935
- .jstree-modern-large .jstree-themeicon {
936
- background-position: -256px 0
937
- }
938
-
939
- .jstree-modern-large>.jstree-no-dots .jstree-node,
940
- .jstree-modern-large>.jstree-no-dots .jstree-leaf>.jstree-ocl {
941
- background: 0 0
942
- }
943
-
944
- .jstree-modern-large>.jstree-no-dots .jstree-open>.jstree-ocl {
945
- background-position: -32px 0
946
- }
947
-
948
- .jstree-modern-large>.jstree-no-dots .jstree-closed>.jstree-ocl {
949
- background-position: 0 0
950
- }
951
-
952
- .jstree-modern-large .jstree-disabled {
953
- background: 0 0
954
- }
955
-
956
- .jstree-modern-large .jstree-disabled.jstree-hovered {
957
- background: 0 0
958
- }
959
-
960
- .jstree-modern-large .jstree-disabled.jstree-clicked {
961
- background: #efefef
962
- }
963
-
964
- .jstree-modern-large .jstree-checkbox {
965
- background-position: -160px 0
966
- }
967
-
968
- .jstree-modern-large .jstree-checkbox:hover {
969
- background-position: -160px -32px
970
- }
971
-
972
- .jstree-modern-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
973
- .jstree-modern-large .jstree-checked>.jstree-checkbox {
974
- background-position: -224px 0
975
- }
976
-
977
- .jstree-modern-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
978
- .jstree-modern-large .jstree-checked>.jstree-checkbox:hover {
979
- background-position: -224px -32px
980
- }
981
-
982
- .jstree-modern-large .jstree-anchor>.jstree-undetermined {
983
- background-position: -192px 0
984
- }
985
-
986
- .jstree-modern-large .jstree-anchor>.jstree-undetermined:hover {
987
- background-position: -192px -32px
988
- }
989
-
990
- .jstree-modern-large .jstree-checkbox-disabled {
991
- opacity: .8;
992
- filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
993
- filter: gray;
994
- -webkit-filter: grayscale(100%)
995
- }
996
-
997
- .jstree-modern-large>.jstree-striped {
998
- background-size: auto 64px
999
- }
1000
-
1001
- .jstree-modern-large.jstree-rtl .jstree-node {
1002
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);
1003
- background-position: 100% 1px;
1004
- background-repeat: repeat-y
1005
- }
1006
-
1007
- .jstree-modern-large.jstree-rtl .jstree-last {
1008
- background: 0 0
1009
- }
1010
-
1011
- .jstree-modern-large.jstree-rtl .jstree-open>.jstree-ocl {
1012
- background-position: -128px -32px
1013
- }
1014
-
1015
- .jstree-modern-large.jstree-rtl .jstree-closed>.jstree-ocl {
1016
- background-position: -96px -32px
1017
- }
1018
-
1019
- .jstree-modern-large.jstree-rtl .jstree-leaf>.jstree-ocl {
1020
- background-position: -64px -32px
1021
- }
1022
-
1023
- .jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-node,
1024
- .jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl {
1025
- background: 0 0
1026
- }
1027
-
1028
- .jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl {
1029
- background-position: -32px -32px
1030
- }
1031
-
1032
- .jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl {
1033
- background-position: 0 -32px
1034
- }
1035
-
1036
- .jstree-modern-large .jstree-themeicon-custom {
1037
- background-color: transparent;
1038
- background-image: none;
1039
- background-position: 0 0
1040
- }
1041
-
1042
- .jstree-modern-large>.jstree-container-ul .jstree-loading>.jstree-ocl {
1043
- background: url(throbber.gif) center center no-repeat
1044
- }
1045
-
1046
- .jstree-modern-large .jstree-file {
1047
- background: url(32px.png) -96px -64px no-repeat
1048
- }
1049
-
1050
- .jstree-modern-large .jstree-folder {
1051
- background: url(32px.png) -256px 0 no-repeat
1052
- }
1053
-
1054
- .jstree-modern-large>.jstree-container-ul>.jstree-node {
1055
- margin-left: 0;
1056
- margin-right: 0
1057
- }
1058
-
1059
- #jstree-dnd.jstree-modern-large {
1060
- line-height: 32px;
1061
- padding: 0 4px
1062
- }
1063
-
1064
- #jstree-dnd.jstree-modern-large .jstree-ok,
1065
- #jstree-dnd.jstree-modern-large .jstree-er {
1066
- background-image: url(32px.png);
1067
- background-repeat: no-repeat;
1068
- background-color: transparent
1069
- }
1070
-
1071
- #jstree-dnd.jstree-modern-large i {
1072
- background: 0 0;
1073
- width: 32px;
1074
- height: 32px;
1075
- line-height: 32px
1076
- }
1077
-
1078
- #jstree-dnd.jstree-modern-large .jstree-ok {
1079
- background-position: 0 -64px
1080
- }
1081
-
1082
- #jstree-dnd.jstree-modern-large .jstree-er {
1083
- background-position: -32px -64px
1084
- }
1085
-
1086
- .jstree-modern-large.jstree-rtl .jstree-node {
1087
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)
1088
- }
1089
-
1090
- .jstree-modern-large.jstree-rtl .jstree-last {
1091
- background: 0 0
1092
- }
1093
-
1094
- @media (max-width:768px) {
1095
- #jstree-dnd.jstree-dnd-responsive {
1096
- line-height: 40px;
1097
- font-weight: 700;
1098
- font-size: 1.1em;
1099
- text-shadow: 1px 1px #fff
1100
- }
1101
- #jstree-dnd.jstree-dnd-responsive>i {
1102
- background: 0 0;
1103
- width: 40px;
1104
- height: 40px
1105
- }
1106
- #jstree-dnd.jstree-dnd-responsive>.jstree-ok {
1107
- background-image: url(40px.png);
1108
- background-position: 0 -200px;
1109
- background-size: 120px 240px
1110
- }
1111
- #jstree-dnd.jstree-dnd-responsive>.jstree-er {
1112
- background-image: url(40px.png);
1113
- background-position: -40px -200px;
1114
- background-size: 120px 240px
1115
- }
1116
- #jstree-marker.jstree-dnd-responsive {
1117
- border-left-width: 10px;
1118
- border-top-width: 10px;
1119
- border-bottom-width: 10px;
1120
- margin-top: -10px
1121
- }
1122
- }
1123
-
1124
- @media (max-width:768px) {
1125
- .jstree-modern-responsive .jstree-icon {
1126
- background-image: url(40px.png)
1127
- }
1128
- .jstree-modern-responsive .jstree-node,
1129
- .jstree-modern-responsive .jstree-leaf>.jstree-ocl {
1130
- background: 0 0
1131
- }
1132
- .jstree-modern-responsive .jstree-node {
1133
- min-height: 40px;
1134
- line-height: 40px;
1135
- margin-left: 40px;
1136
- min-width: 40px;
1137
- white-space: nowrap
1138
- }
1139
- .jstree-modern-responsive .jstree-anchor {
1140
- line-height: 40px;
1141
- height: 40px
1142
- }
1143
- .jstree-modern-responsive .jstree-icon,
1144
- .jstree-modern-responsive .jstree-icon:empty {
1145
- width: 40px;
1146
- height: 40px;
1147
- line-height: 40px
1148
- }
1149
- .jstree-modern-responsive>.jstree-container-ul>.jstree-node {
1150
- margin-left: 0
1151
- }
1152
- .jstree-modern-responsive.jstree-rtl .jstree-node {
1153
- margin-left: 0;
1154
- margin-right: 40px
1155
- }
1156
- .jstree-modern-responsive.jstree-rtl .jstree-container-ul>.jstree-node {
1157
- margin-right: 0
1158
- }
1159
- .jstree-modern-responsive .jstree-ocl,
1160
- .jstree-modern-responsive .jstree-themeicon,
1161
- .jstree-modern-responsive .jstree-checkbox {
1162
- background-size: 120px 240px
1163
- }
1164
- .jstree-modern-responsive .jstree-leaf>.jstree-ocl {
1165
- background: 0 0
1166
- }
1167
- .jstree-modern-responsive .jstree-open>.jstree-ocl {
1168
- background-position: 0 0!important
1169
- }
1170
- .jstree-modern-responsive .jstree-closed>.jstree-ocl {
1171
- background-position: 0 -40px!important
1172
- }
1173
- .jstree-modern-responsive.jstree-rtl .jstree-closed>.jstree-ocl {
1174
- background-position: -40px 0!important
1175
- }
1176
- .jstree-modern-responsive .jstree-themeicon {
1177
- background-position: -40px -40px
1178
- }
1179
- .jstree-modern-responsive .jstree-checkbox,
1180
- .jstree-modern-responsive .jstree-checkbox:hover {
1181
- background-position: -40px -80px
1182
- }
1183
- .jstree-modern-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,
1184
- .jstree-modern-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,
1185
- .jstree-modern-responsive .jstree-checked>.jstree-checkbox,
1186
- .jstree-modern-responsive .jstree-checked>.jstree-checkbox:hover {
1187
- background-position: 0 -80px
1188
- }
1189
- .jstree-modern-responsive .jstree-anchor>.jstree-undetermined,
1190
- .jstree-modern-responsive .jstree-anchor>.jstree-undetermined:hover {
1191
- background-position: 0 -120px
1192
- }
1193
- .jstree-modern-responsive .jstree-anchor {
1194
- font-weight: 700;
1195
- font-size: 1.1em;
1196
- text-shadow: 1px 1px #fff
1197
- }
1198
- .jstree-modern-responsive>.jstree-striped {
1199
- background: 0 0
1200
- }
1201
- .jstree-modern-responsive .jstree-wholerow {
1202
- border-top: 1px solid rgba(255, 255, 255, .7);
1203
- border-bottom: 1px solid rgba(64, 64, 64, .2);
1204
- background: #ebebeb;
1205
- height: 40px
1206
- }
1207
- .jstree-modern-responsive .jstree-wholerow-hovered {
1208
- background: #e7f4f9
1209
- }
1210
- .jstree-modern-responsive .jstree-wholerow-clicked {
1211
- background: #beebff
1212
- }
1213
- .jstree-modern-responsive .jstree-children .jstree-last>.jstree-wholerow {
1214
- box-shadow: inset 0 -6px 3px -5px #666
1215
- }
1216
- .jstree-modern-responsive .jstree-children .jstree-open>.jstree-wholerow {
1217
- box-shadow: inset 0 6px 3px -5px #666;
1218
- border-top: 0
1219
- }
1220
- .jstree-modern-responsive .jstree-children .jstree-open+.jstree-open {
1221
- box-shadow: none
1222
- }
1223
- .jstree-modern-responsive .jstree-node,
1224
- .jstree-modern-responsive .jstree-icon,
1225
- .jstree-modern-responsive .jstree-node>.jstree-ocl,
1226
- .jstree-modern-responsive .jstree-themeicon,
1227
- .jstree-modern-responsive .jstree-checkbox {
1228
- background-image: url(40px.png);
1229
- background-size: 120px 240px
1230
- }
1231
- .jstree-modern-responsive .jstree-node {
1232
- background-position: -80px 0;
1233
- background-repeat: repeat-y
1234
- }
1235
- .jstree-modern-responsive .jstree-last {
1236
- background: 0 0
1237
- }
1238
- .jstree-modern-responsive .jstree-leaf>.jstree-ocl {
1239
- background-position: -40px -120px
1240
- }
1241
- .jstree-modern-responsive .jstree-last>.jstree-ocl {
1242
- background-position: -40px -160px
1243
- }
1244
- .jstree-modern-responsive .jstree-themeicon-custom {
1245
- background-color: transparent;
1246
- background-image: none;
1247
- background-position: 0 0
1248
- }
1249
- .jstree-modern-responsive .jstree-file {
1250
- background: url(40px.png) 0 -160px no-repeat;
1251
- background-size: 120px 240px
1252
- }
1253
- .jstree-modern-responsive .jstree-folder {
1254
- background: url(40px.png) -40px -40px no-repeat;
1255
- background-size: 120px 240px
1256
- }
1257
- .jstree-modern-responsive>.jstree-container-ul>.jstree-node {
1258
- margin-left: 0;
1259
- margin-right: 0
1260
- }
1261
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/jstree/themes/modern/style.min.css DELETED
@@ -1 +0,0 @@
1
- .jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-modern .jstree-node,.jstree-modern .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-modern .jstree-anchor,.jstree-modern .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-modern .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-modern .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-modern .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-modern .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-modern .jstree-disabled{background:0 0;color:#666}.jstree-modern .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-modern .jstree-disabled.jstree-clicked{background:#efefef}.jstree-modern .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-modern .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-modern .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-modern.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-modern.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-modern.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-modern.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-modern>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-modern>.jstree-wholerow-ul .jstree-hovered,.jstree-modern>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-modern .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-modern .jstree-wholerow-hovered{background:#e7f4f9}.jstree-modern .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-modern .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-modern .jstree-anchor{line-height:24px;height:24px}.jstree-modern .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-modern .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-modern.jstree-rtl .jstree-node{margin-right:24px}.jstree-modern .jstree-wholerow{height:24px}.jstree-modern .jstree-node,.jstree-modern .jstree-icon{background-image:url(32px.png)}.jstree-modern .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-modern .jstree-last{background:0 0}.jstree-modern .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-modern .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-modern .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-modern .jstree-themeicon{background-position:-260px -4px}.jstree-modern>.jstree-no-dots .jstree-node,.jstree-modern>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-modern>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-modern .jstree-disabled{background:0 0}.jstree-modern .jstree-disabled.jstree-hovered{background:0 0}.jstree-modern .jstree-disabled.jstree-clicked{background:#efefef}.jstree-modern .jstree-checkbox{background-position:-164px -4px}.jstree-modern .jstree-checkbox:hover{background-position:-164px -36px}.jstree-modern.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-modern .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-modern.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-modern .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-modern .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-modern .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-modern .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-modern>.jstree-striped{background-size:auto 48px}.jstree-modern.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-modern.jstree-rtl .jstree-last{background:0 0}.jstree-modern.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-modern.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-modern.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-modern.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-modern.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-modern.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-modern .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-modern>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-modern .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-modern .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-modern>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-modern{line-height:24px;padding:0 4px}#jstree-dnd.jstree-modern .jstree-ok,#jstree-dnd.jstree-modern .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-modern i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-modern .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-modern .jstree-er{background-position:-36px -68px}.jstree-modern.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-modern.jstree-rtl .jstree-last{background:0 0}.jstree-modern-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-modern-small .jstree-anchor{line-height:18px;height:18px}.jstree-modern-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-modern-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-modern-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-modern-small .jstree-wholerow{height:18px}.jstree-modern-small .jstree-node,.jstree-modern-small .jstree-icon{background-image:url(32px.png)}.jstree-modern-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-modern-small .jstree-last{background:0 0}.jstree-modern-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-modern-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-modern-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-modern-small .jstree-themeicon{background-position:-263px -7px}.jstree-modern-small>.jstree-no-dots .jstree-node,.jstree-modern-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-modern-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-modern-small .jstree-disabled{background:0 0}.jstree-modern-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-modern-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-modern-small .jstree-checkbox{background-position:-167px -7px}.jstree-modern-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-modern-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-modern-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-modern-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-modern-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-modern-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-modern-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-modern-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-modern-small>.jstree-striped{background-size:auto 36px}.jstree-modern-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-modern-small.jstree-rtl .jstree-last{background:0 0}.jstree-modern-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-modern-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-modern-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-modern-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-modern-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-modern-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-modern-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-modern-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-modern-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-modern-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-modern-small .jstree-ok,#jstree-dnd.jstree-modern-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-modern-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-modern-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-modern-small .jstree-er{background-position:-39px -71px}.jstree-modern-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-modern-small.jstree-rtl .jstree-last{background:0 0}.jstree-modern-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-modern-large .jstree-anchor{line-height:32px;height:32px}.jstree-modern-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-modern-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-modern-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-modern-large .jstree-wholerow{height:32px}.jstree-modern-large .jstree-node,.jstree-modern-large .jstree-icon{background-image:url(32px.png)}.jstree-modern-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-modern-large .jstree-last{background:0 0}.jstree-modern-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-modern-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-modern-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-modern-large .jstree-themeicon{background-position:-256px 0}.jstree-modern-large>.jstree-no-dots .jstree-node,.jstree-modern-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-modern-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-modern-large .jstree-disabled{background:0 0}.jstree-modern-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-modern-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-modern-large .jstree-checkbox{background-position:-160px 0}.jstree-modern-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-modern-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-modern-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-modern-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-modern-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-modern-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-modern-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-modern-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-modern-large>.jstree-striped{background-size:auto 64px}.jstree-modern-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-modern-large.jstree-rtl .jstree-last{background:0 0}.jstree-modern-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-modern-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-modern-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-modern-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-modern-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-modern-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-modern-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-modern-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-modern-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-modern-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-modern-large .jstree-ok,#jstree-dnd.jstree-modern-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-modern-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-modern-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-modern-large .jstree-er{background-position:-32px -64px}.jstree-modern-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-modern-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}.jstree-modern-responsive .jstree-icon{background-image:url(40px.png)}.jstree-modern-responsive .jstree-node,.jstree-modern-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-modern-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-modern-responsive .jstree-icon,.jstree-modern-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-modern-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-modern-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-modern-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-modern-responsive .jstree-ocl,.jstree-modern-responsive .jstree-themeicon,.jstree-modern-responsive .jstree-checkbox{background-size:120px 240px}.jstree-modern-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-modern-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-modern-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-modern-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-modern-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-modern-responsive .jstree-checkbox,.jstree-modern-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-modern-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-modern-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-modern-responsive .jstree-checked>.jstree-checkbox,.jstree-modern-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-modern-responsive .jstree-anchor>.jstree-undetermined,.jstree-modern-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-modern-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-modern-responsive>.jstree-striped{background:0 0}.jstree-modern-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-modern-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-modern-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-modern-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-modern-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-modern-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-modern-responsive .jstree-node,.jstree-modern-responsive .jstree-icon,.jstree-modern-responsive .jstree-node>.jstree-ocl,.jstree-modern-responsive .jstree-themeicon,.jstree-modern-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-modern-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-modern-responsive .jstree-last{background:0 0}.jstree-modern-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-modern-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-modern-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-modern-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-modern-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-modern-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}
 
assets/jstree/themes/modern/throbber.gif DELETED
Binary file
assets/nivo/license.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2013 Dev7studios
2
-
3
- Permission is hereby granted, free of charge, to any person
4
- obtaining a copy of this software and associated documentation
5
- files (the "Software"), to deal in the Software without
6
- restriction, including without limitation the rights to use,
7
- copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the
9
- Software is furnished to do so, subject to the following
10
- conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
- OTHER DEALINGS IN THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
css/admin-gallery.css CHANGED
@@ -7,9 +7,13 @@
7
  #rl-insert-modal-gallery-button span {
8
  font-size: 18px;
9
  }
 
 
 
10
  #rl-modal-gallery .rl-gallery-images-spinner {
11
  margin-top: 20px;
12
  float: none;
 
13
  }
14
  #rl-modal-gallery .rl-loading-content {
15
  pointer-events: none;
@@ -66,4 +70,12 @@
66
  white-space: nowrap;
67
  text-overflow: ellipsis;
68
  }
69
- }
 
 
 
 
 
 
 
 
7
  #rl-insert-modal-gallery-button span {
8
  font-size: 18px;
9
  }
10
+ #rl-modal-gallery h1 {
11
+ line-height: 50px;
12
+ }
13
  #rl-modal-gallery .rl-gallery-images-spinner {
14
  margin-top: 20px;
15
  float: none;
16
+ vertical-align: middle;
17
  }
18
  #rl-modal-gallery .rl-loading-content {
19
  pointer-events: none;
70
  white-space: nowrap;
71
  text-overflow: ellipsis;
72
  }
73
+ }
74
+ @media only screen and (max-width: 900px) {
75
+ #rl-modal-gallery .media-selection .attachments {
76
+ display: block;
77
+ }
78
+ #rl-modal-gallery .media-frame.hide-router .media-frame-content {
79
+ top: 50px;
80
+ }
81
+ }
includes/class-folders.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  // exit if accessed directly
3
  if ( ! defined( 'ABSPATH' ) )
4
- exit;
5
 
6
  /**
7
  * Responsive Lightbox folders class.
@@ -10,19 +10,19 @@ if ( ! defined( 'ABSPATH' ) )
10
  */
11
  class Responsive_Lightbox_Folders {
12
 
13
- private $mode = '';
14
  private $term_counters = array(
15
  'keys' => array(),
16
  'values' => array()
17
  );
18
 
19
- /**
20
- * Class constructor.
21
- *
22
  * @param bool $read_only Whether run this in read only mode
23
- * @return void
24
- */
25
- public function __construct( $read_only = false ) {
26
  // set instance
27
  Responsive_Lightbox()->folders = $this;
28
 
@@ -54,14 +54,14 @@ class Responsive_Lightbox_Folders {
54
  add_filter( 'ajax_query_attachments_args', array( $this, 'ajax_query_attachments_args' ) );
55
  add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 );
56
  add_filter( 'rl_count_attachments', array( $this, 'count_attachments' ), 10 );
57
- }
58
 
59
  /**
60
- * Load previously used media taxonomies via AJAX.
61
- *
62
- * @return void
63
- */
64
- public function load_old_taxonomies() {
65
  if ( isset( $_POST['taxonomies'], $_POST['nonce'] ) && is_array( $_POST['taxonomies'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-taxonomies-nonce' ) ) {
66
  $fields = $this->get_taxonomies();
67
 
@@ -88,15 +88,16 @@ class Responsive_Lightbox_Folders {
88
 
89
  // send JSON error
90
  wp_send_json_error();
91
- }
92
-
93
- /**
94
- * Detect library mode (list or grid).
95
- *
96
- * @global string $pagenow Current page
97
- * @return void
98
- */
99
- public function detect_library_mode() {
 
100
  global $pagenow;
101
 
102
  if ( $pagenow === 'upload.php' ) {
@@ -135,16 +136,17 @@ class Responsive_Lightbox_Folders {
135
  )
136
  );
137
  }
138
- }
139
-
140
- /**
141
- * Admin body classes.
142
- *
143
- * @global string $pagenow Current page
144
- * @param array $classes Admin body classes
145
- * @return array Changed classes
146
- */
147
- public function admin_body_class( $classes ) {
 
148
  global $pagenow;
149
 
150
  if ( $pagenow === 'upload.php' ) {
@@ -153,15 +155,15 @@ class Responsive_Lightbox_Folders {
153
  }
154
 
155
  return $classes;
156
- }
157
 
158
  /**
159
- * Get folders dropdown HTML.
160
- *
161
  * @param string $taxonomy Folders taxonomy
162
  * @param string $selected Folders taxonomy ID
163
- * @return string
164
- */
165
  private function get_folders( $taxonomy, $selected = 0 ) {
166
  // get only 1 term to check if taxonomy is empty
167
  $any_terms = get_terms(
@@ -200,32 +202,32 @@ class Responsive_Lightbox_Folders {
200
  }
201
 
202
  /**
203
- * Add filter to add media folder id to the uploader
204
- *
205
- * @return void
206
- */
207
- public function pre_upload_ui() {
208
  add_filter( 'upload_post_params', array( $this, 'upload_post_params' ) );
209
  }
210
 
211
  /**
212
- * Add media folder id param to the uploader
213
- *
214
  * @param array $params Plupload parameters
215
- * @return array
216
- */
217
- public function upload_post_params( $params ) {
218
  $params['rl_folders_upload_files_term_id'] = 0;
219
 
220
  return $params;
221
  }
222
 
223
- /**
224
- * Display dropdown at media upload UI screen.
225
- *
226
- * @return void
227
- */
228
- public function post_upload_ui() {
229
  // get taxonomy
230
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
231
 
@@ -264,15 +266,15 @@ class Responsive_Lightbox_Folders {
264
 
265
  // display select
266
  echo '<p><label>' . __( 'Upload files to', 'responsive-lightbox' ) . ': ' . wp_dropdown_categories( $args ) . '</label></p>';
267
- }
268
-
269
- /**
270
- * Assign attachment to given term.
271
- *
272
- * @param int $post_id Current attachment ID
273
- * @return void
274
- */
275
- public function add_attachment( $post_id ) {
276
  if ( isset( $_POST['rl_folders_upload_files_term_id'] ) ) {
277
  // cast term id
278
  $term_id = (int) $_POST['rl_folders_upload_files_term_id'];
@@ -284,15 +286,16 @@ class Responsive_Lightbox_Folders {
284
  if ( is_array( term_exists( $term_id, $taxonomy ) ) )
285
  wp_set_object_terms( $post_id, $term_id, $taxonomy, false );
286
  }
287
- }
288
-
289
- /**
290
- * Add filterable dropdown to media library.
291
- *
292
- * @global string $pagenow Current page
293
- * @return void
294
- */
295
- public function restrict_manage_posts() {
 
296
  global $pagenow;
297
 
298
  if ( $pagenow === 'upload.php' ) {
@@ -318,16 +321,17 @@ class Responsive_Lightbox_Folders {
318
 
319
  echo ( $html === '' ? '<select name="' . $taxonomy . '" id="media-attachment-rl-folders-filters" class="postform"><option>' . __( 'All Files', 'responsive-lightbox' ) . '</option></select> ' : $html );
320
  }
321
- }
322
-
323
- /**
324
- * Change query to adjust taxonomy if needed.
325
- *
326
- * @global string $pagenow Current page
327
- * @param object $query WP Query
328
- * @return object Modified query
329
- */
330
- public function parse_query( $query ) {
 
331
  global $pagenow;
332
 
333
  // get taxonomy
@@ -369,15 +373,15 @@ class Responsive_Lightbox_Folders {
369
  }
370
 
371
  return $query;
372
- }
373
-
374
- /**
375
- * Change AJAX query parameters to adjust taxonomy in the media library if needed.
376
- *
377
- * @param array $query Query arguments
378
- * @return array Modified query arguments
379
- */
380
- public function ajax_query_attachments_args( $query ) {
381
  // get taxonomy
382
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
383
 
@@ -406,16 +410,16 @@ class Responsive_Lightbox_Folders {
406
  }
407
 
408
  return $query;
409
- }
410
-
411
- /**
412
- * Filter the array of attachment fields that are displayed when editing an attachment.
413
- *
414
- * @param array $fields Attachment fields
415
- * @param object $post Post object
416
- * @return array Modified attachment fields
417
- */
418
- function attachment_fields_to_edit( $fields, $post ) {
419
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
420
  // get taxonomy option
421
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
@@ -494,14 +498,14 @@ class Responsive_Lightbox_Folders {
494
  }
495
 
496
  return $fields;
497
- }
498
-
499
- /**
500
- * Assign new term IDs to given attachment ID via AJAX in modal attachment edit screen.
501
- *
502
- * @return void
503
- */
504
- function ajax_save_attachment_compat() {
505
  if ( ! isset( $_REQUEST['id'] ) || ( $id = (int) $_REQUEST['id'] ) <= 0 || empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][$id] ) )
506
  wp_send_json_error();
507
 
@@ -555,14 +559,14 @@ class Responsive_Lightbox_Folders {
555
 
556
  // send JSON success
557
  wp_send_json_success( $attachment );
558
- }
559
 
560
  /**
561
- * Assign new term IDs to given attachment ID via AJAX in modal attachment edit screen.
562
- *
563
- * @return void
564
- */
565
- function get_terms() {
566
  $tags_html = '';
567
 
568
  $tags = wp_get_post_terms( $post->ID, 'rl_media_tag', array( 'fields' => 'id=>name' ) );
@@ -582,12 +586,12 @@ class Responsive_Lightbox_Folders {
582
  }
583
  }
584
 
585
- /**
586
- * AJAX action to delete term.
587
- *
588
- * @return void
589
- */
590
- public function delete_term() {
591
  if ( isset( $_POST['term_id'], $_POST['nonce'], $_POST['children'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && ( $term_id = (int) $_POST['term_id'] ) > 0 ) {
592
  // get taxonomy
593
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
@@ -614,14 +618,14 @@ class Responsive_Lightbox_Folders {
614
 
615
  // send JSON error
616
  wp_send_json_error();
617
- }
618
-
619
- /**
620
- * AJAX action to assign new parent of the term.
621
- *
622
- * @return void
623
- */
624
- public function move_term() {
625
  // get taxonomy
626
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
627
 
@@ -630,14 +634,14 @@ class Responsive_Lightbox_Folders {
630
 
631
  // send JSON error
632
  wp_send_json_error();
633
- }
634
-
635
- /**
636
- * AJAX action to add new term.
637
- *
638
- * @return void
639
- */
640
- public function add_term() {
641
  if ( isset( $_POST['parent_id'], $_POST['name'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) ) {
642
  // get taxonomy
643
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
@@ -689,14 +693,14 @@ class Responsive_Lightbox_Folders {
689
 
690
  // send JSON error
691
  wp_send_json_error();
692
- }
693
-
694
- /**
695
- * AJAX action to rename term.
696
- *
697
- * @return void
698
- */
699
- public function rename_term() {
700
  if ( isset( $_POST['term_id'], $_POST['name'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && ( $term_id = (int) $_POST['term_id'] ) > 0 ) {
701
  // get taxonomy
702
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
@@ -713,14 +717,14 @@ class Responsive_Lightbox_Folders {
713
 
714
  // send JSON error
715
  wp_send_json_error();
716
- }
717
-
718
- /**
719
- * AJAX action to assign new term to an attachment(s).
720
- *
721
- * @return void
722
- */
723
- public function move_attachments() {
724
  if ( isset( $_POST['attachment_ids'], $_POST['old_term_id'], $_POST['new_term_id'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && is_array( $_POST['attachment_ids'] ) && ! empty( $_POST['attachment_ids'] ) ) {
725
  // get taxonomy
726
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
@@ -788,15 +792,15 @@ class Responsive_Lightbox_Folders {
788
 
789
  // send JSON error
790
  wp_send_json_error();
791
- }
792
-
793
- /**
794
- * Change wp_list_categories HTML link.
795
- *
796
- * @param array $matches Matched elements
797
- * @return string Changed link with term ID
798
- */
799
- public function replace_folders_href( $matches ) {
800
  // get taxonomy
801
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
802
 
@@ -828,15 +832,15 @@ class Responsive_Lightbox_Folders {
828
  }
829
 
830
  return 'href="' . esc_url( apply_filters( 'rl_folders_media_folder_url', add_query_arg( array( 'mode' => $this->mode, $taxonomy => $url_term_id ) ), $matches, $this->mode, $url_term_id ) ) . '" data-term_id="' . $term_id . '"';
831
- }
832
-
833
- /**
834
- * Change wp_list_categories HTML link by adding attachment counter.
835
- *
836
- * @param array $matches Matched elements
837
- * @return string Changed link with counter
838
- */
839
- public function replace_folders_count( $matches ) {
840
  if ( isset( $matches[1] ) ) {
841
  $count = (int) str_replace( array( ' ', '&nbsp;' ), '', $matches[1] );
842
  $this->term_counters['values'][] = $count;
@@ -845,15 +849,15 @@ class Responsive_Lightbox_Folders {
845
  }
846
 
847
  return '</a>';
848
- }
849
-
850
- /**
851
- * Change wp_list_categories HTML output by adding jsTree attributes if needed.
852
- *
853
- * @param array $matches Matched elements
854
- * @return string Changed element
855
- */
856
- public function open_folders( $matches ) {
857
  if ( isset( $matches[0] ) ) {
858
  // open parent term
859
  if ( isset( $matches[0] ) && strpos( $matches[0], 'current-cat-ancestor' ) !== false )
@@ -863,17 +867,19 @@ class Responsive_Lightbox_Folders {
863
  if ( strpos( $matches[0], 'current-cat' ) !== false )
864
  return $matches[0] . ' data-jstree=\'{ "selected": true }\'';
865
  }
866
- }
867
-
868
- /**
869
- * Enqueue all needed scripts and styles for media library and modal screens.
870
- *
871
- * @global string $pagenow Current page
872
- * @global string $wp_list_table WP List Table instance
873
- * @param string $page Current page similar to $pagenow depends on from which filter function was called
874
- * @return void
875
- */
876
- public function add_library_scripts( $page ) {
 
 
877
  // count how many times function was executed, allow this only once
878
  static $run = 0;
879
 
@@ -1187,7 +1193,7 @@ class Responsive_Lightbox_Folders {
1187
  */
1188
  public function admin_print_media_styles() {
1189
  echo '<style>.rl_media_folder li .selectit input[type="checkbox"] { margin: 0 3px; }</style>';
1190
- }
1191
 
1192
  /**
1193
  * Count attachments.
@@ -1198,15 +1204,16 @@ class Responsive_Lightbox_Folders {
1198
  $count = wp_count_posts( 'attachment' );
1199
 
1200
  return (int) $count->inherit;
1201
- }
1202
 
1203
  /**
1204
- * Get all previously used media taxonomies.
1205
- *
1206
- * @global object $wpdb Database handler
1207
- * @return array Old unused taxonomies
1208
- */
1209
- public function get_taxonomies() {
 
1210
  global $wpdb;
1211
 
1212
  // query
@@ -1226,5 +1233,5 @@ class Responsive_Lightbox_Folders {
1226
  }
1227
 
1228
  return $fields;
1229
- }
1230
  }
1
  <?php
2
  // exit if accessed directly
3
  if ( ! defined( 'ABSPATH' ) )
4
+ exit;
5
 
6
  /**
7
  * Responsive Lightbox folders class.
10
  */
11
  class Responsive_Lightbox_Folders {
12
 
13
+ private $mode = '';
14
  private $term_counters = array(
15
  'keys' => array(),
16
  'values' => array()
17
  );
18
 
19
+ /**
20
+ * Class constructor.
21
+ *
22
  * @param bool $read_only Whether run this in read only mode
23
+ * @return void
24
+ */
25
+ public function __construct( $read_only = false ) {
26
  // set instance
27
  Responsive_Lightbox()->folders = $this;
28
 
54
  add_filter( 'ajax_query_attachments_args', array( $this, 'ajax_query_attachments_args' ) );
55
  add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 );
56
  add_filter( 'rl_count_attachments', array( $this, 'count_attachments' ), 10 );
57
+ }
58
 
59
  /**
60
+ * Load previously used media taxonomies via AJAX.
61
+ *
62
+ * @return void
63
+ */
64
+ public function load_old_taxonomies() {
65
  if ( isset( $_POST['taxonomies'], $_POST['nonce'] ) && is_array( $_POST['taxonomies'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-taxonomies-nonce' ) ) {
66
  $fields = $this->get_taxonomies();
67
 
88
 
89
  // send JSON error
90
  wp_send_json_error();
91
+ }
92
+
93
+ /**
94
+ * Detect library mode (list or grid).
95
+ *
96
+ * @global string $pagenow
97
+ *
98
+ * @return void
99
+ */
100
+ public function detect_library_mode() {
101
  global $pagenow;
102
 
103
  if ( $pagenow === 'upload.php' ) {
136
  )
137
  );
138
  }
139
+ }
140
+
141
+ /**
142
+ * Admin body classes.
143
+ *
144
+ * @global string $pagenow
145
+ *
146
+ * @param array $classes Admin body classes
147
+ * @return array
148
+ */
149
+ public function admin_body_class( $classes ) {
150
  global $pagenow;
151
 
152
  if ( $pagenow === 'upload.php' ) {
155
  }
156
 
157
  return $classes;
158
+ }
159
 
160
  /**
161
+ * Get folders dropdown HTML.
162
+ *
163
  * @param string $taxonomy Folders taxonomy
164
  * @param string $selected Folders taxonomy ID
165
+ * @return string
166
+ */
167
  private function get_folders( $taxonomy, $selected = 0 ) {
168
  // get only 1 term to check if taxonomy is empty
169
  $any_terms = get_terms(
202
  }
203
 
204
  /**
205
+ * Add filter to add media folder id to the uploader
206
+ *
207
+ * @return void
208
+ */
209
+ public function pre_upload_ui() {
210
  add_filter( 'upload_post_params', array( $this, 'upload_post_params' ) );
211
  }
212
 
213
  /**
214
+ * Add media folder id param to the uploader
215
+ *
216
  * @param array $params Plupload parameters
217
+ * @return array
218
+ */
219
+ public function upload_post_params( $params ) {
220
  $params['rl_folders_upload_files_term_id'] = 0;
221
 
222
  return $params;
223
  }
224
 
225
+ /**
226
+ * Display dropdown at media upload UI screen.
227
+ *
228
+ * @return void
229
+ */
230
+ public function post_upload_ui() {
231
  // get taxonomy
232
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
233
 
266
 
267
  // display select
268
  echo '<p><label>' . __( 'Upload files to', 'responsive-lightbox' ) . ': ' . wp_dropdown_categories( $args ) . '</label></p>';
269
+ }
270
+
271
+ /**
272
+ * Assign attachment to given term.
273
+ *
274
+ * @param int $post_id Current attachment ID
275
+ * @return void
276
+ */
277
+ public function add_attachment( $post_id ) {
278
  if ( isset( $_POST['rl_folders_upload_files_term_id'] ) ) {
279
  // cast term id
280
  $term_id = (int) $_POST['rl_folders_upload_files_term_id'];
286
  if ( is_array( term_exists( $term_id, $taxonomy ) ) )
287
  wp_set_object_terms( $post_id, $term_id, $taxonomy, false );
288
  }
289
+ }
290
+
291
+ /**
292
+ * Add filterable dropdown to media library.
293
+ *
294
+ * @global string $pagenow
295
+ *
296
+ * @return void
297
+ */
298
+ public function restrict_manage_posts() {
299
  global $pagenow;
300
 
301
  if ( $pagenow === 'upload.php' ) {
321
 
322
  echo ( $html === '' ? '<select name="' . $taxonomy . '" id="media-attachment-rl-folders-filters" class="postform"><option>' . __( 'All Files', 'responsive-lightbox' ) . '</option></select> ' : $html );
323
  }
324
+ }
325
+
326
+ /**
327
+ * Change query to adjust taxonomy if needed.
328
+ *
329
+ * @global string $pagenow
330
+ *
331
+ * @param object $query WP Query
332
+ * @return object
333
+ */
334
+ public function parse_query( $query ) {
335
  global $pagenow;
336
 
337
  // get taxonomy
373
  }
374
 
375
  return $query;
376
+ }
377
+
378
+ /**
379
+ * Change AJAX query parameters to adjust taxonomy in the media library if needed.
380
+ *
381
+ * @param array $query Query arguments
382
+ * @return array
383
+ */
384
+ public function ajax_query_attachments_args( $query ) {
385
  // get taxonomy
386
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
387
 
410
  }
411
 
412
  return $query;
413
+ }
414
+
415
+ /**
416
+ * Filter the array of attachment fields that are displayed when editing an attachment.
417
+ *
418
+ * @param array $fields Attachment fields
419
+ * @param object $post Post object
420
+ * @return array
421
+ */
422
+ public function attachment_fields_to_edit( $fields, $post ) {
423
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
424
  // get taxonomy option
425
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
498
  }
499
 
500
  return $fields;
501
+ }
502
+
503
+ /**
504
+ * Assign new term IDs to given attachment ID via AJAX in modal attachment edit screen.
505
+ *
506
+ * @return void
507
+ */
508
+ function ajax_save_attachment_compat() {
509
  if ( ! isset( $_REQUEST['id'] ) || ( $id = (int) $_REQUEST['id'] ) <= 0 || empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][$id] ) )
510
  wp_send_json_error();
511
 
559
 
560
  // send JSON success
561
  wp_send_json_success( $attachment );
562
+ }
563
 
564
  /**
565
+ * Assign new term IDs to given attachment ID via AJAX in modal attachment edit screen.
566
+ *
567
+ * @return void
568
+ */
569
+ function get_terms() {
570
  $tags_html = '';
571
 
572
  $tags = wp_get_post_terms( $post->ID, 'rl_media_tag', array( 'fields' => 'id=>name' ) );
586
  }
587
  }
588
 
589
+ /**
590
+ * AJAX action to delete term.
591
+ *
592
+ * @return void
593
+ */
594
+ public function delete_term() {
595
  if ( isset( $_POST['term_id'], $_POST['nonce'], $_POST['children'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && ( $term_id = (int) $_POST['term_id'] ) > 0 ) {
596
  // get taxonomy
597
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
618
 
619
  // send JSON error
620
  wp_send_json_error();
621
+ }
622
+
623
+ /**
624
+ * AJAX action to assign new parent of the term.
625
+ *
626
+ * @return void
627
+ */
628
+ public function move_term() {
629
  // get taxonomy
630
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
631
 
634
 
635
  // send JSON error
636
  wp_send_json_error();
637
+ }
638
+
639
+ /**
640
+ * AJAX action to add new term.
641
+ *
642
+ * @return void
643
+ */
644
+ public function add_term() {
645
  if ( isset( $_POST['parent_id'], $_POST['name'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) ) {
646
  // get taxonomy
647
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
693
 
694
  // send JSON error
695
  wp_send_json_error();
696
+ }
697
+
698
+ /**
699
+ * AJAX action to rename term.
700
+ *
701
+ * @return void
702
+ */
703
+ public function rename_term() {
704
  if ( isset( $_POST['term_id'], $_POST['name'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && ( $term_id = (int) $_POST['term_id'] ) > 0 ) {
705
  // get taxonomy
706
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
717
 
718
  // send JSON error
719
  wp_send_json_error();
720
+ }
721
+
722
+ /**
723
+ * AJAX action to assign new term to an attachment(s).
724
+ *
725
+ * @return void
726
+ */
727
+ public function move_attachments() {
728
  if ( isset( $_POST['attachment_ids'], $_POST['old_term_id'], $_POST['new_term_id'], $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'rl-folders-ajax-library-nonce' ) && is_array( $_POST['attachment_ids'] ) && ! empty( $_POST['attachment_ids'] ) ) {
729
  // get taxonomy
730
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
792
 
793
  // send JSON error
794
  wp_send_json_error();
795
+ }
796
+
797
+ /**
798
+ * Change wp_list_categories HTML link.
799
+ *
800
+ * @param array $matches Matched elements
801
+ * @return string
802
+ */
803
+ public function replace_folders_href( $matches ) {
804
  // get taxonomy
805
  $taxonomy = Responsive_Lightbox()->options['folders']['media_taxonomy'];
806
 
832
  }
833
 
834
  return 'href="' . esc_url( apply_filters( 'rl_folders_media_folder_url', add_query_arg( array( 'mode' => $this->mode, $taxonomy => $url_term_id ) ), $matches, $this->mode, $url_term_id ) ) . '" data-term_id="' . $term_id . '"';
835
+ }
836
+
837
+ /**
838
+ * Change wp_list_categories HTML link by adding attachment counter.
839
+ *
840
+ * @param array $matches Matched elements
841
+ * @return string
842
+ */
843
+ public function replace_folders_count( $matches ) {
844
  if ( isset( $matches[1] ) ) {
845
  $count = (int) str_replace( array( ' ', '&nbsp;' ), '', $matches[1] );
846
  $this->term_counters['values'][] = $count;
849
  }
850
 
851
  return '</a>';
852
+ }
853
+
854
+ /**
855
+ * Change wp_list_categories HTML output by adding jsTree attributes if needed.
856
+ *
857
+ * @param array $matches Matched elements
858
+ * @return string
859
+ */
860
+ public function open_folders( $matches ) {
861
  if ( isset( $matches[0] ) ) {
862
  // open parent term
863
  if ( isset( $matches[0] ) && strpos( $matches[0], 'current-cat-ancestor' ) !== false )
867
  if ( strpos( $matches[0], 'current-cat' ) !== false )
868
  return $matches[0] . ' data-jstree=\'{ "selected": true }\'';
869
  }
870
+ }
871
+
872
+ /**
873
+ * Enqueue all needed scripts and styles for media library and modal screens.
874
+ *
875
+ * @global string $pagenow
876
+ * @global object $wp_list_table
877
+ * @global array $_wp_admin_css_colors
878
+ *
879
+ * @param string $page Current page similar to $pagenow depends on from which filter function was called
880
+ * @return void
881
+ */
882
+ public function add_library_scripts( $page ) {
883
  // count how many times function was executed, allow this only once
884
  static $run = 0;
885
 
1193
  */
1194
  public function admin_print_media_styles() {
1195
  echo '<style>.rl_media_folder li .selectit input[type="checkbox"] { margin: 0 3px; }</style>';
1196
+ }
1197
 
1198
  /**
1199
  * Count attachments.
1204
  $count = wp_count_posts( 'attachment' );
1205
 
1206
  return (int) $count->inherit;
1207
+ }
1208
 
1209
  /**
1210
+ * Get all previously used media taxonomies.
1211
+ *
1212
+ * @global object $wpdb
1213
+ *
1214
+ * @return array
1215
+ */
1216
+ public function get_taxonomies() {
1217
  global $wpdb;
1218
 
1219
  // query
1233
  }
1234
 
1235
  return $fields;
1236
+ }
1237
  }
includes/class-frontend.php CHANGED
@@ -14,10 +14,15 @@ class Responsive_Lightbox_Frontend {
14
 
15
  public $gallery_no = 0;
16
 
 
 
 
 
 
17
  public function __construct() {
18
  // set instance
19
  Responsive_Lightbox()->frontend = $this;
20
-
21
  // actions
22
  add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 100 );
23
  add_action( 'rl_before_gallery', array( $this, 'before_gallery' ), 10, 2 );
@@ -50,7 +55,7 @@ class Responsive_Lightbox_Frontend {
50
  * Add lightbox to images, galleries and videos.
51
  *
52
  * @param string $content HTML content
53
- * @return string Changed HTML content
54
  */
55
  public function add_lightbox( $content ) {
56
  // get current script
@@ -181,7 +186,7 @@ class Responsive_Lightbox_Frontend {
181
  *
182
  * @param string $link Video link
183
  * @param array $args Link arguments
184
- * @return string Updated video link
185
  */
186
  public function lightbox_video_link( $link, $args ) {
187
  // link already contains data-rel attribute?
@@ -218,7 +223,7 @@ class Responsive_Lightbox_Frontend {
218
  *
219
  * @param string $link Image link
220
  * @param array $args Link arguments
221
- * @return string Updated image link
222
  */
223
  public function lightbox_image_link( $link, $args ) {
224
  if ( rl_current_lightbox_supports( 'html_caption' ) ) {
@@ -282,6 +287,7 @@ class Responsive_Lightbox_Frontend {
282
  * @param bool $permalink
283
  * @param mixed $icon
284
  * @param mixed $text
 
285
  */
286
  public function wp_get_attachment_link( $link, $id, $size, $permalink, $icon, $text ) {
287
  if ( Responsive_Lightbox()->options['settings']['galleries'] && wp_attachment_is_image( $id ) ) {
@@ -317,7 +323,7 @@ class Responsive_Lightbox_Frontend {
317
  *
318
  * @param string $link Gallery image link
319
  * @param array $args Gallery link arguments
320
- * @return string Updated gallery image link
321
  */
322
  public function lightbox_gallery_link( $link, $args ) {
323
  // gallery image title
@@ -413,7 +419,7 @@ class Responsive_Lightbox_Frontend {
413
  *
414
  * @param string $link Content link
415
  * @param array $args Content arguments
416
- * @return string Updated content link
417
  */
418
  public function lightbox_content_link( $link, $args ) {
419
  if ( in_array( $args['content'], $args['supports'], true ) ) {
@@ -450,7 +456,7 @@ class Responsive_Lightbox_Frontend {
450
  * Get gallery fields.
451
  *
452
  * @param string $type Gallery type
453
- * @return array Gallery fields
454
  */
455
  public function get_gallery_fields( $type ) {
456
  $rl = Responsive_Lightbox();
@@ -486,7 +492,7 @@ class Responsive_Lightbox_Frontend {
486
  *
487
  * @param array $defaults Default gallery fields
488
  * @param array $fields Custom gallery fields
489
- * @return array Unique fields
490
  */
491
  public function get_unique_fields( $defaults, $fields ) {
492
  // check duplicated fields
@@ -509,7 +515,7 @@ class Responsive_Lightbox_Frontend {
509
  * @param array $fields Gallery fields
510
  * @param array $shortcode_atts Gallery shortcode attributes
511
  * @param bool $gallery Whether is it rl_gallery shortcode
512
- * @return array All combined field attributes
513
  */
514
  public function get_gallery_fields_atts( $fields, $shortcode_atts, $gallery = true ) {
515
  // prepare default values
@@ -529,7 +535,7 @@ class Responsive_Lightbox_Frontend {
529
  if ( $gallery ) {
530
  $tabs = Responsive_Lightbox()->galleries->tabs;
531
 
532
- if ( ! empty( $tabs ) ) {
533
  foreach ( $tabs as $key => $args ) {
534
  if ( in_array( $key, array( 'images', 'config' ) ) )
535
  continue;
@@ -545,7 +551,7 @@ class Responsive_Lightbox_Frontend {
545
 
546
  if ( $field_atts['hover_effect'] !== '0' )
547
  $field_atts['gallery_custom_class'] .= ' rl-hover-effect-' . $field_atts['hover_effect'];
548
-
549
  if ( $field_atts['show_icon'] !== '0' )
550
  $field_atts['gallery_custom_class'] .= ' rl-hover-icon-' . $field_atts['show_icon'];
551
  }
@@ -556,7 +562,7 @@ class Responsive_Lightbox_Frontend {
556
  /**
557
  * Get default gallery fields.
558
  *
559
- * @return array Default gallery
560
  */
561
  public function get_default_gallery_fields() {
562
  $sizes = get_intermediate_image_sizes();
@@ -620,7 +626,7 @@ class Responsive_Lightbox_Frontend {
620
  *
621
  * @param array $atts Shortcode arguments
622
  * @param array $fields Gallery fields
623
- * @return array Sanitized shortcode arguments
624
  */
625
  public function sanitize_shortcode_args( $atts, $fields ) {
626
  $rl = Responsive_Lightbox();
@@ -782,7 +788,7 @@ class Responsive_Lightbox_Frontend {
782
  )
783
  );
784
  }
785
-
786
  // any attachments?
787
  if ( ! empty( $ids ) ) {
788
  foreach ( $ids as $attachment_id ) {
@@ -866,7 +872,7 @@ class Responsive_Lightbox_Frontend {
866
  * @param array $image Source image data
867
  * @param array $thumbnail Thumbnail image data
868
  * @param array $args Arguments
869
- * @return string Generated gallery image link
870
  */
871
  function get_gallery_image_link( $attachment_id, $image, $thumbnail, $args ) {
872
  switch ( $args['link'] ) {
@@ -962,6 +968,10 @@ class Responsive_Lightbox_Frontend {
962
 
963
  /**
964
  * Remove WooCommerce prettyPhoto lightbox styles and scripts.
 
 
 
 
965
  */
966
  public function wp_enqueue_scripts() {
967
  if ( class_exists( 'WooCommerce' ) ) {
@@ -1038,12 +1048,12 @@ class Responsive_Lightbox_Frontend {
1038
  wp_deregister_style( 'prettyphoto' );
1039
  }
1040
  }
1041
-
1042
  /**
1043
  * Apply lightbox to WooCommerce product image.
1044
- *
1045
- * @param mixed $html
1046
- * @return mixed
1047
  */
1048
  public function woocommerce_single_product_image_html( $html ) {
1049
  if ( Responsive_Lightbox()->options['settings']['woocommerce_gallery_lightbox'] )
@@ -1054,9 +1064,9 @@ class Responsive_Lightbox_Frontend {
1054
 
1055
  /**
1056
  * Apply lightbox to WooCommerce product gallery.
1057
- *
1058
- * @param mixed $html
1059
- * @return mixed
1060
  */
1061
  public function woocommerce_single_product_image_thumbnail_html( $html ) {
1062
  if ( Responsive_Lightbox()->options['settings']['woocommerce_gallery_lightbox'] ) {
@@ -1079,9 +1089,11 @@ class Responsive_Lightbox_Frontend {
1079
 
1080
  return $html;
1081
  }
1082
-
1083
  /**
1084
  * WooCommerce gallery init.
 
 
1085
  */
1086
  public function woocommerce_gallery_init() {
1087
  if ( ( $priority = has_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails' ) ) != false && ! empty( Responsive_Lightbox()->options['settings']['default_woocommerce_gallery'] ) && Responsive_Lightbox()->options['settings']['default_woocommerce_gallery'] !== 'default' ) {
@@ -1092,12 +1104,13 @@ class Responsive_Lightbox_Frontend {
1092
  add_action( 'woocommerce_product_thumbnails', array( $this, 'woocommerce_gallery' ), $priority );
1093
  }
1094
  }
1095
-
1096
  /**
1097
  * WooCommerce gallery support.
1098
- *
1099
  * @global object $product
1100
- * @return mixed
 
1101
  */
1102
  public function woocommerce_gallery() {
1103
  global $product;
@@ -1117,10 +1130,10 @@ class Responsive_Lightbox_Frontend {
1117
 
1118
  /**
1119
  * Get attachment title function
1120
- *
1121
  * @param int $id
1122
  * @param string $title_arg
1123
- * @return string
1124
  */
1125
  public function get_attachment_title( $id, $title_arg ) {
1126
  if ( empty( $title_arg ) || empty( $id ) )
@@ -1152,7 +1165,7 @@ class Responsive_Lightbox_Frontend {
1152
 
1153
  /**
1154
  * Get attachment id by url function, adjusted to work for cropped images
1155
- *
1156
  * @param string $url
1157
  * @return int
1158
  */
@@ -1237,9 +1250,9 @@ class Responsive_Lightbox_Frontend {
1237
 
1238
  /**
1239
  * Add gallery shortcode to gallery post content.
1240
- *
1241
  * @param string $content
1242
- * @return string Updated content
1243
  */
1244
  public function gallery_preview( $content ) {
1245
  if ( get_post_type() === 'rl_gallery' && ! ( is_archive() && is_main_query() ) )
@@ -1250,9 +1263,9 @@ class Responsive_Lightbox_Frontend {
1250
 
1251
  /**
1252
  * Helper: gallery number function
1253
- *
1254
- * @param mixed $content
1255
- * @return mixed
1256
  */
1257
  public function gallery_attributes( $content, $shortcode_atts ) {
1258
  ++$this->gallery_no;
@@ -1329,10 +1342,11 @@ class Responsive_Lightbox_Frontend {
1329
 
1330
  /**
1331
  * Replace widget callback function.
1332
- *
1333
  * @global array $wp_registered_widgets
 
1334
  * @param array $sidebar_params
1335
- * @return type
1336
  */
1337
  public function dynamic_sidebar_params( $sidebar_params ) {
1338
  if ( ( is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) || Responsive_Lightbox()->options['settings']['widgets'] != true )
@@ -1349,8 +1363,10 @@ class Responsive_Lightbox_Frontend {
1349
 
1350
  /**
1351
  * Widget callback function.
1352
- *
1353
  * @global array $wp_registered_widgets
 
 
1354
  */
1355
  public function widget_callback_function() {
1356
  global $wp_registered_widgets;
@@ -1374,11 +1390,11 @@ class Responsive_Lightbox_Frontend {
1374
 
1375
  /**
1376
  * Filter widget output.
1377
- *
1378
- * @param mixed $widget_output
1379
  * @param string $widget_id_base
1380
  * @param id $widget_id
1381
- * @return mixed
1382
  */
1383
  public function widget_output( $content, $widget_id_base, $widget_id ) {
1384
  return $this->add_lightbox( $content );
@@ -1386,9 +1402,9 @@ class Responsive_Lightbox_Frontend {
1386
 
1387
  /**
1388
  * Filter comment content.
1389
- *
1390
- * @param mixed $comment_content
1391
- * @return mixed
1392
  */
1393
  public function get_comment_text( $content ) {
1394
  if ( ( is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) || Responsive_Lightbox()->options['settings']['comments'] != true )
@@ -1403,7 +1419,7 @@ class Responsive_Lightbox_Frontend {
1403
  * @param string $class
1404
  * @param array $args
1405
  * @param int $gallery_id
1406
- * @return void
1407
  */
1408
  public function gallery_container_class( $class, $args, $gallery_id ) {
1409
  if ( $gallery_id ) {
@@ -1418,7 +1434,7 @@ class Responsive_Lightbox_Frontend {
1418
 
1419
  /**
1420
  * Display content before the gallery.
1421
- *
1422
  * @param array $args
1423
  * @param int $gallery_id
1424
  * @return void
@@ -1441,7 +1457,7 @@ class Responsive_Lightbox_Frontend {
1441
 
1442
  /**
1443
  * Display content after the gallery.
1444
- *
1445
  * @param array $args
1446
  * @param int $gallery_id
1447
  * @return void
@@ -1467,7 +1483,7 @@ class Responsive_Lightbox_Frontend {
1467
  *
1468
  * @param string $content HTML content
1469
  * @param string $shortcode Shortcode type
1470
- * @return string Changed HTML content
1471
  */
1472
  public function vc_shortcode_content_filter_after( $content, $shortcode ) {
1473
  if ( in_array( $shortcode, apply_filters( 'rl_lightbox_vc_allowed_shortcode', array( 'vc_gallery', 'vc_single_image', 'vc_images_carousel' ) ), true ) )
@@ -1479,10 +1495,11 @@ class Responsive_Lightbox_Frontend {
1479
  /**
1480
  * Render Basic Grid gallery shortcode.
1481
  *
1482
- * @global object $post Post object
1483
- * @param mixed $output HTML output
 
1484
  * @param array $shortcode_atts Shortcode attributes
1485
- * @return string HTML output
1486
  */
1487
  public function basic_grid_gallery_shortcode( $output, $shortcode_atts ) {
1488
  if ( ! empty( $output ) )
@@ -1640,7 +1657,7 @@ class Responsive_Lightbox_Frontend {
1640
 
1641
  // styles
1642
  wp_enqueue_style( 'responsive-lightbox-basicgrid-gallery', plugins_url( 'css/gallery-basicgrid.css', dirname( __FILE__ ) ), [], $rl->defaults['version'] );
1643
-
1644
  // add inline style
1645
  $inline_css = '
1646
  #rl-gallery-container-' . $gallery_no . ' .rl-basicgrid-gallery {
@@ -1671,7 +1688,7 @@ class Responsive_Lightbox_Frontend {
1671
  }
1672
  }
1673
  ';
1674
-
1675
  if ( $atts['force_height'] ) {
1676
  $inline_css .= '
1677
  #rl-gallery-container-' . $gallery_no . ' .rl-basicgrid-gallery .rl-gallery-item {
@@ -1684,7 +1701,7 @@ class Responsive_Lightbox_Frontend {
1684
  min-width: 100%;
1685
  }';
1686
  }
1687
-
1688
  wp_add_inline_style( 'responsive-lightbox-basicgrid-gallery', $inline_css );
1689
 
1690
  // remove any new lines from the output so that the reader parses it better
@@ -1694,10 +1711,11 @@ class Responsive_Lightbox_Frontend {
1694
  /**
1695
  * Render Basic Slider gallery shortcode.
1696
  *
1697
- * @global object $post Post object
1698
- * @param mixed $output HTML output
 
1699
  * @param array $shortcode_atts Shortcode attributes
1700
- * @return string HTML output
1701
  */
1702
  public function basic_slider_gallery_shortcode( $output, $shortcode_atts ) {
1703
  if ( ! empty( $output ) )
@@ -1825,7 +1843,7 @@ class Responsive_Lightbox_Frontend {
1825
  <?php do_action( 'rl_before_gallery', $atts, $rl_gallery_id ); ?>
1826
 
1827
  <ul class="rl-gallery rl-basicslider-gallery <?php echo $atts['class']; ?>" id="rl-gallery-<?php echo $gallery_no; ?>" data-gallery_no="<?php echo $gallery_no; ?>">
1828
-
1829
  <?php foreach ( $images as $image ) {
1830
  echo '<li class="rl-gallery-item">' . $image['link'] . '</li>';
1831
  } ?>
@@ -1885,10 +1903,11 @@ class Responsive_Lightbox_Frontend {
1885
  /**
1886
  * Render Basic Masonry gallery shortcode.
1887
  *
1888
- * @global object $post Post object
1889
- * @param mixed $output HTML output
 
1890
  * @param array $shortcode_atts Shortcode attributes
1891
- * @return string HTML output
1892
  */
1893
  public function basic_masonry_gallery_shortcode( $output, $shortcode_atts ) {
1894
  if ( ! empty( $output ) )
14
 
15
  public $gallery_no = 0;
16
 
17
+ /**
18
+ * Class constructor.
19
+ *
20
+ * @return void
21
+ */
22
  public function __construct() {
23
  // set instance
24
  Responsive_Lightbox()->frontend = $this;
25
+
26
  // actions
27
  add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 100 );
28
  add_action( 'rl_before_gallery', array( $this, 'before_gallery' ), 10, 2 );
55
  * Add lightbox to images, galleries and videos.
56
  *
57
  * @param string $content HTML content
58
+ * @return string
59
  */
60
  public function add_lightbox( $content ) {
61
  // get current script
186
  *
187
  * @param string $link Video link
188
  * @param array $args Link arguments
189
+ * @return string
190
  */
191
  public function lightbox_video_link( $link, $args ) {
192
  // link already contains data-rel attribute?
223
  *
224
  * @param string $link Image link
225
  * @param array $args Link arguments
226
+ * @return string
227
  */
228
  public function lightbox_image_link( $link, $args ) {
229
  if ( rl_current_lightbox_supports( 'html_caption' ) ) {
287
  * @param bool $permalink
288
  * @param mixed $icon
289
  * @param mixed $text
290
+ * @return string
291
  */
292
  public function wp_get_attachment_link( $link, $id, $size, $permalink, $icon, $text ) {
293
  if ( Responsive_Lightbox()->options['settings']['galleries'] && wp_attachment_is_image( $id ) ) {
323
  *
324
  * @param string $link Gallery image link
325
  * @param array $args Gallery link arguments
326
+ * @return string
327
  */
328
  public function lightbox_gallery_link( $link, $args ) {
329
  // gallery image title
419
  *
420
  * @param string $link Content link
421
  * @param array $args Content arguments
422
+ * @return string
423
  */
424
  public function lightbox_content_link( $link, $args ) {
425
  if ( in_array( $args['content'], $args['supports'], true ) ) {
456
  * Get gallery fields.
457
  *
458
  * @param string $type Gallery type
459
+ * @return array
460
  */
461
  public function get_gallery_fields( $type ) {
462
  $rl = Responsive_Lightbox();
492
  *
493
  * @param array $defaults Default gallery fields
494
  * @param array $fields Custom gallery fields
495
+ * @return array
496
  */
497
  public function get_unique_fields( $defaults, $fields ) {
498
  // check duplicated fields
515
  * @param array $fields Gallery fields
516
  * @param array $shortcode_atts Gallery shortcode attributes
517
  * @param bool $gallery Whether is it rl_gallery shortcode
518
+ * @return array
519
  */
520
  public function get_gallery_fields_atts( $fields, $shortcode_atts, $gallery = true ) {
521
  // prepare default values
535
  if ( $gallery ) {
536
  $tabs = Responsive_Lightbox()->galleries->tabs;
537
 
538
+ if ( ! empty( $tabs ) ) {
539
  foreach ( $tabs as $key => $args ) {
540
  if ( in_array( $key, array( 'images', 'config' ) ) )
541
  continue;
551
 
552
  if ( $field_atts['hover_effect'] !== '0' )
553
  $field_atts['gallery_custom_class'] .= ' rl-hover-effect-' . $field_atts['hover_effect'];
554
+
555
  if ( $field_atts['show_icon'] !== '0' )
556
  $field_atts['gallery_custom_class'] .= ' rl-hover-icon-' . $field_atts['show_icon'];
557
  }
562
  /**
563
  * Get default gallery fields.
564
  *
565
+ * @return array
566
  */
567
  public function get_default_gallery_fields() {
568
  $sizes = get_intermediate_image_sizes();
626
  *
627
  * @param array $atts Shortcode arguments
628
  * @param array $fields Gallery fields
629
+ * @return array
630
  */
631
  public function sanitize_shortcode_args( $atts, $fields ) {
632
  $rl = Responsive_Lightbox();
788
  )
789
  );
790
  }
791
+
792
  // any attachments?
793
  if ( ! empty( $ids ) ) {
794
  foreach ( $ids as $attachment_id ) {
872
  * @param array $image Source image data
873
  * @param array $thumbnail Thumbnail image data
874
  * @param array $args Arguments
875
+ * @return string
876
  */
877
  function get_gallery_image_link( $attachment_id, $image, $thumbnail, $args ) {
878
  switch ( $args['link'] ) {
968
 
969
  /**
970
  * Remove WooCommerce prettyPhoto lightbox styles and scripts.
971
+ *
972
+ * @global object $woocommerce
973
+ *
974
+ * @return void
975
  */
976
  public function wp_enqueue_scripts() {
977
  if ( class_exists( 'WooCommerce' ) ) {
1048
  wp_deregister_style( 'prettyphoto' );
1049
  }
1050
  }
1051
+
1052
  /**
1053
  * Apply lightbox to WooCommerce product image.
1054
+ *
1055
+ * @param string $html
1056
+ * @return string
1057
  */
1058
  public function woocommerce_single_product_image_html( $html ) {
1059
  if ( Responsive_Lightbox()->options['settings']['woocommerce_gallery_lightbox'] )
1064
 
1065
  /**
1066
  * Apply lightbox to WooCommerce product gallery.
1067
+ *
1068
+ * @param string $html
1069
+ * @return string
1070
  */
1071
  public function woocommerce_single_product_image_thumbnail_html( $html ) {
1072
  if ( Responsive_Lightbox()->options['settings']['woocommerce_gallery_lightbox'] ) {
1089
 
1090
  return $html;
1091
  }
1092
+
1093
  /**
1094
  * WooCommerce gallery init.
1095
+ *
1096
+ * @return void
1097
  */
1098
  public function woocommerce_gallery_init() {
1099
  if ( ( $priority = has_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails' ) ) != false && ! empty( Responsive_Lightbox()->options['settings']['default_woocommerce_gallery'] ) && Responsive_Lightbox()->options['settings']['default_woocommerce_gallery'] !== 'default' ) {
1104
  add_action( 'woocommerce_product_thumbnails', array( $this, 'woocommerce_gallery' ), $priority );
1105
  }
1106
  }
1107
+
1108
  /**
1109
  * WooCommerce gallery support.
1110
+ *
1111
  * @global object $product
1112
+ *
1113
+ * @return void
1114
  */
1115
  public function woocommerce_gallery() {
1116
  global $product;
1130
 
1131
  /**
1132
  * Get attachment title function
1133
+ *
1134
  * @param int $id
1135
  * @param string $title_arg
1136
+ * @return false|string
1137
  */
1138
  public function get_attachment_title( $id, $title_arg ) {
1139
  if ( empty( $title_arg ) || empty( $id ) )
1165
 
1166
  /**
1167
  * Get attachment id by url function, adjusted to work for cropped images
1168
+ *
1169
  * @param string $url
1170
  * @return int
1171
  */
1250
 
1251
  /**
1252
  * Add gallery shortcode to gallery post content.
1253
+ *
1254
  * @param string $content
1255
+ * @return string
1256
  */
1257
  public function gallery_preview( $content ) {
1258
  if ( get_post_type() === 'rl_gallery' && ! ( is_archive() && is_main_query() ) )
1263
 
1264
  /**
1265
  * Helper: gallery number function
1266
+ *
1267
+ * @param string $content
1268
+ * @return string
1269
  */
1270
  public function gallery_attributes( $content, $shortcode_atts ) {
1271
  ++$this->gallery_no;
1342
 
1343
  /**
1344
  * Replace widget callback function.
1345
+ *
1346
  * @global array $wp_registered_widgets
1347
+ *
1348
  * @param array $sidebar_params
1349
+ * @return array
1350
  */
1351
  public function dynamic_sidebar_params( $sidebar_params ) {
1352
  if ( ( is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) || Responsive_Lightbox()->options['settings']['widgets'] != true )
1363
 
1364
  /**
1365
  * Widget callback function.
1366
+ *
1367
  * @global array $wp_registered_widgets
1368
+ *
1369
+ * @return void
1370
  */
1371
  public function widget_callback_function() {
1372
  global $wp_registered_widgets;
1390
 
1391
  /**
1392
  * Filter widget output.
1393
+ *
1394
+ * @param string $content
1395
  * @param string $widget_id_base
1396
  * @param id $widget_id
1397
+ * @return string
1398
  */
1399
  public function widget_output( $content, $widget_id_base, $widget_id ) {
1400
  return $this->add_lightbox( $content );
1402
 
1403
  /**
1404
  * Filter comment content.
1405
+ *
1406
+ * @param string $content
1407
+ * @return string
1408
  */
1409
  public function get_comment_text( $content ) {
1410
  if ( ( is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) || Responsive_Lightbox()->options['settings']['comments'] != true )
1419
  * @param string $class
1420
  * @param array $args
1421
  * @param int $gallery_id
1422
+ * @return string
1423
  */
1424
  public function gallery_container_class( $class, $args, $gallery_id ) {
1425
  if ( $gallery_id ) {
1434
 
1435
  /**
1436
  * Display content before the gallery.
1437
+ *
1438
  * @param array $args
1439
  * @param int $gallery_id
1440
  * @return void
1457
 
1458
  /**
1459
  * Display content after the gallery.
1460
+ *
1461
  * @param array $args
1462
  * @param int $gallery_id
1463
  * @return void
1483
  *
1484
  * @param string $content HTML content
1485
  * @param string $shortcode Shortcode type
1486
+ * @return string
1487
  */
1488
  public function vc_shortcode_content_filter_after( $content, $shortcode ) {
1489
  if ( in_array( $shortcode, apply_filters( 'rl_lightbox_vc_allowed_shortcode', array( 'vc_gallery', 'vc_single_image', 'vc_images_carousel' ) ), true ) )
1495
  /**
1496
  * Render Basic Grid gallery shortcode.
1497
  *
1498
+ * @global object $post
1499
+ *
1500
+ * @param string $output HTML output
1501
  * @param array $shortcode_atts Shortcode attributes
1502
+ * @return string
1503
  */
1504
  public function basic_grid_gallery_shortcode( $output, $shortcode_atts ) {
1505
  if ( ! empty( $output ) )
1657
 
1658
  // styles
1659
  wp_enqueue_style( 'responsive-lightbox-basicgrid-gallery', plugins_url( 'css/gallery-basicgrid.css', dirname( __FILE__ ) ), [], $rl->defaults['version'] );
1660
+
1661
  // add inline style
1662
  $inline_css = '
1663
  #rl-gallery-container-' . $gallery_no . ' .rl-basicgrid-gallery {
1688
  }
1689
  }
1690
  ';
1691
+
1692
  if ( $atts['force_height'] ) {
1693
  $inline_css .= '
1694
  #rl-gallery-container-' . $gallery_no . ' .rl-basicgrid-gallery .rl-gallery-item {
1701
  min-width: 100%;
1702
  }';
1703
  }
1704
+
1705
  wp_add_inline_style( 'responsive-lightbox-basicgrid-gallery', $inline_css );
1706
 
1707
  // remove any new lines from the output so that the reader parses it better
1711
  /**
1712
  * Render Basic Slider gallery shortcode.
1713
  *
1714
+ * @global object $post
1715
+ *
1716
+ * @param string $output HTML output
1717
  * @param array $shortcode_atts Shortcode attributes
1718
+ * @return string
1719
  */
1720
  public function basic_slider_gallery_shortcode( $output, $shortcode_atts ) {
1721
  if ( ! empty( $output ) )
1843
  <?php do_action( 'rl_before_gallery', $atts, $rl_gallery_id ); ?>
1844
 
1845
  <ul class="rl-gallery rl-basicslider-gallery <?php echo $atts['class']; ?>" id="rl-gallery-<?php echo $gallery_no; ?>" data-gallery_no="<?php echo $gallery_no; ?>">
1846
+
1847
  <?php foreach ( $images as $image ) {
1848
  echo '<li class="rl-gallery-item">' . $image['link'] . '</li>';
1849
  } ?>
1903
  /**
1904
  * Render Basic Masonry gallery shortcode.
1905
  *
1906
+ * @global object $post
1907
+ *
1908
+ * @param string $output HTML output
1909
  * @param array $shortcode_atts Shortcode attributes
1910
+ * @return string
1911
  */
1912
  public function basic_masonry_gallery_shortcode( $output, $shortcode_atts ) {
1913
  if ( ! empty( $output ) )
includes/class-galleries.php CHANGED
@@ -17,7 +17,7 @@ class Responsive_Lightbox_Galleries {
17
  private $menu_item;
18
 
19
  /**
20
- * Constructor.
21
  *
22
  * @param bool $read_only Whether is it read only mode
23
  * @return void
@@ -1508,7 +1508,7 @@ class Responsive_Lightbox_Galleries {
1508
  * @param string $field Field name
1509
  * @param mixed $value Field value
1510
  * @param array $args Field arguments
1511
- * @return mixed Sanitized value
1512
  */
1513
  public function sanitize_field( $field, $value, $args ) {
1514
  switch ( $args['type'] ) {
@@ -2049,7 +2049,7 @@ class Responsive_Lightbox_Galleries {
2049
  * @return void
2050
  */
2051
  public function delete_attachment( $attachment_id ) {
2052
-
2053
  }
2054
 
2055
  /**
@@ -2085,6 +2085,7 @@ class Responsive_Lightbox_Galleries {
2085
  'posts_per_page' => -1,
2086
  'images_per_page' => 0,
2087
  'page' => 1,
 
2088
  'nopaging' => true,
2089
  'image_size' => 'large',
2090
  'thumbnail_size' => 'thumbnail',
@@ -2200,22 +2201,35 @@ class Responsive_Lightbox_Galleries {
2200
  // filter attachments
2201
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2202
 
 
 
 
 
 
2203
  if ( $attachments ) {
2204
- if ( $args['exclude'] )
2205
- $excluded = ! empty( $data[$menu_item]['attachments']['exclude'] ) ? $data[$menu_item]['attachments']['exclude'] : [];
2206
 
2207
  foreach ( $attachments as $attachment_id ) {
2208
  // real attachment?
2209
  if ( ! wp_attachment_is_image( $attachment_id ) )
2210
  continue;
2211
 
2212
- // get attachment image data
2213
- if ( ! in_array( $attachment_id, $excluded ) ) {
2214
- // for counting mode get attachment id only
2215
- if ( $args['count_images'] )
2216
- $images[] = $attachment_id;
2217
- else
2218
- $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
 
 
 
 
 
 
 
 
2219
  }
2220
  }
2221
  }
@@ -2255,18 +2269,35 @@ class Responsive_Lightbox_Galleries {
2255
  // filter attachments
2256
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2257
 
 
 
 
 
 
2258
  if ( $attachments ) {
2259
- if ( $args['exclude'] )
2260
- $excluded = ! empty( $data[$menu_item]['attachments']['exclude'] ) ? $data[$menu_item]['attachments']['exclude'] : [];
2261
 
2262
  foreach ( $attachments as $attachment_id ) {
2263
- // get attachment image data
2264
- if ( ! in_array( $attachment_id, $excluded ) ) {
2265
- // for counting mode get attachment id only
2266
- if ( $args['count_images'] )
2267
- $images[] = $attachment_id;
2268
- else
2269
- $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
 
 
 
 
 
 
 
 
 
 
 
 
2270
  }
2271
  }
2272
  }
@@ -2394,12 +2425,12 @@ class Responsive_Lightbox_Galleries {
2394
  // run query
2395
  $query = new WP_Query( apply_filters( 'rl_folders_query_args', $wp_query_args ) );
2396
 
2397
- // get attachment IDs
2398
  $attachments = $query->get_posts();
2399
 
2400
  // valid attachments?
2401
  if ( ! is_wp_error( $attachments ) ) {
2402
- // cast IDs to int
2403
  $attachments = array_map( 'intval', $attachments );
2404
 
2405
  // make sure to skip duplicates
@@ -2408,17 +2439,36 @@ class Responsive_Lightbox_Galleries {
2408
  // filter attachments
2409
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2410
 
2411
- if ( $args['exclude'] )
2412
- $excluded = ! empty( $data[$menu_item]['attachments']['exclude'] ) ? $data[$menu_item]['attachments']['exclude'] : [];
 
 
 
 
 
 
 
 
 
 
 
2413
 
2414
- foreach ( $attachments as $attachment_id ) {
2415
- // get attachment image data
2416
- if ( ! in_array( $attachment_id, $excluded ) ) {
2417
  // for counting mode get attachment id only
2418
  if ( $args['count_images'] )
2419
  $images[] = $attachment_id;
2420
- else
 
2421
  $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
 
 
 
 
 
 
 
 
 
 
2422
  }
2423
  }
2424
  }
@@ -2430,13 +2480,15 @@ class Responsive_Lightbox_Galleries {
2430
  if ( ! $rl->options['remote_library']['active'] )
2431
  break;
2432
 
2433
- // check for
2434
  if ( ! isset( $args['media_search'] ) )
2435
  $args['media_search'] = isset( $data[$menu_item]['media_search'] ) ? $data[$menu_item]['media_search'] : '';
2436
 
 
2437
  if ( ! isset( $args['media_provider'] ) )
2438
  $args['media_provider'] = isset( $data[$menu_item]['media_provider'] ) ? $data[$menu_item]['media_provider'] : 'all';
2439
 
 
2440
  $images = $rl->remote_library->get_remote_library_images( $args );
2441
  break;
2442
  }
@@ -2656,7 +2708,13 @@ class Responsive_Lightbox_Galleries {
2656
  $html = '';
2657
 
2658
  // get images
2659
- $images = $this->get_gallery_images( $gallery_id, array( 'exclude' => true ) );
 
 
 
 
 
 
2660
 
2661
  // get number of images
2662
  $images_count = (int) get_post_meta( $gallery_id, '_rl_images_count', true );
@@ -2664,8 +2722,8 @@ class Responsive_Lightbox_Galleries {
2664
  if ( ! empty( $images ) ) {
2665
  foreach ( $images as $image ) {
2666
  $html .= '
2667
- <li role="checkbox" aria-label="" aria-checked="false" data-id="' . $image['id'] . '" class="attachment save-ready rl-status-active' . '">
2668
- <div class="attachment-preview js--select-attachment type-image landscape">
2669
  <div class="thumbnail">
2670
  <div class="centered">
2671
  <img src="' . $image['thumbnail_url'] . '" draggable="false" alt="" />
@@ -2742,25 +2800,31 @@ class Responsive_Lightbox_Galleries {
2742
  $query = new WP_Query( $args );
2743
 
2744
  $html = '';
 
2745
 
 
2746
  if ( ! empty( $query->posts ) ) {
2747
  foreach ( $query->posts as $gallery ) {
 
 
 
 
2748
  $featured = $this->get_featured_image_src( $gallery->ID );
2749
 
2750
  if ( is_array( $featured ) && array_key_exists( 'url', $featured ) )
2751
- $featured = $featured['url'];
2752
  else
2753
- $featured = '';
2754
 
2755
  // get title
2756
  $title = $gallery->post_title !== '' ? $gallery->post_title : __( '(no title)', 'responsive-gallery' );
2757
 
2758
  $html .= '
2759
- <li role="checkbox" aria-label="' . esc_attr( $title ) . '" aria-checked="false" data-id="' . $gallery->ID . '" class="attachment save-ready">
2760
- <div class="attachment-preview js--select-attachment type-image landscape">
2761
  <div class="thumbnail">
2762
- <div class="centered" data-full-src="' . $featured . '">
2763
- ' . $this->get_featured_image( $gallery->ID ) . '
2764
  </div>
2765
  <div class="filename">
2766
  <div>' . esc_html( $title ) . '</div>
@@ -2773,7 +2837,12 @@ class Responsive_Lightbox_Galleries {
2773
  }
2774
 
2775
  // send galleries content
2776
- wp_send_json_success( $html );
 
 
 
 
 
2777
  }
2778
 
2779
  /**
@@ -3060,10 +3129,16 @@ class Responsive_Lightbox_Galleries {
3060
  'url' => $image_src[0],
3061
  'width' => $image_src[1],
3062
  'height' => $image_src[2],
 
3063
  'thumbnail_url' => $thumbnail_src[0],
3064
  'thumbnail_width' => $thumbnail_src[1],
3065
  'thumbnail_height' => $thumbnail_src[2]
3066
  );
 
 
 
 
 
3067
  }
3068
  // image url
3069
  } elseif ( is_string( $image ) ) {
@@ -3079,10 +3154,13 @@ class Responsive_Lightbox_Galleries {
3079
  'url' => $imagedata['url'],
3080
  'width' => $imagedata['width'],
3081
  'height' => $imagedata['height'],
 
3082
  'thumbnail_url' => $imagedata['url'],
3083
  'thumbnail_width' => $imagedata['width'],
3084
  'thumbnail_height' => $imagedata['height']
3085
  );
 
 
3086
  // full image array
3087
  } elseif ( is_array( $image ) ) {
3088
  // set width and height from url, if not available
@@ -3102,8 +3180,6 @@ class Responsive_Lightbox_Galleries {
3102
 
3103
  $imagedata = array(
3104
  'id' => ! empty( $image['id'] ) ? (int) $image['id'] : 0,
3105
- 'link' => ! empty( $image['link'] ) ? esc_url( $image['link'] ) : '',
3106
- 'thumbnail_link' => ! empty( $image['thumbnail_link'] ) ? esc_url( $image['thumbnail_link'] ) : '',
3107
  'title' => ! empty( $image['title'] ) ? esc_html( $image['title'] ) : '',
3108
  'caption' => ! empty( $image['caption'] ) ? esc_html( $image['caption'] ) : '',
3109
  'alt' => ! empty( $image['alt'] ) ? esc_html( $image['alt'] ) : '',
@@ -3113,7 +3189,12 @@ class Responsive_Lightbox_Galleries {
3113
  'thumbnail_url' => ! empty( $image['thumbnail_url'] ) ? esc_url( $image['thumbnail_url'] ) : '',
3114
  'thumbnail_width' => ! empty( $image['thumbnail_width'] ) ? (int) $image['thumbnail_width'] : 0,
3115
  'thumbnail_height' => ! empty( $image['thumbnail_height'] ) ? (int) $image['thumbnail_height'] : 0,
 
 
3116
  );
 
 
 
3117
  }
3118
 
3119
  if ( ! empty( $imagedata ) ) {
@@ -3178,8 +3259,14 @@ class Responsive_Lightbox_Galleries {
3178
  // first image
3179
  case 'image':
3180
  default:
3181
- // get gallery images
3182
- $images = $this->get_gallery_images( $gallery_id, array( 'exclude' => true ) );
 
 
 
 
 
 
3183
 
3184
  // set image data
3185
  if ( $images )
@@ -3188,7 +3275,6 @@ class Responsive_Lightbox_Galleries {
3188
  $image = 0;
3189
  }
3190
 
3191
- // return only the first image
3192
  return apply_filters( 'rl_get_featured_image_src', $image, $gallery_id, $featured_image_type, $featured_image );
3193
  }
3194
 
@@ -3421,7 +3507,7 @@ class Responsive_Lightbox_Galleries {
3421
  /**
3422
  * Get query attachments.
3423
  *
3424
- * @param array $posts Post ids, array or objects
3425
  * @param array $args Additional arguments
3426
  * @return array
3427
  */
@@ -3646,7 +3732,7 @@ class Responsive_Lightbox_Galleries {
3646
  * Prepare values option list.
3647
  *
3648
  * @param string $type
3649
- * @return string
3650
  */
3651
  public function prepare_query_args( $type = '' ) {
3652
  $html = '';
@@ -3753,7 +3839,7 @@ class Responsive_Lightbox_Galleries {
3753
  * @param bool $skip Which post types should be skipped
3754
  * @return array
3755
  */
3756
- public function get_post_types( $simple = false, $skip = array( 'attachment', 'rl_gallery' ) ) {
3757
  $post_types = get_post_types(
3758
  array(
3759
  'public' => true
@@ -4221,7 +4307,7 @@ class Responsive_Lightbox_Galleries {
4221
  * Get size information for a specific image size.
4222
  *
4223
  * @param string $size The image size for which to retrieve data.
4224
- * @return bool|array
4225
  */
4226
  public function get_image_size( $size ) {
4227
  if ( isset( $this->sizes[$size] ) )
17
  private $menu_item;
18
 
19
  /**
20
+ * Class constructor.
21
  *
22
  * @param bool $read_only Whether is it read only mode
23
  * @return void
1508
  * @param string $field Field name
1509
  * @param mixed $value Field value
1510
  * @param array $args Field arguments
1511
+ * @return mixed
1512
  */
1513
  public function sanitize_field( $field, $value, $args ) {
1514
  switch ( $args['type'] ) {
2049
  * @return void
2050
  */
2051
  public function delete_attachment( $attachment_id ) {
2052
+ //@TODO
2053
  }
2054
 
2055
  /**
2085
  'posts_per_page' => -1,
2086
  'images_per_page' => 0,
2087
  'page' => 1,
2088
+ 'limit' => 0,
2089
  'nopaging' => true,
2090
  'image_size' => 'large',
2091
  'thumbnail_size' => 'thumbnail',
2201
  // filter attachments
2202
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2203
 
2204
+ // exclude any attachments?
2205
+ if ( $args['exclude'] && ! empty( $data[$menu_item]['attachments']['exclude'] ) )
2206
+ $attachments = array_diff( $attachments, $data[$menu_item]['attachments']['exclude'] );
2207
+
2208
+ // any attachments?
2209
  if ( $attachments ) {
2210
+ if ( $args['limit'] )
2211
+ $counter = 0;
2212
 
2213
  foreach ( $attachments as $attachment_id ) {
2214
  // real attachment?
2215
  if ( ! wp_attachment_is_image( $attachment_id ) )
2216
  continue;
2217
 
2218
+ // for counting mode get attachment id only
2219
+ if ( $args['count_images'] )
2220
+ $images[] = $attachment_id;
2221
+ else {
2222
+ // get attachment image data
2223
+ $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
2224
+
2225
+ // limit attachments?
2226
+ if ( $args['limit'] ) {
2227
+ $counter++;
2228
+
2229
+ // limit reached?
2230
+ if ( $counter === $args['limit'] )
2231
+ break;
2232
+ }
2233
  }
2234
  }
2235
  }
2269
  // filter attachments
2270
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2271
 
2272
+ // exclude any attachments?
2273
+ if ( $args['exclude'] && ! empty( $data[$menu_item]['attachments']['exclude'] ) )
2274
+ $attachments = array_diff( $attachments, $data[$menu_item]['attachments']['exclude'] );
2275
+
2276
+ // any attachments?
2277
  if ( $attachments ) {
2278
+ if ( $args['limit'] )
2279
+ $counter = 0;
2280
 
2281
  foreach ( $attachments as $attachment_id ) {
2282
+ // real attachment?
2283
+ if ( ! wp_attachment_is_image( $attachment_id ) )
2284
+ continue;
2285
+
2286
+ // for counting mode get attachment id only
2287
+ if ( $args['count_images'] )
2288
+ $images[] = $attachment_id;
2289
+ else {
2290
+ // get attachment image data
2291
+ $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
2292
+
2293
+ // limit attachments?
2294
+ if ( $args['limit'] ) {
2295
+ $counter++;
2296
+
2297
+ // limit reached?
2298
+ if ( $counter === $args['limit'] )
2299
+ break;
2300
+ }
2301
  }
2302
  }
2303
  }
2425
  // run query
2426
  $query = new WP_Query( apply_filters( 'rl_folders_query_args', $wp_query_args ) );
2427
 
2428
+ // get attachment ids
2429
  $attachments = $query->get_posts();
2430
 
2431
  // valid attachments?
2432
  if ( ! is_wp_error( $attachments ) ) {
2433
+ // cast ids to int
2434
  $attachments = array_map( 'intval', $attachments );
2435
 
2436
  // make sure to skip duplicates
2439
  // filter attachments
2440
  $attachments = apply_filters( 'rl_get_gallery_images_attachments', $attachments );
2441
 
2442
+ // exclude any attachments?
2443
+ if ( $args['exclude'] && ! empty( $data[$menu_item]['attachments']['exclude'] ) )
2444
+ $attachments = array_diff( $attachments, $data[$menu_item]['attachments']['exclude'] );
2445
+
2446
+ // any attachments?
2447
+ if ( $attachments ) {
2448
+ if ( $args['limit'] )
2449
+ $counter = 0;
2450
+
2451
+ foreach ( $attachments as $attachment_id ) {
2452
+ // real attachment?
2453
+ if ( ! wp_attachment_is_image( $attachment_id ) )
2454
+ continue;
2455
 
 
 
 
2456
  // for counting mode get attachment id only
2457
  if ( $args['count_images'] )
2458
  $images[] = $attachment_id;
2459
+ else {
2460
+ // get attachment image data
2461
  $images[] = $this->get_gallery_image_src( $attachment_id, $args['image_size'], $args['thumbnail_size'] );
2462
+
2463
+ // limit attachments?
2464
+ if ( $args['limit'] ) {
2465
+ $counter++;
2466
+
2467
+ // limit reached?
2468
+ if ( $counter === $args['limit'] )
2469
+ break;
2470
+ }
2471
+ }
2472
  }
2473
  }
2474
  }
2480
  if ( ! $rl->options['remote_library']['active'] )
2481
  break;
2482
 
2483
+ // no media search phrase?
2484
  if ( ! isset( $args['media_search'] ) )
2485
  $args['media_search'] = isset( $data[$menu_item]['media_search'] ) ? $data[$menu_item]['media_search'] : '';
2486
 
2487
+ // no media provider?
2488
  if ( ! isset( $args['media_provider'] ) )
2489
  $args['media_provider'] = isset( $data[$menu_item]['media_provider'] ) ? $data[$menu_item]['media_provider'] : 'all';
2490
 
2491
+ // get remote images
2492
  $images = $rl->remote_library->get_remote_library_images( $args );
2493
  break;
2494
  }
2708
  $html = '';
2709
 
2710
  // get images
2711
+ $images = $this->get_gallery_images(
2712
+ $gallery_id,
2713
+ [
2714
+ 'exclude' => true,
2715
+ 'limit' => 20
2716
+ ]
2717
+ );
2718
 
2719
  // get number of images
2720
  $images_count = (int) get_post_meta( $gallery_id, '_rl_images_count', true );
2722
  if ( ! empty( $images ) ) {
2723
  foreach ( $images as $image ) {
2724
  $html .= '
2725
+ <li tabindex="0" role="checkbox" aria-label="' . esc_attr( $image['title'] ) . '" aria-checked="true" data-id="' . $image['id'] . '" class="attachment selection selected rl-status-active">
2726
+ <div class="attachment-preview js--select-attachment type-image ' . esc_attr( $image['thumbnail_orientation'] ). '">
2727
  <div class="thumbnail">
2728
  <div class="centered">
2729
  <img src="' . $image['thumbnail_url'] . '" draggable="false" alt="" />
2800
  $query = new WP_Query( $args );
2801
 
2802
  $html = '';
2803
+ $ids = [];
2804
 
2805
+ // any galleries?
2806
  if ( ! empty( $query->posts ) ) {
2807
  foreach ( $query->posts as $gallery ) {
2808
+ // save gallery id
2809
+ $ids[] = $gallery->ID;
2810
+
2811
+ // get featured image
2812
  $featured = $this->get_featured_image_src( $gallery->ID );
2813
 
2814
  if ( is_array( $featured ) && array_key_exists( 'url', $featured ) )
2815
+ $featured_image = $featured['url'];
2816
  else
2817
+ $featured_image = '';
2818
 
2819
  // get title
2820
  $title = $gallery->post_title !== '' ? $gallery->post_title : __( '(no title)', 'responsive-gallery' );
2821
 
2822
  $html .= '
2823
+ <li tabindex="0" role="checkbox" aria-label="' . esc_attr( $title ) . '" aria-checked="true" data-id="' . $gallery->ID . '" class="attachment selection">
2824
+ <div class="attachment-preview js--select-attachment type-image ' . ( ! empty( $featured['thumbnail_orientation'] ) ? esc_attr( $featured['thumbnail_orientation'] ) : 'landscape' ) . '">
2825
  <div class="thumbnail">
2826
+ <div class="centered" data-full-src="' . $featured_image . '">
2827
+ ' . $this->get_featured_image( $gallery->ID, 'thumbnail' ) . '
2828
  </div>
2829
  <div class="filename">
2830
  <div>' . esc_html( $title ) . '</div>
2837
  }
2838
 
2839
  // send galleries content
2840
+ wp_send_json_success(
2841
+ [
2842
+ 'galleries' => $ids,
2843
+ 'html' => $html
2844
+ ]
2845
+ );
2846
  }
2847
 
2848
  /**
3129
  'url' => $image_src[0],
3130
  'width' => $image_src[1],
3131
  'height' => $image_src[2],
3132
+ 'orientation' => $image_src[2] > $image_src[1] ? 'portrait' : 'landscape',
3133
  'thumbnail_url' => $thumbnail_src[0],
3134
  'thumbnail_width' => $thumbnail_src[1],
3135
  'thumbnail_height' => $thumbnail_src[2]
3136
  );
3137
+
3138
+ if ( $diff_sizes )
3139
+ $imagedata['thumbnail_orientation'] = $thumbnail_src[2] > $thumbnail_src[1] ? 'portrait' : 'landscape';
3140
+ else
3141
+ $imagedata['thumbnail_orientation'] = $imagedata['orientation'];
3142
  }
3143
  // image url
3144
  } elseif ( is_string( $image ) ) {
3154
  'url' => $imagedata['url'],
3155
  'width' => $imagedata['width'],
3156
  'height' => $imagedata['height'],
3157
+ 'orientation' => $imagedata['height'] > $imagedata['width'] ? 'portrait' : 'landscape',
3158
  'thumbnail_url' => $imagedata['url'],
3159
  'thumbnail_width' => $imagedata['width'],
3160
  'thumbnail_height' => $imagedata['height']
3161
  );
3162
+
3163
+ $imagedata['thumbnail_orientation'] = $imagedata['orientation'];
3164
  // full image array
3165
  } elseif ( is_array( $image ) ) {
3166
  // set width and height from url, if not available
3180
 
3181
  $imagedata = array(
3182
  'id' => ! empty( $image['id'] ) ? (int) $image['id'] : 0,
 
 
3183
  'title' => ! empty( $image['title'] ) ? esc_html( $image['title'] ) : '',
3184
  'caption' => ! empty( $image['caption'] ) ? esc_html( $image['caption'] ) : '',
3185
  'alt' => ! empty( $image['alt'] ) ? esc_html( $image['alt'] ) : '',
3189
  'thumbnail_url' => ! empty( $image['thumbnail_url'] ) ? esc_url( $image['thumbnail_url'] ) : '',
3190
  'thumbnail_width' => ! empty( $image['thumbnail_width'] ) ? (int) $image['thumbnail_width'] : 0,
3191
  'thumbnail_height' => ! empty( $image['thumbnail_height'] ) ? (int) $image['thumbnail_height'] : 0,
3192
+ 'link' => ! empty( $image['link'] ) ? esc_url( $image['link'] ) : '',
3193
+ 'thumbnail_link' => ! empty( $image['thumbnail_link'] ) ? esc_url( $image['thumbnail_link'] ) : ''
3194
  );
3195
+
3196
+ $imagedata['orientation'] = $imagedata['height'] > $imagedata['width'] ? 'portrait' : 'landscape';
3197
+ $imagedata['thumbnail_orientation'] = $imagedata['thumbnail_height'] > $imagedata['thumbnail_width'] ? 'portrait' : 'landscape';
3198
  }
3199
 
3200
  if ( ! empty( $imagedata ) ) {
3259
  // first image
3260
  case 'image':
3261
  default:
3262
+ // get first gallery image
3263
+ $images = $this->get_gallery_images(
3264
+ $gallery_id,
3265
+ [
3266
+ 'exclude' => true,
3267
+ 'limit' => 1
3268
+ ]
3269
+ );
3270
 
3271
  // set image data
3272
  if ( $images )
3275
  $image = 0;
3276
  }
3277
 
 
3278
  return apply_filters( 'rl_get_featured_image_src', $image, $gallery_id, $featured_image_type, $featured_image );
3279
  }
3280
 
3507
  /**
3508
  * Get query attachments.
3509
  *
3510
+ * @param array $posts Post IDs, array or objects
3511
  * @param array $args Additional arguments
3512
  * @return array
3513
  */
3732
  * Prepare values option list.
3733
  *
3734
  * @param string $type
3735
+ * @return array
3736
  */
3737
  public function prepare_query_args( $type = '' ) {
3738
  $html = '';
3839
  * @param bool $skip Which post types should be skipped
3840
  * @return array
3841
  */
3842
+ public function get_post_types( $simple = false, $skip = [ 'attachment', 'rl_gallery' ] ) {
3843
  $post_types = get_post_types(
3844
  array(
3845
  'public' => true
4307
  * Get size information for a specific image size.
4308
  *
4309
  * @param string $size The image size for which to retrieve data.
4310
+ * @return false|array
4311
  */
4312
  public function get_image_size( $size ) {
4313
  if ( isset( $this->sizes[$size] ) )
includes/class-multilang.php CHANGED
@@ -17,7 +17,9 @@ class Responsive_Lightbox_Multilang {
17
  public $active_plugin = '';
18
 
19
  /**
20
- * Constructor.
 
 
21
  *
22
  * @return void
23
  */
@@ -129,6 +131,7 @@ class Responsive_Lightbox_Multilang {
129
  /**
130
  * Root folder WP Query arguments.
131
  *
 
132
  * @return void
133
  */
134
  public function root_folder_query_args( $args ) {
@@ -141,18 +144,19 @@ class Responsive_Lightbox_Multilang {
141
  * Get the number of attachments per language.
142
  * Based on count_posts function from Polylang plugin (/include/model.php)
143
  *
144
- * @param string $lang 2-char language
145
- * @param array $args Arguments (accepted: m, year, monthnum, day, author, author_name, post_format)
 
146
  * @return int
147
  */
148
- public function count_attachments() {
149
  // active language?
150
  if ( $this->current_lang !== '' ) {
151
  // remove internal WP counter to avoid unwanted query
152
  remove_filter( 'rl_count_attachments', array( Responsive_Lightbox()->folders, 'count_attachments' ), 10 );
153
  // if not let internal WP counter do the job
154
  } else
155
- return;
156
 
157
  // get taxonomies
158
  $taxonomies = PLL()->model->get_filtered_taxonomies_query_vars();
@@ -273,6 +277,8 @@ class Responsive_Lightbox_Multilang {
273
  /**
274
  * Redirect to equivalent media folder in specified language.
275
  *
 
 
276
  * @return void
277
  */
278
  public function media_url_redirect() {
17
  public $active_plugin = '';
18
 
19
  /**
20
+ * Class constructor.
21
+ *
22
+ * @global object $sitepress
23
  *
24
  * @return void
25
  */
131
  /**
132
  * Root folder WP Query arguments.
133
  *
134
+ * @param array args
135
  * @return void
136
  */
137
  public function root_folder_query_args( $args ) {
144
  * Get the number of attachments per language.
145
  * Based on count_posts function from Polylang plugin (/include/model.php)
146
  *
147
+ * @global object $wpdb
148
+ *
149
+ * @param int number
150
  * @return int
151
  */
152
+ public function count_attachments( $number ) {
153
  // active language?
154
  if ( $this->current_lang !== '' ) {
155
  // remove internal WP counter to avoid unwanted query
156
  remove_filter( 'rl_count_attachments', array( Responsive_Lightbox()->folders, 'count_attachments' ), 10 );
157
  // if not let internal WP counter do the job
158
  } else
159
+ return $number;
160
 
161
  // get taxonomies
162
  $taxonomies = PLL()->model->get_filtered_taxonomies_query_vars();
277
  /**
278
  * Redirect to equivalent media folder in specified language.
279
  *
280
+ * @global string $pagenow
281
+ *
282
  * @return void
283
  */
284
  public function media_url_redirect() {
includes/class-remote-library-api.php CHANGED
@@ -23,7 +23,7 @@ abstract class Responsive_Lightbox_Remote_Library_API {
23
  protected $response_data_args = [];
24
 
25
  /**
26
- * Constructor.
27
  *
28
  * @return void
29
  */
@@ -49,7 +49,7 @@ abstract class Responsive_Lightbox_Remote_Library_API {
49
  'name' => ! empty( $provider->name ) ? esc_html( $provider->name ) : '',
50
  'defaults' => ! empty( $provider->defaults ) && is_array( $provider->defaults ) ? $provider->defaults : [],
51
  'fields' => ! empty( $provider->fields ) && is_array( $provider->fields ) ? $provider->fields : [],
52
- 'response_args' => ! empty( $provider->response_data_args ) && is_array( $provider->response_data_args ) ? $provider->response_data_args : []
53
  );
54
 
55
  // add provider default values
@@ -187,7 +187,7 @@ abstract class Responsive_Lightbox_Remote_Library_API {
187
  * @param string $link Image URL
188
  * @param string $user_name User name
189
  * @param string $user_link User URL
190
- * @return string
191
  */
192
  public function get_attribution( $name, $link = null, $user_name = null, $user_link = null ) {
193
  if ( empty( $link ) )
23
  protected $response_data_args = [];
24
 
25
  /**
26
+ * Class constructor.
27
  *
28
  * @return void
29
  */
49
  'name' => ! empty( $provider->name ) ? esc_html( $provider->name ) : '',
50
  'defaults' => ! empty( $provider->defaults ) && is_array( $provider->defaults ) ? $provider->defaults : [],
51
  'fields' => ! empty( $provider->fields ) && is_array( $provider->fields ) ? $provider->fields : [],
52
+ 'response_args' => ! empty( $provider->response_data_args ) && is_array( $provider->response_data_args ) ? $provider->response_data_args : []
53
  );
54
 
55
  // add provider default values
187
  * @param string $link Image URL
188
  * @param string $user_name User name
189
  * @param string $user_link User URL
190
+ * @return string
191
  */
192
  public function get_attribution( $name, $link = null, $user_name = null, $user_link = null ) {
193
  if ( empty( $link ) )
includes/class-remote-library.php CHANGED
@@ -13,7 +13,7 @@ class Responsive_Lightbox_Remote_Library {
13
  public $providers = [];
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -35,7 +35,7 @@ class Responsive_Lightbox_Remote_Library {
35
  * Hidden field with response data for gallery preview.
36
  *
37
  * @param array $args Field arguments
38
- * @return string Rendered field
39
  */
40
  public function remote_library_response_data( $args ) {
41
  // access main instance
@@ -100,7 +100,7 @@ class Responsive_Lightbox_Remote_Library {
100
  /**
101
  * Get all available providers.
102
  *
103
- * @return array Providers
104
  */
105
  public function get_providers() {
106
  return apply_filters( 'rl_get_providers', Responsive_Lightbox()->providers );
@@ -109,7 +109,7 @@ class Responsive_Lightbox_Remote_Library {
109
  /**
110
  * Get all active providers.
111
  *
112
- * @return array Providers
113
  */
114
  public function get_active_providers() {
115
  $providers = $this->get_providers();
@@ -139,6 +139,9 @@ class Responsive_Lightbox_Remote_Library {
139
  /**
140
  * Scripts and styles for media frame.
141
  *
 
 
 
142
  * @return void
143
  */
144
  public function remote_library_scripts() {
@@ -335,7 +338,7 @@ class Responsive_Lightbox_Remote_Library {
335
  *
336
  * @param array $results Requested images
337
  * @param array $args Additional arguments
338
- * @return array Compatible attachments
339
  */
340
  public function create_wp_remote_attachments( $results, $args ) {
341
  $user = wp_get_current_user();
@@ -345,9 +348,6 @@ class Responsive_Lightbox_Remote_Library {
345
  $date = date_i18n( __( 'F j Y' ), $time );
346
 
347
  foreach ( $results as $no => $result ) {
348
- // detect orientation
349
- $orientation = $result['width'] > $result['height'] ? 'landscape' : 'portrait';
350
-
351
  // make sure those attributes are strings
352
  $copy[$no]['caption'] = (string) $result['caption'];
353
  $copy[$no]['description'] = (string) $result['description'];
@@ -397,29 +397,23 @@ class Responsive_Lightbox_Remote_Library {
397
  'edit' => '',
398
  'update' => ''
399
  );
400
- $copy[$no]['orientation'] = $orientation;
401
  $copy[$no]['status'] = 'inherit';
402
  $copy[$no]['type'] = 'image';
403
  $copy[$no]['uploadedTo'] = 0;
404
  $copy[$no]['uploadedToLink'] = '';
405
  $copy[$no]['uploadedToTitle'] = '';
406
  $copy[$no]['sizes'] = array(
407
- // 'thumbnail' => array(
408
- // 'height' => $result['thumbnail_height'],
409
- // 'width' => $result['thumbnail_width'],
410
- // 'orientation' => $orientation,
411
- // 'url' => $result['thumbnail_url']
412
- // ),
413
  'medium' => array(
414
  'height' => $result['thumbnail_height'],
415
  'width' => $result['thumbnail_width'],
416
- 'orientation' => $orientation,
417
  'url' => $result['thumbnail_url']
418
  ),
419
  'full' => array(
420
  'height' => $result['height'],
421
  'width' => $result['width'],
422
- 'orientation' => $orientation,
423
  'url' => $result['url']
424
  )
425
  );
@@ -431,8 +425,8 @@ class Responsive_Lightbox_Remote_Library {
431
  /**
432
  * Remote library media query.
433
  *
434
- * @param array $args Arguments
435
- * @return array Images
436
  */
437
  public function get_remote_library_images( $args ) {
438
  $args = stripslashes_deep( $args );
@@ -496,7 +490,10 @@ class Responsive_Lightbox_Remote_Library {
496
  }
497
  }
498
 
 
499
  $results = apply_filters( 'rl_remote_library_query', $results, $args['media_search'], $provider_name, $args );
 
 
500
  $nor = count( $results );
501
 
502
  // more than requested images?
13
  public $providers = [];
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
35
  * Hidden field with response data for gallery preview.
36
  *
37
  * @param array $args Field arguments
38
+ * @return string
39
  */
40
  public function remote_library_response_data( $args ) {
41
  // access main instance
100
  /**
101
  * Get all available providers.
102
  *
103
+ * @return array
104
  */
105
  public function get_providers() {
106
  return apply_filters( 'rl_get_providers', Responsive_Lightbox()->providers );
109
  /**
110
  * Get all active providers.
111
  *
112
+ * @return array
113
  */
114
  public function get_active_providers() {
115
  $providers = $this->get_providers();
139
  /**
140
  * Scripts and styles for media frame.
141
  *
142
+ * @global string $wp_version
143
+ * @global string $pagenow
144
+ *
145
  * @return void
146
  */
147
  public function remote_library_scripts() {
338
  *
339
  * @param array $results Requested images
340
  * @param array $args Additional arguments
341
+ * @return array
342
  */
343
  public function create_wp_remote_attachments( $results, $args ) {
344
  $user = wp_get_current_user();
348
  $date = date_i18n( __( 'F j Y' ), $time );
349
 
350
  foreach ( $results as $no => $result ) {
 
 
 
351
  // make sure those attributes are strings
352
  $copy[$no]['caption'] = (string) $result['caption'];
353
  $copy[$no]['description'] = (string) $result['description'];
397
  'edit' => '',
398
  'update' => ''
399
  );
400
+ $copy[$no]['orientation'] = $result['orientation'];
401
  $copy[$no]['status'] = 'inherit';
402
  $copy[$no]['type'] = 'image';
403
  $copy[$no]['uploadedTo'] = 0;
404
  $copy[$no]['uploadedToLink'] = '';
405
  $copy[$no]['uploadedToTitle'] = '';
406
  $copy[$no]['sizes'] = array(
 
 
 
 
 
 
407
  'medium' => array(
408
  'height' => $result['thumbnail_height'],
409
  'width' => $result['thumbnail_width'],
410
+ 'orientation' => $result['thumbnail_orientation'],
411
  'url' => $result['thumbnail_url']
412
  ),
413
  'full' => array(
414
  'height' => $result['height'],
415
  'width' => $result['width'],
416
+ 'orientation' => $result['orientation'],
417
  'url' => $result['url']
418
  )
419
  );
425
  /**
426
  * Remote library media query.
427
  *
428
+ * @param array $args
429
+ * @return array
430
  */
431
  public function get_remote_library_images( $args ) {
432
  $args = stripslashes_deep( $args );
490
  }
491
  }
492
 
493
+ // get results
494
  $results = apply_filters( 'rl_remote_library_query', $results, $args['media_search'], $provider_name, $args );
495
+
496
+ // number of results
497
  $nor = count( $results );
498
 
499
  // more than requested images?
includes/class-settings.php CHANGED
@@ -16,11 +16,15 @@ class Responsive_Lightbox_Settings {
16
  public $tabs = array();
17
  public $scripts = array();
18
 
 
 
 
 
 
19
  public function __construct() {
20
-
21
  // set instance
22
  Responsive_Lightbox()->settings = $this;
23
-
24
  // actions
25
  add_action( 'admin_init', array( $this, 'register_settings' ) );
26
  add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
@@ -30,7 +34,7 @@ class Responsive_Lightbox_Settings {
30
 
31
  /**
32
  * Initialize additional stuff for builder.
33
- *
34
  * @return void
35
  */
36
  public function init_builder() {
@@ -52,7 +56,9 @@ class Responsive_Lightbox_Settings {
52
 
53
  /**
54
  * Load default settings.
55
- *
 
 
56
  * @return void
57
  */
58
  public function load_defaults() {
@@ -1003,7 +1009,7 @@ class Responsive_Lightbox_Settings {
1003
  'submit' => 'save_rl_folders',
1004
  'reset' => 'reset_rl_folders'
1005
  );
1006
-
1007
  $this->tabs['capabilities'] = array(
1008
  'name' => __( 'Capabilities', 'responsive-lightbox' ),
1009
  'key' => 'responsive_lightbox_capabilities',
@@ -1030,7 +1036,7 @@ class Responsive_Lightbox_Settings {
1030
  // push licenses just before the addons
1031
  if ( isset( $this->tabs['licenses'] ) ) {
1032
  unset( $this->tabs['licenses'] );
1033
-
1034
  $this->tabs['licenses'] = array(
1035
  'name' => __( 'Licenses', 'responsive-lightbox' ),
1036
  'key' => 'responsive_lightbox_licenses',
@@ -1272,7 +1278,7 @@ class Responsive_Lightbox_Settings {
1272
  'label' => __( 'Display links to Facebook and Twitter.', 'responsive-lightbox' ),
1273
  'parent' => 'prettyphoto'
1274
  ),
1275
- );
1276
  break;
1277
 
1278
  case 'fancybox':
@@ -1808,7 +1814,7 @@ class Responsive_Lightbox_Settings {
1808
 
1809
  /**
1810
  * Remote Library Media Providers description
1811
- *
1812
  * @return void
1813
  */
1814
  public function remote_library_providers_description() {
@@ -1817,7 +1823,7 @@ class Responsive_Lightbox_Settings {
1817
 
1818
  /**
1819
  * Register options page
1820
- *
1821
  * @return void
1822
  */
1823
  public function admin_menu_options() {
@@ -1833,7 +1839,7 @@ class Responsive_Lightbox_Settings {
1833
 
1834
  /**
1835
  * Render options page
1836
- *
1837
  * @return void
1838
  */
1839
  public function options_page() {
@@ -1873,7 +1879,6 @@ class Responsive_Lightbox_Settings {
1873
  echo '
1874
  </h2>
1875
  <div class="responsive-lightbox-settings">
1876
-
1877
  <div class="df-credits">
1878
  <h3 class="hndle">' . __( 'Responsive Lightbox & Gallery', 'responsive-lightbox' ) . ' ' . $rl->defaults['version'] . '</h3>
1879
  <div class="inside">
@@ -1886,12 +1891,11 @@ class Responsive_Lightbox_Settings {
1886
  sprintf( __( 'Check out our other <a href="%s" target="_blank">WordPress plugins</a>.', 'responsive-lightbox' ), 'https://dfactory.eu/plugins/?utm_source=responsive-lightbox-settings&utm_medium=link&utm_campaign=other-plugins' ) . '
1887
  </p>
1888
  <hr />
1889
- <p class="df-link inner"><a href="https://www.dfactory.eu/?utm_source=responsive-lightbox-settings&utm_medium=link&utm_campaign=created-by" target="_blank" title="Digital Factory"><img src="' . RESPONSIVE_LIGHTBOX_URL . '/images/df-black-sm.png' . '" alt="Digital Factory" /></a></p>
1890
  </div>
1891
  </div>
1892
-
1893
  <form action="options.php" method="post">';
1894
-
1895
  // views
1896
  if ( ! empty( $this->tabs[$tab_key]['sections'] ) ) {
1897
  $views = $this->tabs[$tab_key]['sections'];
@@ -1950,7 +1954,7 @@ class Responsive_Lightbox_Settings {
1950
 
1951
  /**
1952
  * Render settings function.
1953
- *
1954
  * @return void
1955
  */
1956
  public function register_settings() {
@@ -1975,7 +1979,7 @@ class Responsive_Lightbox_Settings {
1975
  // register sections
1976
  if ( ! empty( $setting['sections'] ) && is_array( $setting['sections'] ) ) {
1977
  foreach ( $setting['sections'] as $section_id => $section ) {
1978
- add_settings_section(
1979
  esc_attr( $section_id ),
1980
  ! empty( $section['title'] ) ? esc_html( $section['title'] ) : '',
1981
  ! empty( $section['callback'] ) ? $section['callback'] : '',
@@ -1990,7 +1994,7 @@ class Responsive_Lightbox_Settings {
1990
  // prefix field id?
1991
  $field_key = $field_id;
1992
  $field_id = ( ! empty( $setting['prefix'] ) ? $setting['prefix'] . '_' : '' ) . $field_id;
1993
-
1994
  // field args
1995
  $args = array(
1996
  'id' => ! empty( $field['id'] ) ? $field['id'] : $field_id,
@@ -2054,7 +2058,7 @@ class Responsive_Lightbox_Settings {
2054
  array( $this, 'validate_licenses' )
2055
  );
2056
 
2057
- add_settings_section(
2058
  'responsive_lightbox_licenses',
2059
  __( 'Licenses', 'responsive-lightbox' ),
2060
  array( $this, 'licenses_section_cb' ),
@@ -2076,9 +2080,9 @@ class Responsive_Lightbox_Settings {
2076
 
2077
  /**
2078
  * Render settings field function.
2079
- *
2080
  * @param array $args
2081
- * @return mixed
2082
  */
2083
  public function render_field( $args ) {
2084
  if ( empty( $args ) || ! is_array( $args ) )
@@ -2090,19 +2094,19 @@ class Responsive_Lightbox_Settings {
2090
  case 'boolean':
2091
  $html .= '<label><input id="' . $args['id'] . '" type="checkbox" name="' . $args['name'] . '" value="1" ' . checked( (bool) $args['value'], true, false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $args['label'] . '</label>';
2092
  break;
2093
-
2094
  case 'radio':
2095
  foreach ( $args['options'] as $key => $name ) {
2096
  $html .= '<label><input id="' . $args['id'] . '-' . $key . '" type="radio" name="' . $args['name'] . '" value="' . $key . '" ' . checked( $key, $args['value'], false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $name . '</label> ';
2097
  }
2098
  break;
2099
-
2100
  case 'checkbox':
2101
  foreach ( $args['options'] as $key => $name ) {
2102
  $html .= '<label><input id="' . $args['id'] . '-' . $key . '" type="checkbox" name="' . $args['name'] . '[' . $key . ']" value="1" ' . checked( in_array( $key, $args['value'] ), true, false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $name . '</label> ';
2103
  }
2104
  break;
2105
-
2106
  case 'select':
2107
  $html .= '<select id="' . $args['id'] . '" name="' . $args['name'] . '" value="' . $args['value'] . '" ' . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . '/>';
2108
 
@@ -2112,7 +2116,7 @@ class Responsive_Lightbox_Settings {
2112
 
2113
  $html .= '</select>';
2114
  break;
2115
-
2116
  case 'multiple':
2117
  $html .= '<fieldset>';
2118
 
@@ -2175,9 +2179,10 @@ class Responsive_Lightbox_Settings {
2175
 
2176
  /**
2177
  * Sanitize field function
2178
- *
2179
- * @param mixed
2180
- * @param string
 
2181
  * @return mixed
2182
  */
2183
  public function sanitize_field( $value = null, $type = '', $args = array() ) {
@@ -2197,7 +2202,7 @@ class Responsive_Lightbox_Settings {
2197
  case 'radio':
2198
  $value = is_array( $value ) ? false : sanitize_text_field( $value );
2199
  break;
2200
-
2201
  case 'textarea':
2202
  case 'wysiwyg':
2203
  $value = wp_kses_post( $value );
@@ -2235,7 +2240,7 @@ class Responsive_Lightbox_Settings {
2235
 
2236
  /**
2237
  * Validate settings function
2238
- *
2239
  * @param array $input
2240
  * @return array
2241
  */
@@ -2334,6 +2339,8 @@ class Responsive_Lightbox_Settings {
2334
  /**
2335
  * Validate capabilities.
2336
  *
 
 
2337
  * @param array $input
2338
  * @return array
2339
  */
@@ -2389,7 +2396,9 @@ class Responsive_Lightbox_Settings {
2389
  /**
2390
  * Render capabilities section.
2391
  *
2392
- * @return string
 
 
2393
  */
2394
  public function capabilities_table() {
2395
  global $wp_roles;
@@ -2443,8 +2452,8 @@ class Responsive_Lightbox_Settings {
2443
 
2444
  /**
2445
  * Add-ons tab callback
2446
- *
2447
- * @return mixed
2448
  */
2449
  private function addons_tab_cb() {
2450
  ?>
@@ -2469,8 +2478,8 @@ class Responsive_Lightbox_Settings {
2469
 
2470
  /**
2471
  * Licenses section callback.
2472
- *
2473
- * @return mixed
2474
  */
2475
  public function licenses_section_cb() {
2476
  ?><p class="description"><?php _e( 'A list of licenses for your Responsive Lightbox & Gallery extensions.', 'responsive-lightbox' ); ?></p><?php
@@ -2478,8 +2487,9 @@ class Responsive_Lightbox_Settings {
2478
 
2479
  /**
2480
  * License field callback.
2481
- *
2482
- * @return mixed
 
2483
  */
2484
  public function license_field_cb( $args ) {
2485
  $licenses = get_option( 'responsive_lightbox_licenses' );
@@ -2500,7 +2510,7 @@ class Responsive_Lightbox_Settings {
2500
 
2501
  /**
2502
  * Validate licenses function.
2503
- *
2504
  * @param array $input
2505
  * @return array
2506
  */
@@ -2565,7 +2575,7 @@ class Responsive_Lightbox_Settings {
2565
  }
2566
  }
2567
  }
2568
-
2569
  // success notice
2570
  if ( $statuses['updated'] > 0 )
2571
  add_settings_error( 'rl_licenses_settings', 'license_activated', sprintf( _n( '%s license successfully activated.', '%s licenses successfully activated.', (int) $statuses['updated'], 'responsive-lightbox' ), (int) $statuses['updated'] ), 'updated' );
@@ -2576,12 +2586,12 @@ class Responsive_Lightbox_Settings {
2576
  } elseif ( isset( $_POST['reset_rl_licenses'] ) ) {
2577
  $licenses = get_option( 'responsive_lightbox_licenses' );
2578
  $statuses = array( 'updated' => 0, 'error' => 0 );
2579
-
2580
  foreach ( $extensions as $extension ) {
2581
  $license = ! empty( $licenses ) && isset( $licenses[$extension['id']]['license'] ) ? $licenses[$extension['id']]['license'] : '';
2582
  $status = ! empty( $licenses ) && ! empty( $licenses[$extension['id']]['status'] ) ? true : false;
2583
 
2584
- if ( $status === true || ( $status === false && ! empty( $license ) ) ) {
2585
  // request data
2586
  $request_args = array(
2587
  'action' => 'deactivate_license',
@@ -2640,7 +2650,7 @@ class Responsive_Lightbox_Settings {
2640
  'sslverify' => false
2641
  );
2642
 
2643
- // call the custom API.
2644
  $response = wp_remote_get( add_query_arg( $api_params, 'http://dfactory.eu' ) );
2645
 
2646
  return $response;
16
  public $tabs = array();
17
  public $scripts = array();
18
 
19
+ /**
20
+ * Class constructor.
21
+ *
22
+ * @return void
23
+ */
24
  public function __construct() {
 
25
  // set instance
26
  Responsive_Lightbox()->settings = $this;
27
+
28
  // actions
29
  add_action( 'admin_init', array( $this, 'register_settings' ) );
30
  add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
34
 
35
  /**
36
  * Initialize additional stuff for builder.
37
+ *
38
  * @return void
39
  */
40
  public function init_builder() {
56
 
57
  /**
58
  * Load default settings.
59
+ *
60
+ * @global string $pagenow
61
+ *
62
  * @return void
63
  */
64
  public function load_defaults() {
1009
  'submit' => 'save_rl_folders',
1010
  'reset' => 'reset_rl_folders'
1011
  );
1012
+
1013
  $this->tabs['capabilities'] = array(
1014
  'name' => __( 'Capabilities', 'responsive-lightbox' ),
1015
  'key' => 'responsive_lightbox_capabilities',
1036
  // push licenses just before the addons
1037
  if ( isset( $this->tabs['licenses'] ) ) {
1038
  unset( $this->tabs['licenses'] );
1039
+
1040
  $this->tabs['licenses'] = array(
1041
  'name' => __( 'Licenses', 'responsive-lightbox' ),
1042
  'key' => 'responsive_lightbox_licenses',
1278
  'label' => __( 'Display links to Facebook and Twitter.', 'responsive-lightbox' ),
1279
  'parent' => 'prettyphoto'
1280
  ),
1281
+ );
1282
  break;
1283
 
1284
  case 'fancybox':
1814
 
1815
  /**
1816
  * Remote Library Media Providers description
1817
+ *
1818
  * @return void
1819
  */
1820
  public function remote_library_providers_description() {
1823
 
1824
  /**
1825
  * Register options page
1826
+ *
1827
  * @return void
1828
  */
1829
  public function admin_menu_options() {
1839
 
1840
  /**
1841
  * Render options page
1842
+ *
1843
  * @return void
1844
  */
1845
  public function options_page() {
1879
  echo '
1880
  </h2>
1881
  <div class="responsive-lightbox-settings">
 
1882
  <div class="df-credits">
1883
  <h3 class="hndle">' . __( 'Responsive Lightbox & Gallery', 'responsive-lightbox' ) . ' ' . $rl->defaults['version'] . '</h3>
1884
  <div class="inside">
1891
  sprintf( __( 'Check out our other <a href="%s" target="_blank">WordPress plugins</a>.', 'responsive-lightbox' ), 'https://dfactory.eu/plugins/?utm_source=responsive-lightbox-settings&utm_medium=link&utm_campaign=other-plugins' ) . '
1892
  </p>
1893
  <hr />
1894
+ <p class="df-link inner"><a href="https://www.dfactory.eu/?utm_source=responsive-lightbox-settings&utm_medium=link&utm_campaign=created-by" target="_blank" title="Digital Factory"><img src="//rlg-53eb.kxcdn.com/df-black-sm.png' . '" alt="Digital Factory" /></a></p>
1895
  </div>
1896
  </div>
 
1897
  <form action="options.php" method="post">';
1898
+
1899
  // views
1900
  if ( ! empty( $this->tabs[$tab_key]['sections'] ) ) {
1901
  $views = $this->tabs[$tab_key]['sections'];
1954
 
1955
  /**
1956
  * Render settings function.
1957
+ *
1958
  * @return void
1959
  */
1960
  public function register_settings() {
1979
  // register sections
1980
  if ( ! empty( $setting['sections'] ) && is_array( $setting['sections'] ) ) {
1981
  foreach ( $setting['sections'] as $section_id => $section ) {
1982
+ add_settings_section(
1983
  esc_attr( $section_id ),
1984
  ! empty( $section['title'] ) ? esc_html( $section['title'] ) : '',
1985
  ! empty( $section['callback'] ) ? $section['callback'] : '',
1994
  // prefix field id?
1995
  $field_key = $field_id;
1996
  $field_id = ( ! empty( $setting['prefix'] ) ? $setting['prefix'] . '_' : '' ) . $field_id;
1997
+
1998
  // field args
1999
  $args = array(
2000
  'id' => ! empty( $field['id'] ) ? $field['id'] : $field_id,
2058
  array( $this, 'validate_licenses' )
2059
  );
2060
 
2061
+ add_settings_section(
2062
  'responsive_lightbox_licenses',
2063
  __( 'Licenses', 'responsive-lightbox' ),
2064
  array( $this, 'licenses_section_cb' ),
2080
 
2081
  /**
2082
  * Render settings field function.
2083
+ *
2084
  * @param array $args
2085
+ * @return void|string
2086
  */
2087
  public function render_field( $args ) {
2088
  if ( empty( $args ) || ! is_array( $args ) )
2094
  case 'boolean':
2095
  $html .= '<label><input id="' . $args['id'] . '" type="checkbox" name="' . $args['name'] . '" value="1" ' . checked( (bool) $args['value'], true, false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $args['label'] . '</label>';
2096
  break;
2097
+
2098
  case 'radio':
2099
  foreach ( $args['options'] as $key => $name ) {
2100
  $html .= '<label><input id="' . $args['id'] . '-' . $key . '" type="radio" name="' . $args['name'] . '" value="' . $key . '" ' . checked( $key, $args['value'], false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $name . '</label> ';
2101
  }
2102
  break;
2103
+
2104
  case 'checkbox':
2105
  foreach ( $args['options'] as $key => $name ) {
2106
  $html .= '<label><input id="' . $args['id'] . '-' . $key . '" type="checkbox" name="' . $args['name'] . '[' . $key . ']" value="1" ' . checked( in_array( $key, $args['value'] ), true, false ) . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . ' />' . $name . '</label> ';
2107
  }
2108
  break;
2109
+
2110
  case 'select':
2111
  $html .= '<select id="' . $args['id'] . '" name="' . $args['name'] . '" value="' . $args['value'] . '" ' . ( isset( $args['disabled'] ) && $args['disabled'] == true ? ' disabled="disabled"' : '' ) . '/>';
2112
 
2116
 
2117
  $html .= '</select>';
2118
  break;
2119
+
2120
  case 'multiple':
2121
  $html .= '<fieldset>';
2122
 
2179
 
2180
  /**
2181
  * Sanitize field function
2182
+ *
2183
+ * @param mixed $value
2184
+ * @param string $type
2185
+ * @param array $args
2186
  * @return mixed
2187
  */
2188
  public function sanitize_field( $value = null, $type = '', $args = array() ) {
2202
  case 'radio':
2203
  $value = is_array( $value ) ? false : sanitize_text_field( $value );
2204
  break;
2205
+
2206
  case 'textarea':
2207
  case 'wysiwyg':
2208
  $value = wp_kses_post( $value );
2240
 
2241
  /**
2242
  * Validate settings function
2243
+ *
2244
  * @param array $input
2245
  * @return array
2246
  */
2339
  /**
2340
  * Validate capabilities.
2341
  *
2342
+ * @global object $wp_roles
2343
+ *
2344
  * @param array $input
2345
  * @return array
2346
  */
2396
  /**
2397
  * Render capabilities section.
2398
  *
2399
+ * @global object $wp_roles
2400
+ *
2401
+ * @return void
2402
  */
2403
  public function capabilities_table() {
2404
  global $wp_roles;
2452
 
2453
  /**
2454
  * Add-ons tab callback
2455
+ *
2456
+ * @return void
2457
  */
2458
  private function addons_tab_cb() {
2459
  ?>
2478
 
2479
  /**
2480
  * Licenses section callback.
2481
+ *
2482
+ * @return void
2483
  */
2484
  public function licenses_section_cb() {
2485
  ?><p class="description"><?php _e( 'A list of licenses for your Responsive Lightbox & Gallery extensions.', 'responsive-lightbox' ); ?></p><?php
2487
 
2488
  /**
2489
  * License field callback.
2490
+ *
2491
+ * @param array $args
2492
+ * @return void
2493
  */
2494
  public function license_field_cb( $args ) {
2495
  $licenses = get_option( 'responsive_lightbox_licenses' );
2510
 
2511
  /**
2512
  * Validate licenses function.
2513
+ *
2514
  * @param array $input
2515
  * @return array
2516
  */
2575
  }
2576
  }
2577
  }
2578
+
2579
  // success notice
2580
  if ( $statuses['updated'] > 0 )
2581
  add_settings_error( 'rl_licenses_settings', 'license_activated', sprintf( _n( '%s license successfully activated.', '%s licenses successfully activated.', (int) $statuses['updated'], 'responsive-lightbox' ), (int) $statuses['updated'] ), 'updated' );
2586
  } elseif ( isset( $_POST['reset_rl_licenses'] ) ) {
2587
  $licenses = get_option( 'responsive_lightbox_licenses' );
2588
  $statuses = array( 'updated' => 0, 'error' => 0 );
2589
+
2590
  foreach ( $extensions as $extension ) {
2591
  $license = ! empty( $licenses ) && isset( $licenses[$extension['id']]['license'] ) ? $licenses[$extension['id']]['license'] : '';
2592
  $status = ! empty( $licenses ) && ! empty( $licenses[$extension['id']]['status'] ) ? true : false;
2593
 
2594
+ if ( $status === true || ( $status === false && ! empty( $license ) ) ) {
2595
  // request data
2596
  $request_args = array(
2597
  'action' => 'deactivate_license',
2650
  'sslverify' => false
2651
  );
2652
 
2653
+ // call the custom API
2654
  $response = wp_remote_get( add_query_arg( $api_params, 'http://dfactory.eu' ) );
2655
 
2656
  return $response;
includes/class-tour.php CHANGED
@@ -27,6 +27,8 @@ class Responsive_Lightbox_Tour {
27
  /**
28
  * Initialize tour.
29
  *
 
 
30
  * @return void
31
  */
32
  public function init_tour() {
@@ -55,6 +57,8 @@ class Responsive_Lightbox_Tour {
55
  /**
56
  * Add temporary admin menu.
57
  *
 
 
58
  * @return void
59
  */
60
  public function admin_menu() {
@@ -87,6 +91,8 @@ class Responsive_Lightbox_Tour {
87
  /**
88
  * Load the introduction tour.
89
  *
 
 
90
  * @return void
91
  */
92
  public function start_tour() {
27
  /**
28
  * Initialize tour.
29
  *
30
+ * @global string $pagenow
31
+ *
32
  * @return void
33
  */
34
  public function init_tour() {
57
  /**
58
  * Add temporary admin menu.
59
  *
60
+ * @global string $pagenow
61
+ *
62
  * @return void
63
  */
64
  public function admin_menu() {
91
  /**
92
  * Load the introduction tour.
93
  *
94
+ * @global string $pagenow
95
+ *
96
  * @return void
97
  */
98
  public function start_tour() {
includes/class-welcome.php CHANGED
@@ -7,13 +7,13 @@ new Responsive_Lightbox_Welcome_Page();
7
 
8
  /**
9
  * Responsive_Lightbox_Welcome_Page class.
10
- *
11
  * @class Responsive_Lightbox_Welcome_Page
12
  */
13
  class Responsive_Lightbox_Welcome_Page {
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -61,7 +61,7 @@ class Responsive_Lightbox_Welcome_Page {
61
  printf( __( 'Thank you for choosing Responsive Lightbox & Gallery - the most popular lightbox plugin and a powerful gallery builder for WordPress.', 'responsive-lightbox' ), $plugin_version );
62
  ?>
63
  </div>
64
-
65
  <div class="rl-badge" style="position: absolute; top: 0; right: 0; box-shadow: 0 1px 3px rgba(0,0,0,.1); max-width: 180px;"><img src="<?php echo RESPONSIVE_LIGHTBOX_URL . '/images/logo-rl.png'; ?>" width="180" height="180" /></div>
66
 
67
  <div class="changelog">
@@ -69,7 +69,7 @@ class Responsive_Lightbox_Welcome_Page {
69
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=responsive-lightbox-settings' ) ); ?>" class="button button-hero"><?php _e( 'Settings', 'responsive-lightbox' ); ?></a>
70
  <a href="https://dfactory.eu/products/responsive-lightbox-gallery-extensions/?utm_source=responsive-lightbox-welcome&utm_medium=button&utm_campaign=dfactory-plugins" class="button button-hero" target="_blank"><?php _e( 'Addons', 'responsive-lightbox' ); ?></a>
71
  </div>
72
-
73
  <hr />
74
  <?php
75
  }
@@ -84,10 +84,10 @@ class Responsive_Lightbox_Welcome_Page {
84
  <div class="wrap about-wrap full-width-layout">
85
 
86
  <?php $this->intro(); ?>
87
-
88
  <div class="feature-section">
89
- <h2><?php _e( 'Advanced Gallery Builder', 'responsive-lightbox' ); ?></h2>
90
- <p><?php _e( 'Responsive Lightbox & Gallery comes with a powerful gallery builder right out of the box that lets you manage galleries the same way you manage posts and pages on your WordPress website. You can add images to your gallery, adjust its settings and lightbox scripts, and configure its display options.', 'responsive-lightbox' ); ?></p>
91
  <img src="<?php echo RESPONSIVE_LIGHTBOX_URL . '/images/welcome.png'; ?>" />
92
  </div>
93
 
@@ -100,18 +100,18 @@ class Responsive_Lightbox_Welcome_Page {
100
  <h2><?php _e( 'Easy Setup', 'responsive-lightbox' ); ?></h2>
101
  <p><?php _e( 'A lot goes into making a good first impression - especially when your site is doing all the talking. Responsive Lightbox & Gallery automatically adds lightbox effects to all of your image galleries, image links, and video links so you can sit back and relax while we make sure your website looks its best.', 'responsive-lightbox' ); ?></p>
102
  </div>
103
-
104
  <div class="feature-section">
105
  <h2><?php _e( 'Powerful Addons', 'responsive-lightbox' ); ?></h2>
106
  <p><?php printf( __( 'Responsive Lightbox & Gallery enhances your site by making its images and galleries look visually appealing to your site users. And when you want to kick things up a notch you can pair the free, core plugin with <del>one of 10</del> one of 12 <a href="%s" target="_blank">premium extensions.</a>', 'responsive-lightbox' ), 'https://dfactory.eu/products/responsive-lightbox-gallery-extensions/' ); ?></p>
107
  </div>
108
-
109
  <hr />
110
 
111
  <div class="return-to-dashboard">
112
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=responsive-lightbox-settings' ) ); ?>"><?php _e( 'Go to Settings', 'responsive-lightbox' ); ?></a>
113
  </div>
114
-
115
  </div>
116
  <?php
117
  }
7
 
8
  /**
9
  * Responsive_Lightbox_Welcome_Page class.
10
+ *
11
  * @class Responsive_Lightbox_Welcome_Page
12
  */
13
  class Responsive_Lightbox_Welcome_Page {
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
61
  printf( __( 'Thank you for choosing Responsive Lightbox & Gallery - the most popular lightbox plugin and a powerful gallery builder for WordPress.', 'responsive-lightbox' ), $plugin_version );
62
  ?>
63
  </div>
64
+
65
  <div class="rl-badge" style="position: absolute; top: 0; right: 0; box-shadow: 0 1px 3px rgba(0,0,0,.1); max-width: 180px;"><img src="<?php echo RESPONSIVE_LIGHTBOX_URL . '/images/logo-rl.png'; ?>" width="180" height="180" /></div>
66
 
67
  <div class="changelog">
69
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=responsive-lightbox-settings' ) ); ?>" class="button button-hero"><?php _e( 'Settings', 'responsive-lightbox' ); ?></a>
70
  <a href="https://dfactory.eu/products/responsive-lightbox-gallery-extensions/?utm_source=responsive-lightbox-welcome&utm_medium=button&utm_campaign=dfactory-plugins" class="button button-hero" target="_blank"><?php _e( 'Addons', 'responsive-lightbox' ); ?></a>
71
  </div>
72
+
73
  <hr />
74
  <?php
75
  }
84
  <div class="wrap about-wrap full-width-layout">
85
 
86
  <?php $this->intro(); ?>
87
+
88
  <div class="feature-section">
89
+ <h2><?php _e( 'Advanced Gallery Builder', 'responsive-lightbox' ); ?></h2>
90
+ <p><?php _e( 'Responsive Lightbox & Gallery comes with a powerful gallery builder right out of the box that lets you manage galleries the same way you manage posts and pages on your WordPress website. You can add images to your gallery, adjust its settings and lightbox scripts, and configure its display options.', 'responsive-lightbox' ); ?></p>
91
  <img src="<?php echo RESPONSIVE_LIGHTBOX_URL . '/images/welcome.png'; ?>" />
92
  </div>
93
 
100
  <h2><?php _e( 'Easy Setup', 'responsive-lightbox' ); ?></h2>
101
  <p><?php _e( 'A lot goes into making a good first impression - especially when your site is doing all the talking. Responsive Lightbox & Gallery automatically adds lightbox effects to all of your image galleries, image links, and video links so you can sit back and relax while we make sure your website looks its best.', 'responsive-lightbox' ); ?></p>
102
  </div>
103
+
104
  <div class="feature-section">
105
  <h2><?php _e( 'Powerful Addons', 'responsive-lightbox' ); ?></h2>
106
  <p><?php printf( __( 'Responsive Lightbox & Gallery enhances your site by making its images and galleries look visually appealing to your site users. And when you want to kick things up a notch you can pair the free, core plugin with <del>one of 10</del> one of 12 <a href="%s" target="_blank">premium extensions.</a>', 'responsive-lightbox' ), 'https://dfactory.eu/products/responsive-lightbox-gallery-extensions/' ); ?></p>
107
  </div>
108
+
109
  <hr />
110
 
111
  <div class="return-to-dashboard">
112
  <a href="<?php echo esc_url( admin_url( 'admin.php?page=responsive-lightbox-settings' ) ); ?>"><?php _e( 'Go to Settings', 'responsive-lightbox' ); ?></a>
113
  </div>
114
+
115
  </div>
116
  <?php
117
  }
includes/class-widgets.php CHANGED
@@ -7,13 +7,13 @@ new Responsive_Lightbox_Widgets();
7
 
8
  /**
9
  * Responsive Lightbox Widgets class.
10
- *
11
  * @class Responsive_Lightbox_Widgets
12
  */
13
  class Responsive_Lightbox_Widgets {
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -35,7 +35,7 @@ class Responsive_Lightbox_Widgets {
35
 
36
  /**
37
  * Responsive Lightbox Gallery Widget class.
38
- *
39
  * @class Responsive_Lightbox_Gallery_Widget
40
  */
41
  class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
@@ -47,7 +47,7 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
47
  private $rlg_gallery_types = array();
48
 
49
  /**
50
- * Constructor.
51
  *
52
  * @return void
53
  */
@@ -120,13 +120,13 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
120
  }
121
 
122
  /** Render widget form.
123
- *
124
  * @param object $instance
125
  * @return void
126
  */
127
  public function form( $instance ) {
128
  $attachments = ! empty( $instance['ids'] ) ? array_filter( explode( ',', $instance['ids'] ) ) : array();
129
-
130
  $html = '
131
  <div class="rl-gallery-widget-container">
132
  <p>
@@ -135,7 +135,7 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
135
  </p>
136
  <div id="' . $this->get_field_id( 'gallery' ) . '" class="rl-gallery-widget' . ( ! empty( $attachments ) ? ' has-image' : '' ) . '">
137
  <input type="hidden" class="rl-gallery-ids" id="' . $this->get_field_id( 'ids' ) . '" name="' . $this->get_field_name( 'ids' ) . '" value="' . ( ! empty( $instance['ids'] ) ? esc_attr( $instance['ids'] ) : '' ) . '">';
138
-
139
  $html .= '
140
  <a href="#" class="rl-gallery-widget-select button button-secondary">' . __( 'Select images', 'responsive-lightbox' ) . '</a>
141
  <div class="rl-gallery-widget-content">
@@ -145,7 +145,7 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
145
  foreach ( $attachments as $attachment_id ) {
146
  if ( ! $attachment_id || ! wp_attachment_is_image( $attachment_id ) )
147
  continue;
148
-
149
  $html .= '
150
  <li class="rl-gallery-image" data-attachment_id="' . absint( $attachment_id ) . '">
151
  <div class="rl-gallery-inner">' . wp_get_attachment_image( $attachment_id, 'thumbnail' ) . '</div>
@@ -228,7 +228,7 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
228
 
229
  /**
230
  * Save widget form.
231
- *
232
  * @param array $new_instance
233
  * @param array $old_instance
234
  * @return array
@@ -256,7 +256,7 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
256
  if ( array_key_exists( 'ids', $new_instance ) && ! empty( $new_instance['ids'] ) ) {
257
  // get unique and non empty attachment ids only
258
  $attachment_ids = array_unique( array_filter( array_map( 'intval', explode( ',', $new_instance['ids'] ) ) ) );
259
-
260
  $old_instance['ids'] = implode( ',', $attachment_ids );
261
  } else
262
  $old_instance['ids'] = $this->rlg_defaults['ids'];
@@ -296,17 +296,22 @@ class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
296
 
297
  /**
298
  * Responsive Lightbox Gallery Widget class.
299
- *
300
  * @class Responsive_Lightbox_Gallery_Widget
301
  */
302
  class Responsive_Lightbox_Image_Widget extends WP_Widget {
303
-
304
  private $rli_defaults = array();
305
  private $rli_text_positions = array();
306
  private $rli_link_to = array();
307
  private $rli_aligns = array();
308
  private $rli_image_sizes = array();
309
 
 
 
 
 
 
310
  public function __construct() {
311
  parent::__construct(
312
  'Responsive_Lightbox_Image_Widget',
@@ -316,7 +321,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
316
  'classname' => 'rl-image-widget'
317
  )
318
  );
319
-
320
  $this->rli_defaults = array(
321
  'title' => __( 'Image', 'responsive-lightbox' ),
322
  'image_id' => 0,
@@ -359,7 +364,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
359
  * Display widget.
360
  *
361
  * @param array $args
362
- * @param object $instance
363
  * @return void
364
  */
365
  public function widget( $args, $instance ) {
@@ -373,27 +378,27 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
373
  }
374
 
375
  $image = wp_get_attachment_image_src( $instance['image_id'], $instance['size'], false );
376
-
377
  switch ( $instance['link_to'] ) {
378
- case 'file' :
379
  $file = wp_get_attachment_image_src( $instance['image_id'], 'full', false );
380
  $href = $file[0];
381
  break;
382
-
383
- case 'post' :
384
  $href = get_permalink( $instance['image_id'] );
385
  break;
386
-
387
- case 'custom' :
388
  $href = $instance['link_custom_url'];
389
  break;
390
-
391
- case 'none' :
392
- default :
393
  $href = '';
394
  break;
395
  }
396
-
397
  if ( $instance['image_align'] === 'left' )
398
  $image_align = ' style="float: left;"';
399
  elseif ( $instance['image_align'] === 'center' )
@@ -423,7 +428,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
423
  $alt = (string) get_post_meta( $instance['image_id'], '_wp_attachment_image_alt', true );
424
 
425
  $html = $title;
426
-
427
  if ( $text_position === 'below_image' ) {
428
  $html .= ($href !== '' ? '<a href="' . $href . '" class="rl-image-widget-link">' : '') . '<img class="rl-image-widget-image" src="' . $image[0] . '" width="' . $width . '" height="' . $height . '" title="' . $image_title . '" alt="' . $alt . '"' . $image_align . ' />' . ($href !== '' ? '</a>' : '');
429
  $html .= '<div class="rl-image-widget-text"' . $text_align . '>' . $text . '</div>';
@@ -437,8 +442,8 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
437
  }
438
 
439
  /** Render widget form.
440
- *
441
- * @param object $instance
442
  * @return void
443
  */
444
  public function form( $instance ) {
@@ -447,7 +452,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
447
 
448
  if ( ! empty( $image_id ) )
449
  $image = wp_get_attachment_image( $image_id, 'medium', false );
450
-
451
  if ( ! $image )
452
  $image = wp_get_attachment_image( $image_id, 'full', false );
453
 
@@ -504,7 +509,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
504
  <label for="' . $this->get_field_id( 'link_custom_url' ) . '">' . __( 'URL', 'responsive-lightbox' ) . '</label>
505
  <input id="' . $this->get_field_id( 'link_custom_url' ) . '" class="widefat" name="' . $this->get_field_name( 'link_custom_url' ) . '" type="text" value="' . esc_attr( isset( $instance['link_custom_url'] ) ? $instance['link_custom_url'] : $this->rli_defaults['link_custom_url'] ) . '" />
506
  </p>';
507
-
508
  $html .= '
509
  <p>
510
  <label for="' . $this->get_field_id( 'image_align' ) . '">' . __( 'Image align', 'responsive-lightbox' ) . '</label>
@@ -515,7 +520,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
515
  $html .= '
516
  <option value="' . esc_attr( $id ) . '" ' . selected( $id, (isset( $instance['image_align'] ) ? $instance['image_align'] : $this->rli_defaults['image_align'] ), false ) . '>' . $image_align . '</option>';
517
  }
518
-
519
  $html .= '
520
  </select>
521
  </p>
@@ -550,7 +555,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
550
 
551
  $html .= '
552
  </select>
553
-
554
  </div>';
555
 
556
  echo $html;
@@ -558,7 +563,7 @@ class Responsive_Lightbox_Image_Widget extends WP_Widget {
558
 
559
  /**
560
  * Save widget form.
561
- *
562
  * @param array $new_instance
563
  * @param array $old_instance
564
  * @return array
7
 
8
  /**
9
  * Responsive Lightbox Widgets class.
10
+ *
11
  * @class Responsive_Lightbox_Widgets
12
  */
13
  class Responsive_Lightbox_Widgets {
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
35
 
36
  /**
37
  * Responsive Lightbox Gallery Widget class.
38
+ *
39
  * @class Responsive_Lightbox_Gallery_Widget
40
  */
41
  class Responsive_Lightbox_Gallery_Widget extends WP_Widget {
47
  private $rlg_gallery_types = array();
48
 
49
  /**
50
+ * Class constructor.
51
  *
52
  * @return void
53
  */
120
  }
121
 
122
  /** Render widget form.
123
+ *
124
  * @param object $instance
125
  * @return void
126
  */
127
  public function form( $instance ) {
128
  $attachments = ! empty( $instance['ids'] ) ? array_filter( explode( ',', $instance['ids'] ) ) : array();
129
+
130
  $html = '
131
  <div class="rl-gallery-widget-container">
132
  <p>
135
  </p>
136
  <div id="' . $this->get_field_id( 'gallery' ) . '" class="rl-gallery-widget' . ( ! empty( $attachments ) ? ' has-image' : '' ) . '">
137
  <input type="hidden" class="rl-gallery-ids" id="' . $this->get_field_id( 'ids' ) . '" name="' . $this->get_field_name( 'ids' ) . '" value="' . ( ! empty( $instance['ids'] ) ? esc_attr( $instance['ids'] ) : '' ) . '">';
138
+
139
  $html .= '
140
  <a href="#" class="rl-gallery-widget-select button button-secondary">' . __( 'Select images', 'responsive-lightbox' ) . '</a>
141
  <div class="rl-gallery-widget-content">
145
  foreach ( $attachments as $attachment_id ) {
146
  if ( ! $attachment_id || ! wp_attachment_is_image( $attachment_id ) )
147
  continue;
148
+
149
  $html .= '
150
  <li class="rl-gallery-image" data-attachment_id="' . absint( $attachment_id ) . '">
151
  <div class="rl-gallery-inner">' . wp_get_attachment_image( $attachment_id, 'thumbnail' ) . '</div>
228
 
229
  /**
230
  * Save widget form.
231
+ *
232
  * @param array $new_instance
233
  * @param array $old_instance
234
  * @return array
256
  if ( array_key_exists( 'ids', $new_instance ) && ! empty( $new_instance['ids'] ) ) {
257
  // get unique and non empty attachment ids only
258
  $attachment_ids = array_unique( array_filter( array_map( 'intval', explode( ',', $new_instance['ids'] ) ) ) );
259
+
260
  $old_instance['ids'] = implode( ',', $attachment_ids );
261
  } else
262
  $old_instance['ids'] = $this->rlg_defaults['ids'];
296
 
297
  /**
298
  * Responsive Lightbox Gallery Widget class.
299
+ *
300
  * @class Responsive_Lightbox_Gallery_Widget
301
  */
302
  class Responsive_Lightbox_Image_Widget extends WP_Widget {
303
+
304
  private $rli_defaults = array();
305
  private $rli_text_positions = array();
306
  private $rli_link_to = array();
307
  private $rli_aligns = array();
308
  private $rli_image_sizes = array();
309
 
310
+ /**
311
+ * Class constructor.
312
+ *
313
+ * @return void
314
+ */
315
  public function __construct() {
316
  parent::__construct(
317
  'Responsive_Lightbox_Image_Widget',
321
  'classname' => 'rl-image-widget'
322
  )
323
  );
324
+
325
  $this->rli_defaults = array(
326
  'title' => __( 'Image', 'responsive-lightbox' ),
327
  'image_id' => 0,
364
  * Display widget.
365
  *
366
  * @param array $args
367
+ * @param array $instance
368
  * @return void
369
  */
370
  public function widget( $args, $instance ) {
378
  }
379
 
380
  $image = wp_get_attachment_image_src( $instance['image_id'], $instance['size'], false );
381
+
382
  switch ( $instance['link_to'] ) {
383
+ case 'file':
384
  $file = wp_get_attachment_image_src( $instance['image_id'], 'full', false );
385
  $href = $file[0];
386
  break;
387
+
388
+ case 'post':
389
  $href = get_permalink( $instance['image_id'] );
390
  break;
391
+
392
+ case 'custom':
393
  $href = $instance['link_custom_url'];
394
  break;
395
+
396
+ case 'none':
397
+ default:
398
  $href = '';
399
  break;
400
  }
401
+
402
  if ( $instance['image_align'] === 'left' )
403
  $image_align = ' style="float: left;"';
404
  elseif ( $instance['image_align'] === 'center' )
428
  $alt = (string) get_post_meta( $instance['image_id'], '_wp_attachment_image_alt', true );
429
 
430
  $html = $title;
431
+
432
  if ( $text_position === 'below_image' ) {
433
  $html .= ($href !== '' ? '<a href="' . $href . '" class="rl-image-widget-link">' : '') . '<img class="rl-image-widget-image" src="' . $image[0] . '" width="' . $width . '" height="' . $height . '" title="' . $image_title . '" alt="' . $alt . '"' . $image_align . ' />' . ($href !== '' ? '</a>' : '');
434
  $html .= '<div class="rl-image-widget-text"' . $text_align . '>' . $text . '</div>';
442
  }
443
 
444
  /** Render widget form.
445
+ *
446
+ * @param array $instance
447
  * @return void
448
  */
449
  public function form( $instance ) {
452
 
453
  if ( ! empty( $image_id ) )
454
  $image = wp_get_attachment_image( $image_id, 'medium', false );
455
+
456
  if ( ! $image )
457
  $image = wp_get_attachment_image( $image_id, 'full', false );
458
 
509
  <label for="' . $this->get_field_id( 'link_custom_url' ) . '">' . __( 'URL', 'responsive-lightbox' ) . '</label>
510
  <input id="' . $this->get_field_id( 'link_custom_url' ) . '" class="widefat" name="' . $this->get_field_name( 'link_custom_url' ) . '" type="text" value="' . esc_attr( isset( $instance['link_custom_url'] ) ? $instance['link_custom_url'] : $this->rli_defaults['link_custom_url'] ) . '" />
511
  </p>';
512
+
513
  $html .= '
514
  <p>
515
  <label for="' . $this->get_field_id( 'image_align' ) . '">' . __( 'Image align', 'responsive-lightbox' ) . '</label>
520
  $html .= '
521
  <option value="' . esc_attr( $id ) . '" ' . selected( $id, (isset( $instance['image_align'] ) ? $instance['image_align'] : $this->rli_defaults['image_align'] ), false ) . '>' . $image_align . '</option>';
522
  }
523
+
524
  $html .= '
525
  </select>
526
  </p>
555
 
556
  $html .= '
557
  </select>
558
+
559
  </div>';
560
 
561
  echo $html;
563
 
564
  /**
565
  * Save widget form.
566
+ *
567
  * @param array $new_instance
568
  * @param array $old_instance
569
  * @return array
includes/providers/class-flickr.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) )
13
  class Responsive_Lightbox_Remote_Library_Flickr extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -93,14 +93,19 @@ class Responsive_Lightbox_Remote_Library_Flickr extends Responsive_Lightbox_Remo
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
- // check per page parameter
97
- if ( isset( $args['preview_per_page'] ) )
98
- $args['preview_per_page'] = (int) $args['preview_per_page'];
99
- else
100
- $args['preview_per_page'] = 20;
101
-
102
- if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 500 )
103
- $args['preview_per_page'] = 20;
 
 
 
 
 
104
 
105
  // set query arguments
106
  $this->query_args = $args;
@@ -234,22 +239,24 @@ class Responsive_Lightbox_Remote_Library_Flickr extends Responsive_Lightbox_Remo
234
  $source = 'https://www.flickr.com/photos/' . $result['owner'] . '/' . $result['id'];
235
 
236
  $imagedata = [
237
- 'id' => 0,
238
- 'link' => '',
239
- 'source' => $source,
240
- 'title' => $result['title'],
241
- 'caption' => $this->get_attribution( 'Flickr', $source, $result['ownername'], 'https://www.flickr.com/photos/' . $result['owner'] ),
242
- 'description' => $result['description']['_content'],
243
- 'alt' => $result['tags'],
244
- 'url' => $large[0],
245
- 'width' => $large[1],
246
- 'height' => $large[2],
247
- 'thumbnail_url' => $small[0],
248
- 'thumbnail_width' => $small[1],
249
- 'thumbnail_height' => $small[2],
250
- 'media_provider' => 'flickr',
251
- 'filename' => basename( $large[0] ),
252
- 'dimensions' => $large[1] . ' x ' . $large[2]
 
 
253
  ];
254
 
255
  // create thumbnail link
13
  class Responsive_Lightbox_Remote_Library_Flickr extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
+ // check limit
97
+ if ( isset( $args['limit'] ) && ( $limit = (int) $args['limit'] ) > 0 )
98
+ $args['preview_per_page'] = $limit;
99
+ else {
100
+ // check per page parameter
101
+ if ( isset( $args['preview_per_page'] ) )
102
+ $args['preview_per_page'] = (int) $args['preview_per_page'];
103
+ else
104
+ $args['preview_per_page'] = 20;
105
+
106
+ if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 500 )
107
+ $args['preview_per_page'] = 20;
108
+ }
109
 
110
  // set query arguments
111
  $this->query_args = $args;
239
  $source = 'https://www.flickr.com/photos/' . $result['owner'] . '/' . $result['id'];
240
 
241
  $imagedata = [
242
+ 'id' => 0,
243
+ 'link' => '',
244
+ 'source' => $source,
245
+ 'title' => $result['title'],
246
+ 'caption' => $this->get_attribution( 'Flickr', $source, $result['ownername'], 'https://www.flickr.com/photos/' . $result['owner'] ),
247
+ 'description' => $result['description']['_content'],
248
+ 'alt' => $result['tags'],
249
+ 'url' => $large[0],
250
+ 'width' => $large[1],
251
+ 'height' => $large[2],
252
+ 'orientation' => $large[2] > $large[1] ? 'portrait' : 'landscape',
253
+ 'thumbnail_url' => $small[0],
254
+ 'thumbnail_width' => $small[1],
255
+ 'thumbnail_height' => $small[2],
256
+ 'thumbnail_orientation' => $small[2] > $small[1] ? 'portrait' : 'landscape',
257
+ 'media_provider' => 'flickr',
258
+ 'filename' => basename( $large[0] ),
259
+ 'dimensions' => $large[1] . ' x ' . $large[2]
260
  ];
261
 
262
  // create thumbnail link
includes/providers/class-unsplash.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) )
13
  class Responsive_Lightbox_Remote_Library_Unsplash extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -93,14 +93,19 @@ class Responsive_Lightbox_Remote_Library_Unsplash extends Responsive_Lightbox_Re
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
- // check per page parameter
97
- if ( isset( $args['preview_per_page'] ) )
98
- $args['preview_per_page'] = (int) $args['preview_per_page'];
99
- else
100
- $args['preview_per_page'] = 20;
101
-
102
- if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 30 )
103
- $args['preview_per_page'] = 20;
 
 
 
 
 
104
 
105
  // set query arguments
106
  $this->query_args = $args;
@@ -188,22 +193,24 @@ class Responsive_Lightbox_Remote_Library_Unsplash extends Responsive_Lightbox_Re
188
  $thumbnail_height = (int) floor( $thumbnail_width / ( $width / $height ) );
189
 
190
  $imagedata = [
191
- 'id' => 0,
192
- 'link' => '',
193
- 'source' => $result['links']['html'],
194
- 'title' => $result['id'],
195
- 'caption' => $this->get_attribution( 'Unsplash', $result['links']['html'], $result['user']['name'], $result['user']['links']['html'] ),
196
- 'description' => ! empty( $result['description'] ) ? $result['description'] : '',
197
- 'alt' => '',
198
- 'url' => $result['urls']['raw'],
199
- 'width' => $width,
200
- 'height' => $height,
201
- 'thumbnail_url' => $result['urls']['small'],
202
- 'thumbnail_width' => $thumbnail_width,
203
- 'thumbnail_height' => $thumbnail_height,
204
- 'media_provider' => 'unsplash',
205
- 'filename' => basename( $result['urls']['raw'] ),
206
- 'dimensions' => $width . ' x ' . $height
 
 
207
  ];
208
 
209
  // create thumbnail link
13
  class Responsive_Lightbox_Remote_Library_Unsplash extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
+ // check limit
97
+ if ( isset( $args['limit'] ) && ( $limit = (int) $args['limit'] ) > 0 )
98
+ $args['preview_per_page'] = $limit;
99
+ else {
100
+ // check per page parameter
101
+ if ( isset( $args['preview_per_page'] ) )
102
+ $args['preview_per_page'] = (int) $args['preview_per_page'];
103
+ else
104
+ $args['preview_per_page'] = 20;
105
+
106
+ if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 30 )
107
+ $args['preview_per_page'] = 20;
108
+ }
109
 
110
  // set query arguments
111
  $this->query_args = $args;
193
  $thumbnail_height = (int) floor( $thumbnail_width / ( $width / $height ) );
194
 
195
  $imagedata = [
196
+ 'id' => 0,
197
+ 'link' => '',
198
+ 'source' => $result['links']['html'],
199
+ 'title' => $result['id'],
200
+ 'caption' => $this->get_attribution( 'Unsplash', $result['links']['html'], $result['user']['name'], $result['user']['links']['html'] ),
201
+ 'description' => ! empty( $result['description'] ) ? $result['description'] : '',
202
+ 'alt' => '',
203
+ 'url' => $result['urls']['raw'],
204
+ 'width' => $width,
205
+ 'height' => $height,
206
+ 'orientation' => $height > $width ? 'portrait' : 'landscape',
207
+ 'thumbnail_url' => $result['urls']['small'],
208
+ 'thumbnail_width' => $thumbnail_width,
209
+ 'thumbnail_height' => $thumbnail_height,
210
+ 'thumbnail_orientation' => $thumbnail_height > $thumbnail_width ? 'portrait' : 'landscape',
211
+ 'media_provider' => 'unsplash',
212
+ 'filename' => basename( $result['urls']['raw'] ),
213
+ 'dimensions' => $width . ' x ' . $height
214
  ];
215
 
216
  // create thumbnail link
includes/providers/class-wikimedia.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) )
13
  class Responsive_Lightbox_Remote_Library_Wikimedia extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
- * Constructor.
17
  *
18
  * @return void
19
  */
@@ -93,14 +93,19 @@ class Responsive_Lightbox_Remote_Library_Wikimedia extends Responsive_Lightbox_R
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
- // check per page parameter
97
- if ( isset( $args['preview_per_page'] ) )
98
- $args['preview_per_page'] = (int) $args['preview_per_page'];
99
- else
100
- $args['preview_per_page'] = 20;
101
-
102
- if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 200 )
103
- $args['preview_per_page'] = 20;
 
 
 
 
 
104
 
105
  // set query arguments
106
  $this->query_args = $args;
@@ -222,7 +227,7 @@ class Responsive_Lightbox_Remote_Library_Wikimedia extends Responsive_Lightbox_R
222
  // use larger size if height is less than 150 pixels
223
  if ( $thumbnail_height < 150 ) {
224
  $thumbnail_width = 480;
225
-
226
  // calculate new height based on original ratio
227
  $thumbnail_height = (int) floor( $thumbnail_width / $ratio );
228
  }
@@ -236,22 +241,24 @@ class Responsive_Lightbox_Remote_Library_Wikimedia extends Responsive_Lightbox_R
236
  }
237
 
238
  $imagedata = [
239
- 'id' => 0,
240
- 'link' => '',
241
- 'source' => $result['descriptionshorturl'],
242
- 'title' => $result['title'],
243
- 'caption' => $this->get_attribution( 'Wikimedia', $result['descriptionshorturl'] ),
244
- 'description' => isset( $result['extmetadata']['ImageDescription']['value'] ) ? $result['extmetadata']['ImageDescription']['value'] : '',
245
- 'alt' => isset( $result['extmetadata']['Categories']['value'] ) ? str_replace( '|', ', ', $result['extmetadata']['Categories']['value'] ) : '',
246
- 'url' => $result['url'],
247
- 'width' => $width,
248
- 'height' => $height,
249
- 'thumbnail_url' => $thumbnail_url,
250
- 'thumbnail_width' => $thumbnail_width,
251
- 'thumbnail_height' => $thumbnail_height,
252
- 'media_provider' => 'wikimedia',
253
- 'filename' => $result['name'],
254
- 'dimensions' => $width . ' x ' . $height
 
 
255
  ];
256
 
257
  // create thumbnail link
13
  class Responsive_Lightbox_Remote_Library_Wikimedia extends Responsive_Lightbox_Remote_Library_API {
14
 
15
  /**
16
+ * Class constructor.
17
  *
18
  * @return void
19
  */
93
  if ( $args['preview_page'] < 1 )
94
  $args['preview_page'] = 1;
95
 
96
+ // check limit
97
+ if ( isset( $args['limit'] ) && ( $limit = (int) $args['limit'] ) > 0 )
98
+ $args['preview_per_page'] = $limit;
99
+ else {
100
+ // check per page parameter
101
+ if ( isset( $args['preview_per_page'] ) )
102
+ $args['preview_per_page'] = (int) $args['preview_per_page'];
103
+ else
104
+ $args['preview_per_page'] = 20;
105
+
106
+ if ( $args['preview_per_page'] < 5 || $args['preview_per_page'] > 200 )
107
+ $args['preview_per_page'] = 20;
108
+ }
109
 
110
  // set query arguments
111
  $this->query_args = $args;
227
  // use larger size if height is less than 150 pixels
228
  if ( $thumbnail_height < 150 ) {
229
  $thumbnail_width = 480;
230
+
231
  // calculate new height based on original ratio
232
  $thumbnail_height = (int) floor( $thumbnail_width / $ratio );
233
  }
241
  }
242
 
243
  $imagedata = [
244
+ 'id' => 0,
245
+ 'link' => '',
246
+ 'source' => $result['descriptionshorturl'],
247
+ 'title' => $result['title'],
248
+ 'caption' => $this->get_attribution( 'Wikimedia', $result['descriptionshorturl'] ),
249
+ 'description' => isset( $result['extmetadata']['ImageDescription']['value'] ) ? $result['extmetadata']['ImageDescription']['value'] : '',
250
+ 'alt' => isset( $result['extmetadata']['Categories']['value'] ) ? str_replace( '|', ', ', $result['extmetadata']['Categories']['value'] ) : '',
251
+ 'url' => $result['url'],
252
+ 'width' => $width,
253
+ 'height' => $height,
254
+ 'orientation' => $height > $width ? 'portrait' : 'landscape',
255
+ 'thumbnail_url' => $thumbnail_url,
256
+ 'thumbnail_width' => $thumbnail_width,
257
+ 'thumbnail_height' => $thumbnail_height,
258
+ 'thumbnail_orientation' => $thumbnail_height > $thumbnail_width ? 'portrait' : 'landscape',
259
+ 'media_provider' => 'wikimedia',
260
+ 'filename' => $result['name'],
261
+ 'dimensions' => $width . ' x ' . $height,
262
  ];
263
 
264
  // create thumbnail link
js/admin-folders.js CHANGED
@@ -134,7 +134,7 @@
134
  }
135
  } );
136
 
137
- // extend AttachmentCompat
138
  var RLAttachmentCompat = wp.media.view.AttachmentCompat;
139
 
140
  wp.media.view.AttachmentCompat = wp.media.view.AttachmentCompat.extend( {
@@ -904,7 +904,7 @@
904
  $( '#the-list' ).append( rlFoldersArgs.no_media_items );
905
  } );
906
  }
907
-
908
  // update old node number
909
  update_node_number( old_node, response.data, false );
910
  }
134
  }
135
  } );
136
 
137
+ // extend AttachmentCompat
138
  var RLAttachmentCompat = wp.media.view.AttachmentCompat;
139
 
140
  wp.media.view.AttachmentCompat = wp.media.view.AttachmentCompat.extend( {
904
  $( '#the-list' ).append( rlFoldersArgs.no_media_items );
905
  } );
906
  }
907
+
908
  // update old node number
909
  update_node_number( old_node, response.data, false );
910
  }
js/admin-gallery.js CHANGED
@@ -4,19 +4,31 @@
4
  modal: null,
5
  lastGalleryID: 0,
6
  lastGalleryImage: '',
7
- selectGalleryEventInitialized: false,
8
  resetFilters: false,
9
  galleries: {},
10
  gutenberg: false,
11
  primaryButtonClass: '',
12
  secondaryButtonClass: '',
 
 
 
 
13
  init: function() {
14
  this.gutenberg = typeof rlBlockEditor !== 'undefined';
15
  this.searchGalleries = _.debounce( this.getGalleries, 500 ),
16
  this.bindEvents();
17
  this.setButtons();
18
  },
 
 
 
 
19
  searchGalleries: function() {},
 
 
 
 
20
  setButtons: function() {
21
  if ( this.gutenberg ) {
22
  this.primaryButtonClass = '.rl-media-button-select-gallery';
@@ -26,12 +38,17 @@
26
  this.secondaryButtonClass = '.rl-media-button-select-gallery';
27
  }
28
  },
29
- getModal: function() {
30
- return this.modal[0];
31
- },
 
32
  getModalButton: function() {
33
  return this.modal[0].getElementsByClassName( 'rl-media-button-select-gallery' )[0];
34
  },
 
 
 
 
35
  open: function( galleryID ) {
36
  if ( typeof galleryID === 'undefined' )
37
  var galleryID = 0;
@@ -41,7 +58,7 @@
41
  $( this.primaryButtonClass ).show();
42
  $( this.secondaryButtonClass ).hide();
43
 
44
- // resetFilters
45
  if ( this.resetFilters ) {
46
  phrase = '';
47
 
@@ -62,39 +79,61 @@
62
  // get galleries
63
  this.getGalleries( phrase, galleryID );
64
  },
 
 
 
 
65
  close: function( event ) {
66
  event.preventDefault();
67
 
68
  this.modal.hide();
69
  },
70
- setColumns: function() {
71
- var list = this.modal.find( '.rl-galleries-list' ),
72
- list_width = list.width(),
73
- content = this.modal.find( '.media-frame-content' ),
74
- columns = parseInt( content.attr( 'data-columns' ) ),
75
- old_columns = new_columns = columns;
76
 
77
- if ( list_width ) {
 
 
 
 
 
 
 
 
 
 
 
78
  var width = this.modal.find( '.media-sidebar' ).outerWidth() + 'px';
79
 
 
80
  list.css( 'right', width );
 
 
81
  this.modal.find( '.attachments-browser .media-toolbar' ).css( 'right', width );
82
- new_columns = Math.min( Math.round( list_width / 170 ), 12 ) || 1;
83
 
84
- if ( ! old_columns || old_columns !== new_columns )
85
- content.attr( 'data-columns', new_columns );
 
 
 
 
86
  }
87
  },
 
 
 
 
88
  handleClickGallery: function( event ) {
89
  event.preventDefault();
90
 
91
- var gallery = $( event.target ).closest( 'li' ),
92
- currentGalleryID = parseInt( gallery.data( 'id' ) );
 
 
93
 
94
- if ( this.lastGalleryID !== currentGalleryID ) {
 
95
  gallery.parent().find( 'li' ).removeClass( 'selected details' );
96
 
97
- this.lastGalleryID = currentGalleryID;
98
 
99
  // get full source image
100
  var fullSource = gallery.find( '.centered' ).data( 'full-src' );
@@ -107,19 +146,27 @@
107
 
108
  gallery.addClass( 'selected details' );
109
 
110
- this.clickGallery( currentGalleryID, false );
111
  } else {
 
112
  if ( gallery.hasClass( 'selected details' ) ) {
 
 
 
113
  gallery.removeClass( 'selected details' );
114
 
115
- this.clickGallery( currentGalleryID, true );
116
  } else {
117
  gallery.addClass( 'selected details' );
118
 
119
- this.clickGallery( currentGalleryID, false );
120
  }
121
  }
122
  },
 
 
 
 
123
  clickGallery: function( gallery_id, toggle ) {
124
  var _this = this;
125
 
@@ -131,20 +178,27 @@
131
  // clear images
132
  _this.modal.find( '.rl-attachments-list' ).empty();
133
 
 
 
 
 
 
 
 
134
  // load cached images
135
- if ( typeof _this.galleries[gallery_id] !== 'undefined' ) {
 
 
 
136
  // update images
137
- this.updateGalleryPreview( _this.galleries[gallery_id], false );
138
  // get images for the first time
139
  } else {
140
- var spinner = _this.modal.find( '.rl-gallery-images-spinner' ),
141
- info = _this.modal.find( '.selection-info' );
142
-
143
  // display spinner
144
- spinner.fadeIn( 'fast' ).css( 'visibility', 'visible' );
145
 
146
- // turn off info
147
- info.addClass( 'rl-loading-content' );
148
 
149
  $.post( ajaxurl, {
150
  action: 'rl-post-gallery-preview',
@@ -156,26 +210,44 @@
156
  try {
157
  if ( response.success ) {
158
  // store gallery data
159
- _this.galleries[gallery_id] = response.data;
 
 
 
160
 
161
- // update gallery data
162
- _this.updateGalleryPreview( _this.galleries[gallery_id], true );
 
 
 
163
  } else {
164
- //@TODO
 
165
  }
166
  } catch( e ) {
167
- //@TODO
 
168
  }
 
 
 
169
  } ).always( function() {
170
- // hide spinner
171
- spinner.fadeOut( 'fast' );
172
 
173
- // turn on info
174
- info.removeClass( 'rl-loading-content' );
 
 
 
175
  } );
176
  }
177
  }
178
  },
 
 
 
 
179
  selectGallery: function( event ) {
180
  event.preventDefault();
181
 
@@ -184,6 +256,10 @@
184
 
185
  this.modal.hide();
186
  },
 
 
 
 
187
  insertGallery: function( event ) {
188
  event.preventDefault();
189
 
@@ -191,7 +267,7 @@
191
  return;
192
 
193
  var shortcode = '[rl_gallery id="' + this.lastGalleryID + '"]';
194
- editor = tinyMCE.get( 'content' );
195
 
196
  if ( editor && ! editor.isHidden() )
197
  editor.execCommand( 'mceInsertContent', false, shortcode );
@@ -200,11 +276,15 @@
200
 
201
  this.modal.hide();
202
  },
 
 
 
 
203
  getGalleries: function( search, galleryID ) {
204
- var modal = this.modal,
205
- spinner = $( '.rl-gallery-reload-spinner' ),
206
- galleries = modal.find( '.rl-galleries-list' ),
207
- _this = this;
208
 
209
  // clear galleries
210
  galleries.empty();
@@ -229,11 +309,20 @@
229
  } ).done( function( response ) {
230
  try {
231
  if ( response.success ) {
232
- if ( response.data !== '' ) {
233
  modal.find( '.rl-no-galleries' ).hide();
234
- modal.find( '.rl-galleries-list' ).empty().append( response.data );
235
-
236
- // select gallery
 
 
 
 
 
 
 
 
 
237
  if ( galleryID !== 0 )
238
  galleries.find( 'li[data-id="' + galleryID + '"] .js--select-attachment' ).trigger( 'click' );
239
  } else
@@ -249,9 +338,35 @@
249
  spinner.fadeOut( 'fast' );
250
  } );
251
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  updateGalleryPreview: function( gallery, animate ) {
253
  // update gallery attachments
254
- this.modal.find( '.rl-attachments-list' ).append( gallery.attachments ).fadeOut( 0 ).delay( animate? 'fast' : 0 ).fadeIn( 0 );
255
 
256
  // update number of images in gallery
257
  this.modal.find( '.rl-gallery-count' ).text( gallery.count );
@@ -262,6 +377,10 @@
262
  else
263
  this.modal.find( '.rl-edit-gallery-link' ).addClass( 'hidden' ).attr( 'href', '' );
264
  },
 
 
 
 
265
  reloadGalleries: function( event ) {
266
  event.preventDefault();
267
 
@@ -277,6 +396,10 @@
277
  // load galleries
278
  this.getGalleries( $( '#rl-media-search-input' ).val(), 0 );
279
  },
 
 
 
 
280
  bindEvents: function() {
281
  var _this = this;
282
 
4
  modal: null,
5
  lastGalleryID: 0,
6
  lastGalleryImage: '',
7
+ currentGalleryID: 0,
8
  resetFilters: false,
9
  galleries: {},
10
  gutenberg: false,
11
  primaryButtonClass: '',
12
  secondaryButtonClass: '',
13
+
14
+ /**
15
+ * Initialize galleries.
16
+ */
17
  init: function() {
18
  this.gutenberg = typeof rlBlockEditor !== 'undefined';
19
  this.searchGalleries = _.debounce( this.getGalleries, 500 ),
20
  this.bindEvents();
21
  this.setButtons();
22
  },
23
+
24
+ /**
25
+ * Search galleries.
26
+ */
27
  searchGalleries: function() {},
28
+
29
+ /**
30
+ * Set modal buttons.
31
+ */
32
  setButtons: function() {
33
  if ( this.gutenberg ) {
34
  this.primaryButtonClass = '.rl-media-button-select-gallery';
38
  this.secondaryButtonClass = '.rl-media-button-select-gallery';
39
  }
40
  },
41
+
42
+ /**
43
+ * Get modal primary button.
44
+ */
45
  getModalButton: function() {
46
  return this.modal[0].getElementsByClassName( 'rl-media-button-select-gallery' )[0];
47
  },
48
+
49
+ /**
50
+ * Open modal.
51
+ */
52
  open: function( galleryID ) {
53
  if ( typeof galleryID === 'undefined' )
54
  var galleryID = 0;
58
  $( this.primaryButtonClass ).show();
59
  $( this.secondaryButtonClass ).hide();
60
 
61
+ // reset filters?
62
  if ( this.resetFilters ) {
63
  phrase = '';
64
 
79
  // get galleries
80
  this.getGalleries( phrase, galleryID );
81
  },
82
+
83
+ /**
84
+ * Close modal.
85
+ */
86
  close: function( event ) {
87
  event.preventDefault();
88
 
89
  this.modal.hide();
90
  },
 
 
 
 
 
 
91
 
92
+ /**
93
+ * Calculate column width.
94
+ */
95
+ setColumns: function() {
96
+ var list = this.modal.find( '.rl-galleries-list' );
97
+ var listWidth = list.width();
98
+ var content = this.modal.find( '.media-frame-content' );
99
+ var columns = parseInt( content.attr( 'data-columns' ) );
100
+ var oldColumns = newColumns = columns;
101
+
102
+ if ( listWidth ) {
103
+ // get sidebar width
104
  var width = this.modal.find( '.media-sidebar' ).outerWidth() + 'px';
105
 
106
+ // set attachment list new width
107
  list.css( 'right', width );
108
+
109
+ // do the same for primary toolbar
110
  this.modal.find( '.attachments-browser .media-toolbar' ).css( 'right', width );
 
111
 
112
+ // calculate new columns number
113
+ newColumns = Math.min( Math.round( listWidth / 170 ), 12 ) || 1;
114
+
115
+ // set new columns number
116
+ if ( ! oldColumns || oldColumns !== newColumns )
117
+ content.attr( 'data-columns', newColumns );
118
  }
119
  },
120
+
121
+ /**
122
+ * Click gallery event handler.
123
+ */
124
  handleClickGallery: function( event ) {
125
  event.preventDefault();
126
 
127
+ var gallery = $( event.target ).closest( 'li' );
128
+
129
+ // set current gallery id
130
+ this.currentGalleryID = parseInt( gallery.data( 'id' ) );
131
 
132
+ // clicked different gallery?
133
+ if ( this.lastGalleryID !== this.currentGalleryID ) {
134
  gallery.parent().find( 'li' ).removeClass( 'selected details' );
135
 
136
+ this.lastGalleryID = this.currentGalleryID;
137
 
138
  // get full source image
139
  var fullSource = gallery.find( '.centered' ).data( 'full-src' );
146
 
147
  gallery.addClass( 'selected details' );
148
 
149
+ this.clickGallery( this.currentGalleryID, false );
150
  } else {
151
+ // already selected?
152
  if ( gallery.hasClass( 'selected details' ) ) {
153
+ // unselect gallery
154
+ this.currentGalleryID = 0;
155
+
156
  gallery.removeClass( 'selected details' );
157
 
158
+ this.clickGallery( this.currentGalleryID, true );
159
  } else {
160
  gallery.addClass( 'selected details' );
161
 
162
+ this.clickGallery( this.currentGalleryID, false );
163
  }
164
  }
165
  },
166
+
167
+ /**
168
+ * Load gallery thumbnails from cache or via AJAX.
169
+ */
170
  clickGallery: function( gallery_id, toggle ) {
171
  var _this = this;
172
 
178
  // clear images
179
  _this.modal.find( '.rl-attachments-list' ).empty();
180
 
181
+ if ( _this.galleries[gallery_id].inProgress ) {
182
+ // display spinner
183
+ _this.toggleSpinner( true );
184
+
185
+ return;
186
+ }
187
+
188
  // load cached images
189
+ if ( _this.galleries[gallery_id].ready ) {
190
+ // hide spinner
191
+ _this.toggleSpinner( false );
192
+
193
  // update images
194
+ _this.updateGalleryPreview( _this.galleries[gallery_id].data, false );
195
  // get images for the first time
196
  } else {
 
 
 
197
  // display spinner
198
+ _this.toggleSpinner( true );
199
 
200
+ // set in progress flag
201
+ _this.galleries[gallery_id].inProgress = true;
202
 
203
  $.post( ajaxurl, {
204
  action: 'rl-post-gallery-preview',
210
  try {
211
  if ( response.success ) {
212
  // store gallery data
213
+ _this.galleries[gallery_id].data = response.data;
214
+
215
+ // set ready flag
216
+ _this.galleries[gallery_id].ready = true;
217
 
218
+ // same gallery?
219
+ if ( _this.currentGalleryID === gallery_id ) {
220
+ // update gallery data
221
+ _this.updateGalleryPreview( _this.galleries[gallery_id].data, true );
222
+ }
223
  } else {
224
+ // set ready flag
225
+ _this.galleries[gallery_id].ready = false;
226
  }
227
  } catch( e ) {
228
+ // set ready flag
229
+ _this.galleries[gallery_id].ready = false;
230
  }
231
+ } ).fail( function() {
232
+ // set ready flag
233
+ _this.galleries[gallery_id].ready = false;
234
  } ).always( function() {
235
+ // set in progress flag
236
+ _this.galleries[gallery_id].inProgress = false;
237
 
238
+ // same gallery?
239
+ if ( _this.currentGalleryID === gallery_id ) {
240
+ // hide spinner
241
+ _this.toggleSpinner( false );
242
+ }
243
  } );
244
  }
245
  }
246
  },
247
+
248
+ /**
249
+ * Select gallery (block editor).
250
+ */
251
  selectGallery: function( event ) {
252
  event.preventDefault();
253
 
256
 
257
  this.modal.hide();
258
  },
259
+
260
+ /**
261
+ * Insert gallery (classic editor).
262
+ */
263
  insertGallery: function( event ) {
264
  event.preventDefault();
265
 
267
  return;
268
 
269
  var shortcode = '[rl_gallery id="' + this.lastGalleryID + '"]';
270
+ var editor = tinyMCE.get( 'content' );
271
 
272
  if ( editor && ! editor.isHidden() )
273
  editor.execCommand( 'mceInsertContent', false, shortcode );
276
 
277
  this.modal.hide();
278
  },
279
+
280
+ /**
281
+ * Load galleries.
282
+ */
283
  getGalleries: function( search, galleryID ) {
284
+ var modal = this.modal;
285
+ var spinner = $( '.rl-gallery-reload-spinner' );
286
+ var galleries = modal.find( '.rl-galleries-list' );
287
+ var _this = this;
288
 
289
  // clear galleries
290
  galleries.empty();
309
  } ).done( function( response ) {
310
  try {
311
  if ( response.success ) {
312
+ if ( response.data.html !== '' ) {
313
  modal.find( '.rl-no-galleries' ).hide();
314
+ modal.find( '.rl-galleries-list' ).empty().append( response.data.html );
315
+
316
+ // set up galleries
317
+ response.data.galleries.forEach( function( gallery_id ) {
318
+ _this.galleries[gallery_id] = {
319
+ 'inProgress': false,
320
+ 'ready': false,
321
+ 'data': {}
322
+ };
323
+ } );
324
+
325
+ // select gallery
326
  if ( galleryID !== 0 )
327
  galleries.find( 'li[data-id="' + galleryID + '"] .js--select-attachment' ).trigger( 'click' );
328
  } else
338
  spinner.fadeOut( 'fast' );
339
  } );
340
  },
341
+
342
+ /**
343
+ * Toggle spinner.
344
+ */
345
+ toggleSpinner: function( display ) {
346
+ var spinner = this.modal.find( '.rl-gallery-images-spinner' );
347
+ var info = this.modal.find( '.selection-info' );
348
+
349
+ if ( display ) {
350
+ // display spinner
351
+ spinner.fadeIn( 'fast' ).css( 'visibility', 'visible' );
352
+
353
+ // turn off info
354
+ info.addClass( 'rl-loading-content' );
355
+ } else {
356
+ // hide spinner
357
+ spinner.fadeOut( 'fast' );
358
+
359
+ // turn on info
360
+ info.removeClass( 'rl-loading-content' );
361
+ }
362
+ },
363
+
364
+ /**
365
+ * Clear and load maximum 20 gallery thumbnails.
366
+ */
367
  updateGalleryPreview: function( gallery, animate ) {
368
  // update gallery attachments
369
+ this.modal.find( '.rl-attachments-list' ).empty().append( gallery.attachments ).fadeOut( 0 ).delay( animate? 'fast' : 0 ).fadeIn( 0 );
370
 
371
  // update number of images in gallery
372
  this.modal.find( '.rl-gallery-count' ).text( gallery.count );
377
  else
378
  this.modal.find( '.rl-edit-gallery-link' ).addClass( 'hidden' ).attr( 'href', '' );
379
  },
380
+
381
+ /**
382
+ * Reload galleries.
383
+ */
384
  reloadGalleries: function( event ) {
385
  event.preventDefault();
386
 
396
  // load galleries
397
  this.getGalleries( $( '#rl-media-search-input' ).val(), 0 );
398
  },
399
+
400
+ /**
401
+ * Bind all events.
402
+ */
403
  bindEvents: function() {
404
  var _this = this;
405
 
js/front.js CHANGED
@@ -148,7 +148,6 @@
148
  nonce: rlArgs.nonce,
149
  preview: rlArgs.preview
150
  } ).done( function( response ) {
151
- console.log( response );
152
  // replace container with new content
153
  container.replaceWith( $( response ).removeClass( 'rl-loading' ) );
154
 
@@ -553,7 +552,7 @@
553
  quitOnDocClick: ( args.quitOnDocumentClick === '1' ? true : false ),
554
  onLoadEnd: function() {
555
  lastImage = $( '#imagelightbox' ).attr( 'src' );
556
-
557
  // trigger image view
558
  rl_view_image( script, lastImage );
559
  },
148
  nonce: rlArgs.nonce,
149
  preview: rlArgs.preview
150
  } ).done( function( response ) {
 
151
  // replace container with new content
152
  container.replaceWith( $( response ).removeClass( 'rl-loading' ) );
153
 
552
  quitOnDocClick: ( args.quitOnDocumentClick === '1' ? true : false ),
553
  onLoadEnd: function() {
554
  lastImage = $( '#imagelightbox' ).attr( 'src' );
555
+
556
  // trigger image view
557
  rl_view_image( script, lastImage );
558
  },
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: dfactory
3
  Donate link: http://www.dfactory.eu/
4
  Tags: gallery, galleries, image, images, responsive, lightbox, photo, photography, masonry, video, builder
5
  Requires at least: 5.0
6
- Tested up to: 5.9
7
- Stable tag: 2.3.4
8
  Requires PHP: 5.3.0
9
  License: MIT License
10
  License URI: http://opensource.org/licenses/MIT
@@ -139,6 +139,12 @@ Responsive Lightbox and Gallery plugin comes with many styles and effects alread
139
 
140
  == Changelog ==
141
 
 
 
 
 
 
 
142
  = 2.3.4 =
143
  * New: WordPress 5.9 compatibility
144
  * Fix: Adding new images to existing galleries
@@ -477,5 +483,8 @@ Initial release
477
 
478
  == Upgrade Notice ==
479
 
480
- = 2.3.4 =
481
- * New: WordPress 5.9 compatibility and multiple bugfixes release
 
 
 
3
  Donate link: http://www.dfactory.eu/
4
  Tags: gallery, galleries, image, images, responsive, lightbox, photo, photography, masonry, video, builder
5
  Requires at least: 5.0
6
+ Tested up to: 5.9.1
7
+ Stable tag: 2.3.5
8
  Requires PHP: 5.3.0
9
  License: MIT License
10
  License URI: http://opensource.org/licenses/MIT
139
 
140
  == Changelog ==
141
 
142
+ = 2.3.5 =
143
+ * Fix: Insert gallery double preview
144
+ * Tweak: Display of horizontal / vertical igallery images
145
+ * Tweak: Improved gallery images loading performance
146
+ * Tweak: Add gallery number of images displayed
147
+
148
  = 2.3.4 =
149
  * New: WordPress 5.9 compatibility
150
  * Fix: Adding new images to existing galleries
483
 
484
  == Upgrade Notice ==
485
 
486
+ = 2.3.5 =
487
+ * Fix: Insert gallery double preview
488
+ * Tweak: Display of horizontal / vertical igallery images
489
+ * Tweak: Improved gallery images loading performance
490
+ * Tweak: Add gallery number of images displayed
responsive-lightbox.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Responsive Lightbox & Gallery
4
  Description: Responsive Lightbox & Gallery allows users to create galleries and view larger versions of images, galleries and videos in a lightbox (overlay) effect optimized for mobile devices.
5
- Version: 2.3.4
6
  Author: dFactory
7
  Author URI: http://www.dfactory.eu/
8
  Plugin URI: http://www.dfactory.eu/plugins/responsive-lightbox/
@@ -43,7 +43,7 @@ include_once( RESPONSIVE_LIGHTBOX_PATH . 'includes' . DIRECTORY_SEPARATOR . 'fun
43
  * Responsive Lightbox class.
44
  *
45
  * @class Responsive_Lightbox
46
- * @version 2.3.3
47
  */
48
  class Responsive_Lightbox {
49
 
@@ -304,7 +304,7 @@ class Responsive_Lightbox {
304
  'origin_left' => true,
305
  'origin_top' => true
306
  ),
307
- 'version' => '2.3.4',
308
  'activation_date' => ''
309
  );
310
  public $options = array();
@@ -331,7 +331,7 @@ class Responsive_Lightbox {
331
  private static $_instance;
332
 
333
  /**
334
- * Constructor.
335
  *
336
  * @return void
337
  */
2
  /*
3
  Plugin Name: Responsive Lightbox & Gallery
4
  Description: Responsive Lightbox & Gallery allows users to create galleries and view larger versions of images, galleries and videos in a lightbox (overlay) effect optimized for mobile devices.
5
+ Version: 2.3.5
6
  Author: dFactory
7
  Author URI: http://www.dfactory.eu/
8
  Plugin URI: http://www.dfactory.eu/plugins/responsive-lightbox/
43
  * Responsive Lightbox class.
44
  *
45
  * @class Responsive_Lightbox
46
+ * @version 2.3.5
47
  */
48
  class Responsive_Lightbox {
49
 
304
  'origin_left' => true,
305
  'origin_top' => true
306
  ),
307
+ 'version' => '2.3.5',
308
  'activation_date' => ''
309
  );
310
  public $options = array();
331
  private static $_instance;
332
 
333
  /**
334
+ * Class constructor.
335
  *
336
  * @return void
337
  */