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/components/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/components/DateInYearInput.js
import FCore from "../core/FCore";
import ScalableComponent from "../core/ScalableComponent";
import {beginOfDay, compareDate} from "absol/src/Time/datetime";
import inheritComponentClass from "../core/inheritComponentClass";
import InputAttributeHandlers, {InputAttributeNames} from "./handlers/InputAttributeHandlers";
import {AssemblerInstance} from "../core/Assembler";


var _ = FCore._;

/***
 * @extends ScalableComponent
 * @constructor
 */
function DateInYearInput() {
    ScalableComponent.call(this);
}

inheritComponentClass(DateInYearInput, ScalableComponent);


DateInYearInput.prototype.tag = "DateInYearInput";
DateInYearInput.prototype.menuIcon = "span.mdi.mdi-calendar-today";

DateInYearInput.prototype.SUPPORT_EVENT_NAMES = ['change'];

Object.assign(DateInYearInput.prototype.attributeHandlers, InputAttributeHandlers);


DateInYearInput.prototype.attributeHandlers.notNull = {
    set: function (value){
        this.domElt.notNull = !!value;
    },
    get: function (){
        return this.domElt.notNull;
    },
    export: function (){
        return this.domElt.notNull || undefined;
    },
    descriptor:{
        type:'bool'
    }
};

DateInYearInput.prototype.attributeHandlers.value = {
    set: function (value) {
        var prev = this.domElt.value;
        if (value instanceof Date)
            this.domElt.value = {month: value.getMonth(), date: value.getDate()};
        else if (typeof value == 'string' || typeof value == "number") {
            value = new Date(value);
            this.domElt.value = {month: value.getMonth(), date: value.getDate()};
        }
        if (typeof value === 'object') {
            this.domElt.value = value;
        } else {
            value = null;
            this.domElt.value = null;
        }
        var cur = this.domElt.value;
        if (!prev !== !cur || (prev && cur && (prev.month !== cur.month || prev.date !== cur.date)))
            this.pinFire('value');
    },
    get: function () {
        return this.view.value;
    },
    descriptor: {
        type: 'DateMonth',
        nullable: true,
        defaultValue: beginOfDay(new Date()),
        sign: 'DateMonth_value'
    }
};

DateInYearInput.prototype.attributeHandlers.format = {
    set: function (value) {
        this.domElt.format = value || 'dd/MM';
    },
    get: function () {
        return this.domElt.format;
    },
    descriptor: {
        type: 'enum',
        values: ['dd/MM', 'MM/dd', 'MMM-dd', 'dd tháng MM']
    }
};


DateInYearInput.prototype.pinHandlers.value = {
    receives: function (value) {
        this.attributes.value = value;
    },
    get: function () {
        return this.domElt.value;
    },
    descriptor: {
        type: "DateMonth"
    }
};


DateInYearInput.prototype.render = function () {
    return _('dateinyearinput');
};

DateInYearInput.prototype.style.width = 100;
DateInYearInput.prototype.style.height = 30;


DateInYearInput.prototype.onCreate = function () {
    ScalableComponent.prototype.onCreate.call(this);
    this.attributes.value = null;
};


DateInYearInput.prototype.onCreated = function () {
    ScalableComponent.prototype.onCreated.call(this);
    this.domElt.on('change', this.ev_inputChange.bind(this));
};


DateInYearInput.prototype.getAcceptsEventNames = function () {
    return ScalableComponent.prototype.getAcceptsEventNames.call(this).concat(['change']);
};

DateInYearInput.prototype.measureMinSize = function () {
    return {width: 75, height: 16};
};

DateInYearInput.prototype.createDataBindingDescriptor = function () {
    var thisC = this;
    return {
        configurable: true,
        set: function (value) {
            thisC.setAttribute('value', value);
        },
        get: function () {
            return thisC.getAttribute('value');
        }
    };
};

DateInYearInput.prototype.ev_inputChange = function () {
    this.pinFire('value');
};

AssemblerInstance.addClass(DateInYearInput);


export default DateInYearInput;

VaKeR 2022