UNPKG

jc-color

Version:

A JavaScript tool for color compute and console print tool both for NodeJS and Browser.

1 lines 12.7 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.str=exports.clsLine=exports.print=exports.cls=exports.geadientText=exports.gradientText=exports.ColorText=exports.TextUnit=void 0;const jc_utils_1=require("@jcstdio/jc-utils"),colors_1=(Object.defineProperty(exports,"str",{enumerable:!0,get:function(){return jc_utils_1.str}}),require("./colors")),core_1=require("../core"),types_1=require("../types"),converters_1=require("../converters"),converters_2=require("../converters"),platform_1=require("./platform");class TextUnit{constructor(e="",o="default",r="default",t={reverse:!1,inverseFore:!1,inverseBg:!1,bold:!1,clear:!1,dark:!1,delete:!1,glimmer:!1,hidden:!1,italic:!1,overline:!1,underline:!1,underline_double:!1},s=!0){this._fontSize=-1,this._default={red:-1,green:-1,blue:-1},this._text=e.toString(),this._endstyle=s,this._modes=t,(0,jc_utils_1.isString)(o)?"default"===(o=o.toLowerCase())?this._foreColor=this._default:colors_1.colorNames.includes(o)?(e=colors_1.colorsDict[o],this._foreColor={red:e.red,green:e.green,blue:e.blue}):(0,types_1.isHexColor)(o)?this._foreColor=(0,converters_1.hexToChannels)(o):(0,types_1.isRgbColor)(o)?this._foreColor=(0,converters_1.rgbToChannels)(o):this._foreColor={red:0,green:0,blue:0}:this._foreColor=o,(0,jc_utils_1.isString)(r)?"default"===(r=r.toLowerCase())?this._bgColor=this._default:colors_1.colorNames.includes(r)?(s=colors_1.colorsDict[r],this._bgColor={red:s.red,green:s.green,blue:s.blue}):(0,types_1.isHexColor)(r)?this._bgColor=(0,converters_1.hexToChannels)(r):(0,types_1.isRgbColor)(r)?this._bgColor=(0,converters_1.rgbToChannels)(r):this._bgColor={red:0,green:0,blue:0}:this._bgColor=r}get text(){return this._text}get endstyle(){return this._endstyle}remove_color(e=this._text){return this.foreColor="default",this.bgColor="default",this._text=e,this}remove_bgColor(e=this._text,o=this._foreColor){return this.bgColor="default",this._text=e,this.foreColor=o,this}remove_foreColor(e=this._text,o=this._bgColor){return this.foreColor="default",this._text=e,this.bgColor=o,this}remove_italic(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.italic=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_bold(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.bold=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_glimmer(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.glimmer=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}reBgColor(e=this._bgColor){return this.bgColor=e,this}reForeColor(e=this._foreColor){return this.foreColor=e,this}remove_hidden(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.hidden=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_overline(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.overline=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_reverse(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.reverse=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_inverseFore(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseFore=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_inverseBg(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseBg=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_inverse(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseFore=!1,this._modes.inverseBg=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_underline(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.underline=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_underline_double(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.underline_double=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}remove_delete(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.delete=!1,this._text=e,this.foreColor=o,this.bgColor=r,this}bold(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.bold=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}reverse(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.reverse=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}inverseFore(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseFore=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}inverseBg(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseBg=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}inverse(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.inverseFore=!0,this._modes.inverseBg=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}glimmer(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.glimmer=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}dark(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.dark=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}delete(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.delete=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}hidden(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.hidden=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}italic(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.italic=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}overline(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.overline=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}underline(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.underline=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}underline_double(e=this._text,o=this._foreColor,r=this._bgColor){return this._modes.underline_double=!0,this.foreColor=o,this.bgColor=r,this._text=e,this}get bgColor(){return this._bgColor}set bgColor(e){var o;(0,jc_utils_1.isString)(e)?"default"===(e=e.toLowerCase())?this._bgColor=this._default:colors_1.colorNames.includes(e)?(o=colors_1.colorsDict[e],this._bgColor={red:o.red,green:o.green,blue:o.blue}):(0,types_1.isHexColor)(e)?this._bgColor=(0,converters_1.hexToChannels)(e):(0,types_1.isRgbColor)(e)?this._bgColor=(0,converters_1.rgbToChannels)(e):this._bgColor={red:0,green:0,blue:0}:this._bgColor=e}get foreColor(){return this._foreColor}set foreColor(e){var o;(0,jc_utils_1.isString)(e)?"default"===(e=e.toLowerCase())?this._foreColor=this._default:colors_1.colorNames.includes(e)?(o=colors_1.colorsDict[e],this._foreColor={red:o.red,green:o.green,blue:o.blue}):(0,types_1.isHexColor)(e)?this._foreColor=(0,converters_1.hexToChannels)(e):(0,types_1.isRgbColor)(e)?this._foreColor=(0,converters_1.rgbToChannels)(e):this._foreColor={red:0,green:0,blue:0}:this._foreColor=e}get size(){return this._fontSize}set size(e){this._fontSize=e}get value(){return{str:this._text,background:this._bgColor,foreground:this._foreColor,size:this._fontSize,bold:this._modes.bold,italic:this._modes.italic,delete:this._modes.delete,underline:this._modes.underline,underline_double:this._modes.underline_double,glimmer:this._modes.glimmer,hidden:this._modes.hidden,dark:this._modes.dark,reverse:this._modes.reverse,inverseFore:this._modes.inverseFore,inverseBg:this._modes.inverseBg}}styleDescriptor(e=this){let o="text-decoration:",r=((e._modes.underline||e._modes.underline_double)&&(o+=" underline"),e._modes.overline&&(o+=" overline"),e._modes.glimmer&&(o+=" blink"),e._modes.delete&&(o+=" line-through"),"text-decoration:"===o?o+="inherit;":o+=";","");return r+=o,e._foreColor!==e._default&&(e._modes.reverse?e._modes.inverseFore?r+=`color:rgb(${255-e._bgColor.red},${255-e._bgColor.green},${255-e._bgColor.blue});`:r+=`color:rgb(${e._bgColor.red},${e._bgColor.green},${e._bgColor.blue});`:e._modes.inverseFore?r+=`color:rgb(${255-e._foreColor.red},${255-e._foreColor.green},${255-e._foreColor.blue});`:r+=`color:rgb(${e._foreColor.red},${e._foreColor.green},${e._foreColor.blue});`),e._bgColor!==e._default&&(e._modes.reverse?e._modes.inverseBg?r+=`background-color:rgb(${255-e._foreColor.red},${255-e._foreColor.green},${255-e._foreColor.blue});`:r+=`background-color:rgb(${e._foreColor.red},${e._foreColor.green},${e._foreColor.blue});`:e._modes.inverseBg?r+=`background-color:rgb(${255-e._bgColor.red},${255-e._bgColor.green},${255-e._bgColor.blue});`:r+=`background-color:rgb(${e._bgColor.red},${e._bgColor.green},${e._bgColor.blue});`),e._modes.bold&&(r+="font-weight:bold;"),e._modes.italic&&(r+="font-style:italic;"),e._modes.overline&&(r+=`border-top:1px solid rgb(${e._foreColor.red},${e._foreColor.green},${e._foreColor.blue});`),e._modes.underline_double&&(r+=`border-bottom:1px solid rgb(${e._foreColor.red},${e._foreColor.green},${e._foreColor.blue});`),0<e._fontSize&&(r+=`font-size:${parseInt(e._fontSize.toString(),10)}px`),r}get modes(){return this._modes}__str__(e=this){return"Node"===(0,platform_1.getPlatform)()?(0,platform_1.templates)(e).Node.default:(0,platform_1.templates)(e).Browser}print(e=this._text){return this._text=e,"Node"===(0,platform_1.getPlatform)()?console.log((0,jc_utils_1.str)(this)):console.log((0,jc_utils_1.str)(this),this.styleDescriptor()),this}}exports.TextUnit=TextUnit;class ColorText extends Array{constructor(...e){super(),this.push(...e)}_pushUnit(...e){return 0===e.length?(0,jc_utils_1.noop)():e[0]instanceof TextUnit?e.forEach(e=>{e instanceof TextUnit?super.push(e):super.push(new TextUnit(e.text,e.foreColor,e.bgColor))}):e.forEach(e=>super.push(new TextUnit(e.text,e.bgColor,e.foreColor))),this.length}push(...o){for(let e=0;e<o.length;e++){var r=o[e];r instanceof TextUnit?this._pushUnit(r):r instanceof ColorText?r.forEach(e=>this._pushUnit(e)):(0,jc_utils_1.isString)(r)||(0,jc_utils_1.isNumber)(r)?this._pushUnit(new TextUnit(r)):this._pushUnit(new TextUnit(r.toString()))}return this.length}get bgColor(){return this.map(e=>e.bgColor)}set bgColor(o){if((0,jc_utils_1.isString)(o)||(0,types_1.isRgbChannels)(o))this.forEach(e=>{e.bgColor=o});else if(this.length<=o.length)for(let e=0;e<this.length;e++)this[e].bgColor=o[e];else for(let e=0;e<o.length;e++)this[e].bgColor=o[e]}get foreColor(){return this.map(e=>e.foreColor)}set foreColor(o){if((0,jc_utils_1.isString)(o)||(0,types_1.isRgbChannels)(o))this.forEach(e=>{e.foreColor=o});else if(this.length<=o.length)for(let e=0;e<this.length;e++)this[e].foreColor=o[e];else for(let e=0;e<o.length;e++)this[e].foreColor=o[e]}add(...e){this.push(...e)}node__str__(){let o="";return this.forEach(e=>o+=(0,jc_utils_1.str)(e)),o}print(){var e,o;return"Node"===(0,platform_1.getPlatform)()?console.log(this.node__str__()):(e=this.map(e=>(0,jc_utils_1.str)(e)).join(""),o=this.map(e=>{return Reflect.get(e,"styleDescriptor").apply(e)}),console.log(e,...o)),this}bold(){return this.forEach(e=>{e.bold()}),this}remove_bold(){return this.forEach(e=>{e.remove_bold()}),this}italic(){return this.forEach(e=>{e.italic()}),this}remove_italic(){return this.forEach(e=>{e.remove_italic()}),this}delete(){return this.forEach(e=>{e.delete()}),this}remove_delete(){return this.forEach(e=>{e.delete()}),this}underline(){return this.forEach(e=>{e.underline()}),this}remove_underline(){return this.forEach(e=>{e.remove_underline()}),this}underline_double(){return this.forEach(e=>{e.underline_double()}),this}remove_underline_double(){return this.forEach(e=>{e.remove_underline_double()}),this}glimmer(){return this.forEach(e=>{e.glimmer()}),this}remove_glimmer(){return this.forEach(e=>{e.remove_glimmer()}),this}reverse(){return this.forEach(e=>{e.reverse()}),this}remove_reverse(){return this.forEach(e=>{e.remove_reverse()}),this}inverse(){return this.forEach(e=>{e.inverse()}),this}remove_inverse(){return this.forEach(e=>{e.remove_inverse()}),this}}function gradientText(o,e=["#EB6461","#84FC2C","green"],r=[]){var t=o.length,s=new ColorText;for(let e=0;e<t;e++){var i=o[e],i=new TextUnit(i);s.push(i)}if((0,jc_utils_1.isString)(e))s.foreColor=(0,converters_2.colorToChannel)(e);else if(1===e.length)s.foreColor=e[0];else if(0===e.length)(0,jc_utils_1.noop)();else{var l=(0,core_1.creatGeadient)(e,t);for(let e=0;e<t;e++)s[e].foreColor=l[e]}if((0,jc_utils_1.isString)(r))s.bgColor=(0,converters_2.colorToChannel)(r);else if(1===r.length)s.bgColor=r[0];else if(0===r.length)(0,jc_utils_1.noop)();else{var h=(0,core_1.creatGeadient)(r,t);for(let e=0;e<t;e++)s[e].bgColor=h[e]}return s}function geadientText(e,o=["#EB6461","#84FC2C","green"],r=[]){return gradientText(e,o,r)}function print(...e){let o="";e.forEach(e=>{o+=(0,jc_utils_1.str)(e)}),console.log(o)}function cls(){console.clear()}function clsLine(){console.log("")}exports.ColorText=ColorText,exports.gradientText=gradientText,exports.geadientText=geadientText,exports.print=print,exports.cls=cls,exports.clsLine=clsLine;