7 lines
7.2 KiB
JavaScript
7 lines
7.2 KiB
JavaScript
|
|
/*!
|
||
|
|
* AngularJS Material Design
|
||
|
|
* https://github.com/angular/material
|
||
|
|
* @license MIT
|
||
|
|
* v1.1.18-master-97a1616
|
||
|
|
*/
|
||
|
|
goog.provide("ngmaterial.components.slider"),goog.require("ngmaterial.core"),SliderDirective.$inject=["$$rAF","$window","$mdAria","$mdUtil","$mdConstant","$mdTheming","$mdGesture","$parse","$log","$timeout"],angular.module("material.components.slider",["material.core"]).directive("mdSlider",SliderDirective).directive("mdSliderContainer",SliderContainerDirective);var stepPageSize=10,modifierMultiplier=4;function SliderContainerDirective(){return{controller:function(){},compile:function(e){var t=e.find("md-slider");if(t)return void 0!==t.attr("md-vertical")&&e.attr("md-vertical",""),t.attr("flex")||t.attr("flex",""),function(e,o,t,n){function a(e){o.children().attr("disabled",e),o.find("input").attr("disabled",e)}o.addClass("_md");var l,i=angular.noop;t.disabled?a(!0):t.ngDisabled&&(i=e.$watch(t.ngDisabled,function(e){a(e)})),e.$on("$destroy",function(){i()}),n.fitInputWidthToTextLength=function(e){var t=o[0].querySelector("md-input-container");if(t){var n=getComputedStyle(t),a=parseInt(n.minWidth),i=parseInt(n.paddingLeft)+parseInt(n.paddingRight);l=l||parseInt(n.maxWidth);var r=Math.max(l,a+i+a/2*e);t.style.maxWidth=r+"px"}}}}}}function SliderDirective(G,K,i,U,H,j,Y,J,Q,X){return{scope:{},require:["?ngModel","?^mdSliderContainer"],template:'<div class="md-slider-wrapper"><div class="md-slider-content"><div class="md-track-container"><div class="md-track"></div><div class="md-track md-track-fill"></div><div class="md-track-ticks"></div></div><div class="md-thumb-container"><div class="md-thumb"></div><div class="md-focus-thumb"></div><div class="md-focus-ring"></div><div class="md-sign"><span class="md-thumb-text"></span></div><div class="md-disabled-thumb"></div></div></div></div>',compile:function(e,t){var n=angular.element(e[0].getElementsByClassName("md-slider-wrapper")),a=t.tabindex||0;n.attr("tabindex",a),(t.disabled||t.ngDisabled)&&n.attr("tabindex",-1);return n.attr("role","slider"),i.expect(e,"aria-label"),r}};function r(n,a,e,t){j(a);var i=t[0]||{$setViewValue:function(e){this.$viewValue=e,this.$viewChangeListeners.forEach(function(e){e()})},$parsers:[],$formatters:[],$viewChangeListeners:[]},r=t[1],o=(angular.element(U.getClosest(a,"_md-slider-container",!0)),e.ngDisabled?angular.bind(null,J(e.ngDisabled),n.$parent):function(){return a[0].hasAttribute("disabled")}),l=angular.element(a[0].querySelector(".md-thumb")),d=angular.element(a[0].querySelector(".md-thumb-text")),s=l.parent(),u=angular.element(a[0].querySelector(".md-track-container")),c=angular.element(a[0].querySelector(".md-track-fill")),m=angular.element(a[0].querySelector(".md-track-ticks")),f=angular.element(a[0].getElementsByClassName("md-slider-wrapper")),v=(angular.element(a[0].getElementsByClassName("md-slider-content")),U.throttle(R,5e3)),g=angular.isDefined(e.mdVertical),p=angular.isDefined(e.mdDiscrete),h=angular.isDefined(e.mdInvert);angular.isDefined(e.min)?e.$observe("min",V):V(0),angular.isDefined(e.max)?e.$observe("max",k):k(100),angular.isDefined(e.step)?e.$observe("step",M):M(1),angular.isDefined(e.round)?e.$observe("round",A):A(3);angular.noop;function $(){R(),I()}e.ngDisabled&&n.$parent.$watch(e.ngDisabled,function(){a.attr("aria-disabled",!!o())}),Y.register(f,"drag",{horizontal:!g}),n.mouseActive=!1,f.on("keydown",function(e){if(o())return;var t,n=H.KEY_CODE;switch(e.keyCode){case n.DOWN_ARROW:case n.LEFT_ARROW:e.preventDefault(),t=-D;break;case n.UP_ARROW:case n.RIGHT_ARROW:e.preventDefault(),t=D;break;case n.PAGE_DOWN:e.preventDefault(),t=-D*stepPageSize;break;case n.PAGE_UP:e.preventDefault(),t=D*stepPageSize;break;case n.HOME:e.preventDefault(),e.stopPropagation(),N(b);break;case n.END:e.preventDefault(),e.stopPropagation(),N(w)}t&&(t=h?-t:t,(e.metaKey||e.ctrlKey||e.altKey)&&(t*=modifierMultiplier),e.preventDefault(),e.stopPropagation(),N(i.$viewValue+t))}).on("mousedown",function(){(function(){if(!p||o())return;if(angular.isUndefined(D))return;if(D<=0){var e="Slider step value must be greater than zero when in discrete mode";throw Q.error(e),new Error(e)}var t=Math.floor((w-b)/D);y||(y=angular.element("<canvas>").css("positi
|