-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathangular-responsive-elements.min.js
More file actions
1 lines (1 loc) · 1.97 KB
/
angular-responsive-elements.min.js
File metadata and controls
1 lines (1 loc) · 1.97 KB
1
"use strict";angular.module("mm.responsiveElements",[]),angular.module("mm.responsiveElements").provider("RespondConfig",function(){var a={maxRefreshRate:5,start:100,end:900,interval:50,ltPrefix:"lt",gtPrefix:"gt",equalsPrefix:"gt"};return{config:function(b){angular.extend(a,b)},$get:function(){return a}}}),angular.module("mm.responsiveElements").directive("respond",["$window","$timeout","RespondConfig",function(a,b,c){return{restrict:"A",scope:{respondConfig:"="},link:function(d,e,f){var g,h=function(){var a,b=angular.extend(angular.copy(c),d.respondConfig);for(var e in f)f.hasOwnProperty(e)&&"respond"===e.substring(0,7)&&"respondConfig"!==e&&(a=e.substr(7),a=a.charAt(0).toLowerCase()+a.slice(1),b[a]="false"===f.attribute?!1:f[e]);return b},i=[];d.config=h(),d.init=function(){d.renderBreakpointClasses(),d.addListeners()},d.addListeners=function(){angular.element(a).on("resize",d.debounceRenderBreakpointClasses),d.$on("$destroy",function(){angular.element(a).off("resize",d.debounceRenderBreakpointClasses)})},d.debounceRenderBreakpointClasses=function(){d.debounce(d.renderBreakpointClasses,d.config.maxRefreshRate,!0)},d.renderBreakpointClasses=function(){var a=d.generateClasses();d.removeBreakpointClasses(),e.addClass(a.join(" ")),d.setCurrentClasses(a)},d.generateClasses=function(){for(var a=d.config.start,b=d.config.end,c=d.config.interval,e=c>a?c:~~(a/c)*c,f=[];b>=e;)f.push(d.getClassName(e)),e+=c;return f},d.getClassName=function(a){var b=d.getElementWidth(),c=d.config.ltPrefix,e=d.config.gtPrefix,f=d.config.equalsPrefix;return parseInt(b)<parseInt(a)?c+a:parseInt(a)===parseInt(b)?f+a:parseInt(b)>parseInt(a)?e+a:void 0},d.getElementWidth=function(){return e[0].clientWidth},d.setCurrentClasses=function(a){i=a},d.getCurrentClasses=function(){return i},d.removeBreakpointClasses=function(){e.removeClass(d.getCurrentClasses().join(" "))},d.debounce=function(a,c,d){var e=this,f=arguments,h=function(){g=null,d||a.apply(e,f)},i=d&&!g;g&&b.cancel(g),g=b(h,c),i&&a.apply(e,f)},d.init()}}}]);