UNPKG

upfront-editable

Version:
40 lines (32 loc) 1.51 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.contenteditableSpanBug = exports.selectionchange = exports.contenteditable = void 0; var _bowser = _interopRequireDefault(require("bowser")); /** * Check for contenteditable support * * (from Modernizr) * this is known to false positive in some mobile browsers * here is a whitelist of verified working browsers: * https://github.com/NielsLeenheer/html5test/blob/549f6eac866aa861d9649a0707ff2c0157895706/scripts/engine.js#L2083 */ var contenteditable = typeof document.documentElement.contentEditable !== 'undefined'; exports.contenteditable = contenteditable; var parser = _bowser["default"].getParser(window.navigator.userAgent); var browserName = parser.getBrowser(); var browserEngine = parser.getEngineName(); var webKit = browserEngine === 'WebKit'; /** * Check selectionchange event (currently supported in IE, Chrome and Safari) * * To handle selectionchange in firefox see CKEditor selection object * https://github.com/ckeditor/ckeditor-dev/blob/master/core/selection.js#L388 */ // not exactly feature detection... is it? var selectionchange = !(browserEngine === 'Gecko' || browserName === 'Opera'); // See Keyboard.prototype.preventContenteditableBug for more information. exports.selectionchange = selectionchange; var contenteditableSpanBug = !!webKit; exports.contenteditableSpanBug = contenteditableSpanBug;