import type { IStyle } from 'jodit/types'; import { css } from 'jodit/core/helpers/utils/css'; import { isVoid } from 'jodit/core/helpers/checker/is-void'; import { normalizeCssValue } from 'jodit/core/helpers/normalize/normalize-css-value'; import { Dom } from 'jodit/core/dom'; /** * Element has the same styles as in the commit * @private */ export function elementHasSameStyle(elm: Node, rules: IStyle): boolean { return Boolean( !Dom.isTag(elm, 'font') && Dom.isHTMLElement(elm) && Object.keys(rules).every(property => { const value = css(elm, property, true); return ( !isVoid(value) && value !== '' && !isVoid(rules[property]) && normalizeCssValue(property, rules[property] as string) .toString() .toLowerCase() === value.toString().toLowerCase() ); }) ); } /** * Element has the similar styles */ export function elementHasSameStyleKeys(elm: Node, rules: IStyle): boolean { return Boolean( !Dom.isTag(elm, 'font') && Dom.isHTMLElement(elm) && Object.keys(rules).every( property => !isVoid(css(elm, property, true)) ) ); }