source: trip-planner-front/node_modules/angular-material/modules/closure/radioButton/radioButton.min.js@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 4.2 KB
Line 
1/*!
2 * AngularJS Material Design
3 * https://github.com/angular/material
4 * @license MIT
5 * v1.2.2-master-0a06f99
6 */
7goog.provide("ngmaterial.components.radioButton"),goog.require("ngmaterial.core"),mdRadioGroupDirective.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],mdRadioButtonDirective.$inject=["$mdAria","$mdUtil","$mdTheming"],angular.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",mdRadioGroupDirective).directive("mdRadioButton",mdRadioButtonDirective);var incrementSelection=Object.freeze({PREVIOUS:-1,CURRENT:0,NEXT:1});function mdRadioGroupDirective(d,c,u,l){return e.prototype={init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=angular.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectCurrent:function(){return t(this.$element,incrementSelection.CURRENT)},selectNext:function(){return t(this.$element,incrementSelection.NEXT)},selectPrevious:function(){return t(this.$element,incrementSelection.PREVIOUS)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)},isDisabled:function(){return this.$element[0].hasAttribute("disabled")}},{restrict:"E",controller:["$element",e],require:["mdRadioGroup","?ngModel"],link:{pre:function(e,i,t,n){i.addClass("_md"),u(i);var r=n[0],o=n[1]||d.fakeNgModel();function a(){i.hasClass("md-focused")||i.addClass("md-focused")}r.init(o),e.mouseActive=!1,i.attr({role:"radiogroup",tabIndex:i.attr("tabindex")||"0"}).on("keydown",function(e){var t=e.which||e.keyCode;if(t===c.KEY_CODE.ENTER||e.currentTarget===e.target)switch(t){case c.KEY_CODE.LEFT_ARROW:case c.KEY_CODE.UP_ARROW:e.preventDefault(),r.selectPrevious(),a();break;case c.KEY_CODE.RIGHT_ARROW:case c.KEY_CODE.DOWN_ARROW:e.preventDefault(),r.selectNext(),a();break;case c.KEY_CODE.SPACE:e.preventDefault(),r.selectCurrent();break;case c.KEY_CODE.ENTER:var n=angular.element(d.getClosest(i[0],"form"));0<n.length&&n.triggerHandler("submit")}}).on("mousedown",function(){e.mouseActive=!0,l(function(){e.mouseActive=!1},100)}).on("focus",function(){!1===e.mouseActive&&r.$element.addClass("md-focused")}).on("blur",function(){r.$element.removeClass("md-focused")}),d.nextTick(function(){var e=s(r.$element);e.count()&&!r.$element[0].hasAttribute("aria-activedescendant")&&r.setActiveDescendant(e.first().id)})}}};function e(e){this._radioButtonRenderFns=[],this.$element=e}function s(e){return d.iterator(e[0].querySelectorAll("md-radio-button"),!0)}function t(e,t){var n,i=s(e);if(i.count()){var r=e[0].querySelector("md-radio-button.md-checked");r?t!==incrementSelection.PREVIOUS&&t!==incrementSelection.NEXT||(n=i[t===incrementSelection.PREVIOUS?"previous":"next"](r,function(e){return!angular.element(e).attr("disabled")})):n=i.first(),n&&angular.element(n).triggerHandler("click")}}}function mdRadioButtonDirective(c,u,l){var s="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox><div class="md-off"></div><div class="md-on"></div></div><div ng-transclude class="md-label"></div>',link:function(t,n,i,r){var o;l(n),function(e){e.attr({id:i.id||"radio_"+u.nextUid(),role:"radio","aria-checked":"false"}),c.expectWithText(e,"aria-label")}(n),n.addClass("md-auto-horizontal-margin"),i.ngValue?u.nextTick(e,!1):e();function e(){if(!r)throw"RadioButton: No RadioGroupController could be found.";r.add(d),i.$observe("value",d),n.on("click",a).on("$destroy",function(){r.remove(d)})}function a(e){n[0].hasAttribute("disabled")||r.isDisabled()||t.$apply(function(){r.setViewValue(i.value,e&&e.type)})}function d(){var e=r.getViewValue()==i.value;e!==o&&(n[0]&&n[0].parentNode&&"md-radio-group"!==n[0].parentNode.nodeName.toLowerCase()&&n.parent().toggleClass(s,e),e&&r.setActiveDescendant(n.attr("id")),o=e,n.attr("aria-checked",e).toggleClass(s,e))}}}}ngmaterial.components.radioButton=angular.module("material.components.radioButton");
Note: See TracBrowser for help on using the repository browser.