PHP Classes

File: public/js/tinymce/src/ui/src/main/js/fmt/FontInfo.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/ui/src/main/js/fmt/FontInfo.js   Download  
File: public/js/tinymce/src/ui/src/main/js/fmt/FontInfo.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 2,217 bytes
 

Contents

Class file image Download
/** * FontInfo.js * * Released under LGPL License. * Copyright (c) 1999-2017 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** * Internal class for computing font size for elements. * * @private * @class tinymce.fmt.FontInfo */ define( 'tinymce.ui.fmt.FontInfo', [ 'ephox.katamari.api.Fun', 'ephox.katamari.api.Option', 'ephox.sugar.api.node.Element', 'ephox.sugar.api.node.Node', 'tinymce.core.dom.DOMUtils' ], function (Fun, Option, Element, Node, DOMUtils) { var getSpecifiedFontProp = function (propName, rootElm, elm) { while (elm !== rootElm) { if (elm.style[propName]) { var foundStyle = elm.style[propName]; return foundStyle !== '' ? Option.some(foundStyle) : Option.none(); } elm = elm.parentNode; } return Option.none(); }; var round = function (number, precision) { var factor = Math.pow(10, precision); return Math.round(number * factor) / factor; }; var toPt = function (fontSize, precision) { if (/[0-9.]+px$/.test(fontSize)) { // Round to the nearest 0.5 return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt'; } return fontSize; }; var normalizeFontFamily = function (fontFamily) { // 'Font name', Font -> Font name,Font return fontFamily.replace(/[\'\"]/g, '').replace(/,\s+/g, ','); }; var getComputedFontProp = function (propName, elm) { return Option.from(DOMUtils.DOM.getStyle(elm, propName, true)); }; var getFontProp = function (propName) { return function (rootElm, elm) { return Option.from(elm) .map(Element.fromDom) .filter(Node.isElement) .bind(function (element) { return getSpecifiedFontProp(propName, rootElm, element.dom()) .or(getComputedFontProp(propName, element.dom())); }) .getOr(''); }; }; return { getFontSize: getFontProp('fontSize'), getFontFamily: Fun.compose(normalizeFontFamily, getFontProp('fontFamily')), toPt: toPt }; } );