function ChangeFontFamilyOnSelect(selectBtnRef) { let selectedFontFamily = selectBtnRef.value; if (currentActiveCell) { currentActiveCell.style.fontFamily = selectedFontFamily; activeCellOptionsState.fontFamily = selectedFontFamily; } } function ChangeFontSizeOnSelect(selectBtnRef) { let selectedFontSize = selectBtnRef.value + "px"; if (currentActiveCell) { currentActiveCell.style.fontSize = selectedFontSize; console.log(currentActiveCell.style); } } function handleBold() { /** * 1. toggle `active-option` class for the button. * 2. get the selected cell. */ boldButton.classList.toggle("optionActive"); if (currentActiveCell) { if (activeCellOptionsState.isBoldActive === false) { currentActiveCell.style.fontWeight = "600"; } else { currentActiveCell.style.fontWeight = "400"; } activeCellOptionsState.isBoldActive = !activeCellOptionsState.isBoldActive; } } function handleItalic() { italicButton.classList.toggle("optionActive"); if (currentActiveCell) { if (activeCellOptionsState.isItalicActive) { currentActiveCell.style.fontStyle = "normal"; } else { currentActiveCell.style.fontStyle = "italic"; } activeCellOptionsState.isItalicActive = !activeCellOptionsState.isItalicActive; } } function handleUnderline() { underlineButton.classList.toggle("optionActive"); if (currentActiveCell) { if (activeCellOptionsState.isUnderlineActive) { // if the text is underlined => none currentActiveCell.style.textDecoration = "none"; } else { currentActiveCell.style.textDecoration = "underline"; } activeCellOptionsState.isUnderlineActive = !activeCellOptionsState.isUnderlineActive; } } function handleTextAlign(btnRef) { let selectedAlignment = btnRef.getAttribute("data-value"); highlightTextAlignButtons(selectedAlignment); if (currentActiveCell) { currentActiveCell.style.textAlign = selectedAlignment; activeCellOptionsState.textAlign = selectedAlignment; } } function handleTextColor(txtColorInput) { let selectedTxtColor = txtColorInput.value; if (currentActiveCell) { currentActiveCell.style.color = selectedTxtColor; activeCellOptionsState.textColor = selectedTxtColor; } } function HandleBackgroundColor(BgColorInput) { let selectedBGColor = BgColorInput.value; if (currentActiveCell) { currentActiveCell.style.backgroundColor = selectedBGColor; activeCellOptionsState.backgroundColor = selectedBGColor; } } function handleCut() { if (currentActiveCell) { const textCut = currentActiveCell.innerText; navigator.clipboard .writeText(textCut) .then(function () { currentActiveCell.innerText = ""; console.log("text cut and copied to clipboard"); }) .catch(function (err) { console.error("unable to cut text: ", err); }); } } function handleCopy() { if (currentActiveCell) { const textCopied = currentActiveCell.innerText; navigator.clipboard .writeText(textCopied) .then(function () { console.log("Text copied to clipboard"); }) .catch(function (err) { console.error("Unable to copy text: ", err); }); } } function handlePaste() { if (currentActiveCell) { navigator.clipboard .readText() .then(function (text) { currentActiveCell.innerText = text; console.log("Text pasted from clipboard"); }) .catch(function (err) { console.error("Unable to paste text: ", err); }); } }