UNPKG

kdf

Version:

KD: a non-document focused UI Framework for web applications.

65 lines (48 loc) 2.07 kB
require './../../../libs/canvas-loader.js' KDView = require './../../core/view.coffee' module.exports = class KDLoaderView extends KDView constructor:(options, data)-> o = options or {} o.loaderOptions or= {} o.size or= {} options = tagName : o.tagName or "span" bind : o.bind or "mouseenter mouseleave" showLoader : o.showLoader or no size : width : o.size.width or 24 height : o.size.height or 24 loaderOptions : color : o.loaderOptions.color or "#000000" # hex color shape : o.loaderOptions.shape or "rect" # "spiral", "oval", "square", "rect", "roundRect" diameter : o.loaderOptions.diameter or 20 # 10 - 200 density : o.loaderOptions.density or 12 # 5 - 160 range : o.loaderOptions.range or 1 # 0.1 - 2 speed : o.loaderOptions.speed or 1 # 1 - 10 FPS : o.loaderOptions.FPS or 24 # 1 - 60 options.loaderOptions.diameter = options.size.height = options.size.width options.cssClass = if o.cssClass then "#{o.cssClass} kdloader" else "kdloader" super options, data viewAppended:-> @canvas = new CanvasLoader @getElement(), id : "cl_#{@id}" {loaderOptions, showLoader} = @getOptions() for own option, value of loaderOptions @canvas["set#{option.capitalize()}"] value {height} = @getOption 'size' @setCss 'line-height', if height then height + 'px' else 'initial' @show() if showLoader show:-> super @active = yes @canvas.show() if @canvas hide:-> super @active = no @canvas.hide() if @canvas # easter # mouseEnter:-> # @canvas.setSpeed 2 # @canvas.setColor @utils.getRandomHex() # mouseLeave:-> # @canvas.setColor @getOptions().loaderOptions.color # @canvas.setSpeed @getOptions().loaderOptions.speed