Файл: tyde/www/web/js/core/button.js
Строк: 118
<?php
/*! UIkit 2.24.3 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
(function(UI) {
    "use strict";
    UI.component('buttonRadio', {
        defaults: {
            "activeClass": 'uk-active',
            "target": ".uk-button"
        },
        boot: function() {
            // init code
            UI.$html.on("click.buttonradio.uikit", "[data-uk-button-radio]", function(e) {
                var ele = UI.$(this);
                if (!ele.data("buttonRadio")) {
                    var obj    = UI.buttonRadio(ele, UI.Utils.options(ele.attr("data-uk-button-radio"))),
                        target = UI.$(e.target);
                    if (target.is(obj.options.target)) {
                        target.trigger("click");
                    }
                }
            });
        },
        init: function() {
            var $this = this;
            // Init ARIA
            this.find($this.options.target).attr('aria-checked', 'false').filter('.' + $this.options.activeClass).attr('aria-checked', 'true');
            this.on("click", this.options.target, function(e) {
                var ele = UI.$(this);
                if (ele.is('a[href="#"]')) e.preventDefault();
                $this.find($this.options.target).not(ele).removeClass($this.options.activeClass).blur();
                ele.addClass($this.options.activeClass);
                // Update ARIA
                $this.find($this.options.target).not(ele).attr('aria-checked', 'false');
                ele.attr('aria-checked', 'true');
                $this.trigger("change.uk.button", [ele]);
            });
        },
        getSelected: function() {
            return this.find('.' + this.options.activeClass);
        }
    });
    UI.component('buttonCheckbox', {
        defaults: {
            "activeClass": 'uk-active',
            "target": ".uk-button"
        },
        boot: function() {
            UI.$html.on("click.buttoncheckbox.uikit", "[data-uk-button-checkbox]", function(e) {
                var ele = UI.$(this);
                if (!ele.data("buttonCheckbox")) {
                    var obj    = UI.buttonCheckbox(ele, UI.Utils.options(ele.attr("data-uk-button-checkbox"))),
                        target = UI.$(e.target);
                    if (target.is(obj.options.target)) {
                        target.trigger("click");
                    }
                }
            });
        },
        init: function() {
            var $this = this;
            // Init ARIA
            this.find($this.options.target).attr('aria-checked', 'false').filter('.' + $this.options.activeClass).attr('aria-checked', 'true');
            this.on("click", this.options.target, function(e) {
                var ele = UI.$(this);
                if (ele.is('a[href="#"]')) e.preventDefault();
                ele.toggleClass($this.options.activeClass).blur();
                // Update ARIA
                ele.attr('aria-checked', ele.hasClass($this.options.activeClass));
                $this.trigger("change.uk.button", [ele]);
            });
        },
        getSelected: function() {
            return this.find('.' + this.options.activeClass);
        }
    });
    UI.component('button', {
        defaults: {},
        boot: function() {
            UI.$html.on("click.button.uikit", "[data-uk-button]", function(e) {
                var ele = UI.$(this);
                if (!ele.data("button")) {
                    var obj = UI.button(ele, UI.Utils.options(ele.attr("data-uk-button")));
                    ele.trigger("click");
                }
            });
        },
        init: function() {
            var $this = this;
            // Init ARIA
            this.element.attr('aria-pressed', this.element.hasClass("uk-active"));
            this.on("click", function(e) {
                if ($this.element.is('a[href="#"]')) e.preventDefault();
                $this.toggle();
                $this.trigger("change.uk.button", [$this.element.blur().hasClass("uk-active")]);
            });
        },
        toggle: function() {
            this.element.toggleClass("uk-active");
            // Update ARIA
            this.element.attr('aria-pressed', this.element.hasClass("uk-active"));
        }
    });
})(UIkit);
?>