blob: b0f88e7876db1e65a5745b243ef26d1041d50b98 [file] [log] [blame]
/*!
* Angular Material Design
* https://github.com/angular/material
* @license MIT
* v1.0.0-master-19c11fd
*/
function mdListDirective(t){return{restrict:"E",compile:function(e){return e[0].setAttribute("role","list"),t}}}function mdListItemDirective(t,e,n,r){var i=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(o,a){function c(){for(var t,e,n=["md-switch","md-checkbox"],r=0;e=n[r];++r)if((t=o.find(e)[0])&&!t.hasAttribute("aria-label")){var i=o.find("p")[0];if(!i)return;t.setAttribute("aria-label","Toggle "+i.textContent)}}function l(t){var e;"div"==t?(e=angular.element('<div class="md-no-style md-list-item-inner">'),e.append(o.contents()),o.addClass("md-proxy-focus")):(e=angular.element('<md-button class="md-no-style"><div class="md-list-item-inner"></div></md-button>'),d(o[0],e[0]),e.children().eq(0).append(o.contents())),o[0].setAttribute("tabindex","-1"),o.append(e)}function s(){if(h&&!m(h)&&h.hasAttribute("ng-click")){t.expect(h,"aria-label");var e=angular.element('<md-button class="md-secondary-container md-icon-button">');d(h,e[0]),h.setAttribute("tabindex","-1"),h.classList.remove("md-secondary"),e.append(h),h=e[0]}h&&(h.hasAttribute("ng-click")||a.ngClick&&u(h))&&(o.addClass("md-with-secondary"),o.append(h))}function d(t,e){var n=["ng-if","ng-click","aria-label","ng-disabled","ui-sref","href","ng-href","ng-attr-ui-sref"];angular.forEach(n,function(n){t.hasAttribute(n)&&(e.setAttribute(n,t.getAttribute(n)),t.removeAttribute(n))})}function u(t){return-1!=i.indexOf(t.nodeName.toLowerCase())}function m(t){var e=t.nodeName.toUpperCase();return"MD-BUTTON"==e||"BUTTON"==e}function f(t,o,a,c){function l(t){for(var e=t.attributes,n=0;n<e.length;n++)if("ngClick"===a.$normalize(e[n].name))return!0;return!1}function s(){var t=o.children();t.length&&!t[0].hasAttribute("ng-click")&&angular.forEach(i,function(t){angular.forEach(m.querySelectorAll(t),function(t){u.push(t)})})}function d(){(1==u.length||f)&&(o.addClass("md-clickable"),f||c.attachRipple(t,angular.element(o[0].querySelector(".md-no-style"))))}var u=[],m=o[0].firstElementChild,f=m&&l(m);s(),d(),o.hasClass("md-proxy-focus")&&u.length&&angular.forEach(u,function(e){e=angular.element(e),t.mouseActive=!1,e.on("mousedown",function(){t.mouseActive=!0,r(function(){t.mouseActive=!1},100)}).on("focus",function(){t.mouseActive===!1&&o.addClass("md-focused"),e.on("blur",function n(){o.removeClass("md-focused"),e.off("blur",n)})})}),f||u.length||m&&m.addEventListener("keypress",function(t){if("INPUT"!=t.target.nodeName&&"TEXTAREA"!=t.target.nodeName){var n=t.which||t.keyCode;n==e.KEY_CODE.SPACE&&m&&(m.click(),t.preventDefault(),t.stopPropagation())}}),o.off("click"),o.off("keypress"),1==u.length&&m&&o.children().eq(0).on("click",function(t){var e=n.getClosest(t.target,"BUTTON");!e&&m.contains(t.target)&&angular.forEach(u,function(e){t.target===e||e.contains(t.target)||angular.element(e).triggerHandler("click")})})}var g,v,h=o[0].querySelector(".md-secondary");if(o[0].setAttribute("role","listitem"),a.ngClick||a.ngHref||a.href||a.uiSref||a.ngAttrUiSref)l("button");else{for(var p,b=0;p=i[b];++b)if(v=o[0].querySelector(p)){g=!0;break}g?l("div"):o[0].querySelector("md-button:not(.md-secondary):not(.md-exclude)")||o.addClass("md-no-proxy")}return s(),c(),f}}}function MdListController(t,e,n){function r(t,e){var r={};n.attach(t,e,r)}var i=this;i.attachRipple=r}goog.provide("ng.material.components.list"),goog.require("ng.material.core"),angular.module("material.components.list",["material.core"]).controller("MdListController",MdListController).directive("mdList",mdListDirective).directive("mdListItem",mdListItemDirective),mdListDirective.$inject=["$mdTheming"],mdListItemDirective.$inject=["$mdAria","$mdConstant","$mdUtil","$timeout"],MdListController.$inject=["$scope","$element","$mdListInkRipple"],ng.material.components.list=angular.module("material.components.list");