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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/components/handlers/TextStyleHandlers.js
import Color from "absol/src/Color/Color";
import safeThrow from "absol/src/Code/safeThrow";

var TextStyleHandlers = {};
TextStyleHandlers.textColor = {
    set: function (value) {
        var vColor;
        try {
            if (value instanceof Color) vColor = value;
            else if (typeof value === 'string') {
                vColor = Color.parse(value)
            } else vColor = new Color([0, 0, 0, 0]);
        } catch (err) {
            safeThrow(err);
            vColor = new Color([0, 0, 0, 0]);
        }
        value = vColor.toString('HEX8');
        this.domElt.addStyle('color', value);
        return value;
    },
    descriptor: {
        type: "color",
        sign: "TextColor"
    }
};

TextStyleHandlers.textSize = {
    set: function (value) {
        if (value > 0) {
            this.domElt.addStyle('font-size', value + 'px');
        } else {
            this.domElt.removeStyle('font-size');
            value = undefined;
        }

        return value;
    },
    descriptor: {
        type: "number",
        nullable: true,
        defaultValue: 14,
        sign: "FontSize"
    },
    export: function (ref) {
        return ref.get() || undefined;
    }
};

TextStyleHandlers.font = {
    set: function (value) {
        if (value && value !== 'None' && value !== 'unset')
            this.domElt.addStyle('font-family', value);
        else
            this.domElt.removeStyle('font-family');
        return value;
    },
    descriptor: {
        type: "font",
        sign: 'TextFont'
    }
};

TextStyleHandlers.fontStyle = {
    set: function (value) {
        if (!fontStyle2DomStyle[value]) value = 'Regular';
        this.domElt.addStyle(fontStyle2DomStyle[value] || fontStyle2DomStyle.Regular);
    },
    descriptor: {
        type: "enum",
        values: ['Regular',
            'Italic', 'Bold', 'Bold italic'],
        sign: 'FontStyle'
    },
    export: function () {
        var value = arguments[arguments.length - 1].get();
        if (value === 'Regular') return undefined;
        return value;
    }
};

export var fontStyle2DomStyle = {
    Regular: {
        fontWeight: 'normal',
        fontStyle: 'normal'
    },
    Bold: {
        fontWeight: 'bold',
        fontStyle: 'normal'
    },
    'Bold italic': {
        fontWeight: 'bold',
        fontStyle: 'italic'
    },
    Italic: {
        fontWeight: 'normal',
        fontStyle: 'italic'
    }
};

TextStyleHandlers.textAlign = {
    set: function (value) {
        if (['left', 'center', 'right'.indexOf(value) >= 0])
            this.domElt.addStyle('text-align', value);
        else
            this.domElt.addStyle('text-align', 'left');
        return value;
    },
    descriptor: {
        type: "textAlign",
        sign: "TextAlign"
    }
};

export default TextStyleHandlers;

VaKeR 2022