/**
* --------------------------------------------------------------------------
* Propeller v1.3.2 (http://propeller.in): checkbox.js
* Copyright 2016-2019 Digicorp, Inc.
* Licensed under MIT (http://propeller.in/LICENSE)
* --------------------------------------------------------------------------
*/
var pmdCheckBox = function ($) {
/**
* ------------------------------------------------------------------------
* Variables
* ------------------------------------------------------------------------
*/
var NAME = 'pmdCheckBox';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var ClassName = {
ANIMATE: 'animate',
PMD_CHECKBOX: 'pmd-checkbox',
TEXTFIELD_FOCUS: 'pmd-textfield-focused'
};
var Selector = {
PARENT_SELECTOR: '',
PMD_CHECKBOX: '.' + ClassName.PMD_CHECKBOX,
INPUT: 'input:checkbox:not(.pm-ini)',
RIPPLE: '.pmd-checkbox-ripple-effect',
INK: '.ink'
};
var Template = {
CHECK_BOX_LABEL: ' ',
SPAN_LINK: ''
};
var Event = {
CLICK: 'click',
MOUSE_DOWN: 'mousedown'
};
/**
* ------------------------------------------------------------------------
* Functions
* ------------------------------------------------------------------------
*/
function onMouseDown(e) {
var $this = $(e.target);
var rippler = $this;
$(Selector.INK).remove();
// create .ink element if it doesn't exist
if (rippler.find(Selector.INK).length === 0) {
rippler.append(Template.SPAN_LINK);
}
var ink = rippler.find(Selector.INK);
// prevent quick double clicks
ink.removeClass(ClassName.ANIMATE);
// set .ink diametr
if (!ink.height() && !ink.width()) {
var d = Math.max(rippler.outerWidth(), rippler.outerHeight());
ink.css({
height: 20,
width: 20
});
}
// get click coordinates
var x = e.pageX - rippler.offset().left - ink.width() / 2;
var y = e.pageY - rippler.offset().top - ink.height() / 2;
// set .ink position and add class .animate
ink.css({
top: y + 'px',
left: x + 'px'
}).addClass(ClassName.ANIMATE);
setTimeout(function () {
ink.remove();
}, 1500);
}
/**
* ------------------------------------------------------------------------
* Initialization
* ------------------------------------------------------------------------
*/
var pmdCheckBox = function () {
_inherits(pmdCheckBox, commons);
function pmdCheckBox() {
var finalSelector = pmdCheckBox.prototype.attachParentSelector(Selector.PARENT_SELECTOR, Selector.PMD_CHECKBOX);
$(finalSelector).find(Selector.INPUT).after(Template.CHECK_BOX_LABEL);
$(finalSelector).find(Selector.INPUT).addClass("pm-ini");
}
return pmdCheckBox;
} ();
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
var plugInFunction = function () {
if (this.selector !== "") {
Selector.PARENT_SELECTOR = this.selector;
}
new pmdCheckBox();
};
$(document).on(Event.MOUSE_DOWN, Selector.RIPPLE, onMouseDown);
$.fn[NAME] = plugInFunction;
return pmdCheckBox;
} (jQuery)();