Skip to content

Commit 6a79834

Browse files
committed
Options to set the calculation point of the reading process
1 parent d0c35a0 commit 6a79834

File tree

9 files changed

+231
-197
lines changed

9 files changed

+231
-197
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Available/Default options:
4040

4141
```js
4242
options = {
43+
calcFrom: 'middle', // "top", "bottom", "middle" - From where of the viewport should we calc the process of reading defaults to "middle"
4344
showHeadline: true, // Show headline in the progress bar (only works if expand is true or type is "big")
4445
expand: true, // Show small bar and expand to big after passing the headline
4546
type: 'small', // Type of bar if expand is "false" available options are "small" or "big"

coverage/PhantomJS 1.9.8 (Mac OS X 0.0.0)/lcov-report/index.html

+11-11
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
<div class="header low">
1616
<h1>Code coverage report for <span class="entity">All files</span></h1>
1717
<h2>
18-
Statements: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19-
Branches: <span class="metric">25.29% <small>(22 / 87)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
18+
Statements: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19+
Branches: <span class="metric">28.26% <small>(26 / 92)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2020
Functions: <span class="metric">50% <small>(8 / 16)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21-
Lines: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Lines: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
2323
</h2>
2424
<div class="path"></div>
@@ -42,23 +42,23 @@ <h2>
4242
</thead>
4343
<tbody><tr>
4444
<td class="file low" data-value="src/"><a href="src/index.html">src/</a></td>
45-
<td data-value="35.11" class="pic low"><span class="cover-fill" style="width: 35px;"></span><span class="cover-empty" style="width:65px;"></span></td>
46-
<td data-value="35.11" class="pct low">35.11%</td>
47-
<td data-value="94" class="abs low">(33&nbsp;/&nbsp;94)</td>
48-
<td data-value="25.29" class="pct low">25.29%</td>
49-
<td data-value="87" class="abs low">(22&nbsp;/&nbsp;87)</td>
45+
<td data-value="35.71" class="pic low"><span class="cover-fill" style="width: 35px;"></span><span class="cover-empty" style="width:65px;"></span></td>
46+
<td data-value="35.71" class="pct low">35.71%</td>
47+
<td data-value="98" class="abs low">(35&nbsp;/&nbsp;98)</td>
48+
<td data-value="28.26" class="pct low">28.26%</td>
49+
<td data-value="92" class="abs low">(26&nbsp;/&nbsp;92)</td>
5050
<td data-value="50" class="pct medium">50%</td>
5151
<td data-value="16" class="abs medium">(8&nbsp;/&nbsp;16)</td>
52-
<td data-value="35.11" class="pct low">35.11%</td>
53-
<td data-value="94" class="abs low">(33&nbsp;/&nbsp;94)</td>
52+
<td data-value="35.71" class="pct low">35.71%</td>
53+
<td data-value="98" class="abs low">(35&nbsp;/&nbsp;98)</td>
5454
</tr>
5555

5656
</tbody>
5757
</table>
5858
</div>
5959
</div>
6060
<div class="footer">
61-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 10:01:41 GMT+0200 (CEST)</div>
61+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 11:55:11 GMT+0200 (CEST)</div>
6262
</div>
6363
<script src="prettify.js"></script>
6464
<script>

coverage/PhantomJS 1.9.8 (Mac OS X 0.0.0)/lcov-report/src/index.html

+11-11
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
<div class="header low">
1616
<h1>Code coverage report for <span class="entity">src/</span></h1>
1717
<h2>
18-
Statements: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19-
Branches: <span class="metric">25.29% <small>(22 / 87)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
18+
Statements: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19+
Branches: <span class="metric">28.26% <small>(26 / 92)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2020
Functions: <span class="metric">50% <small>(8 / 16)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21-
Lines: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Lines: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
2323
</h2>
2424
<div class="path"><a href="../index.html">All files</a> &#187; src/</div>
@@ -42,23 +42,23 @@ <h2>
4242
</thead>
4343
<tbody><tr>
4444
<td class="file low" data-value="ng-reading-indicator.js"><a href="ng-reading-indicator.js.html">ng-reading-indicator.js</a></td>
45-
<td data-value="35.11" class="pic low"><span class="cover-fill" style="width: 35px;"></span><span class="cover-empty" style="width:65px;"></span></td>
46-
<td data-value="35.11" class="pct low">35.11%</td>
47-
<td data-value="94" class="abs low">(33&nbsp;/&nbsp;94)</td>
48-
<td data-value="25.29" class="pct low">25.29%</td>
49-
<td data-value="87" class="abs low">(22&nbsp;/&nbsp;87)</td>
45+
<td data-value="35.71" class="pic low"><span class="cover-fill" style="width: 35px;"></span><span class="cover-empty" style="width:65px;"></span></td>
46+
<td data-value="35.71" class="pct low">35.71%</td>
47+
<td data-value="98" class="abs low">(35&nbsp;/&nbsp;98)</td>
48+
<td data-value="28.26" class="pct low">28.26%</td>
49+
<td data-value="92" class="abs low">(26&nbsp;/&nbsp;92)</td>
5050
<td data-value="50" class="pct medium">50%</td>
5151
<td data-value="16" class="abs medium">(8&nbsp;/&nbsp;16)</td>
52-
<td data-value="35.11" class="pct low">35.11%</td>
53-
<td data-value="94" class="abs low">(33&nbsp;/&nbsp;94)</td>
52+
<td data-value="35.71" class="pct low">35.71%</td>
53+
<td data-value="98" class="abs low">(35&nbsp;/&nbsp;98)</td>
5454
</tr>
5555

5656
</tbody>
5757
</table>
5858
</div>
5959
</div>
6060
<div class="footer">
61-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 10:01:41 GMT+0200 (CEST)</div>
61+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 11:55:11 GMT+0200 (CEST)</div>
6262
</div>
6363
<script src="../prettify.js"></script>
6464
<script>

coverage/PhantomJS 1.9.8 (Mac OS X 0.0.0)/lcov-report/src/ng-reading-indicator.js.html

+32-14
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
<div class="header low">
1616
<h1>Code coverage report for <span class="entity">src/ng-reading-indicator.js</span></h1>
1717
<h2>
18-
Statements: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19-
Branches: <span class="metric">25.29% <small>(22 / 87)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
18+
Statements: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
19+
Branches: <span class="metric">28.26% <small>(26 / 92)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2020
Functions: <span class="metric">50% <small>(8 / 16)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21-
Lines: <span class="metric">35.11% <small>(33 / 94)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Lines: <span class="metric">35.71% <small>(35 / 98)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
2323
</h2>
2424
<div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">src/</a> &#187; ng-reading-indicator.js</div>
@@ -229,7 +229,13 @@ <h2>
229229
202
230230
203
231231
204
232-
205</td><td class="line-coverage"><span class="cline-any cline-yes">1</span>
232+
205
233+
206
234+
207
235+
208
236+
209
237+
210
238+
211</td><td class="line-coverage"><span class="cline-any cline-yes">1</span>
233239
<span class="cline-any cline-neutral">&nbsp;</span>
234240
<span class="cline-any cline-neutral">&nbsp;</span>
235241
<span class="cline-any cline-yes">1</span>
@@ -282,6 +288,7 @@ <h2>
282288
<span class="cline-any cline-neutral">&nbsp;</span>
283289
<span class="cline-any cline-neutral">&nbsp;</span>
284290
<span class="cline-any cline-neutral">&nbsp;</span>
291+
<span class="cline-any cline-neutral">&nbsp;</span>
285292
<span class="cline-any cline-yes">1</span>
286293
<span class="cline-any cline-yes">4</span>
287294
<span class="cline-any cline-yes">8</span>
@@ -301,6 +308,10 @@ <h2>
301308
<span class="cline-any cline-yes">4</span>
302309
<span class="cline-any cline-neutral">&nbsp;</span>
303310
<span class="cline-any cline-yes">4</span>
311+
<span class="cline-any cline-yes">4</span>
312+
<span class="cline-any cline-neutral">&nbsp;</span>
313+
<span class="cline-any cline-neutral">&nbsp;</span>
314+
<span class="cline-any cline-yes">4</span>
304315
<span class="cline-any cline-yes">1</span>
305316
<span class="cline-any cline-yes">3</span>
306317
<span class="cline-any cline-yes">1</span>
@@ -355,23 +366,24 @@ <h2>
355366
<span class="cline-any cline-neutral">&nbsp;</span>
356367
<span class="cline-any cline-yes">1</span>
357368
<span class="cline-any cline-no">&nbsp;</span>
369+
<span class="cline-any cline-no">&nbsp;</span>
358370
<span class="cline-any cline-neutral">&nbsp;</span>
359371
<span class="cline-any cline-no">&nbsp;</span>
360372
<span class="cline-any cline-no">&nbsp;</span>
361-
<span class="cline-any cline-neutral">&nbsp;</span>
373+
<span class="cline-any cline-no">&nbsp;</span>
362374
<span class="cline-any cline-no">&nbsp;</span>
363375
<span class="cline-any cline-neutral">&nbsp;</span>
364376
<span class="cline-any cline-neutral">&nbsp;</span>
365377
<span class="cline-any cline-no">&nbsp;</span>
378+
<span class="cline-any cline-neutral">&nbsp;</span>
366379
<span class="cline-any cline-no">&nbsp;</span>
367380
<span class="cline-any cline-no">&nbsp;</span>
368-
<span class="cline-any cline-neutral">&nbsp;</span>
369-
<span class="cline-any cline-neutral">&nbsp;</span>
370381
<span class="cline-any cline-no">&nbsp;</span>
371382
<span class="cline-any cline-neutral">&nbsp;</span>
372383
<span class="cline-any cline-neutral">&nbsp;</span>
373384
<span class="cline-any cline-no">&nbsp;</span>
374385
<span class="cline-any cline-neutral">&nbsp;</span>
386+
<span class="cline-any cline-neutral">&nbsp;</span>
375387
<span class="cline-any cline-no">&nbsp;</span>
376388
<span class="cline-any cline-neutral">&nbsp;</span>
377389
<span class="cline-any cline-no">&nbsp;</span>
@@ -471,6 +483,7 @@ <h2>
471483
expandOffset = null,
472484
expandOnHeadline = false,
473485
options = {
486+
calcFrom: 'middle',
474487
showHeadline: true,
475488
expand: true,
476489
type: 'small',
@@ -503,6 +516,10 @@ <h2>
503516
}
504517
&nbsp;
505518
extendDeep(options, scope.userOptions());
519+
&nbsp;
520+
<span class="missing-if-branch" title="else path not taken" >E</span>if (options.calcFrom !== 'bottom' &amp;&amp; options.calcFrom !== 'top' &amp;&amp; options.calcFrom !== 'bottom') {
521+
options.calcFrom = 'middle';
522+
}
506523
&nbsp;
507524
if (!options.expand &amp;&amp; options.type !== 'small') {
508525
angular.element(element).addClass('ng-reading-indicator-expanded');
@@ -559,13 +576,16 @@ <h2>
559576
&nbsp;
560577
<span class="fstat-no" title="function not covered" > function updateProgress() {</span>
561578
<span class="cstat-no" title="statement not covered" > var scrollPos = angular.element($window)[0].scrollY || angular.element($window)[0].pageYOffset;</span>
579+
<span class="cstat-no" title="statement not covered" > var origScrollPos = scrollPos;</span>
562580
&nbsp;
563-
<span class="cstat-no" title="statement not covered" > if (article[0].scrollHeight - window.innerHeight &gt; 0) {</span>
564-
<span class="cstat-no" title="statement not covered" > progress = (scrollPos &lt;= top) ? 0 : ((scrollPos-top) / bottom) * 100;</span>
565-
} else {
566-
<span class="cstat-no" title="statement not covered" > progress = (scrollPos &lt;= top) ? 0 : (((scrollPos-top)+((top + bottom) - (document.body.offsetHeight - window.innerHeight))) / bottom) * 100;</span>
581+
<span class="cstat-no" title="statement not covered" > if (options.calcFrom === 'middle') {</span>
582+
<span class="cstat-no" title="statement not covered" > scrollPos = origScrollPos + (window.innerHeight / 2);</span>
583+
} else <span class="cstat-no" title="statement not covered" >if (options.calcFrom === 'bottom') {</span>
584+
<span class="cstat-no" title="statement not covered" > scrollPos = origScrollPos + window.innerHeight;</span>
567585
}
568586
&nbsp;
587+
<span class="cstat-no" title="statement not covered" > progress = (scrollPos &lt;= top) ? 0 : ((scrollPos-top) / (top-bottom)) * 100;</span>
588+
&nbsp;
569589
<span class="cstat-no" title="statement not covered" > if (options.readingTime.enable) {</span>
570590
<span class="cstat-no" title="statement not covered" > scope.$apply( <span class="fstat-no" title="function not covered" >function(){</span></span>
571591
<span class="cstat-no" title="statement not covered" > scope.readingTime = calculateReadingTime();</span>
@@ -576,8 +596,6 @@ <h2>
576596
&nbsp;
577597
<span class="cstat-no" title="statement not covered" > progressBar.style.width = progress + '%';</span>
578598
&nbsp;
579-
<span class="cstat-no" title="statement not covered" > console.log(options, expandOffset.top, options.topOffset);</span>
580-
&nbsp;
581599
<span class="cstat-no" title="statement not covered" > if ((!options.expand &amp;&amp; options.type === 'small' &amp;&amp; scrollPos &gt;= (top + expandOffset.top + options.topOffset)) || (options.expand &amp;&amp; scrollPos &gt; top &amp;&amp; scrollPos &lt; (top + expandOffset.top + options.topOffset))) {</span>
582600
<span class="cstat-no" title="statement not covered" > angular.element(element)[0].style.height = '5px';</span>
583601
<span class="cstat-no" title="statement not covered" > angular.element(element).addClass('ng-reading-indicator-shrink');</span>
@@ -642,7 +660,7 @@ <h2>
642660

643661
</div>
644662
<div class="footer">
645-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 10:01:41 GMT+0200 (CEST)</div>
663+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jul 16 2015 11:55:11 GMT+0200 (CEST)</div>
646664
</div>
647665
<script src="../prettify.js"></script>
648666
<script>

0 commit comments

Comments
 (0)