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 News Archives -

Category News

Elementum Curabitur Vitaenunc Sedvelit

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…

Tellus Molestie Nunc Non Blandit Massa

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…

Massa Odneque Aliquam Vestibulum Morbi

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…

Porta Non Bulvinar Neque Laoreet Suspendisse

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…

Adipiscing Elit Pellentesque Habitant Monroe

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…

Lorem Ipsum Dolor Sit Amet Consectetur

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Scelerisque purus semper eget duis. Quis blandit turpis cursus in hac habitasse platea. Pellentesque eu tincidunt tortor aliquam nulla facilisi. Sed…