vgapp 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/README.md +48 -48
  3. package/app/langs/en/buttons.json +17 -17
  4. package/app/langs/en/messages.json +36 -36
  5. package/app/langs/ru/buttons.json +17 -17
  6. package/app/langs/ru/messages.json +36 -36
  7. package/app/modules/vgfilepreview/js/i18n.js +56 -56
  8. package/app/modules/vgfilepreview/js/renderers/image-modal.js +145 -145
  9. package/app/modules/vgfilepreview/js/renderers/image.js +92 -92
  10. package/app/modules/vgfilepreview/js/renderers/index.js +19 -19
  11. package/app/modules/vgfilepreview/js/renderers/office-modal.js +168 -168
  12. package/app/modules/vgfilepreview/js/renderers/office.js +79 -79
  13. package/app/modules/vgfilepreview/js/renderers/pdf-modal.js +260 -260
  14. package/app/modules/vgfilepreview/js/renderers/pdf.js +76 -76
  15. package/app/modules/vgfilepreview/js/renderers/playlist.js +71 -71
  16. package/app/modules/vgfilepreview/js/renderers/text-modal.js +343 -343
  17. package/app/modules/vgfilepreview/js/renderers/text.js +83 -83
  18. package/app/modules/vgfilepreview/js/renderers/video-modal.js +272 -272
  19. package/app/modules/vgfilepreview/js/renderers/video.js +80 -80
  20. package/app/modules/vgfilepreview/js/renderers/zip-modal.js +522 -522
  21. package/app/modules/vgfilepreview/js/renderers/zip.js +89 -89
  22. package/app/modules/vgfilepreview/js/vgfilepreview.js +7 -7
  23. package/app/modules/vgfilepreview/readme.md +68 -68
  24. package/app/modules/vgfilepreview/scss/_variables.scss +113 -113
  25. package/app/modules/vgfilepreview/scss/vgfilepreview.scss +464 -464
  26. package/app/modules/vgfiles/js/base.js +26 -26
  27. package/app/modules/vgfiles/js/droppable.js +260 -260
  28. package/app/modules/vgfiles/js/render.js +153 -153
  29. package/app/modules/vgfiles/js/vgfiles.js +41 -41
  30. package/app/modules/vgfiles/readme.md +123 -123
  31. package/app/modules/vgfiles/scss/_variables.scss +18 -18
  32. package/app/modules/vgfiles/scss/vgfiles.scss +148 -148
  33. package/app/modules/vgformsender/js/vgformsender.js +1 -1
  34. package/app/modules/vgmodal/js/vgmodal.drag.js +332 -332
  35. package/app/modules/vgmodal/js/vgmodal.js +33 -33
  36. package/app/modules/vgmodal/js/vgmodal.resize.js +435 -435
  37. package/app/modules/vgnav/js/vgnav.js +135 -135
  38. package/app/modules/vgnav/readme.md +67 -67
  39. package/app/modules/vgnestable/README.md +307 -307
  40. package/app/modules/vgnestable/scss/_variables.scss +60 -60
  41. package/app/modules/vgnestable/scss/vgnestable.scss +163 -163
  42. package/app/modules/vgselect/js/vgselect.js +39 -39
  43. package/app/modules/vgselect/scss/vgselect.scss +22 -22
  44. package/app/modules/vgspy/readme.md +28 -28
  45. package/app/utils/js/components/audio-metadata.js +240 -240
  46. package/app/utils/js/components/file-icon.js +109 -109
  47. package/app/utils/js/components/file-preview.js +304 -304
  48. package/app/utils/js/components/sanitize.js +150 -150
  49. package/app/utils/js/components/video-metadata.js +140 -140
  50. package/build/vgapp.css +1 -1
  51. package/build/vgapp.css.map +1 -1
  52. package/build/vgapp.js.map +1 -1
  53. package/index.scss +9 -9
  54. package/package.json +1 -1
@@ -1,464 +1,464 @@
1
- /**
2
- *--------------------------------------------------------------------------
3
- * Модуль: VGFilePreview
4
- * Автор: Vegas DEV
5
- * Лицензия: смотри LICENSE
6
- *--------------------------------------------------------------------------
7
- **/
8
-
9
- @import "../../../utils/scss/functions";
10
- @import "../../../utils/scss/mixin";
11
- @import "../../../utils/scss/variables";
12
- @import "variables";
13
-
14
- %vg-filepreview-vars {
15
- @include mix-vars('filepreview', $filepreview-map);
16
- }
17
-
18
- @mixin filepreview-trigger($bg) {
19
- border: 0;
20
- cursor: pointer;
21
- border-radius: var(--vg-filepreview-trigger-radius);
22
- padding: var(--vg-filepreview-trigger-padding);
23
- font-size: var(--vg-filepreview-trigger-font-size);
24
- font-weight: var(--vg-filepreview-trigger-font-weight);
25
- background: $bg;
26
- color: var(--vg-filepreview-trigger-color);
27
- }
28
-
29
- .is-preview-action {
30
- cursor: pointer;
31
- }
32
-
33
- .vg-filepreview-audio-inline {
34
- @extend %vg-filepreview-vars;
35
- display: inline-flex;
36
- align-items: center;
37
- gap: 8px;
38
- min-width: 0;
39
-
40
- &__toggle {
41
- display: inline-flex;
42
- align-items: center;
43
- justify-content: center;
44
- width: var(--vg-filepreview-audio-inline-toggle-size);
45
- height: var(--vg-filepreview-audio-inline-toggle-size);
46
- border: 0;
47
- border-radius: var(--vg-filepreview-audio-inline-toggle-radius);
48
- background: var(--vg-filepreview-audio-inline-toggle-bg);
49
- color: var(--vg-filepreview-audio-inline-toggle-color);
50
- cursor: pointer;
51
- padding: 0;
52
- flex: 0 0 auto;
53
- }
54
-
55
- &__icon {
56
- display: inline-flex;
57
- align-items: center;
58
- justify-content: center;
59
-
60
- svg {
61
- width: var(--vg-filepreview-audio-inline-icon-size);
62
- height: var(--vg-filepreview-audio-inline-icon-size);
63
- }
64
- }
65
-
66
- &__name {
67
- line-height: var(--vg-filepreview-audio-inline-name-line-height);
68
- white-space: nowrap;
69
- overflow: hidden;
70
- text-overflow: ellipsis;
71
- }
72
- }
73
-
74
- .vg-filepreview-image-modal,
75
- .vg-filepreview-text-modal,
76
- .vg-filepreview-video-modal,
77
- .vg-filepreview-zip-modal {
78
- @extend %vg-filepreview-vars;
79
-
80
- .vg-modal-content {
81
- background: var(--vg-filepreview-modal-content-bg);
82
- color: var(--vg-filepreview-modal-content-color);
83
- }
84
-
85
- .vg-btn-close {
86
- top: var(--vg-filepreview-modal-close-top);
87
- right: var(--vg-filepreview-modal-close-right);
88
- }
89
- }
90
-
91
- .vg-filepreview-image-modal {
92
- &__body {
93
- display: flex;
94
- flex-direction: column;
95
- align-items: center;
96
- justify-content: center;
97
- gap: var(--vg-filepreview-image-body-gap);
98
- padding: var(--vg-filepreview-modal-body-padding);
99
- }
100
-
101
- &__title {
102
- color: var(--vg-filepreview-panel-color);
103
- font-size: var(--vg-filepreview-modal-title-size);
104
- font-weight: var(--vg-filepreview-modal-title-weight);
105
- line-height: var(--vg-filepreview-modal-title-line-height);
106
- width: 100%;
107
- text-align: center;
108
- white-space: nowrap;
109
- overflow: hidden;
110
- text-overflow: ellipsis;
111
- }
112
-
113
- &__img {
114
- display: block;
115
- max-width: var(--vg-filepreview-image-img-max-width);
116
- max-height: var(--vg-filepreview-image-img-max-height);
117
- width: auto;
118
- height: auto;
119
- object-fit: contain;
120
- border-radius: var(--vg-filepreview-image-img-radius);
121
- }
122
- }
123
-
124
- .vg-filepreview-image-trigger {
125
- @extend %vg-filepreview-vars;
126
- @include filepreview-trigger(var(--vg-filepreview-trigger-image-bg));
127
- }
128
-
129
- .vg-filepreview-image-thumb {
130
- @extend %vg-filepreview-vars;
131
- display: block;
132
- margin-top: var(--vg-filepreview-image-thumb-margin-top);
133
- max-width: var(--vg-filepreview-image-thumb-max-width);
134
- max-height: var(--vg-filepreview-image-thumb-max-height);
135
- width: auto;
136
- height: auto;
137
- border-radius: var(--vg-filepreview-image-thumb-radius);
138
- cursor: pointer;
139
- object-fit: cover;
140
- }
141
-
142
- .vg-filepreview-text-modal,
143
- .vg-filepreview-video-modal,
144
- .vg-filepreview-zip-modal {
145
- &__body {
146
- padding: var(--vg-filepreview-modal-body-padding);
147
- }
148
-
149
- &__title {
150
- color: var(--vg-filepreview-panel-color);
151
- font-size: var(--vg-filepreview-modal-title-size);
152
- font-weight: var(--vg-filepreview-modal-title-weight);
153
- line-height: var(--vg-filepreview-modal-title-line-height);
154
- margin-bottom: var(--vg-filepreview-modal-title-margin-bottom);
155
- white-space: nowrap;
156
- overflow: hidden;
157
- text-overflow: ellipsis;
158
- }
159
- }
160
-
161
- .vg-filepreview-text-modal {
162
- &__content {
163
- margin: 0;
164
- padding: var(--vg-filepreview-text-content-padding);
165
- max-height: var(--vg-filepreview-text-content-max-height);
166
- overflow: auto;
167
- background: var(--vg-filepreview-text-content-bg);
168
- border-radius: var(--vg-filepreview-text-content-radius);
169
- font-size: var(--vg-filepreview-text-content-font-size);
170
- line-height: var(--vg-filepreview-text-content-line-height);
171
- white-space: pre-wrap;
172
- word-break: break-word;
173
-
174
- &.is-markdown {
175
- white-space: normal;
176
-
177
- h1,
178
- h2,
179
- h3,
180
- h4,
181
- h5,
182
- h6 {
183
- margin: var(--vg-filepreview-text-markdown-block-margin);
184
- line-height: var(--vg-filepreview-text-markdown-heading-line-height);
185
- }
186
-
187
- p {
188
- margin: var(--vg-filepreview-text-markdown-block-margin);
189
- }
190
-
191
- ul {
192
- margin: var(--vg-filepreview-text-markdown-list-margin);
193
- padding: 0;
194
- }
195
-
196
- pre {
197
- margin: var(--vg-filepreview-text-markdown-block-margin);
198
- padding: var(--vg-filepreview-text-markdown-code-padding);
199
- border-radius: var(--vg-filepreview-text-markdown-code-radius);
200
- background: var(--vg-filepreview-text-markdown-code-bg);
201
- overflow: auto;
202
- }
203
-
204
- a {
205
- color: var(--vg-filepreview-text-markdown-link-color);
206
- }
207
- }
208
- }
209
- }
210
-
211
- .vg-filepreview-text-trigger {
212
- @extend %vg-filepreview-vars;
213
- @include filepreview-trigger(var(--vg-filepreview-trigger-text-bg));
214
- }
215
-
216
- .vg-filepreview-video-modal {
217
- &__video {
218
- display: block;
219
- width: var(--vg-filepreview-video-player-width);
220
- max-height: var(--vg-filepreview-video-player-max-height);
221
- height: auto;
222
- border-radius: var(--vg-filepreview-video-player-radius);
223
- background: var(--vg-filepreview-video-player-bg);
224
- }
225
-
226
- .vg-modal-header {
227
- display: flex;
228
- gap: 1rem;
229
- }
230
- }
231
-
232
- .vg-filepreview-video-trigger {
233
- @extend %vg-filepreview-vars;
234
- @include filepreview-trigger(var(--vg-filepreview-trigger-video-bg));
235
- }
236
-
237
- .vg-filepreview-zip-modal {
238
- &__content {
239
- max-height: var(--vg-filepreview-zip-content-max-height);
240
- overflow: auto;
241
- background: var(--vg-filepreview-zip-content-bg);
242
- border-radius: var(--vg-filepreview-zip-content-radius);
243
- padding: var(--vg-filepreview-zip-content-padding);
244
- }
245
-
246
- &__table {
247
- width: 100%;
248
- border-collapse: collapse;
249
- font-size: var(--vg-filepreview-zip-table-font-size);
250
-
251
- th,
252
- td {
253
- padding: var(--vg-filepreview-zip-table-cell-padding);
254
- border-bottom: var(--vg-filepreview-zip-table-border);
255
- text-align: left;
256
- vertical-align: top;
257
- }
258
-
259
- td.name {
260
- word-break: break-word;
261
- }
262
- }
263
-
264
- &__loading,
265
- &__error,
266
- &__empty {
267
- font-size: var(--vg-filepreview-zip-status-font-size);
268
- }
269
- }
270
-
271
- .vg-filepreview-zip-trigger {
272
- @extend %vg-filepreview-vars;
273
- @include filepreview-trigger(var(--vg-filepreview-trigger-zip-bg));
274
- }
275
-
276
- .vg-filepreview-pdf-trigger,
277
- .vg-filepreview-office-trigger,
278
- .vg-filepreview-download-trigger {
279
- @extend %vg-filepreview-vars;
280
- @include filepreview-trigger(var(--vg-filepreview-trigger-text-bg));
281
- display: inline-flex;
282
- align-items: center;
283
- gap: 6px;
284
-
285
- &__icon {
286
- display: inline-flex;
287
- align-items: center;
288
-
289
- svg {
290
- width: 14px;
291
- height: 14px;
292
- }
293
- }
294
- }
295
-
296
- .vg-filepreview-video-modal__navigation {
297
- display: inline-flex;
298
- gap: 8px;
299
- }
300
-
301
- .vg-filepreview-video-modal__nav-btn {
302
- border: 0;
303
- border-radius: 8px;
304
- padding: 6px 10px;
305
- font-size: 12px;
306
- font-weight: 600;
307
- cursor: pointer;
308
- background: rgba(255, 255, 255, .12);
309
- color: var(--vg-filepreview-panel-color);
310
- }
311
-
312
- .vg-filepreview-pdf-modal,
313
- .vg-filepreview-office-modal {
314
- @extend %vg-filepreview-vars;
315
-
316
- .vg-modal-content {
317
- background: var(--vg-filepreview-modal-content-bg);
318
- color: var(--vg-filepreview-modal-content-color);
319
- }
320
-
321
- .vg-btn-close {
322
- top: var(--vg-filepreview-modal-close-top);
323
- right: var(--vg-filepreview-modal-close-right);
324
- }
325
-
326
- &__body {
327
- padding: var(--vg-filepreview-modal-body-padding);
328
- }
329
-
330
- &__title {
331
- color: var(--vg-filepreview-panel-color);
332
- font-size: var(--vg-filepreview-modal-title-size);
333
- font-weight: var(--vg-filepreview-modal-title-weight);
334
- line-height: var(--vg-filepreview-modal-title-line-height);
335
- margin-bottom: var(--vg-filepreview-modal-title-margin-bottom);
336
- white-space: nowrap;
337
- overflow: hidden;
338
- text-overflow: ellipsis;
339
- }
340
- }
341
-
342
- .vg-filepreview-pdf-modal {
343
- &__toolbar {
344
- display: flex;
345
- align-items: center;
346
- flex-wrap: wrap;
347
- gap: var(--vg-filepreview-pdf-toolbar-gap);
348
- margin-bottom: var(--vg-filepreview-pdf-toolbar-margin-bottom);
349
- }
350
-
351
- &__btn {
352
- border: 0;
353
- border-radius: var(--vg-filepreview-pdf-btn-radius);
354
- padding: var(--vg-filepreview-pdf-btn-padding);
355
- font-size: var(--vg-filepreview-pdf-btn-font-size);
356
- font-weight: var(--vg-filepreview-pdf-btn-font-weight);
357
- cursor: pointer;
358
- background: var(--vg-filepreview-pdf-btn-bg);
359
- color: var(--vg-filepreview-panel-color);
360
- }
361
-
362
- &__meta {
363
- font-size: var(--vg-filepreview-pdf-meta-font-size);
364
- opacity: var(--vg-filepreview-pdf-meta-opacity);
365
- }
366
-
367
- &__frame {
368
- display: block;
369
- width: var(--vg-filepreview-pdf-frame-width);
370
- height: var(--vg-filepreview-pdf-frame-height);
371
- border: 0;
372
- border-radius: var(--vg-filepreview-pdf-frame-radius);
373
- background: var(--vg-filepreview-pdf-frame-bg);
374
- }
375
- }
376
-
377
- .vg-filepreview-office-modal {
378
- &__frame {
379
- display: block;
380
- width: var(--vg-filepreview-office-frame-width);
381
- height: var(--vg-filepreview-office-frame-height);
382
- border: 0;
383
- border-radius: var(--vg-filepreview-office-frame-radius);
384
- background: var(--vg-filepreview-office-frame-bg);
385
- }
386
-
387
- &__footer {
388
- display: flex;
389
- align-items: center;
390
- justify-content: space-between;
391
- gap: var(--vg-filepreview-office-footer-gap);
392
- margin-top: var(--vg-filepreview-office-footer-margin-top);
393
- }
394
-
395
- &__hint {
396
- font-size: var(--vg-filepreview-office-hint-font-size);
397
- opacity: var(--vg-filepreview-office-hint-opacity);
398
- }
399
-
400
- &__btn {
401
- border: 0;
402
- border-radius: var(--vg-filepreview-office-btn-radius);
403
- padding: var(--vg-filepreview-office-btn-padding);
404
- font-size: var(--vg-filepreview-office-btn-font-size);
405
- font-weight: var(--vg-filepreview-office-btn-font-weight);
406
- cursor: pointer;
407
- background: var(--vg-filepreview-office-btn-bg);
408
- color: var(--vg-filepreview-panel-color);
409
- }
410
- }
411
-
412
- .vg-filepreview-zip-modal {
413
- &__entry-btn {
414
- border: 0;
415
- border-radius: 6px;
416
- padding: 4px 8px;
417
- font-size: 11px;
418
- cursor: pointer;
419
- background: rgba(255, 255, 255, .12);
420
- color: var(--vg-filepreview-panel-color);
421
- }
422
-
423
- &__entry-preview {
424
- margin-top: 10px;
425
- padding-top: 10px;
426
- border-top: var(--vg-filepreview-zip-table-border);
427
- }
428
-
429
- &__entry-preview-title {
430
- font-size: 12px;
431
- font-weight: 600;
432
- margin-bottom: 8px;
433
- word-break: break-all;
434
- }
435
-
436
- &__entry-preview-text {
437
- margin: 0;
438
- padding: 10px;
439
- border-radius: 8px;
440
- background: rgba(255, 255, 255, .08);
441
- white-space: pre-wrap;
442
- word-break: break-word;
443
- }
444
-
445
- &__entry-preview-image {
446
- display: block;
447
- max-width: 100%;
448
- max-height: 360px;
449
- border-radius: 8px;
450
- }
451
-
452
- &__content {
453
- width: 100%;
454
- }
455
- }
456
-
457
- [data-vg-filepreview-state="loading"] .preview {
458
- opacity: .72;
459
- }
460
-
461
- [data-vg-filepreview-state="error"] .preview,
462
- [data-vg-filepreview-state="empty"] .preview {
463
- opacity: .9;
464
- }
1
+ /**
2
+ *--------------------------------------------------------------------------
3
+ * Модуль: VGFilePreview
4
+ * Автор: Vegas DEV
5
+ * Лицензия: смотри LICENSE
6
+ *--------------------------------------------------------------------------
7
+ **/
8
+
9
+ @import "../../../utils/scss/functions";
10
+ @import "../../../utils/scss/mixin";
11
+ @import "../../../utils/scss/variables";
12
+ @import "variables";
13
+
14
+ %vg-filepreview-vars {
15
+ @include mix-vars('filepreview', $filepreview-map);
16
+ }
17
+
18
+ @mixin filepreview-trigger($bg) {
19
+ border: 0;
20
+ cursor: pointer;
21
+ border-radius: var(--vg-filepreview-trigger-radius);
22
+ padding: var(--vg-filepreview-trigger-padding);
23
+ font-size: var(--vg-filepreview-trigger-font-size);
24
+ font-weight: var(--vg-filepreview-trigger-font-weight);
25
+ background: $bg;
26
+ color: var(--vg-filepreview-trigger-color);
27
+ }
28
+
29
+ .is-preview-action {
30
+ cursor: pointer;
31
+ }
32
+
33
+ .vg-filepreview-audio-inline {
34
+ @extend %vg-filepreview-vars;
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 8px;
38
+ min-width: 0;
39
+
40
+ &__toggle {
41
+ display: inline-flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ width: var(--vg-filepreview-audio-inline-toggle-size);
45
+ height: var(--vg-filepreview-audio-inline-toggle-size);
46
+ border: 0;
47
+ border-radius: var(--vg-filepreview-audio-inline-toggle-radius);
48
+ background: var(--vg-filepreview-audio-inline-toggle-bg);
49
+ color: var(--vg-filepreview-audio-inline-toggle-color);
50
+ cursor: pointer;
51
+ padding: 0;
52
+ flex: 0 0 auto;
53
+ }
54
+
55
+ &__icon {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+
60
+ svg {
61
+ width: var(--vg-filepreview-audio-inline-icon-size);
62
+ height: var(--vg-filepreview-audio-inline-icon-size);
63
+ }
64
+ }
65
+
66
+ &__name {
67
+ line-height: var(--vg-filepreview-audio-inline-name-line-height);
68
+ white-space: nowrap;
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ }
72
+ }
73
+
74
+ .vg-filepreview-image-modal,
75
+ .vg-filepreview-text-modal,
76
+ .vg-filepreview-video-modal,
77
+ .vg-filepreview-zip-modal {
78
+ @extend %vg-filepreview-vars;
79
+
80
+ .vg-modal-content {
81
+ background: var(--vg-filepreview-modal-content-bg);
82
+ color: var(--vg-filepreview-modal-content-color);
83
+ }
84
+
85
+ .vg-btn-close {
86
+ top: var(--vg-filepreview-modal-close-top);
87
+ right: var(--vg-filepreview-modal-close-right);
88
+ }
89
+ }
90
+
91
+ .vg-filepreview-image-modal {
92
+ &__body {
93
+ display: flex;
94
+ flex-direction: column;
95
+ align-items: center;
96
+ justify-content: center;
97
+ gap: var(--vg-filepreview-image-body-gap);
98
+ padding: var(--vg-filepreview-modal-body-padding);
99
+ }
100
+
101
+ &__title {
102
+ color: var(--vg-filepreview-panel-color);
103
+ font-size: var(--vg-filepreview-modal-title-size);
104
+ font-weight: var(--vg-filepreview-modal-title-weight);
105
+ line-height: var(--vg-filepreview-modal-title-line-height);
106
+ width: 100%;
107
+ text-align: center;
108
+ white-space: nowrap;
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ }
112
+
113
+ &__img {
114
+ display: block;
115
+ max-width: var(--vg-filepreview-image-img-max-width);
116
+ max-height: var(--vg-filepreview-image-img-max-height);
117
+ width: auto;
118
+ height: auto;
119
+ object-fit: contain;
120
+ border-radius: var(--vg-filepreview-image-img-radius);
121
+ }
122
+ }
123
+
124
+ .vg-filepreview-image-trigger {
125
+ @extend %vg-filepreview-vars;
126
+ @include filepreview-trigger(var(--vg-filepreview-trigger-image-bg));
127
+ }
128
+
129
+ .vg-filepreview-image-thumb {
130
+ @extend %vg-filepreview-vars;
131
+ display: block;
132
+ margin-top: var(--vg-filepreview-image-thumb-margin-top);
133
+ max-width: var(--vg-filepreview-image-thumb-max-width);
134
+ max-height: var(--vg-filepreview-image-thumb-max-height);
135
+ width: auto;
136
+ height: auto;
137
+ border-radius: var(--vg-filepreview-image-thumb-radius);
138
+ cursor: pointer;
139
+ object-fit: cover;
140
+ }
141
+
142
+ .vg-filepreview-text-modal,
143
+ .vg-filepreview-video-modal,
144
+ .vg-filepreview-zip-modal {
145
+ &__body {
146
+ padding: var(--vg-filepreview-modal-body-padding);
147
+ }
148
+
149
+ &__title {
150
+ color: var(--vg-filepreview-panel-color);
151
+ font-size: var(--vg-filepreview-modal-title-size);
152
+ font-weight: var(--vg-filepreview-modal-title-weight);
153
+ line-height: var(--vg-filepreview-modal-title-line-height);
154
+ margin-bottom: var(--vg-filepreview-modal-title-margin-bottom);
155
+ white-space: nowrap;
156
+ overflow: hidden;
157
+ text-overflow: ellipsis;
158
+ }
159
+ }
160
+
161
+ .vg-filepreview-text-modal {
162
+ &__content {
163
+ margin: 0;
164
+ padding: var(--vg-filepreview-text-content-padding);
165
+ max-height: var(--vg-filepreview-text-content-max-height);
166
+ overflow: auto;
167
+ background: var(--vg-filepreview-text-content-bg);
168
+ border-radius: var(--vg-filepreview-text-content-radius);
169
+ font-size: var(--vg-filepreview-text-content-font-size);
170
+ line-height: var(--vg-filepreview-text-content-line-height);
171
+ white-space: pre-wrap;
172
+ word-break: break-word;
173
+
174
+ &.is-markdown {
175
+ white-space: normal;
176
+
177
+ h1,
178
+ h2,
179
+ h3,
180
+ h4,
181
+ h5,
182
+ h6 {
183
+ margin: var(--vg-filepreview-text-markdown-block-margin);
184
+ line-height: var(--vg-filepreview-text-markdown-heading-line-height);
185
+ }
186
+
187
+ p {
188
+ margin: var(--vg-filepreview-text-markdown-block-margin);
189
+ }
190
+
191
+ ul {
192
+ margin: var(--vg-filepreview-text-markdown-list-margin);
193
+ padding: 0;
194
+ }
195
+
196
+ pre {
197
+ margin: var(--vg-filepreview-text-markdown-block-margin);
198
+ padding: var(--vg-filepreview-text-markdown-code-padding);
199
+ border-radius: var(--vg-filepreview-text-markdown-code-radius);
200
+ background: var(--vg-filepreview-text-markdown-code-bg);
201
+ overflow: auto;
202
+ }
203
+
204
+ a {
205
+ color: var(--vg-filepreview-text-markdown-link-color);
206
+ }
207
+ }
208
+ }
209
+ }
210
+
211
+ .vg-filepreview-text-trigger {
212
+ @extend %vg-filepreview-vars;
213
+ @include filepreview-trigger(var(--vg-filepreview-trigger-text-bg));
214
+ }
215
+
216
+ .vg-filepreview-video-modal {
217
+ &__video {
218
+ display: block;
219
+ width: var(--vg-filepreview-video-player-width);
220
+ max-height: var(--vg-filepreview-video-player-max-height);
221
+ height: auto;
222
+ border-radius: var(--vg-filepreview-video-player-radius);
223
+ background: var(--vg-filepreview-video-player-bg);
224
+ }
225
+
226
+ .vg-modal-header {
227
+ display: flex;
228
+ gap: 1rem;
229
+ }
230
+ }
231
+
232
+ .vg-filepreview-video-trigger {
233
+ @extend %vg-filepreview-vars;
234
+ @include filepreview-trigger(var(--vg-filepreview-trigger-video-bg));
235
+ }
236
+
237
+ .vg-filepreview-zip-modal {
238
+ &__content {
239
+ max-height: var(--vg-filepreview-zip-content-max-height);
240
+ overflow: auto;
241
+ background: var(--vg-filepreview-zip-content-bg);
242
+ border-radius: var(--vg-filepreview-zip-content-radius);
243
+ padding: var(--vg-filepreview-zip-content-padding);
244
+ }
245
+
246
+ &__table {
247
+ width: 100%;
248
+ border-collapse: collapse;
249
+ font-size: var(--vg-filepreview-zip-table-font-size);
250
+
251
+ th,
252
+ td {
253
+ padding: var(--vg-filepreview-zip-table-cell-padding);
254
+ border-bottom: var(--vg-filepreview-zip-table-border);
255
+ text-align: left;
256
+ vertical-align: top;
257
+ }
258
+
259
+ td.name {
260
+ word-break: break-word;
261
+ }
262
+ }
263
+
264
+ &__loading,
265
+ &__error,
266
+ &__empty {
267
+ font-size: var(--vg-filepreview-zip-status-font-size);
268
+ }
269
+ }
270
+
271
+ .vg-filepreview-zip-trigger {
272
+ @extend %vg-filepreview-vars;
273
+ @include filepreview-trigger(var(--vg-filepreview-trigger-zip-bg));
274
+ }
275
+
276
+ .vg-filepreview-pdf-trigger,
277
+ .vg-filepreview-office-trigger,
278
+ .vg-filepreview-download-trigger {
279
+ @extend %vg-filepreview-vars;
280
+ @include filepreview-trigger(var(--vg-filepreview-trigger-text-bg));
281
+ display: inline-flex;
282
+ align-items: center;
283
+ gap: 6px;
284
+
285
+ &__icon {
286
+ display: inline-flex;
287
+ align-items: center;
288
+
289
+ svg {
290
+ width: 14px;
291
+ height: 14px;
292
+ }
293
+ }
294
+ }
295
+
296
+ .vg-filepreview-video-modal__navigation {
297
+ display: inline-flex;
298
+ gap: 8px;
299
+ }
300
+
301
+ .vg-filepreview-video-modal__nav-btn {
302
+ border: 0;
303
+ border-radius: 8px;
304
+ padding: 6px 10px;
305
+ font-size: 12px;
306
+ font-weight: 600;
307
+ cursor: pointer;
308
+ background: rgba(255, 255, 255, .12);
309
+ color: var(--vg-filepreview-panel-color);
310
+ }
311
+
312
+ .vg-filepreview-pdf-modal,
313
+ .vg-filepreview-office-modal {
314
+ @extend %vg-filepreview-vars;
315
+
316
+ .vg-modal-content {
317
+ background: var(--vg-filepreview-modal-content-bg);
318
+ color: var(--vg-filepreview-modal-content-color);
319
+ }
320
+
321
+ .vg-btn-close {
322
+ top: var(--vg-filepreview-modal-close-top);
323
+ right: var(--vg-filepreview-modal-close-right);
324
+ }
325
+
326
+ &__body {
327
+ padding: var(--vg-filepreview-modal-body-padding);
328
+ }
329
+
330
+ &__title {
331
+ color: var(--vg-filepreview-panel-color);
332
+ font-size: var(--vg-filepreview-modal-title-size);
333
+ font-weight: var(--vg-filepreview-modal-title-weight);
334
+ line-height: var(--vg-filepreview-modal-title-line-height);
335
+ margin-bottom: var(--vg-filepreview-modal-title-margin-bottom);
336
+ white-space: nowrap;
337
+ overflow: hidden;
338
+ text-overflow: ellipsis;
339
+ }
340
+ }
341
+
342
+ .vg-filepreview-pdf-modal {
343
+ &__toolbar {
344
+ display: flex;
345
+ align-items: center;
346
+ flex-wrap: wrap;
347
+ gap: var(--vg-filepreview-pdf-toolbar-gap);
348
+ margin-bottom: var(--vg-filepreview-pdf-toolbar-margin-bottom);
349
+ }
350
+
351
+ &__btn {
352
+ border: 0;
353
+ border-radius: var(--vg-filepreview-pdf-btn-radius);
354
+ padding: var(--vg-filepreview-pdf-btn-padding);
355
+ font-size: var(--vg-filepreview-pdf-btn-font-size);
356
+ font-weight: var(--vg-filepreview-pdf-btn-font-weight);
357
+ cursor: pointer;
358
+ background: var(--vg-filepreview-pdf-btn-bg);
359
+ color: var(--vg-filepreview-panel-color);
360
+ }
361
+
362
+ &__meta {
363
+ font-size: var(--vg-filepreview-pdf-meta-font-size);
364
+ opacity: var(--vg-filepreview-pdf-meta-opacity);
365
+ }
366
+
367
+ &__frame {
368
+ display: block;
369
+ width: var(--vg-filepreview-pdf-frame-width);
370
+ height: var(--vg-filepreview-pdf-frame-height);
371
+ border: 0;
372
+ border-radius: var(--vg-filepreview-pdf-frame-radius);
373
+ background: var(--vg-filepreview-pdf-frame-bg);
374
+ }
375
+ }
376
+
377
+ .vg-filepreview-office-modal {
378
+ &__frame {
379
+ display: block;
380
+ width: var(--vg-filepreview-office-frame-width);
381
+ height: var(--vg-filepreview-office-frame-height);
382
+ border: 0;
383
+ border-radius: var(--vg-filepreview-office-frame-radius);
384
+ background: var(--vg-filepreview-office-frame-bg);
385
+ }
386
+
387
+ &__footer {
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: space-between;
391
+ gap: var(--vg-filepreview-office-footer-gap);
392
+ margin-top: var(--vg-filepreview-office-footer-margin-top);
393
+ }
394
+
395
+ &__hint {
396
+ font-size: var(--vg-filepreview-office-hint-font-size);
397
+ opacity: var(--vg-filepreview-office-hint-opacity);
398
+ }
399
+
400
+ &__btn {
401
+ border: 0;
402
+ border-radius: var(--vg-filepreview-office-btn-radius);
403
+ padding: var(--vg-filepreview-office-btn-padding);
404
+ font-size: var(--vg-filepreview-office-btn-font-size);
405
+ font-weight: var(--vg-filepreview-office-btn-font-weight);
406
+ cursor: pointer;
407
+ background: var(--vg-filepreview-office-btn-bg);
408
+ color: var(--vg-filepreview-panel-color);
409
+ }
410
+ }
411
+
412
+ .vg-filepreview-zip-modal {
413
+ &__entry-btn {
414
+ border: 0;
415
+ border-radius: 6px;
416
+ padding: 4px 8px;
417
+ font-size: 11px;
418
+ cursor: pointer;
419
+ background: rgba(255, 255, 255, .12);
420
+ color: var(--vg-filepreview-panel-color);
421
+ }
422
+
423
+ &__entry-preview {
424
+ margin-top: 10px;
425
+ padding-top: 10px;
426
+ border-top: var(--vg-filepreview-zip-table-border);
427
+ }
428
+
429
+ &__entry-preview-title {
430
+ font-size: 12px;
431
+ font-weight: 600;
432
+ margin-bottom: 8px;
433
+ word-break: break-all;
434
+ }
435
+
436
+ &__entry-preview-text {
437
+ margin: 0;
438
+ padding: 10px;
439
+ border-radius: 8px;
440
+ background: rgba(255, 255, 255, .08);
441
+ white-space: pre-wrap;
442
+ word-break: break-word;
443
+ }
444
+
445
+ &__entry-preview-image {
446
+ display: block;
447
+ max-width: 100%;
448
+ max-height: 360px;
449
+ border-radius: 8px;
450
+ }
451
+
452
+ &__content {
453
+ width: 100%;
454
+ }
455
+ }
456
+
457
+ [data-vg-filepreview-state="loading"] .preview {
458
+ opacity: .72;
459
+ }
460
+
461
+ [data-vg-filepreview-state="error"] .preview,
462
+ [data-vg-filepreview-state="empty"] .preview {
463
+ opacity: .9;
464
+ }