X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ebf95f637a199fa4493013933fabf073d4113bb4..refs/pull/5313/head:/resources/js/wysiwyg/utils/dom.ts diff --git a/resources/js/wysiwyg/utils/dom.ts b/resources/js/wysiwyg/utils/dom.ts index a307bdd75..bbb07cb41 100644 --- a/resources/js/wysiwyg/utils/dom.ts +++ b/resources/js/wysiwyg/utils/dom.ts @@ -31,6 +31,22 @@ export function formatSizeValue(size: number | string, defaultSuffix: string = ' return size; } +export function sizeToPixels(size: string): number { + if (/^-?\d+$/.test(size)) { + return Number(size); + } + + if (/^-?\d+\.\d+$/.test(size)) { + return Math.round(Number(size)); + } + + if (/^-?\d+px\s*$/.test(size)) { + return Number(size.trim().replace('px', '')); + } + + return 0; +} + export type StyleMap = Map; /** @@ -54,4 +70,12 @@ export function extractStyleMapFromElement(element: HTMLElement): StyleMap { } return map; +} + +export function setOrRemoveAttribute(element: HTMLElement, name: string, value: string|null|undefined) { + if (value) { + element.setAttribute(name, value); + } else { + element.removeAttribute(name); + } } \ No newline at end of file