sigal 2.4__py3-none-any.whl → 2.5__py3-none-any.whl

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 (55) hide show
  1. sigal/__main__.py +6 -1
  2. sigal/gallery.py +24 -9
  3. sigal/image.py +21 -4
  4. sigal/plugins/compress_assets.py +4 -3
  5. sigal/plugins/encrypt/encrypt.py +1 -1
  6. sigal/plugins/encrypt/endec.py +2 -2
  7. sigal/plugins/extended_caching.py +5 -1
  8. sigal/plugins/nomedia.py +1 -1
  9. sigal/plugins/titleregexp.py +2 -2
  10. sigal/plugins/zip_gallery.py +1 -1
  11. sigal/settings.py +12 -1
  12. sigal/templates/sigal.conf.py +9 -11
  13. sigal/themes/default/templates/description.html +29 -0
  14. sigal/themes/default/templates/footer.html +3 -0
  15. sigal/themes/galleria/templates/album_items.html +2 -23
  16. sigal/themes/photoswipe/static/photoswipe-dynamic-caption-plugin.esm.js +414 -0
  17. sigal/themes/photoswipe/static/photoswipe-dynamic-caption-plugin.esm.min.js +5 -0
  18. sigal/themes/photoswipe/static/photoswipe-fullscreen.esm.js +129 -0
  19. sigal/themes/photoswipe/static/photoswipe-fullscreen.esm.min.js +8 -0
  20. sigal/themes/photoswipe/static/photoswipe-lightbox.esm.js +1960 -0
  21. sigal/themes/photoswipe/static/photoswipe-lightbox.esm.js.map +1 -0
  22. sigal/themes/photoswipe/static/photoswipe-lightbox.esm.min.js +5 -0
  23. sigal/themes/photoswipe/static/photoswipe-video-plugin.esm.js +257 -0
  24. sigal/themes/photoswipe/static/photoswipe-video-plugin.esm.min.js +1 -0
  25. sigal/themes/photoswipe/static/photoswipe.css +385 -140
  26. sigal/themes/photoswipe/static/photoswipe.esm.js +7081 -0
  27. sigal/themes/photoswipe/static/photoswipe.esm.js.map +1 -0
  28. sigal/themes/photoswipe/static/photoswipe.esm.min.js +5 -0
  29. sigal/themes/photoswipe/static/styles.css +53 -0
  30. sigal/themes/photoswipe/templates/album.html +69 -74
  31. sigal/utils.py +4 -1
  32. sigal/version.py +16 -3
  33. sigal/video.py +2 -2
  34. sigal/writer.py +10 -2
  35. {sigal-2.4.dist-info → sigal-2.5.dist-info}/METADATA +19 -24
  36. {sigal-2.4.dist-info → sigal-2.5.dist-info}/RECORD +40 -42
  37. {sigal-2.4.dist-info → sigal-2.5.dist-info}/WHEEL +1 -1
  38. sigal/plugins/upload_s3.py +0 -106
  39. sigal/themes/photoswipe/static/app.js +0 -214
  40. sigal/themes/photoswipe/static/default-skin/default-skin.css +0 -485
  41. sigal/themes/photoswipe/static/default-skin/default-skin.css.map +0 -10
  42. sigal/themes/photoswipe/static/default-skin/default-skin.png +0 -0
  43. sigal/themes/photoswipe/static/default-skin/default-skin.svg +0 -36
  44. sigal/themes/photoswipe/static/default-skin/preloader.gif +0 -0
  45. sigal/themes/photoswipe/static/echo/blank.gif +0 -0
  46. sigal/themes/photoswipe/static/echo/echo.js +0 -135
  47. sigal/themes/photoswipe/static/echo/echo.min.js +0 -2
  48. sigal/themes/photoswipe/static/photoswipe-ui-default.js +0 -871
  49. sigal/themes/photoswipe/static/photoswipe-ui-default.min.js +0 -1
  50. sigal/themes/photoswipe/static/photoswipe.css.map +0 -10
  51. sigal/themes/photoswipe/static/photoswipe.js +0 -3592
  52. sigal/themes/photoswipe/static/photoswipe.min.js +0 -1
  53. {sigal-2.4.dist-info → sigal-2.5.dist-info}/LICENSE +0 -0
  54. {sigal-2.4.dist-info → sigal-2.5.dist-info}/entry_points.txt +0 -0
  55. {sigal-2.4.dist-info → sigal-2.5.dist-info}/top_level.txt +0 -0
@@ -1,485 +0,0 @@
1
- /*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
2
- /*
3
-
4
- Contents:
5
-
6
- 1. Buttons
7
- 2. Share modal and links
8
- 3. Index indicator ("1 of X" counter)
9
- 4. Caption
10
- 5. Loading indicator
11
- 6. Additional styles (root element, top bar, idle state, hidden state, etc.)
12
-
13
- */
14
- /*
15
-
16
- 1. Buttons
17
-
18
- */
19
- /* <button> css reset */
20
- .pswp__button {
21
- width: 44px;
22
- height: 44px;
23
- position: relative;
24
- background: none;
25
- cursor: pointer;
26
- overflow: visible;
27
- -webkit-appearance: none;
28
- display: block;
29
- border: 0;
30
- padding: 0;
31
- margin: 0;
32
- float: right;
33
- opacity: 0.75;
34
- -webkit-transition: opacity 0.2s;
35
- transition: opacity 0.2s;
36
- -webkit-box-shadow: none;
37
- box-shadow: none; }
38
- .pswp__button:focus, .pswp__button:hover {
39
- opacity: 1; }
40
- .pswp__button:active {
41
- outline: none;
42
- opacity: 0.9; }
43
- .pswp__button::-moz-focus-inner {
44
- padding: 0;
45
- border: 0; }
46
-
47
- /* pswp__ui--over-close class it added when mouse is over element that should close gallery */
48
- .pswp__ui--over-close .pswp__button--close {
49
- opacity: 1; }
50
-
51
- .pswp__button,
52
- .pswp__button--arrow--left:before,
53
- .pswp__button--arrow--right:before {
54
- background: url(default-skin.png) 0 0 no-repeat;
55
- background-size: 264px 88px;
56
- width: 44px;
57
- height: 44px; }
58
-
59
- @media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
60
- /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
61
- .pswp--svg .pswp__button,
62
- .pswp--svg .pswp__button--arrow--left:before,
63
- .pswp--svg .pswp__button--arrow--right:before {
64
- background-image: url(default-skin.svg); }
65
- .pswp--svg .pswp__button--arrow--left,
66
- .pswp--svg .pswp__button--arrow--right {
67
- background: none; } }
68
-
69
- .pswp__button--close {
70
- background-position: 0 -44px; }
71
-
72
- .pswp__button--share {
73
- background-position: -44px -44px; }
74
-
75
- .pswp__button--download {
76
- background-position: -176px 0; }
77
-
78
- .pswp__button--fs {
79
- display: none; }
80
-
81
- .pswp--supports-fs .pswp__button--fs {
82
- display: block; }
83
-
84
- .pswp--fs .pswp__button--fs {
85
- background-position: -44px 0; }
86
-
87
- .pswp__button--zoom {
88
- display: none;
89
- background-position: -88px 0; }
90
-
91
- .pswp--zoom-allowed .pswp__button--zoom {
92
- display: block; }
93
-
94
- .pswp--zoomed-in .pswp__button--zoom {
95
- background-position: -132px 0; }
96
-
97
- /* no arrows on touch screens */
98
- .pswp--touch:not(.pswp--preventswipe) .pswp__button--arrow--left,
99
- .pswp--touch:not(.pswp--preventswipe) .pswp__button--arrow--right {
100
- visibility: hidden; }
101
-
102
- /*
103
- Arrow buttons hit area
104
- (icon is added to :before pseudo-element)
105
- */
106
- .pswp__button--arrow--left,
107
- .pswp__button--arrow--right {
108
- background: none;
109
- top: 50%;
110
- margin-top: -50px;
111
- width: 70px;
112
- height: 100px;
113
- position: absolute; }
114
-
115
- .pswp__button--arrow--left {
116
- left: 0; }
117
-
118
- .pswp__button--arrow--right {
119
- right: 0; }
120
-
121
- .pswp__button--arrow--left:before,
122
- .pswp__button--arrow--right:before {
123
- content: '';
124
- top: 35px;
125
- background-color: rgba(0, 0, 0, 0.3);
126
- height: 30px;
127
- width: 32px;
128
- position: absolute; }
129
-
130
- .pswp__button--arrow--left:before {
131
- left: 6px;
132
- background-position: -138px -44px; }
133
-
134
- .pswp__button--arrow--right:before {
135
- right: 6px;
136
- background-position: -94px -44px; }
137
-
138
- /*
139
-
140
- 2. Share modal/popup and links
141
-
142
- */
143
- .pswp__counter,
144
- .pswp__share-modal {
145
- -webkit-user-select: none;
146
- -ms-user-select: none;
147
- user-select: none; }
148
-
149
- .pswp__share-modal {
150
- display: block;
151
- background: rgba(0, 0, 0, 0.5);
152
- width: 100%;
153
- height: 100%;
154
- top: 0;
155
- left: 0;
156
- padding: 10px;
157
- position: absolute;
158
- z-index: 16777371;
159
- opacity: 0;
160
- -webkit-transition: opacity 0.25s ease-out;
161
- transition: opacity 0.25s ease-out;
162
- -webkit-backface-visibility: hidden;
163
- will-change: opacity; }
164
-
165
- .pswp__share-modal--hidden {
166
- display: none; }
167
-
168
- .pswp__share-tooltip {
169
- z-index: 16777391;
170
- position: absolute;
171
- background: #fff;
172
- top: 56px;
173
- border-radius: 2px;
174
- display: block;
175
- width: auto;
176
- right: 44px;
177
- -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
178
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
179
- -webkit-transform: translateY(6px);
180
- -ms-transform: translateY(6px);
181
- transform: translateY(6px);
182
- -webkit-transition: -webkit-transform 0.25s;
183
- transition: transform 0.25s;
184
- -webkit-backface-visibility: hidden;
185
- will-change: transform; }
186
- .pswp__share-tooltip a {
187
- display: block;
188
- padding: 8px 12px;
189
- color: #000;
190
- text-decoration: none;
191
- font-size: 14px;
192
- line-height: 18px; }
193
- .pswp__share-tooltip a:hover {
194
- text-decoration: none;
195
- color: #000; }
196
- .pswp__share-tooltip a:first-child {
197
- /* round corners on the first/last list item */
198
- border-radius: 2px 2px 0 0; }
199
- .pswp__share-tooltip a:last-child {
200
- border-radius: 0 0 2px 2px; }
201
-
202
- .pswp__share-modal--fade-in {
203
- opacity: 1; }
204
- .pswp__share-modal--fade-in .pswp__share-tooltip {
205
- -webkit-transform: translateY(0);
206
- -ms-transform: translateY(0);
207
- transform: translateY(0); }
208
-
209
- /* increase size of share links on touch devices */
210
- .pswp--touch .pswp__share-tooltip a {
211
- padding: 16px 12px; }
212
-
213
- a.pswp__share--facebook:before {
214
- content: '';
215
- display: block;
216
- width: 0;
217
- height: 0;
218
- position: absolute;
219
- top: -12px;
220
- right: 15px;
221
- border: 6px solid rgba(0, 0, 0, 0);
222
- border-bottom-color: #fff;
223
- -webkit-pointer-events: none;
224
- -moz-pointer-events: none;
225
- pointer-events: none; }
226
-
227
- a.pswp__share--facebook:hover {
228
- background: #3e5c9a;
229
- color: #fff; }
230
- a.pswp__share--facebook:hover:before {
231
- border-bottom-color: #3e5c9a; }
232
-
233
- a.pswp__share--twitter:hover {
234
- background: #55acee;
235
- color: #fff; }
236
-
237
- a.pswp__share--pinterest:hover {
238
- background: #ccc;
239
- color: #ce272d; }
240
-
241
- a.pswp__share--download:hover {
242
- background: #ddd; }
243
-
244
- /*
245
-
246
- 3. Index indicator ("1 of X" counter)
247
-
248
- */
249
- .pswp__counter {
250
- position: absolute;
251
- left: 0;
252
- top: 0;
253
- height: 44px;
254
- font-size: 13px;
255
- line-height: 44px;
256
- color: #fff;
257
- opacity: 0.75;
258
- padding: 0 10px; }
259
-
260
- /*
261
-
262
- 4. Caption
263
-
264
- */
265
- .pswp__caption {
266
- position: absolute;
267
- left: 0;
268
- bottom: 0;
269
- width: 100%;
270
- min-height: 44px; }
271
- .pswp__caption small {
272
- font-size: 11px;
273
- color: #bbb; }
274
-
275
- .pswp__caption__center {
276
- text-align: center;
277
- max-width: 420px;
278
- margin: 0 auto;
279
- font-size: 13px;
280
- padding: 10px;
281
- line-height: 20px;
282
- color: #ccc; }
283
-
284
- .pswp__caption--empty {
285
- display: none; }
286
-
287
- /* Fake caption element, used to calculate height of next/prev image */
288
- .pswp__caption--fake {
289
- visibility: hidden; }
290
-
291
- /*
292
-
293
- 5. Loading indicator (preloader)
294
-
295
- You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
296
-
297
- */
298
- .pswp__preloader {
299
- width: 44px;
300
- height: 44px;
301
- position: absolute;
302
- top: 0;
303
- left: 50%;
304
- margin-left: -22px;
305
- opacity: 0;
306
- -webkit-transition: opacity 0.25s ease-out;
307
- transition: opacity 0.25s ease-out;
308
- will-change: opacity;
309
- direction: ltr; }
310
-
311
- .pswp__preloader__icn {
312
- width: 20px;
313
- height: 20px;
314
- margin: 12px; }
315
-
316
- .pswp__preloader--active {
317
- opacity: 1; }
318
- .pswp__preloader--active .pswp__preloader__icn {
319
- /* We use .gif in browsers that don't support CSS animation */
320
- background: url(preloader.gif) 0 0 no-repeat; }
321
-
322
- .pswp--css_animation .pswp__preloader--active {
323
- opacity: 1; }
324
- .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
325
- -webkit-animation: clockwise 500ms linear infinite;
326
- animation: clockwise 500ms linear infinite; }
327
- .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
328
- -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
329
- animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }
330
-
331
- .pswp--css_animation .pswp__preloader__icn {
332
- background: none;
333
- opacity: 0.75;
334
- width: 14px;
335
- height: 14px;
336
- position: absolute;
337
- left: 15px;
338
- top: 15px;
339
- margin: 0; }
340
-
341
- .pswp--css_animation .pswp__preloader__cut {
342
- /*
343
- The idea of animating inner circle is based on Polymer ("material") loading indicator
344
- by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
345
- */
346
- position: relative;
347
- width: 7px;
348
- height: 14px;
349
- overflow: hidden; }
350
-
351
- .pswp--css_animation .pswp__preloader__donut {
352
- -webkit-box-sizing: border-box;
353
- box-sizing: border-box;
354
- width: 14px;
355
- height: 14px;
356
- border: 2px solid #fff;
357
- border-radius: 50%;
358
- border-left-color: transparent;
359
- border-bottom-color: transparent;
360
- position: absolute;
361
- top: 0;
362
- left: 0;
363
- background: none;
364
- margin: 0; }
365
-
366
- @media screen and (max-width: 1024px) {
367
- .pswp__preloader {
368
- position: relative;
369
- left: auto;
370
- top: auto;
371
- margin: 0;
372
- float: right; } }
373
-
374
- @-webkit-keyframes clockwise {
375
- 0% {
376
- -webkit-transform: rotate(0deg);
377
- transform: rotate(0deg); }
378
- 100% {
379
- -webkit-transform: rotate(360deg);
380
- transform: rotate(360deg); } }
381
-
382
- @keyframes clockwise {
383
- 0% {
384
- -webkit-transform: rotate(0deg);
385
- transform: rotate(0deg); }
386
- 100% {
387
- -webkit-transform: rotate(360deg);
388
- transform: rotate(360deg); } }
389
-
390
- @-webkit-keyframes donut-rotate {
391
- 0% {
392
- -webkit-transform: rotate(0);
393
- transform: rotate(0); }
394
- 50% {
395
- -webkit-transform: rotate(-140deg);
396
- transform: rotate(-140deg); }
397
- 100% {
398
- -webkit-transform: rotate(0);
399
- transform: rotate(0); } }
400
-
401
- @keyframes donut-rotate {
402
- 0% {
403
- -webkit-transform: rotate(0);
404
- transform: rotate(0); }
405
- 50% {
406
- -webkit-transform: rotate(-140deg);
407
- transform: rotate(-140deg); }
408
- 100% {
409
- -webkit-transform: rotate(0);
410
- transform: rotate(0); } }
411
-
412
- /*
413
-
414
- 6. Additional styles
415
-
416
- */
417
- /* root element of UI */
418
- .pswp__ui {
419
- -webkit-font-smoothing: auto;
420
- visibility: visible;
421
- opacity: 1;
422
- z-index: 16777321; }
423
-
424
- /* top black bar with buttons and "1 of X" indicator */
425
- .pswp__top-bar {
426
- position: absolute;
427
- left: 0;
428
- top: 0;
429
- height: 44px;
430
- width: 100%; }
431
-
432
- .pswp__caption,
433
- .pswp__top-bar,
434
- .pswp--has_mouse .pswp__button--arrow--left,
435
- .pswp--has_mouse .pswp__button--arrow--right {
436
- -webkit-backface-visibility: hidden;
437
- will-change: opacity;
438
- -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
439
- transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
440
-
441
- /* pswp--has_mouse class is added only when two subsequent mousemove events occur */
442
- .pswp--has_mouse .pswp__button--arrow--left,
443
- .pswp--has_mouse .pswp__button--arrow--right {
444
- visibility: visible; }
445
-
446
- .pswp__top-bar,
447
- .pswp__caption {
448
- background-color: rgba(0, 0, 0, 0.5); }
449
-
450
- /* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
451
- .pswp__ui--fit .pswp__top-bar,
452
- .pswp__ui--fit .pswp__caption {
453
- background-color: rgba(0, 0, 0, 0.3); }
454
-
455
- /* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
456
- .pswp__ui--idle .pswp__top-bar {
457
- opacity: 0; }
458
-
459
- .pswp__ui--idle .pswp__button--arrow--left,
460
- .pswp__ui--idle .pswp__button--arrow--right {
461
- opacity: 0; }
462
-
463
- /*
464
- pswp__ui--hidden class is added when controls are hidden
465
- e.g. when user taps to toggle visibility of controls
466
- */
467
- .pswp__ui--hidden .pswp__top-bar,
468
- .pswp__ui--hidden .pswp__caption,
469
- .pswp__ui--hidden .pswp__button--arrow--left,
470
- .pswp__ui--hidden .pswp__button--arrow--right {
471
- /* Force paint & create composition layer for controls. */
472
- opacity: 0.001;
473
- visibility: hidden; }
474
-
475
- /* pswp__ui--one-slide class is added when there is just one item in gallery */
476
- .pswp__ui--one-slide .pswp__button--arrow--left,
477
- .pswp__ui--one-slide .pswp__button--arrow--right,
478
- .pswp__ui--one-slide .pswp__counter {
479
- display: none; }
480
-
481
- .pswp__element--disabled {
482
- display: none !important; }
483
-
484
- .pswp--minimal--dark .pswp__top-bar {
485
- background: none; }
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "file": "default-skin.css",
4
- "sources": [
5
- "../../src/css/default-skin/default-skin.scss",
6
- "../../src/css/_main-settings.scss"
7
- ],
8
- "names": [],
9
- "mappings": "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"
10
- }
@@ -1,36 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg version="1.1" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
3
- <metadata>
4
- <rdf:RDF>
5
- <cc:Work rdf:about="">
6
- <dc:format>image/svg+xml</dc:format>
7
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
8
- <dc:title>default-skin 2</dc:title>
9
- </cc:Work>
10
- </rdf:RDF>
11
- </metadata>
12
- <title>default-skin 2</title>
13
- <path d="m67.002 59.5v3.768c-6.307 0.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098v3.598l5.998-5.915-5.998-6.085z" fill="#fff" fill-rule="evenodd"/>
14
- <g fill="#fff" fill-rule="evenodd">
15
- <path d="m13 29v-5h2v3h3v2h-5zm0-14h5v2h-3v3h-2v-5zm18 0v5h-2v-3h-3v-2h5zm0 14h-5v-2h3v-3h2v5z"/>
16
- </g>
17
- <g fill="#fff" fill-rule="evenodd">
18
- <path d="m62 24v5h-2v-3h-3v-2h5zm0-4h-5v-2h3v-3h2v5zm8 0v-5h2v3h3v2h-5zm0 4h5v2h-3v3h-2v-5z"/>
19
- </g>
20
- <path d="m20.586 66-5.656-5.656 1.414-1.414 5.656 5.656 5.656-5.656 1.414 1.414-5.656 5.656 5.656 5.656-1.414 1.414-5.656-5.656-5.656 5.656-1.414-1.414 5.656-5.656z" fill="#fff" fill-rule="evenodd"/>
21
- <path d="m111.78 65.03-1.785-1.53l3-3.5h-10v-2h10l-3-3.5 1.785-1.468 5.215 5.968-5.215 6.03z" fill="#fff" fill-rule="evenodd"/>
22
- <path d="m152.22 65.03 1.785-1.53-3-3.5h10v-2h-10l3-3.5-1.785-1.468-5.215 5.968 5.215 6.03z" fill="#fff" fill-rule="evenodd"/>
23
- <g fill="none" fill-rule="evenodd">
24
- <path d="m160.96 28.543-3.25-3.25-1.413 1.414 3.25 3.25z" fill="#fff"/>
25
- <path d="m152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/>
26
- <path d="m150 21h5v1h-5z" fill="#fff"/>
27
- </g>
28
- <g fill="none" fill-rule="evenodd">
29
- <path d="m116.96 28.543-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/>
30
- <path d="m108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/>
31
- <path d="m106 21h5v1h-5z" fill="#fff"/>
32
- <path d="m109.04 19.008-0.085 5-1-0.017 0.085-5z" fill="#fff"/>
33
- </g>
34
- <rect x="190" y="27" width="16" height="2" fill="#fff"/>
35
- <path d="m198 26-6-6h4v-5h4v5h4z" fill="#fff" fill-rule="evenodd"/>
36
- </svg>
@@ -1,135 +0,0 @@
1
- /*! echo-js v1.7.3 | (c) 2016 @toddmotto | https://github.com/toddmotto/echo */
2
- (function (root, factory) {
3
- if (typeof define === 'function' && define.amd) {
4
- define(function() {
5
- return factory(root);
6
- });
7
- } else if (typeof exports === 'object') {
8
- module.exports = factory;
9
- } else {
10
- root.echo = factory(root);
11
- }
12
- })(this, function (root) {
13
-
14
- 'use strict';
15
-
16
- var echo = {};
17
-
18
- var callback = function () {};
19
-
20
- var offset, poll, delay, useDebounce, unload;
21
-
22
- var isHidden = function (element) {
23
- return (element.offsetParent === null);
24
- };
25
-
26
- var inView = function (element, view) {
27
- if (isHidden(element)) {
28
- return false;
29
- }
30
-
31
- var box = element.getBoundingClientRect();
32
- return (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b);
33
- };
34
-
35
- var debounceOrThrottle = function () {
36
- if(!useDebounce && !!poll) {
37
- return;
38
- }
39
- clearTimeout(poll);
40
- poll = setTimeout(function(){
41
- echo.render();
42
- poll = null;
43
- }, delay);
44
- };
45
-
46
- echo.init = function (opts) {
47
- opts = opts || {};
48
- var offsetAll = opts.offset || 0;
49
- var offsetVertical = opts.offsetVertical || offsetAll;
50
- var offsetHorizontal = opts.offsetHorizontal || offsetAll;
51
- var optionToInt = function (opt, fallback) {
52
- return parseInt(opt || fallback, 10);
53
- };
54
- offset = {
55
- t: optionToInt(opts.offsetTop, offsetVertical),
56
- b: optionToInt(opts.offsetBottom, offsetVertical),
57
- l: optionToInt(opts.offsetLeft, offsetHorizontal),
58
- r: optionToInt(opts.offsetRight, offsetHorizontal)
59
- };
60
- delay = optionToInt(opts.throttle, 250);
61
- useDebounce = opts.debounce !== false;
62
- unload = !!opts.unload;
63
- callback = opts.callback || callback;
64
- echo.render();
65
- if (document.addEventListener) {
66
- root.addEventListener('scroll', debounceOrThrottle, false);
67
- root.addEventListener('load', debounceOrThrottle, false);
68
- } else {
69
- root.attachEvent('onscroll', debounceOrThrottle);
70
- root.attachEvent('onload', debounceOrThrottle);
71
- }
72
- };
73
-
74
- echo.render = function () {
75
- var nodes = document.querySelectorAll('img[data-echo], [data-echo-background]');
76
- var length = nodes.length;
77
- var src, elem;
78
- var view = {
79
- l: 0 - offset.l,
80
- t: 0 - offset.t,
81
- b: (root.innerHeight || document.documentElement.clientHeight) + offset.b,
82
- r: (root.innerWidth || document.documentElement.clientWidth) + offset.r
83
- };
84
- for (var i = 0; i < length; i++) {
85
- elem = nodes[i];
86
- if (inView(elem, view)) {
87
-
88
- if (unload) {
89
- elem.setAttribute('data-echo-placeholder', elem.src);
90
- }
91
-
92
- if (elem.getAttribute('data-echo-background') !== null) {
93
- elem.style.backgroundImage = "url(" + elem.getAttribute('data-echo-background') + ")";
94
- }
95
- else {
96
- elem.src = elem.getAttribute('data-echo');
97
- }
98
-
99
- if (!unload) {
100
- elem.removeAttribute('data-echo');
101
- elem.removeAttribute('data-echo-background');
102
- }
103
-
104
- callback(elem, 'load');
105
- }
106
- else if (unload && !!(src = elem.getAttribute('data-echo-placeholder'))) {
107
-
108
- if (elem.getAttribute('data-echo-background') !== null) {
109
- elem.style.backgroundImage = "url(" + src + ")";
110
- }
111
- else {
112
- elem.src = src;
113
- }
114
-
115
- elem.removeAttribute('data-echo-placeholder');
116
- callback(elem, 'unload');
117
- }
118
- }
119
- if (!length) {
120
- echo.detach();
121
- }
122
- };
123
-
124
- echo.detach = function () {
125
- if (document.removeEventListener) {
126
- root.removeEventListener('scroll', debounceOrThrottle);
127
- } else {
128
- root.detachEvent('onscroll', debounceOrThrottle);
129
- }
130
- clearTimeout(poll);
131
- };
132
-
133
- return echo;
134
-
135
- });
@@ -1,2 +0,0 @@
1
- /*! echo-js v1.7.3 | (c) 2016 @toddmotto | https://github.com/toddmotto/echo */
2
- !function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):"object"==typeof exports?module.exports=e:t.echo=e(t)}(this,function(t){"use strict";var e,n,o,r,c,a={},u=function(){},d=function(t){return null===t.offsetParent},i=function(t,e){if(d(t))return!1;var n=t.getBoundingClientRect();return n.right>=e.l&&n.bottom>=e.t&&n.left<=e.r&&n.top<=e.b},l=function(){(r||!n)&&(clearTimeout(n),n=setTimeout(function(){a.render(),n=null},o))};return a.init=function(n){n=n||{};var d=n.offset||0,i=n.offsetVertical||d,f=n.offsetHorizontal||d,s=function(t,e){return parseInt(t||e,10)};e={t:s(n.offsetTop,i),b:s(n.offsetBottom,i),l:s(n.offsetLeft,f),r:s(n.offsetRight,f)},o=s(n.throttle,250),r=n.debounce!==!1,c=!!n.unload,u=n.callback||u,a.render(),document.addEventListener?(t.addEventListener("scroll",l,!1),t.addEventListener("load",l,!1)):(t.attachEvent("onscroll",l),t.attachEvent("onload",l))},a.render=function(){for(var n,o,r=document.querySelectorAll("img[data-echo], [data-echo-background]"),d=r.length,l={l:0-e.l,t:0-e.t,b:(t.innerHeight||document.documentElement.clientHeight)+e.b,r:(t.innerWidth||document.documentElement.clientWidth)+e.r},f=0;d>f;f++)o=r[f],i(o,l)?(c&&o.setAttribute("data-echo-placeholder",o.src),null!==o.getAttribute("data-echo-background")?o.style.backgroundImage="url("+o.getAttribute("data-echo-background")+")":o.src=o.getAttribute("data-echo"),c||(o.removeAttribute("data-echo"),o.removeAttribute("data-echo-background")),u(o,"load")):c&&(n=o.getAttribute("data-echo-placeholder"))&&(null!==o.getAttribute("data-echo-background")?o.style.backgroundImage="url("+n+")":o.src=n,o.removeAttribute("data-echo-placeholder"),u(o,"unload"));d||a.detach()},a.detach=function(){document.removeEventListener?t.removeEventListener("scroll",l):t.detachEvent("onscroll",l),clearTimeout(n)},a});