blob: 0152e322e570815cae17a3bda344ef61c59150c9 [file] [log] [blame]
// Generated by CoffeeScript 1.10.0
/**
* RDInputLabel
* @license MIT License
*/
(function() {
(function($, document, window) {
/**
* Initial flags
* @public
*/
var RDInputLabel, isMobile;
isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
/**
* Creates a label.
* @class RDInputLabel.
* @public
* @param {HTMLElement} element - The element to create the label for.
* @param {Object} [options] - The options
*/
RDInputLabel = (function() {
/**
* Default options for label.
* @public
*/
RDInputLabel.prototype.Defaults = {
callbacks: null
};
function RDInputLabel(element, options) {
this.options = $.extend(true, {}, this.Defaults, options);
this.$element = $(element).addClass('rd-input-label');
this.$target = $('#' + this.$element.attr("for"));
this.$win = $(window);
this.$doc = $(document);
this.initialize();
}
/**
* Initializes the Parallax.
* @protected
*/
RDInputLabel.prototype.initialize = function() {
this.$target.on('input', $.proxy(this.change, this)).on('focus', $.proxy(this.focus, this)).on('blur', $.proxy(this.blur, this)).parents('form').on('reset', $.proxy(this.reset, this));
this.change();
return this;
};
RDInputLabel.prototype.change = function() {
if (this.$target.val() !== '') {
if (!this.$element.hasClass('focus')) {
this.focus();
}
this.$element.addClass('not-empty');
} else {
this.$element.removeClass('not-empty');
}
return this;
};
RDInputLabel.prototype.focus = function() {
this.$element.addClass('focus');
return this;
};
RDInputLabel.prototype.reset = function() {
setTimeout($.proxy(this.blur, this));
return this;
};
RDInputLabel.prototype.blur = function(e) {
if (this.$target.val() === '') {
this.$element.removeClass('focus').removeClass('not-empty');
}
return this;
};
return RDInputLabel;
})();
/**
* The jQuery Plugin for the RD Parallax
* @public
*/
$.fn.extend({
RDInputLabel: function(options) {
return this.each(function() {
var $this;
$this = $(this);
if (!$this.data('RDInputLabel')) {
return $this.data('RDInputLabel', new RDInputLabel(this, options));
}
});
}
});
return window.RDInputLabel = RDInputLabel;
})(window.jQuery, document, window);
/**
* The Plugin AMD export
* @public
*/
if (typeof module !== "undefined" && module !== null) {
module.exports = window.RDInputLabel;
} else if (typeof define === 'function' && define.amd) {
define(["jquery"], function() {
'use strict';
return window.RDInputLabel;
});
}
}).call(this);