# Tâmia © 2013 Artem Sapegin http://sapegin.me # Spinner 'use strict' $ = jQuery _wrapperClass = 'loader-wrapper' _shadeSelector = '.loader-shade' _loaderTmpl = '''
''' class Loader extends Component init: -> @initHtml() setTimeout((=> @addState('loading')), 0) destroy: -> @removeState('loading') @elem.find(_shadeSelector).afterTransition(=> @elem.removeClass(_wrapperClass) @loader.remove() ) initHtml: -> @elem.addClass(_wrapperClass) @loader = $(_loaderTmpl) @elem.append(@loader) # Events tamia.registerEvents( 'loading-start': (elem) -> container = $(elem) return if container.data('loader') container.data('loader', new Loader(elem)) 'loading-stop': (elem) -> container = $(elem) loader = container.data('loader') return if not loader loader.destroy() container.removeData('loader') )