| Index: bower_components/gif.js/site/contents/scripts/main.coffee
|
| diff --git a/bower_components/gif.js/site/contents/scripts/main.coffee b/bower_components/gif.js/site/contents/scripts/main.coffee
|
| deleted file mode 100644
|
| index 88b22098ea77b0880a0b464daf1c0895ecda3b56..0000000000000000000000000000000000000000
|
| --- a/bower_components/gif.js/site/contents/scripts/main.coffee
|
| +++ /dev/null
|
| @@ -1,103 +0,0 @@
|
| -require 'browsernizr/test/css/rgba'
|
| -require 'browsernizr/test/css/transforms3d'
|
| -Modernizr = require 'browsernizr'
|
| -
|
| -require './vendor/mootools.js'
|
| -
|
| -async = require 'async'
|
| -ready = require './vendor/ready.js'
|
| -
|
| -now = window.performance?.now?.bind(window.performance) or Date.now
|
| -
|
| -# fallback for browsers not supporting createObjectURL
|
| -blobURLSupport = window.URL?.createObjectURL?
|
| -buildDataURL = do ->
|
| - charMap = {}
|
| - charMap[i] = String.fromCharCode(i) for i in [0...256]
|
| - return (data) ->
|
| - str = ''
|
| - for i in [0...data.length]
|
| - str += charMap[data[i]]
|
| - return 'data:image/gif;base64,' + btoa(str)
|
| -
|
| -loadImage = (src, callback) ->
|
| - img = new Image()
|
| - img.onload = ->
|
| - callback null, img
|
| - img.onerror = ->
|
| - callback new Error "Could load #{ src }"
|
| - img.src = src
|
| -
|
| -setupDemo = (element) ->
|
| - element.getElements('.hover-buttons li').addEvents
|
| - mouseenter: -> element.addClass @className
|
| - mouseleave: -> element.removeClass @className
|
| -
|
| - qslider = element.getElement '.quality input'
|
| - qvalue = element.getElement '.quality span'
|
| - renderimg = element.getElement 'img.render'
|
| - logel = element.getElement 'pre'
|
| -
|
| - gif = new GIF
|
| - quality: 10
|
| - workers: 2
|
| -
|
| - startTime = null
|
| - gif.on 'start', ->
|
| - startTime = now()
|
| -
|
| - gif.on 'finished', (blob, data) ->
|
| - if blobURLSupport
|
| - renderimg.src = URL.createObjectURL(blob)
|
| - else
|
| - renderimg.src = buildDataURL(data)
|
| - delta = now() - startTime
|
| - logel.set 'text', "Rendered #{ images.length } frame(s) at q#{ gif.options.quality } in #{ delta.toFixed(2) }ms"
|
| -
|
| - gif.on 'progress', (p) ->
|
| - logel.set 'text', "Rendering #{ images.length } frame(s) at q#{ gif.options.quality }... #{ Math.round(p * 100) }%"
|
| -
|
| - images = element.getElements('img.original').map (img) -> img.src
|
| - async.map images, loadImage, (error, images) ->
|
| - throw error if error?
|
| - gif.addFrame image, {delay: 500, copy: true} for image in images
|
| - gif.render()
|
| -
|
| - qslider.addEvent 'change', ->
|
| - val = 31 - parseInt qslider.value
|
| - qvalue.set 'text', val
|
| - gif.setOption 'quality', val
|
| - gif.abort()
|
| - gif.render()
|
| -
|
| - delay = element.getElement '.delay'
|
| - if delay?
|
| - delay.getElement('input').addEvent 'change', ->
|
| - value = parseInt this.value
|
| - delay.getElement('.value').set 'text', value + 'ms'
|
| - for frame in gif.frames
|
| - frame.delay = value
|
| - gif.abort()
|
| - gif.render()
|
| -
|
| - repeat = element.getElement '.repeat'
|
| - if repeat?
|
| - repeat.getElement('input').addEvent 'change', ->
|
| - value = parseInt this.value
|
| - value = -1 if value is 0
|
| - value = 0 if value is 21
|
| - switch value
|
| - when 0
|
| - txt = 'forever'
|
| - when -1
|
| - txt = 'none'
|
| - else
|
| - txt = value
|
| - repeat.getElement('.value').set 'text', txt
|
| - gif.setOption 'repeat', value
|
| - gif.abort()
|
| - gif.render()
|
| -
|
| -ready ->
|
| - for demo in document.body.querySelectorAll '.demo'
|
| - setupDemo demo
|
|
|