//called when the delete button is pressed on color picker //input color button or hex string function deleteColor (color) { const logStyle = 'background: #913939; color: white; padding: 5px;'; //console.log('%c'+'deleting color', logStyle); //if color is a string, then find the corresponding button if (typeof color === 'string') { console.log('trying to find ',color); //get all colors in palette colors = document.getElementsByClassName('color-button'); //loop through colors for (var i = 0; i < colors.length; i++) { console.log(color,'=',colors[i].jscolor.toString()); if (color == colors[i].jscolor.toString()) { console.log('match'); //set color to the color button color = colors[i]; console.log('found color', color); //exit loop break; } } //if the color wasn't found if (typeof color === 'string') { console.log('color not found'); //exit function return; } } //hide color picker color.jscolor.hide(); //find lightest color in palette var colors = document.getElementsByClassName('color-button'); var lightestColor = [0,null]; for (var i = 0; i < colors.length; i++) { //get colors lightness var lightness = rgbToHsl(colors[i].jscolor.toRgb()).l; //console.log('%c'+lightness, logStyle) //if not the color we're deleting if (colors[i] != color) { //if lighter than the current lightest, set as the new lightest if (lightness > lightestColor[0]) { lightestColor[0] = lightness; lightestColor[1] = colors[i]; } } } //console.log('%c'+'replacing with lightest color: '+lightestColor[1].jscolor.toString(), logStyle) //replace deleted color with lightest color replaceAllOfColor(color.jscolor.toString(),lightestColor[1].jscolor.toString()); //if the color you are deleting is the currently selected color if (color.parentElement.classList.contains('selected')) { //console.log('%c'+'deleted color is currently selected', logStyle); //set current color TO LIGHTEST COLOR lightestColor[1].parentElement.classList.add('selected'); currentLayer.context.fillStyle = '#'+lightestColor[1].jscolor.toString(); } //delete the element colorsMenu.removeChild(color.parentElement); }