Source: components/loader/Loader.js

// Generated by github.com/steida/coffee2closure 0.1.12
goog.provide('spark.components.Loader');
goog.require('spark.core.View');

/**
  Loader component for Spark Framework. There are six different type of
  loader is implemented right now. Ported from tobiasahlin.com/spinkit
  Loader size can be configurable. With current implementation background
  color customization is missing. However you can customize your loader's
  background color using CSS.

  @constructor
  @export
  @param   {Object=} options Class options.
  @param   {*=} data Class data
  @extends {spark.core.View}
 */
spark.components.Loader = function(options, data) {
  var loaderEl, size;
  if (options == null) {
    options = {};
  }
  options.type || (options.type = spark.components.Loader.LoaderTypes.CIRCLE);
  if (options.size == null) {
    options.size = 50;
  }
  options.template = this.getLoaderTemplate_(options);
  this.getCssClass(options, 'loader');
  spark.components.Loader.superClass_.constructor.call(this, options, data);
  loaderEl = this.getElement().firstChild;
  size = "" + (this.getOptions().size) + "px";
  loaderEl.style.width = size;
  loaderEl.style.height = size;
}
goog.inherits(spark.components.Loader, spark.core.View);

/**
  Creates and returns loader template.

  @param {Object} options Options object for loader template
  @private
 */
spark.components.Loader.prototype.getLoaderTemplate_ = function(options) {
  var base, baseClass, configs, i, itemCount, type, _i, _ref;
  configs = spark.components.Loader.TemplateConfigs;
  type = spark.components.Loader.LoaderTypes[options.type];
  if (!type) {
    throw new Error("Invalid loader type, " + options.type);
  }
  _ref = configs[type], baseClass = _ref.baseClass, itemCount = _ref.itemCount;
  base = "<div class=\"" + baseClass + "\">";
  if (itemCount) {
    for (i = _i = 1; 1 <= itemCount ? _i <= itemCount : _i >= itemCount; i = 1 <= itemCount ? ++_i : --_i) {
      base += "<div class=\"item item" + i + "\"></div>";
    }
  }
  return "" + base + "</div>";
};

/**
  Enum for template configs.

  @enum {Object}
  @export
 */
spark.components.Loader.TemplateConfigs = {
  'CIRCLE': {
    baseClass: 'circle',
    itemCount: 3
  },
  'SPINNER': {
    baseClass: 'spinner',
    itemCount: 12
  },
  'BOUNCE': {
    baseClass: 'bounce',
    itemCount: 2
  },
  'BAR': {
    baseClass: 'bar',
    itemCount: 5
  },
  'PULSE': {
    baseClass: 'pulse'
  },
  'SQUARE': {
    baseClass: 'square'
  }
};

/**
  Enum for loader types.

  @enum {string}
  @export
 */
spark.components.Loader.LoaderTypes = {
  'CIRCLE': 'CIRCLE',
  'SPINNER': 'SPINNER',
  'PULSE': 'PULSE',
  'SQUARE': 'SQUARE',
  'BOUNCE': 'BOUNCE',
  'BAR': 'BAR'
};
Spark Framework by Fatih Acet
Copyright © 2014 - Fatih Acet
Documentation generated by JSDoc 3.2.2 on 2015-07-19T22:09:29+00:00 using the DocStrap template.