VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-form/js/blocks/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/blocks/CBTimer.js
import {AssemblerInstance} from "../core/Assembler";
import BaseBlock from "../core/BaseBlock";
import inheritComponentClass from "../core/inheritComponentClass";

function CBTimer() {
    BaseBlock.call(this);
    this._intervalId = -1;
    this.attributes.duration = 0;
    this['tick'] = this.tick.bind(this);
}

inheritComponentClass(CBTimer, BaseBlock);

CBTimer.prototype.tag = 'CBTimer';

CBTimer.prototype.pinHandlers.signal = {
    get: function () {
        return true;
    },
    descriptor: {
        type: "bool"
    }
};

CBTimer.prototype.attributeHandlers.duration = {
    set: function (value) {
        if (!(value > 0)) {
            value = 0;
        }
        if (this._intervalId >= 0) {
            clearInterval(this._intervalId);
            this._intervalId = -1;
        }
        if (value > 0) {
            this._intervalId = setInterval(this.tick, value);
        }
        return value;
    },
    descriptor: {
        type: 'number',
        min: 0
    }
};

CBTimer.prototype.tick = function () {
    this.pinFire('signal');
};


AssemblerInstance.addClass(CBTimer);

export default CBTimer;

VaKeR 2022