mirror of
				https://github.com/KevinMidboe/zoff.git
				synced 2025-10-29 18:00:23 +00:00 
			
		
		
		
	Added localmode for embedded players, configurable on embed-code create
This commit is contained in:
		| @@ -44,7 +44,7 @@ gulp.task('js', function () { | |||||||
| }); | }); | ||||||
|  |  | ||||||
| gulp.task('embed', function () { | gulp.task('embed', function () { | ||||||
|     return gulp.src(['server/VERSION.js', 'server/config/api_key.js', 'server/public/assets/js/player.js', 'server/public/assets/js/helpers.js', 'server/public/assets/js/playercontrols.js', 'server/public/assets/js/list.js', 'server/public/assets/js/embed.js', '!server/public/assets/js/frontpage*', '!server/public/assets/js/remotecontroller.js', 'server/public/assets/js/hostcontroller.js']) |     return gulp.src(['server/VERSION.js', 'server/config/api_key.js', 'server/public/assets/js/player.js', 'server/public/assets/js/functions.js', 'server/public/assets/js/helpers.js', 'server/public/assets/js/playercontrols.js', 'server/public/assets/js/list.js', 'server/public/assets/js/embed.js', '!server/public/assets/js/frontpage*', '!server/public/assets/js/remotecontroller.js', 'server/public/assets/js/hostcontroller.js']) | ||||||
|     //.pipe(sourcemaps.init()) |     //.pipe(sourcemaps.init()) | ||||||
|     .pipe(concat('embed.min.js')) |     .pipe(concat('embed.min.js')) | ||||||
|         .pipe(uglify({ |         .pipe(uglify({ | ||||||
| @@ -105,6 +105,7 @@ gulp.task('remotecontroller', function () { | |||||||
| gulp.task('default', function(){ | gulp.task('default', function(){ | ||||||
|     gulp.watch(['server/VERSION.js', 'server/public/assets/js/*.js'], ['js']); |     gulp.watch(['server/VERSION.js', 'server/public/assets/js/*.js'], ['js']); | ||||||
|     gulp.watch(['server/public/assets/css/*.css'], ['css']); |     gulp.watch(['server/public/assets/css/*.css'], ['css']); | ||||||
|  |     gulp.watch(['server/public/assets/css/*.css'], ['css-embed']); | ||||||
|     gulp.watch(['server/public/assets/js/token*.js', 'server/public/assets/js/helpers.js'], ['token']); |     gulp.watch(['server/public/assets/js/token*.js', 'server/public/assets/js/helpers.js'], ['token']); | ||||||
|     gulp.watch(['server/VERSION.js', 'server/public/assets/js/*.js'], ['embed']); |     gulp.watch(['server/VERSION.js', 'server/public/assets/js/*.js'], ['embed']); | ||||||
|     gulp.watch(['server/VERSION.js', 'server/public/assets/js/callback.js', 'server/public/assets/js/helpers.js'], ['callback']); |     gulp.watch(['server/VERSION.js', 'server/public/assets/js/callback.js', 'server/public/assets/js/helpers.js'], ['callback']); | ||||||
|   | |||||||
							
								
								
									
										414
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										414
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -4,6 +4,34 @@ | |||||||
|   "lockfileVersion": 1, |   "lockfileVersion": 1, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|  |     "@gulp-sourcemaps/identity-map": { | ||||||
|  |       "version": "1.0.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", | ||||||
|  |       "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "acorn": "^5.0.3", | ||||||
|  |         "css": "^2.2.1", | ||||||
|  |         "normalize-path": "^2.1.1", | ||||||
|  |         "source-map": "^0.6.0", | ||||||
|  |         "through2": "^2.0.3" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "source-map": { | ||||||
|  |           "version": "0.6.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||||
|  |           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "@gulp-sourcemaps/map-sources": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", | ||||||
|  |       "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", | ||||||
|  |       "requires": { | ||||||
|  |         "normalize-path": "^2.0.1", | ||||||
|  |         "through2": "^2.0.3" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "accepts": { |     "accepts": { | ||||||
|       "version": "1.3.5", |       "version": "1.3.5", | ||||||
|       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", |       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", | ||||||
| @@ -28,6 +56,11 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "acorn": { | ||||||
|  |       "version": "5.7.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", | ||||||
|  |       "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==" | ||||||
|  |     }, | ||||||
|     "after": { |     "after": { | ||||||
|       "version": "0.8.2", |       "version": "0.8.2", | ||||||
|       "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", |       "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", | ||||||
| @@ -69,7 +102,6 @@ | |||||||
|       "version": "1.1.0", |       "version": "1.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", |       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", | ||||||
|       "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", |       "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "ansi-wrap": "^0.1.0" |         "ansi-wrap": "^0.1.0" | ||||||
|       } |       } | ||||||
| @@ -98,8 +130,7 @@ | |||||||
|     "ansi-wrap": { |     "ansi-wrap": { | ||||||
|       "version": "0.1.0", |       "version": "0.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", |       "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", | ||||||
|       "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", |       "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "archy": { |     "archy": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
| @@ -119,8 +150,7 @@ | |||||||
|     "arr-diff": { |     "arr-diff": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", | ||||||
|       "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", |       "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "arr-flatten": { |     "arr-flatten": { | ||||||
|       "version": "1.1.0", |       "version": "1.1.0", | ||||||
| @@ -131,8 +161,7 @@ | |||||||
|     "arr-union": { |     "arr-union": { | ||||||
|       "version": "3.1.0", |       "version": "3.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", |       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", | ||||||
|       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", |       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "array-differ": { |     "array-differ": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
| @@ -187,8 +216,7 @@ | |||||||
|     "assign-symbols": { |     "assign-symbols": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", | ||||||
|       "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", |       "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "async": { |     "async": { | ||||||
|       "version": "1.5.2", |       "version": "1.5.2", | ||||||
| @@ -200,6 +228,11 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", | ||||||
|       "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" |       "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" | ||||||
|     }, |     }, | ||||||
|  |     "atob": { | ||||||
|  |       "version": "2.1.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", | ||||||
|  |       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" | ||||||
|  |     }, | ||||||
|     "autoprefixer": { |     "autoprefixer": { | ||||||
|       "version": "6.7.7", |       "version": "6.7.7", | ||||||
|       "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", |       "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", | ||||||
| @@ -498,8 +531,7 @@ | |||||||
|     "buffer-from": { |     "buffer-from": { | ||||||
|       "version": "1.1.1", |       "version": "1.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", |       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | ||||||
|       "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", |       "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "buffer-shims": { |     "buffer-shims": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
| @@ -707,8 +739,7 @@ | |||||||
|     "clone-buffer": { |     "clone-buffer": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", | ||||||
|       "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", |       "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "clone-stats": { |     "clone-stats": { | ||||||
|       "version": "0.0.1", |       "version": "0.0.1", | ||||||
| @@ -720,7 +751,6 @@ | |||||||
|       "version": "1.1.2", |       "version": "1.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", |       "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", | ||||||
|       "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", |       "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "inherits": "^2.0.1", |         "inherits": "^2.0.1", | ||||||
|         "process-nextick-args": "^2.0.0", |         "process-nextick-args": "^2.0.0", | ||||||
| @@ -730,14 +760,12 @@ | |||||||
|         "isarray": { |         "isarray": { | ||||||
|           "version": "1.0.0", |           "version": "1.0.0", | ||||||
|           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", |           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||||
|           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", |           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "readable-stream": { |         "readable-stream": { | ||||||
|           "version": "2.3.6", |           "version": "2.3.6", | ||||||
|           "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", |           "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | ||||||
|           "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", |           "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | ||||||
|           "dev": true, |  | ||||||
|           "requires": { |           "requires": { | ||||||
|             "core-util-is": "~1.0.0", |             "core-util-is": "~1.0.0", | ||||||
|             "inherits": "~2.0.3", |             "inherits": "~2.0.3", | ||||||
| @@ -752,7 +780,6 @@ | |||||||
|           "version": "1.1.1", |           "version": "1.1.1", | ||||||
|           "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", |           "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||||
|           "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |           "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||||
|           "dev": true, |  | ||||||
|           "requires": { |           "requires": { | ||||||
|             "safe-buffer": "~5.1.0" |             "safe-buffer": "~5.1.0" | ||||||
|           } |           } | ||||||
| @@ -946,6 +973,11 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||||||
|       "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" |       "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" | ||||||
|     }, |     }, | ||||||
|  |     "convert-source-map": { | ||||||
|  |       "version": "1.5.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", | ||||||
|  |       "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" | ||||||
|  |     }, | ||||||
|     "cookie": { |     "cookie": { | ||||||
|       "version": "0.3.1", |       "version": "0.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", |       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", | ||||||
| @@ -986,8 +1018,7 @@ | |||||||
|     "core-util-is": { |     "core-util-is": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||||||
|       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", |       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "cors": { |     "cors": { | ||||||
|       "version": "2.8.4", |       "version": "2.8.4", | ||||||
| @@ -1028,6 +1059,27 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "css": { | ||||||
|  |       "version": "2.2.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz", | ||||||
|  |       "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "inherits": "^2.0.1", | ||||||
|  |         "source-map": "^0.1.38", | ||||||
|  |         "source-map-resolve": "^0.5.1", | ||||||
|  |         "urix": "^0.1.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "source-map": { | ||||||
|  |           "version": "0.1.43", | ||||||
|  |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", | ||||||
|  |           "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", | ||||||
|  |           "requires": { | ||||||
|  |             "amdefine": ">=0.0.4" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "css-color-names": { |     "css-color-names": { | ||||||
|       "version": "0.0.4", |       "version": "0.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", |       "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", | ||||||
| @@ -1100,6 +1152,14 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "d": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", | ||||||
|  |       "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", | ||||||
|  |       "requires": { | ||||||
|  |         "es5-ext": "^0.10.9" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "dashdash": { |     "dashdash": { | ||||||
|       "version": "1.14.1", |       "version": "1.14.1", | ||||||
|       "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", |       "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||||||
| @@ -1134,6 +1194,31 @@ | |||||||
|         "ms": "2.0.0" |         "ms": "2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "debug-fabulous": { | ||||||
|  |       "version": "1.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", | ||||||
|  |       "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", | ||||||
|  |       "requires": { | ||||||
|  |         "debug": "3.X", | ||||||
|  |         "memoizee": "0.4.X", | ||||||
|  |         "object-assign": "4.X" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "debug": { | ||||||
|  |           "version": "3.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | ||||||
|  |           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | ||||||
|  |           "requires": { | ||||||
|  |             "ms": "2.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "object-assign": { | ||||||
|  |           "version": "4.1.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||||||
|  |           "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "decamelize": { |     "decamelize": { | ||||||
|       "version": "1.2.0", |       "version": "1.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", |       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", | ||||||
| @@ -1142,8 +1227,7 @@ | |||||||
|     "decode-uri-component": { |     "decode-uri-component": { | ||||||
|       "version": "0.2.0", |       "version": "0.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", |       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", | ||||||
|       "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", |       "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "defaults": { |     "defaults": { | ||||||
|       "version": "1.0.3", |       "version": "1.0.3", | ||||||
| @@ -1206,6 +1290,11 @@ | |||||||
|       "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", |       "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "detect-newline": { | ||||||
|  |       "version": "2.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", | ||||||
|  |       "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" | ||||||
|  |     }, | ||||||
|     "dns-prefetch-control": { |     "dns-prefetch-control": { | ||||||
|       "version": "0.1.0", |       "version": "0.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", |       "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", | ||||||
| @@ -1366,11 +1455,51 @@ | |||||||
|         "has-binary2": "~1.0.2" |         "has-binary2": "~1.0.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "es5-ext": { | ||||||
|  |       "version": "0.10.46", | ||||||
|  |       "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", | ||||||
|  |       "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", | ||||||
|  |       "requires": { | ||||||
|  |         "es6-iterator": "~2.0.3", | ||||||
|  |         "es6-symbol": "~3.1.1", | ||||||
|  |         "next-tick": "1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "es6-iterator": { | ||||||
|  |       "version": "2.0.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", | ||||||
|  |       "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", | ||||||
|  |       "requires": { | ||||||
|  |         "d": "1", | ||||||
|  |         "es5-ext": "^0.10.35", | ||||||
|  |         "es6-symbol": "^3.1.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "es6-promise": { |     "es6-promise": { | ||||||
|       "version": "3.3.1", |       "version": "3.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", |       "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", | ||||||
|       "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" |       "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" | ||||||
|     }, |     }, | ||||||
|  |     "es6-symbol": { | ||||||
|  |       "version": "3.1.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", | ||||||
|  |       "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", | ||||||
|  |       "requires": { | ||||||
|  |         "d": "1", | ||||||
|  |         "es5-ext": "~0.10.14" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "es6-weak-map": { | ||||||
|  |       "version": "2.0.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", | ||||||
|  |       "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", | ||||||
|  |       "requires": { | ||||||
|  |         "d": "1", | ||||||
|  |         "es5-ext": "^0.10.14", | ||||||
|  |         "es6-iterator": "^2.0.1", | ||||||
|  |         "es6-symbol": "^3.1.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "escape-html": { |     "escape-html": { | ||||||
|       "version": "1.0.3", |       "version": "1.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", |       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||||||
| @@ -1393,6 +1522,15 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", |       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||||||
|       "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" |       "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" | ||||||
|     }, |     }, | ||||||
|  |     "event-emitter": { | ||||||
|  |       "version": "0.3.5", | ||||||
|  |       "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", | ||||||
|  |       "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", | ||||||
|  |       "requires": { | ||||||
|  |         "d": "1", | ||||||
|  |         "es5-ext": "~0.10.14" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "exif-parser": { |     "exif-parser": { | ||||||
|       "version": "0.1.12", |       "version": "0.1.12", | ||||||
|       "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", |       "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", | ||||||
| @@ -1847,7 +1985,6 @@ | |||||||
|       "version": "3.0.2", |       "version": "3.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", |       "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | ||||||
|       "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", |       "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "assign-symbols": "^1.0.0", |         "assign-symbols": "^1.0.0", | ||||||
|         "is-extendable": "^1.0.1" |         "is-extendable": "^1.0.1" | ||||||
| @@ -1857,7 +1994,6 @@ | |||||||
|           "version": "1.0.1", |           "version": "1.0.1", | ||||||
|           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", |           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | ||||||
|           "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", |           "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | ||||||
|           "dev": true, |  | ||||||
|           "requires": { |           "requires": { | ||||||
|             "is-plain-object": "^2.0.4" |             "is-plain-object": "^2.0.4" | ||||||
|           } |           } | ||||||
| @@ -2460,6 +2596,31 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "gulp-sourcemaps": { | ||||||
|  |       "version": "2.6.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", | ||||||
|  |       "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", | ||||||
|  |       "requires": { | ||||||
|  |         "@gulp-sourcemaps/identity-map": "1.X", | ||||||
|  |         "@gulp-sourcemaps/map-sources": "1.X", | ||||||
|  |         "acorn": "5.X", | ||||||
|  |         "convert-source-map": "1.X", | ||||||
|  |         "css": "2.X", | ||||||
|  |         "debug-fabulous": "1.X", | ||||||
|  |         "detect-newline": "2.X", | ||||||
|  |         "graceful-fs": "4.X", | ||||||
|  |         "source-map": "~0.6.0", | ||||||
|  |         "strip-bom-string": "1.X", | ||||||
|  |         "through2": "2.X" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "source-map": { | ||||||
|  |           "version": "0.6.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||||
|  |           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "gulp-uglify": { |     "gulp-uglify": { | ||||||
|       "version": "3.0.1", |       "version": "3.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.1.tgz", |       "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.1.tgz", | ||||||
| @@ -2500,6 +2661,48 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "gulp-uglify-es": { | ||||||
|  |       "version": "1.0.4", | ||||||
|  |       "resolved": "https://registry.npmjs.org/gulp-uglify-es/-/gulp-uglify-es-1.0.4.tgz", | ||||||
|  |       "integrity": "sha512-UMRufZsBmQizCYpftutaiVoLswpbzFEfY90EJLU4YlTgculeHnanb794s88TMd5tpCZVC638sAX6JrLVYTP/Wg==", | ||||||
|  |       "requires": { | ||||||
|  |         "o-stream": "^0.2.2", | ||||||
|  |         "plugin-error": "^1.0.1", | ||||||
|  |         "terser": "^3.7.5", | ||||||
|  |         "vinyl": "^2.1.0", | ||||||
|  |         "vinyl-sourcemaps-apply": "^0.2.1" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "clone": { | ||||||
|  |           "version": "2.1.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", | ||||||
|  |           "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" | ||||||
|  |         }, | ||||||
|  |         "clone-stats": { | ||||||
|  |           "version": "1.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", | ||||||
|  |           "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" | ||||||
|  |         }, | ||||||
|  |         "replace-ext": { | ||||||
|  |           "version": "1.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", | ||||||
|  |           "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" | ||||||
|  |         }, | ||||||
|  |         "vinyl": { | ||||||
|  |           "version": "2.2.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", | ||||||
|  |           "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", | ||||||
|  |           "requires": { | ||||||
|  |             "clone": "^2.1.1", | ||||||
|  |             "clone-buffer": "^1.0.0", | ||||||
|  |             "clone-stats": "^1.0.0", | ||||||
|  |             "cloneable-readable": "^1.0.0", | ||||||
|  |             "remove-trailing-separator": "^1.0.1", | ||||||
|  |             "replace-ext": "^1.0.0" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "gulp-util": { |     "gulp-util": { | ||||||
|       "version": "3.0.8", |       "version": "3.0.8", | ||||||
|       "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", |       "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", | ||||||
| @@ -3000,11 +3203,15 @@ | |||||||
|       "version": "2.0.4", |       "version": "2.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", |       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", | ||||||
|       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", |       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "isobject": "^3.0.1" |         "isobject": "^3.0.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "is-promise": { | ||||||
|  |       "version": "2.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", | ||||||
|  |       "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" | ||||||
|  |     }, | ||||||
|     "is-relative": { |     "is-relative": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", | ||||||
| @@ -3059,8 +3266,7 @@ | |||||||
|     "isobject": { |     "isobject": { | ||||||
|       "version": "3.0.1", |       "version": "3.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", |       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | ||||||
|       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", |       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "jimp": { |     "jimp": { | ||||||
|       "version": "0.2.28", |       "version": "0.2.28", | ||||||
| @@ -3337,6 +3543,14 @@ | |||||||
|       "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", |       "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "lru-queue": { | ||||||
|  |       "version": "0.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", | ||||||
|  |       "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", | ||||||
|  |       "requires": { | ||||||
|  |         "es5-ext": "~0.10.2" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "macaddress": { |     "macaddress": { | ||||||
|       "version": "0.2.8", |       "version": "0.2.8", | ||||||
|       "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", |       "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", | ||||||
| @@ -3392,6 +3606,21 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", |       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||||||
|       "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" |       "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | ||||||
|     }, |     }, | ||||||
|  |     "memoizee": { | ||||||
|  |       "version": "0.4.14", | ||||||
|  |       "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", | ||||||
|  |       "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", | ||||||
|  |       "requires": { | ||||||
|  |         "d": "1", | ||||||
|  |         "es5-ext": "^0.10.45", | ||||||
|  |         "es6-weak-map": "^2.0.2", | ||||||
|  |         "event-emitter": "^0.3.5", | ||||||
|  |         "is-promise": "^2.1", | ||||||
|  |         "lru-queue": "0.1", | ||||||
|  |         "next-tick": "1", | ||||||
|  |         "timers-ext": "^0.1.5" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "merge-descriptors": { |     "merge-descriptors": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||||||
| @@ -3798,6 +4027,11 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", |       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | ||||||
|       "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" |       "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" | ||||||
|     }, |     }, | ||||||
|  |     "next-tick": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", | ||||||
|  |       "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" | ||||||
|  |     }, | ||||||
|     "nocache": { |     "nocache": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", | ||||||
| @@ -3808,6 +4042,14 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.6.4.tgz", |       "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.6.4.tgz", | ||||||
|       "integrity": "sha512-SD4uuX7NMzZ5f5m1XHDd13J4UC3SmdJk8DsmU1g6Nrs5h3x9LcXr6EBPZIqXRJ3LrF7RdklzGhZRF/TuylTcLg==" |       "integrity": "sha512-SD4uuX7NMzZ5f5m1XHDd13J4UC3SmdJk8DsmU1g6Nrs5h3x9LcXr6EBPZIqXRJ3LrF7RdklzGhZRF/TuylTcLg==" | ||||||
|     }, |     }, | ||||||
|  |     "normalize-path": { | ||||||
|  |       "version": "2.1.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", | ||||||
|  |       "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", | ||||||
|  |       "requires": { | ||||||
|  |         "remove-trailing-separator": "^1.0.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "normalize-range": { |     "normalize-range": { | ||||||
|       "version": "0.1.2", |       "version": "0.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", |       "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", | ||||||
| @@ -3845,6 +4087,11 @@ | |||||||
|       "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", |       "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "o-stream": { | ||||||
|  |       "version": "0.2.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/o-stream/-/o-stream-0.2.2.tgz", | ||||||
|  |       "integrity": "sha512-V3j76KU3g/Gyl8rpdi2z72rn5zguMvTCQgAXfBe3pxEefKqXmOUOD7mvx/mNjykdxGqDVfpSoo8r+WdrkWg/1Q==" | ||||||
|  |     }, | ||||||
|     "object-assign": { |     "object-assign": { | ||||||
|       "version": "3.0.0", |       "version": "3.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", |       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", | ||||||
| @@ -4188,7 +4435,6 @@ | |||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", | ||||||
|       "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", |       "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "ansi-colors": "^1.0.1", |         "ansi-colors": "^1.0.1", | ||||||
|         "arr-diff": "^4.0.0", |         "arr-diff": "^4.0.0", | ||||||
| @@ -4547,8 +4793,7 @@ | |||||||
|     "process-nextick-args": { |     "process-nextick-args": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | ||||||
|       "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", |       "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "promise": { |     "promise": { | ||||||
|       "version": "7.3.1", |       "version": "7.3.1", | ||||||
| @@ -4779,8 +5024,7 @@ | |||||||
|     "remove-trailing-separator": { |     "remove-trailing-separator": { | ||||||
|       "version": "1.1.0", |       "version": "1.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", |       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | ||||||
|       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", |       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "repeat-element": { |     "repeat-element": { | ||||||
|       "version": "1.1.2", |       "version": "1.1.2", | ||||||
| @@ -4947,8 +5191,7 @@ | |||||||
|     "resolve-url": { |     "resolve-url": { | ||||||
|       "version": "0.2.1", |       "version": "0.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", |       "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", | ||||||
|       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", |       "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "ret": { |     "ret": { | ||||||
|       "version": "0.1.15", |       "version": "0.1.15", | ||||||
| @@ -5379,6 +5622,39 @@ | |||||||
|         "amdefine": ">=0.0.4" |         "amdefine": ">=0.0.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "source-map-resolve": { | ||||||
|  |       "version": "0.5.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", | ||||||
|  |       "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", | ||||||
|  |       "requires": { | ||||||
|  |         "atob": "^2.1.1", | ||||||
|  |         "decode-uri-component": "^0.2.0", | ||||||
|  |         "resolve-url": "^0.2.1", | ||||||
|  |         "source-map-url": "^0.4.0", | ||||||
|  |         "urix": "^0.1.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "source-map-support": { | ||||||
|  |       "version": "0.5.9", | ||||||
|  |       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", | ||||||
|  |       "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", | ||||||
|  |       "requires": { | ||||||
|  |         "buffer-from": "^1.0.0", | ||||||
|  |         "source-map": "^0.6.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "source-map": { | ||||||
|  |           "version": "0.6.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||||
|  |           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "source-map-url": { | ||||||
|  |       "version": "0.4.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", | ||||||
|  |       "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" | ||||||
|  |     }, | ||||||
|     "sparkles": { |     "sparkles": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", | ||||||
| @@ -5542,6 +5818,11 @@ | |||||||
|         "is-utf8": "^0.2.0" |         "is-utf8": "^0.2.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "strip-bom-string": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", | ||||||
|  |       "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" | ||||||
|  |     }, | ||||||
|     "supports-color": { |     "supports-color": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", | ||||||
| @@ -5563,11 +5844,32 @@ | |||||||
|         "whet.extend": "~0.9.9" |         "whet.extend": "~0.9.9" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "terser": { | ||||||
|  |       "version": "3.8.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/terser/-/terser-3.8.2.tgz", | ||||||
|  |       "integrity": "sha512-FGSBXiBJe2TSXy6pWwXpY0YcEWEK35UKL64BBbxX3aHqM4Nj0RMqXvqBuoSGfyd80t8MKQ5JwYm5jRRGTSEFNg==", | ||||||
|  |       "requires": { | ||||||
|  |         "commander": "~2.17.1", | ||||||
|  |         "source-map": "~0.6.1", | ||||||
|  |         "source-map-support": "~0.5.6" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "commander": { | ||||||
|  |           "version": "2.17.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", | ||||||
|  |           "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" | ||||||
|  |         }, | ||||||
|  |         "source-map": { | ||||||
|  |           "version": "0.6.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||||
|  |           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "through2": { |     "through2": { | ||||||
|       "version": "2.0.3", |       "version": "2.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", |       "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", | ||||||
|       "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", |       "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "readable-stream": "^2.1.5", |         "readable-stream": "^2.1.5", | ||||||
|         "xtend": "~4.0.1" |         "xtend": "~4.0.1" | ||||||
| @@ -5576,32 +5878,27 @@ | |||||||
|         "core-util-is": { |         "core-util-is": { | ||||||
|           "version": "1.0.2", |           "version": "1.0.2", | ||||||
|           "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", |           "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||||||
|           "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", |           "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "inherits": { |         "inherits": { | ||||||
|           "version": "2.0.3", |           "version": "2.0.3", | ||||||
|           "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", |           "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||||||
|           "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", |           "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "isarray": { |         "isarray": { | ||||||
|           "version": "1.0.0", |           "version": "1.0.0", | ||||||
|           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", |           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||||
|           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", |           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "process-nextick-args": { |         "process-nextick-args": { | ||||||
|           "version": "2.0.0", |           "version": "2.0.0", | ||||||
|           "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", |           "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | ||||||
|           "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", |           "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "readable-stream": { |         "readable-stream": { | ||||||
|           "version": "2.3.6", |           "version": "2.3.6", | ||||||
|           "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", |           "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | ||||||
|           "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", |           "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | ||||||
|           "dev": true, |  | ||||||
|           "requires": { |           "requires": { | ||||||
|             "core-util-is": "~1.0.0", |             "core-util-is": "~1.0.0", | ||||||
|             "inherits": "~2.0.3", |             "inherits": "~2.0.3", | ||||||
| @@ -5615,14 +5912,12 @@ | |||||||
|         "safe-buffer": { |         "safe-buffer": { | ||||||
|           "version": "5.1.1", |           "version": "5.1.1", | ||||||
|           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", |           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", | ||||||
|           "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", |           "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "string_decoder": { |         "string_decoder": { | ||||||
|           "version": "1.1.1", |           "version": "1.1.1", | ||||||
|           "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", |           "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||||
|           "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |           "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||||
|           "dev": true, |  | ||||||
|           "requires": { |           "requires": { | ||||||
|             "safe-buffer": "~5.1.0" |             "safe-buffer": "~5.1.0" | ||||||
|           } |           } | ||||||
| @@ -5630,14 +5925,12 @@ | |||||||
|         "util-deprecate": { |         "util-deprecate": { | ||||||
|           "version": "1.0.2", |           "version": "1.0.2", | ||||||
|           "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", |           "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||||
|           "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", |           "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||||||
|           "dev": true |  | ||||||
|         }, |         }, | ||||||
|         "xtend": { |         "xtend": { | ||||||
|           "version": "4.0.1", |           "version": "4.0.1", | ||||||
|           "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", |           "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", | ||||||
|           "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", |           "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" | ||||||
|           "dev": true |  | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @@ -5661,6 +5954,15 @@ | |||||||
|       "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", |       "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "timers-ext": { | ||||||
|  |       "version": "0.1.5", | ||||||
|  |       "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", | ||||||
|  |       "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", | ||||||
|  |       "requires": { | ||||||
|  |         "es5-ext": "~0.10.14", | ||||||
|  |         "next-tick": "1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "tinycolor2": { |     "tinycolor2": { | ||||||
|       "version": "1.4.1", |       "version": "1.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", |       "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", | ||||||
| @@ -5919,8 +6221,7 @@ | |||||||
|     "urix": { |     "urix": { | ||||||
|       "version": "0.1.0", |       "version": "0.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", |       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", | ||||||
|       "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", |       "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "url-regex": { |     "url-regex": { | ||||||
|       "version": "3.2.0", |       "version": "3.2.0", | ||||||
| @@ -5956,8 +6257,7 @@ | |||||||
|     "util-deprecate": { |     "util-deprecate": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||||
|       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", |       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "utils-merge": { |     "utils-merge": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
| @@ -6119,7 +6419,6 @@ | |||||||
|       "version": "0.2.1", |       "version": "0.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", |       "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", | ||||||
|       "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", |       "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "source-map": "^0.5.1" |         "source-map": "^0.5.1" | ||||||
|       }, |       }, | ||||||
| @@ -6127,8 +6426,7 @@ | |||||||
|         "source-map": { |         "source-map": { | ||||||
|           "version": "0.5.7", |           "version": "0.5.7", | ||||||
|           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", |           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||||||
|           "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", |           "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" | ||||||
|           "dev": true |  | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|   | |||||||
| @@ -40,6 +40,8 @@ | |||||||
|     "express-recaptcha": "^3.0.1", |     "express-recaptcha": "^3.0.1", | ||||||
|     "express-session": "^1.15.6", |     "express-session": "^1.15.6", | ||||||
|     "express-sessions": "^1.0.6", |     "express-sessions": "^1.0.6", | ||||||
|  |     "gulp-sourcemaps": "^2.6.4", | ||||||
|  |     "gulp-uglify-es": "^1.0.4", | ||||||
|     "helmet": "^3.12.0", |     "helmet": "^3.12.0", | ||||||
|     "jimp": "^0.2.28", |     "jimp": "^0.2.28", | ||||||
|     "mongodb": "^2.2.35", |     "mongodb": "^2.2.35", | ||||||
|   | |||||||
| @@ -13,6 +13,40 @@ | |||||||
|   transition: all .3s !important; |   transition: all .3s !important; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .prev.playbar, .skip.playbar { | ||||||
|  |     float: left; | ||||||
|  |     font-size: 24px; | ||||||
|  |     cursor: pointer; | ||||||
|  |     height: 32px; | ||||||
|  |     line-height: 31px; | ||||||
|  |     padding-top: 3px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .prev, .skip { | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: center; | ||||||
|  |   align-items: center; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #playpause, .prev.playbar, .skip.playbar { | ||||||
|  |     padding: 0 2.5px; | ||||||
|  | } | ||||||
|  | .playbar-btn:hover { | ||||||
|  |     background-color: rgba(0,0,0,.6); | ||||||
|  |     color: hsla(0,0%,100%,.5); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .hide { | ||||||
|  |     display: none!important; | ||||||
|  | } | ||||||
|  | .playbar-btn { | ||||||
|  |     cursor: pointer; | ||||||
|  |     transition: background-color .2s; | ||||||
|  | } | ||||||
|  | #controls, .playbar { | ||||||
|  |     color: #fff; | ||||||
|  | } | ||||||
|  |  | ||||||
| #player_loader_container { | #player_loader_container { | ||||||
|   width: 100%; |   width: 100%; | ||||||
|   height: 100%; |   height: 100%; | ||||||
| @@ -252,9 +286,28 @@ | |||||||
|   color:white; |   color:white; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .margin-playbar { | ||||||
|  |   margin-left: 10px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #seekToDuration{ | ||||||
|  |     position: absolute; | ||||||
|  |     background: #2d2d2d; | ||||||
|  |     color:white; | ||||||
|  |     padding: 10px 8px; | ||||||
|  |     z-index: 2000; | ||||||
|  |     background-color: #2d2d2d; | ||||||
|  |     border-radius: 2px; | ||||||
|  |     color: #fff; | ||||||
|  |     min-height: 36px; | ||||||
|  |     text-align: center; | ||||||
|  |     max-width: calc(100% - 4px); | ||||||
|  |     pointer-events: none; | ||||||
|  | } | ||||||
|  |  | ||||||
| #playpause, #volume-button | #playpause, #volume-button | ||||||
| { | { | ||||||
|   margin-left:10px; |  | ||||||
|   font-size: 23px; |   font-size: 23px; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -364,61 +364,6 @@ var Channel = { | |||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|     seekToClick: function(e){ |  | ||||||
|         var acceptable = ["bar", "controls", "duration"]; |  | ||||||
|  |  | ||||||
|         if(acceptable.indexOf(e.target.getAttribute("id")) >= 0) { |  | ||||||
|             if(full_playlist == undefined) return; |  | ||||||
|             var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth; |  | ||||||
|             total = total * e.clientX; |  | ||||||
|  |  | ||||||
|             if(!chromecastAvailable){ |  | ||||||
|                 if(videoSource == "youtube") Player.player.seekTo(total + Player.np.start); |  | ||||||
|                 else if(videoSource == "soundcloud") Player.soundcloud_player.seek((total + Player.np.start) * 1000); |  | ||||||
|                 dMinutes = Math.floor(duration / 60); |  | ||||||
|                 dSeconds = duration - dMinutes * 60; |  | ||||||
|                 currDurr = total; |  | ||||||
|                 if(currDurr - Player.np.start > duration) { |  | ||||||
|                     currDurr = duration - Player.np.start; |  | ||||||
|                 } |  | ||||||
|                 currDurr = currDurr - Player.np.start; |  | ||||||
|                 minutes = Math.floor(currDurr / 60); |  | ||||||
|                 seconds = currDurr - (minutes * 60); |  | ||||||
|                 document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" <span id='dash'>/</span> "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds); |  | ||||||
|                 per = (100 / duration) * currDurr; |  | ||||||
|                 if(per >= 100) |  | ||||||
|                 per = 100; |  | ||||||
|                 else if(duration === 0) |  | ||||||
|                 per = 0; |  | ||||||
|                 document.getElementById("bar").style.width = per + "%" |  | ||||||
|             } else { |  | ||||||
|                 castSession.sendMessage("urn:x-cast:zoff.me", {type: "seekTo", seekTo: total}); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|  |  | ||||||
|     seekToMove: function(e){ |  | ||||||
|         var pos_x = event.clientX - Math.ceil(document.getElementById("seekToDuration").offsetWidth / 2); |  | ||||||
|         if(pos_x < 0) pos_x = 0; |  | ||||||
|         else if(pos_x + document.getElementById("seekToDuration").offsetWidth > document.getElementById("controls").offsetWidth) { |  | ||||||
|             pos_x = document.getElementById("controls").offsetWidth - document.getElementById("seekToDuration").offsetWidth; |  | ||||||
|         } |  | ||||||
|         Helper.css("#seekToDuration", "left", pos_x + "px"); |  | ||||||
|         try{ |  | ||||||
|             var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth; |  | ||||||
|             total = total * event.clientX; |  | ||||||
|             var _time = Helper.secondsToOther(total); |  | ||||||
|             var _minutes = Helper.pad(_time[0]); |  | ||||||
|             var _seconds = Helper.pad(Math.ceil(_time[1])); |  | ||||||
|             Helper.setHtml("#seekToDuration", _minutes + ":" + _seconds); |  | ||||||
|  |  | ||||||
|             var acceptable = ["bar", "controls", "duration"]; |  | ||||||
|             if(acceptable.indexOf(event.target.getAttribute("id")) >= 0 && dragging) { |  | ||||||
|                 document.getElementById("bar").style.width(((100 / duration) * total) + "%"); |  | ||||||
|             } |  | ||||||
|         } catch(e){} |  | ||||||
|     }, |  | ||||||
|  |  | ||||||
|     set_title_width: function(start){ |     set_title_width: function(start){ | ||||||
|         if(window.innerWidth > 600){ |         if(window.innerWidth > 600){ | ||||||
|             var add_width = document.getElementsByClassName("brand-logo")[0].offsetWidth |             var add_width = document.getElementsByClassName("brand-logo")[0].offsetWidth | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ var song_title = ""; | |||||||
| var paused = false; | var paused = false; | ||||||
| var client = false; | var client = false; | ||||||
| var startTime = 0; | var startTime = 0; | ||||||
|  | var full_playlist; | ||||||
| var hostMode = false; | var hostMode = false; | ||||||
| var soundcloud_enabled = true; | var soundcloud_enabled = true; | ||||||
| var socket_connected = false; | var socket_connected = false; | ||||||
| @@ -12,6 +13,8 @@ var dynamicListeners = {}; | |||||||
| var player_ready = false; | var player_ready = false; | ||||||
| var previousSoundcloud; | var previousSoundcloud; | ||||||
| var buffering = false; | var buffering = false; | ||||||
|  | var prev_chan_list = ""; | ||||||
|  | var local_new_channel = false; | ||||||
| var empty_clear = false; | var empty_clear = false; | ||||||
| var fix_too_far = false; | var fix_too_far = false; | ||||||
| var beginning = false; | var beginning = false; | ||||||
| @@ -89,6 +92,7 @@ window.addEventListener("load", function() { | |||||||
|         Helper.addClass("#player_overlay", "video_only"); |         Helper.addClass("#player_overlay", "video_only"); | ||||||
|         Helper.css("#zoffbutton", "bottom", "0px"); |         Helper.css("#zoffbutton", "bottom", "0px"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     M.Modal.init(document.getElementById("locked_channel"), { |     M.Modal.init(document.getElementById("locked_channel"), { | ||||||
|         dismissible: false |         dismissible: false | ||||||
|     }); |     }); | ||||||
| @@ -98,6 +102,10 @@ window.addEventListener("load", function() { | |||||||
|     //add = "localhost"; |     //add = "localhost"; | ||||||
|     socket = io.connect(''+add+':8080', connection_options); |     socket = io.connect(''+add+':8080', connection_options); | ||||||
|  |  | ||||||
|  |     if(hash.indexOf("localmode") > 1) { | ||||||
|  |         change_offline(true, false); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     socket.on('auth_required', function() { |     socket.on('auth_required', function() { | ||||||
|         M.Modal.getInstance(document.getElementById("locked_channel")).open(); |         M.Modal.getInstance(document.getElementById("locked_channel")).open(); | ||||||
|     }); |     }); | ||||||
| @@ -274,28 +282,111 @@ function emit() { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function change_offline(enabled, already_offline){ | ||||||
| function handleEvent(e, target, tried, type) { |     if(client) { | ||||||
|     for(var y = 0; y < e.path.length; y++) { |         offline = false; | ||||||
|         var target = e.path[y]; |  | ||||||
|         if(dynamicListeners[type] && dynamicListeners[type]["#" + target.id]) { |  | ||||||
|             dynamicListeners[type]["#" + target.id].call(target); |  | ||||||
|         return; |         return; | ||||||
|  |     } | ||||||
|  |     offline = enabled; | ||||||
|  |     socket.emit("offline", {status: enabled, channel: chan != undefined ? chan.toLowerCase() : ""}); | ||||||
|  |     if(!Helper.mobilecheck()) { | ||||||
|  |         if(document.querySelectorAll("#offline-mode").length == 1 && M.Tooltip.getInstance(document.getElementById("offline-mode"))) { | ||||||
|  |             Helper.tooltip("#offline-mode", 'destroy'); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     var mouseEnter = function(e){ | ||||||
|  |         Helper.removeClass("#seekToDuration", "hide"); | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     var mouseLeave = function(e){ | ||||||
|  |         dragging = false; | ||||||
|  |         Helper.addClass("#seekToDuration", "hide"); | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     var mouseDown = function(e) { | ||||||
|  |         var acceptable = ["bar", "controls", "duration"]; | ||||||
|  |         if(acceptable.indexOf(e.target.id) >= 0) { | ||||||
|  |             dragging = true; | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     var mouseUp = function(e) { | ||||||
|  |         dragging = false; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     if(enabled){ | ||||||
|  |         Helper.addClass("#viewers", "hide"); | ||||||
|  |         Helper.removeClass(".margin-playbar", "margin-playbar"); | ||||||
|  |         Helper.addClass(".prev playbar", "margin-playbar"); | ||||||
|  |         Helper.removeClass(".prev playbar", "hide"); | ||||||
|  |         Helper.removeClass(".skip playbar", "hide"); | ||||||
|  |         Helper.removeClass("#offline-mode", "waves-cyan"); | ||||||
|  |         Helper.addClass("#offline-mode", "cyan"); | ||||||
|  |         Helper.removeClass(".delete-context-menu", "context-menu-disabled"); | ||||||
|  |         if(!Helper.mobilecheck()) { | ||||||
|  |             Helper.tooltip("#offline-mode", { | ||||||
|  |                 delay: 5, | ||||||
|  |                 position: "bottom", | ||||||
|  |                 html: "Disable local mode" | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if(window.location.pathname != "/"){ | ||||||
|  |             socket.removeEventListener("color"); | ||||||
|  |             document.getElementById("controls").addEventListener("mouseenter", mouseEnter, false); | ||||||
|  |             document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false); | ||||||
|  |             document.getElementById("controls").addEventListener("mousedown", mouseDown, false); | ||||||
|  |             document.getElementById("controls").addEventListener("mouseup", mouseUp, false); | ||||||
|  |             document.getElementById("controls").addEventListener("mousemove", seekToMove); | ||||||
|  |             document.getElementById("controls").addEventListener("click", seekToClick); | ||||||
|  |  | ||||||
|  |             document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>"); | ||||||
|  |             var controlElement = document.querySelector("#controls"); | ||||||
|  |             Helper.css("#seekToDuration", "bottom", "50px"); | ||||||
|  |             Helper.addClass("#controls", "ewresize"); | ||||||
|  |         } | ||||||
|  |         if(full_playlist != undefined && !already_offline){ | ||||||
|  |             for(var x = 0; x < full_playlist.length; x++){ | ||||||
|  |                 full_playlist[x].votes = 0; | ||||||
|  |             } | ||||||
|  |             List.sortList(); | ||||||
|  |             List.populate_list(full_playlist); | ||||||
|  |         } | ||||||
|     } else { |     } else { | ||||||
|             if(target.classList == undefined) return; |  | ||||||
|             for(var i = 0; i < target.classList.length; i++) { |         if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled"); | ||||||
|                 if(dynamicListeners[type] && dynamicListeners[type]["." + target.classList[i]]) { |         Helper.removeClass(".margin-playbar", "margin-playbar"); | ||||||
|                     dynamicListeners[type]["." + target.classList[i]].call(target); |         Helper.addClass("#playpause", "margin-playbar"); | ||||||
|                     return; |         Helper.removeClass("#viewers", "hide"); | ||||||
|                 } |         Helper.addClass(".prev playbar", "hide"); | ||||||
|             } |         Helper.addClass(".skip playbar", "hide"); | ||||||
|         } |         Helper.addClass("#offline-mode", "waves-cyan"); | ||||||
|     } |         Helper.removeClass("#offline-mode", "cyan"); | ||||||
|  |         if(!Helper.mobilecheck()) { | ||||||
|  |             Helper.tooltip("#offline-mode", { | ||||||
|  |                 delay: 5, | ||||||
|  |                 position: "bottom", | ||||||
|  |                 html: "Enable local mode" | ||||||
|  |             }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
| function addListener(type, element, callback) { |         if(window.location.pathname != "/"){ | ||||||
|     if(dynamicListeners[type] == undefined) dynamicListeners[type] = {}; |             document.getElementById("controls").removeEventListener("mouseenter", mouseEnter, false); | ||||||
|     dynamicListeners[type][element] = callback; |             document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false); | ||||||
|  |             document.getElementById("controls").removeEventListener("mousedown", mouseDown, false); | ||||||
|  |             document.getElementById("controls").removeEventListener("mouseup", mouseUp, false); | ||||||
|  |             document.getElementById("controls").removeEventListener("mousemove", seekToMove); | ||||||
|  |             document.getElementById("controls").removeEventListener("click", seekToClick); | ||||||
|  |             Helper.removeElement("#seekToDuration"); | ||||||
|  |             socket.on("color", Player.setBGimage); | ||||||
|  |             socket.emit("pos", {channel: chan.toLowerCase()}); | ||||||
|  |             var add = ""; | ||||||
|  |             //if(private_channel) add = Crypt.getCookie("_uI") + "_"; | ||||||
|  |             socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()}); | ||||||
|  |             Helper.removeClass("#controls", "ewresize"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| function before_toast(){ | function before_toast(){ | ||||||
| @@ -318,7 +409,8 @@ addListener("click", "#zoffbutton", function(e) { | |||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("click", ".vote-container", function(e) { | addListener("click", ".vote-container", function(e) { | ||||||
|     var id = this.getAttribute("data-video-id"); |     var that = e; | ||||||
|  |     var id = that.getAttribute("data-video-id"); | ||||||
|     List.vote(id, "pos"); |     List.vote(id, "pos"); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| @@ -336,6 +428,18 @@ addListener("click", ".next_page", function(e) { | |||||||
|     List.dynamicContentPage(1); |     List.dynamicContentPage(1); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | addListener("click", ".prev", function(event){ | ||||||
|  |     this.preventDefault(); | ||||||
|  |     if(!offline) return; | ||||||
|  |     List.skip(false); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | addListener("click", ".skip", function(event){ | ||||||
|  |     this.preventDefault(); | ||||||
|  |     if(!offline) return; | ||||||
|  |     List.skip(true); | ||||||
|  | }); | ||||||
|  |  | ||||||
| addListener("click", ".last_page", function(e){ | addListener("click", ".last_page", function(e){ | ||||||
|     event.preventDefault(); |     event.preventDefault(); | ||||||
|     List.dynamicContentPage(10); |     List.dynamicContentPage(10); | ||||||
|   | |||||||
| @@ -753,10 +753,10 @@ function disable_debug(){ | |||||||
|     localStorage.debug = false; |     localStorage.debug = false; | ||||||
| } | } | ||||||
|  |  | ||||||
| function embed_code(autoplay, width, height, color, embed_code){ | function embed_code(autoplay, width, height, color, embed_code, embed_local){ | ||||||
|     var autoplay_add = ""; |     var autoplay_add = ""; | ||||||
|     if(autoplay == "&autoplay") autoplay_add = 'allow="autoplay"'; |     if(autoplay == "&autoplay") autoplay_add = 'allow="autoplay"'; | ||||||
|     return '<iframe src="https://zoff.me/_embed#' + chan.toLowerCase() + '&' + color + autoplay + embed_videoonly + '" width="' + width + 'px" height="' + height + 'px" ' + autoplay_add + '></iframe>'; |     return '<iframe src="https://zoff.me/_embed#' + chan.toLowerCase() + '&' + color + autoplay + embed_videoonly + embed_local + '" width="' + width + 'px" height="' + height + 'px" ' + autoplay_add + '></iframe>'; | ||||||
| } | } | ||||||
|  |  | ||||||
| function change_offline(enabled, already_offline){ | function change_offline(enabled, already_offline){ | ||||||
| @@ -795,13 +795,6 @@ function change_offline(enabled, already_offline){ | |||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     if(enabled){ |     if(enabled){ | ||||||
|         /*if(list_html == undefined){ |  | ||||||
|         var tempOuter = document.createElement("div"); |  | ||||||
|         list_html.innerHTML = list_html; |  | ||||||
|         //list_html.find(".list-remove").removeClass("hide"); |  | ||||||
|         list_html = list_html.innerHTML; |  | ||||||
|     }*/ |  | ||||||
|     //$(".list-remove").removeClass("hide"); |  | ||||||
|         Helper.addClass("#viewers", "hide"); |         Helper.addClass("#viewers", "hide"); | ||||||
|         Helper.removeClass(".margin-playbar", "margin-playbar"); |         Helper.removeClass(".margin-playbar", "margin-playbar"); | ||||||
|         Helper.addClass(".prev playbar", "margin-playbar"); |         Helper.addClass(".prev playbar", "margin-playbar"); | ||||||
| @@ -823,8 +816,8 @@ function change_offline(enabled, already_offline){ | |||||||
|             document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false); |             document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false); | ||||||
|             document.getElementById("controls").addEventListener("mousedown", mouseDown, false); |             document.getElementById("controls").addEventListener("mousedown", mouseDown, false); | ||||||
|             document.getElementById("controls").addEventListener("mouseup", mouseUp, false); |             document.getElementById("controls").addEventListener("mouseup", mouseUp, false); | ||||||
|         document.getElementById("controls").addEventListener("mousemove", Channel.seekToMove); |             document.getElementById("controls").addEventListener("mousemove", seekToMove); | ||||||
|         document.getElementById("controls").addEventListener("click", Channel.seekToClick); |             document.getElementById("controls").addEventListener("click", seekToClick); | ||||||
|  |  | ||||||
|             document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>"); |             document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>"); | ||||||
|             var controlElement = document.querySelector("#controls"); |             var controlElement = document.querySelector("#controls"); | ||||||
| @@ -840,12 +833,6 @@ function change_offline(enabled, already_offline){ | |||||||
|             List.populate_list(full_playlist); |             List.populate_list(full_playlist); | ||||||
|         } |         } | ||||||
|     } else { |     } else { | ||||||
|     /*if(list_html == undefined){ |  | ||||||
|     var tempOuter = document.createElement("div"); |  | ||||||
|     list_html.innerHTML = list_html; |  | ||||||
|     //list_html.find(".list-remove").removeClass("hide"); |  | ||||||
|     list_html = list_html.innerHTML; |  | ||||||
| }*/ |  | ||||||
|         if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled"); |         if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled"); | ||||||
|         Helper.removeClass(".margin-playbar", "margin-playbar"); |         Helper.removeClass(".margin-playbar", "margin-playbar"); | ||||||
|         Helper.addClass("#playpause", "margin-playbar"); |         Helper.addClass("#playpause", "margin-playbar"); | ||||||
| @@ -866,19 +853,73 @@ if(window.location.pathname != "/"){ | |||||||
|             document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false); |             document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false); | ||||||
|             document.getElementById("controls").removeEventListener("mousedown", mouseDown, false); |             document.getElementById("controls").removeEventListener("mousedown", mouseDown, false); | ||||||
|             document.getElementById("controls").removeEventListener("mouseup", mouseUp, false); |             document.getElementById("controls").removeEventListener("mouseup", mouseUp, false); | ||||||
|     document.getElementById("controls").removeEventListener("mousemove", Channel.seekToMove); |             document.getElementById("controls").removeEventListener("mousemove", seekToMove); | ||||||
|     document.getElementById("controls").removeEventListener("click", Channel.seekToClick); |             document.getElementById("controls").removeEventListener("click", seekToClick); | ||||||
|             Helper.removeElement("#seekToDuration"); |             Helper.removeElement("#seekToDuration"); | ||||||
|             socket.on("color", Player.setBGimage); |             socket.on("color", Player.setBGimage); | ||||||
|             socket.emit("pos", {channel: chan.toLowerCase()}); |             socket.emit("pos", {channel: chan.toLowerCase()}); | ||||||
|             var add = ""; |             var add = ""; | ||||||
|     //if(private_channel) add = Crypt.getCookie("_uI") + "_"; |  | ||||||
|             socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()}); |             socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()}); | ||||||
|             Helper.removeClass("#controls", "ewresize"); |             Helper.removeClass("#controls", "ewresize"); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function seekToClick(e){ | ||||||
|  |     var acceptable = ["bar", "controls", "duration"]; | ||||||
|  |  | ||||||
|  |     if(acceptable.indexOf(e.target.getAttribute("id")) >= 0) { | ||||||
|  |         if(full_playlist == undefined) return; | ||||||
|  |         var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth; | ||||||
|  |         total = total * e.clientX; | ||||||
|  |  | ||||||
|  |         if(!chromecastAvailable){ | ||||||
|  |             if(videoSource == "youtube") Player.player.seekTo(total + Player.np.start); | ||||||
|  |             else if(videoSource == "soundcloud") Player.soundcloud_player.seek((total + Player.np.start) * 1000); | ||||||
|  |             dMinutes = Math.floor(duration / 60); | ||||||
|  |             dSeconds = duration - dMinutes * 60; | ||||||
|  |             currDurr = total; | ||||||
|  |             if(currDurr - Player.np.start > duration) { | ||||||
|  |                 currDurr = duration - Player.np.start; | ||||||
|  |             } | ||||||
|  |             currDurr = currDurr - Player.np.start; | ||||||
|  |             minutes = Math.floor(currDurr / 60); | ||||||
|  |             seconds = currDurr - (minutes * 60); | ||||||
|  |             document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" <span id='dash'>/</span> "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds); | ||||||
|  |             per = (100 / duration) * currDurr; | ||||||
|  |             if(per >= 100) | ||||||
|  |             per = 100; | ||||||
|  |             else if(duration === 0) | ||||||
|  |             per = 0; | ||||||
|  |             document.getElementById("bar").style.width = per + "%" | ||||||
|  |         } else { | ||||||
|  |             castSession.sendMessage("urn:x-cast:zoff.me", {type: "seekTo", seekTo: total}); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function seekToMove(e){ | ||||||
|  |     var pos_x = event.clientX - Math.ceil(document.getElementById("seekToDuration").offsetWidth / 2); | ||||||
|  |     if(pos_x < 0) pos_x = 0; | ||||||
|  |     else if(pos_x + document.getElementById("seekToDuration").offsetWidth > document.getElementById("controls").offsetWidth) { | ||||||
|  |         pos_x = document.getElementById("controls").offsetWidth - document.getElementById("seekToDuration").offsetWidth; | ||||||
|  |     } | ||||||
|  |     Helper.css("#seekToDuration", "left", pos_x + "px"); | ||||||
|  |     try{ | ||||||
|  |         var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth; | ||||||
|  |         total = total * event.clientX; | ||||||
|  |         var _time = Helper.secondsToOther(total); | ||||||
|  |         var _minutes = Helper.pad(_time[0]); | ||||||
|  |         var _seconds = Helper.pad(Math.ceil(_time[1])); | ||||||
|  |         Helper.setHtml("#seekToDuration", _minutes + ":" + _seconds); | ||||||
|  |  | ||||||
|  |         var acceptable = ["bar", "controls", "duration"]; | ||||||
|  |         if(acceptable.indexOf(event.target.getAttribute("id")) >= 0 && dragging) { | ||||||
|  |             document.getElementById("bar").style.width(((100 / duration) * total) + "%"); | ||||||
|  |         } | ||||||
|  |     } catch(e){} | ||||||
|  | } | ||||||
|  |  | ||||||
| function resizePlaylistPlaying(playing) { | function resizePlaylistPlaying(playing) { | ||||||
|     if(document.querySelector("#wrapper") == null || embed || client) return; |     if(document.querySelector("#wrapper") == null || embed || client) return; | ||||||
|     if(window.innerWidth < 601) { |     if(window.innerWidth < 601) { | ||||||
|   | |||||||
| @@ -76,6 +76,7 @@ var not_export_html = ""; | |||||||
| var embed_height = 300; | var embed_height = 300; | ||||||
| var embed_width = 600; | var embed_width = 600; | ||||||
| var embed_videoonly = ""; | var embed_videoonly = ""; | ||||||
|  | var embed_localmode = ""; | ||||||
| var embed_autoplay = "&autoplay"; | var embed_autoplay = "&autoplay"; | ||||||
| var connect_error = false; | var connect_error = false; | ||||||
| var access_token_data_youtube = {}; | var access_token_data_youtube = {}; | ||||||
| @@ -840,13 +841,13 @@ document.addEventListener("submit", function(event) { | |||||||
| addListener("change", "#width_embed", function(event) { | addListener("change", "#width_embed", function(event) { | ||||||
|     var that = this.target; |     var that = this.target; | ||||||
|     embed_width = that.value; |     embed_width = that.value; | ||||||
|     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly); |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("change", "#height_embed", function(event) { | addListener("change", "#height_embed", function(event) { | ||||||
|     var that = this.target; |     var that = this.target; | ||||||
|     embed_height = that.value; |     embed_height = that.value; | ||||||
|     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly); |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("click", ".prev_page", function(event) { | addListener("click", ".prev_page", function(event) { | ||||||
| @@ -994,7 +995,7 @@ addListener("change", '#view_channels_select', function(event) { | |||||||
| addListener("input", '#color_embed', function(e){ | addListener("input", '#color_embed', function(e){ | ||||||
|     var that = e; |     var that = e; | ||||||
|     color = that.value.substring(1); |     color = that.value.substring(1); | ||||||
|     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly); |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("click", ".chan-link", function(e){ | addListener("click", ".chan-link", function(e){ | ||||||
| @@ -1172,13 +1173,19 @@ addListener("submit", "#listImportSpotify", function(event){ | |||||||
| addListener("change", "#autoplay", function(e) { | addListener("change", "#autoplay", function(e) { | ||||||
|     if(e.checked) embed_autoplay = "&autoplay"; |     if(e.checked) embed_autoplay = "&autoplay"; | ||||||
|     else embed_autoplay = ""; |     else embed_autoplay = ""; | ||||||
|     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly); |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("change", "#videoonly", function(e) { | addListener("change", "#videoonly", function(e) { | ||||||
|     if(e.checked) embed_videoonly = "&videoonly"; |     if(e.checked) embed_videoonly = "&videoonly"; | ||||||
|     else embed_videoonly = ""; |     else embed_videoonly = ""; | ||||||
|     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly); |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | addListener("change", "#localmode", function(e) { | ||||||
|  |     if(e.checked) embed_localmode = "&localmode"; | ||||||
|  |     else embed_localmode = ""; | ||||||
|  |     document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| addListener("click", "#playbutton_remote", function(event) { | addListener("click", "#playbutton_remote", function(event) { | ||||||
|   | |||||||
| @@ -426,7 +426,7 @@ var Player = { | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         if(offline) { |         if(offline && !embed) { | ||||||
|             var url = 'https://img.youtube.com/vi/'+id+'/mqdefault.jpg'; |             var url = 'https://img.youtube.com/vi/'+id+'/mqdefault.jpg'; | ||||||
|             if(videoSource == "soundcloud") url = Player.np.thumbnail; |             if(videoSource == "soundcloud") url = Player.np.thumbnail; | ||||||
|             getColor(url); |             getColor(url); | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
|     </div> |     </div> | ||||||
| </div> | </div> | ||||||
| <div id="song-title"></div> | <div id="song-title"></div> | ||||||
| <div id="container" style="display:inline-flex;"> | <div id="main_components" style="display:inline-flex;"> | ||||||
|     <div id="player-container"> |     <div id="player-container"> | ||||||
|         <div id="player"></div> |         <div id="player"></div> | ||||||
|         <div id="player_overlay" class="hide valign-wrapper"> |         <div id="player_overlay" class="hide valign-wrapper"> | ||||||
| @@ -25,10 +25,16 @@ | |||||||
|         </div> |         </div> | ||||||
|         <div id="zoffbutton" title="Visit the channel!"></div> |         <div id="zoffbutton" title="Visit the channel!"></div> | ||||||
|         <div id="controls" class="noselect"> |         <div id="controls" class="noselect"> | ||||||
|             <div id="playpause"> |             <div class="playbar-btn prev playbar hide"> | ||||||
|  |                 <i class="material-icons">skip_previous</i> | ||||||
|  |             </div> | ||||||
|  |             <div id="playpause" class="playbar-btn playbar margin-playbar"> | ||||||
|                 <i id="play" class="material-icons hide">play_arrow</i> |                 <i id="play" class="material-icons hide">play_arrow</i> | ||||||
|                 <i id="pause" class="material-icons">pause</i> |                 <i id="pause" class="material-icons">pause</i> | ||||||
|             </div> |             </div> | ||||||
|  |             <div class="playbar-btn skip playbar hide"> | ||||||
|  |                 <i class="material-icons">skip_next</i> | ||||||
|  |             </div> | ||||||
|             <div id="duration">00:00 / 00:00</div> |             <div id="duration">00:00 / 00:00</div> | ||||||
|             <div id="volume-button"> |             <div id="volume-button"> | ||||||
|                 <i id="v-mute" class="mdi-av-volume-off"></i> |                 <i id="v-mute" class="mdi-av-volume-off"></i> | ||||||
|   | |||||||
| @@ -18,6 +18,10 @@ | |||||||
|                     <input type="checkbox" id="videoonly" class="checkbox" /> |                     <input type="checkbox" id="videoonly" class="checkbox" /> | ||||||
|                     <span for="videoonly" class="padding_right_26">Video-only</span> |                     <span for="videoonly" class="padding_right_26">Video-only</span> | ||||||
|                 </label> |                 </label> | ||||||
|  |                 <label> | ||||||
|  |                     <input type="checkbox" id="localmode" class="checkbox" /> | ||||||
|  |                     <span for="localmode" class="padding_right_26">Local-mode</span> | ||||||
|  |                 </label> | ||||||
|             </p> |             </p> | ||||||
|             <textarea id="embed-area"></textarea> |             <textarea id="embed-area"></textarea> | ||||||
|         </div> |         </div> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user