all files / src/js/base/core/ env.js

60.47% Statements 26/43
51.35% Branches 19/37
100% Functions 3/3
59.52% Lines 25/42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105             1089× 1089× 1089× 1089× 1089× 1089× 1089× 1089× 1089× 1089×                                                                                                                                                    
(function(global){global.wrappers['/Users/lqez/Dev/summernote/src/js/base/core/env.js']=[function(require,module,exports,__dirname,__filename){ "use strict";
exports.__esModule = true;
var jquery_1 = require("jquery");
var isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line
/**
 * returns whether font is installed or not.
 *
 * @param {String} fontName
 * @return {Boolean}
 */
function isFontInstalled(fontName) {
    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';
    var testText = 'mmmmmmmmmmwwwww';
    var testSize = '200px';
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    context.font = testSize + " '" + testFontName + "'";
    var originalWidth = context.measureText(testText).width;
    context.font = testSize + " '" + fontName + "', '" + testFontName + "'";
    var width = context.measureText(testText).width;
    return originalWidth !== width;
}
var userAgent = navigator.userAgent;
var isMSIE = /MSIE|Trident/i.test(userAgent);
var browserVersion;
Iif (isMSIE) {
    var matches = /MSIE (\d+[.]\d+)/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
    matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
}
var isEdge = /Edge\/\d+/.test(userAgent);
var hasCodeMirror = !!window.CodeMirror;
Iif (!hasCodeMirror && isSupportAmd) {
    // Webpack
    if (typeof __webpack_require__ === 'function') { // eslint-disable-line
        try {
            // If CodeMirror can't be resolved, `require.resolve` will throw an
            // exception and `hasCodeMirror` won't be set to `true`.
            require.resolve('codemirror');
            hasCodeMirror = true;
        }
        catch (e) {
            // do nothing
        }
    }
    else if (typeof require !== 'undefined') {
        // Browserify
        if (typeof require.resolve !== 'undefined') {
            try {
                // If CodeMirror can't be resolved, `require.resolve` will throw an
                // exception and `hasCodeMirror` won't be set to `true`.
                require.resolve('codemirror');
                hasCodeMirror = true;
            }
            catch (e) {
                // do nothing
            }
            // Almond/Require
        }
        else if (typeof require.specified !== 'undefined') {
            hasCodeMirror = require.specified('codemirror');
        }
    }
}
var isSupportTouch = (('ontouchstart' in window) ||
    (navigator.MaxTouchPoints > 0) ||
    (navigator.msMaxTouchPoints > 0));
// [workaround] IE doesn't have input events for contentEditable
// - see: https://goo.gl/4bfIvA
var inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';
/**
 * @class core.env
 *
 * Object which check platform and agent
 *
 * @singleton
 * @alternateClassName env
 */
exports["default"] = {
    isMac: navigator.appVersion.indexOf('Mac') > -1,
    isMSIE: isMSIE,
    isEdge: isEdge,
    isFF: !isEdge && /firefox/i.test(userAgent),
    isPhantom: /PhantomJS/i.test(userAgent),
    isWebkit: !isEdge && /webkit/i.test(userAgent),
    isChrome: !isEdge && /chrome/i.test(userAgent),
    isSafari: !isEdge && /safari/i.test(userAgent),
    browserVersion: browserVersion,
    jqueryVersion: parseFloat(jquery_1["default"].fn.jquery),
    isSupportAmd: isSupportAmd,
    isSupportTouch: isSupportTouch,
    hasCodeMirror: hasCodeMirror,
    isFontInstalled: isFontInstalled,
    isW3CRangeSupport: !!document.createRange,
    inputEventName: inputEventName
};
 
},'src/js/base/core/env.js',{"jquery":"/Users/lqez/Dev/summernote/node_modules/jquery/dist/jquery.js"}];})(this);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW52LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQXVCO0FBQ3ZCLElBQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsc0JBQXNCO0FBRXZGOzs7OztHQUtHO0FBQ0gsU0FBUyxlQUFlLENBQUMsUUFBUTtJQUMvQixJQUFNLFlBQVksR0FBRyxRQUFRLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUNwRixJQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFFekIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksR0FBRyxZQUFZLEdBQUcsR0FBRyxDQUFDO0lBQ3BELElBQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTFELE9BQU8sQ0FBQyxJQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLFlBQVksR0FBRyxHQUFHLENBQUM7SUFDeEUsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFFbEQsT0FBTyxhQUFhLEtBQUssS0FBSyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxJQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ3RDLElBQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7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QyxZQUFZLGNBQUE7SUFDWixjQUFjLGdCQUFBO0lBQ2QsYUFBYSxlQUFBO0lBQ2IsZUFBZSxpQkFBQTtJQUNmLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVztJQUN6QyxjQUFjLGdCQUFBO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5jb25zdCBpc1N1cHBvcnRBbWQgPSB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuLyoqXG4gKiByZXR1cm5zIHdoZXRoZXIgZm9udCBpcyBpbnN0YWxsZWQgb3Igbm90LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmb250TmFtZVxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGb250SW5zdGFsbGVkKGZvbnROYW1lKSB7XG4gIGNvbnN0IHRlc3RGb250TmFtZSA9IGZvbnROYW1lID09PSAnQ29taWMgU2FucyBNUycgPyAnQ291cmllciBOZXcnIDogJ0NvbWljIFNhbnMgTVMnO1xuICBjb25zdCB0ZXN0VGV4dCA9ICdtbW1tbW1tbW1td3d3d3cnO1xuICBjb25zdCB0ZXN0U2l6ZSA9ICcyMDBweCc7XG5cbiAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gIGNvbnRleHQuZm9udCA9IHRlc3RTaXplICsgXCIgJ1wiICsgdGVzdEZvbnROYW1lICsgXCInXCI7XG4gIGNvbnN0IG9yaWdpbmFsV2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRlc3RUZXh0KS53aWR0aDtcblxuICBjb250ZXh0LmZvbnQgPSB0ZXN0U2l6ZSArIFwiICdcIiArIGZvbnROYW1lICsgXCInLCAnXCIgKyB0ZXN0Rm9udE5hbWUgKyBcIidcIjtcbiAgY29uc3Qgd2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRlc3RUZXh0KS53aWR0aDtcblxuICByZXR1cm4gb3JpZ2luYWxXaWR0aCAhPT0gd2lkdGg7XG59XG5cbmNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5jb25zdCBpc01TSUUgPSAvTVNJRXxUcmlkZW50L2kudGVzdCh1c2VyQWdlbnQpO1xubGV0IGJyb3dzZXJWZXJzaW9uO1xuaWYgKGlzTVNJRSkge1xuICBsZXQgbWF0Y2hlcyA9IC9NU0lFIChcXGQrWy5dXFxkKykvLmV4ZWModXNlckFnZW50KTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBicm93c2VyVmVyc2lvbiA9IHBhcnNlRmxvYXQobWF0Y2hlc1sxXSk7XG4gIH1cbiAgbWF0Y2hlcyA9IC9UcmlkZW50XFwvLipydjooWzAtOV17MSx9Wy4wLTldezAsfSkvLmV4ZWModXNlckFnZW50KTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBicm93c2VyVmVyc2lvbiA9IHBhcnNlRmxvYXQobWF0Y2hlc1sxXSk7XG4gIH1cbn1cblxuY29uc3QgaXNFZGdlID0gL0VkZ2VcXC9cXGQrLy50ZXN0KHVzZXJBZ2VudCk7XG5cbmxldCBoYXNDb2RlTWlycm9yID0gISF3aW5kb3cuQ29kZU1pcnJvcjtcbmlmICghaGFzQ29kZU1pcnJvciAmJiBpc1N1cHBvcnRBbWQpIHtcbiAgLy8gV2VicGFja1xuICBpZiAodHlwZW9mIF9fd2VicGFja19yZXF1aXJlX18gPT09ICdmdW5jdGlvbicpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIHRyeSB7XG4gICAgICAvLyBJZiBDb2RlTWlycm9yIGNhbid0IGJlIHJlc29sdmVkLCBgcmVxdWlyZS5yZXNvbHZlYCB3aWxsIHRocm93IGFuXG4gICAgICAvLyBleGNlcHRpb24gYW5kIGBoYXNDb2RlTWlycm9yYCB3b24ndCBiZSBzZXQgdG8gYHRydWVgLlxuICAgICAgcmVxdWlyZS5yZXNvbHZlKCdjb2RlbWlycm9yJyk7XG4gICAgICBoYXNDb2RlTWlycm9yID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiByZXF1aXJlICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEJyb3dzZXJpZnlcbiAgICBpZiAodHlwZW9mIHJlcXVpcmUucmVzb2x2ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIElmIENvZGVNaXJyb3IgY2FuJ3QgYmUgcmVzb2x2ZWQsIGByZXF1aXJlLnJlc29sdmVgIHdpbGwgdGhyb3cgYW5cbiAgICAgICAgLy8gZXhjZXB0aW9uIGFuZCBgaGFzQ29kZU1pcnJvcmAgd29uJ3QgYmUgc2V0IHRvIGB0cnVlYC5cbiAgICAgICAgcmVxdWlyZS5yZXNvbHZlKCdjb2RlbWlycm9yJyk7XG4gICAgICAgIGhhc0NvZGVNaXJyb3IgPSB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9XG4gICAgLy8gQWxtb25kL1JlcXVpcmVcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXF1aXJlLnNwZWNpZmllZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGhhc0NvZGVNaXJyb3IgPSByZXF1aXJlLnNwZWNpZmllZCgnY29kZW1pcnJvcicpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBpc1N1cHBvcnRUb3VjaCA9XG4gICgoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB8fFxuICAgKG5hdmlnYXRvci5NYXhUb3VjaFBvaW50cyA+IDApIHx8XG4gICAobmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHMgPiAwKSk7XG5cbi8vIFt3b3JrYXJvdW5kXSBJRSBkb2Vzbid0IGhhdmUgaW5wdXQgZXZlbnRzIGZvciBjb250ZW50RWRpdGFibGVcbi8vIC0gc2VlOiBodHRwczovL2dvby5nbC80YmZJdkFcbmNvbnN0IGlucHV0RXZlbnROYW1lID0gKGlzTVNJRSB8fCBpc0VkZ2UpID8gJ0RPTUNoYXJhY3RlckRhdGFNb2RpZmllZCBET01TdWJ0cmVlTW9kaWZpZWQgRE9NTm9kZUluc2VydGVkJyA6ICdpbnB1dCc7XG5cbi8qKlxuICogQGNsYXNzIGNvcmUuZW52XG4gKlxuICogT2JqZWN0IHdoaWNoIGNoZWNrIHBsYXRmb3JtIGFuZCBhZ2VudFxuICpcbiAqIEBzaW5nbGV0b25cbiAqIEBhbHRlcm5hdGVDbGFzc05hbWUgZW52XG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNNYWM6IG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ01hYycpID4gLTEsXG4gIGlzTVNJRSxcbiAgaXNFZGdlLFxuICBpc0ZGOiAhaXNFZGdlICYmIC9maXJlZm94L2kudGVzdCh1c2VyQWdlbnQpLFxuICBpc1BoYW50b206IC9QaGFudG9tSlMvaS50ZXN0KHVzZXJBZ2VudCksXG4gIGlzV2Via2l0OiAhaXNFZGdlICYmIC93ZWJraXQvaS50ZXN0KHVzZXJBZ2VudCksXG4gIGlzQ2hyb21lOiAhaXNFZGdlICYmIC9jaHJvbWUvaS50ZXN0KHVzZXJBZ2VudCksXG4gIGlzU2FmYXJpOiAhaXNFZGdlICYmIC9zYWZhcmkvaS50ZXN0KHVzZXJBZ2VudCksXG4gIGJyb3dzZXJWZXJzaW9uLFxuICBqcXVlcnlWZXJzaW9uOiBwYXJzZUZsb2F0KCQuZm4uanF1ZXJ5KSxcbiAgaXNTdXBwb3J0QW1kLFxuICBpc1N1cHBvcnRUb3VjaCxcbiAgaGFzQ29kZU1pcnJvcixcbiAgaXNGb250SW5zdGFsbGVkLFxuICBpc1czQ1JhbmdlU3VwcG9ydDogISFkb2N1bWVudC5jcmVhdGVSYW5nZSxcbiAgaW5wdXRFdmVudE5hbWUsXG59O1xuIl19