s.forEach(ctx._eventsCache, function (events, index) {
var target = ctx._eventTargets[index];
utils.forEach(events, function (listeners, type) {
utils.forEach(listeners, function (listener) {
target.removeEventListener(type, listener, false);
}, true);
}, false);
}, true);
ctx._eventTargets = [];
ctx._eventsCache = [];
return ctx;
}
function checkPlaceholder(ctx) {
ctx.config.editor.classList[ctx.isEmpty() ? 'add' : 'remove'](ctx.config.placeholderClass);
}
function trim(str) {
return (str || '').trim().replace(/\u200b/g, '');
}
// node.contains is not implemented in IE10/IE11
function containsNode(parent, child) {
if (parent === child) return true;
child = child.parentNode;
while (child) {
if (child === parent) return true;
child = child.parentNode;
}
return false;
}
function getNode(ctx, byRoot) {
var node,
root = ctx.config.editor;
ctx._range = ctx._range || ctx.getRange();
node = ctx._range.commonAncestorContainer;
// Fix selection detection for Firefox
if (node.hasChildNodes() && ctx._range.startOffset + 1 === ctx._range.endOffset) {
node = node.childNodes[ctx._range.startOffset];
}
if (!node || node === root) return null;
while (node && (node.nodeType !== 1) && (node.parentNode !== root)) node = node.parentNode;
while (node && byRoot && (node.parentNode !== root)) node = node.parentNode;
return containsNode(root, node) ? node : null;
}
function getEffectNodes(ctx) {
return getNodeParents(ctx).filter(function(node) {
return node.nodeName.match(effectNodeReg);
});
}
function getNodeParents(ctx) {
var nodes = [],
el = getNode(ctx);
while (el && el !== ctx.config.editor) {
if (el.nodeType === Node.ELEMENT_NODE) {
nodes.push(el);
}
el = el.parentNode;
}
return nodes;
}
function handleEmptyContent(ctx) {
var range = ctx._range = ctx.getRange();
ctx.config.editor.innerHTML = '';
var p = doc.createElement('p');
p.innerHTML = '
';
range.insertNode(p);
focusNode(ctx, p.childNodes[0], range);
}
function addEmptyCharAtEnd(ctx) {
var range = ctx.getRange(),
emptyCharNode = doc.createTextNode('\u200b');
range.selectNodeContents(ctx.config.editor);
range.collapse(false);
range.insertNode(emptyCharNode);
focusNode(ctx, emptyCharNode, range);
}
function isCaretAtEnd(ctx) {
var range = ctx.getRange(),
clonedRange = range.cloneRange();
clonedRange.selectNodeContents(ctx.config.editor);
clonedRange.setStart(range.endContainer, range.endOffset);
return clonedRange.toString() === '';
}
function isCaretAtStart(ctx) {
var range = ctx.getRange(),
clonedRange = range.cloneRange();
clonedRange.selectNodeContents(ctx.config.editor);
clonedRange.setEnd(range.startContainer, range.startOffset);
return clonedRange.toString() === '';
}
function focusNode(ctx, node, range) {
range.setStartAfter(node);
range.setEndBefore(node);
range.collapse(false);
ctx.setRange(range);
}
function autoLink(node) {
if (node.nodeType === 1) {
if (autoLinkReg.notLink.test(node.tagName)) return;
utils.forEach(node.childNodes, function (child) {
autoLink(child);
}, true);
} else if (node.nodeType === 3) {
var result = urlToLink(node.nodeValue || '');
if (!result.links) return;
var frag = doc.createDocumentFragment(),
div = doc.createElement('div');
div.inne
The post Elementum Curabitur Vitaenunc Sedvelit appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Elementum Curabitur Vitaenunc Sedvelit appeared first on .
]]>The post Tellus Molestie Nunc Non Blandit Massa appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Tellus Molestie Nunc Non Blandit Massa appeared first on .
]]>The post Massa Odneque Aliquam Vestibulum Morbi appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Massa Odneque Aliquam Vestibulum Morbi appeared first on .
]]>The post Porta Non Bulvinar Neque Laoreet Suspendisse appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Porta Non Bulvinar Neque Laoreet Suspendisse appeared first on .
]]>The post Adipiscing Elit Pellentesque Habitant Monroe appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Adipiscing Elit Pellentesque Habitant Monroe appeared first on .
]]>The post Lorem Ipsum Dolor Sit Amet Consectetur appeared first on .
]]>Sed cras ornare arcu dui vivamus arcu felis. Cursus euismod quis viverra nibh cras pulvinar mattis nunc. Vulputate sapien nec sagittis aliquam malesuada. Tellus molestie nunc non blandit massa. Suspendisse in est ante in nibh mauris cursus. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan. Duis at tellus at urna. Rutrum quisque non tellus orci ac auctor augue mauris. At tellus at urna condimentum mattis pellentesque id nibh tortor.
Sagittis purus sit amet volutpat. Commodo elit at imperdiet dui. Non odio euismod lacinia at quis risus sed vulputate odio. Adipiscing elit pellentesque habitant morbi. Etiam sit amet nisl purus in mollis. Nam at lectus urna duis. Aliquet eget sit amet tellus cras adipiscing enim eu turpis. Facilisis mauris sit amet massa vitae tortor. At consectetur lorem donec massa.
Ultricies leo integer malesuada nunc. At lectus urna duis convallis convallis tellus. Pulvinar neque laoreet suspendisse interdum consectetur libero id faucibus. Quis risus sed vulputate odio ut enim. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Egestas tellus rutrum tellus pellentesque eu tincidunt. Diam donec adipiscing tristique risus nec feugiat. Fames ac turpis egestas sed tempus urna. Congue quisque egestas diam in arcu cursus. Integer quis auctor elit sed vulputate mi sit. Sed viverra ipsum nunc aliquet bibendum.
Vitae suscipit tellus mauris a diam maecenas sed enim ut. Scelerisque eu ultrices vitae auctor eu augue ut lectus arcu. Nisl nunc mi ipsum faucibus. Habitant morbi tristique senectus et netus. Aliquet porttitor lacus luctus accumsan tortor posuere ac. Elementum curabitur vitae nunc sed velit dignissim sodales. Suspendisse in est ante in nibh.
Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Felis eget nunc lobortis mattis. Massa id neque aliquam vestibulum morbi. Justo laoreet sit amet cursus sit amet. Elit sed vulputate mi sit. Viverra mauris in aliquam sem fringilla ut. Proin libero nunc consequat interdum varius sit amet mattis vulputate. Arcu ac tortor dignissim convallis aenean et tortor. Ut sem nulla pharetra diam sit. Tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Id diam vel quam elementum pulvinar.
The post Lorem Ipsum Dolor Sit Amet Consectetur appeared first on .
]]>