# qi-blocks/1.0.7/assets/dist/counter-script.js

Qi Blocks, version 1.0.7. 1 lines.

- Page: https://pluginprobe.com/plugins/qi-blocks/1.0.7/code/assets/dist/counter-script.js
- Raw: https://pluginprobe.com/plugins/qi-blocks/1.0.7/raw/assets/dist/counter-script.js
- Modified: 2022-12-23T11:22:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/qi-blocks/1.0.7/code/assets/dist/counter-script.js#L10-L20`.

```javascript
!function(){"use strict";document.addEventListener("DOMContentLoaded",(function(){t.init()}));const t={interval:[],init:function(){this.holder=document.querySelectorAll(".qi-block-counter"),this.holder.length&&[...this.holder].map((e=>{t.initItem(e)}))},getRealCurrentItem:function(t){return"string"==typeof t&&""!==t&&(t=qiBlocksEditor.qodefGetCurrentBlockElement.get(t)),t},initItem:function(e,i){const n=i?e:"";if(!(e=t.getRealCurrentItem(e)))return;const r=e.querySelector(".qodef-m-digit"),a=t.generateOptions(e);("object"!=typeof qiBlocksEditor?qiBlocks:qiBlocksEditor).qodefIsInViewport.check(e,(function(){t.counterScript(r,a,i,n)}))},generateOptions:function(t){let e={};return e.start=void 0!==t.getAttribute("data-start-digit")&&""!==t.getAttribute("data-start-digit")?parseInt(t.getAttribute("data-start-digit")):0,e.end=void 0!==t.getAttribute("data-end-digit")&&""!==t.getAttribute("data-end-digit")?parseInt(t.getAttribute("data-end-digit")):null,e.step=void 0!==t.getAttribute("data-step-digit")&&""!==t.getAttribute("data-step-digit")?parseInt(t.getAttribute("data-step-digit")):1,e.delay=void 0!==t.getAttribute("data-step-delay")&&""!==t.getAttribute("data-step-delay")?parseInt(t.getAttribute("data-step-delay"),10):100,e.txt=void 0!==t.getAttribute("data-digit-label")&&""!==t.getAttribute("data-digit-label")?String(t.getAttribute("data-digit-label")):"",e},counterScript:function(e,i,n,r){let a=Object.assign({start:0,end:null,step:1,delay:50,txt:""},i||{}),d=a.start,o=a.end;e.innerHTML=d+a.txt,n&&r&&clearInterval(t.interval[r]);const l=t.interval[r]=setInterval((function(){null!==o&&d>=o||(d+=a.step,d>=o&&(d=o,clearInterval(r?t.interval[r]:l)),e.innerHTML=d+a.txt)}),a.delay)}}}();
```
