tinymce-rails 4.9.1 → 4.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/source/tinymce/tinymce.js +196 -65
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/inlite/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 62c0d0894eb083b9ea5d18b901aa92845f57f6cb21f893d691058b2fe105bd02
         | 
| 4 | 
            +
              data.tar.gz: 931fe3122860185e6bb505043351a2288f5f0c7c184f31f8c50e5aedb3ca39a2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 846e670a022114035cd5c8b95aaf2eebd8db1235ca9bb6264dc1a1178d0b4bd3ad4a34e0f97eb669985f6006e50095e5b1f6daf134136862334bfc1ebe08c68f
         | 
| 7 | 
            +
              data.tar.gz: 9ca36f46e47ba9689fe1f7607ed43f11287e1c068bd508e07783409c07679ec8430ce565401a4c7a1cb32e7af187850f0b83cd75585cb7cbe46e7711f5f5e048
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            // 4.9. | 
| 1 | 
            +
            // 4.9.2 (2018-12-17)
         | 
| 2 2 | 
             
            (function () {
         | 
| 3 3 | 
             
            (function () {
         | 
| 4 4 | 
             
                'use strict';
         | 
| @@ -6901,6 +6901,14 @@ | |
| 6901 6901 | 
             
                    before(v, element);
         | 
| 6902 6902 | 
             
                  });
         | 
| 6903 6903 | 
             
                };
         | 
| 6904 | 
            +
                var prepend = function (parent$$1, element) {
         | 
| 6905 | 
            +
                  var firstChild$$1 = firstChild(parent$$1);
         | 
| 6906 | 
            +
                  firstChild$$1.fold(function () {
         | 
| 6907 | 
            +
                    append(parent$$1, element);
         | 
| 6908 | 
            +
                  }, function (v) {
         | 
| 6909 | 
            +
                    parent$$1.dom().insertBefore(element.dom(), v.dom());
         | 
| 6910 | 
            +
                  });
         | 
| 6911 | 
            +
                };
         | 
| 6904 6912 | 
             
                var append = function (parent$$1, element) {
         | 
| 6905 6913 | 
             
                  parent$$1.dom().appendChild(element.dom());
         | 
| 6906 6914 | 
             
                };
         | 
| @@ -7065,6 +7073,17 @@ | |
| 7065 7073 | 
             
                  return supports(element) && element.dom().classList.contains(clazz);
         | 
| 7066 7074 | 
             
                };
         | 
| 7067 7075 |  | 
| 7076 | 
            +
                var descendants = function (scope, predicate) {
         | 
| 7077 | 
            +
                  var result = [];
         | 
| 7078 | 
            +
                  each(children(scope), function (x) {
         | 
| 7079 | 
            +
                    if (predicate(x)) {
         | 
| 7080 | 
            +
                      result = result.concat([x]);
         | 
| 7081 | 
            +
                    }
         | 
| 7082 | 
            +
                    result = result.concat(descendants(x, predicate));
         | 
| 7083 | 
            +
                  });
         | 
| 7084 | 
            +
                  return result;
         | 
| 7085 | 
            +
                };
         | 
| 7086 | 
            +
             | 
| 7068 7087 | 
             
                var descendants$1 = function (scope, selector) {
         | 
| 7069 7088 | 
             
                  return all(selector, scope);
         | 
| 7070 7089 | 
             
                };
         | 
| @@ -8799,19 +8818,17 @@ | |
| 8799 8818 | 
             
                  }
         | 
| 8800 8819 | 
             
                  return CaretPosition$1.before(node);
         | 
| 8801 8820 | 
             
                };
         | 
| 8802 | 
            -
                var  | 
| 8803 | 
            -
                  var  | 
| 8804 | 
            -
                  if ( | 
| 8805 | 
            -
                     | 
| 8806 | 
            -
             | 
| 8807 | 
            -
             | 
| 8808 | 
            -
             | 
| 8809 | 
            -
             | 
| 8810 | 
            -
                   | 
| 8811 | 
            -
             | 
| 8812 | 
            -
                    return false;
         | 
| 8821 | 
            +
                var moveForwardFromBr = function (root, nextNode) {
         | 
| 8822 | 
            +
                  var nextSibling = nextNode.nextSibling;
         | 
| 8823 | 
            +
                  if (nextSibling && isCaretCandidate$3(nextSibling)) {
         | 
| 8824 | 
            +
                    if (isText$7(nextSibling)) {
         | 
| 8825 | 
            +
                      return CaretPosition$1(nextSibling, 0);
         | 
| 8826 | 
            +
                    } else {
         | 
| 8827 | 
            +
                      return CaretPosition$1.before(nextSibling);
         | 
| 8828 | 
            +
                    }
         | 
| 8829 | 
            +
                  } else {
         | 
| 8830 | 
            +
                    return findCaretPosition(HDirection.Forwards, CaretPosition$1.after(nextNode), root);
         | 
| 8813 8831 | 
             
                  }
         | 
| 8814 | 
            -
                  return !isInSameBlock(CaretPosition$1.before(node), CaretPosition$1.before(next), root);
         | 
| 8815 8832 | 
             
                };
         | 
| 8816 8833 | 
             
                var findCaretPosition = function (direction, startPos, root) {
         | 
| 8817 8834 | 
             
                  var node, nextNode, innerNode;
         | 
| @@ -8859,11 +8876,8 @@ | |
| 8859 8876 | 
             
                    if (isForwards(direction) && offset < container.childNodes.length) {
         | 
| 8860 8877 | 
             
                      nextNode = nodeAtIndex(container, offset);
         | 
| 8861 8878 | 
             
                      if (isCaretCandidate$3(nextNode)) {
         | 
| 8862 | 
            -
                        if (isBr$4(nextNode) | 
| 8863 | 
            -
                          return  | 
| 8864 | 
            -
                        }
         | 
| 8865 | 
            -
                        if (isBrBeforeBlock(nextNode, root)) {
         | 
| 8866 | 
            -
                          return findCaretPosition(direction, CaretPosition$1.after(nextNode), root);
         | 
| 8879 | 
            +
                        if (isBr$4(nextNode)) {
         | 
| 8880 | 
            +
                          return moveForwardFromBr(root, nextNode);
         | 
| 8867 8881 | 
             
                        }
         | 
| 8868 8882 | 
             
                        if (!isAtomic$1(nextNode)) {
         | 
| 8869 8883 | 
             
                          innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
         | 
| @@ -12924,6 +12938,9 @@ | |
| 12924 12938 | 
             
                  }
         | 
| 12925 12939 | 
             
                ]);
         | 
| 12926 12940 | 
             
                var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');
         | 
| 12941 | 
            +
                var domRange = type$1.domRange;
         | 
| 12942 | 
            +
                var relative = type$1.relative;
         | 
| 12943 | 
            +
                var exact = type$1.exact;
         | 
| 12927 12944 |  | 
| 12928 12945 | 
             
                var browser$3 = PlatformDetection$1.detect().browser;
         | 
| 12929 12946 | 
             
                var clamp = function (offset, element) {
         | 
| @@ -17594,6 +17611,9 @@ | |
| 17594 17611 | 
             
                var isTableCell$4 = function (node) {
         | 
| 17595 17612 | 
             
                  return /^(TH|TD)$/.test(node.nodeName);
         | 
| 17596 17613 | 
             
                };
         | 
| 17614 | 
            +
                var isChildOfInlineParent = function (dom, node, parent$$1) {
         | 
| 17615 | 
            +
                  return dom.isChildOf(node, parent$$1) && node !== parent$$1 && !dom.isBlock(parent$$1);
         | 
| 17616 | 
            +
                };
         | 
| 17597 17617 | 
             
                var getContainer = function (ed, rng, start) {
         | 
| 17598 17618 | 
             
                  var container, offset, lastIdx;
         | 
| 17599 17619 | 
             
                  container = rng[start ? 'startContainer' : 'endContainer'];
         | 
| @@ -17619,19 +17639,19 @@ | |
| 17619 17639 | 
             
                  wrapper.appendChild(node);
         | 
| 17620 17640 | 
             
                  return wrapper;
         | 
| 17621 17641 | 
             
                };
         | 
| 17622 | 
            -
                var wrapWithSiblings = function (dom,  | 
| 17623 | 
            -
                  var  | 
| 17624 | 
            -
                  var wrapper = dom.create(name, attrs);
         | 
| 17625 | 
            -
                   | 
| 17626 | 
            -
                   | 
| 17627 | 
            -
                   | 
| 17628 | 
            -
             | 
| 17629 | 
            -
                     | 
| 17642 | 
            +
                var wrapWithSiblings = function (dom, node, next, name, attrs) {
         | 
| 17643 | 
            +
                  var start = Element$$1.fromDom(node);
         | 
| 17644 | 
            +
                  var wrapper = Element$$1.fromDom(dom.create(name, attrs));
         | 
| 17645 | 
            +
                  var siblings$$1 = next ? nextSiblings(start) : prevSiblings(start);
         | 
| 17646 | 
            +
                  append$1(wrapper, siblings$$1);
         | 
| 17647 | 
            +
                  if (next) {
         | 
| 17648 | 
            +
                    before(start, wrapper);
         | 
| 17649 | 
            +
                    prepend(wrapper, start);
         | 
| 17650 | 
            +
                  } else {
         | 
| 17651 | 
            +
                    after(start, wrapper);
         | 
| 17652 | 
            +
                    append(wrapper, start);
         | 
| 17630 17653 | 
             
                  }
         | 
| 17631 | 
            -
                   | 
| 17632 | 
            -
                    return wrapper.appendChild(node);
         | 
| 17633 | 
            -
                  });
         | 
| 17634 | 
            -
                  return wrapper;
         | 
| 17654 | 
            +
                  return wrapper.dom();
         | 
| 17635 17655 | 
             
                };
         | 
| 17636 17656 | 
             
                var matchName$1 = function (dom, node, format) {
         | 
| 17637 17657 | 
             
                  if (isEq$5(node, format.inline)) {
         | 
| @@ -17764,24 +17784,24 @@ | |
| 17764 17784 | 
             
                };
         | 
| 17765 17785 | 
             
                var findFormatRoot = function (editor, container, name, vars, similar) {
         | 
| 17766 17786 | 
             
                  var formatRoot;
         | 
| 17767 | 
            -
                  each$d(FormatUtils.getParents(editor.dom, container.parentNode).reverse(), function (parent) {
         | 
| 17787 | 
            +
                  each$d(FormatUtils.getParents(editor.dom, container.parentNode).reverse(), function (parent$$1) {
         | 
| 17768 17788 | 
             
                    var format;
         | 
| 17769 | 
            -
                    if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') {
         | 
| 17770 | 
            -
                      format = MatchFormat.matchNode(editor, parent, name, vars, similar);
         | 
| 17789 | 
            +
                    if (!formatRoot && parent$$1.id !== '_start' && parent$$1.id !== '_end') {
         | 
| 17790 | 
            +
                      format = MatchFormat.matchNode(editor, parent$$1, name, vars, similar);
         | 
| 17771 17791 | 
             
                      if (format && format.split !== false) {
         | 
| 17772 | 
            -
                        formatRoot = parent;
         | 
| 17792 | 
            +
                        formatRoot = parent$$1;
         | 
| 17773 17793 | 
             
                      }
         | 
| 17774 17794 | 
             
                    }
         | 
| 17775 17795 | 
             
                  });
         | 
| 17776 17796 | 
             
                  return formatRoot;
         | 
| 17777 17797 | 
             
                };
         | 
| 17778 17798 | 
             
                var wrapAndSplit = function (editor, formatList, formatRoot, container, target, split, format, vars) {
         | 
| 17779 | 
            -
                  var parent, clone, lastClone, firstClone, i, formatRootParent;
         | 
| 17799 | 
            +
                  var parent$$1, clone, lastClone, firstClone, i, formatRootParent;
         | 
| 17780 17800 | 
             
                  var dom = editor.dom;
         | 
| 17781 17801 | 
             
                  if (formatRoot) {
         | 
| 17782 17802 | 
             
                    formatRootParent = formatRoot.parentNode;
         | 
| 17783 | 
            -
                    for (parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {
         | 
| 17784 | 
            -
                      clone = dom.clone(parent, false);
         | 
| 17803 | 
            +
                    for (parent$$1 = container.parentNode; parent$$1 && parent$$1 !== formatRootParent; parent$$1 = parent$$1.parentNode) {
         | 
| 17804 | 
            +
                      clone = dom.clone(parent$$1, false);
         | 
| 17785 17805 | 
             
                      for (i = 0; i < formatList.length; i++) {
         | 
| 17786 17806 | 
             
                        if (removeFormat(editor, formatList[i], vars, clone, clone)) {
         | 
| 17787 17807 | 
             
                          clone = 0;
         | 
| @@ -17821,13 +17841,13 @@ | |
| 17821 17841 | 
             
                    return Bookmarks.isBookmarkNode(node) && NodeType.isElement(node) && (node.id === '_start' || node.id === '_end');
         | 
| 17822 17842 | 
             
                  };
         | 
| 17823 17843 | 
             
                  var process = function (node) {
         | 
| 17824 | 
            -
                    var children, i, l, lastContentEditable, hasContentEditableState;
         | 
| 17844 | 
            +
                    var children$$1, i, l, lastContentEditable, hasContentEditableState;
         | 
| 17825 17845 | 
             
                    if (NodeType.isElement(node) && dom.getContentEditable(node)) {
         | 
| 17826 17846 | 
             
                      lastContentEditable = contentEditable;
         | 
| 17827 17847 | 
             
                      contentEditable = dom.getContentEditable(node) === 'true';
         | 
| 17828 17848 | 
             
                      hasContentEditableState = true;
         | 
| 17829 17849 | 
             
                    }
         | 
| 17830 | 
            -
                    children = Tools.grep(node.childNodes);
         | 
| 17850 | 
            +
                    children$$1 = Tools.grep(node.childNodes);
         | 
| 17831 17851 | 
             
                    if (contentEditable && !hasContentEditableState) {
         | 
| 17832 17852 | 
             
                      for (i = 0, l = formatList.length; i < l; i++) {
         | 
| 17833 17853 | 
             
                        if (removeFormat(ed, formatList[i], vars, node, node)) {
         | 
| @@ -17836,9 +17856,9 @@ | |
| 17836 17856 | 
             
                      }
         | 
| 17837 17857 | 
             
                    }
         | 
| 17838 17858 | 
             
                    if (format.deep) {
         | 
| 17839 | 
            -
                      if (children.length) {
         | 
| 17840 | 
            -
                        for (i = 0, l = children.length; i < l; i++) {
         | 
| 17841 | 
            -
                          process(children[i]);
         | 
| 17859 | 
            +
                      if (children$$1.length) {
         | 
| 17860 | 
            +
                        for (i = 0, l = children$$1.length; i < l; i++) {
         | 
| 17861 | 
            +
                          process(children$$1[i]);
         | 
| 17842 17862 | 
             
                        }
         | 
| 17843 17863 | 
             
                        if (hasContentEditableState) {
         | 
| 17844 17864 | 
             
                          contentEditable = lastContentEditable;
         | 
| @@ -17877,13 +17897,22 @@ | |
| 17877 17897 | 
             
                        if (commonAncestorContainer && /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && isTableCell$4(endContainer) && endContainer.firstChild) {
         | 
| 17878 17898 | 
             
                          endContainer = endContainer.firstChild || endContainer;
         | 
| 17879 17899 | 
             
                        }
         | 
| 17880 | 
            -
                        if (dom | 
| 17881 | 
            -
                          var  | 
| 17900 | 
            +
                        if (isChildOfInlineParent(dom, startContainer, endContainer)) {
         | 
| 17901 | 
            +
                          var marker = Option.from(startContainer.firstChild).getOr(startContainer);
         | 
| 17902 | 
            +
                          splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {
         | 
| 17882 17903 | 
             
                            'id': '_start',
         | 
| 17883 17904 | 
             
                            'data-mce-type': 'bookmark'
         | 
| 17884 | 
            -
                          });
         | 
| 17885 | 
            -
                           | 
| 17886 | 
            -
                           | 
| 17905 | 
            +
                          }));
         | 
| 17906 | 
            +
                          unwrap(true);
         | 
| 17907 | 
            +
                          return;
         | 
| 17908 | 
            +
                        }
         | 
| 17909 | 
            +
                        if (isChildOfInlineParent(dom, endContainer, startContainer)) {
         | 
| 17910 | 
            +
                          var marker = Option.from(endContainer.lastChild).getOr(endContainer);
         | 
| 17911 | 
            +
                          splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {
         | 
| 17912 | 
            +
                            'id': '_end',
         | 
| 17913 | 
            +
                            'data-mce-type': 'bookmark'
         | 
| 17914 | 
            +
                          }));
         | 
| 17915 | 
            +
                          unwrap(false);
         | 
| 17887 17916 | 
             
                          return;
         | 
| 17888 17917 | 
             
                        }
         | 
| 17889 17918 | 
             
                        startContainer = wrap$2(dom, startContainer, 'span', {
         | 
| @@ -19801,6 +19830,7 @@ | |
| 19801 19830 | 
             
                  };
         | 
| 19802 19831 | 
             
                  var filterNode = function (node) {
         | 
| 19803 19832 | 
             
                    var i, name, list;
         | 
| 19833 | 
            +
                    name = node.name;
         | 
| 19804 19834 | 
             
                    if (name in nodeFilters) {
         | 
| 19805 19835 | 
             
                      list = matchedNodes[name];
         | 
| 19806 19836 | 
             
                      if (list) {
         | 
| @@ -21806,6 +21836,12 @@ | |
| 21806 21836 | 
             
                };
         | 
| 21807 21837 | 
             
                var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);
         | 
| 21808 21838 | 
             
                var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);
         | 
| 21839 | 
            +
                var isAtFirstLine = function (scope, pos) {
         | 
| 21840 | 
            +
                  return getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();
         | 
| 21841 | 
            +
                };
         | 
| 21842 | 
            +
                var isAtLastLine = function (scope, pos) {
         | 
| 21843 | 
            +
                  return getPositionsUntilNextLine(scope, pos).breakAt.isNone();
         | 
| 21844 | 
            +
                };
         | 
| 21809 21845 | 
             
                var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);
         | 
| 21810 21846 | 
             
                var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);
         | 
| 21811 21847 | 
             
                var getFirstLinePositions = function (scope) {
         | 
| @@ -22027,6 +22063,74 @@ | |
| 22027 22063 | 
             
                  };
         | 
| 22028 22064 | 
             
                };
         | 
| 22029 22065 |  | 
| 22066 | 
            +
                var isTarget = function (node) {
         | 
| 22067 | 
            +
                  return contains(['figcaption'], name(node));
         | 
| 22068 | 
            +
                };
         | 
| 22069 | 
            +
                var rangeBefore = function (target) {
         | 
| 22070 | 
            +
                  var rng = document.createRange();
         | 
| 22071 | 
            +
                  rng.setStartBefore(target.dom());
         | 
| 22072 | 
            +
                  rng.setEndBefore(target.dom());
         | 
| 22073 | 
            +
                  return rng;
         | 
| 22074 | 
            +
                };
         | 
| 22075 | 
            +
                var insertElement = function (root, elm, forward) {
         | 
| 22076 | 
            +
                  if (forward) {
         | 
| 22077 | 
            +
                    append(root, elm);
         | 
| 22078 | 
            +
                  } else {
         | 
| 22079 | 
            +
                    prepend(root, elm);
         | 
| 22080 | 
            +
                  }
         | 
| 22081 | 
            +
                };
         | 
| 22082 | 
            +
                var insertBr = function (root, forward) {
         | 
| 22083 | 
            +
                  var br = Element$$1.fromTag('br');
         | 
| 22084 | 
            +
                  insertElement(root, br, forward);
         | 
| 22085 | 
            +
                  return rangeBefore(br);
         | 
| 22086 | 
            +
                };
         | 
| 22087 | 
            +
                var insertBlock$1 = function (root, forward, blockName, attrs) {
         | 
| 22088 | 
            +
                  var block = Element$$1.fromTag(blockName);
         | 
| 22089 | 
            +
                  var br = Element$$1.fromTag('br');
         | 
| 22090 | 
            +
                  setAll(block, attrs);
         | 
| 22091 | 
            +
                  append(block, br);
         | 
| 22092 | 
            +
                  insertElement(root, block, forward);
         | 
| 22093 | 
            +
                  return rangeBefore(br);
         | 
| 22094 | 
            +
                };
         | 
| 22095 | 
            +
                var insertEmptyLine = function (root, rootBlockName, attrs, forward) {
         | 
| 22096 | 
            +
                  if (rootBlockName === '') {
         | 
| 22097 | 
            +
                    return insertBr(root, forward);
         | 
| 22098 | 
            +
                  } else {
         | 
| 22099 | 
            +
                    return insertBlock$1(root, forward, rootBlockName, attrs);
         | 
| 22100 | 
            +
                  }
         | 
| 22101 | 
            +
                };
         | 
| 22102 | 
            +
                var getClosestTargetBlock = function (pos, root) {
         | 
| 22103 | 
            +
                  var isRoot = curry(eq, root);
         | 
| 22104 | 
            +
                  return closest(Element$$1.fromDom(pos.container()), isBlock, isRoot).filter(isTarget);
         | 
| 22105 | 
            +
                };
         | 
| 22106 | 
            +
                var isAtFirstOrLastLine = function (root, forward, pos) {
         | 
| 22107 | 
            +
                  return forward ? isAtLastLine(root.dom(), pos) : isAtFirstLine(root.dom(), pos);
         | 
| 22108 | 
            +
                };
         | 
| 22109 | 
            +
                var moveCaretToNewEmptyLine = function (editor, forward) {
         | 
| 22110 | 
            +
                  var root = Element$$1.fromDom(editor.getBody());
         | 
| 22111 | 
            +
                  var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());
         | 
| 22112 | 
            +
                  var rootBlock = Settings.getForcedRootBlock(editor);
         | 
| 22113 | 
            +
                  var rootBlockAttrs = Settings.getForcedRootBlockAttrs(editor);
         | 
| 22114 | 
            +
                  return getClosestTargetBlock(pos, root).exists(function () {
         | 
| 22115 | 
            +
                    if (isAtFirstOrLastLine(root, forward, pos)) {
         | 
| 22116 | 
            +
                      var rng = insertEmptyLine(root, rootBlock, rootBlockAttrs, forward);
         | 
| 22117 | 
            +
                      editor.selection.setRng(rng);
         | 
| 22118 | 
            +
                      return true;
         | 
| 22119 | 
            +
                    } else {
         | 
| 22120 | 
            +
                      return false;
         | 
| 22121 | 
            +
                    }
         | 
| 22122 | 
            +
                  });
         | 
| 22123 | 
            +
                };
         | 
| 22124 | 
            +
                var moveV$2 = function (editor, forward) {
         | 
| 22125 | 
            +
                  return function () {
         | 
| 22126 | 
            +
                    if (editor.selection.isCollapsed()) {
         | 
| 22127 | 
            +
                      return moveCaretToNewEmptyLine(editor, forward);
         | 
| 22128 | 
            +
                    } else {
         | 
| 22129 | 
            +
                      return false;
         | 
| 22130 | 
            +
                    }
         | 
| 22131 | 
            +
                  };
         | 
| 22132 | 
            +
                };
         | 
| 22133 | 
            +
             | 
| 22030 22134 | 
             
                var defaultPatterns = function (patterns) {
         | 
| 22031 22135 | 
             
                  return map(patterns, function (pattern) {
         | 
| 22032 22136 | 
             
                    return merge({
         | 
| @@ -22122,6 +22226,14 @@ | |
| 22122 22226 | 
             
                      ctrlKey: !os.isOSX(),
         | 
| 22123 22227 | 
             
                      altKey: os.isOSX(),
         | 
| 22124 22228 | 
             
                      action: BoundarySelection.movePrevWord(editor, caret)
         | 
| 22229 | 
            +
                    },
         | 
| 22230 | 
            +
                    {
         | 
| 22231 | 
            +
                      keyCode: VK.UP,
         | 
| 22232 | 
            +
                      action: moveV$2(editor, false)
         | 
| 22233 | 
            +
                    },
         | 
| 22234 | 
            +
                    {
         | 
| 22235 | 
            +
                      keyCode: VK.DOWN,
         | 
| 22236 | 
            +
                      action: moveV$2(editor, true)
         | 
| 22125 22237 | 
             
                    }
         | 
| 22126 22238 | 
             
                  ], evt).each(function (_) {
         | 
| 22127 22239 | 
             
                    evt.preventDefault();
         | 
| @@ -22424,8 +22536,14 @@ | |
| 22424 22536 | 
             
                };
         | 
| 22425 22537 | 
             
                var InsertLi = { insert: insert$1 };
         | 
| 22426 22538 |  | 
| 22427 | 
            -
                var  | 
| 22428 | 
            -
                   | 
| 22539 | 
            +
                var trimZwsp = function (fragment) {
         | 
| 22540 | 
            +
                  each(descendants(Element$$1.fromDom(fragment), isText), function (text) {
         | 
| 22541 | 
            +
                    var rawNode = text.dom();
         | 
| 22542 | 
            +
                    rawNode.nodeValue = Zwsp.trim(rawNode.nodeValue);
         | 
| 22543 | 
            +
                  });
         | 
| 22544 | 
            +
                };
         | 
| 22545 | 
            +
                var isEmptyAnchor = function (dom, elm) {
         | 
| 22546 | 
            +
                  return elm && elm.nodeName === 'A' && dom.isEmpty(elm);
         | 
| 22429 22547 | 
             
                };
         | 
| 22430 22548 | 
             
                var isTableCell$5 = function (node) {
         | 
| 22431 22549 | 
             
                  return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);
         | 
| @@ -22460,7 +22578,7 @@ | |
| 22460 22578 | 
             
                    if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') {
         | 
| 22461 22579 | 
             
                      dom.remove(node);
         | 
| 22462 22580 | 
             
                    } else {
         | 
| 22463 | 
            -
                      if (isEmptyAnchor(node)) {
         | 
| 22581 | 
            +
                      if (isEmptyAnchor(dom, node)) {
         | 
| 22464 22582 | 
             
                        dom.remove(node);
         | 
| 22465 22583 | 
             
                      }
         | 
| 22466 22584 | 
             
                    }
         | 
| @@ -22565,11 +22683,11 @@ | |
| 22565 22683 | 
             
                  var dom = editor.dom;
         | 
| 22566 22684 | 
             
                  var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();
         | 
| 22567 22685 | 
             
                  var rng = editor.selection.getRng();
         | 
| 22568 | 
            -
                  var createNewBlock = function (name) {
         | 
| 22686 | 
            +
                  var createNewBlock = function (name$$1) {
         | 
| 22569 22687 | 
             
                    var node = container, block, clonedNode, caretNode;
         | 
| 22570 22688 | 
             
                    var textInlineElements = schema.getTextInlineElements();
         | 
| 22571 | 
            -
                    if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {
         | 
| 22572 | 
            -
                      block = dom.create(name || newBlockName);
         | 
| 22689 | 
            +
                    if (name$$1 || parentBlockName === 'TABLE' || parentBlockName === 'HR') {
         | 
| 22690 | 
            +
                      block = dom.create(name$$1 || newBlockName);
         | 
| 22573 22691 | 
             
                      setForcedBlockAttrs(editor, block);
         | 
| 22574 22692 | 
             
                    } else {
         | 
| 22575 22693 | 
             
                      block = parentBlock.cloneNode(false);
         | 
| @@ -22600,7 +22718,7 @@ | |
| 22600 22718 | 
             
                    return block;
         | 
| 22601 22719 | 
             
                  };
         | 
| 22602 22720 | 
             
                  var isCaretAtStartOrEndOfBlock = function (start) {
         | 
| 22603 | 
            -
                    var walker, node, name, normalizedOffset;
         | 
| 22721 | 
            +
                    var walker, node, name$$1, normalizedOffset;
         | 
| 22604 22722 | 
             
                    normalizedOffset = normalizeZwspOffset(start, container, offset);
         | 
| 22605 22723 | 
             
                    if (NodeType.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {
         | 
| 22606 22724 | 
             
                      return false;
         | 
| @@ -22625,8 +22743,8 @@ | |
| 22625 22743 | 
             
                    while (node = walker.current()) {
         | 
| 22626 22744 | 
             
                      if (NodeType.isElement(node)) {
         | 
| 22627 22745 | 
             
                        if (!node.getAttribute('data-mce-bogus')) {
         | 
| 22628 | 
            -
                          name = node.nodeName.toLowerCase();
         | 
| 22629 | 
            -
                          if (nonEmptyElementsMap[name] && name !== 'br') {
         | 
| 22746 | 
            +
                          name$$1 = node.nodeName.toLowerCase();
         | 
| 22747 | 
            +
                          if (nonEmptyElementsMap[name$$1] && name$$1 !== 'br') {
         | 
| 22630 22748 | 
             
                            return false;
         | 
| 22631 22749 | 
             
                          }
         | 
| 22632 22750 | 
             
                        }
         | 
| @@ -22712,6 +22830,7 @@ | |
| 22712 22830 | 
             
                    tmpRng = includeZwspInRange(rng).cloneRange();
         | 
| 22713 22831 | 
             
                    tmpRng.setEndAfter(parentBlock);
         | 
| 22714 22832 | 
             
                    fragment = tmpRng.extractContents();
         | 
| 22833 | 
            +
                    trimZwsp(fragment);
         | 
| 22715 22834 | 
             
                    trimLeadingLineBreaks(fragment);
         | 
| 22716 22835 | 
             
                    newBlock = fragment.firstChild;
         | 
| 22717 22836 | 
             
                    dom.insertAfter(fragment, parentBlock);
         | 
| @@ -22911,7 +23030,7 @@ | |
| 22911 23030 | 
             
                var isAtBlockBoundary = function (forward, root, pos) {
         | 
| 22912 23031 | 
             
                  var parentBlocks = filter(Parents.parentsAndSelf(Element$$1.fromDom(pos.container()), root), isBlock);
         | 
| 22913 23032 | 
             
                  return head(parentBlocks).fold(function () {
         | 
| 22914 | 
            -
                    return CaretFinder.navigate(forward, root.dom(), pos). | 
| 23033 | 
            +
                    return CaretFinder.navigate(forward, root.dom(), pos).forall(function (newPos) {
         | 
| 22915 23034 | 
             
                      return isInSameBlock(newPos, pos, root.dom()) === false;
         | 
| 22916 23035 | 
             
                    });
         | 
| 22917 23036 | 
             
                  }, function (parent) {
         | 
| @@ -23041,9 +23160,6 @@ | |
| 23041 23160 | 
             
                  }
         | 
| 23042 23161 | 
             
                };
         | 
| 23043 23162 |  | 
| 23044 | 
            -
                var insertSpaceOrNbspAtPosition = function (root, pos) {
         | 
| 23045 | 
            -
                  return needsToHaveNbsp(root, pos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);
         | 
| 23046 | 
            -
                };
         | 
| 23047 23163 | 
             
                var locationToCaretPosition = function (root) {
         | 
| 23048 23164 | 
             
                  return function (location) {
         | 
| 23049 23165 | 
             
                    return location.fold(function (element) {
         | 
| @@ -23075,9 +23191,7 @@ | |
| 23075 23191 | 
             
                  if (editor.selection.isCollapsed()) {
         | 
| 23076 23192 | 
             
                    var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);
         | 
| 23077 23193 | 
             
                    var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng());
         | 
| 23078 | 
            -
                    return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)). | 
| 23079 | 
            -
                      return insertSpaceOrNbspAtPosition(root, pos).map(setSelection$1(editor)).getOr(false);
         | 
| 23080 | 
            -
                    }, setSelection$1(editor));
         | 
| 23194 | 
            +
                    return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor));
         | 
| 23081 23195 | 
             
                  } else {
         | 
| 23082 23196 | 
             
                    return false;
         | 
| 23083 23197 | 
             
                  }
         | 
| @@ -23136,7 +23250,24 @@ | |
| 23136 23250 | 
             
                };
         | 
| 23137 23251 | 
             
                var CaretContainerInput = { setup: setup$b };
         | 
| 23138 23252 |  | 
| 23253 | 
            +
                var browser$4 = PlatformDetection$1.detect().browser;
         | 
| 23254 | 
            +
                var setupIeInput = function (editor) {
         | 
| 23255 | 
            +
                  var keypressThrotter = first$1(function () {
         | 
| 23256 | 
            +
                    if (!editor.composing) {
         | 
| 23257 | 
            +
                      normalizeNbspsInEditor(editor);
         | 
| 23258 | 
            +
                    }
         | 
| 23259 | 
            +
                  }, 0);
         | 
| 23260 | 
            +
                  if (browser$4.isIE()) {
         | 
| 23261 | 
            +
                    editor.on('keypress', function (e) {
         | 
| 23262 | 
            +
                      keypressThrotter.throttle();
         | 
| 23263 | 
            +
                    });
         | 
| 23264 | 
            +
                    editor.on('remove', function (e) {
         | 
| 23265 | 
            +
                      keypressThrotter.cancel();
         | 
| 23266 | 
            +
                    });
         | 
| 23267 | 
            +
                  }
         | 
| 23268 | 
            +
                };
         | 
| 23139 23269 | 
             
                var setup$c = function (editor) {
         | 
| 23270 | 
            +
                  setupIeInput(editor);
         | 
| 23140 23271 | 
             
                  editor.on('input', function (e) {
         | 
| 23141 23272 | 
             
                    if (e.isComposing === false) {
         | 
| 23142 23273 | 
             
                      normalizeNbspsInEditor(editor);
         | 
| @@ -25389,8 +25520,8 @@ | |
| 25389 25520 | 
             
                  defaultSettings: {},
         | 
| 25390 25521 | 
             
                  $: DomQuery,
         | 
| 25391 25522 | 
             
                  majorVersion: '4',
         | 
| 25392 | 
            -
                  minorVersion: '9. | 
| 25393 | 
            -
                  releaseDate: '2018-12- | 
| 25523 | 
            +
                  minorVersion: '9.2',
         | 
| 25524 | 
            +
                  releaseDate: '2018-12-17',
         | 
| 25394 25525 | 
             
                  editors: legacyEditors,
         | 
| 25395 25526 | 
             
                  i18n: I18n,
         | 
| 25396 25527 | 
             
                  activeEditor: null,
         |