UNPKG

jquery-grid

Version:

jQuery Grid by Gijgo.com is a plug-in for the jQuery Javascript library. It is a very fast and extandable datagrid, and will add advanced interaction controls to any HTML table. This plugin has build-in integration with Bootstrap and Material Design. Free

192 lines (163 loc) 5.59 kB
/* * Gijgo Checkbox v1.9.13 * http://gijgo.com/checkbox * * Copyright 2014, 2019 gijgo.com * Released under the MIT license */ /* global window alert jQuery */ /** */ gj.checkbox = { plugins: {} }; gj.checkbox.config = { base: { /** The name of the UI library that is going to be in use. Currently we support only Material Design and Bootstrap. */ uiLibrary: 'materialdesign', /** The name of the icons library that is going to be in use. Currently we support Material Icons, Font Awesome and Glyphicons. */ iconsLibrary: 'materialicons', style: { wrapperCssClass: 'gj-checkbox-md', spanCssClass: undefined } }, bootstrap: { style: { wrapperCssClass: 'gj-checkbox-bootstrap' }, iconsLibrary: 'glyphicons' }, bootstrap4: { style: { wrapperCssClass: 'gj-checkbox-bootstrap gj-checkbox-bootstrap-4' }, iconsLibrary: 'materialicons' }, materialicons: { style: { iconsCssClass: 'gj-checkbox-material-icons', spanCssClass: 'gj-icon' } }, glyphicons: { style: { iconsCssClass: 'gj-checkbox-glyphicons', spanCssClass: '' } }, fontawesome: { style: { iconsCssClass: 'gj-checkbox-fontawesome', spanCssClass: 'fa' } } }; gj.checkbox.methods = { init: function (jsConfig) { var $chkb = this; gj.widget.prototype.init.call(this, jsConfig, 'checkbox'); $chkb.attr('data-checkbox', 'true'); gj.checkbox.methods.initialize($chkb); return $chkb; }, initialize: function ($chkb) { var data = $chkb.data(), $wrapper, $span; if (data.style.wrapperCssClass) { $wrapper = $('<label class="' + data.style.wrapperCssClass + ' ' + data.style.iconsCssClass + '"></label>'); if ($chkb.attr('id')) { $wrapper.attr('for', $chkb.attr('id')); } $chkb.wrap($wrapper); $span = $('<span />'); if (data.style.spanCssClass) { $span.addClass(data.style.spanCssClass); } $chkb.parent().append($span); } }, state: function ($chkb, value) { if (value) { if ('checked' === value) { $chkb.prop('indeterminate', false); $chkb.prop('checked', true); } else if ('unchecked' === value) { $chkb.prop('indeterminate', false); $chkb.prop('checked', false); } else if ('indeterminate' === value) { $chkb.prop('checked', true); $chkb.prop('indeterminate', true); } gj.checkbox.events.change($chkb, value); return $chkb; } else { if ($chkb.prop('indeterminate')) { value = 'indeterminate'; } else if ($chkb.prop('checked')) { value = 'checked'; } else { value = 'unchecked'; } return value; } }, toggle: function ($chkb) { if ($chkb.state() == 'checked') { $chkb.state('unchecked'); } else { $chkb.state('checked'); } return $chkb; }, destroy: function ($chkb) { if ($chkb.attr('data-checkbox') === 'true') { $chkb.removeData(); $chkb.removeAttr('data-guid'); $chkb.removeAttr('data-checkbox'); $chkb.off(); $chkb.next('span').remove(); $chkb.unwrap(); } return $chkb; } }; gj.checkbox.events = { /** * Triggered when the state of the checkbox is changed * */ change: function ($chkb, state) { return $chkb.triggerHandler('change', [state]); } }; gj.checkbox.widget = function ($element, jsConfig) { var self = this, methods = gj.checkbox.methods; /** Toogle the state of the checkbox. */ self.toggle = function () { return methods.toggle(this); }; /** Return state or set state if you pass parameter. */ self.state = function (value) { return methods.state(this, value); }; /** Remove checkbox functionality from the element. */ self.destroy = function () { return methods.destroy(this); }; $.extend($element, self); if ('true' !== $element.attr('data-checkbox')) { methods.init.call($element, jsConfig); } return $element; }; gj.checkbox.widget.prototype = new gj.widget(); gj.checkbox.widget.constructor = gj.checkbox.widget; (function ($) { $.fn.checkbox = function (method) { var $widget; if (this && this.length) { if (typeof method === 'object' || !method) { return new gj.checkbox.widget(this, method); } else { $widget = new gj.checkbox.widget(this, null); if ($widget[method]) { return $widget[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else { throw 'Method ' + method + ' does not exist.'; } } } }; })(jQuery);