-
Notifications
You must be signed in to change notification settings - Fork 1
/
ng-reading-indicator.min.js
2 lines (2 loc) · 2.96 KB
/
ng-reading-indicator.min.js
1
2
!function(a,b){"use strict";var c=a.module("ngReadingIndicator",["ngSanitize"]);c.directive("ngReadingIndicator",["$window","$document","$templateCache","$sce","$timeout",function(b,c,d,e,f){var g="",h='<div class="ng-reading-indicator"><div class="ng-reading-indicator-progress"></div><div class="ng-reading-indicator-headline"><h2 ng-bind-html="headline"></h2></div><div class="ng-reading-indicator-time" ng-if="readingTime"> {{ readingTime }}</div></div>';return d.put(g,h),{restrict:"AE",scope:{elementClass:"@indicatorElement",userOptions:"&indicatorOptions",headline:"&indicatorHeadline"},templateUrl:function(a,b){return b.indicatorTemplateUrl||g},link:function(c,d){function g(b){return a.forEach(arguments,function(c){c!==b&&a.forEach(c,function(a,c){b[c]&&b[c].constructor&&b[c].constructor===Object?g(b[c],a):b[c]=a})}),b}function h(a){var b=document.body.getBoundingClientRect(),c=a.getBoundingClientRect();return{top:c.top-b.top,bottom:a.scrollHeight-window.innerHeight}}function i(){n=h(m[0]).bottom,o=h(m[0]).top,s=h(m.find("h1")[0]),j()}function j(){var c=a.element(b)[0].scrollY||a.element(b)[0].pageYOffset;p=o>=c?0:(c-o)/n*100,q.style.width=p+"%",t.expand&&(c>o&&c<s.top+50?(a.element(d).children()[0].style.height="5px",a.element(a.element(d).children()[0]).removeClass("ng-reading-indicator-expanded"),a.element(a.element(d).children()[0]).addClass("ng-reading-indicator-shrink")):c>=s.top+50?(a.element(a.element(d).children()[0]).addClass("ng-reading-indicator-expanded"),a.element(a.element(d).children()[0]).removeClass("ng-reading-indicator-shrink"),a.element(d).children()[0].style.height=""):a.element(d).children()[0].style.height="0")}function k(){var a=m.text().split(" ").length,b=Math.floor(a/t.readingTime.speed),c=Math.floor(a%t.readingTime.speed/(t.readingTime.speed/60)),d=t.readingTime.prefix;return!t.readingTime.seconds&&c>=30&&b++,d+=9>=b?"0":"",d+=b,t.readingTime.seconds?(d+=":",d+=9>=c?"0":"",d+=c):d+=t.readingTime.suffix,d}var l=null,m=null,n=null,o=null,p=null,q=null,r=null,s=null,t={showHeadline:!0,expand:!0,type:"small",readingTime:{enable:!0,prefix:"estimate ca. ",suffix:"min",speed:150,seconds:!1}};g(t,c.userOptions()),t.expand||"big"!==t.type||a.element(a.element(d).children()[0]).addClass("ng-reading-indicator-expanded"),r=c.elementClass&&""!==c.elementClass?c.elementClass:b,m=c.elementClass&&""!==c.elementClass?a.element(document.getElementsByClassName(r.replace(".",""))[0]):a.element(document.getElementsByTagName("body")),q=document.getElementsByClassName("ng-reading-indicator-progress")[0],(t.expand||!t.expand&&"small"!==t.type)&&f(function(){l=t.showHeadline&&c.headline()?c.headline():t.showHeadline&&!c.headline()?a.element(m.find("h1")[0]).html():!1,c.headline=l?e.trustAsHtml(l):null,c.readingTime=t.readingTime.enable?k():null}),i(),a.element(b).on("scroll",j),a.element(b).on("resize",i),c.$on("$destroy",function(){a.element(b).off("scroll",j),a.element(b).off("resize",i)})}}}])}(window.angular);
//# sourceMappingURL=ng-reading-indicator.min.js.map