| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- import Text from './text';
 
- import Parchment from 'parchment';
 
- class Inline extends Parchment.Inline {
 
-   static compare(self, other) {
 
-     let selfIndex = Inline.order.indexOf(self);
 
-     let otherIndex = Inline.order.indexOf(other);
 
-     if (selfIndex >= 0 || otherIndex >= 0) {
 
-       return selfIndex - otherIndex;
 
-     } else if (self === other) {
 
-       return 0;
 
-     } else if (self < other) {
 
-       return -1;
 
-     } else {
 
-       return 1;
 
-     }
 
-   }
 
-   formatAt(index, length, name, value) {
 
-     if (Inline.compare(this.statics.blotName, name) < 0 && Parchment.query(name, Parchment.Scope.BLOT)) {
 
-       let blot = this.isolate(index, length);
 
-       if (value) {
 
-         blot.wrap(name, value);
 
-       }
 
-     } else {
 
-       super.formatAt(index, length, name, value);
 
-     }
 
-   }
 
-   optimize(context) {
 
-     super.optimize(context);
 
-     if (this.parent instanceof Inline &&
 
-         Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {
 
-       let parent = this.parent.isolate(this.offset(), this.length());
 
-       this.moveChildren(parent);
 
-       parent.wrap(this);
 
-     }
 
-   }
 
- }
 
- Inline.allowedChildren = [Inline, Parchment.Embed, Text];
 
- // Lower index means deeper in the DOM tree, since not found (-1) is for embeds
 
- Inline.order = [
 
-   'cursor', 'inline',   // Must be lower
 
-   'underline', 'strike', 'italic', 'bold', 'script',
 
-   'link', 'code'        // Must be higher
 
- ];
 
- export default Inline;
 
 
  |