diff --git a/src/vaadin-rich-text-editor.html b/src/vaadin-rich-text-editor.html index 3b13e7d..cf212e3 100644 --- a/src/vaadin-rich-text-editor.html +++ b/src/vaadin-rich-text-editor.html @@ -555,6 +555,18 @@ this._editor.on('selection-change', this.__announceFormatting.bind(this)); } + connectedCallback() { + super.connectedCallback(); + + this._editor.emitter.connect(); + } + + disconnectedCallback() { + super.connectedCallback(); + + this._editor.emitter.disconnect(); + } + /** @private */ _prepareToolbar() { const clean = Quill.imports['modules/toolbar'].DEFAULTS.handlers.clean; diff --git a/vendor/vaadin-quill.min.js b/vendor/vaadin-quill.min.js index 00b78da..dbe10ad 100644 --- a/vendor/vaadin-quill.min.js +++ b/vendor/vaadin-quill.min.js @@ -1,8 +1,8 @@ /*! * Quill Editor v1.3.6 - * https://quilljs.com/ + * http://quilljs.com * Copyright (c) 2014, Jason Chen * Copyright (c) 2013, salesforce.com */ -!function(t,e){t.Quill=e()}(window,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=132)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),o=n(18),i=n(19),a=n(54),u=n(55),l=n(56),s=n(57),c=n(58),f=n(10),p=n(29),d=n(30),h=n(28),y=n(1),v={Scope:y.Scope,create:y.create,find:y.find,query:y.query,register:y.register,Container:r.default,Format:o.default,Leaf:i.default,Embed:s.default,Scroll:a.default,Block:l.default,Inline:u.default,Text:c.default,Attributor:{Attribute:f.default,Class:p.default,Style:d.default,Store:h.default}};e.default=v},function(t,e,n){"use strict";function r(t,e){var n=i(t);if(null==n)throw new l("Unable to create "+t+" blot");var r=n;return new r(t instanceof Node||t.nodeType===Node.TEXT_NODE?t:r.create(e),e)}function o(t,n){return void 0===n&&(n=!1),null==t?null:null!=t[e.DATA_KEY]?t[e.DATA_KEY].blot:n?o(t.parentNode,n):null}function i(t,e){void 0===e&&(e=d.ANY);var n;if("string"==typeof t)n=p[t]||s[t];else if(t instanceof Text||t.nodeType===Node.TEXT_NODE)n=p.text;else if("number"==typeof t)t&d.LEVEL&d.BLOCK?n=p.block:t&d.LEVEL&d.INLINE&&(n=p.inline);else if(t instanceof HTMLElement){var r=(t.getAttribute("class")||"").split(/\s+/);for(var o in r)if(n=c[r[o]])break;n=n||f[t.tagName]}return null==n?null:e&d.LEVEL&n.scope&&e&d.TYPE&n.scope?n:null}function a(){for(var t=[],e=0;e1)return t.map(function(t){return a(t)});var n=t[0];if("string"!=typeof n.blotName&&"string"!=typeof n.attrName)throw new l("Invalid definition");if("abstract"===n.blotName)throw new l("Cannot register abstract class");if(p[n.blotName||n.attrName]=n,"string"==typeof n.keyName)s[n.keyName]=n;else if(null!=n.className&&(c[n.className]=n),null!=n.tagName){Array.isArray(n.tagName)?n.tagName=n.tagName.map(function(t){return t.toUpperCase()}):n.tagName=n.tagName.toUpperCase();var r=Array.isArray(n.tagName)?n.tagName:[n.tagName];r.forEach(function(t){null!=f[t]&&null!=n.className||(f[t]=n)})}return n}var u=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var l=function(t){function e(e){var n=this;return e="[Parchment] "+e,n=t.call(this,e)||this,n.message=e,n.name=n.constructor.name,n}return u(e,t),e}(Error);e.ParchmentError=l;var s={},c={},f={},p={};e.DATA_KEY="__blot";var d;!function(t){t[t.TYPE=3]="TYPE",t[t.LEVEL=12]="LEVEL",t[t.ATTRIBUTE=13]="ATTRIBUTE",t[t.BLOT=14]="BLOT",t[t.INLINE=7]="INLINE",t[t.BLOCK=11]="BLOCK",t[t.BLOCK_BLOT=10]="BLOCK_BLOT",t[t.INLINE_BLOT=6]="INLINE_BLOT",t[t.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",t[t.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",t[t.ANY=15]="ANY"}(d=e.Scope||(e.Scope={})),e.create=r,e.find=o,e.query=i,e.register=a},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return null==t?e:("function"==typeof t.formats&&(e=(0,f.default)(e,t.formats())),null==t.parent||"scroll"==t.parent.blotName||t.parent.statics.scope!==t.statics.scope?e:u(t.parent,e))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BlockEmbed=e.bubbleFormats=void 0;var l=function(){function t(t,e){for(var n=0;n0&&(t1&&void 0!==arguments[1]&&arguments[1];if(n&&(0===t||t>=this.length()-1)){var r=this.clone();return 0===t?(this.parent.insertBefore(r,this),this):(this.parent.insertBefore(r,this.next),r)}var o=s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"split",this).call(this,t,n);return this.cache={},o}}]),e}(y.default.Block);E.blotName="block",E.tagName="P",E.defaultChild="break",E.allowedChildren=[m.default,y.default.Embed,O.default],e.bubbleFormats=u,e.BlockEmbed=w,e.default=E},function(t,e){"use strict";var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===r.call(t)},u=function(t){if(!t||"[object Object]"!==r.call(t))return!1;var e=n.call(t,"constructor"),o=t.constructor&&t.constructor.prototype&&n.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!e&&!o)return!1;var i;for(i in t);return void 0===i||n.call(t,i)},l=function(t,e){o&&"__proto__"===e.name?o(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},s=function(t,e){if("__proto__"===e){if(!n.call(t,e))return;if(i)return i(t,e).value}return t[e]};t.exports=function t(){var e,n,r,o,i,c,f=arguments[0],p=1,d=arguments.length,h=!1;for("boolean"==typeof f&&(h=f,f=arguments[1]||{},p=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});p0){var n=this.parent.isolate(this.offset(),this.length());this.moveChildren(n),n.wrap(this)}}}],[{key:"compare",value:function(t,n){var r=e.order.indexOf(t),o=e.order.indexOf(n);return r>=0||o>=0?r-o:t===n?0:t0&&(n.attributes=e),this.push(n))},l.prototype.delete=function(t){return t<=0?this:this.push({delete:t})},l.prototype.retain=function(t,e){if(t<=0)return this;var n={retain:t};return null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n)},l.prototype.push=function(t){var e=this.ops.length,n=this.ops[e-1];if(t=i(!0,{},t),"object"==typeof n){if("number"==typeof t.delete&&"number"==typeof n.delete)return this.ops[e-1]={delete:n.delete+t.delete},this;if("number"==typeof n.delete&&null!=t.insert&&(e-=1,"object"!=typeof(n=this.ops[e-1])))return this.ops.unshift(t),this;if(o(t.attributes,n.attributes)){if("string"==typeof t.insert&&"string"==typeof n.insert)return this.ops[e-1]={insert:n.insert+t.insert},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this;if("number"==typeof t.retain&&"number"==typeof n.retain)return this.ops[e-1]={retain:n.retain+t.retain},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this}}return e===this.ops.length?this.ops.push(t):this.ops.splice(e,0,t),this},l.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},l.prototype.filter=function(t){return this.ops.filter(t)},l.prototype.forEach=function(t){this.ops.forEach(t)},l.prototype.map=function(t){return this.ops.map(t)},l.prototype.partition=function(t){var e=[],n=[];return this.forEach(function(r){(t(r)?e:n).push(r)}),[e,n]},l.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},l.prototype.changeLength=function(){return this.reduce(function(t,e){return e.insert?t+a.length(e):e.delete?t-e.delete:t},0)},l.prototype.length=function(){return this.reduce(function(t,e){return t+a.length(e)},0)},l.prototype.slice=function(t,e){t=t||0,"number"!=typeof e&&(e=1/0);for(var n=[],r=a.iterator(this.ops),o=0;o0&&n.next(i.retain-u)}for(var s=new l(r);e.hasNext()||n.hasNext();)if("insert"===n.peekType())s.push(n.next());else if("delete"===e.peekType())s.push(e.next());else{var c=Math.min(e.peekLength(),n.peekLength()),f=e.next(c),p=n.next(c);if("number"==typeof p.retain){var d={};"number"==typeof f.retain?d.retain=c:d.insert=f.insert;var h=a.attributes.compose(f.attributes,p.attributes,"number"==typeof f.retain);if(h&&(d.attributes=h),s.push(d),!n.hasNext()&&o(s.ops[s.ops.length-1],d)){var y=new l(e.rest());return s.concat(y).chop()}}else"number"==typeof p.delete&&"number"==typeof f.retain&&s.push(p)}return s.chop()},l.prototype.concat=function(t){var e=new l(this.ops.slice());return t.ops.length>0&&(e.push(t.ops[0]),e.ops=e.ops.concat(t.ops.slice(1))),e},l.prototype.diff=function(t,e){if(this.ops===t.ops)return new l;var n=[this,t].map(function(e){return e.map(function(n){if(null!=n.insert)return"string"==typeof n.insert?n.insert:u;var r=e===t?"on":"with";throw new Error("diff() called "+r+" non-document")}).join("")}),i=new l,s=r(n[0],n[1],e),c=a.iterator(this.ops),f=a.iterator(t.ops);return s.forEach(function(t){for(var e=t[1].length;e>0;){var n=0;switch(t[0]){case r.INSERT:n=Math.min(f.peekLength(),e),i.push(f.next(n));break;case r.DELETE:n=Math.min(e,c.peekLength()),c.next(n),i.delete(n);break;case r.EQUAL:n=Math.min(c.peekLength(),f.peekLength(),e);var u=c.next(n),l=f.next(n);o(u.insert,l.insert)?i.retain(n,a.attributes.diff(u.attributes,l.attributes)):i.push(l).delete(n)}e-=n}}),i.chop()},l.prototype.eachLine=function(t,e){e=e||"\n";for(var n=a.iterator(this.ops),r=new l,o=0;n.hasNext();){if("insert"!==n.peekType())return;var i=n.peek(),u=a.length(i)-n.peekLength(),s="string"==typeof i.insert?i.insert.indexOf(e,u)-u:-1;if(s<0)r.push(n.next());else if(s>0)r.push(n.next(s));else{if(!1===t(r,n.next(1).attributes||{},o))return;o+=1,r=new l}}r.length()>0&&t(r,{},o)},l.prototype.transform=function(t,e){if(e=!!e,"number"==typeof t)return this.transformPosition(t,e);for(var n=a.iterator(this.ops),r=a.iterator(t.ops),o=new l;n.hasNext()||r.hasNext();)if("insert"!==n.peekType()||!e&&"insert"===r.peekType())if("insert"===r.peekType())o.push(r.next());else{var i=Math.min(n.peekLength(),r.peekLength()),u=n.next(i),s=r.next(i);if(u.delete)continue;s.delete?o.push(s):o.retain(i,a.attributes.transform(u.attributes,s.attributes,e))}else o.retain(a.length(n.next()));return o.chop()},l.prototype.transformPosition=function(t,e){e=!!e;for(var n=a.iterator(this.ops),r=0;n.hasNext()&&r<=t;){var o=n.peekLength(),i=n.peekType();n.next(),"delete"!==i?("insert"===i&&(r0){var u,l=[g.default.events.TEXT_CHANGE,a,i,e];if((u=this.emitter).emit.apply(u,[g.default.events.EDITOR_CHANGE].concat(l)),e!==g.default.sources.SILENT){var c;(c=this.emitter).emit.apply(c,l)}}return a}function l(t,e,n,r,o){var i={};return"number"==typeof t.index&&"number"==typeof t.length?"number"!=typeof e?(o=r,r=n,n=e,e=t.length,t=t.index):(e=t.length,t=t.index):"number"!=typeof e&&(o=r,r=n,n=e,e=0),"object"===(void 0===n?"undefined":c(n))?(i=n,o=r):"string"==typeof n&&(null!=r?i[n]=r:o=n),o=o||g.default.sources.API,[t,e,i,o]}function s(t,e,n,r){if(null==t)return null;var o=void 0,i=void 0;if(e instanceof h.default){var a=[t.index,t.index+t.length].map(function(t){return e.transformPosition(t,r!==g.default.sources.USER)}),u=f(a,2);o=u[0],i=u[1]}else{var l=[t.index,t.index+t.length].map(function(t){return t=0?t+n:Math.max(e,t+n)}),s=f(l,2);o=s[0],i=s[1]}return new E.Range(o,i-o)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.overload=e.expandConfig=void 0;var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),p=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,t),this.options=a(e,r),this.container=this.options.container,null==this.container)return T.error("Invalid Quill container",e);this.options.debug&&t.debug(this.options.debug);var o=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",this.container.__quill=this,this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.root.setAttribute("data-gramm",!1),this.scrollingContainer=this.options.scrollingContainer||this.root,this.emitter=new g.default,this.scroll=w.default.create(this.root,{emitter:this.emitter,whitelist:this.options.formats}),this.editor=new v.default(this.scroll),this.selection=new N.default(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.theme.init(),this.emitter.on(g.default.events.EDITOR_CHANGE,function(t){t===g.default.events.TEXT_CHANGE&&n.root.classList.toggle("ql-blank",n.editor.isBlank())}),this.emitter.on(g.default.events.SCROLL_UPDATE,function(t,e){var r=n.selection.lastRange,o=r&&0===r.length?r.index:void 0;u.call(n,function(){return n.editor.update(null,e,o)},t)});var l=this.clipboard.convert("
"+o+"


");this.setContents(l),this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable()}return p(t,null,[{key:"debug",value:function(t){!0===t&&(t="log"),x.default.level(t)}},{key:"find",value:function(t){return t.__quill||w.default.find(t)}},{key:"import",value:function(t){return null==this.imports[t]&&T.error("Cannot import "+t+". Are you sure it was registered?"),this.imports[t]}},{key:"register",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!=typeof t){var o=t.attrName||t.blotName;"string"==typeof o?this.register("formats/"+o,t,e):Object.keys(t).forEach(function(r){n.register(r,t[r],e)})}else null==this.imports[t]||r||T.warn("Overwriting "+t+" with",e),this.imports[t]=e,(t.startsWith("blots/")||t.startsWith("formats/"))&&"abstract"!==e.blotName?w.default.register(e):t.startsWith("modules")&&"function"==typeof e.register&&e.register()}}]),p(t,[{key:"addContainer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof t){var n=t;t=document.createElement("div"),t.classList.add(n)}return this.container.insertBefore(t,e),t}},{key:"blur",value:function(){this.selection.setRange(null)}},{key:"deleteText",value:function(t,e,n){var r=this,o=l(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],u.call(this,function(){return r.editor.deleteText(t,e)},n,t,-1*e)}},{key:"disable",value:function(){this.enable(!1)}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.scroll.enable(t),this.container.classList.toggle("ql-disabled",!t)}},{key:"focus",value:function(){var t=this.scrollingContainer.scrollTop;this.selection.focus(),this.scrollingContainer.scrollTop=t,this.scrollIntoView()}},{key:"format",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.default.sources.API;return u.call(this,function(){var r=n.getSelection(!0),i=new h.default;if(null==r)return i;if(w.default.query(t,w.default.Scope.BLOCK))i=n.editor.formatLine(r.index,r.length,o({},t,e));else{if(0===r.length)return n.selection.format(t,e),i;i=n.editor.formatText(r.index,r.length,o({},t,e))}return n.setSelection(r,g.default.sources.SILENT),i},r)}},{key:"formatLine",value:function(t,e,n,r,o){var i=this,a=void 0,s=l(t,e,n,r,o),c=f(s,4);return t=c[0],e=c[1],a=c[2],o=c[3],u.call(this,function(){return i.editor.formatLine(t,e,a)},o,t,0)}},{key:"formatText",value:function(t,e,n,r,o){var i=this,a=void 0,s=l(t,e,n,r,o),c=f(s,4);return t=c[0],e=c[1],a=c[2],o=c[3],u.call(this,function(){return i.editor.formatText(t,e,a)},o,t,0)}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=void 0;n="number"==typeof t?this.selection.getBounds(t,e):this.selection.getBounds(t.index,t.length);var r=this.container.getBoundingClientRect();return{bottom:n.bottom-r.top,height:n.height,left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,width:n.width}}},{key:"getContents",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=l(t,e),r=f(n,2);return t=r[0],e=r[1],this.editor.getContents(t,e)}},{key:"getFormat",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getSelection(!0),e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"number"==typeof t?this.editor.getFormat(t,e):this.editor.getFormat(t.index,t.length)}},{key:"getIndex",value:function(t){return t.offset(this.scroll)}},{key:"getLength",value:function(){return this.scroll.length()}},{key:"getLeaf",value:function(t){return this.scroll.leaf(t)}},{key:"getLine",value:function(t){return this.scroll.line(t)}},{key:"getLines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return"number"!=typeof t?this.scroll.lines(t.index,t.length):this.scroll.lines(t,e)}},{key:"getModule",value:function(t){return this.theme.modules[t]}},{key:"getSelection",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.focus(),this.update(),this.selection.getRange()[0]}},{key:"getText",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=l(t,e),r=f(n,2);return t=r[0],e=r[1],this.editor.getText(t,e)}},{key:"hasFocus",value:function(){return this.selection.hasFocus()}},{key:"insertEmbed",value:function(e,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.sources.API;return u.call(this,function(){return o.editor.insertEmbed(e,n,r)},i,e)}},{key:"insertText",value:function(t,e,n,r,o){var i=this,a=void 0,s=l(t,0,n,r,o),c=f(s,4);return t=c[0],a=c[2],o=c[3],u.call(this,function(){return i.editor.insertText(t,e,a)},o,t,e.length)}},{key:"isEnabled",value:function(){return!this.container.classList.contains("ql-disabled")}},{key:"off",value:function(){return this.emitter.off.apply(this.emitter,arguments)}},{key:"on",value:function(){return this.emitter.on.apply(this.emitter,arguments)}},{key:"once",value:function(){return this.emitter.once.apply(this.emitter,arguments)}},{key:"pasteHTML",value:function(t,e,n){this.clipboard.dangerouslyPasteHTML(t,e,n)}},{key:"removeFormat",value:function(t,e,n){var r=this,o=l(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],u.call(this,function(){return r.editor.removeFormat(t,e)},n,t)}},{key:"scrollIntoView",value:function(){this.selection.scrollIntoView(this.scrollingContainer)}},{key:"setContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API;return u.call(this,function(){t=new h.default(t);var n=e.getLength(),r=e.editor.deleteText(0,n),o=e.editor.applyDelta(t),i=o.ops[o.ops.length-1];return null!=i&&"string"==typeof i.insert&&"\n"===i.insert[i.insert.length-1]&&(e.editor.deleteText(e.getLength()-1,1),o.delete(1)),r.compose(o)},n)}},{key:"setSelection",value:function(e,n,r){if(null==e)this.selection.setRange(null,n||t.sources.API);else{var o=l(e,n,r),i=f(o,4);e=i[0],n=i[1],r=i[3],this.selection.setRange(new E.Range(e,n),r),r!==g.default.sources.SILENT&&this.selection.scrollIntoView(this.scrollingContainer)}}},{key:"setText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API,n=(new h.default).insert(t);return this.setContents(n,e)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g.default.sources.USER,e=this.scroll.update(t);return this.selection.update(t),e}},{key:"updateContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API;return u.call(this,function(){return t=new h.default(t),e.editor.applyDelta(t,n)},n,!0)}}]),t}();C.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,scrollingContainer:null,strict:!0,theme:"default"},C.events=g.default.events,C.sources=g.default.sources,C.version="1.3.6",C.imports={delta:h.default,parchment:w.default,"core/module":_.default,"core/theme":P.default},e.expandConfig=a,e.overload=l,e.default=C},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=n(0),u=function(t){return t&&t.__esModule?t:{default:t}}(a),l=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),e}(u.default.Text);e.default=l},function(t,e,n){"use strict";function r(t){if(i.indexOf(t)<=i.indexOf(a)){for(var e,n=arguments.length,r=Array(n>1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};r(this,t),this.quill=e,this.options=n};o.DEFAULTS={},e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=function(){function t(t,e,n){void 0===n&&(n={}),this.attrName=t,this.keyName=e;var o=r.Scope.TYPE&r.Scope.ATTRIBUTE;null!=n.scope?this.scope=n.scope&r.Scope.LEVEL|o:this.scope=r.Scope.ATTRIBUTE,null!=n.whitelist&&(this.whitelist=n.whitelist)}return t.keys=function(t){return[].map.call(t.attributes,function(t){return t.name})},t.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.setAttribute(this.keyName,e),!0)},t.prototype.canAdd=function(t,e){return null!=r.query(t,r.Scope.BLOT&(this.scope|r.Scope.TYPE))&&(null==this.whitelist||("string"==typeof e?this.whitelist.indexOf(e.replace(/["']/g,""))>-1:this.whitelist.indexOf(e)>-1))},t.prototype.remove=function(t){t.removeAttribute(this.keyName)},t.prototype.value=function(t){var e=t.getAttribute(this.keyName);return this.canAdd(t,e)&&e?e:""},t}();e.default=o},function(t,e,n){function r(t,e,n){var r=n||{};return!(r.strict?!s(t,e):t!==e)||(!t||!e||"object"!=typeof t&&"object"!=typeof e?r.strict?s(t,e):t==e:a(t,e,r))}function o(t){return null===t||void 0===t}function i(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}function a(t,e,n){var a,s;if(typeof t!=typeof e)return!1;if(o(t)||o(e))return!1;if(t.prototype!==e.prototype)return!1;if(l(t)!==l(e))return!1;var h=c(t),y=c(e);if(h!==y)return!1;if(h||y)return t.source===e.source&&f(t)===f(e);if(p(t)&&p(e))return d.call(t)===d.call(e);var v=i(t),b=i(e);if(v!==b)return!1;if(v||b){if(t.length!==e.length)return!1;for(a=0;a=0;a--)if(g[a]!=m[a])return!1;for(a=g.length-1;a>=0;a--)if(s=g[a],!r(t[s],e[s],n))return!1;return!0}var u=n(31),l=n(62),s=n(66),c=n(68),f=n(69),p=n(71),d=Date.prototype.getTime;t.exports=r},function(t,e,n){"use strict";var r=n(31),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,u=Object.defineProperty,l=function(t){return"function"==typeof t&&"[object Function]"===i.call(t)},s=u&&function(){var t={};try{u(t,"x",{enumerable:!1,value:t});for(var e in t)return!1;return t.x===t}catch(t){return!1}}(),c=function(t,e,n,r){(!(e in t)||l(r)&&r())&&(s?u(t,e,{configurable:!0,enumerable:!1,value:n,writable:!0}):t[e]=n)},f=function(t,e){var n=arguments.length>2?arguments[2]:{},i=r(e);o&&(i=a.call(i,Object.getOwnPropertySymbols(e)));for(var u=0;u=t+n)){var a=this.newlineIndex(t,!0)+1,u=i-a+1,l=this.isolate(a,u),s=l.next;l.format(r,o),s instanceof e&&s.formatAt(0,t-a+n-u,r,o)}}}},{key:"insertAt",value:function(t,e,n){if(null==n){var r=this.descendant(m.default,t),o=u(r,2),i=o[0],a=o[1];i.insertAt(a,e)}}},{key:"length",value:function(){var t=this.domNode.textContent.length;return this.domNode.textContent.endsWith("\n")?t:t+1}},{key:"newlineIndex",value:function(t){if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])return this.domNode.textContent.slice(0,t).lastIndexOf("\n");var e=this.domNode.textContent.slice(t).indexOf("\n");return e>-1?t+e:-1}},{key:"optimize",value:function(t){this.domNode.textContent.endsWith("\n")||this.appendChild(d.default.create("text","\n")),s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===n.statics.formats(n.domNode)&&(n.optimize(t),n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t),[].slice.call(this.domNode.querySelectorAll("*")).forEach(function(t){var e=d.default.find(t);null==e?t.parentNode.removeChild(t):e instanceof d.default.Embed?e.remove():e.unwrap()})}}],[{key:"create",value:function(t){var n=s(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("spellcheck",!1),n}},{key:"formats",value:function(){return!0}}]),e}(y.default);O.blotName="code-block",O.tagName="PRE",O.TAB=" ",e.Code=_,e.default=O},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n1?e-1:0),r=1;r-1}Object.defineProperty(e,"__esModule",{value:!0}),e.sanitize=e.default=void 0;var u=function(){function t(t,e){for(var n=0;n0&&(n+=1),[this.parent.domNode,n]},e.prototype.value=function(){var t;return t={},t[this.statics.blotName]=this.statics.value(this.domNode)||!0,t},e.scope=i.Scope.INLINE_BLOT,e}(o.default);e.default=a},function(t,e,n){"use strict";var r=n(33);t.exports=function(){return r()&&!!Symbol.toStringTag}},function(t,e,n){"use strict";var r=n(64);t.exports=Function.prototype.bind||r},function(t,e,n){"use strict";var r=n(21),o=n(35),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),u=o("%Reflect.apply%",!0)||r.call(a,i),l=o("%Object.getOwnPropertyDescriptor%",!0),s=o("%Object.defineProperty%",!0),c=o("%Math.max%");if(s)try{s({},"a",{value:1})}catch(t){s=null}t.exports=function(t){var e=u(r,a,arguments);if(l&&s){l(e,"length").configurable&&s(e,"length",{value:1+c(0,t.length-(arguments.length-1))})}return e};var f=function(){return u(r,i,arguments)};s?s(t.exports,"apply",{value:f}):t.exports.apply=f},function(t,e,n){function r(t){this.ops=t,this.index=0,this.offset=0}var o=n(11),i=n(3),a={attributes:{compose:function(t,e,n){"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var r=i(!0,{},e);n||(r=Object.keys(r).reduce(function(t,e){return null!=r[e]&&(t[e]=r[e]),t},{}));for(var o in t)void 0!==t[o]&&void 0===e[o]&&(r[o]=t[o]);return Object.keys(r).length>0?r:void 0},diff:function(t,e){"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var n=Object.keys(t).concat(Object.keys(e)).reduce(function(n,r){return o(t[r],e[r])||(n[r]=void 0===e[r]?null:e[r]),n},{});return Object.keys(n).length>0?n:void 0},transform:function(t,e,n){if("object"!=typeof t)return e;if("object"==typeof e){if(!n)return e;var r=Object.keys(e).reduce(function(n,r){return void 0===t[r]&&(n[r]=e[r]),n},{});return Object.keys(r).length>0?r:void 0}}},iterator:function(t){return new r(t)},length:function(t){return"number"==typeof t.delete?t.delete:"number"==typeof t.retain?t.retain:"string"==typeof t.insert?t.insert.length:1}};r.prototype.hasNext=function(){return this.peekLength()<1/0},r.prototype.next=function(t){t||(t=1/0);var e=this.ops[this.index];if(e){var n=this.offset,r=a.length(e);if(t>=r-n?(t=r-n,this.index+=1,this.offset=0):this.offset+=t,"number"==typeof e.delete)return{delete:t};var o={};return e.attributes&&(o.attributes=e.attributes),"number"==typeof e.retain?o.retain=t:"string"==typeof e.insert?o.insert=e.insert.substr(n,t):o.insert=e.insert,o}return{retain:1/0}},r.prototype.peek=function(){return this.ops[this.index]},r.prototype.peekLength=function(){return this.ops[this.index]?a.length(this.ops[this.index])-this.offset:1/0},r.prototype.peekType=function(){return this.ops[this.index]?"number"==typeof this.ops[this.index].delete?"delete":"number"==typeof this.ops[this.index].retain?"retain":"insert":"retain"},r.prototype.rest=function(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(this.index);var t=this.offset,e=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=t,this.index=e,[n].concat(r)}return[]},t.exports=a},function(t,e){var n=function(){"use strict";function t(t,e){return null!=e&&t instanceof e}function e(n,r,o,i,c){function f(n,o){if(null===n)return null;if(0===o)return n;var y,v;if("object"!=typeof n)return n;if(t(n,u))y=new u;else if(t(n,l))y=new l;else if(t(n,s))y=new s(function(t,e){n.then(function(e){t(f(e,o-1))},function(t){e(f(t,o-1))})});else if(e.__isArray(n))y=[];else if(e.__isRegExp(n))y=new RegExp(n.source,a(n)),n.lastIndex&&(y.lastIndex=n.lastIndex);else if(e.__isDate(n))y=new Date(n.getTime());else{if(h&&Buffer.isBuffer(n))return y=Buffer.allocUnsafe?Buffer.allocUnsafe(n.length):new Buffer(n.length),n.copy(y),y;t(n,Error)?y=Object.create(n):void 0===i?(v=Object.getPrototypeOf(n),y=Object.create(v)):(y=Object.create(i),v=i)}if(r){var b=p.indexOf(n);if(-1!=b)return d[b];p.push(n),d.push(y)}t(n,u)&&n.forEach(function(t,e){var n=f(e,o-1),r=f(t,o-1);y.set(n,r)}),t(n,l)&&n.forEach(function(t){var e=f(t,o-1);y.add(e)});for(var g in n){var m;v&&(m=Object.getOwnPropertyDescriptor(v,g)),m&&null==m.set||(y[g]=f(n[g],o-1))}if(Object.getOwnPropertySymbols)for(var _=Object.getOwnPropertySymbols(n),g=0;g<_.length;g++){var O=_[g],w=Object.getOwnPropertyDescriptor(n,O);(!w||w.enumerable||c)&&(y[O]=f(n[O],o-1),w.enumerable||Object.defineProperty(y,O,{enumerable:!1}))}if(c)for(var E=Object.getOwnPropertyNames(n),g=0;g-1?document.createElement(t):document.createElement(this.tagName[0])):e=document.createElement(this.tagName),this.className&&e.classList.add(this.className),e},t.prototype.attach=function(){null!=this.parent&&(this.scroll=this.parent.scroll)},t.prototype.clone=function(){var t=this.domNode.cloneNode(!1);return r.create(t)},t.prototype.detach=function(){null!=this.parent&&this.parent.removeChild(this),delete this.domNode[r.DATA_KEY]},t.prototype.deleteAt=function(t,e){this.isolate(t,e).remove()},t.prototype.formatAt=function(t,e,n,o){var i=this.isolate(t,e);if(null!=r.query(n,r.Scope.BLOT)&&o)i.wrap(n,o);else if(null!=r.query(n,r.Scope.ATTRIBUTE)){var a=r.create(this.statics.scope);i.wrap(a),a.format(n,o)}},t.prototype.insertAt=function(t,e,n){var o=null==n?r.create("text",e):r.create(e,n),i=this.split(t);this.parent.insertBefore(o,i)},t.prototype.insertInto=function(t,e){void 0===e&&(e=null),null!=this.parent&&this.parent.children.remove(this);var n=null;t.children.insertBefore(this,e),null!=e&&(n=e.domNode),this.domNode.parentNode==t.domNode&&this.domNode.nextSibling==n||t.domNode.insertBefore(this.domNode,n),this.parent=t,this.attach()},t.prototype.isolate=function(t,e){var n=this.split(t);return n.split(e),n},t.prototype.length=function(){return 1},t.prototype.offset=function(t){return void 0===t&&(t=this.parent),null==this.parent||this==t?0:this.parent.children.offset(this)+this.parent.offset(t)},t.prototype.optimize=function(t){null!=this.domNode[r.DATA_KEY]&&delete this.domNode[r.DATA_KEY].mutations},t.prototype.remove=function(){null!=this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.detach()},t.prototype.replace=function(t){null!=t.parent&&(t.parent.insertBefore(this,t.next),t.remove())},t.prototype.replaceWith=function(t,e){var n="string"==typeof t?r.create(t,e):t;return n.replace(this),n},t.prototype.split=function(t,e){return 0===t?this:this.next},t.prototype.update=function(t,e){},t.prototype.wrap=function(t,e){var n="string"==typeof t?r.create(t,e):t;return null!=this.parent&&this.parent.insertBefore(n,this.next),n.appendChild(this),n},t.blotName="abstract",t}();e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(10),o=n(29),i=n(30),a=n(1),u=function(){function t(t){this.attributes={},this.domNode=t,this.build()}return t.prototype.attribute=function(t,e){e?t.add(this.domNode,e)&&(null!=t.value(this.domNode)?this.attributes[t.attrName]=t:delete this.attributes[t.attrName]):(t.remove(this.domNode),delete this.attributes[t.attrName])},t.prototype.build=function(){var t=this;this.attributes={};var e=r.default.keys(this.domNode),n=o.default.keys(this.domNode),u=i.default.keys(this.domNode);e.concat(n).concat(u).forEach(function(e){var n=a.query(e,a.Scope.ATTRIBUTE);n instanceof r.default&&(t.attributes[n.attrName]=n)})},t.prototype.copy=function(t){var e=this;Object.keys(this.attributes).forEach(function(n){var r=e.attributes[n].value(e.domNode);t.format(n,r)})},t.prototype.move=function(t){var e=this;this.copy(t),Object.keys(this.attributes).forEach(function(t){e.attributes[t].remove(e.domNode)}),this.attributes={}},t.prototype.values=function(){var t=this;return Object.keys(this.attributes).reduce(function(e,n){return e[n]=t.attributes[n].value(t.domNode),e},{})},t}();e.default=u},function(t,e,n){"use strict";function r(t,e){return(t.getAttribute("class")||"").split(/\s+/).filter(function(t){return 0===t.indexOf(e+"-")})}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(10),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("class")||"").split(/\s+/).map(function(t){return t.split("-").slice(0,-1).join("-")})},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(this.remove(t),t.classList.add(this.keyName+"-"+e),!0)},e.prototype.remove=function(t){r(t,this.keyName).forEach(function(e){t.classList.remove(e)}),0===t.classList.length&&t.removeAttribute("class")},e.prototype.value=function(t){var e=r(t,this.keyName)[0]||"",n=e.slice(this.keyName.length+1);return this.canAdd(t,n)?n:""},e}(i.default);e.default=a},function(t,e,n){"use strict";function r(t){var e=t.split("-"),n=e.slice(1).map(function(t){return t[0].toUpperCase()+t.slice(1)}).join("");return e[0]+n}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(10),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("style")||"").split(";").map(function(t){return t.split(":")[0].trim()})},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.style[r(this.keyName)]=e,!0)},e.prototype.remove=function(t){t.style[r(this.keyName)]="",t.getAttribute("style")||t.removeAttribute("style")},e.prototype.value=function(t){var e=t.style[r(this.keyName)];return this.canAdd(t,e)?e:""},e}(i.default);e.default=a},function(t,e,n){"use strict";var r=Array.prototype.slice,o=n(32),i=Object.keys,a=i?function(t){return i(t)}:n(61),u=Object.keys;a.shim=function(){if(Object.keys){(function(){var t=Object.keys(arguments);return t&&t.length===arguments.length})(1,2)||(Object.keys=function(t){return u(o(t)?r.call(t):t)})}else Object.keys=a;return Object.keys||a},t.exports=a},function(t,e,n){"use strict";var r=Object.prototype.toString;t.exports=function(t){var e=r.call(t),n="[object Arguments]"===e;return n||(n="[object Array]"!==e&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===r.call(t.callee)),n}},function(t,e,n){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),n=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;t[e]=42;for(e in t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var r=Object.getOwnPropertySymbols(t);if(1!==r.length||r[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(t,e);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},function(t,e,n){"use strict";var r=n(35),o=n(22),i=o(r("String.prototype.indexOf"));t.exports=function(t,e){var n=r(t,!!e);return"function"==typeof n&&i(t,".prototype.")>-1?o(n):n}},function(t,e,n){"use strict";var r=SyntaxError,o=Function,i=TypeError,a=function(t){try{return o('"use strict"; return ('+t+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(t){u=null}var l=function(){throw new i},s=u?function(){try{return arguments.callee,l}catch(t){try{return u(arguments,"callee").get}catch(t){return l}}}():l,c=n(63)(),f=Object.getPrototypeOf||function(t){return t.__proto__},p={},d="undefined"==typeof Uint8Array?void 0:f(Uint8Array),h={"%AggregateError%":"undefined"==typeof AggregateError?void 0:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer,"%ArrayIteratorPrototype%":c?f([][Symbol.iterator]()):void 0,"%AsyncFromSyncIteratorPrototype%":void 0,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"==typeof Atomics?void 0:Atomics,"%BigInt%":"undefined"==typeof BigInt?void 0:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?void 0:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?void 0:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?void 0:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?void 0:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":p,"%Int8Array%":"undefined"==typeof Int8Array?void 0:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?void 0:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?void 0:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":c?f(f([][Symbol.iterator]())):void 0,"%JSON%":"object"==typeof JSON?JSON:void 0,"%Map%":"undefined"==typeof Map?void 0:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&c?f((new Map)[Symbol.iterator]()):void 0,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?void 0:Promise,"%Proxy%":"undefined"==typeof Proxy?void 0:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?void 0:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?void 0:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&c?f((new Set)[Symbol.iterator]()):void 0,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":c?f(""[Symbol.iterator]()):void 0,"%Symbol%":c?Symbol:void 0,"%SyntaxError%":r,"%ThrowTypeError%":s,"%TypedArray%":d,"%TypeError%":i,"%Uint8Array%":"undefined"==typeof Uint8Array?void 0:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?void 0:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?void 0:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?void 0:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?void 0:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?void 0:WeakSet},y=function t(e){var n;if("%AsyncFunction%"===e)n=a("async function () {}");else if("%GeneratorFunction%"===e)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===e)n=a("async function* () {}");else if("%AsyncGenerator%"===e){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&(n=f(o.prototype))}return h[e]=n,n},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},b=n(21),g=n(65),m=b.call(Function.call,Array.prototype.concat),_=b.call(Function.apply,Array.prototype.splice),O=b.call(Function.call,String.prototype.replace),w=b.call(Function.call,String.prototype.slice),E=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,N=/\\(\\)?/g,j=function(t){var e=w(t,0,1),n=w(t,-1);if("%"===e&&"%"!==n)throw new r("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==e)throw new r("invalid intrinsic syntax, expected opening `%`");var o=[];return O(t,E,function(t,e,n,r){o[o.length]=n?O(r,N,"$1"):e||t}),o},A=function(t,e){var n,o=t;if(g(v,o)&&(n=v[o],o="%"+n[0]+"%"),g(h,o)){var a=h[o];if(a===p&&(a=y(o)),void 0===a&&!e)throw new i("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:n,name:o,value:a}}throw new r("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new i("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new i('"allowMissing" argument must be a boolean');var n=j(t),o=n.length>0?n[0]:"",a=A("%"+o+"%",e),l=a.name,s=a.value,c=!1,f=a.alias;f&&(o=f[0],_(n,m([0,1],f)));for(var p=1,d=!0;p=n.length){var O=u(s,y);d=!!O,s=d&&"get"in O&&!("originalValue"in O.get)?O.get:s[y]}else d=g(s,y),s=s[y];d&&!c&&(h[l]=s)}}return s}},function(t,e,n){"use strict";var r=function(t){return t!==t};t.exports=function(t,e){return 0===t&&0===e?1/t==1/e:t===e||!(!r(t)||!r(e))}},function(t,e,n){"use strict";var r=n(36);t.exports=function(){return"function"==typeof Object.is?Object.is:r}},function(t,e,n){"use strict";var r=Object,o=TypeError;t.exports=function(){if(null!=this&&this!==r(this))throw new o("RegExp.prototype.flags getter called on non-object");var t="";return this.global&&(t+="g"),this.ignoreCase&&(t+="i"),this.multiline&&(t+="m"),this.dotAll&&(t+="s"),this.unicode&&(t+="u"),this.sticky&&(t+="y"),t}},function(t,e,n){"use strict";var r=n(38),o=n(12).supportsDescriptors,i=Object.getOwnPropertyDescriptor,a=TypeError;t.exports=function(){if(!o)throw new a("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");if("gim"===/a/gim.flags){var t=i(RegExp.prototype,"flags");if(t&&"function"==typeof t.get&&"boolean"==typeof/a/.dotAll)return t.get}return r}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var a=o.get;if(void 0!==a)return a.call(r)},s=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;i(this,t),this.index=e,this.length=n},w=function(){function t(e,n){var r=this;i(this,t),this.emitter=n,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.rootDocument=this.root.getRootNode?this.root.getRootNode():document,this.cursor=c.default.create("cursor",this),this.lastRange=this.savedRange=new O(0,0),this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,function(){r.mouseDown||r.composing||setTimeout(r.update.bind(r,v.default.sources.USER),1)}),this.emitter.on(v.default.events.SCROLL_BEFORE_UPDATE,function(t,e){if(r.hasFocus()){var n=r.getNativeRange();if(null!=n){var o=0===n.start.offset&&n.start.offset===n.end.offset&&r.rootDocument.getSelection()instanceof m.ShadowSelection&&e.some(function(t){return"characterData"===t.type&&""===t.oldValue})?1:0;n.start.node!==r.cursor.textNode&&r.emitter.once(v.default.events.SCROLL_UPDATE,function(){try{r.root.contains(n.start.node)&&r.root.contains(n.end.node)&&r.setNativeRange(n.start.node,n.start.offset+o,n.end.node,n.end.offset+o),r.update(v.default.sources.SILENT)}catch(t){}})}}}),this.emitter.on(v.default.events.SCROLL_OPTIMIZE,function(t,e){if(e.range){var n=e.range,o=n.startNode,i=n.startOffset,a=n.endNode,u=n.endOffset;r.setNativeRange(o,i,a,u)}}),this.update(v.default.sources.SILENT)}return l(t,[{key:"handleComposition",value:function(){var t=this;this.root.addEventListener("compositionstart",function(){t.composing=!0}),this.root.addEventListener("compositionend",function(){if(t.composing=!1,t.cursor.parent){var e=t.cursor.restore();if(!e)return;setTimeout(function(){t.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)},1)}})}},{key:"handleDragging",value:function(){var t=this;this.emitter.listenDOM("mousedown",document.body,function(){t.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,function(){t.mouseDown=!1,t.update(v.default.sources.USER)})}},{key:"focus",value:function(){this.hasFocus()||(this.root.focus(),this.setRange(this.savedRange))}},{key:"format",value:function(t,e){if(null==this.scroll.whitelist||this.scroll.whitelist[t]){this.scroll.update();var n=this.getNativeRange();if(null!=n&&n.native.collapsed&&!c.default.query(t,c.default.Scope.BLOCK)){if(n.start.node!==this.cursor.textNode){var r=c.default.find(n.start.node,!1);if(null==r)return;if(r instanceof c.default.Leaf){var o=r.split(n.start.offset);r.parent.insertBefore(this.cursor,o)}else r.insertBefore(this.cursor,n.start.node);this.cursor.attach()}this.cursor.format(t,e),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.scroll.length();t=Math.min(t,n-1),e=Math.min(t+e,n-1)-t;var r=void 0,o=this.scroll.leaf(t),i=u(o,2),a=i[0],l=i[1];if(null==a)return null;var s=a.position(l,!0),c=u(s,2);r=c[0],l=c[1];var f=document.createRange();if(e>0){f.setStart(r,l);var p=this.scroll.leaf(t+e),d=u(p,2);if(a=d[0],l=d[1],null==a)return null;var h=a.position(l,!0),y=u(h,2);return r=y[0],l=y[1],f.setEnd(r,l),f.getBoundingClientRect()}var v="left",b=void 0;return r instanceof Text?(l0&&(v="right")),{bottom:b.top+b.height,height:b.height,left:b[v],right:b[v],top:b.top,width:0}}},{key:"getNativeRange",value:function(){var t=this.rootDocument.getSelection();if(null==t||t.rangeCount<=0)return null;var e=t.getRangeAt(0);if(null==e)return null;var n=this.normalizeNative(e);return _.info("getNativeRange",n),n}},{key:"getRange",value:function(){var t=this.getNativeRange();return null==t?[null,null]:[this.normalizedToRange(t),t]}},{key:"hasFocus",value:function(){return this.rootDocument.activeElement===this.root}},{key:"normalizedToRange",value:function(t){var e=this,n=[[t.start.node,t.start.offset]];t.native.collapsed||n.push([t.end.node,t.end.offset]);var r=n.map(function(t){var n=u(t,2),r=n[0],o=n[1],i=c.default.find(r,!0),a=i.offset(e.scroll);return 0===o?a:i instanceof c.default.Container?a+i.length():a+i.index(r,o)}),i=Math.min(Math.max.apply(Math,o(r)),this.scroll.length()-1),a=Math.min.apply(Math,[i].concat(o(r)));return new O(a,i-a)}},{key:"normalizeNative",value:function(t){if(!a(this.root,t.startContainer)||!t.collapsed&&!a(this.root,t.endContainer))return null;var e={start:{node:t.startContainer,offset:t.startOffset},end:{node:t.endContainer,offset:t.endOffset},native:t};return[e.start,e.end].forEach(function(t){for(var e=t.node,n=t.offset;!(e instanceof Text)&&e.childNodes.length>0;)if(e.childNodes.length>n)e=e.childNodes[n],n=0;else{if(e.childNodes.length!==n)break;e=e.lastChild,n=e instanceof Text?e.data.length:e.childNodes.length+1}t.node=e,t.offset=n}),e}},{key:"rangeToNative",value:function(t){var e=this,n=t.collapsed?[t.index]:[t.index,t.index+t.length],r=[],o=this.scroll.length();return n.forEach(function(t,n){t=Math.min(o-1,t);var i=void 0,a=e.scroll.leaf(t),l=u(a,2),s=l[0],c=l[1],f=s.position(c,0!==n),p=u(f,2);i=p[0],c=p[1],r.push(i,c)}),r.length<2&&(r=r.concat(r)),r}},{key:"scrollIntoView",value:function(t){var e=this.lastRange;if(null!=e){var n=this.getBounds(e.index,e.length);if(null!=n){var r=this.scroll.length()-1,o=this.scroll.line(Math.min(e.index,r)),i=u(o,1),a=i[0],l=a;if(e.length>0){var s=this.scroll.line(Math.min(e.index+e.length,r));l=u(s,1)[0]}if(null!=a&&null!=l){var c=t.getBoundingClientRect();n.topc.bottom&&(t.scrollTop+=n.bottom-c.bottom)}}}}},{key:"setNativeRange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(_.info("setNativeRange",t,e,n,r),null==t||null!=this.root.parentNode&&null!=t.parentNode&&null!=n.parentNode){var i=this.rootDocument.getSelection();if(null!=i)if(null!=t){this.hasFocus()||this.root.focus();var a=(this.getNativeRange()||{}).native;if(null==a||o||t!==a.startContainer||e!==a.startOffset||n!==a.endContainer||r!==a.endOffset){"BR"==t.tagName&&(e=[].indexOf.call(t.parentNode.childNodes,t),t=t.parentNode),"BR"==n.tagName&&(r=[].indexOf.call(n.parentNode.childNodes,n),n=n.parentNode);var u=document.createRange();u.setStart(t,e),u.setEnd(n,r),i.removeAllRanges(),i.addRange(u)}}else i.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v.default.sources.API;if("string"==typeof e&&(n=e,e=!1),_.info("setRange",t),null!=t){var r=this.rangeToNative(t);this.setNativeRange.apply(this,o(r).concat([e]))}else this.setNativeRange(null);this.update(n)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v.default.sources.USER,e=this.lastRange,n=this.getRange(),r=u(n,2),o=r[0],i=r[1];if(this.lastRange=o,null!=this.lastRange&&(this.savedRange=this.lastRange),!(0,h.default)(e,this.lastRange)){var a;!this.composing&&null!=i&&i.native.collapsed&&i.start.node!==this.cursor.textNode&&this.cursor.restore();var l=[v.default.events.SELECTION_CHANGE,(0,p.default)(this.lastRange),(0,p.default)(e),t];if((a=this.emitter).emit.apply(a,[v.default.events.EDITOR_CHANGE].concat(l)),t!==v.default.sources.SILENT){var s;(s=this.emitter).emit.apply(s,l)}}}}]),t}();e.Range=O,e.default=w},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AlignStyle=e.AlignClass=e.AlignAttribute=void 0;var r=n(0),o=function(t){return t&&t.__esModule?t:{default:t}}(r),i={scope:o.default.Scope.BLOCK,whitelist:["right","center","justify"]},a=new o.default.Attributor.Attribute("align","align",i),u=new o.default.Attributor.Class("align","ql-align",i),l=new o.default.Attributor.Style("align","text-align",i);e.AlignAttribute=a,e.AlignClass=u,e.AlignStyle=l},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BackgroundStyle=e.BackgroundClass=void 0;var r=n(0),o=function(t){return t&&t.__esModule?t:{default:t}}(r),i=n(26),a=new o.default.Attributor.Class("background","ql-bg",{scope:o.default.Scope.INLINE}),u=new i.ColorAttributor("background","background-color",{scope:o.default.Scope.INLINE});e.BackgroundClass=a,e.BackgroundStyle=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DirectionStyle=e.DirectionClass=e.DirectionAttribute=void 0;var r=n(0),o=function(t){return t&&t.__esModule?t:{default:t}}(r),i={scope:o.default.Scope.BLOCK,whitelist:["rtl"]},a=new o.default.Attributor.Attribute("direction","dir",i),u=new o.default.Attributor.Class("direction","ql-direction",i),l=new o.default.Attributor.Style("direction","direction",i);e.DirectionAttribute=a,e.DirectionClass=u,e.DirectionStyle=l},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.FontClass=e.FontStyle=void 0;var a=function(){function t(t,e){for(var n=0;n1){var s=o.formats(),c=this.quill.getFormat(t.index-1,1);i=x.default.attributes.diff(s,c)||{}}}var f=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(e.prefix)?2:1;this.quill.deleteText(t.index-f,f,C.default.sources.USER),Object.keys(i).length>0&&this.quill.formatLine(t.index-f,f,i,C.default.sources.USER),this.quill.focus()}}function c(t,e){var n=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(e.suffix)?2:1;if(!(t.index>=this.quill.getLength()-n)){var r={},o=0,i=this.quill.getLine(t.index),a=b(i,1),u=a[0];if(e.offset>=u.length()-1){var l=this.quill.getLine(t.index+1),s=b(l,1),c=s[0];if(c){var f=u.formats(),p=this.quill.getFormat(t.index,1);r=x.default.attributes.diff(f,p)||{},o=c.length()}}this.quill.deleteText(t.index,n,C.default.sources.USER),Object.keys(r).length>0&&this.quill.formatLine(t.index+o-1,n,r,C.default.sources.USER)}}function f(t){var e=this.quill.getLines(t),n={};if(e.length>1){var r=e[0].formats(),o=e[e.length-1].formats();n=x.default.attributes.diff(o,r)||{}}this.quill.deleteText(t,C.default.sources.USER),Object.keys(n).length>0&&this.quill.formatLine(t.index,1,n,C.default.sources.USER),this.quill.setSelection(t.index,C.default.sources.SILENT),this.quill.focus()}function p(t,e){var n=this;t.length>0&&this.quill.scroll.deleteAt(t.index,t.length);var r=Object.keys(e.format).reduce(function(t,n){return P.default.query(n,P.default.Scope.BLOCK)&&!Array.isArray(e.format[n])&&(t[n]=e.format[n]),t},{});this.quill.insertText(t.index,"\n",r,C.default.sources.USER),this.quill.setSelection(t.index+1,C.default.sources.SILENT),this.quill.focus(),Object.keys(e.format).forEach(function(t){null==r[t]&&(Array.isArray(e.format[t])||"link"!==t&&n.quill.format(t,e.format[t],C.default.sources.USER))})}function d(t){return{key:D.keys.TAB,shiftKey:!t,format:{"code-block":!0},handler:function(e){var n=P.default.query("code-block"),r=e.index,o=e.length,i=this.quill.scroll.descendant(n,r),a=b(i,2),u=a[0],l=a[1];if(null!=u){var s=this.quill.getIndex(u),c=u.newlineIndex(l,!0)+1,f=u.newlineIndex(s+l+o),p=u.domNode.textContent.slice(c,f).split("\n");l=0,p.forEach(function(e,i){t?(u.insertAt(c+l,n.TAB),l+=n.TAB.length,0===i?r+=n.TAB.length:o+=n.TAB.length):e.startsWith(n.TAB)&&(u.deleteAt(c+l,n.TAB.length),l-=n.TAB.length,0===i?r-=n.TAB.length:o-=n.TAB.length),l+=e.length+1}),this.quill.update(C.default.sources.USER),this.quill.setSelection(r,o,C.default.sources.SILENT)}}}}function h(t){return{key:t[0].toUpperCase(),shortKey:!0,handler:function(e,n){this.quill.format(t,!n.format[t],C.default.sources.USER)}}}function y(t){if("string"==typeof t||"number"==typeof t)return y({key:t});if("object"===(void 0===t?"undefined":v(t))&&(t=(0,_.default)(t,!1)),"string"==typeof t.key)if(null!=D.keys[t.key.toUpperCase()])t.key=D.keys[t.key.toUpperCase()];else{if(1!==t.key.length)return null;t.key=t.key.toUpperCase().charCodeAt(0)}return t.shortKey&&(t[B]=t.shortKey,delete t.shortKey),t}Object.defineProperty(e,"__esModule",{value:!0}),e.SHORTKEY=e.default=void 0;var v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),g=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=y(t);if(null==r||null==r.key)return M.warn("Attempted to add invalid keyboard binding",r);"function"==typeof e&&(e={handler:e}),"function"==typeof n&&(n={handler:n}),r=(0,N.default)(r,e,n),this.bindings[r.key]=this.bindings[r.key]||[],this.bindings[r.key].push(r)}},{key:"listen",value:function(){var t=this;this.quill.root.addEventListener("keydown",function(n){if(!n.defaultPrevented){var r=n.which||n.keyCode,o=(t.bindings[r]||[]).filter(function(t){return e.match(n,t)});if(0!==o.length){var i=t.quill.getSelection();if(null!=i&&t.quill.hasFocus()){var a=t.quill.getLine(i.index),u=b(a,2),l=u[0],s=u[1],c=t.quill.getLeaf(i.index),f=b(c,2),p=f[0],d=f[1],h=0===i.length?[p,d]:t.quill.getLeaf(i.index+i.length),y=b(h,2),g=y[0],m=y[1],_=p instanceof P.default.Text?p.value().slice(0,d):"",O=g instanceof P.default.Text?g.value().slice(m):"",E={collapsed:0===i.length,empty:0===i.length&&l.length()<=1,format:t.quill.getFormat(i),offset:s,prefix:_,suffix:O};o.some(function(e){if(null!=e.collapsed&&e.collapsed!==E.collapsed)return!1;if(null!=e.empty&&e.empty!==E.empty)return!1;if(null!=e.offset&&e.offset!==E.offset)return!1;if(Array.isArray(e.format)){if(e.format.every(function(t){return null==E.format[t]}))return!1}else if("object"===v(e.format)&&!Object.keys(e.format).every(function(t){return!0===e.format[t]?null!=E.format[t]:!1===e.format[t]?null==E.format[t]:(0,w.default)(e.format[t],E.format[t])}))return!1;return!(null!=e.prefix&&!e.prefix.test(E.prefix))&&(!(null!=e.suffix&&!e.suffix.test(E.suffix))&&!0!==e.handler.call(t,i,E))})&&n.preventDefault()}}}})}}]),e}(q.default);D.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},D.DEFAULTS={bindings:{bold:h("bold"),italic:h("italic"),underline:h("underline"),indent:{key:D.keys.TAB,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","+1",C.default.sources.USER)}},outdent:{key:D.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","-1",C.default.sources.USER)}},"outdent backspace":{key:D.keys.BACKSPACE,collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler:function(t,e){null!=e.format.indent?this.quill.format("indent","-1",C.default.sources.USER):null!=e.format.list&&this.quill.format("list",!1,C.default.sources.USER)}},"indent code-block":d(!0),"outdent code-block":d(!1),"remove tab":{key:D.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(t){this.quill.deleteText(t.index-1,1,C.default.sources.USER)}},tab:{key:D.keys.TAB,handler:function(t){this.quill.history.cutoff();var e=(new A.default).retain(t.index).delete(t.length).insert("\t");this.quill.updateContents(e,C.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index+1,C.default.sources.SILENT)}},"list empty enter":{key:D.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(t,e){this.quill.format("list",!1,C.default.sources.USER),e.format.indent&&this.quill.format("indent",!1,C.default.sources.USER)}},"checklist enter":{key:D.keys.ENTER,collapsed:!0,format:{list:"checked"},handler:function(t){var e=this.quill.getLine(t.index),n=b(e,2),r=n[0],o=n[1],i=(0,N.default)({},r.formats(),{list:"checked"}),a=(new A.default).retain(t.index).insert("\n",i).retain(r.length()-o-1).retain(1,{list:"unchecked"});this.quill.updateContents(a,C.default.sources.USER),this.quill.setSelection(t.index+1,C.default.sources.SILENT),this.quill.scrollIntoView()}},"header enter":{key:D.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(t,e){var n=this.quill.getLine(t.index),r=b(n,2),o=r[0],i=r[1],a=(new A.default).retain(t.index).insert("\n",e.format).retain(o.length()-i-1).retain(1,{header:null});this.quill.updateContents(a,C.default.sources.USER),this.quill.setSelection(t.index+1,C.default.sources.SILENT),this.quill.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler:function(t,e){var n=e.prefix.length,r=this.quill.getLine(t.index),o=b(r,2),i=o[0],a=o[1];if(a>n)return!0;var u=void 0;switch(e.prefix.trim()){case"[]":case"[ ]":u="unchecked";break;case"[x]":u="checked";break;case"-":case"*":u="bullet";break;default:u="ordered"}this.quill.insertText(t.index," ",C.default.sources.USER),this.quill.history.cutoff();var l=(new A.default).retain(t.index-a).delete(n+1).retain(i.length()-2-a).retain(1,{list:u});this.quill.updateContents(l,C.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index-n,C.default.sources.SILENT)}},"code exit":{key:D.keys.ENTER,collapsed:!0,format:["code-block"],prefix:/\n\n$/,suffix:/^\s+$/,handler:function(t){var e=this.quill.getLine(t.index),n=b(e,2),r=n[0],o=n[1],i=(new A.default).retain(t.index+r.length()-o-2).retain(1,{"code-block":null}).delete(1);this.quill.updateContents(i,C.default.sources.USER)}},"embed left":l(D.keys.LEFT,!1),"embed left shift":l(D.keys.LEFT,!0),"embed right":l(D.keys.RIGHT,!1),"embed right shift":l(D.keys.RIGHT,!0)}},e.default=D,e.SHORTKEY=B},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n1&&this.append.apply(this,t.slice(1))},t.prototype.contains=function(t){for(var e,n=this.iterator();e=n();)if(e===t)return!0;return!1},t.prototype.insertBefore=function(t,e){t&&(t.next=e,null!=e?(t.prev=e.prev,null!=e.prev&&(e.prev.next=t),e.prev=t,e===this.head&&(this.head=t)):null!=this.tail?(this.tail.next=t,t.prev=this.tail,this.tail=t):(t.prev=null,this.head=this.tail=t),this.length+=1)},t.prototype.offset=function(t){for(var e=0,n=this.head;null!=n;){if(n===t)return e;e+=n.length(),n=n.next}return-1},t.prototype.remove=function(t){this.contains(t)&&(null!=t.prev&&(t.prev.next=t.next),null!=t.next&&(t.next.prev=t.prev),t===this.head&&(this.head=t.next),t===this.tail&&(this.tail=t.prev),this.length-=1)},t.prototype.iterator=function(t){return void 0===t&&(t=this.head),function(){var e=t;return null!=t&&(t=t.next),e}},t.prototype.find=function(t,e){void 0===e&&(e=!1);for(var n,r=this.iterator();n=r();){var o=n.length();if(tu?n(r,t-u,Math.min(e,u+s-t)):n(r,0,Math.min(s,t+e-u)),u+=s}},t.prototype.map=function(t){return this.reduce(function(e,n){return e.push(t(n)),e},[])},t.prototype.reduce=function(t,e){for(var n,r=this.iterator();n=r();)e=t(e,n);return e},t}();e.default=r},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(17),i=n(1),a={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},u=function(t){function e(e){var n=t.call(this,e)||this;return n.scroll=n,n.observer=new MutationObserver(function(t){n.update(t)}),n.observer.observe(n.domNode,a),n.attach(),n}return r(e,t),e.prototype.detach=function(){t.prototype.detach.call(this),this.observer.disconnect()},e.prototype.deleteAt=function(e,n){this.update(),0===e&&n===this.length()?this.children.forEach(function(t){t.remove()}):t.prototype.deleteAt.call(this,e,n)},e.prototype.formatAt=function(e,n,r,o){this.update(),t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){this.update(),t.prototype.insertAt.call(this,e,n,r)},e.prototype.optimize=function(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.prototype.optimize.call(this,n);for(var a=[].slice.call(this.observer.takeRecords());a.length>0;)e.push(a.pop());for(var u=function(t,e){void 0===e&&(e=!0),null!=t&&t!==r&&null!=t.domNode.parentNode&&(null==t.domNode[i.DATA_KEY].mutations&&(t.domNode[i.DATA_KEY].mutations=[]),e&&u(t.parent))},l=function(t){null!=t.domNode[i.DATA_KEY]&&null!=t.domNode[i.DATA_KEY].mutations&&(t instanceof o.default&&t.children.forEach(l),t.optimize(n))},s=e,c=0;s.length>0;c+=1){if(c>=100)throw new Error("[Parchment] Maximum optimize iterations reached");for(s.forEach(function(t){var e=i.find(t.target,!0);null!=e&&(e.domNode===t.target&&("childList"===t.type?(u(i.find(t.previousSibling,!1)),[].forEach.call(t.addedNodes,function(t){var e=i.find(t,!1);u(e,!1),e instanceof o.default&&e.children.forEach(function(t){u(t,!1)})})):"attributes"===t.type&&u(e.prev)),u(e))}),this.children.forEach(l),s=[].slice.call(this.observer.takeRecords()),a=s.slice();a.length>0;)e.push(a.pop())}},e.prototype.update=function(e,n){var r=this;void 0===n&&(n={}),e=e||this.observer.takeRecords(),e.map(function(t){var e=i.find(t.target,!0);return null==e?null:null==e.domNode[i.DATA_KEY].mutations?(e.domNode[i.DATA_KEY].mutations=[t],e):(e.domNode[i.DATA_KEY].mutations.push(t),null)}).forEach(function(t){null!=t&&t!==r&&null!=t.domNode[i.DATA_KEY]&&t.update(t.domNode[i.DATA_KEY].mutations||[],n)}),null!=this.domNode[i.DATA_KEY].mutations&&t.prototype.update.call(this,this.domNode[i.DATA_KEY].mutations,n),this.optimize(e,n)},e.blotName="scroll",e.defaultChild="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="DIV",e}(o.default);e.default=u},function(t,e,n){"use strict";function r(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var n in t)if(t[n]!==e[n])return!1;return!0}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(18),a=n(1),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.formats=function(n){if(n.tagName!==e.tagName)return t.formats.call(this,n)},e.prototype.format=function(n,r){var o=this;n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):(this.children.forEach(function(t){t instanceof i.default||(t=t.wrap(e.blotName,!0)),o.attributes.copy(t)}),this.unwrap())},e.prototype.formatAt=function(e,n,r,o){if(null!=this.formats()[r]||a.query(r,a.Scope.ATTRIBUTE)){this.isolate(e,n).format(r,o)}else t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n);var o=this.formats();if(0===Object.keys(o).length)return this.unwrap();var i=this.next;i instanceof e&&i.prev===this&&r(o,i.formats())&&(i.moveChildren(this),i.remove())},e.blotName="inline",e.scope=a.Scope.INLINE_BLOT,e.tagName="SPAN",e}(i.default);e.default=u},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(18),i=n(1),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(n){var r=i.query(e.blotName).tagName;if(n.tagName!==r)return t.formats.call(this,n)},e.prototype.format=function(n,r){null!=i.query(n,i.Scope.BLOCK)&&(n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):this.replaceWith(e.blotName))},e.prototype.formatAt=function(e,n,r,o){null!=i.query(r,i.Scope.BLOCK)?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){if(null==r||null!=i.query(n,i.Scope.INLINE))t.prototype.insertAt.call(this,e,n,r);else{var o=this.split(e),a=i.create(n,r);o.parent.insertBefore(a,o)}},e.prototype.update=function(e,n){navigator.userAgent.match(/Trident/)?this.build():t.prototype.update.call(this,e,n)},e.blotName="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="P",e}(o.default);e.default=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(19),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(t){},e.prototype.format=function(e,n){t.prototype.formatAt.call(this,0,this.length(),e,n)},e.prototype.formatAt=function(e,n,r,o){0===e&&n===this.length()?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.formats=function(){return this.statics.formats(this.domNode)},e}(o.default);e.default=i},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(19),i=n(1),a=function(t){function e(e){var n=t.call(this,e)||this;return n.text=n.statics.value(n.domNode),n}return r(e,t),e.create=function(t){return document.createTextNode(t)},e.value=function(t){var e=t.data;return e.normalize&&(e=e.normalize()),e},e.prototype.deleteAt=function(t,e){this.domNode.data=this.text=this.text.slice(0,t)+this.text.slice(t+e)},e.prototype.index=function(t,e){return this.domNode===t?e:-1},e.prototype.insertAt=function(e,n,r){null==r?(this.text=this.text.slice(0,e)+n+this.text.slice(e),this.domNode.data=this.text):t.prototype.insertAt.call(this,e,n,r)},e.prototype.length=function(){return this.text.length},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n),this.text=this.statics.value(this.domNode),0===this.text.length?this.remove():this.next instanceof e&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())},e.prototype.position=function(t,e){return void 0===e&&(e=!1),[this.domNode,t]},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=i.create(this.domNode.splitText(t));return this.parent.insertBefore(n,this.next),this.text=this.statics.value(this.domNode),n},e.prototype.update=function(t,e){var n=this;t.some(function(t){return"characterData"===t.type&&t.target===n.domNode})&&(this.text=this.statics.value(this.domNode))},e.prototype.value=function(){return this.text},e.blotName="text",e.scope=i.Scope.INLINE_BLOT,e}(o.default);e.default=a},function(t,e,n){"use strict";var r=document.createElement("div");if(r.classList.toggle("test-class",!1),r.classList.contains("test-class")){var o=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return arguments.length>1&&!this.contains(t)==!e?e:o.call(this,t)}}String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return e=e||0,this.substr(e,t.length)===t}),String.prototype.endsWith||(String.prototype.endsWith=function(t,e){var n=this.toString();("number"!=typeof e||!isFinite(e)||Math.floor(e)!==e||e>n.length)&&(e=n.length),e-=t.length;var r=n.indexOf(t,e);return-1!==r&&r===e}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var e,n=Object(this),r=n.length>>>0,o=arguments[1],i=0;ie.length?t:e,a=t.length>e.length?e:t,u=i.indexOf(a);if(-1!=u)return r=[[y,i.substring(0,u)],[v,a],[y,i.substring(u+a.length)]],t.length>e.length&&(r[0][0]=r[2][0]=h),r;if(1==a.length)return[[h,t],[y,e]];var s=l(t,e);if(s){var c=s[0],f=s[1],p=s[2],d=s[3],b=s[4],g=n(c,p),m=n(f,d);return g.concat([[v,b]],m)}return o(t,e)}function o(t,e){for(var n=t.length,r=e.length,o=Math.ceil((n+r)/2),a=o,u=2*o,l=new Array(u),s=new Array(u),c=0;cn)v+=2;else if(E>r)d+=2;else if(p){var N=a+f-_;if(N>=0&&N=j)return i(t,e,O,E)}}}for(var A=-m+b;A<=m-g;A+=2){var j,N=a+A;j=A==-m||A!=m&&s[N-1]n)g+=2;else if(k>r)b+=2;else if(!p){var w=a+f-A;if(w>=0&&w=j)return i(t,e,O,E)}}}}return[[h,t],[y,e]]}function i(t,e,r,o){var i=t.substring(0,r),a=e.substring(0,o),u=t.substring(r),l=e.substring(o),s=n(i,a),c=n(u,l);return s.concat(c)}function a(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;for(var n=0,r=Math.min(t.length,e.length),o=r,i=0;n=t.length?[r,o,i,l,f]:null}var r=t.length>e.length?t:e,o=t.length>e.length?e:t;if(r.length<4||2*o.lengths[4].length?l:s:l;var c,f,p,d;return t.length>e.length?(c=i[0],f=i[1],p=i[2],d=i[3]):(p=i[0],d=i[1],c=i[2],f=i[3]),[c,f,p,d,i[4]]}function s(t){t.push([v,""]);for(var e,n=0,r=0,o=0,i="",l="";n1?(0!==r&&0!==o&&(e=a(l,i),0!==e&&(n-r-o>0&&t[n-r-o-1][0]==v?t[n-r-o-1][1]+=l.substring(0,e):(t.splice(0,0,[v,l.substring(0,e)]),n++),l=l.substring(e),i=i.substring(e)),0!==(e=u(l,i))&&(t[n][1]=l.substring(l.length-e)+t[n][1],l=l.substring(0,l.length-e),i=i.substring(0,i.length-e))),0===r?t.splice(n-o,r+o,[y,l]):0===o?t.splice(n-r,r+o,[h,i]):t.splice(n-r-o,r+o,[h,i],[y,l]),n=n-r-o+(r?1:0)+(o?1:0)+1):0!==n&&t[n-1][0]==v?(t[n-1][1]+=t[n][1],t.splice(n,1)):n++,o=0,r=0,i="",l=""}""===t[t.length-1][1]&&t.pop();var c=!1;for(n=1;n0&&r.splice(o+2,0,[a[0],u]),d(r,o,3)}return t}function p(t){for(var e=!1,n=function(t){return t.charCodeAt(0)>=56320&&t.charCodeAt(0)<=57343},r=2;r=55296&&t.charCodeAt(t.length-1)<=56319}(t[r-2][1])&&t[r-1][0]===h&&n(t[r-1][1])&&t[r][0]===y&&n(t[r][1])&&(e=!0,t[r-1][1]=t[r-2][1].slice(-1)+t[r-1][1],t[r][1]=t[r-2][1].slice(-1)+t[r][1],t[r-2][1]=t[r-2][1].slice(0,-1));if(!e)return t;for(var o=[],r=0;r0&&o.push(t[r]);return o}function d(t,e,n){for(var r=e+n-1;r>=0&&r>=e-1;r--)if(r+10&&!o.call(t,0))for(var d=0;d0)for(var y=0;y=0&&"[object Array]"!==i(t)&&"[object Function]"===i(t.callee)},l=function(){return a(arguments)}();a.isLegacyArguments=u,t.exports=l?a:u},function(t,e,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=n(33);t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},function(t,e,n){"use strict";var r=Array.prototype.slice,o=Object.prototype.toString;t.exports=function(t){var e=this;if("function"!=typeof e||"[object Function]"!==o.call(e))throw new TypeError("Function.prototype.bind called on incompatible "+e);for(var n,i=r.call(arguments,1),a=function(){if(this instanceof n){var o=e.apply(this,i.concat(r.call(arguments)));return Object(o)===o?o:this}return e.apply(t,i.concat(r.call(arguments)))},u=Math.max(0,e.length-i.length),l=[],s=0;s=r&&!u.endsWith("\n")&&(n=!0),e.scroll.insertAt(t,u);var c=e.scroll.line(t),f=s(c,2),p=f[0],d=f[1],y=(0,P.default)({},(0,O.bubbleFormats)(p));if(p instanceof w.default){var b=p.descendant(v.default.Leaf,d),g=s(b,1),m=g[0];y=(0,P.default)(y,(0,O.bubbleFormats)(m))}a=h.default.attributes.diff(y,a)||{}}else if("object"===l(o.insert)){var _=Object.keys(o.insert)[0];if(null==_)return t;e.scroll.insertAt(t,_,o.insert[_])}r+=i}return Object.keys(a).forEach(function(n){e.scroll.formatAt(t,i,n,a[n])}),t+i},0),t.reduce(function(t,n){return"number"==typeof n.delete?(e.scroll.deleteAt(t,n.delete),t):t+(n.retain||n.insert.length||1)},0),this.scroll.batchEnd(),this.update(t)}},{key:"deleteText",value:function(t,e){return this.scroll.deleteAt(t,e),this.update((new p.default).retain(t).delete(e))}},{key:"formatLine",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.scroll.update(),Object.keys(r).forEach(function(o){if(null==n.scroll.whitelist||n.scroll.whitelist[o]){var i=n.scroll.lines(t,Math.max(e,1)),a=e;i.forEach(function(e){var i=e.length();if(e instanceof g.default){var u=t-e.offset(n.scroll),l=e.newlineIndex(u+a)-u+1;e.formatAt(u,l,o,r[o])}else e.format(o,r[o]);a-=i})}}),this.scroll.optimize(),this.update((new p.default).retain(t).retain(e,(0,A.default)(r)))}},{key:"formatText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(r).forEach(function(o){n.scroll.formatAt(t,e,o,r[o])}),this.update((new p.default).retain(t).retain(e,(0,A.default)(r)))}},{key:"getContents",value:function(t,e){return this.delta.slice(t,t+e)}},{key:"getDelta",value:function(){return this.scroll.lines().reduce(function(t,e){return t.concat(e.delta())},new p.default)}},{key:"getFormat",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[],r=[];0===e?this.scroll.path(t).forEach(function(t){var e=s(t,1),o=e[0];o instanceof w.default?n.push(o):o instanceof v.default.Leaf&&r.push(o)}):(n=this.scroll.lines(t,e),r=this.scroll.descendants(v.default.Leaf,t,e));var o=[n,r].map(function(t){if(0===t.length)return{};for(var e=(0,O.bubbleFormats)(t.shift());Object.keys(e).length>0;){var n=t.shift();if(null==n)return e;e=a((0,O.bubbleFormats)(n),e)}return e});return P.default.apply(P.default,o)}},{key:"getText",value:function(t,e){return this.getContents(t,e).filter(function(t){return"string"==typeof t.insert}).map(function(t){return t.insert}).join("")}},{key:"insertEmbed",value:function(t,e,n){return this.scroll.insertAt(t,e,n),this.update((new p.default).retain(t).insert(o({},e,n)))}},{key:"insertText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),this.scroll.insertAt(t,e),Object.keys(r).forEach(function(o){n.scroll.formatAt(t,e.length,o,r[o])}),this.update((new p.default).retain(t).insert(e,(0,A.default)(r)))}},{key:"isBlank",value:function(){if(0==this.scroll.children.length)return!0;if(this.scroll.children.length>1)return!1;var t=this.scroll.children.head;return t.statics.blotName===w.default.blotName&&(!(t.children.length>1)&&t.children.head instanceof N.default)}},{key:"removeFormat",value:function(t,e){var n=this.getText(t,e),r=this.scroll.line(t+e),o=s(r,2),i=o[0],a=o[1],u=0,l=new p.default;null!=i&&(u=i instanceof g.default?i.newlineIndex(a)-a+1:i.length()-a,l=i.delta().slice(a,a+u-1).insert("\n"));var c=this.getContents(t,e+u),f=c.diff((new p.default).insert(n).concat(l)),d=(new p.default).retain(t).concat(f);return this.applyDelta(d)}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=this.delta;if(1===e.length&&"characterData"===e[0].type&&e[0].target.data.match(T)&&v.default.find(e[0].target)){var o=v.default.find(e[0].target),i=(0,O.bubbleFormats)(o),a=o.offset(this.scroll),u=e[0].oldValue.replace(_.default.CONTENTS,""),l=(new p.default).insert(u),s=(new p.default).insert(o.value());t=(new p.default).retain(a).concat(l.diff(s,n)).reduce(function(t,e){return e.insert?t.insert(e.insert,i):t.push(e)},new p.default),this.delta=r.compose(t)}else this.delta=this.getDelta(),t&&(0,x.default)(r.compose(t),this.delta)||(t=r.diff(this.delta,n));return t}}]),t}();e.default=C},function(t,e){"use strict";function n(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(){this._events=new n,this._eventsCount=0}var i=Object.prototype.hasOwnProperty,a="~";Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,n=[];if(0===this._eventsCount)return n;for(e in t=this._events)i.call(t,e)&&n.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t,e){var n=a?a+t:t,r=this._events[n];if(e)return!!r;if(!r)return[];if(r.fn)return[r.fn];for(var o=0,i=r.length,u=new Array(i);o-1,s=!(!window.navigator.userAgent.match(/Trident/)||window.navigator.userAgent.match(/MSIE/)),c=window.navigator.userAgent.match(/Edge/),f=!1,p=e.ShadowSelection=function(){function t(){r(this,t),this._ranges=[]}return i(t,[{key:"getRangeAt",value:function(t){return this._ranges[t]}},{key:"addRange",value:function(t){if(this._ranges.push(t),!f){var e=window.getSelection();e.removeAllRanges(),e.addRange(t)}}},{key:"removeAllRanges",value:function(){this._ranges=[]}},{key:"rangeCount",get:function(){return this._ranges.length}}]),t}();if((l||s||c)&&!a&&(window.ShadowRoot.prototype.getSelection=function(){return document.getSelection()}),!l&&!a&&u){var d=new p;window.ShadowRoot.prototype.getSelection=function(){return d},window.addEventListener("selectionchange",function(){if(!f){f=!0;var t=o();t&&"true"===t.getAttribute("contenteditable")?document.execCommand("indent"):d.removeAllRanges(),f=!1}},!0),window.addEventListener("beforeinput",function(t){if(f){var e=t.getTargetRanges(),n=e[0],r=new Range;r.setStart(n.startContainer,n.startOffset),r.setEnd(n.endContainer,n.endOffset),d.removeAllRanges(),d.addRange(r),t.preventDefault(),t.stopImmediatePropagation()}},!0),window.addEventListener("selectstart",function(){d.removeAllRanges()},!0)}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t instanceof v.default||t instanceof y.BlockEmbed}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var n=0;n0){if(i instanceof y.BlockEmbed||f instanceof y.BlockEmbed)return void this.optimize();if(i instanceof _.default){var p=i.newlineIndex(i.length(),!0);if(p>-1&&(i=i.split(p+1))===f)return void this.optimize()}else if(f instanceof _.default){var d=f.newlineIndex(0);d>-1&&f.split(d+1)}var h=f.children.head instanceof g.default?null:f.children.head;i.moveChildren(f,h),i.remove()}this.optimize()}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.domNode.setAttribute("contenteditable",t)}},{key:"formatAt",value:function(t,n,r,o){(null==this.whitelist||this.whitelist[r])&&(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"formatAt",this).call(this,t,n,r,o),this.optimize())}},{key:"insertAt",value:function(t,n,r){if(null==r||null==this.whitelist||this.whitelist[n]){if(t>=this.length())if(null==r||null==p.default.query(n,p.default.Scope.BLOCK)){var o=p.default.create(this.statics.defaultChild);this.appendChild(o),null==r&&n.endsWith("\n")&&(n=n.slice(0,-1)),o.insertAt(0,n,r)}else{var i=p.default.create(n,r);this.appendChild(i)}else c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,t,n,r);this.optimize()}}},{key:"insertBefore",value:function(t,n){if(t.statics.scope===p.default.Scope.INLINE_BLOT){var r=p.default.create(this.statics.defaultChild);r.appendChild(t),t=r}c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n)}},{key:"leaf",value:function(t){return this.path(t).pop()||[null,-1]}},{key:"line",value:function(t){return t===this.length()?this.line(t-1):this.descendant(u,t)}},{key:"lines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return function t(e,n,r){var o=[],i=r;return e.children.forEachAt(n,r,function(e,n,r){u(e)?o.push(e):e instanceof p.default.Container&&(o=o.concat(t(e,n,i))),i-=r}),o}(this,t,e)}},{key:"optimize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!0!==this.batch&&(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t,n),t.length>0&&this.emitter.emit(h.default.events.SCROLL_OPTIMIZE,t,n))}},{key:"path",value:function(t){return c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"path",this).call(this,t).slice(1)}},{key:"update",value:function(t){if(!0!==this.batch){var n=h.default.sources.USER;"string"==typeof t&&(n=t),Array.isArray(t)||(t=this.observer.takeRecords()),t.length>0&&this.emitter.emit(h.default.events.SCROLL_BEFORE_UPDATE,n,t),c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"update",this).call(this,t.concat([])),t.length>0&&this.emitter.emit(h.default.events.SCROLL_UPDATE,n,t)}}}]),e}(p.default.Scroll);E.blotName="scroll",E.className="ql-editor",E.tagName="DIV",E.defaultChild="block",E.allowedChildren=[v.default,y.BlockEmbed,w.default],e.default=E},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e,n){return"object"===(void 0===e?"undefined":w(e))?Object.keys(e).reduce(function(t,n){return l(t,n,e[n])},t):t.reduce(function(t,r){return r.attributes&&r.attributes[e]?t.push(r):t.insert(r.insert,(0,A.default)({},o({},e,n),r.attributes))},new x.default)}function s(t){if(t.nodeType!==Node.ELEMENT_NODE)return{};return t["__ql-computed-style"]||(t["__ql-computed-style"]=window.getComputedStyle(t))}function c(t,e){for(var n="",r=t.ops.length-1;r>=0&&n.length-1}function p(t,e,n){return t.nodeType===t.TEXT_NODE?n.reduce(function(e,n){return n(t,e)},new x.default):t.nodeType===t.ELEMENT_NODE?[].reduce.call(t.childNodes||[],function(r,o){var i=p(o,e,n);return o.nodeType===t.ELEMENT_NODE&&(i=e.reduce(function(t,e){return e(o,t)},i),i=(o[H]||[]).reduce(function(t,e){return e(o,t)},i)),r.concat(i)},new x.default):new x.default}function d(t,e,n){return l(n,t,!0)}function h(t,e){var n=P.default.Attributor.Attribute.keys(t),r=P.default.Attributor.Class.keys(t),o=P.default.Attributor.Style.keys(t),i={};return n.concat(r).concat(o).forEach(function(e){var n=P.default.query(e,P.default.Scope.ATTRIBUTE);null!=n&&(i[n.attrName]=n.value(t),i[n.attrName])||(n=Y[e],null==n||n.attrName!==e&&n.keyName!==e||(i[n.attrName]=n.value(t)||void 0),null==(n=V[e])||n.attrName!==e&&n.keyName!==e||(n=V[e],i[n.attrName]=n.value(t)||void 0))}),Object.keys(i).length>0&&(e=l(e,i)),e}function y(t,e){var n=P.default.query(t);if(null==n)return e;if(n.prototype instanceof P.default.Embed){var r={},o=n.value(t);null!=o&&(r[n.blotName]=o,e=(new x.default).insert(r,n.formats(t)))}else"function"==typeof n.formats&&(e=l(e,n.blotName,n.formats(t)));return e}function v(t,e){return c(e,"\n")||e.insert("\n"),e}function b(){return new x.default}function g(t,e){var n=P.default.query(t);if(null==n||"list-item"!==n.blotName||!c(e,"\n"))return e;for(var r=-1,o=t.parentNode;!o.classList.contains("ql-clipboard");)"list"===(P.default.query(o)||{}).blotName&&(r+=1),o=o.parentNode;return r<=0?e:e.compose((new x.default).retain(e.length()-1).retain(1,{indent:r}))}function m(t,e){return c(e,"\n")||(f(t)||e.length()>0&&t.nextSibling&&f(t.nextSibling))&&e.insert("\n"),e}function _(t,e){var n={},r=t.style||{};return r.fontStyle&&"italic"===s(t).fontStyle&&(n.italic=!0),r.fontWeight&&(s(t).fontWeight.startsWith("bold")||parseInt(s(t).fontWeight)>=700)&&(n.bold=!0),Object.keys(n).length>0&&(e=l(e,n)),parseFloat(r.textIndent||0)>0&&(e=(new x.default).insert("\t").concat(e)),e}function O(t,e){var n=t.data;if("O:P"===t.parentNode.tagName)return e.insert(n.trim());if(0===n.trim().length&&t.parentNode.classList.contains("ql-clipboard"))return e;if(!s(t.parentNode).whiteSpace.startsWith("pre")){var r=function(t,e){return e=e.replace(/[^\u00a0]/g,""),e.length<1&&t?" ":e};n=n.replace(/\r\n/g," ").replace(/\n/g," "),n=n.replace(/\s\s+/g,r.bind(r,!0)),(null==t.previousSibling&&f(t.parentNode)||null!=t.previousSibling&&f(t.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(null==t.nextSibling&&f(t.parentNode)||null!=t.nextSibling&&f(t.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return e.insert(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.matchText=e.matchNewline=e.matchBlot=e.matchAttributor=e.default=void 0;var w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),N=function(){function t(t,e){for(var n=0;n\r?\n +\<"),this.convert();var e=this.quill.getFormat(this.quill.selection.savedRange.index);if(e[U.default.blotName]){var n=this.container.innerText;return this.container.innerHTML="",(new x.default).insert(n,o({},U.default.blotName,e[U.default.blotName]))}var r=this.prepareMatching(),i=E(r,2),a=i[0],u=i[1],l=p(this.container,a,u);return c(l,"\n")&&null==l.ops[l.ops.length-1].attributes&&(l=l.compose((new x.default).retain(l.length()-1).delete(1))),G.log("convert",this.container.innerHTML,l),this.container.innerHTML="",l}},{key:"dangerouslyPasteHTML",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:C.default.sources.API;if("string"==typeof t)this.quill.setContents(this.convert(t),e),this.quill.setSelection(0,C.default.sources.SILENT);else{var r=this.convert(e);this.quill.updateContents((new x.default).retain(t).concat(r),n),this.quill.setSelection(t+r.length(),C.default.sources.SILENT)}}},{key:"onPaste",value:function(t){var e=this;if(!t.defaultPrevented&&this.quill.isEnabled()){var n=this.quill.getSelection(),r=(new x.default).retain(n.index),o=this.quill.scrollingContainer.scrollTop;this.container.focus(),this.quill.selection.update(C.default.sources.SILENT),setTimeout(function(){r=r.concat(e.convert()).delete(n.length),e.quill.updateContents(r,C.default.sources.USER),e.quill.setSelection(r.length()-n.length,C.default.sources.SILENT),e.quill.scrollingContainer.scrollTop=o,e.quill.focus()},1)}}},{key:"prepareMatching",value:function(){var t=this,e=[],n=[];return this.matchers.forEach(function(r){var o=E(r,2),i=o[0],a=o[1];switch(i){case Node.TEXT_NODE:n.push(a);break;case Node.ELEMENT_NODE:e.push(a);break;default:[].forEach.call(t.container.querySelectorAll(i),function(t){t[H]=t[H]||[],t[H].push(a)})}}),[e,n]}}]),e}(q.default);X.DEFAULTS={matchers:[],matchVisual:!1},e.default=X,e.matchAttributor=h,e.matchBlot=y,e.matchNewline=m,e.matchText=O},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){var e=t.ops[t.ops.length-1];return null!=e&&(null!=e.insert?"string"==typeof e.insert&&e.insert.endsWith("\n"):null!=e.attributes&&Object.keys(e.attributes).some(function(t){return null!=f.default.query(t,f.default.Scope.BLOCK)}))}function l(t){var e=t.reduce(function(t,e){return t+=e.delete||0},0),n=t.length()-e;return u(t)&&(n-=1),n}Object.defineProperty(e,"__esModule",{value:!0}),e.getLastChangeIndex=e.default=void 0;var s=function(){function t(t,e){for(var n=0;nr&&this.stack.undo.length>0){var o=this.stack.undo.pop();n=n.compose(o.undo),t=o.redo.compose(t)}else this.lastRecorded=r;this.stack.undo.push({redo:t,undo:n}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift()}}},{key:"redo",value:function(){this.change("redo","undo")}},{key:"transform",value:function(t){this.stack.undo.forEach(function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)}),this.stack.redo.forEach(function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)})}},{key:"undo",value:function(){this.change("undo","redo")}}]),e}(y.default);v.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1},e.default=v,e.getLastChangeIndex=l},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.IndentClass=void 0;var a=function(){function t(t,e){for(var n=0;n0&&this.children.tail.format(t,e)}},{key:"formats",value:function(){return o({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:"insertBefore",value:function(t,n){if(t instanceof v)s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n);else{var r=null==n?this.length():n.offset(this),o=this.split(r);o.parent.insertBefore(t,o)}}},{key:"optimize",value:function(t){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&n.domNode.tagName===this.domNode.tagName&&n.domNode.getAttribute("data-checked")===this.domNode.getAttribute("data-checked")&&(n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){if(t.statics.blotName!==this.statics.blotName){var n=f.default.create(this.statics.defaultChild);t.moveChildren(n),this.appendChild(n)}s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t)}}]),e}(y.default);b.blotName="list",b.scope=f.default.Scope.BLOCK_BLOT,b.tagName=["OL","UL"],b.defaultChild="list-item",b.allowedChildren=[v],e.ListItem=v,e.default=b},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=n(48),u=function(t){return t&&t.__esModule?t:{default:t}}(a),l=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),e}(u.default);l.blotName="italic",l.tagName=["EM","I"],e.default=l},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return"string"==typeof t&&n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return f.reduce(function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e},{})}},{key:"match",value:function(t){return/\.(jpe?g|gif|png)$/.test(t)||/^data:image\/.+;base64/.test(t)}},{key:"sanitize",value:function(t){return(0,c.sanitize)(t,["http","https","data"])?t:"//:0"}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(s.default.Embed);p.blotName="image",p.tagName="IMG",e.default=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("frameborder","0"),n.setAttribute("allowfullscreen",!0),n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return f.reduce(function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e},{})}},{key:"sanitize",value:function(t){return c.default.sanitize(t)}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(l.BlockEmbed);p.blotName="video",p.className="ql-video",p.tagName="IFRAME",e.default=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e,n){var r=document.createElement("button");r.setAttribute("type","button"),r.classList.add("ql-"+e),null!=n&&(r.value=n),t.appendChild(r)}function s(t,e){Array.isArray(e[0])||(e=[e]),e.forEach(function(e){var n=document.createElement("span");n.classList.add("ql-formats"),e.forEach(function(t){if("string"==typeof t)l(n,t);else{var e=Object.keys(t)[0],r=t[e];Array.isArray(r)?c(n,e,r):l(n,e,r)}}),t.appendChild(n)})}function c(t,e,n){var r=document.createElement("select");r.classList.add("ql-"+e),n.forEach(function(t){var e=document.createElement("option");!1!==t?e.setAttribute("value",t):e.setAttribute("selected","selected"),r.appendChild(e)}),t.appendChild(r)}Object.defineProperty(e,"__esModule",{value:!0}),e.addControls=e.default=void 0;var f=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),p=function(){function t(t,e){for(var n=0;ns)){var h=e.slice(0,f);if((y=e.slice(f))===c){var d=Math.min(u,f);if((m=a.slice(0,d))===(_=h.slice(0,d)))return p(m,a.slice(d),h.slice(d),c)}}if(null===l||l===u){var v=u,y=(h=e.slice(0,v),e.slice(v));if(h===a){var g=Math.min(i-v,s-v);if((b=c.slice(c.length-g))===(x=y.slice(y.length-g)))return p(a,c.slice(0,c.length-g),y.slice(0,y.length-g),b)}}}if(r.length>0&&o&&0===o.length){var m=t.slice(0,r.index),b=t.slice(r.index+r.length);if(!(s<(d=m.length)+(g=b.length))){var _=e.slice(0,d),x=e.slice(s-g);if(m===_&&b===x)return p(m,t.slice(d,i-g),e.slice(d,s-g),b)}}return null}(t,c,l);if(h)return h}var d=s(t,c),v=t.substring(0,d);d=u(t=t.substring(d),c=c.substring(d));var y=t.substring(t.length-d),g=function(t,a){var c;if(!t)return[[n,a]];if(!a)return[[e,t]];var l=t.length>a.length?t:a,f=t.length>a.length?a:t,h=l.indexOf(f);if(-1!==h)return c=[[n,l.substring(0,h)],[r,f],[n,l.substring(h+f.length)]],t.length>a.length&&(c[0][0]=c[2][0]=e),c;if(1===f.length)return[[e,t],[n,a]];var p=function(t,e){var n=t.length>e.length?t:e,r=t.length>e.length?e:t;if(n.length<4||2*r.length=t.length?[r,o,i,a,f]:null}var i,a,c,l,f,h=o(n,r,Math.ceil(n.length/4)),p=o(n,r,Math.ceil(n.length/2));if(!h&&!p)return null;i=p?h&&h[4].length>p[4].length?h:p:h;t.length>e.length?(a=i[0],c=i[1],l=i[2],f=i[3]):(l=i[0],f=i[1],a=i[2],c=i[3]);var d=i[4];return[a,c,l,f,d]}(t,a);if(p){var d=p[0],v=p[1],y=p[2],g=p[3],m=p[4],b=o(d,y),_=o(v,g);return b.concat([[r,m]],_)}return function(t,r){for(var o=t.length,s=r.length,u=Math.ceil((o+s)/2),a=u,c=2*u,l=new Array(c),f=new Array(c),h=0;ho)y+=2;else if(N>s)v+=2;else if(d){if((k=a+p-_)>=0&&k=(O=o-f[k]))return i(t,r,w,N)}}for(var E=-b+g;E<=b-m;E+=2){for(var O,k=a+E,A=(O=E===-b||E!==b&&f[k-1]o)m+=2;else if(A>s)g+=2;else if(!d){if((x=a+p-E)>=0&&x=(O=o-O))return i(t,r,w,N)}}}}return[[e,t],[n,r]]}(t,a)}(t=t.substring(0,t.length-d),c=c.substring(0,c.length-d));return v&&g.unshift([r,v]),y&&g.push([r,y]),a(g,f),g}function i(t,e,n,r){var i=t.substring(0,n),s=e.substring(0,r),u=t.substring(n),a=e.substring(r),c=o(i,s),l=o(u,a);return c.concat(l)}function s(t,e){if(!t||!e||t.charAt(0)!==e.charAt(0))return 0;for(var n=0,r=Math.min(t.length,e.length),o=r,i=0;n=0&&h(t[y][1])){var g=t[y][1].slice(-1);if(t[y][1]=t[y][1].slice(0,-1),d=g+d,v=g+v,!t[y][1]){t.splice(y,1),c--;var m=y-1;t[m]&&t[m][0]===n&&(p++,v=t[m][1]+v,m--),t[m]&&t[m][0]===e&&(l++,d=t[m][1]+d,m--),y=m}}if(f(t[c][1])){g=t[c][1].charAt(0);t[c][1]=t[c][1].slice(1),d+=g,v+=g}}if(c0||v.length>0){d.length>0&&v.length>0&&(0!==(i=s(v,d))&&(y>=0?t[y][1]+=v.substring(0,i):(t.splice(0,0,[r,v.substring(0,i)]),c++),v=v.substring(i),d=d.substring(i)),0!==(i=u(v,d))&&(t[c][1]=v.substring(v.length-i)+t[c][1],v=v.substring(0,v.length-i),d=d.substring(0,d.length-i)));var b=p+l;0===d.length&&0===v.length?(t.splice(c-b,b),c-=b):0===d.length?(t.splice(c-b,b,[n,v]),c=c-b+1):0===v.length?(t.splice(c-b,b,[e,d]),c=c-b+1):(t.splice(c-b,b,[e,d],[n,v]),c=c-b+2)}0!==c&&t[c-1][0]===r?(t[c-1][1]+=t[c][1],t.splice(c,1)):c++,p=0,l=0,d="",v=""}""===t[t.length-1][1]&&t.pop();var _=!1;for(c=1;c=55296&&t<=56319}function l(t){return t>=56320&&t<=57343}function f(t){return l(t.charCodeAt(0))}function h(t){return c(t.charCodeAt(t.length-1))}function p(t,o,i,s){return h(t)||f(s)?null:function(t){for(var e=[],n=0;n0&&e.push(t[n]);return e}([[r,t],[e,o],[n,i],[r,s]])}function d(t,e,n){return o(t,e,n,!0)}d.INSERT=n,d.DELETE=e,d.EQUAL=r,t.exports=d},9739:function(t,e,n){t=n.nmd(t);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",s="[object Boolean]",u="[object Date]",a="[object Function]",c="[object GeneratorFunction]",l="[object Map]",f="[object Number]",h="[object Object]",p="[object Promise]",d="[object RegExp]",v="[object Set]",y="[object String]",g="[object Symbol]",m="[object WeakMap]",b="[object ArrayBuffer]",_="[object DataView]",x="[object Float32Array]",N="[object Float64Array]",E="[object Int8Array]",O="[object Int16Array]",k="[object Int32Array]",A="[object Uint8Array]",w="[object Uint8ClampedArray]",S="[object Uint16Array]",T="[object Uint32Array]",j=/\w*$/,L=/^\[object .+?Constructor\]$/,R=/^(?:0|[1-9]\d*)$/,C={};C[i]=C["[object Array]"]=C[b]=C[_]=C[s]=C[u]=C[x]=C[N]=C[E]=C[O]=C[k]=C[l]=C[f]=C[h]=C[d]=C[v]=C[y]=C[g]=C[A]=C[w]=C[S]=C[T]=!0,C["[object Error]"]=C[a]=C[m]=!1;var I="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,B="object"==typeof self&&self&&self.Object===Object&&self,P=I||B||Function("return this")(),q=e&&!e.nodeType&&e,D=q&&t&&!t.nodeType&&t,M=D&&D.exports===q;function U(t,e){return t.set(e[0],e[1]),t}function F(t,e){return t.add(e),t}function z(t,e,n,r){var o=-1,i=t?t.length:0;for(r&&i&&(n=t[++o]);++o-1},wt.prototype.set=function(t,e){var n=this.__data__,r=Rt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},St.prototype.clear=function(){this.__data__={hash:new At,map:new(dt||wt),string:new At}},St.prototype.delete=function(t){return qt(this,t).delete(t)},St.prototype.get=function(t){return qt(this,t).get(t)},St.prototype.has=function(t){return qt(this,t).has(t)},St.prototype.set=function(t,e){return qt(this,t).set(t,e),this},Tt.prototype.clear=function(){this.__data__=new wt},Tt.prototype.delete=function(t){return this.__data__.delete(t)},Tt.prototype.get=function(t){return this.__data__.get(t)},Tt.prototype.has=function(t){return this.__data__.has(t)},Tt.prototype.set=function(t,e){var n=this.__data__;if(n instanceof wt){var r=n.__data__;if(!dt||r.length<199)return r.push([t,e]),this;n=this.__data__=new St(r)}return n.set(t,e),this};var Mt=lt?W(lt,Object):function(){return[]},Ut=function(t){return et.call(t)};function Ft(t,e){return!!(e=null==e?o:e)&&("number"==typeof t||R.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=o}(t.length)&&!Vt(t)}var Ht=ft||function(){return!1};function Vt(t){var e=Yt(t)?et.call(t):"";return e==a||e==c}function Yt(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Xt(t){return Gt(t)?jt(t):function(t){if(!zt(t))return ht(t);var e=[];for(var n in Object(t))tt.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}t.exports=function(t){return Ct(t,!0,!0)}},6216:function(t,e,n){t=n.nmd(t);var r="__lodash_hash_undefined__",o=1,i=2,s=9007199254740991,u="[object Arguments]",a="[object Array]",c="[object AsyncFunction]",l="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",d="[object GeneratorFunction]",v="[object Map]",y="[object Number]",g="[object Null]",m="[object Object]",b="[object Promise]",_="[object Proxy]",x="[object RegExp]",N="[object Set]",E="[object String]",O="[object Symbol]",k="[object Undefined]",A="[object WeakMap]",w="[object ArrayBuffer]",S="[object DataView]",T=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,L={};L["[object Float32Array]"]=L["[object Float64Array]"]=L["[object Int8Array]"]=L["[object Int16Array]"]=L["[object Int32Array]"]=L["[object Uint8Array]"]=L["[object Uint8ClampedArray]"]=L["[object Uint16Array]"]=L["[object Uint32Array]"]=!0,L[u]=L[a]=L[w]=L[l]=L[S]=L[f]=L[h]=L[p]=L[v]=L[y]=L[m]=L[x]=L[N]=L[E]=L[A]=!1;var R="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,C="object"==typeof self&&self&&self.Object===Object&&self,I=R||C||Function("return this")(),B=e&&!e.nodeType&&e,P=B&&t&&!t.nodeType&&t,q=P&&P.exports===B,D=q&&R.process,M=function(){try{return D&&D.binding&&D.binding("util")}catch(t){}}(),U=M&&M.isTypedArray;function F(t,e){for(var n=-1,r=null==t?0:t.length;++nc))return!1;var f=u.get(t);if(f&&u.get(e))return f==e;var h=-1,p=!0,d=n&i?new wt:void 0;for(u.set(t,e),u.set(e,t);++h-1},kt.prototype.set=function(t,e){var n=this.__data__,r=jt(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},At.prototype.clear=function(){this.size=0,this.__data__={hash:new Ot,map:new(ht||kt),string:new Ot}},At.prototype.delete=function(t){var e=Dt(this,t).delete(t);return this.size-=e?1:0,e},At.prototype.get=function(t){return Dt(this,t).get(t)},At.prototype.has=function(t){return Dt(this,t).has(t)},At.prototype.set=function(t,e){var n=Dt(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wt.prototype.add=wt.prototype.push=function(t){return this.__data__.set(t,r),this},wt.prototype.has=function(t){return this.__data__.has(t)},St.prototype.clear=function(){this.__data__=new kt,this.size=0},St.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},St.prototype.get=function(t){return this.__data__.get(t)},St.prototype.has=function(t){return this.__data__.has(t)},St.prototype.set=function(t,e){var n=this.__data__;if(n instanceof kt){var r=n.__data__;if(!ht||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new At(r)}return n.set(t,e),this.size=n.size,this};var Ut=at?function(t){return null==t?[]:(t=Object(t),function(t,e){for(var n=-1,r=null==t?0:t.length,o=0,i=[];++n-1&&t%1==0&&t-1&&t%1==0&&t<=s}function Xt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Zt(t){return null!=t&&"object"==typeof t}var Qt=U?function(t){return function(e){return t(e)}}(U):function(t){return Zt(t)&&Yt(t.length)&&!!L[Lt(t)]};function Jt(t){return null!=(e=t)&&Yt(e.length)&&!Vt(e)?Tt(t):Bt(t);var e}t.exports=function(t,e){return Ct(t,e)}},1124:function(t,e,n){t=n.nmd(t);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",s="[object AsyncFunction]",u="[object Function]",a="[object GeneratorFunction]",c="[object Null]",l="[object Object]",f="[object Proxy]",h="[object Undefined]",p=/^\[object .+?Constructor\]$/,d=/^(?:0|[1-9]\d*)$/,v={};v["[object Float32Array]"]=v["[object Float64Array]"]=v["[object Int8Array]"]=v["[object Int16Array]"]=v["[object Int32Array]"]=v["[object Uint8Array]"]=v["[object Uint8ClampedArray]"]=v["[object Uint16Array]"]=v["[object Uint32Array]"]=!0,v[i]=v["[object Array]"]=v["[object ArrayBuffer]"]=v["[object Boolean]"]=v["[object DataView]"]=v["[object Date]"]=v["[object Error]"]=v[u]=v["[object Map]"]=v["[object Number]"]=v[l]=v["[object RegExp]"]=v["[object Set]"]=v["[object String]"]=v["[object WeakMap]"]=!1;var y="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,g="object"==typeof self&&self&&self.Object===Object&&self,m=y||g||Function("return this")(),b=e&&!e.nodeType&&e,_=b&&t&&!t.nodeType&&t,x=_&&_.exports===b,N=x&&y.process,E=function(){try{var t=_&&_.require&&_.require("util").types;return t||N&&N.binding&&N.binding("util")}catch(t){}}(),O=E&&E.isTypedArray;var k,A,w,S=Array.prototype,T=Function.prototype,j=Object.prototype,L=m["__core-js_shared__"],R=T.toString,C=j.hasOwnProperty,I=(k=/[^.]+$/.exec(L&&L.keys&&L.keys.IE_PROTO||""))?"Symbol(src)_1."+k:"",B=j.toString,P=R.call(Object),q=RegExp("^"+R.call(C).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),D=x?m.Buffer:void 0,M=m.Symbol,U=m.Uint8Array,F=D?D.allocUnsafe:void 0,z=(A=Object.getPrototypeOf,w=Object,function(t){return A(w(t))}),K=Object.create,$=j.propertyIsEnumerable,W=S.splice,G=M?M.toStringTag:void 0,H=function(){try{var t=bt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),V=D?D.isBuffer:void 0,Y=Math.max,X=Date.now,Z=bt(m,"Map"),Q=bt(Object,"create"),J=function(){function t(){}return function(e){if(!Lt(e))return{};if(K)return K(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function tt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1},et.prototype.set=function(t,e){var n=this.__data__,r=ut(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},nt.prototype.clear=function(){this.size=0,this.__data__={hash:new tt,map:new(Z||et),string:new tt}},nt.prototype.delete=function(t){var e=mt(this,t).delete(t);return this.size-=e?1:0,e},nt.prototype.get=function(t){return mt(this,t).get(t)},nt.prototype.has=function(t){return mt(this,t).has(t)},nt.prototype.set=function(t,e){var n=mt(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},rt.prototype.clear=function(){this.__data__=new et,this.size=0},rt.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},rt.prototype.get=function(t){return this.__data__.get(t)},rt.prototype.has=function(t){return this.__data__.has(t)},rt.prototype.set=function(t,e){var n=this.__data__;if(n instanceof et){var r=n.__data__;if(!Z||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(t,e),this.size=n.size,this};var ct,lt=function(t,e,n){for(var r=-1,o=Object(t),i=n(t),s=i.length;s--;){var u=i[ct?s:++r];if(!1===e(o[u],u,o))break}return t};function ft(t){return null==t?void 0===t?h:c:G&&G in Object(t)?function(t){var e=C.call(t,G),n=t[G];try{t[G]=void 0;var r=!0}catch(t){}var o=B.call(t);r&&(e?t[G]=n:delete t[G]);return o}(t):function(t){return B.call(t)}(t)}function ht(t){return Rt(t)&&ft(t)==i}function pt(t){return!(!Lt(t)||function(t){return!!I&&I in t}(t))&&(Tt(t)?q:p).test(function(t){if(null!=t){try{return R.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}function dt(t){if(!Lt(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=xt(t),n=[];for(var r in t)("constructor"!=r||!e&&C.call(t,r))&&n.push(r);return n}function vt(t,e,n,r,o){t!==e&<(e,(function(i,s){if(o||(o=new rt),Lt(i))!function(t,e,n,r,o,i,s){var u=Nt(t,n),a=Nt(e,n),c=s.get(a);if(c)return void it(t,n,c);var f=i?i(u,a,n+"",t,e,s):void 0,h=void 0===f;if(h){var p=At(a),d=!p&&St(a),v=!p&&!d&&Ct(a);f=a,p||d||v?At(u)?f=u:Rt(_=u)&&wt(_)?f=function(t,e){var n=-1,r=t.length;e||(e=Array(r));for(;++n-1&&t%1==0&&t0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(gt);function Ot(t,e){return t===e||t!=t&&e!=e}var kt=ht(function(){return arguments}())?ht:function(t){return Rt(t)&&C.call(t,"callee")&&!$.call(t,"callee")},At=Array.isArray;function wt(t){return null!=t&&jt(t.length)&&!Tt(t)}var St=V||function(){return!1};function Tt(t){if(!Lt(t))return!1;var e=ft(t);return e==u||e==a||e==s||e==f}function jt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=o}function Lt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Rt(t){return null!=t&&"object"==typeof t}var Ct=O?function(t){return function(e){return t(e)}}(O):function(t){return Rt(t)&&jt(t.length)&&!!v[ft(t)]};function It(t){return wt(t)?ot(t,!0):dt(t)}var Bt,Pt=(Bt=function(t,e,n){vt(t,e,n)},yt((function(t,e){var n=-1,r=e.length,o=r>1?e[r-1]:void 0,i=r>2?e[2]:void 0;for(o=Bt.length>3&&"function"==typeof o?(r--,o):void 0,i&&function(t,e,n){if(!Lt(n))return!1;var r=typeof e;return!!("number"==r?wt(n)&&_t(e,n.length):"string"==r&&e in n)&&Ot(n[e],t)}(e[0],e[1],i)&&(o=r<3?void 0:o,r=1),t=Object(t);++n1)return e.map((function(e){return t(e)}));var r=e[0];if("string"!=typeof r.blotName&&"string"!=typeof r.attrName)throw new i("Invalid definition");if("abstract"===r.blotName)throw new i("Cannot register abstract class");return l[r.blotName||r.attrName]=r,"string"==typeof r.keyName?u[r.keyName]=r:(null!=r.className&&(a[r.className]=r),null!=r.tagName&&(Array.isArray(r.tagName)?r.tagName=r.tagName.map((function(t){return t.toUpperCase()})):r.tagName=r.tagName.toUpperCase(),(Array.isArray(r.tagName)?r.tagName:[r.tagName]).forEach((function(t){null!=c[t]&&null!=r.className||(c[t]=r)})))),r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),o=function(){function t(t,e,n){void 0===n&&(n={}),this.attrName=t,this.keyName=e;var o=r.Scope.TYPE&r.Scope.ATTRIBUTE;null!=n.scope?this.scope=n.scope&r.Scope.LEVEL|o:this.scope=r.Scope.ATTRIBUTE,null!=n.whitelist&&(this.whitelist=n.whitelist)}return t.keys=function(t){return[].map.call(t.attributes,(function(t){return t.name}))},t.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.setAttribute(this.keyName,e),!0)},t.prototype.canAdd=function(t,e){return null!=r.query(t,r.Scope.BLOT&(this.scope|r.Scope.TYPE))&&(null==this.whitelist||("string"==typeof e?this.whitelist.indexOf(e.replace(/["']/g,""))>-1:this.whitelist.indexOf(e)>-1))},t.prototype.remove=function(t){t.removeAttribute(this.keyName)},t.prototype.value=function(t){var e=t.getAttribute(this.keyName);return this.canAdd(t,e)&&e?e:""},t}();e.default=o},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(11),s=n(5),u=n(0),a=function(t){function e(e){var n=t.call(this,e)||this;return n.build(),n}return o(e,t),e.prototype.appendChild=function(t){this.insertBefore(t)},e.prototype.attach=function(){t.prototype.attach.call(this),this.children.forEach((function(t){t.attach()}))},e.prototype.build=function(){var t=this;this.children=new i.default,[].slice.call(this.domNode.childNodes).reverse().forEach((function(e){try{var n=c(e);t.insertBefore(n,t.children.head||void 0)}catch(t){if(t instanceof u.ParchmentError)return;throw t}}))},e.prototype.deleteAt=function(t,e){if(0===t&&e===this.length())return this.remove();this.children.forEachAt(t,e,(function(t,e,n){t.deleteAt(e,n)}))},e.prototype.descendant=function(t,n){var r=this.children.find(n),o=r[0],i=r[1];return null==t.blotName&&t(o)||null!=t.blotName&&o instanceof t?[o,i]:o instanceof e?o.descendant(t,i):[null,-1]},e.prototype.descendants=function(t,n,r){void 0===n&&(n=0),void 0===r&&(r=Number.MAX_VALUE);var o=[],i=r;return this.children.forEachAt(n,r,(function(n,r,s){(null==t.blotName&&t(n)||null!=t.blotName&&n instanceof t)&&o.push(n),n instanceof e&&(o=o.concat(n.descendants(t,r,i))),i-=s})),o},e.prototype.detach=function(){this.children.forEach((function(t){t.detach()})),t.prototype.detach.call(this)},e.prototype.formatAt=function(t,e,n,r){this.children.forEachAt(t,e,(function(t,e,o){t.formatAt(e,o,n,r)}))},e.prototype.insertAt=function(t,e,n){var r=this.children.find(t),o=r[0],i=r[1];if(o)o.insertAt(i,e,n);else{var s=null==n?u.create("text",e):u.create(e,n);this.appendChild(s)}},e.prototype.insertBefore=function(t,e){if(null!=this.statics.allowedChildren&&!this.statics.allowedChildren.some((function(e){return t instanceof e})))throw new u.ParchmentError("Cannot insert "+t.statics.blotName+" into "+this.statics.blotName);t.insertInto(this,e)},e.prototype.length=function(){return this.children.reduce((function(t,e){return t+e.length()}),0)},e.prototype.moveChildren=function(t,e){this.children.forEach((function(n){t.insertBefore(n,e)}))},e.prototype.optimize=function(e){if(t.prototype.optimize.call(this,e),0===this.children.length)if(null!=this.statics.defaultChild){var n=u.create(this.statics.defaultChild);this.appendChild(n),n.optimize(e)}else this.remove()},e.prototype.path=function(t,n){void 0===n&&(n=!1);var r=this.children.find(t,n),o=r[0],i=r[1],s=[[this,t]];return o instanceof e?s.concat(o.path(i,n)):(null!=o&&s.push([o,i]),s)},e.prototype.removeChild=function(t){this.children.remove(t)},e.prototype.replace=function(n){n instanceof e&&n.moveChildren(this),t.prototype.replace.call(this,n)},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=this.clone();return this.parent.insertBefore(n,this.next),this.children.forEachAt(t,this.length(),(function(t,r,o){t=t.split(r,e),n.appendChild(t)})),n},e.prototype.unwrap=function(){this.moveChildren(this.parent,this.next),this.remove()},e.prototype.update=function(t,e){var n=this,r=[],o=[];t.forEach((function(t){t.target===n.domNode&&"childList"===t.type&&(r.push.apply(r,t.addedNodes),o.push.apply(o,t.removedNodes))})),o.forEach((function(t){if(!(null!=t.parentNode&&"IFRAME"!==t.tagName&&document.body.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)){var e=u.find(t);null!=e&&(null!=e.domNode.parentNode&&e.domNode.parentNode!==n.domNode||e.detach())}})),r.filter((function(t){return t.parentNode==n.domNode})).sort((function(t,e){return t===e?0:t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1})).forEach((function(t){var e=null;null!=t.nextSibling&&(e=u.find(t.nextSibling));var r=c(t);r.next==e&&null!=r.next||(null!=r.parent&&r.parent.removeChild(n),n.insertBefore(r,e||void 0))}))},e}(s.default);function c(t){var e=u.find(t);if(null==e)try{e=u.create(t)}catch(n){e=u.create(u.Scope.INLINE),[].slice.call(t.childNodes).forEach((function(t){e.domNode.appendChild(t)})),t.parentNode&&t.parentNode.replaceChild(e.domNode,t),e.attach()}return e}e.default=a},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),s=n(6),u=n(2),a=n(0),c=function(t){function e(e){var n=t.call(this,e)||this;return n.attributes=new s.default(n.domNode),n}return o(e,t),e.formats=function(t){return"string"==typeof this.tagName||(Array.isArray(this.tagName)?t.tagName.toLowerCase():void 0)},e.prototype.format=function(t,e){var n=a.query(t);n instanceof i.default?this.attributes.attribute(n,e):e&&(null==n||t===this.statics.blotName&&this.formats()[t]===e||this.replaceWith(t,e))},e.prototype.formats=function(){var t=this.attributes.values(),e=this.statics.formats(this.domNode);return null!=e&&(t[this.statics.blotName]=e),t},e.prototype.replaceWith=function(e,n){var r=t.prototype.replaceWith.call(this,e,n);return this.attributes.copy(r),r},e.prototype.update=function(e,n){var r=this;t.prototype.update.call(this,e,n),e.some((function(t){return t.target===r.domNode&&"attributes"===t.type}))&&this.attributes.build()},e.prototype.wrap=function(n,r){var o=t.prototype.wrap.call(this,n,r);return o instanceof e&&o.statics.scope===this.statics.scope&&this.attributes.move(o),o},e}(u.default);e.default=c},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),s=n(0),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.value=function(t){return!0},e.prototype.index=function(t,e){return this.domNode===t||this.domNode.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(e,1):-1},e.prototype.position=function(t,e){var n=[].indexOf.call(this.parent.domNode.childNodes,this.domNode);return t>0&&(n+=1),[this.parent.domNode,n]},e.prototype.value=function(){return(t={})[this.statics.blotName]=this.statics.value(this.domNode)||!0,t;var t},e.scope=s.Scope.INLINE_BLOT,e}(i.default);e.default=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),o=function(){function t(t){this.domNode=t,this.domNode[r.DATA_KEY]={blot:this}}return Object.defineProperty(t.prototype,"statics",{get:function(){return this.constructor},enumerable:!0,configurable:!0}),t.create=function(t){if(null==this.tagName)throw new r.ParchmentError("Blot definition missing tagName");var e;return Array.isArray(this.tagName)?("string"==typeof t&&(t=t.toUpperCase(),parseInt(t).toString()===t&&(t=parseInt(t))),e="number"==typeof t?document.createElement(this.tagName[t-1]):this.tagName.indexOf(t)>-1?document.createElement(t):document.createElement(this.tagName[0])):e=document.createElement(this.tagName),this.className&&e.classList.add(this.className),e},t.prototype.attach=function(){null!=this.parent&&(this.scroll=this.parent.scroll)},t.prototype.clone=function(){var t=this.domNode.cloneNode(!1);return r.create(t)},t.prototype.detach=function(){null!=this.parent&&this.parent.removeChild(this),delete this.domNode[r.DATA_KEY]},t.prototype.deleteAt=function(t,e){this.isolate(t,e).remove()},t.prototype.formatAt=function(t,e,n,o){var i=this.isolate(t,e);if(null!=r.query(n,r.Scope.BLOT)&&o)i.wrap(n,o);else if(null!=r.query(n,r.Scope.ATTRIBUTE)){var s=r.create(this.statics.scope);i.wrap(s),s.format(n,o)}},t.prototype.insertAt=function(t,e,n){var o=null==n?r.create("text",e):r.create(e,n),i=this.split(t);this.parent.insertBefore(o,i)},t.prototype.insertInto=function(t,e){void 0===e&&(e=null),null!=this.parent&&this.parent.children.remove(this);var n=null;t.children.insertBefore(this,e),null!=e&&(n=e.domNode),this.domNode.parentNode==t.domNode&&this.domNode.nextSibling==n||t.domNode.insertBefore(this.domNode,n),this.parent=t,this.attach()},t.prototype.isolate=function(t,e){var n=this.split(t);return n.split(e),n},t.prototype.length=function(){return 1},t.prototype.offset=function(t){return void 0===t&&(t=this.parent),null==this.parent||this==t?0:this.parent.children.offset(this)+this.parent.offset(t)},t.prototype.optimize=function(t){null!=this.domNode[r.DATA_KEY]&&delete this.domNode[r.DATA_KEY].mutations},t.prototype.remove=function(){null!=this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.detach()},t.prototype.replace=function(t){null!=t.parent&&(t.parent.insertBefore(this,t.next),t.remove())},t.prototype.replaceWith=function(t,e){var n="string"==typeof t?r.create(t,e):t;return n.replace(this),n},t.prototype.split=function(t,e){return 0===t?this:this.next},t.prototype.update=function(t,e){},t.prototype.wrap=function(t,e){var n="string"==typeof t?r.create(t,e):t;return null!=this.parent&&this.parent.insertBefore(n,this.next),n.appendChild(this),n},t.blotName="abstract",t}();e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=n(7),i=n(8),s=n(0),u=function(){function t(t){this.attributes={},this.domNode=t,this.build()}return t.prototype.attribute=function(t,e){e?t.add(this.domNode,e)&&(null!=t.value(this.domNode)?this.attributes[t.attrName]=t:delete this.attributes[t.attrName]):(t.remove(this.domNode),delete this.attributes[t.attrName])},t.prototype.build=function(){var t=this;this.attributes={};var e=r.default.keys(this.domNode),n=o.default.keys(this.domNode),u=i.default.keys(this.domNode);e.concat(n).concat(u).forEach((function(e){var n=s.query(e,s.Scope.ATTRIBUTE);n instanceof r.default&&(t.attributes[n.attrName]=n)}))},t.prototype.copy=function(t){var e=this;Object.keys(this.attributes).forEach((function(n){var r=e.attributes[n].value(e.domNode);t.format(n,r)}))},t.prototype.move=function(t){var e=this;this.copy(t),Object.keys(this.attributes).forEach((function(t){e.attributes[t].remove(e.domNode)})),this.attributes={}},t.prototype.values=function(){var t=this;return Object.keys(this.attributes).reduce((function(e,n){return e[n]=t.attributes[n].value(t.domNode),e}),{})},t}();e.default=u},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});function i(t,e){return(t.getAttribute("class")||"").split(/\s+/).filter((function(t){return 0===t.indexOf(e+"-")}))}Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("class")||"").split(/\s+/).map((function(t){return t.split("-").slice(0,-1).join("-")}))},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(this.remove(t),t.classList.add(this.keyName+"-"+e),!0)},e.prototype.remove=function(t){i(t,this.keyName).forEach((function(e){t.classList.remove(e)})),0===t.classList.length&&t.removeAttribute("class")},e.prototype.value=function(t){var e=(i(t,this.keyName)[0]||"").slice(this.keyName.length+1);return this.canAdd(t,e)?e:""},e}(n(1).default);e.default=s},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});function i(t){var e=t.split("-"),n=e.slice(1).map((function(t){return t[0].toUpperCase()+t.slice(1)})).join("");return e[0]+n}Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("style")||"").split(";").map((function(t){return t.split(":")[0].trim()}))},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.style[i(this.keyName)]=e,!0)},e.prototype.remove=function(t){t.style[i(this.keyName)]="",t.getAttribute("style")||t.removeAttribute("style")},e.prototype.value=function(t){var e=t.style[i(this.keyName)];return this.canAdd(t,e)?e:""},e}(n(1).default);e.default=s},function(t,e,n){t.exports=n(10)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(3),i=n(4),s=n(12),u=n(13),a=n(14),c=n(15),l=n(16),f=n(1),h=n(7),p=n(8),d=n(6),v=n(0),y={Scope:v.Scope,create:v.create,find:v.find,query:v.query,register:v.register,Container:r.default,Format:o.default,Leaf:i.default,Embed:c.default,Scroll:s.default,Block:a.default,Inline:u.default,Text:l.default,Attributor:{Attribute:f.default,Class:h.default,Style:p.default,Store:d.default}};e.default=y},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(){this.head=this.tail=null,this.length=0}return t.prototype.append=function(){for(var t=[],e=0;e1&&this.append.apply(this,t.slice(1))},t.prototype.contains=function(t){for(var e,n=this.iterator();e=n();)if(e===t)return!0;return!1},t.prototype.insertBefore=function(t,e){t&&(t.next=e,null!=e?(t.prev=e.prev,null!=e.prev&&(e.prev.next=t),e.prev=t,e===this.head&&(this.head=t)):null!=this.tail?(this.tail.next=t,t.prev=this.tail,this.tail=t):(t.prev=null,this.head=this.tail=t),this.length+=1)},t.prototype.offset=function(t){for(var e=0,n=this.head;null!=n;){if(n===t)return e;e+=n.length(),n=n.next}return-1},t.prototype.remove=function(t){this.contains(t)&&(null!=t.prev&&(t.prev.next=t.next),null!=t.next&&(t.next.prev=t.prev),t===this.head&&(this.head=t.next),t===this.tail&&(this.tail=t.prev),this.length-=1)},t.prototype.iterator=function(t){return void 0===t&&(t=this.head),function(){var e=t;return null!=t&&(t=t.next),e}},t.prototype.find=function(t,e){void 0===e&&(e=!1);for(var n,r=this.iterator();n=r();){var o=n.length();if(ts?n(r,t-s,Math.min(e,s+a-t)):n(r,0,Math.min(a,t+e-s)),s+=a}},t.prototype.map=function(t){return this.reduce((function(e,n){return e.push(t(n)),e}),[])},t.prototype.reduce=function(t,e){for(var n,r=this.iterator();n=r();)e=t(e,n);return e},t}();e.default=r},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),s=n(0),u={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},a=function(t){function e(e){var n=t.call(this,e)||this;return n.scroll=n,n.observer=new MutationObserver((function(t){n.update(t)})),n.observer.observe(n.domNode,u),n.attach(),n}return o(e,t),e.prototype.detach=function(){t.prototype.detach.call(this),this.observer.disconnect()},e.prototype.deleteAt=function(e,n){this.update(),0===e&&n===this.length()?this.children.forEach((function(t){t.remove()})):t.prototype.deleteAt.call(this,e,n)},e.prototype.formatAt=function(e,n,r,o){this.update(),t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){this.update(),t.prototype.insertAt.call(this,e,n,r)},e.prototype.optimize=function(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.prototype.optimize.call(this,n);for(var o=[].slice.call(this.observer.takeRecords());o.length>0;)e.push(o.pop());for(var u=function(t,e){void 0===e&&(e=!0),null!=t&&t!==r&&null!=t.domNode.parentNode&&(null==t.domNode[s.DATA_KEY].mutations&&(t.domNode[s.DATA_KEY].mutations=[]),e&&u(t.parent))},a=function(t){null!=t.domNode[s.DATA_KEY]&&null!=t.domNode[s.DATA_KEY].mutations&&(t instanceof i.default&&t.children.forEach(a),t.optimize(n))},c=e,l=0;c.length>0;l+=1){if(l>=100)throw new Error("[Parchment] Maximum optimize iterations reached");for(c.forEach((function(t){var e=s.find(t.target,!0);null!=e&&(e.domNode===t.target&&("childList"===t.type?(u(s.find(t.previousSibling,!1)),[].forEach.call(t.addedNodes,(function(t){var e=s.find(t,!1);u(e,!1),e instanceof i.default&&e.children.forEach((function(t){u(t,!1)}))}))):"attributes"===t.type&&u(e.prev)),u(e))})),this.children.forEach(a),o=(c=[].slice.call(this.observer.takeRecords())).slice();o.length>0;)e.push(o.pop())}},e.prototype.update=function(e,n){var r=this;void 0===n&&(n={}),(e=e||this.observer.takeRecords()).map((function(t){var e=s.find(t.target,!0);return null==e?null:null==e.domNode[s.DATA_KEY].mutations?(e.domNode[s.DATA_KEY].mutations=[t],e):(e.domNode[s.DATA_KEY].mutations.push(t),null)})).forEach((function(t){null!=t&&t!==r&&null!=t.domNode[s.DATA_KEY]&&t.update(t.domNode[s.DATA_KEY].mutations||[],n)})),null!=this.domNode[s.DATA_KEY].mutations&&t.prototype.update.call(this,this.domNode[s.DATA_KEY].mutations,n),this.optimize(e,n)},e.blotName="scroll",e.defaultChild="block",e.scope=s.Scope.BLOCK_BLOT,e.tagName="DIV",e}(i.default);e.default=a},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),s=n(0),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.formats=function(n){if(n.tagName!==e.tagName)return t.formats.call(this,n)},e.prototype.format=function(n,r){var o=this;n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):(this.children.forEach((function(t){t instanceof i.default||(t=t.wrap(e.blotName,!0)),o.attributes.copy(t)})),this.unwrap())},e.prototype.formatAt=function(e,n,r,o){null!=this.formats()[r]||s.query(r,s.Scope.ATTRIBUTE)?this.isolate(e,n).format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n);var r=this.formats();if(0===Object.keys(r).length)return this.unwrap();var o=this.next;o instanceof e&&o.prev===this&&function(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var n in t)if(t[n]!==e[n])return!1;return!0}(r,o.formats())&&(o.moveChildren(this),o.remove())},e.blotName="inline",e.scope=s.Scope.INLINE_BLOT,e.tagName="SPAN",e}(i.default);e.default=u},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),s=n(0),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.formats=function(n){var r=s.query(e.blotName).tagName;if(n.tagName!==r)return t.formats.call(this,n)},e.prototype.format=function(n,r){null!=s.query(n,s.Scope.BLOCK)&&(n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):this.replaceWith(e.blotName))},e.prototype.formatAt=function(e,n,r,o){null!=s.query(r,s.Scope.BLOCK)?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){if(null==r||null!=s.query(n,s.Scope.INLINE))t.prototype.insertAt.call(this,e,n,r);else{var o=this.split(e),i=s.create(n,r);o.parent.insertBefore(i,o)}},e.prototype.update=function(e,n){navigator.userAgent.match(/Trident/)?this.build():t.prototype.update.call(this,e,n)},e.blotName="block",e.scope=s.Scope.BLOCK_BLOT,e.tagName="P",e}(i.default);e.default=u},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.formats=function(t){},e.prototype.format=function(e,n){t.prototype.formatAt.call(this,0,this.length(),e,n)},e.prototype.formatAt=function(e,n,r,o){0===e&&n===this.length()?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.formats=function(){return this.statics.formats(this.domNode)},e}(n(4).default);e.default=i},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(4),s=n(0),u=function(t){function e(e){var n=t.call(this,e)||this;return n.text=n.statics.value(n.domNode),n}return o(e,t),e.create=function(t){return document.createTextNode(t)},e.value=function(t){var e=t.data;return e.normalize&&(e=e.normalize()),e},e.prototype.deleteAt=function(t,e){this.domNode.data=this.text=this.text.slice(0,t)+this.text.slice(t+e)},e.prototype.index=function(t,e){return this.domNode===t?e:-1},e.prototype.insertAt=function(e,n,r){null==r?(this.text=this.text.slice(0,e)+n+this.text.slice(e),this.domNode.data=this.text):t.prototype.insertAt.call(this,e,n,r)},e.prototype.length=function(){return this.text.length},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n),this.text=this.statics.value(this.domNode),0===this.text.length?this.remove():this.next instanceof e&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())},e.prototype.position=function(t,e){return void 0===e&&(e=!1),[this.domNode,t]},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=s.create(this.domNode.splitText(t));return this.parent.insertBefore(n,this.next),this.text=this.statics.value(this.domNode),n},e.prototype.update=function(t,e){var n=this;t.some((function(t){return"characterData"===t.type&&t.target===n.domNode}))&&(this.text=this.statics.value(this.domNode))},e.prototype.value=function(){return this.text},e.blotName="text",e.scope=s.Scope.INLINE_BLOT,e}(i.default);e.default=u}])},t.exports=e()},6204:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o,i=r(n(9739)),s=r(n(6216));!function(t){t.compose=function(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var r=i.default(e);for(var o in n||(r=Object.keys(r).reduce((function(t,e){return null!=r[e]&&(t[e]=r[e]),t}),{})),t)void 0!==t[o]&&void 0===e[o]&&(r[o]=t[o]);return Object.keys(r).length>0?r:void 0},t.diff=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var n=Object.keys(t).concat(Object.keys(e)).reduce((function(n,r){return s.default(t[r],e[r])||(n[r]=void 0===e[r]?null:e[r]),n}),{});return Object.keys(n).length>0?n:void 0},t.invert=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),t=t||{};var n=Object.keys(e).reduce((function(n,r){return e[r]!==t[r]&&void 0!==t[r]&&(n[r]=e[r]),n}),{});return Object.keys(t).reduce((function(n,r){return t[r]!==e[r]&&void 0===e[r]&&(n[r]=null),n}),n)},t.transform=function(t,e,n){if(void 0===n&&(n=!1),"object"!=typeof t)return e;if("object"==typeof e){if(!n)return e;var r=Object.keys(e).reduce((function(n,r){return void 0===t[r]&&(n[r]=e[r]),n}),{});return Object.keys(r).length>0?r:void 0}}}(o||(o={})),e.default=o},8802:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},o=r(n(7284)),i=r(n(9739)),s=r(n(6216)),u=r(n(6204)),a=r(n(2933)),c=String.fromCharCode(0),l=function(){function t(t){Array.isArray(t)?this.ops=t:null!=t&&Array.isArray(t.ops)?this.ops=t.ops:this.ops=[]}return t.prototype.insert=function(t,e){var n={};return"string"==typeof t&&0===t.length?this:(n.insert=t,null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n))},t.prototype.delete=function(t){return t<=0?this:this.push({delete:t})},t.prototype.retain=function(t,e){if(t<=0)return this;var n={retain:t};return null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n)},t.prototype.push=function(t){var e=this.ops.length,n=this.ops[e-1];if(t=i.default(t),"object"==typeof n){if("number"==typeof t.delete&&"number"==typeof n.delete)return this.ops[e-1]={delete:n.delete+t.delete},this;if("number"==typeof n.delete&&null!=t.insert&&(e-=1,"object"!=typeof(n=this.ops[e-1])))return this.ops.unshift(t),this;if(s.default(t.attributes,n.attributes)){if("string"==typeof t.insert&&"string"==typeof n.insert)return this.ops[e-1]={insert:n.insert+t.insert},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this;if("number"==typeof t.retain&&"number"==typeof n.retain)return this.ops[e-1]={retain:n.retain+t.retain},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this}}return e===this.ops.length?this.ops.push(t):this.ops.splice(e,0,t),this},t.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},t.prototype.filter=function(t){return this.ops.filter(t)},t.prototype.forEach=function(t){this.ops.forEach(t)},t.prototype.map=function(t){return this.ops.map(t)},t.prototype.partition=function(t){var e=[],n=[];return this.forEach((function(r){(t(r)?e:n).push(r)})),[e,n]},t.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},t.prototype.changeLength=function(){return this.reduce((function(t,e){return e.insert?t+a.default.length(e):e.delete?t-e.delete:t}),0)},t.prototype.length=function(){return this.reduce((function(t,e){return t+a.default.length(e)}),0)},t.prototype.slice=function(e,n){void 0===e&&(e=0),void 0===n&&(n=1/0);for(var r=[],o=a.default.iterator(this.ops),i=0;i0&&r.next(i.retain-c)}for(var l=new t(o);n.hasNext()||r.hasNext();)if("insert"===r.peekType())l.push(r.next());else if("delete"===n.peekType())l.push(n.next());else{var f=Math.min(n.peekLength(),r.peekLength()),h=n.next(f),p=r.next(f);if("number"==typeof p.retain){var d={};"number"==typeof h.retain?d.retain=f:d.insert=h.insert;var v=u.default.compose(h.attributes,p.attributes,"number"==typeof h.retain);if(v&&(d.attributes=v),l.push(d),!r.hasNext()&&s.default(l.ops[l.ops.length-1],d)){var y=new t(n.rest());return l.concat(y).chop()}}else"number"==typeof p.delete&&"number"==typeof h.retain&&l.push(p)}return l.chop()},t.prototype.concat=function(e){var n=new t(this.ops.slice());return e.ops.length>0&&(n.push(e.ops[0]),n.ops=n.ops.concat(e.ops.slice(1))),n},t.prototype.diff=function(e,n){if(this.ops===e.ops)return new t;var r=[this,e].map((function(t){return t.map((function(n){if(null!=n.insert)return"string"==typeof n.insert?n.insert:c;throw new Error("diff() called "+(t===e?"on":"with")+" non-document")})).join("")})),i=new t,l=o.default(r[0],r[1],n),f=a.default.iterator(this.ops),h=a.default.iterator(e.ops);return l.forEach((function(t){for(var e=t[1].length;e>0;){var n=0;switch(t[0]){case o.default.INSERT:n=Math.min(h.peekLength(),e),i.push(h.next(n));break;case o.default.DELETE:n=Math.min(e,f.peekLength()),f.next(n),i.delete(n);break;case o.default.EQUAL:n=Math.min(f.peekLength(),h.peekLength(),e);var r=f.next(n),a=h.next(n);s.default(r.insert,a.insert)?i.retain(n,u.default.diff(r.attributes,a.attributes)):i.push(a).delete(n)}e-=n}})),i.chop()},t.prototype.eachLine=function(e,n){void 0===n&&(n="\n");for(var r=a.default.iterator(this.ops),o=new t,i=0;r.hasNext();){if("insert"!==r.peekType())return;var s=r.peek(),u=a.default.length(s)-r.peekLength(),c="string"==typeof s.insert?s.insert.indexOf(n,u)-u:-1;if(c<0)o.push(r.next());else if(c>0)o.push(r.next(c));else{if(!1===e(o,r.next(1).attributes||{},i))return;i+=1,o=new t}}o.length()>0&&e(o,{},i)},t.prototype.invert=function(e){var n=new t;return this.reduce((function(t,r){if(r.insert)n.delete(a.default.length(r));else{if(r.retain&&null==r.attributes)return n.retain(r.retain),t+r.retain;if(r.delete||r.retain&&r.attributes){var o=r.delete||r.retain;return e.slice(t,t+o).forEach((function(t){r.delete?n.push(t):r.retain&&r.attributes&&n.retain(a.default.length(t),u.default.invert(r.attributes,t.attributes))})),t+o}}return t}),0),n.chop()},t.prototype.transform=function(e,n){if(void 0===n&&(n=!1),n=!!n,"number"==typeof e)return this.transformPosition(e,n);for(var r=e,o=a.default.iterator(this.ops),i=a.default.iterator(r.ops),s=new t;o.hasNext()||i.hasNext();)if("insert"!==o.peekType()||!n&&"insert"===i.peekType())if("insert"===i.peekType())s.push(i.next());else{var c=Math.min(o.peekLength(),i.peekLength()),l=o.next(c),f=i.next(c);if(l.delete)continue;f.delete?s.push(f):s.retain(c,u.default.transform(l.attributes,f.attributes,n))}else s.retain(a.default.length(o.next()));return s.chop()},t.prototype.transformPosition=function(t,e){void 0===e&&(e=!1),e=!!e;for(var n=a.default.iterator(this.ops),r=0;n.hasNext()&&r<=t;){var o=n.peekLength(),i=n.peekType();n.next(),"delete"!==i?("insert"===i&&(r=r-n?(t=r-n,this.index+=1,this.offset=0):this.offset+=t,"number"==typeof e.delete)return{delete:t};var i={};return e.attributes&&(i.attributes=e.attributes),"number"==typeof e.retain?i.retain=t:"string"==typeof e.insert?i.insert=e.insert.substr(n,t):i.insert=e.insert,i}return{retain:1/0}},t.prototype.peek=function(){return this.ops[this.index]},t.prototype.peekLength=function(){return this.ops[this.index]?o.default.length(this.ops[this.index])-this.offset:1/0},t.prototype.peekType=function(){return this.ops[this.index]?"number"==typeof this.ops[this.index].delete?"delete":"number"==typeof this.ops[this.index].retain?"retain":"insert":"retain"},t.prototype.rest=function(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(this.index);var t=this.offset,e=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=t,this.index=e,[n].concat(r)}return[]},t}();e.default=i},2933:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o,i=r(n(6908));!function(t){t.iterator=function(t){return new i.default(t)},t.length=function(t){return"number"==typeof t.delete?t.delete:"number"==typeof t.retain?t.retain:"string"==typeof t.insert?t.insert.length:1}}(o||(o={})),e.default=o},1078:function(t,e,n){"use strict";var r=n(8681),o=n(8819),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a function")}},7248:function(t,e,n){"use strict";var r=n(7225),o=n(8819),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a constructor")}},7222:function(t,e,n){"use strict";var r=n(2657),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i("Can't set "+o(t)+" as a prototype")}},1825:function(t,e,n){"use strict";var r=n(8663),o=n(4860),i=n(2333).f,s=r("unscopables"),u=Array.prototype;void 0===u[s]&&i(u,s,{configurable:!0,value:o(null)}),t.exports=function(t){u[s][t]=!0}},217:function(t,e,n){"use strict";var r=n(9387).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},2091:function(t,e,n){"use strict";var r=n(3598),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not an object")}},8231:function(t,e,n){"use strict";var r=n(7033).forEach,o=n(1994)("forEach");t.exports=o?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},789:function(t,e,n){"use strict";var r=n(5137),o=n(4918),i=n(4730),s=function(t){return function(e,n,s){var u=r(e),a=i(u);if(0===a)return!t&&-1;var c,l=o(s,a);if(t&&n!=n){for(;a>l;)if((c=u[l++])!=c)return!0}else for(;a>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},7033:function(t,e,n){"use strict";var r=n(9876),o=n(1212),i=n(2203),s=n(3297),u=n(4730),a=n(3225),c=o([].push),l=function(t){var e=1===t,n=2===t,o=3===t,l=4===t,f=6===t,h=7===t,p=5===t||f;return function(d,v,y,g){for(var m,b,_=s(d),x=i(_),N=u(x),E=r(v,y),O=0,k=g||a,A=e?k(d,N):n||h?k(d,0):void 0;N>O;O++)if((p||O in x)&&(b=E(m=x[O],O,_),t))if(e)A[O]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return O;case 2:c(A,m)}else switch(t){case 4:return!1;case 7:c(A,m)}return f?-1:o||l?l:A}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},6025:function(t,e,n){"use strict";var r=n(299),o=n(8663),i=n(3160),s=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[s]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1994:function(t,e,n){"use strict";var r=n(299);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},7211:function(t,e,n){"use strict";var r=n(5144),o=n(8468),i=TypeError,s=Object.getOwnPropertyDescriptor,u=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=u?function(t,e){if(o(t)&&!s(t,"length").writable)throw new i("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},2740:function(t,e,n){"use strict";var r=n(1212);t.exports=r([].slice)},5701:function(t,e,n){"use strict";var r=n(8468),o=n(7225),i=n(3598),s=n(8663)("species"),u=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===u||r(e.prototype))||i(e)&&null===(e=e[s]))&&(e=void 0)),void 0===e?u:e}},3225:function(t,e,n){"use strict";var r=n(5701);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},8420:function(t,e,n){"use strict";var r=n(1212),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},9391:function(t,e,n){"use strict";var r=n(7920),o=n(8681),i=n(8420),s=n(8663)("toStringTag"),u=Object,a="Arguments"===i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=u(t),s))?n:a?i(e):"Object"===(r=i(e))&&o(e.callee)?"Arguments":r}},8032:function(t,e,n){"use strict";var r=n(6341),o=n(7523),i=n(423),s=n(2333);t.exports=function(t,e,n){for(var u=o(e),a=s.f,c=i.f,l=0;l9007199254740991)throw e("Maximum allowed index exceeded");return t}},7908:function(t){"use strict";t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},5500:function(t,e,n){"use strict";var r=n(2283)("span").classList,o=r&&r.constructor&&r.constructor.prototype;t.exports=o===Object.prototype?void 0:o},6372:function(t){"use strict";t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},3160:function(t,e,n){"use strict";var r,o,i=n(1983),s=n(6372),u=i.process,a=i.Deno,c=u&&u.versions||a&&a.version,l=c&&c.v8;l&&(o=(r=l.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},2555:function(t){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},3762:function(t,e,n){"use strict";var r=n(1983),o=n(423).f,i=n(5719),s=n(4092),u=n(7309),a=n(8032),c=n(5888);t.exports=function(t,e){var n,l,f,h,p,d=t.target,v=t.global,y=t.stat;if(n=v?r:y?r[d]||u(d,{}):r[d]&&r[d].prototype)for(l in e){if(h=e[l],f=t.dontCallGetSet?(p=o(n,l))&&p.value:n[l],!c(v?l:d+(y?".":"#")+l,t.forced)&&void 0!==f){if(typeof h==typeof f)continue;a(h,f)}(t.sham||f&&f.sham)&&i(h,"sham",!0),s(n,l,h,t)}}},299:function(t){"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},9512:function(t,e,n){"use strict";n(2067);var r=n(8993),o=n(4092),i=n(4583),s=n(299),u=n(8663),a=n(5719),c=u("species"),l=RegExp.prototype;t.exports=function(t,e,n,f){var h=u(t),p=!s((function(){var e={};return e[h]=function(){return 7},7!==""[t](e)})),d=p&&!s((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e}));if(!p||!d||n){var v=/./[h],y=e(h,""[t],(function(t,e,n,o,s){var u=e.exec;return u===i||u===l.exec?p&&!s?{done:!0,value:r(v,e,n,o)}:{done:!0,value:r(t,n,e,o)}:{done:!1}}));o(String.prototype,t,y[0]),o(l,h,y[1])}f&&a(l[h],"sham",!0)}},9181:function(t,e,n){"use strict";var r=n(1676),o=Function.prototype,i=o.apply,s=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})},9876:function(t,e,n){"use strict";var r=n(5336),o=n(1078),i=n(1676),s=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?s(t,e):function(){return t.apply(e,arguments)}}},1676:function(t,e,n){"use strict";var r=n(299);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},3962:function(t,e,n){"use strict";var r=n(1212),o=n(1078),i=n(3598),s=n(6341),u=n(2740),a=n(1676),c=Function,l=r([].concat),f=r([].join),h={};t.exports=a?c.bind:function(t){var e=o(this),n=e.prototype,r=u(arguments,1),a=function(){var n=l(r,u(arguments));return this instanceof a?function(t,e,n){if(!s(h,e)){for(var r=[],o=0;o]*>)/g,l=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,f,h){var p=n+t.length,d=r.length,v=l;return void 0!==f&&(f=o(f),v=c),u(h,v,(function(o,u){var c;switch(s(u,0)){case"$":return"$";case"&":return t;case"`":return a(e,0,n);case"'":return a(e,p);case"<":c=f[a(u,1,-1)];break;default:var l=+u;if(0===l)return o;if(l>d){var h=i(l/10);return 0===h?o:h<=d?void 0===r[h-1]?s(u,1):r[h-1]+s(u,1):o}c=r[l-1]}return void 0===c?"":c}))}},1983:function(t,e,n){"use strict";var r=function(t){return t&&t.Math===Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},6341:function(t,e,n){"use strict";var r=n(1212),o=n(3297),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},2993:function(t){"use strict";t.exports={}},4329:function(t,e,n){"use strict";var r=n(7139);t.exports=r("document","documentElement")},7657:function(t,e,n){"use strict";var r=n(5144),o=n(299),i=n(2283);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},2203:function(t,e,n){"use strict";var r=n(1212),o=n(299),i=n(8420),s=Object,u=r("".split);t.exports=o((function(){return!s("z").propertyIsEnumerable(0)}))?function(t){return"String"===i(t)?u(t,""):s(t)}:s},6795:function(t,e,n){"use strict";var r=n(8681),o=n(3598),i=n(443);t.exports=function(t,e,n){var s,u;return i&&r(s=e.constructor)&&s!==n&&o(u=s.prototype)&&u!==n.prototype&&i(t,u),t}},4550:function(t,e,n){"use strict";var r=n(1212),o=n(8681),i=n(3793),s=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return s(t)}),t.exports=i.inspectSource},6921:function(t,e,n){"use strict";var r,o,i,s=n(1194),u=n(1983),a=n(3598),c=n(5719),l=n(6341),f=n(3793),h=n(7099),p=n(2993),d="Object already initialized",v=u.TypeError,y=u.WeakMap;if(s||f.state){var g=f.state||(f.state=new y);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw new v(d);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var m=h("state");p[m]=!0,r=function(t,e){if(l(t,m))throw new v(d);return e.facade=t,c(t,m,e),e},o=function(t){return l(t,m)?t[m]:{}},i=function(t){return l(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!a(e)||(n=o(e)).type!==t)throw new v("Incompatible receiver, "+t+" required");return n}}}},8468:function(t,e,n){"use strict";var r=n(8420);t.exports=Array.isArray||function(t){return"Array"===r(t)}},8681:function(t){"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},7225:function(t,e,n){"use strict";var r=n(1212),o=n(299),i=n(8681),s=n(9391),u=n(7139),a=n(4550),c=function(){},l=u("Reflect","construct"),f=/^\s*(?:class|function)\b/,h=r(f.exec),p=!f.test(c),d=function(t){if(!i(t))return!1;try{return l(c,[],t),!0}catch(t){return!1}},v=function(t){if(!i(t))return!1;switch(s(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!h(f,a(t))}catch(t){return!0}};v.sham=!0,t.exports=!l||o((function(){var t;return d(d.call)||!d(Object)||!d((function(){t=!0}))||t}))?v:d},5888:function(t,e,n){"use strict";var r=n(299),o=n(8681),i=/#|\.prototype\./,s=function(t,e){var n=a[u(t)];return n===l||n!==c&&(o(e)?r(e):!!e)},u=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=s.data={},c=s.NATIVE="N",l=s.POLYFILL="P";t.exports=s},6297:function(t){"use strict";t.exports=function(t){return null==t}},3598:function(t,e,n){"use strict";var r=n(8681);t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},2657:function(t,e,n){"use strict";var r=n(3598);t.exports=function(t){return r(t)||null===t}},7695:function(t){"use strict";t.exports=!1},2672:function(t,e,n){"use strict";var r=n(3598),o=n(8420),i=n(8663)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"===o(t))}},5985:function(t,e,n){"use strict";var r=n(7139),o=n(8681),i=n(9877),s=n(8300),u=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,u(t))}},1966:function(t,e,n){"use strict";var r=n(8469).IteratorPrototype,o=n(4860),i=n(8264),s=n(667),u=n(5849),a=function(){return this};t.exports=function(t,e,n,c){var l=e+" Iterator";return t.prototype=o(r,{next:i(+!c,n)}),s(t,l,!1,!0),u[l]=a,t}},540:function(t,e,n){"use strict";var r=n(3762),o=n(8993),i=n(7695),s=n(1997),u=n(8681),a=n(1966),c=n(8607),l=n(443),f=n(667),h=n(5719),p=n(4092),d=n(8663),v=n(5849),y=n(8469),g=s.PROPER,m=s.CONFIGURABLE,b=y.IteratorPrototype,_=y.BUGGY_SAFARI_ITERATORS,x=d("iterator"),N="keys",E="values",O="entries",k=function(){return this};t.exports=function(t,e,n,s,d,y,A){a(n,e,s);var w,S,T,j=function(t){if(t===d&&B)return B;if(!_&&t&&t in C)return C[t];switch(t){case N:case E:case O:return function(){return new n(this,t)}}return function(){return new n(this)}},L=e+" Iterator",R=!1,C=t.prototype,I=C[x]||C["@@iterator"]||d&&C[d],B=!_&&I||j(d),P="Array"===e&&C.entries||I;if(P&&(w=c(P.call(new t)))!==Object.prototype&&w.next&&(i||c(w)===b||(l?l(w,b):u(w[x])||p(w,x,k)),f(w,L,!0,!0),i&&(v[L]=k)),g&&d===E&&I&&I.name!==E&&(!i&&m?h(C,"name",E):(R=!0,B=function(){return o(I,this)})),d)if(S={values:j(E),keys:y?B:j(N),entries:j(O)},A)for(T in S)(_||R||!(T in C))&&p(C,T,S[T]);else r({target:e,proto:!0,forced:_||R},S);return i&&!A||C[x]===B||p(C,x,B,{name:d}),v[e]=B,S}},8469:function(t,e,n){"use strict";var r,o,i,s=n(299),u=n(8681),a=n(3598),c=n(4860),l=n(8607),f=n(4092),h=n(8663),p=n(7695),d=h("iterator"),v=!1;[].keys&&("next"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!a(r)||s((function(){var t={};return r[d].call(t)!==t}))?r={}:p&&(r=c(r)),u(r[d])||f(r,d,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},5849:function(t){"use strict";t.exports={}},4730:function(t,e,n){"use strict";var r=n(8266);t.exports=function(t){return r(t.length)}},3383:function(t,e,n){"use strict";var r=n(1212),o=n(299),i=n(8681),s=n(6341),u=n(5144),a=n(1997).CONFIGURABLE,c=n(4550),l=n(6921),f=l.enforce,h=l.get,p=String,d=Object.defineProperty,v=r("".slice),y=r("".replace),g=r([].join),m=u&&!o((function(){return 8!==d((function(){}),"length",{value:8}).length})),b=String(String).split("String"),_=t.exports=function(t,e,n){"Symbol("===v(p(e),0,7)&&(e="["+y(p(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!s(t,"name")||a&&t.name!==e)&&(u?d(t,"name",{value:e,configurable:!0}):t.name=e),m&&n&&s(n,"arity")&&t.length!==n.arity&&d(t,"length",{value:n.arity});try{n&&s(n,"constructor")&&n.constructor?u&&d(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=f(t);return s(r,"source")||(r.source=g(b,"string"==typeof e?e:"")),t};Function.prototype.toString=_((function(){return i(this)&&h(this).source||c(this)}),"toString")},2537:function(t){"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},627:function(t,e,n){"use strict";var r=n(2672),o=TypeError;t.exports=function(t){if(r(t))throw new o("The method doesn't accept regular expressions");return t}},4860:function(t,e,n){"use strict";var r,o=n(2091),i=n(2197),s=n(2555),u=n(2993),a=n(4329),c=n(2283),l=n(7099),f="prototype",h="script",p=l("IE_PROTO"),d=function(){},v=function(t){return"<"+h+">"+t+""},y=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;g="undefined"!=typeof document?document.domain&&r?y(r):(e=c("iframe"),n="java"+h+":",e.style.display="none",a.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):y(r);for(var o=s.length;o--;)delete g[f][s[o]];return g()};u[p]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(d[f]=o(t),n=new d,d[f]=null,n[p]=t):n=g(),void 0===e?n:i.f(n,e)}},2197:function(t,e,n){"use strict";var r=n(5144),o=n(2538),i=n(2333),s=n(2091),u=n(5137),a=n(9428);e.f=r&&!o?Object.defineProperties:function(t,e){s(t);for(var n,r=u(e),o=a(e),c=o.length,l=0;c>l;)i.f(t,n=o[l++],r[n]);return t}},2333:function(t,e,n){"use strict";var r=n(5144),o=n(7657),i=n(2538),s=n(2091),u=n(1413),a=TypeError,c=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f="enumerable",h="configurable",p="writable";e.f=r?i?function(t,e,n){if(s(t),e=u(e),s(n),"function"==typeof t&&"prototype"===e&&"value"in n&&p in n&&!n[p]){var r=l(t,e);r&&r[p]&&(t[e]=n.value,n={configurable:h in n?n[h]:r[h],enumerable:f in n?n[f]:r[f],writable:!1})}return c(t,e,n)}:c:function(t,e,n){if(s(t),e=u(e),s(n),o)try{return c(t,e,n)}catch(t){}if("get"in n||"set"in n)throw new a("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},423:function(t,e,n){"use strict";var r=n(5144),o=n(8993),i=n(4961),s=n(8264),u=n(5137),a=n(1413),c=n(6341),l=n(7657),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=u(t),e=a(e),l)try{return f(t,e)}catch(t){}if(c(t,e))return s(!o(i.f,t,e),t[e])}},1926:function(t,e,n){"use strict";var r=n(8420),o=n(5137),i=n(5412).f,s=n(2740),u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"Window"===r(t)?function(t){try{return i(t)}catch(t){return s(u)}}(t):i(o(t))}},5412:function(t,e,n){"use strict";var r=n(3120),o=n(2555).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},4073:function(t,e){"use strict";e.f=Object.getOwnPropertySymbols},8607:function(t,e,n){"use strict";var r=n(6341),o=n(8681),i=n(3297),s=n(7099),u=n(5071),a=s("IE_PROTO"),c=Object,l=c.prototype;t.exports=u?c.getPrototypeOf:function(t){var e=i(t);if(r(e,a))return e[a];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof c?l:null}},9877:function(t,e,n){"use strict";var r=n(1212);t.exports=r({}.isPrototypeOf)},3120:function(t,e,n){"use strict";var r=n(1212),o=n(6341),i=n(5137),s=n(789).indexOf,u=n(2993),a=r([].push);t.exports=function(t,e){var n,r=i(t),c=0,l=[];for(n in r)!o(u,n)&&o(r,n)&&a(l,n);for(;e.length>c;)o(r,n=e[c++])&&(~s(l,n)||a(l,n));return l}},9428:function(t,e,n){"use strict";var r=n(3120),o=n(2555);t.exports=Object.keys||function(t){return r(t,o)}},4961:function(t,e){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},443:function(t,e,n){"use strict";var r=n(4494),o=n(3598),i=n(5034),s=n(7222);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return i(n),s(r),o(n)?(e?t(n,r):n.__proto__=r,n):n}}():void 0)},3183:function(t,e,n){"use strict";var r=n(7920),o=n(9391);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},290:function(t,e,n){"use strict";var r=n(8993),o=n(8681),i=n(3598),s=TypeError;t.exports=function(t,e){var n,u;if("string"===e&&o(n=t.toString)&&!i(u=r(n,t)))return u;if(o(n=t.valueOf)&&!i(u=r(n,t)))return u;if("string"!==e&&o(n=t.toString)&&!i(u=r(n,t)))return u;throw new s("Can't convert object to primitive value")}},7523:function(t,e,n){"use strict";var r=n(7139),o=n(1212),i=n(5412),s=n(4073),u=n(2091),a=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(u(t)),n=s.f;return n?a(e,n(t)):e}},8203:function(t,e,n){"use strict";var r=n(1983);t.exports=r},7622:function(t,e,n){"use strict";var r=n(8993),o=n(2091),i=n(8681),s=n(8420),u=n(4583),a=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var c=r(n,t,e);return null!==c&&o(c),c}if("RegExp"===s(t))return r(u,t,e);throw new a("RegExp#exec called on incompatible receiver")}},4583:function(t,e,n){"use strict";var r,o,i=n(8993),s=n(1212),u=n(9723),a=n(4055),c=n(3697),l=n(997),f=n(4860),h=n(6921).get,p=n(9591),d=n(2242),v=l("native-string-replace",String.prototype.replace),y=RegExp.prototype.exec,g=y,m=s("".charAt),b=s("".indexOf),_=s("".replace),x=s("".slice),N=(o=/b*/g,i(y,r=/a/,"a"),i(y,o,"a"),0!==r.lastIndex||0!==o.lastIndex),E=c.BROKEN_CARET,O=void 0!==/()??/.exec("")[1];(N||O||E||p||d)&&(g=function(t){var e,n,r,o,s,c,l,p=this,d=h(p),k=u(t),A=d.raw;if(A)return A.lastIndex=p.lastIndex,e=i(g,A,k),p.lastIndex=A.lastIndex,e;var w=d.groups,S=E&&p.sticky,T=i(a,p),j=p.source,L=0,R=k;if(S&&(T=_(T,"y",""),-1===b(T,"g")&&(T+="g"),R=x(k,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==m(k,p.lastIndex-1))&&(j="(?: "+j+")",R=" "+R,L++),n=new RegExp("^(?:"+j+")",T)),O&&(n=new RegExp("^"+j+"$(?!\\s)",T)),N&&(r=p.lastIndex),o=i(y,S?n:p,R),S?o?(o.input=x(o.input,L),o[0]=x(o[0],L),o.index=p.lastIndex,p.lastIndex+=o[0].length):p.lastIndex=0:N&&o&&(p.lastIndex=p.global?o.index+o[0].length:r),O&&o&&o.length>1&&i(v,o[0],n,(function(){for(s=1;sb)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},5034:function(t,e,n){"use strict";var r=n(6297),o=TypeError;t.exports=function(t){if(r(t))throw new o("Can't call method on "+t);return t}},667:function(t,e,n){"use strict";var r=n(2333).f,o=n(6341),i=n(8663)("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,i)&&r(t,i,{configurable:!0,value:e})}},7099:function(t,e,n){"use strict";var r=n(997),o=n(6044),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},3793:function(t,e,n){"use strict";var r=n(7695),o=n(1983),i=n(7309),s="__core-js_shared__",u=t.exports=o[s]||i(s,{});(u.versions||(u.versions=[])).push({version:"3.37.1",mode:r?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},997:function(t,e,n){"use strict";var r=n(3793);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},3209:function(t,e,n){"use strict";var r=n(2091),o=n(7248),i=n(6297),s=n(8663)("species");t.exports=function(t,e){var n,u=r(t).constructor;return void 0===u||i(n=r(u)[s])?e:o(n)}},9387:function(t,e,n){"use strict";var r=n(1212),o=n(2119),i=n(9723),s=n(5034),u=r("".charAt),a=r("".charCodeAt),c=r("".slice),l=function(t){return function(e,n){var r,l,f=i(s(e)),h=o(n),p=f.length;return h<0||h>=p?t?"":void 0:(r=a(f,h))<55296||r>56319||h+1===p||(l=a(f,h+1))<56320||l>57343?t?u(f,h):r:t?c(f,h,h+2):l-56320+(r-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},1822:function(t,e,n){"use strict";var r=n(1997).PROPER,o=n(299),i=n(3768);t.exports=function(t){return o((function(){return!!i[t]()||"​…᠎"!=="​…᠎"[t]()||r&&i[t].name!==t}))}},2566:function(t,e,n){"use strict";var r=n(1212),o=n(5034),i=n(9723),s=n(3768),u=r("".replace),a=RegExp("^["+s+"]+"),c=RegExp("(^|[^"+s+"])["+s+"]+$"),l=function(t){return function(e){var n=i(o(e));return 1&t&&(n=u(n,a,"")),2&t&&(n=u(n,c,"$1")),n}};t.exports={start:l(1),end:l(2),trim:l(3)}},4483:function(t,e,n){"use strict";var r=n(3160),o=n(299),i=n(1983).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},2894:function(t,e,n){"use strict";var r=n(8993),o=n(7139),i=n(8663),s=n(4092);t.exports=function(){var t=o("Symbol"),e=t&&t.prototype,n=e&&e.valueOf,u=i("toPrimitive");e&&!e[u]&&s(e,u,(function(t){return r(n,this)}),{arity:1})}},2452:function(t,e,n){"use strict";var r=n(4483);t.exports=r&&!!Symbol.for&&!!Symbol.keyFor},5484:function(t,e,n){"use strict";var r=n(1212);t.exports=r(1..valueOf)},4918:function(t,e,n){"use strict";var r=n(2119),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},5137:function(t,e,n){"use strict";var r=n(2203),o=n(5034);t.exports=function(t){return r(o(t))}},2119:function(t,e,n){"use strict";var r=n(2537);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},8266:function(t,e,n){"use strict";var r=n(2119),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},3297:function(t,e,n){"use strict";var r=n(5034),o=Object;t.exports=function(t){return o(r(t))}},3301:function(t,e,n){"use strict";var r=n(8993),o=n(3598),i=n(5985),s=n(9738),u=n(290),a=n(8663),c=TypeError,l=a("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,a=s(t,l);if(a){if(void 0===e&&(e="default"),n=r(a,t,e),!o(n)||i(n))return n;throw new c("Can't convert object to primitive value")}return void 0===e&&(e="number"),u(t,e)}},1413:function(t,e,n){"use strict";var r=n(3301),o=n(5985);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},7920:function(t,e,n){"use strict";var r={};r[n(8663)("toStringTag")]="z",t.exports="[object z]"===String(r)},9723:function(t,e,n){"use strict";var r=n(9391),o=String;t.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},8819:function(t){"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},6044:function(t,e,n){"use strict";var r=n(1212),o=0,i=Math.random(),s=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++o+i,36)}},8300:function(t,e,n){"use strict";var r=n(4483);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},2538:function(t,e,n){"use strict";var r=n(5144),o=n(299);t.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},1194:function(t,e,n){"use strict";var r=n(1983),o=n(8681),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},1051:function(t,e,n){"use strict";var r=n(8203),o=n(6341),i=n(7475),s=n(2333).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||s(e,t,{value:i.f(t)})}},7475:function(t,e,n){"use strict";var r=n(8663);e.f=r},8663:function(t,e,n){"use strict";var r=n(1983),o=n(997),i=n(6341),s=n(6044),u=n(4483),a=n(8300),c=r.Symbol,l=o("wks"),f=a?c.for||c:c&&c.withoutSetter||s;t.exports=function(t){return i(l,t)||(l[t]=u&&i(c,t)?c[t]:f("Symbol."+t)),l[t]}},3768:function(t){"use strict";t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},2262:function(t,e,n){"use strict";var r=n(3762),o=n(299),i=n(8468),s=n(3598),u=n(3297),a=n(4730),c=n(9521),l=n(3412),f=n(3225),h=n(6025),p=n(8663),d=n(3160),v=p("isConcatSpreadable"),y=d>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=function(t){if(!s(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:"Array",proto:!0,arity:1,forced:!y||!h("concat")},{concat:function(t){var e,n,r,o,i,s=u(this),h=f(s,0),p=0;for(e=-1,r=arguments.length;e1?arguments[1]:void 0)}})},1909:function(t,e,n){"use strict";var r=n(3762),o=n(7033).find,i=n(1825),s="find",u=!0;s in[]&&Array(1)[s]((function(){u=!1})),r({target:"Array",proto:!0,forced:u},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i(s)},4204:function(t,e,n){"use strict";var r=n(5137),o=n(1825),i=n(5849),s=n(6921),u=n(2333).f,a=n(540),c=n(9445),l=n(7695),f=n(5144),h="Array Iterator",p=s.set,d=s.getterFor(h);t.exports=a(Array,"Array",(function(t,e){p(this,{type:h,target:r(t),index:0,kind:e})}),(function(){var t=d(this),e=t.target,n=t.index++;if(!e||n>=e.length)return t.target=void 0,c(void 0,!0);switch(t.kind){case"keys":return c(n,!1);case"values":return c(e[n],!1)}return c([n,e[n]],!1)}),"values");var v=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!l&&f&&"values"!==v.name)try{u(v,"name",{value:"values"})}catch(t){}},1698:function(t,e,n){"use strict";var r=n(3762),o=n(1212),i=n(2203),s=n(5137),u=n(1994),a=o([].join);r({target:"Array",proto:!0,forced:i!==Object||!u("join",",")},{join:function(t){return a(s(this),void 0===t?",":t)}})},4666:function(t,e,n){"use strict";var r=n(3762),o=n(7033).map;r({target:"Array",proto:!0,forced:!n(6025)("map")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},1346:function(t,e,n){"use strict";var r=n(3762),o=n(8468),i=n(7225),s=n(3598),u=n(4918),a=n(4730),c=n(5137),l=n(3412),f=n(8663),h=n(6025),p=n(2740),d=h("slice"),v=f("species"),y=Array,g=Math.max;r({target:"Array",proto:!0,forced:!d},{slice:function(t,e){var n,r,f,h=c(this),d=a(h),m=u(t,d),b=u(void 0===e?d:e,d);if(o(h)&&(n=h.constructor,(i(n)&&(n===y||o(n.prototype))||s(n)&&null===(n=n[v]))&&(n=void 0),n===y||void 0===n))return p(h,m,b);for(r=new(void 0===n?y:n)(g(b-m,0)),f=0;m_-r+n;y--)h(b,y-1)}else if(n>r)for(y=_-r;y>x;y--)m=y+n-1,(g=y+r-1)in b?b[m]=b[g]:h(b,m);for(y=0;y2)if(c=_(c),43===(e=w(c,0))||45===e){if(88===(n=w(c,2))||120===n)return NaN}else if(48===e){switch(w(c,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+c}for(s=(i=A(c,2)).length,u=0;uo)return NaN;return parseInt(i,r)}return+c},T=c(x,!N(" 0o1")||!N("0b1")||N("+0x1")),j=function(t){var e,n=arguments.length<1?0:N(function(t){var e=d(t,"number");return"bigint"==typeof e?e:S(e)}(t));return h(O,e=this)&&v((function(){b(e)}))?f(Object(n),this,j):n};j.prototype=O,T&&!o&&(O.constructor=j),r({global:!0,constructor:!0,wrap:!0,forced:T},{Number:j});var L=function(t,e){for(var n,r=i?y(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)l(e,n=r[o])&&!l(t,n)&&m(t,n,g(e,n))};o&&E&&L(u[x],E),(T||o)&&L(u[x],N)},6911:function(t,e,n){"use strict";var r=n(3762),o=n(299),i=n(5137),s=n(423).f,u=n(5144);r({target:"Object",stat:!0,forced:!u||o((function(){s(1)})),sham:!u},{getOwnPropertyDescriptor:function(t,e){return s(i(t),e)}})},1770:function(t,e,n){"use strict";var r=n(3762),o=n(5144),i=n(7523),s=n(5137),u=n(423),a=n(3412);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){for(var e,n,r=s(t),o=u.f,c=i(r),l={},f=0;c.length>f;)void 0!==(n=o(r,e=c[f++]))&&a(l,e,n);return l}})},4593:function(t,e,n){"use strict";var r=n(3762),o=n(4483),i=n(299),s=n(4073),u=n(3297);r({target:"Object",stat:!0,forced:!o||i((function(){s.f(1)}))},{getOwnPropertySymbols:function(t){var e=s.f;return e?e(u(t)):[]}})},2508:function(t,e,n){"use strict";var r=n(3762),o=n(3297),i=n(9428);r({target:"Object",stat:!0,forced:n(299)((function(){i(1)}))},{keys:function(t){return i(o(t))}})},4711:function(t,e,n){"use strict";var r=n(7920),o=n(4092),i=n(3183);r||o(Object.prototype,"toString",i,{unsafe:!0})},5629:function(t,e,n){"use strict";var r=n(3762),o=n(7139),i=n(9181),s=n(3962),u=n(7248),a=n(2091),c=n(3598),l=n(4860),f=n(299),h=o("Reflect","construct"),p=Object.prototype,d=[].push,v=f((function(){function t(){}return!(h((function(){}),[],t)instanceof t)})),y=!f((function(){h((function(){}))})),g=v||y;r({target:"Reflect",stat:!0,forced:g,sham:g},{construct:function(t,e){u(t),a(e);var n=arguments.length<3?t:u(arguments[2]);if(y&&!v)return h(t,e,n);if(t===n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return i(d,r,e),new(i(s,t,r))}var o=n.prototype,f=l(c(o)?o:p),g=i(t,f,e);return c(g)?g:f}})},2067:function(t,e,n){"use strict";var r=n(3762),o=n(4583);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},7873:function(t,e,n){"use strict";var r=n(1997).PROPER,o=n(4092),i=n(2091),s=n(9723),u=n(299),a=n(4806),c="toString",l=RegExp.prototype,f=l[c],h=u((function(){return"/a/b"!==f.call({source:"a",flags:"b"})})),p=r&&f.name!==c;(h||p)&&o(l,c,(function(){var t=i(this);return"/"+s(t.source)+"/"+s(a(t))}),{unsafe:!0})},1821:function(t,e,n){"use strict";var r,o=n(3762),i=n(5336),s=n(423).f,u=n(8266),a=n(9723),c=n(627),l=n(5034),f=n(2744),h=n(7695),p=i("".slice),d=Math.min,v=f("endsWith");o({target:"String",proto:!0,forced:!!(h||v||(r=s(String.prototype,"endsWith"),!r||r.writable))&&!v},{endsWith:function(t){var e=a(l(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=e.length,o=void 0===n?r:d(u(n),r),i=a(t);return p(e,o-i.length,o)===i}})},6501:function(t,e,n){"use strict";var r=n(8993),o=n(9512),i=n(2091),s=n(6297),u=n(8266),a=n(9723),c=n(5034),l=n(9738),f=n(217),h=n(7622);o("match",(function(t,e,n){return[function(e){var n=c(this),o=s(e)?void 0:l(e,t);return o?r(o,e,n):new RegExp(e)[t](a(n))},function(t){var r=i(this),o=a(t),s=n(e,r,o);if(s.done)return s.value;if(!r.global)return h(r,o);var c=r.unicode;r.lastIndex=0;for(var l,p=[],d=0;null!==(l=h(r,o));){var v=a(l[0]);p[d]=v,""===v&&(r.lastIndex=f(o,u(r.lastIndex),c)),d++}return 0===d?null:p}]}))},3484:function(t,e,n){"use strict";var r=n(9181),o=n(8993),i=n(1212),s=n(9512),u=n(299),a=n(2091),c=n(8681),l=n(6297),f=n(2119),h=n(8266),p=n(9723),d=n(5034),v=n(217),y=n(9738),g=n(1914),m=n(7622),b=n(8663)("replace"),_=Math.max,x=Math.min,N=i([].concat),E=i([].push),O=i("".indexOf),k=i("".slice),A="$0"==="a".replace(/./,"$0"),w=!!/./[b]&&""===/./[b]("a","$0");s("replace",(function(t,e,n){var i=w?"$":"$0";return[function(t,n){var r=d(this),i=l(t)?void 0:y(t,b);return i?o(i,t,r,n):o(e,p(r),t,n)},function(t,o){var s=a(this),u=p(t);if("string"==typeof o&&-1===O(o,i)&&-1===O(o,"$<")){var l=n(e,s,u,o);if(l.done)return l.value}var d=c(o);d||(o=p(o));var y,b=s.global;b&&(y=s.unicode,s.lastIndex=0);for(var A,w=[];null!==(A=m(s,u))&&(E(w,A),b);){""===p(A[0])&&(s.lastIndex=v(u,h(s.lastIndex),y))}for(var S,T="",j=0,L=0;L=j&&(T+=k(u,j,I)+R,j=I+C.length)}return T+k(u,j)}]}),!!u((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}))||!A||w)},9148:function(t,e,n){"use strict";var r=n(8993),o=n(1212),i=n(9512),s=n(2091),u=n(6297),a=n(5034),c=n(3209),l=n(217),f=n(8266),h=n(9723),p=n(9738),d=n(7622),v=n(3697),y=n(299),g=v.UNSUPPORTED_Y,m=Math.min,b=o([].push),_=o("".slice),x=!y((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),N="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;i("split",(function(t,e,n){var o="0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r(e,this,t,n)}:e;return[function(e,n){var i=a(this),s=u(e)?void 0:p(e,t);return s?r(s,e,i,n):r(o,h(i),e,n)},function(t,r){var i=s(this),u=h(t);if(!N){var a=n(o,i,u,r,o!==e);if(a.done)return a.value}var p=c(i,RegExp),v=i.unicode,y=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(g?"g":"y"),x=new p(g?"^(?:"+i.source+")":i,y),E=void 0===r?4294967295:r>>>0;if(0===E)return[];if(0===u.length)return null===d(x,u)?[u]:[];for(var O=0,k=0,A=[];k1?arguments[1]:void 0,e.length)),r=a(t);return p(e,n,n+r.length)===r}})},2710:function(t,e,n){"use strict";var r=n(3762),o=n(2566).trim;r({target:"String",proto:!0,forced:n(1822)("trim")},{trim:function(){return o(this)}})},6637:function(t,e,n){"use strict";var r=n(3762),o=n(1983),i=n(8993),s=n(1212),u=n(7695),a=n(5144),c=n(4483),l=n(299),f=n(6341),h=n(9877),p=n(2091),d=n(5137),v=n(1413),y=n(9723),g=n(8264),m=n(4860),b=n(9428),_=n(5412),x=n(1926),N=n(4073),E=n(423),O=n(2333),k=n(2197),A=n(4961),w=n(4092),S=n(1182),T=n(997),j=n(7099),L=n(2993),R=n(6044),C=n(8663),I=n(7475),B=n(1051),P=n(2894),q=n(667),D=n(6921),M=n(7033).forEach,U=j("hidden"),F="Symbol",z="prototype",K=D.set,$=D.getterFor(F),W=Object[z],G=o.Symbol,H=G&&G[z],V=o.RangeError,Y=o.TypeError,X=o.QObject,Z=E.f,Q=O.f,J=x.f,tt=A.f,et=s([].push),nt=T("symbols"),rt=T("op-symbols"),ot=T("wks"),it=!X||!X[z]||!X[z].findChild,st=function(t,e,n){var r=Z(W,e);r&&delete W[e],Q(t,e,n),r&&t!==W&&Q(W,e,r)},ut=a&&l((function(){return 7!==m(Q({},"a",{get:function(){return Q(this,"a",{value:7}).a}})).a}))?st:Q,at=function(t,e){var n=nt[t]=m(H);return K(n,{type:F,tag:t,description:e}),a||(n.description=e),n},ct=function(t,e,n){t===W&&ct(rt,e,n),p(t);var r=v(e);return p(n),f(nt,r)?(n.enumerable?(f(t,U)&&t[U][r]&&(t[U][r]=!1),n=m(n,{enumerable:g(0,!1)})):(f(t,U)||Q(t,U,g(1,m(null))),t[U][r]=!0),ut(t,r,n)):Q(t,r,n)},lt=function(t,e){p(t);var n=d(e),r=b(n).concat(dt(n));return M(r,(function(e){a&&!i(ft,n,e)||ct(t,e,n[e])})),t},ft=function(t){var e=v(t),n=i(tt,this,e);return!(this===W&&f(nt,e)&&!f(rt,e))&&(!(n||!f(this,e)||!f(nt,e)||f(this,U)&&this[U][e])||n)},ht=function(t,e){var n=d(t),r=v(e);if(n!==W||!f(nt,r)||f(rt,r)){var o=Z(n,r);return!o||!f(nt,r)||f(n,U)&&n[U][r]||(o.enumerable=!0),o}},pt=function(t){var e=J(d(t)),n=[];return M(e,(function(t){f(nt,t)||f(L,t)||et(n,t)})),n},dt=function(t){var e=t===W,n=J(e?rt:d(t)),r=[];return M(n,(function(t){!f(nt,t)||e&&!f(W,t)||et(r,nt[t])})),r};c||(G=function(){if(h(H,this))throw new Y("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?y(arguments[0]):void 0,e=R(t),n=function(t){var r=void 0===this?o:this;r===W&&i(n,rt,t),f(r,U)&&f(r[U],e)&&(r[U][e]=!1);var s=g(1,t);try{ut(r,e,s)}catch(t){if(!(t instanceof V))throw t;st(r,e,s)}};return a&&it&&ut(W,e,{configurable:!0,set:n}),at(e,t)},w(H=G[z],"toString",(function(){return $(this).tag})),w(G,"withoutSetter",(function(t){return at(R(t),t)})),A.f=ft,O.f=ct,k.f=lt,E.f=ht,_.f=x.f=pt,N.f=dt,I.f=function(t){return at(C(t),t)},a&&(S(H,"description",{configurable:!0,get:function(){return $(this).description}}),u||w(W,"propertyIsEnumerable",ft,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:G}),M(b(ot),(function(t){B(t)})),r({target:F,stat:!0,forced:!c},{useSetter:function(){it=!0},useSimple:function(){it=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!a},{create:function(t,e){return void 0===e?m(t):lt(m(t),e)},defineProperty:ct,defineProperties:lt,getOwnPropertyDescriptor:ht}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:pt}),P(),q(G,F),L[U]=!0},9178:function(t,e,n){"use strict";var r=n(3762),o=n(7139),i=n(6341),s=n(9723),u=n(997),a=n(2452),c=u("string-to-symbol-registry"),l=u("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!a},{for:function(t){var e=s(t);if(i(c,e))return c[e];var n=o("Symbol")(e);return c[e]=n,l[n]=e,n}})},2351:function(t,e,n){"use strict";n(6637),n(9178),n(9176),n(2754),n(4593)},9176:function(t,e,n){"use strict";var r=n(3762),o=n(6341),i=n(5985),s=n(8819),u=n(997),a=n(2452),c=u("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!a},{keyFor:function(t){if(!i(t))throw new TypeError(s(t)+" is not a symbol");if(o(c,t))return c[t]}})},5472:function(t,e,n){"use strict";var r=n(1983),o=n(7908),i=n(5500),s=n(8231),u=n(5719),a=function(t){if(t&&t.forEach!==s)try{u(t,"forEach",s)}catch(e){t.forEach=s}};for(var c in o)o[c]&&a(r[c]&&r[c].prototype);a(i)},1021:function(t,e,n){"use strict";var r=n(1983),o=n(7908),i=n(5500),s=n(4204),u=n(5719),a=n(667),c=n(8663)("iterator"),l=s.values,f=function(t,e){if(t){if(t[c]!==l)try{u(t,c,l)}catch(e){t[c]=l}if(a(t,e,!0),o[e])for(var n in s)if(t[n]!==s[n])try{u(t,n,s[n])}catch(e){t[n]=s[n]}}};for(var h in o)f(r[h]&&r[h].prototype,h);f(i,"DOMTokenList")}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t};var r={};return function(){"use strict";n.d(r,{default:function(){return yr}});var t=n(1538),e=n.n(t);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function i(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}function s(t,e,n){return(e=i(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&!this.contains(t)==!e?e:d.call(this,t)}}String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return e=e||0,this.substr(e,t.length)===t}),String.prototype.endsWith||(String.prototype.endsWith=function(t,e){var n=this.toString();("number"!=typeof e||!isFinite(e)||Math.floor(e)!==e||e>n.length)&&(e=n.length),e-=t.length;var r=n.indexOf(t,e);return-1!==r&&r===e}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var e,n=Object(this),r=n.length>>>0,o=arguments[1],i=0;i0){var e=this.parent.isolate(this.offset(),this.length());this.moveChildren(e),e.wrap(this)}}}],[{key:"compare",value:function(t,e){var r=n.order.indexOf(t),o=n.order.indexOf(e);return r>=0||o>=0?r-o:t===e?0:t0&&(t1&&void 0!==arguments[1]&&arguments[1];if(e&&(0===t||t>=this.length()-1)){var r=this.clone();return 0===t?(this.parent.insertBefore(r,this),this):(this.parent.insertBefore(r,this.next),r)}var o=K(n,"split",this,3)([t,e]);return this.cache={},o}}])}(e().Block);function G(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return null==t?e:("function"==typeof t.formats&&(e=y()(e,t.formats())),null==t.parent||"scroll"==t.parent.blotName||t.parent.statics.scope!==t.statics.scope?e:G(t.parent,e))}function H(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}function V(t,e,n){return e=E(e),k(t,Y()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Y=function(){return!!t})()}W.blotName="block",W.tagName="P",W.defaultChild="break",W.allowedChildren=[U,e().Embed,B];var X=function(t){function e(){return l(this,e),V(this,e,arguments)}return w(e,t),h(e)}(U);X.blotName="code",X.tagName="CODE";var Z=function(t){function n(){return l(this,n),V(this,n,arguments)}return w(n,t),h(n,[{key:"delta",value:function(){var t=this,e=this.domNode.textContent;return e.endsWith("\n")&&(e=e.slice(0,-1)),e.split("\n").reduce((function(e,n){return e.insert(n).insert("\n",t.formats())}),new(m()))}},{key:"format",value:function(t,e){if(t!==this.statics.blotName||!e){var r=c(this.descendant(B,this.length()-1),1)[0];null!=r&&r.deleteAt(r.length()-1,1),H(n,"format",this,3)([t,e])}}},{key:"formatAt",value:function(t,r,o,i){if(0!==r&&null!=e().query(o,e().Scope.BLOCK)&&(o!==this.statics.blotName||i!==this.statics.formats(this.domNode))){var s=this.newlineIndex(t);if(!(s<0||s>=t+r)){var u=this.newlineIndex(t,!0)+1,a=s-u+1,c=this.isolate(u,a),l=c.next;c.format(o,i),l instanceof n&&l.formatAt(0,t-u+r-a,o,i)}}}},{key:"insertAt",value:function(t,e,n){if(null==n){var r=c(this.descendant(B,t),2),o=r[0],i=r[1];o.insertAt(i,e)}}},{key:"length",value:function(){var t=this.domNode.textContent.length;return this.domNode.textContent.endsWith("\n")?t:t+1}},{key:"newlineIndex",value:function(t){if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])return this.domNode.textContent.slice(0,t).lastIndexOf("\n");var e=this.domNode.textContent.slice(t).indexOf("\n");return e>-1?t+e:-1}},{key:"optimize",value:function(t){this.domNode.textContent.endsWith("\n")||this.appendChild(e().create("text","\n")),H(n,"optimize",this,3)([t]);var r=this.next;null!=r&&r.prev===this&&r.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===r.statics.formats(r.domNode)&&(r.optimize(t),r.moveChildren(this),r.remove())}},{key:"replace",value:function(t){H(n,"replace",this,3)([t]),[].slice.call(this.domNode.querySelectorAll("*")).forEach((function(t){var n=e().find(t);null==n?t.parentNode.removeChild(t):n instanceof e().Embed?n.remove():n.unwrap()}))}}],[{key:"create",value:function(t){var e=H(n,"create",this,2)([t]);return e.setAttribute("spellcheck",!1),e}},{key:"formats",value:function(){return!0}}])}(W);function Q(t,e,n){return e=E(e),k(t,J()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function J(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(J=function(){return!!t})()}function tt(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}Z.blotName="code-block",Z.tagName="PRE",Z.TAB=" ";var et=function(t){function n(t,e){var r;return l(this,n),(r=Q(this,n,[t])).selection=e,r.textNode=document.createTextNode(n.CONTENTS),r.domNode.appendChild(r.textNode),r._length=0,r}return w(n,t),h(n,[{key:"detach",value:function(){null!=this.parent&&this.parent.removeChild(this)}},{key:"format",value:function(t,r){if(0!==this._length)return tt(n,"format",this,3)([t,r]);for(var o=this,i=0;null!=o&&o.statics.scope!==e().Scope.BLOCK_BLOT;)i+=o.offset(o.parent),o=o.parent;null!=o&&(this._length=n.CONTENTS.length,o.optimize(),o.formatAt(i,n.CONTENTS.length,t,r),this._length=0)}},{key:"index",value:function(t,e){return t===this.textNode?0:tt(n,"index",this,3)([t,e])}},{key:"length",value:function(){return this._length}},{key:"position",value:function(){return[this.textNode,this.textNode.data.length]}},{key:"remove",value:function(){tt(n,"remove",this,3)([]),this.parent=null}},{key:"restore",value:function(){if(!this.selection.composing&&null!=this.parent){var t,r,o,i=this.textNode,s=this.selection.getNativeRange();if(null!=s&&s.start.node===i&&s.end.node===i){var u=[i,s.start.offset,s.end.offset];t=u[0],r=u[1],o=u[2]}for(;null!=this.domNode.lastChild&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);if(this.textNode.data!==n.CONTENTS){var a=this.textNode.data.split(n.CONTENTS).join("");this.next instanceof B?(t=this.next.domNode,this.next.insertAt(0,a),this.textNode.data=n.CONTENTS):(this.textNode.data=a,this.parent.insertBefore(e().create(this.textNode),this),this.textNode=document.createTextNode(n.CONTENTS),this.domNode.appendChild(this.textNode))}if(this.remove(),null!=r){var l=c([r,o].map((function(e){return Math.max(0,Math.min(t.data.length,e-1))})),2);return r=l[0],o=l[1],{startNode:t,startOffset:r,endNode:t,endOffset:o}}}}},{key:"update",value:function(t,e){var n=this;if(t.some((function(t){return"characterData"===t.type&&t.target===n.textNode}))){var r=this.restore();r&&(e.range=r)}}},{key:"value",value:function(){return""}}],[{key:"value",value:function(){}}])}(e().Embed);et.blotName="cursor",et.className="ql-cursor",et.tagName="span",et.CONTENTS="\ufeff";var nt=et;function rt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ot(t){for(var e=1;e=i&&!l.endsWith("\n")&&(r=!0),n.scroll.insertAt(t,l);var f=c(n.scroll.line(t),2),h=f[0],p=f[1],d=y()({},G(h));if(h instanceof W){var v=c(h.descendant(e().Leaf,p),1)[0];d=y()(d,G(v))}a=g.AttributeMap.diff(d,a)||{}}else if("object"===o(s.insert)){var m=Object.keys(s.insert)[0];if(null==m)return t;n.scroll.insertAt(t,m,s.insert[m])}i+=u}return Object.keys(a).forEach((function(e){n.scroll.formatAt(t,u,e,a[e])})),t+u}),0),t.reduce((function(t,e){return"number"==typeof e.delete?(n.scroll.deleteAt(t,e.delete),t):t+(e.retain||e.insert.length||1)}),0),this.scroll.batchEnd(),this.update(t)}},{key:"deleteText",value:function(t,e){return this.scroll.deleteAt(t,e),this.update((new(m())).retain(t).delete(e))}},{key:"formatLine",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.scroll.update(),Object.keys(r).forEach((function(o){if(null==n.scroll.whitelist||n.scroll.whitelist[o]){var i=n.scroll.lines(t,Math.max(e,1)),s=e;i.forEach((function(e){var i=e.length();if(e instanceof Z){var u=t-e.offset(n.scroll),a=e.newlineIndex(u+s)-u+1;e.formatAt(u,a,o,r[o])}else e.format(o,r[o]);s-=i}))}})),this.scroll.optimize(),this.update((new(m())).retain(t).retain(e,_()(r)))}},{key:"formatText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(r).forEach((function(o){n.scroll.formatAt(t,e,o,r[o])})),this.update((new(m())).retain(t).retain(e,_()(r)))}},{key:"getContents",value:function(t,e){return this.delta.slice(t,t+e)}},{key:"getDelta",value:function(){return this.scroll.lines().reduce((function(t,e){return t.concat(e.delta())}),new(m()))}},{key:"getFormat",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=[],o=[];0===n?this.scroll.path(t).forEach((function(t){var n=c(t,1)[0];n instanceof W?r.push(n):n instanceof e().Leaf&&o.push(n)})):(r=this.scroll.lines(t,n),o=this.scroll.descendants(e().Leaf,t,n));var i=c([r,o].map((function(t){if(0===t.length)return{};for(var e=G(t.shift());Object.keys(e).length>0;){var n=t.shift();if(null==n)return e;e=ut(G(n),e)}return e})),2),s=i[0],u=i[1];return ot(ot({},s),u)}},{key:"getText",value:function(t,e){return this.getContents(t,e).filter((function(t){return"string"==typeof t.insert})).map((function(t){return t.insert})).join("")}},{key:"insertEmbed",value:function(t,e,n){return this.scroll.insertAt(t,e,n),this.update((new(m())).retain(t).insert(s({},e,n)))}},{key:"insertText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),this.scroll.insertAt(t,e),Object.keys(r).forEach((function(o){n.scroll.formatAt(t,e.length,o,r[o])})),this.update((new(m())).retain(t).insert(e,_()(r)))}},{key:"isBlank",value:function(){if(0==this.scroll.children.length)return!0;if(this.scroll.children.length>1)return!1;var t=this.scroll.children.head;return t.statics.blotName===W.blotName&&(!(t.children.length>1)&&t.children.head instanceof L)}},{key:"removeFormat",value:function(t,e){var n=this.getText(t,e),r=c(this.scroll.line(t+e),2),o=r[0],i=r[1],s=0,u=new(m());null!=o&&(s=o instanceof Z?o.newlineIndex(i)-i+1:o.length()-i,u=o.delta().slice(i,i+s-1).insert("\n"));var a=this.getContents(t,e+s).diff((new(m())).insert(n).concat(u)),l=(new(m())).retain(t).concat(a);return this.applyDelta(l)}},{key:"update",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=this.delta;if(1===n.length&&"characterData"===n[0].type&&n[0].target.data.match(it)&&e().find(n[0].target)){var i=e().find(n[0].target),s=G(i),u=i.offset(this.scroll),a=n[0].oldValue.replace(nt.CONTENTS,""),c=(new(m())).insert(a),l=(new(m())).insert(i.value());t=(new(m())).retain(u).concat(c.diff(l,r)).reduce((function(t,e){return e.insert?t.insert(e.insert,s):t.push(e)}),new(m())),this.delta=o.compose(t)}else this.delta=this.getDelta(),t&&N()(o.compose(t),this.delta)||(t=o.diff(this.delta,r));return t}}])}();function ut(t,e){return Object.keys(e).reduce((function(n,r){return null==t[r]||(e[r]===t[r]?n[r]=e[r]:Array.isArray(e[r])?e[r].indexOf(t[r])<0&&(n[r]=e[r].concat([t[r]])):n[r]=[e[r],t[r]]),n}),{})}var at=st,ct=(n(598),n(6418)),lt=n.n(ct),ft=["error","warn","log","info"],ht="warn";function pt(t){if(ft.indexOf(t)<=ft.indexOf(ht)){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:{};l(this,t),this.quill=e,this.options=n}));Et.DEFAULTS={};var Ot=Et;function kt(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||a(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var At="function"==typeof window.ShadowRoot.prototype.getSelection,wt=window.InputEvent&&"function"==typeof window.InputEvent.prototype.getTargetRanges,St=window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1,Tt=!(!window.navigator.userAgent.match(/Trident/)||window.navigator.userAgent.match(/MSIE/)),jt=window.navigator.userAgent.match(/Edge/),Lt=!1,Rt=function(){return h((function t(){l(this,t),this._ranges=[]}),[{key:"rangeCount",get:function(){return this._ranges.length}},{key:"getRangeAt",value:function(t){return this._ranges[t]}},{key:"addRange",value:function(t){if(this._ranges.push(t),!Lt){var e=window.getSelection();e.removeAllRanges(),e.setBaseAndExtent(t.startContainer,t.startOffset,t.endContainer,t.endOffset)}}},{key:"removeAllRanges",value:function(){this._ranges=[]}}])}();if((St||Tt||jt)&&!At&&(window.ShadowRoot.prototype.getSelection=function(){return document.getSelection()}),!St&&!At&&wt){var Ct=new Rt;window.ShadowRoot.prototype.getSelection=function(){return Ct},window.addEventListener("selectionchange",(function(){if(!Lt){Lt=!0;var t=function(){for(var t=document.activeElement;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}();t&&"true"===t.getAttribute("contenteditable")?document.execCommand("indent"):Ct.removeAllRanges(),Lt=!1}}),!0),window.addEventListener("beforeinput",(function(t){if(Lt){var e=t.getTargetRanges()[0],n=new Range;n.setStart(e.startContainer,e.startOffset),n.setEnd(e.endContainer,e.endOffset),Ct.removeAllRanges(),Ct.addRange(n),t.preventDefault(),t.stopImmediatePropagation()}}),!0),window.addEventListener("selectstart",(function(){Ct.removeAllRanges()}),!0)}var It=vt("quill:selection"),Bt=h((function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;l(this,t),this.index=e,this.length=n})),Pt=function(){return h((function t(n,r){var o=this;l(this,t),this.emitter=r,this.scroll=n,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.rootDocument=this.root.getRootNode?this.root.getRootNode():document,this.cursor=e().create("cursor",this),this.lastRange=this.savedRange=new Bt(0,0),this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,(function(){o.mouseDown||o.composing||setTimeout(o.update.bind(o,Nt.sources.USER),1)})),this.emitter.on(Nt.events.SCROLL_BEFORE_UPDATE,(function(t,e){if(o.hasFocus()){var n=o.getNativeRange();if(null!=n){var r=0===n.start.offset&&n.start.offset===n.end.offset&&o.rootDocument.getSelection()instanceof Rt&&e.some((function(t){return"characterData"===t.type&&""===t.oldValue}))?1:0;n.start.node!==o.cursor.textNode&&o.emitter.once(Nt.events.SCROLL_UPDATE,(function(){try{o.root.contains(n.start.node)&&o.root.contains(n.end.node)&&o.setNativeRange(n.start.node,n.start.offset+r,n.end.node,n.end.offset+r),o.update(Nt.sources.SILENT)}catch(t){}}))}}})),this.emitter.on(Nt.events.SCROLL_OPTIMIZE,(function(t,e){if(e.range){var n=e.range,r=n.startNode,i=n.startOffset,s=n.endNode,u=n.endOffset;o.setNativeRange(r,i,s,u)}})),this.update(Nt.sources.SILENT)}),[{key:"handleComposition",value:function(){var t=this;this.root.addEventListener("compositionstart",(function(){t.composing=!0})),this.root.addEventListener("compositionend",(function(){if(t.composing=!1,t.cursor.parent){var e=t.cursor.restore();if(!e)return;setTimeout((function(){t.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)}),1)}}))}},{key:"handleDragging",value:function(){var t=this;this.emitter.listenDOM("mousedown",document.body,(function(){t.mouseDown=!0})),this.emitter.listenDOM("mouseup",document.body,(function(){t.mouseDown=!1,t.update(Nt.sources.USER)}))}},{key:"focus",value:function(){this.hasFocus()||(this.root.focus(),this.setRange(this.savedRange))}},{key:"format",value:function(t,n){if(null==this.scroll.whitelist||this.scroll.whitelist[t]){this.scroll.update();var r=this.getNativeRange();if(null!=r&&r.native.collapsed&&!e().query(t,e().Scope.BLOCK)){if(r.start.node!==this.cursor.textNode){var o=e().find(r.start.node,!1);if(null==o)return;if(o instanceof e().Leaf){var i=o.split(r.start.offset);o.parent.insertBefore(this.cursor,i)}else o.insertBefore(this.cursor,r.start.node);this.cursor.attach()}this.cursor.format(t,n),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.scroll.length();t=Math.min(t,n-1),e=Math.min(t+e,n-1)-t;var r,o=c(this.scroll.leaf(t),2),i=o[0],s=o[1];if(null==i)return null;var u=c(i.position(s,!0),2);r=u[0],s=u[1];var a=document.createRange();if(e>0){a.setStart(r,s);var l=c(this.scroll.leaf(t+e),2);if(i=l[0],s=l[1],null==i)return null;var f=c(i.position(s,!0),2);return r=f[0],s=f[1],a.setEnd(r,s),a.getBoundingClientRect()}var h,p="left";return r instanceof Text?(s0&&(p="right")),{bottom:h.top+h.height,height:h.height,left:h[p],right:h[p],top:h.top,width:0}}},{key:"getNativeRange",value:function(){var t=this.rootDocument.getSelection();if(null==t||t.rangeCount<=0)return null;var e=t.getRangeAt(0);if(null==e)return null;var n=this.normalizeNative(e);return It.info("getNativeRange",n),n}},{key:"getRange",value:function(){var t=this.getNativeRange();return null==t?[null,null]:[this.normalizedToRange(t),t]}},{key:"hasFocus",value:function(){return this.rootDocument.activeElement===this.root}},{key:"normalizedToRange",value:function(t){var n=this,r=[[t.start.node,t.start.offset]];t.native.collapsed||r.push([t.end.node,t.end.offset]);var o=r.map((function(t){var r=c(t,2),o=r[0],i=r[1],s=e().find(o,!0),u=s.offset(n.scroll);return 0===i?u:s instanceof e().Container?u+s.length():u+s.index(o,i)})),i=Math.min(Math.max.apply(Math,kt(o)),this.scroll.length()-1),s=Math.min.apply(Math,[i].concat(kt(o)));return new Bt(s,i-s)}},{key:"normalizeNative",value:function(t){if(!qt(this.root,t.startContainer)||!t.collapsed&&!qt(this.root,t.endContainer))return null;var e={start:{node:t.startContainer,offset:t.startOffset},end:{node:t.endContainer,offset:t.endOffset},native:t};return[e.start,e.end].forEach((function(t){for(var e=t.node,n=t.offset;!(e instanceof Text)&&e.childNodes.length>0;)if(e.childNodes.length>n)e=e.childNodes[n],n=0;else{if(e.childNodes.length!==n)break;n=(e=e.lastChild)instanceof Text?e.data.length:e.childNodes.length+1}t.node=e,t.offset=n})),e}},{key:"rangeToNative",value:function(t){var e=this,n=t.collapsed?[t.index]:[t.index,t.index+t.length],r=[],o=this.scroll.length();return n.forEach((function(t,n){t=Math.min(o-1,t);var i,s=c(e.scroll.leaf(t),2),u=s[0],a=s[1],l=c(u.position(a,0!==n),2);i=l[0],a=l[1],r.push(i,a)})),r.length<2&&(r=r.concat(r)),r}},{key:"scrollIntoView",value:function(t){var e=this.lastRange;if(null!=e){var n=this.getBounds(e.index,e.length);if(null!=n){var r=this.scroll.length()-1,o=c(this.scroll.line(Math.min(e.index,r)),1)[0],i=o;if(e.length>0)i=c(this.scroll.line(Math.min(e.index+e.length,r)),1)[0];if(null!=o&&null!=i){var s=t.getBoundingClientRect();n.tops.bottom&&(t.scrollTop+=n.bottom-s.bottom)}}}}},{key:"setNativeRange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(It.info("setNativeRange",t,e,n,r),null==t||null!=this.root.parentNode&&null!=t.parentNode&&null!=n.parentNode){var i=this.rootDocument.getSelection();if(null!=i)if(null!=t){this.hasFocus()||this.root.focus();var s=(this.getNativeRange()||{}).native;if(null==s||o||t!==s.startContainer||e!==s.startOffset||n!==s.endContainer||r!==s.endOffset){"BR"==t.tagName&&(e=[].indexOf.call(t.parentNode.childNodes,t),t=t.parentNode),"BR"==n.tagName&&(r=[].indexOf.call(n.parentNode.childNodes,n),n=n.parentNode);var u=document.createRange();u.setStart(t,e),u.setEnd(n,r),i.removeAllRanges(),i.addRange(u)}}else i.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Nt.sources.API;if("string"==typeof e&&(n=e,e=!1),It.info("setRange",t),null!=t){var r=this.rangeToNative(t);this.setNativeRange.apply(this,kt(r).concat([e]))}else this.setNativeRange(null);this.update(n)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Nt.sources.USER,e=this.lastRange,n=c(this.getRange(),2),r=n[0],o=n[1];if(this.lastRange=r,null!=this.lastRange&&(this.savedRange=this.lastRange),!N()(e,this.lastRange)){var i;!this.composing&&null!=o&&o.native.collapsed&&o.start.node!==this.cursor.textNode&&this.cursor.restore();var s,u=[Nt.events.SELECTION_CHANGE,_()(this.lastRange),_()(e),t];if((i=this.emitter).emit.apply(i,[Nt.events.EDITOR_CHANGE].concat(u)),t!==Nt.sources.SILENT)(s=this.emitter).emit.apply(s,u)}}}])}();function qt(t,e){try{e.parentNode}catch(t){return!1}return e instanceof Text&&(e=e.parentNode),t.contains(e)}var Dt=function(){return h((function t(e,n){l(this,t),this.quill=e,this.options=n,this.modules={}}),[{key:"init",value:function(){var t=this;Object.keys(this.options.modules).forEach((function(e){null==t.modules[e]&&t.addModule(e)}))}},{key:"addModule",value:function(t){var e=this.quill.constructor.import("modules/".concat(t));return this.modules[t]=new e(this.quill,this.options.modules[t]||{}),this.modules[t]}}])}();Dt.DEFAULTS={modules:{}},Dt.themes={default:Dt};var Mt=Dt,Ut=vt("quill"),Ft=function(){function t(n){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(l(this,t),this.options=zt(n,o),this.container=this.options.container,null==this.container)return Ut.error("Invalid Quill container",n);this.options.debug&&t.debug(this.options.debug);var i=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",this.container.__quill=this,this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.root.setAttribute("data-gramm",!1),this.scrollingContainer=this.options.scrollingContainer||this.root,this.emitter=new Nt,this.scroll=e().create(this.root,{emitter:this.emitter,whitelist:this.options.formats}),this.editor=new at(this.scroll),this.selection=new Pt(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.theme.init(),this.emitter.on(Nt.events.EDITOR_CHANGE,(function(t){t===Nt.events.TEXT_CHANGE&&r.root.classList.toggle("ql-blank",r.editor.isBlank())})),this.emitter.on(Nt.events.SCROLL_UPDATE,(function(t,e){var n=r.selection.lastRange,o=n&&0===n.length?n.index:void 0;Kt.call(r,(function(){return r.editor.update(null,e,o)}),t)}));var s=this.clipboard.convert("
".concat(i,"


"));this.setContents(s),this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable()}return h(t,[{key:"addContainer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof t){var n=t;(t=document.createElement("div")).classList.add(n)}return this.container.insertBefore(t,e),t}},{key:"blur",value:function(){this.selection.setRange(null)}},{key:"deleteText",value:function(t,e,n){var r=this,o=c($t(t,e,n),4);return t=o[0],e=o[1],n=o[3],Kt.call(this,(function(){return r.editor.deleteText(t,e)}),n,t,-1*e)}},{key:"disable",value:function(){this.enable(!1)}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.scroll.enable(t),this.container.classList.toggle("ql-disabled",!t)}},{key:"focus",value:function(){var t=this.scrollingContainer.scrollTop;this.selection.focus(),this.scrollingContainer.scrollTop=t,this.scrollIntoView()}},{key:"format",value:function(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Nt.sources.API;return Kt.call(this,(function(){var o=r.getSelection(!0),i=new(m());if(null==o)return i;if(e().query(t,e().Scope.BLOCK))i=r.editor.formatLine(o.index,o.length,s({},t,n));else{if(0===o.length)return r.selection.format(t,n),i;i=r.editor.formatText(o.index,o.length,s({},t,n))}return r.setSelection(o,Nt.sources.SILENT),i}),o)}},{key:"formatLine",value:function(t,e,n,r,o){var i,s=this,u=c($t(t,e,n,r,o),4);return t=u[0],e=u[1],i=u[2],o=u[3],Kt.call(this,(function(){return s.editor.formatLine(t,e,i)}),o,t,0)}},{key:"formatText",value:function(t,e,n,r,o){var i,s=this,u=c($t(t,e,n,r,o),4);return t=u[0],e=u[1],i=u[2],o=u[3],Kt.call(this,(function(){return s.editor.formatText(t,e,i)}),o,t,0)}},{key:"getBounds",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;e="number"==typeof t?this.selection.getBounds(t,n):this.selection.getBounds(t.index,t.length);var r=this.container.getBoundingClientRect();return{bottom:e.bottom-r.top,height:e.height,left:e.left-r.left,right:e.right-r.left,top:e.top-r.top,width:e.width}}},{key:"getContents",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=c($t(t,e),2);return t=n[0],e=n[1],this.editor.getContents(t,e)}},{key:"getFormat",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getSelection(!0),e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"number"==typeof t?this.editor.getFormat(t,e):this.editor.getFormat(t.index,t.length)}},{key:"getIndex",value:function(t){return t.offset(this.scroll)}},{key:"getLength",value:function(){return this.scroll.length()}},{key:"getLeaf",value:function(t){return this.scroll.leaf(t)}},{key:"getLine",value:function(t){return this.scroll.line(t)}},{key:"getLines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return"number"!=typeof t?this.scroll.lines(t.index,t.length):this.scroll.lines(t,e)}},{key:"getModule",value:function(t){return this.theme.modules[t]}},{key:"getSelection",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.focus(),this.update(),this.selection.getRange()[0]}},{key:"getText",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=c($t(t,e),2);return t=n[0],e=n[1],this.editor.getText(t,e)}},{key:"hasFocus",value:function(){return this.selection.hasFocus()}},{key:"insertEmbed",value:function(e,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.sources.API;return Kt.call(this,(function(){return o.editor.insertEmbed(e,n,r)}),i,e)}},{key:"insertText",value:function(t,e,n,r,o){var i,s=this,u=c($t(t,0,n,r,o),4);return t=u[0],i=u[2],o=u[3],Kt.call(this,(function(){return s.editor.insertText(t,e,i)}),o,t,e.length)}},{key:"isEnabled",value:function(){return!this.container.classList.contains("ql-disabled")}},{key:"off",value:function(){return this.emitter.off.apply(this.emitter,arguments)}},{key:"on",value:function(){return this.emitter.on.apply(this.emitter,arguments)}},{key:"once",value:function(){return this.emitter.once.apply(this.emitter,arguments)}},{key:"pasteHTML",value:function(t,e,n){this.clipboard.dangerouslyPasteHTML(t,e,n)}},{key:"removeFormat",value:function(t,e,n){var r=this,o=c($t(t,e,n),4);return t=o[0],e=o[1],n=o[3],Kt.call(this,(function(){return r.editor.removeFormat(t,e)}),n,t)}},{key:"scrollIntoView",value:function(){this.selection.scrollIntoView(this.scrollingContainer)}},{key:"setContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Nt.sources.API;return Kt.call(this,(function(){t=new(m())(t);var n=e.getLength(),r=e.editor.deleteText(0,n),o=e.editor.applyDelta(t),i=o.ops[o.ops.length-1];return null!=i&&"string"==typeof i.insert&&"\n"===i.insert[i.insert.length-1]&&(e.editor.deleteText(e.getLength()-1,1),o.delete(1)),r.compose(o)}),n)}},{key:"setSelection",value:function(e,n,r){if(null==e)this.selection.setRange(null,n||t.sources.API);else{var o=c($t(e,n,r),4);e=o[0],n=o[1],r=o[3],this.selection.setRange(new Bt(e,n),r),r!==Nt.sources.SILENT&&this.selection.scrollIntoView(this.scrollingContainer)}}},{key:"setText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Nt.sources.API,n=(new(m())).insert(t);return this.setContents(n,e)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Nt.sources.USER,e=this.scroll.update(t);return this.selection.update(t),e}},{key:"updateContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Nt.sources.API;return Kt.call(this,(function(){return t=new(m())(t),e.editor.applyDelta(t,n)}),n,!0)}}],[{key:"debug",value:function(t){!0===t&&(t="log"),vt.level(t)}},{key:"find",value:function(t){return t.__quill||e().find(t)}},{key:"import",value:function(t){return null==this.imports[t]&&Ut.error("Cannot import ".concat(t,". Are you sure it was registered?")),this.imports[t]}},{key:"register",value:function(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!=typeof t){var i=t.attrName||t.blotName;"string"==typeof i?this.register("formats/"+i,t,n):Object.keys(t).forEach((function(e){r.register(e,t[e],n)}))}else null==this.imports[t]||o||Ut.warn("Overwriting ".concat(t," with"),n),this.imports[t]=n,(t.startsWith("blots/")||t.startsWith("formats/"))&&"abstract"!==n.blotName?e().register(n):t.startsWith("modules")&&"function"==typeof n.register&&n.register()}}])}();function zt(t,e){if((e=y()({container:t,modules:{clipboard:!0,keyboard:!0,history:!0}},e)).theme&&e.theme!==Ft.DEFAULTS.theme){if(e.theme=Ft.import("themes/".concat(e.theme)),null==e.theme)throw new Error("Invalid theme ".concat(e.theme,". Did you register it?"))}else e.theme=Mt;var n=y()({},e.theme.DEFAULTS);[n,e].forEach((function(t){t.modules=t.modules||{},Object.keys(t.modules).forEach((function(e){!0===t.modules[e]&&(t.modules[e]={})}))}));var r=Object.keys(n.modules).concat(Object.keys(e.modules)).reduce((function(t,e){var n=Ft.import("modules/".concat(e));return null==n?Ut.error("Cannot load ".concat(e," module. Are you sure you registered it?")):t[e]=n.DEFAULTS||{},t}),{});return null!=e.modules&&e.modules.toolbar&&e.modules.toolbar.constructor!==Object&&(e.modules.toolbar={container:e.modules.toolbar}),e=y()({},Ft.DEFAULTS,{modules:r},n,e),["bounds","container","scrollingContainer"].forEach((function(t){"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))})),e.modules=Object.keys(e.modules).reduce((function(t,n){return e.modules[n]&&(t[n]=e.modules[n]),t}),{}),e}function Kt(t,e,n,r){if(this.options.strict&&!this.isEnabled()&&e===Nt.sources.USER)return new(m());var o=null==n?null:this.getSelection(),i=this.editor.delta,s=t();if(null!=o&&(!0===n&&(n=o.index),null==r?o=Wt(o,s,e):0!==r&&(o=Wt(o,n,r,e)),this.setSelection(o,Nt.sources.SILENT)),s.length()>0){var u,a,c=[Nt.events.TEXT_CHANGE,s,i,e];if((u=this.emitter).emit.apply(u,[Nt.events.EDITOR_CHANGE].concat(c)),e!==Nt.sources.SILENT)(a=this.emitter).emit.apply(a,c)}return s}function $t(t,e,n,r,i){var s={};return"number"==typeof t.index&&"number"==typeof t.length?"number"!=typeof e?(i=r,r=n,n=e,e=t.length,t=t.index):(e=t.length,t=t.index):"number"!=typeof e&&(i=r,r=n,n=e,e=0),"object"===o(n)?(s=n,i=r):"string"==typeof n&&(null!=r?s[n]=r:i=n),[t,e,s,i=i||Nt.sources.API]}function Wt(t,e,n,r){if(null==t)return null;var o,i;if(e instanceof m()){var s=c([t.index,t.index+t.length].map((function(t){return e.transformPosition(t,r!==Nt.sources.USER)})),2);o=s[0],i=s[1]}else{var u=c([t.index,t.index+t.length].map((function(t){return t=0?t+n:Math.max(e,t+n)})),2);o=u[0],i=u[1]}return new Bt(o,i-o)}function Gt(t,e,n){return e=E(e),k(t,Ht()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Ht(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ht=function(){return!!t})()}Ft.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,scrollingContainer:null,strict:!0,theme:"default"},Ft.events=Nt.events,Ft.sources=Nt.sources,Ft.version="1.3.6",Ft.imports={delta:m(),parchment:e(),"core/module":Ot,"core/theme":Mt};var Vt=function(t){function e(){return l(this,e),Gt(this,e,arguments)}return w(e,t),h(e)}(e().Container);Vt.allowedChildren=[W,$,Vt];var Yt=Vt;function Xt(t,e,n){return e=E(e),k(t,Zt()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Zt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Zt=function(){return!!t})()}var Qt="\ufeff",Jt=function(t){function n(t){var e;return l(this,n),(e=Xt(this,n,[t])).contentNode=document.createElement("span"),e.contentNode.setAttribute("contenteditable",!1),[].slice.call(e.domNode.childNodes).forEach((function(t){e.contentNode.appendChild(t)})),e.leftGuard=document.createTextNode(Qt),e.rightGuard=document.createTextNode(Qt),e.domNode.appendChild(e.leftGuard),e.domNode.appendChild(e.contentNode),e.domNode.appendChild(e.rightGuard),e}return w(n,t),h(n,[{key:"index",value:function(t,e){return t===this.leftGuard?0:t===this.rightGuard?1:(r=n,o="index",i=this,u=O(E(1&(s=3)?r.prototype:r),o,i),2&s?function(t){return u.apply(i,t)}:u)([t,e]);var r,o,i,s,u}},{key:"restore",value:function(t){var n,r,o=t.data.split(Qt).join("");if(t===this.leftGuard)if(this.prev instanceof B){var i=this.prev.length();this.prev.insertAt(i,o),n={startNode:this.prev.domNode,startOffset:i+o.length}}else r=document.createTextNode(o),this.parent.insertBefore(e().create(r),this),n={startNode:r,startOffset:o.length};else t===this.rightGuard&&(this.next instanceof B?(this.next.insertAt(0,o),n={startNode:this.next.domNode,startOffset:o.length}):(r=document.createTextNode(o),this.parent.insertBefore(e().create(r),this.next),n={startNode:r,startOffset:o.length}));return t.data=Qt,n}},{key:"update",value:function(t,e){var n=this;t.forEach((function(t){if("characterData"===t.type&&(t.target===n.leftGuard||t.target===n.rightGuard)){var r=n.restore(t.target);r&&(e.range=r)}}))}}])}(e().Embed);function te(t,e,n){return e=E(e),k(t,ee()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function ee(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ee=function(){return!!t})()}function ne(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}function re(t){return t instanceof W||t instanceof $}var oe=function(t){function n(t,e){var r;return l(this,n),(r=te(this,n,[t])).emitter=e.emitter,Array.isArray(e.whitelist)&&(r.whitelist=e.whitelist.reduce((function(t,e){return t[e]=!0,t}),{})),r.optimize(),r.enable(),r}return w(n,t),h(n,[{key:"batchStart",value:function(){this.batch=!0}},{key:"batchEnd",value:function(){this.batch=!1,this.optimize()}},{key:"deleteAt",value:function(t,e){var r=c(this.line(t),2),o=r[0],i=r[1],s=c(this.line(t+e),1)[0];if(ne(n,"deleteAt",this,3)([t,e]),null!=s&&o!==s&&i>0){if(o instanceof $||s instanceof $)return void this.optimize();if(o instanceof Z){var u=o.newlineIndex(o.length(),!0);if(u>-1&&(o=o.split(u+1))===s)return void this.optimize()}else if(s instanceof Z){var a=s.newlineIndex(0);a>-1&&s.split(a+1)}var l=s.children.head instanceof L?null:s.children.head;o.moveChildren(s,l),o.remove()}this.optimize()}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.domNode.setAttribute("contenteditable",t)}},{key:"formatAt",value:function(t,e,r,o){(null==this.whitelist||this.whitelist[r])&&(ne(n,"formatAt",this,3)([t,e,r,o]),this.optimize())}},{key:"insertAt",value:function(t,r,o){if(null==o||null==this.whitelist||this.whitelist[r]){if(t>=this.length())if(null==o||null==e().query(r,e().Scope.BLOCK)){var i=e().create(this.statics.defaultChild);this.appendChild(i),null==o&&r.endsWith("\n")&&(r=r.slice(0,-1)),i.insertAt(0,r,o)}else{var s=e().create(r,o);this.appendChild(s)}else ne(n,"insertAt",this,3)([t,r,o]);this.optimize()}}},{key:"insertBefore",value:function(t,r){if(t.statics.scope===e().Scope.INLINE_BLOT){var o=e().create(this.statics.defaultChild);o.appendChild(t),t=o}ne(n,"insertBefore",this,3)([t,r])}},{key:"leaf",value:function(t){return this.path(t).pop()||[null,-1]}},{key:"line",value:function(t){return t===this.length()?this.line(t-1):this.descendant(re,t)}},{key:"lines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,r=function(t,n,o){var i=[],s=o;return t.children.forEachAt(n,o,(function(t,n,o){re(t)?i.push(t):t instanceof e().Container&&(i=i.concat(r(t,n,s))),s-=o})),i};return r(this,t,n)}},{key:"optimize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!0!==this.batch&&(ne(n,"optimize",this,3)([t,e]),t.length>0&&this.emitter.emit(Nt.events.SCROLL_OPTIMIZE,t,e))}},{key:"path",value:function(t){return ne(n,"path",this,3)([t]).slice(1)}},{key:"update",value:function(t){if(!0!==this.batch){var e=Nt.sources.USER;"string"==typeof t&&(e=t),Array.isArray(t)||(t=this.observer.takeRecords()),t.length>0&&this.emitter.emit(Nt.events.SCROLL_BEFORE_UPDATE,e,t),ne(n,"update",this,3)([t.concat([])]),t.length>0&&this.emitter.emit(Nt.events.SCROLL_UPDATE,e,t)}}}])}(e().Scroll);oe.blotName="scroll",oe.className="ql-editor",oe.tagName="DIV",oe.defaultChild="block",oe.allowedChildren=[W,$,Yt];var ie=oe,se={scope:e().Scope.BLOCK,whitelist:["right","center","justify"]},ue=new(e().Attributor.Attribute)("align","align",se),ae=new(e().Attributor.Class)("align","ql-align",se),ce=new(e().Attributor.Style)("align","text-align",se);function le(t,e,n){return e=E(e),k(t,fe()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function fe(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(fe=function(){return!!t})()}var he=function(t){function e(){return l(this,e),le(this,e,arguments)}return w(e,t),h(e,[{key:"value",value:function(t){var n,r,o,i,s,u=(n=e,r="value",o=this,s=O(E(1&(i=3)?n.prototype:n),r,o),2&i?function(t){return s.apply(o,t)}:s)([t]);return u.startsWith("rgb(")?(u=u.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),"#"+u.split(",").map((function(t){return("00"+parseInt(t).toString(16)).slice(-2)})).join("")):u}}])}(e().Attributor.Style),pe=new(e().Attributor.Class)("color","ql-color",{scope:e().Scope.INLINE}),de=new he("color","color",{scope:e().Scope.INLINE}),ve=new(e().Attributor.Class)("background","ql-bg",{scope:e().Scope.INLINE}),ye=new he("background","background-color",{scope:e().Scope.INLINE}),ge={scope:e().Scope.BLOCK,whitelist:["rtl"]},me=new(e().Attributor.Attribute)("direction","dir",ge),be=new(e().Attributor.Class)("direction","ql-direction",ge),_e=new(e().Attributor.Style)("direction","direction",ge);function xe(t,e,n){return e=E(e),k(t,Ne()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Ne(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ne=function(){return!!t})()}var Ee={scope:e().Scope.INLINE,whitelist:["serif","monospace"]},Oe=new(e().Attributor.Class)("font","ql-font",Ee),ke=function(t){function e(){return l(this,e),xe(this,e,arguments)}return w(e,t),h(e,[{key:"value",value:function(t){return(n=e,r="value",o=this,i=3,s=O(E(1&i?n.prototype:n),r,o),2&i?function(t){return s.apply(o,t)}:s)([t]).replace(/["']/g,"");var n,r,o,i,s}}])}(e().Attributor.Style),Ae=new ke("font","font-family",Ee),we=new(e().Attributor.Class)("size","ql-size",{scope:e().Scope.INLINE,whitelist:["small","large","huge"]}),Se=new(e().Attributor.Style)("size","font-size",{scope:e().Scope.INLINE,whitelist:["10px","18px","32px"]});function Te(t,e,n){return e=E(e),k(t,je()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function je(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(je=function(){return!!t})()}var Le=vt("quill:clipboard"),Re="__ql-matcher",Ce=[[Node.TEXT_NODE,function(t,e){var n=t.data;if("O:P"===t.parentNode.tagName)return e.insert(n.trim());if(0===n.trim().length&&t.parentNode.classList.contains("ql-clipboard"))return e;if(!De(t.parentNode).whiteSpace.startsWith("pre")){var r=function(t,e){return(e=e.replace(/[^\u00a0]/g,"")).length<1&&t?" ":e};n=(n=n.replace(/\r\n/g," ").replace(/\n/g," ")).replace(/\s\s+/g,r.bind(r,!0)),(null==t.previousSibling&&Ue(t.parentNode)||null!=t.previousSibling&&Ue(t.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(null==t.nextSibling&&Ue(t.parentNode)||null!=t.nextSibling&&Ue(t.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return e.insert(n)}],[Node.TEXT_NODE,Ke],["br",function(t,e){Me(e,"\n")||e.insert("\n");return e}],[Node.ELEMENT_NODE,Ke],[Node.ELEMENT_NODE,function(t,n){var r=e().query(t);if(null==r)return n;if(r.prototype instanceof e().Embed){var o={},i=r.value(t);null!=i&&(o[r.blotName]=i,n=(new(m())).insert(o,r.formats(t)))}else"function"==typeof r.formats&&(n=qe(n,r.blotName,r.formats(t)));return n}],[Node.ELEMENT_NODE,function(t,n){var r=e().Attributor.Attribute.keys(t),o=e().Attributor.Class.keys(t),i=e().Attributor.Style.keys(t),s={};r.concat(o).concat(i).forEach((function(n){var r=e().query(n,e().Scope.ATTRIBUTE);null!=r&&(s[r.attrName]=r.value(t),s[r.attrName])||(null==(r=Ie[n])||r.attrName!==n&&r.keyName!==n||(s[r.attrName]=r.value(t)||void 0),null==(r=Be[n])||r.attrName!==n&&r.keyName!==n||(r=Be[n],s[r.attrName]=r.value(t)||void 0))})),Object.keys(s).length>0&&(n=qe(n,s));return n}],[Node.ELEMENT_NODE,function(t,e){var n={},r=t.style||{};r.fontStyle&&"italic"===De(t).fontStyle&&(n.italic=!0);r.fontWeight&&(De(t).fontWeight.startsWith("bold")||parseInt(De(t).fontWeight)>=700)&&(n.bold=!0);Object.keys(n).length>0&&(e=qe(e,n));parseFloat(r.textIndent||0)>0&&(e=(new(m())).insert("\t").concat(e));return e}],["li",function(t,n){var r=e().query(t);if(null==r||"list-item"!==r.blotName||!Me(n,"\n"))return n;var o=-1,i=t.parentNode;for(;!i.classList.contains("ql-clipboard");)"list"===(e().query(i)||{}).blotName&&(o+=1),i=i.parentNode;return o<=0?n:n.compose((new(m())).retain(n.length()-1).retain(1,{indent:o}))}],["b",ze.bind(ze,"bold")],["i",ze.bind(ze,"italic")],["style",function(){return new(m())}]],Ie=[ue,me].reduce((function(t,e){return t[e.keyName]=e,t}),{}),Be=[ce,ye,de,_e,Ae,Se].reduce((function(t,e){return t[e.keyName]=e,t}),{}),Pe=function(t){function e(t,n){var r;return l(this,e),(r=Te(this,e,[t,n])).quill.root.addEventListener("paste",r.onPaste.bind(r)),r.container=r.quill.addContainer("ql-clipboard"),r.container.setAttribute("contenteditable",!0),r.container.setAttribute("tabindex",-1),r.matchers=[],Ce.concat(r.options.matchers).forEach((function(t){var e=c(t,2),n=e[0],o=e[1];r.addMatcher(n,o)})),r}return w(e,t),h(e,[{key:"addMatcher",value:function(t,e){this.matchers.push([t,e])}},{key:"convert",value:function(t){if("string"==typeof t)return this.container.innerHTML=t.replace(/\>\r?\n +\<"),this.convert();var e=this.quill.getFormat(this.quill.selection.savedRange.index);if(e[Z.blotName]){var n=this.container.innerText;return this.container.innerHTML="",(new(m())).insert(n,s({},Z.blotName,e[Z.blotName]))}var r=c(this.prepareMatching(),2),o=r[0],i=r[1],u=Fe(this.container,o,i);return Me(u,"\n")&&null==u.ops[u.ops.length-1].attributes&&(u=u.compose((new(m())).retain(u.length()-1).delete(1))),Le.log("convert",this.container.innerHTML,u),this.container.innerHTML="",u}},{key:"dangerouslyPasteHTML",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ft.sources.API;if("string"==typeof t)this.quill.setContents(this.convert(t),e),this.quill.setSelection(0,Ft.sources.SILENT);else{var r=this.convert(e);this.quill.updateContents((new(m())).retain(t).concat(r),n),this.quill.setSelection(t+r.length(),Ft.sources.SILENT)}}},{key:"onPaste",value:function(t){var e=this;if(!t.defaultPrevented&&this.quill.isEnabled()){var n=this.quill.getSelection(),r=(new(m())).retain(n.index),o=this.quill.scrollingContainer.scrollTop;this.container.focus(),this.quill.selection.update(Ft.sources.SILENT),setTimeout((function(){r=r.concat(e.convert()).delete(n.length),e.quill.updateContents(r,Ft.sources.USER),e.quill.setSelection(r.length()-n.length,Ft.sources.SILENT),e.quill.scrollingContainer.scrollTop=o,e.quill.focus()}),1)}}},{key:"prepareMatching",value:function(){var t=this,e=[],n=[];return this.matchers.forEach((function(r){var o=c(r,2),i=o[0],s=o[1];switch(i){case Node.TEXT_NODE:n.push(s);break;case Node.ELEMENT_NODE:e.push(s);break;default:[].forEach.call(t.container.querySelectorAll(i),(function(t){t[Re]=t[Re]||[],t[Re].push(s)}))}})),[e,n]}}])}(Ot);function qe(t,e,n){return"object"===o(e)?Object.keys(e).reduce((function(t,n){return qe(t,n,e[n])}),t):t.reduce((function(t,r){return r.attributes&&r.attributes[e]?t.push(r):t.insert(r.insert,y()({},s({},e,n),r.attributes))}),new(m()))}function De(t){if(t.nodeType!==Node.ELEMENT_NODE)return{};var e="__ql-computed-style";return t[e]||(t[e]=window.getComputedStyle(t))}function Me(t,e){for(var n="",r=t.ops.length-1;r>=0&&n.length-1}function Fe(t,e,n){return t.nodeType===t.TEXT_NODE?n.reduce((function(e,n){return n(t,e)}),new(m())):t.nodeType===t.ELEMENT_NODE?[].reduce.call(t.childNodes||[],(function(r,o){var i=Fe(o,e,n);return o.nodeType===t.ELEMENT_NODE&&(i=e.reduce((function(t,e){return e(o,t)}),i),i=(o[Re]||[]).reduce((function(t,e){return e(o,t)}),i)),r.concat(i)}),new(m())):new(m())}function ze(t,e,n){return qe(n,t,!0)}function Ke(t,e){return Me(e,"\n")||(Ue(t)||e.length()>0&&t.nextSibling&&Ue(t.nextSibling))&&e.insert("\n"),e}function $e(t,e,n){return e=E(e),k(t,We()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function We(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(We=function(){return!!t})()}Pe.DEFAULTS={matchers:[],matchVisual:!1};var Ge=function(t){function n(t,e){var r;return l(this,n),(r=$e(this,n,[t,e])).lastRecorded=0,r.ignoreChange=!1,r.clear(),r.quill.on(Ft.events.EDITOR_CHANGE,(function(t,e,n,o){t!==Ft.events.TEXT_CHANGE||r.ignoreChange||(r.options.userOnly&&o!==Ft.sources.USER?r.transform(e):r.record(e,n))})),r.quill.keyboard.addBinding({key:"Z",shortKey:!0},r.undo.bind(r)),r.quill.keyboard.addBinding({key:"Z",shortKey:!0,shiftKey:!0},r.redo.bind(r)),/Win/i.test(navigator.platform)&&r.quill.keyboard.addBinding({key:"Y",shortKey:!0},r.redo.bind(r)),r}return w(n,t),h(n,[{key:"change",value:function(t,n){if(0!==this.stack[t].length){var r=this.stack[t].pop();this.stack[n].push(r),this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(r[t],Ft.sources.USER),this.ignoreChange=!1;var o=function(t){var n=t.reduce((function(t,e){return t+=e.delete||0}),0),r=t.length()-n;(function(t){var n=t.ops[t.ops.length-1];if(null==n)return!1;if(null!=n.insert)return"string"==typeof n.insert&&n.insert.endsWith("\n");if(null!=n.attributes)return Object.keys(n.attributes).some((function(t){return null!=e().query(t,e().Scope.BLOCK)}));return!1})(t)&&(r-=1);return r}(r[t]);this.quill.setSelection(o)}}},{key:"clear",value:function(){this.stack={undo:[],redo:[]}}},{key:"cutoff",value:function(){this.lastRecorded=0}},{key:"record",value:function(t,e){if(0!==t.ops.length){this.stack.redo=[];var n=this.quill.getContents().diff(e),r=Date.now();if(this.lastRecorded+this.options.delay>r&&this.stack.undo.length>0){var o=this.stack.undo.pop();n=n.compose(o.undo),t=o.redo.compose(t)}else this.lastRecorded=r;this.stack.undo.push({redo:t,undo:n}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift()}}},{key:"redo",value:function(){this.change("redo","undo")}},{key:"transform",value:function(t){this.stack.undo.forEach((function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)})),this.stack.redo.forEach((function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)}))}},{key:"undo",value:function(){this.change("undo","redo")}}])}(Ot);function He(t,e,n){return e=E(e),k(t,Ve()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Ve(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ve=function(){return!!t})()}Ge.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1};var Ye=vt("quill:keyboard"),Xe=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",Ze=function(t){function n(t,e){var r;return l(this,n),(r=He(this,n,[t,e])).bindings={},Object.keys(r.options.bindings).forEach((function(e){("list autofill"!==e||null==t.scroll.whitelist||t.scroll.whitelist.list)&&r.options.bindings[e]&&r.addBinding(r.options.bindings[e])})),r.addBinding({key:n.keys.ENTER,shiftKey:null},nn),r.addBinding({key:n.keys.ENTER,metaKey:null,ctrlKey:null,altKey:null},(function(){})),/Firefox/i.test(navigator.userAgent)?(r.addBinding({key:n.keys.BACKSPACE},{collapsed:!0},Je),r.addBinding({key:n.keys.DELETE},{collapsed:!0},tn)):(r.addBinding({key:n.keys.BACKSPACE},{collapsed:!0,prefix:/^.?$/},Je),r.addBinding({key:n.keys.DELETE},{collapsed:!0,suffix:/^.?$/},tn)),r.addBinding({key:n.keys.BACKSPACE},{collapsed:!1},en),r.addBinding({key:n.keys.DELETE},{collapsed:!1},en),r.addBinding({key:n.keys.BACKSPACE,altKey:null,ctrlKey:null,metaKey:null,shiftKey:null},{collapsed:!0,offset:0},Je),r.listen(),r}return w(n,t),h(n,[{key:"addBinding",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=sn(t);if(null==r||null==r.key)return Ye.warn("Attempted to add invalid keyboard binding",r);"function"==typeof e&&(e={handler:e}),"function"==typeof n&&(n={handler:n}),r=y()(r,e,n),this.bindings[r.key]=this.bindings[r.key]||[],this.bindings[r.key].push(r)}},{key:"listen",value:function(){var t=this;this.quill.root.addEventListener("keydown",(function(r){if(!r.defaultPrevented){var i=r.which||r.keyCode,s=(t.bindings[i]||[]).filter((function(t){return n.match(r,t)}));if(0!==s.length){var u=t.quill.getSelection();if(null!=u&&t.quill.hasFocus()){var a=c(t.quill.getLine(u.index),2),l=a[0],f=a[1],h=c(t.quill.getLeaf(u.index),2),p=h[0],d=h[1],v=c(0===u.length?[p,d]:t.quill.getLeaf(u.index+u.length),2),y=v[0],g=v[1],m=p instanceof e().Text?p.value().slice(0,d):"",b=y instanceof e().Text?y.value().slice(g):"",_={collapsed:0===u.length,empty:0===u.length&&l.length()<=1,format:t.quill.getFormat(u),offset:f,prefix:m,suffix:b};s.some((function(e){if(null!=e.collapsed&&e.collapsed!==_.collapsed)return!1;if(null!=e.empty&&e.empty!==_.empty)return!1;if(null!=e.offset&&e.offset!==_.offset)return!1;if(Array.isArray(e.format)){if(e.format.every((function(t){return null==_.format[t]})))return!1}else if("object"===o(e.format)&&!Object.keys(e.format).every((function(t){return!0===e.format[t]?null!=_.format[t]:!1===e.format[t]?null==_.format[t]:N()(e.format[t],_.format[t])})))return!1;return!(null!=e.prefix&&!e.prefix.test(_.prefix))&&(!(null!=e.suffix&&!e.suffix.test(_.suffix))&&!0!==e.handler.call(t,u,_))}))&&r.preventDefault()}}}}))}}],[{key:"match",value:function(t,e){return e=sn(e),!["altKey","ctrlKey","metaKey","shiftKey"].some((function(n){return!!e[n]!==t[n]&&null!==e[n]}))&&e.key===(t.which||t.keyCode)}}])}(Ot);function Qe(t,n){var r=t===Ze.keys.LEFT?"prefix":"suffix";return s(s({key:t,shiftKey:n,altKey:null},r,/^$/),"handler",(function(r){var o=r.index;return t===Ze.keys.RIGHT&&(o+=r.length+1),!(c(this.quill.getLeaf(o),1)[0]instanceof e().Embed)||(t===Ze.keys.LEFT?n?this.quill.setSelection(r.index-1,r.length+1,Ft.sources.USER):this.quill.setSelection(r.index-1,Ft.sources.USER):n?this.quill.setSelection(r.index,r.length+1,Ft.sources.USER):this.quill.setSelection(r.index+r.length+1,Ft.sources.USER),!1)}))}function Je(t,e){if(!(0===t.index||this.quill.getLength()<=1)){var n=c(this.quill.getLine(t.index),1)[0],r={};if(0===e.offset){var o=c(this.quill.getLine(t.index-1),1)[0];if(null!=o&&o.length()>1){var i=n.formats(),s=this.quill.getFormat(t.index-1,1);r=g.AttributeMap.diff(i,s)||{}}}var u=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(e.prefix)?2:1;this.quill.deleteText(t.index-u,u,Ft.sources.USER),Object.keys(r).length>0&&this.quill.formatLine(t.index-u,u,r,Ft.sources.USER),this.quill.focus()}}function tn(t,e){var n=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(e.suffix)?2:1;if(!(t.index>=this.quill.getLength()-n)){var r={},o=0,i=c(this.quill.getLine(t.index),1)[0];if(e.offset>=i.length()-1){var s=c(this.quill.getLine(t.index+1),1)[0];if(s){var u=i.formats(),a=this.quill.getFormat(t.index,1);r=DeltaOp.attributes.diff(u,a)||{},o=s.length()}}this.quill.deleteText(t.index,n,Ft.sources.USER),Object.keys(r).length>0&&this.quill.formatLine(t.index+o-1,n,r,Ft.sources.USER)}}function en(t){var e=this.quill.getLines(t),n={};if(e.length>1){var r=e[0].formats(),o=e[e.length-1].formats();n=DeltaOp.attributes.diff(o,r)||{}}this.quill.deleteText(t,Ft.sources.USER),Object.keys(n).length>0&&this.quill.formatLine(t.index,1,n,Ft.sources.USER),this.quill.setSelection(t.index,Ft.sources.SILENT),this.quill.focus()}function nn(t,n){var r=this;t.length>0&&this.quill.scroll.deleteAt(t.index,t.length);var o=Object.keys(n.format).reduce((function(t,r){return e().query(r,e().Scope.BLOCK)&&!Array.isArray(n.format[r])&&(t[r]=n.format[r]),t}),{});this.quill.insertText(t.index,"\n",o,Ft.sources.USER),this.quill.setSelection(t.index+1,Ft.sources.SILENT),this.quill.focus(),Object.keys(n.format).forEach((function(t){null==o[t]&&(Array.isArray(n.format[t])||"link"!==t&&r.quill.format(t,n.format[t],Ft.sources.USER))}))}function rn(t){return{key:Ze.keys.TAB,shiftKey:!t,format:{"code-block":!0},handler:function(n){var r=e().query("code-block"),o=n.index,i=n.length,s=c(this.quill.scroll.descendant(r,o),2),u=s[0],a=s[1];if(null!=u){var l=this.quill.getIndex(u),f=u.newlineIndex(a,!0)+1,h=u.newlineIndex(l+a+i),p=u.domNode.textContent.slice(f,h).split("\n");a=0,p.forEach((function(e,n){t?(u.insertAt(f+a,r.TAB),a+=r.TAB.length,0===n?o+=r.TAB.length:i+=r.TAB.length):e.startsWith(r.TAB)&&(u.deleteAt(f+a,r.TAB.length),a-=r.TAB.length,0===n?o-=r.TAB.length:i-=r.TAB.length),a+=e.length+1})),this.quill.update(Ft.sources.USER),this.quill.setSelection(o,i,Ft.sources.SILENT)}}}}function on(t){return{key:t[0].toUpperCase(),shortKey:!0,handler:function(e,n){this.quill.format(t,!n.format[t],Ft.sources.USER)}}}function sn(t){if("string"==typeof t||"number"==typeof t)return sn({key:t});if("object"===o(t)&&(t=_()(t,!1)),"string"==typeof t.key)if(null!=Ze.keys[t.key.toUpperCase()])t.key=Ze.keys[t.key.toUpperCase()];else{if(1!==t.key.length)return null;t.key=t.key.toUpperCase().charCodeAt(0)}return t.shortKey&&(t[Xe]=t.shortKey,delete t.shortKey),t}Ze.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},Ze.DEFAULTS={bindings:{bold:on("bold"),italic:on("italic"),underline:on("underline"),indent:{key:Ze.keys.TAB,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","+1",Ft.sources.USER)}},outdent:{key:Ze.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","-1",Ft.sources.USER)}},"outdent backspace":{key:Ze.keys.BACKSPACE,collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler:function(t,e){null!=e.format.indent?this.quill.format("indent","-1",Ft.sources.USER):null!=e.format.list&&this.quill.format("list",!1,Ft.sources.USER)}},"indent code-block":rn(!0),"outdent code-block":rn(!1),"remove tab":{key:Ze.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(t){this.quill.deleteText(t.index-1,1,Ft.sources.USER)}},tab:{key:Ze.keys.TAB,handler:function(t){this.quill.history.cutoff();var e=(new(m())).retain(t.index).delete(t.length).insert("\t");this.quill.updateContents(e,Ft.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index+1,Ft.sources.SILENT)}},"list empty enter":{key:Ze.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(t,e){this.quill.format("list",!1,Ft.sources.USER),e.format.indent&&this.quill.format("indent",!1,Ft.sources.USER)}},"checklist enter":{key:Ze.keys.ENTER,collapsed:!0,format:{list:"checked"},handler:function(t){var e=c(this.quill.getLine(t.index),2),n=e[0],r=e[1],o=y()({},n.formats(),{list:"checked"}),i=(new(m())).retain(t.index).insert("\n",o).retain(n.length()-r-1).retain(1,{list:"unchecked"});this.quill.updateContents(i,Ft.sources.USER),this.quill.setSelection(t.index+1,Ft.sources.SILENT),this.quill.scrollIntoView()}},"header enter":{key:Ze.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(t,e){var n=c(this.quill.getLine(t.index),2),r=n[0],o=n[1],i=(new(m())).retain(t.index).insert("\n",e.format).retain(r.length()-o-1).retain(1,{header:null});this.quill.updateContents(i,Ft.sources.USER),this.quill.setSelection(t.index+1,Ft.sources.SILENT),this.quill.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler:function(t,e){var n,r=e.prefix.length,o=c(this.quill.getLine(t.index),2),i=o[0],s=o[1];if(s>r)return!0;switch(e.prefix.trim()){case"[]":case"[ ]":n="unchecked";break;case"[x]":n="checked";break;case"-":case"*":n="bullet";break;default:n="ordered"}this.quill.insertText(t.index," ",Ft.sources.USER),this.quill.history.cutoff();var u=(new(m())).retain(t.index-s).delete(r+1).retain(i.length()-2-s).retain(1,{list:n});this.quill.updateContents(u,Ft.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index-r,Ft.sources.SILENT)}},"code exit":{key:Ze.keys.ENTER,collapsed:!0,format:["code-block"],prefix:/\n\n$/,suffix:/^\s+$/,handler:function(t){var e=c(this.quill.getLine(t.index),2),n=e[0],r=e[1],o=(new(m())).retain(t.index+n.length()-r-2).retain(1,{"code-block":null}).delete(1);this.quill.updateContents(o,Ft.sources.USER)}},"embed left":Qe(Ze.keys.LEFT,!1),"embed left shift":Qe(Ze.keys.LEFT,!0),"embed right":Qe(Ze.keys.RIGHT,!1),"embed right shift":Qe(Ze.keys.RIGHT,!0)}},Ft.register({"blots/block":W,"blots/block/embed":$,"blots/break":L,"blots/container":Yt,"blots/cursor":nt,"blots/embed":Jt,"blots/inline":U,"blots/scroll":ie,"blots/text":B,"modules/clipboard":Pe,"modules/history":Ge,"modules/keyboard":Ze}),e().register(W,L,nt,U,ie,B);var un=Ft;function an(t,e,n){return e=E(e),k(t,cn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function cn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(cn=function(){return!!t})()}function ln(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}var fn=function(t){function e(){return l(this,e),an(this,e,arguments)}return w(e,t),h(e,[{key:"add",value:function(t,n){if("+1"===n||"-1"===n){var r=this.value(t)||0;n="+1"===n?r+1:r-1}return 0===n?(this.remove(t),!0):ln(e,"add",this,3)([t,n])}},{key:"canAdd",value:function(t,n){return ln(e,"canAdd",this,3)([t,n])||ln(e,"canAdd",this,3)([t,parseInt(n)])}},{key:"value",value:function(t){return parseInt(ln(e,"value",this,3)([t]))||void 0}}])}(e().Attributor.Class),hn=new fn("indent","ql-indent",{scope:e().Scope.BLOCK,whitelist:[1,2,3,4,5,6,7,8]});function pn(t,e,n){return e=E(e),k(t,dn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function dn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(dn=function(){return!!t})()}var vn=function(t){function e(){return l(this,e),pn(this,e,arguments)}return w(e,t),h(e)}(W);vn.blotName="blockquote",vn.tagName="blockquote";var yn=vn;function gn(t,e,n){return e=E(e),k(t,mn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function mn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(mn=function(){return!!t})()}var bn=function(t){function e(){return l(this,e),gn(this,e,arguments)}return w(e,t),h(e,null,[{key:"formats",value:function(t){return this.tagName.indexOf(t.tagName)+1}}])}(W);bn.blotName="header",bn.tagName=["H1","H2","H3","H4","H5","H6"];var _n=bn;function xn(t,e,n){return e=E(e),k(t,Nn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Nn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Nn=function(){return!!t})()}function En(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}var On=function(t){function n(){return l(this,n),xn(this,n,arguments)}return w(n,t),h(n,[{key:"format",value:function(t,r){t!==kn.blotName||r?En(n,"format",this,3)([t,r]):this.replaceWith(e().create(this.statics.scope))}},{key:"remove",value:function(){null==this.prev&&null==this.next?this.parent.remove():En(n,"remove",this,3)([])}},{key:"replaceWith",value:function(t,e){return this.parent.isolate(this.offset(this.parent),this.length()),t===this.parent.statics.blotName?(this.parent.replaceWith(t,e),this):(this.parent.unwrap(),En(n,"replaceWith",this,3)([t,e]))}}],[{key:"formats",value:function(t){return t.tagName===this.tagName?void 0:En(n,"formats",this,2)([t])}}])}(W);On.blotName="list-item",On.tagName="LI";var kn=function(t){function n(t){var r;l(this,n),r=xn(this,n,[t]);var o=function(n){if(n.target.parentNode===t){var o=r.statics.formats(t),i=e().find(n.target);"checked"===o?i.format("list","unchecked"):"unchecked"===o&&i.format("list","checked")}};return t.addEventListener("touchstart",o),t.addEventListener("mousedown",o),r}return w(n,t),h(n,[{key:"format",value:function(t,e){this.children.length>0&&this.children.tail.format(t,e)}},{key:"formats",value:function(){return s({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:"insertBefore",value:function(t,e){if(t instanceof On)En(n,"insertBefore",this,3)([t,e]);else{var r=null==e?this.length():e.offset(this),o=this.split(r);o.parent.insertBefore(t,o)}}},{key:"optimize",value:function(t){En(n,"optimize",this,3)([t]);var e=this.next;null!=e&&e.prev===this&&e.statics.blotName===this.statics.blotName&&e.domNode.tagName===this.domNode.tagName&&e.domNode.getAttribute("data-checked")===this.domNode.getAttribute("data-checked")&&(e.moveChildren(this),e.remove())}},{key:"replace",value:function(t){if(t.statics.blotName!==this.statics.blotName){var r=e().create(this.statics.defaultChild);t.moveChildren(r),this.appendChild(r)}En(n,"replace",this,3)([t])}}],[{key:"create",value:function(t){var e="ordered"===t?"OL":"UL",r=En(n,"create",this,2)([e]);return"checked"!==t&&"unchecked"!==t||r.setAttribute("data-checked","checked"===t),r}},{key:"formats",value:function(t){return"OL"===t.tagName?"ordered":"UL"===t.tagName?t.hasAttribute("data-checked")?"true"===t.getAttribute("data-checked")?"checked":"unchecked":"bullet":void 0}}])}(Yt);function An(t,e,n){return e=E(e),k(t,wn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function wn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(wn=function(){return!!t})()}function Sn(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}kn.blotName="list",kn.scope=e().Scope.BLOCK_BLOT,kn.tagName=["OL","UL"],kn.defaultChild="list-item",kn.allowedChildren=[On];var Tn=function(t){function e(){return l(this,e),An(this,e,arguments)}return w(e,t),h(e,[{key:"optimize",value:function(t){Sn(e,"optimize",this,3)([t]),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}}],[{key:"create",value:function(){return Sn(e,"create",this,2)([])}},{key:"formats",value:function(){return!0}}])}(U);Tn.blotName="bold",Tn.tagName=["STRONG","B"];var jn=Tn;function Ln(t,e,n){return e=E(e),k(t,Rn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Rn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Rn=function(){return!!t})()}var Cn=function(t){function e(){return l(this,e),Ln(this,e,arguments)}return w(e,t),h(e)}(jn);Cn.blotName="italic",Cn.tagName=["EM","I"];var In=Cn;function Bn(t,e,n){return e=E(e),k(t,Pn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Pn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Pn=function(){return!!t})()}function qn(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}var Dn=function(t){function e(){return l(this,e),Bn(this,e,arguments)}return w(e,t),h(e,[{key:"format",value:function(t,n){if(t!==this.statics.blotName||!n)return qn(e,"format",this,3)([t,n]);n=this.constructor.sanitize(n),this.domNode.setAttribute("href",n)}}],[{key:"create",value:function(t){var n=qn(e,"create",this,2)([t]);return t=this.sanitize(t),n.setAttribute("href",t),n.setAttribute("target","_blank"),n}},{key:"formats",value:function(t){return t.getAttribute("href")}},{key:"sanitize",value:function(t){return Mn(t,this.PROTOCOL_WHITELIST)?t:this.SANITIZED_URL}}])}(U);function Mn(t,e){var n=document.createElement("a");n.href=t;var r=n.href.slice(0,n.href.indexOf(":"));return e.indexOf(r)>-1}function Un(t,e,n){return e=E(e),k(t,Fn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Fn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Fn=function(){return!!t})()}Dn.blotName="link",Dn.tagName="A",Dn.SANITIZED_URL="about:blank",Dn.PROTOCOL_WHITELIST=["http","https","mailto","tel"];var zn=function(t){function e(){return l(this,e),Un(this,e,arguments)}return w(e,t),h(e,null,[{key:"create",value:function(t){return"super"===t?document.createElement("sup"):"sub"===t?document.createElement("sub"):(n=e,r="create",o=this,s=O(E(1&(i=2)?n.prototype:n),r,o),2&i?function(t){return s.apply(o,t)}:s)([t]);var n,r,o,i,s}},{key:"formats",value:function(t){return"SUB"===t.tagName?"sub":"SUP"===t.tagName?"super":void 0}}])}(U);zn.blotName="script",zn.tagName=["SUB","SUP"];var Kn=zn;function $n(t,e,n){return e=E(e),k(t,Wn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Wn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Wn=function(){return!!t})()}var Gn=function(t){function e(){return l(this,e),$n(this,e,arguments)}return w(e,t),h(e)}(U);Gn.blotName="strike",Gn.tagName="S";var Hn=Gn;function Vn(t,e,n){return e=E(e),k(t,Yn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Yn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Yn=function(){return!!t})()}var Xn=function(t){function e(){return l(this,e),Vn(this,e,arguments)}return w(e,t),h(e)}(U);Xn.blotName="underline",Xn.tagName="U";var Zn=Xn;function Qn(t,e,n){return e=E(e),k(t,Jn()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function Jn(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Jn=function(){return!!t})()}function tr(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}var er=["alt","height","width"],nr=function(t){function e(){return l(this,e),Qn(this,e,arguments)}return w(e,t),h(e,[{key:"format",value:function(t,n){er.indexOf(t)>-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):tr(e,"format",this,3)([t,n])}}],[{key:"create",value:function(t){var n=tr(e,"create",this,2)([t]);return"string"==typeof t&&n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return er.reduce((function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e}),{})}},{key:"match",value:function(t){return/\.(jpe?g|gif|png)$/.test(t)||/^data:image\/.+;base64/.test(t)}},{key:"sanitize",value:function(t){return Mn(t,["http","https","data"])?t:"//:0"}},{key:"value",value:function(t){return t.getAttribute("src")}}])}(e().Embed);nr.blotName="image",nr.tagName="IMG";var rr=nr;function or(t,e,n){return e=E(e),k(t,ir()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function ir(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ir=function(){return!!t})()}function sr(t,e,n,r){var o=O(E(1&r?t.prototype:t),e,n);return 2&r?function(t){return o.apply(n,t)}:o}var ur=["height","width"],ar=function(t){function e(){return l(this,e),or(this,e,arguments)}return w(e,t),h(e,[{key:"format",value:function(t,n){ur.indexOf(t)>-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):sr(e,"format",this,3)([t,n])}}],[{key:"create",value:function(t){var n=sr(e,"create",this,2)([t]);return n.setAttribute("frameborder","0"),n.setAttribute("allowfullscreen",!0),n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return ur.reduce((function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e}),{})}},{key:"sanitize",value:function(t){return Dn.sanitize(t)}},{key:"value",value:function(t){return t.getAttribute("src")}}])}($);ar.blotName="video",ar.className="ql-video",ar.tagName="IFRAME";var cr=ar;function lr(t,e,n){return e=E(e),k(t,fr()?Reflect.construct(e,n||[],E(t).constructor):e.apply(t,n))}function fr(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(fr=function(){return!!t})()}var hr="getRootNode"in document,pr=vt("quill:toolbar"),dr=function(t){function n(t,e){var r;if(l(this,n),r=lr(this,n,[t,e]),Array.isArray(r.options.container)){var o=document.createElement("div");!function(t,e){Array.isArray(e[0])||(e=[e]);e.forEach((function(e){var n=document.createElement("span");n.classList.add("ql-formats"),e.forEach((function(t){if("string"==typeof t)vr(n,t);else{var e=Object.keys(t)[0],r=t[e];Array.isArray(r)?function(t,e,n){var r=document.createElement("select");r.classList.add("ql-"+e),n.forEach((function(t){var e=document.createElement("option");!1!==t?e.setAttribute("value",t):e.setAttribute("selected","selected"),r.appendChild(e)})),t.appendChild(r)}(n,e,r):vr(n,e,r)}})),t.appendChild(n)}))}(o,r.options.container),t.container.parentNode.insertBefore(o,t.container),r.container=o}else if("string"==typeof r.options.container){var i=hr?t.container.getRootNode():document;r.container=i.querySelector(r.options.container)}else r.container=r.options.container;return r.container instanceof HTMLElement?(r.container.classList.add("ql-toolbar"),r.controls=[],r.handlers={},Object.keys(r.options.handlers).forEach((function(t){r.addHandler(t,r.options.handlers[t])})),[].forEach.call(r.container.querySelectorAll("button, select"),(function(t){r.attach(t)})),r.quill.on(Ft.events.EDITOR_CHANGE,(function(t,e){t===Ft.events.SELECTION_CHANGE&&r.update(e)})),r.quill.on(Ft.events.SCROLL_OPTIMIZE,(function(){var t=c(r.quill.selection.getRange(),1)[0];r.update(t)})),r):k(r,pr.error("Container required for toolbar",r.options))}return w(n,t),h(n,[{key:"addHandler",value:function(t,e){this.handlers[t]=e}},{key:"attach",value:function(t){var n=this,r=[].find.call(t.classList,(function(t){return 0===t.indexOf("ql-")}));if(r){if(r=r.slice(3),"BUTTON"===t.tagName&&t.setAttribute("type","button"),null==this.handlers[r]){if(null!=this.quill.scroll.whitelist&&null==this.quill.scroll.whitelist[r])return void pr.warn("ignoring attaching to disabled format",r,t);if(null==e().query(r))return void pr.warn("ignoring attaching to nonexistent format",r,t)}var o="SELECT"===t.tagName?"change":"click";t.addEventListener(o,(function(o){var i;if("SELECT"===t.tagName){if(t.selectedIndex<0)return;var u=t.options[t.selectedIndex];i=!u.hasAttribute("selected")&&(u.value||!1)}else i=!t.classList.contains("ql-active")&&(t.value||!t.hasAttribute("value")),o.preventDefault();n.quill.focus();var a=c(n.quill.selection.getRange(),1)[0];if(null!=n.handlers[r])n.handlers[r].call(n,i);else if(e().query(r).prototype instanceof e().Embed){if(!(i=prompt("Enter ".concat(r))))return;n.quill.updateContents((new(m())).retain(a.index).delete(a.length).insert(s({},r,i)),Ft.sources.USER)}else n.quill.format(r,i,Ft.sources.USER);n.update(a)})),this.controls.push([r,t])}}},{key:"update",value:function(t){var e=null==t?{}:this.quill.getFormat(t);this.controls.forEach((function(n){var r=c(n,2),o=r[0],i=r[1];if("SELECT"===i.tagName){var s;if(null==t)s=null;else if(null==e[o])s=i.querySelector("option[selected]");else if(!Array.isArray(e[o])){var u=e[o];"string"==typeof u&&(u=u.replace(/\"/g,'\\"')),s=i.querySelector('option[value="'.concat(u,'"]'))}null==s?(i.value="",i.selectedIndex=-1):s.selected=!0}else if(null==t)i.classList.remove("ql-active");else if(i.hasAttribute("value")){var a=e[o]===i.getAttribute("value")||null!=e[o]&&e[o].toString()===i.getAttribute("value")||null==e[o]&&!i.getAttribute("value");i.classList.toggle("ql-active",a)}else i.classList.toggle("ql-active",null!=e[o])}))}}])}(Ot);function vr(t,e,n){var r=document.createElement("button");r.setAttribute("type","button"),r.classList.add("ql-"+e),null!=n&&(r.value=n),t.appendChild(r)}dr.DEFAULTS={},dr.DEFAULTS={container:null,handlers:{clean:function(){var t=this,n=this.quill.getSelection();if(null!=n)if(0==n.length){var r=this.quill.getFormat();Object.keys(r).forEach((function(n){null!=e().query(n,e().Scope.INLINE)&&t.quill.format(n,!1)}))}else this.quill.removeFormat(n,Ft.sources.USER)},direction:function(t){var e=this.quill.getFormat().align;"rtl"===t&&null==e?this.quill.format("align","right",Ft.sources.USER):t||"right"!==e||this.quill.format("align",!1,Ft.sources.USER),this.quill.format("direction",t,Ft.sources.USER)},indent:function(t){var e=this.quill.getSelection(),n=this.quill.getFormat(e),r=parseInt(n.indent||0);if("+1"===t||"-1"===t){var o="+1"===t?1:-1;"rtl"===n.direction&&(o*=-1),this.quill.format("indent",r+o,Ft.sources.USER)}},link:function(t){!0===t&&(t=prompt("Enter link URL:")),this.quill.format("link",t,Ft.sources.USER)},list:function(t){var e=this.quill.getSelection(),n=this.quill.getFormat(e);"check"===t?"checked"===n.list||"unchecked"===n.list?this.quill.format("list",!1,Ft.sources.USER):this.quill.format("list","unchecked",Ft.sources.USER):this.quill.format("list",t,Ft.sources.USER)}}},un.register({"attributors/attribute/direction":me,"attributors/class/align":ae,"attributors/class/background":ve,"attributors/class/color":pe,"attributors/class/direction":be,"attributors/class/font":Oe,"attributors/class/size":we,"attributors/style/align":ce,"attributors/style/background":ye,"attributors/style/color":de,"attributors/style/direction":_e,"attributors/style/font":Ae,"attributors/style/size":Se},!0),un.register({"formats/align":ae,"formats/direction":be,"formats/indent":hn,"formats/background":ye,"formats/color":de,"formats/font":Oe,"formats/size":we,"formats/blockquote":yn,"formats/code-block":Z,"formats/header":_n,"formats/list":kn,"formats/bold":jn,"formats/code":X,"formats/italic":In,"formats/link":Dn,"formats/script":Kn,"formats/strike":Hn,"formats/underline":Zn,"formats/image":rr,"formats/video":cr,"formats/list/item":On,"modules/toolbar":dr},!0);var yr=un}(),r=r.default}()})); //# sourceMappingURL=vaadin-quill.min.js.map \ No newline at end of file diff --git a/vendor/vaadin-quill.min.js.map b/vendor/vaadin-quill.min.js.map index db17a31..b551c02 100644 --- a/vendor/vaadin-quill.min.js.map +++ b/vendor/vaadin-quill.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 0125640705042a07a362","webpack:///vaadin-quill.min.js","webpack:///./node_modules/parchment/src/parchment.ts","webpack:///./node_modules/parchment/src/registry.ts","webpack:///./blots/block.js","webpack:///./node_modules/extend/index.js","webpack:///./blots/inline.js","webpack:///./node_modules/quill-delta/lib/delta.js","webpack:///./core/quill.js","webpack:///./blots/text.js","webpack:///./core/logger.js","webpack:///./core/module.js","webpack:///./node_modules/parchment/src/attributor/attributor.ts","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/define-properties/index.js","webpack:///./formats/code.js","webpack:///./core/emitter.js","webpack:///./blots/break.js","webpack:///./formats/link.js","webpack:///./node_modules/parchment/src/blot/abstract/container.ts","webpack:///./node_modules/parchment/src/blot/abstract/format.ts","webpack:///./node_modules/parchment/src/blot/abstract/leaf.ts","webpack:///./node_modules/has-tostringtag/shams.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/quill-delta/lib/op.js","webpack:///./node_modules/clone/clone.js","webpack:///./blots/container.js","webpack:///./formats/color.js","webpack:///./node_modules/parchment/src/blot/abstract/shadow.ts","webpack:///./node_modules/parchment/src/attributor/store.ts","webpack:///./node_modules/parchment/src/attributor/class.ts","webpack:///./node_modules/parchment/src/attributor/style.ts","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./blots/cursor.js","webpack:///./core/selection.js","webpack:///./formats/align.js","webpack:///./formats/background.js","webpack:///./formats/direction.js","webpack:///./formats/font.js","webpack:///./formats/size.js","webpack:///./modules/keyboard.js","webpack:///./formats/bold.js","webpack:///./core/theme.js","webpack:///./blots/embed.js","webpack:///./core.js","webpack:///./node_modules/parchment/src/collection/linked-list.ts","webpack:///./node_modules/parchment/src/blot/scroll.ts","webpack:///./node_modules/parchment/src/blot/inline.ts","webpack:///./node_modules/parchment/src/blot/block.ts","webpack:///./node_modules/parchment/src/blot/embed.ts","webpack:///./node_modules/parchment/src/blot/text.ts","webpack:///./core/polyfill.js","webpack:///./node_modules/fast-diff/diff.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./core/editor.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./core/shadow-selection-polyfill.js","webpack:///./blots/scroll.js","webpack:///./modules/clipboard.js","webpack:///./modules/history.js","webpack:///./formats/indent.js","webpack:///./formats/blockquote.js","webpack:///./formats/header.js","webpack:///./formats/list.js","webpack:///./formats/italic.js","webpack:///./formats/script.js","webpack:///./formats/strike.js","webpack:///./formats/underline.js","webpack:///./formats/image.js","webpack:///./formats/video.js","webpack:///./modules/toolbar.js","webpack:///./vaadin-quill.js"],"names":["root","factory","exports","module","define","amd","self","this","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","find","query","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","input","match","ParchmentError","BlotClass","Node","TEXT_NODE","node","bubble","DATA_KEY","blot","parentNode","scope","ANY","types","attributes","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","split","classes","tags","tagName","TYPE","Definitions","_i","arguments","length","map","Definition","blotName","attrName","keyName","className","Array","isArray","toUpperCase","tagNames","forEach","tag","__extends","extendStatics","setPrototypeOf","__proto__","b","__","constructor","_super","message","_this","Error","_interopRequireDefault","obj","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","writable","bubbleFormats","formats","parent","statics","BlockEmbed","undefined","_createClass","defineProperties","target","props","descriptor","key","protoProps","staticProps","_get","receiver","Function","desc","getOwnPropertyDescriptor","getPrototypeOf","_extend2","_extend","_quillDelta2","_quillDelta","_parchment2","_parchment","_break2","_break","_inline2","_inline","_text2","_text","apply","_Parchment$Embed","domNode","Delta","insert","values","attribute","BLOCK_ATTRIBUTE","index","format","def","endsWith","block","insertBefore","next","insertAt","slice","BLOCK_BLOT","cache","_Parchment$Block","delta","descendants","reduce","leaf","Math","min","lines","text","shift","children","tail","line","ref","head","Break","remove","context","child","force","clone","defaultChild","allowedChildren","TextBlot","hasOwn","toStr","toString","gOPD","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","options","newValue","getProperty","extend","src","copy","copyIsArray","deep","_Parchment$Inline","compare","BLOT","isolate","wrap","offset","moveChildren","other","selfIndex","order","indexOf","otherIndex","diff","equal","op","NULL_CHARACTER","String","fromCharCode","ops","newOp","keys","push","retain","lastOp","unshift","splice","chop","pop","filter","predicate","partition","passed","failed","initial","changeLength","elem","delete","start","end","Infinity","iter","iterator","hasNext","nextOp","compose","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","concat","strings","prep","join","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","transform","priority","transformPosition","nextType","_defineProperty","expandConfig","container","userConfig","clipboard","keyboard","history","theme","Quill","DEFAULTS","import","Theme","themeConfig","config","moduleNames","moduleConfig","moduleClass","debug","error","toolbar","document","querySelector","modify","modifier","source","strict","isEnabled","Emitter","sources","USER","range","getSelection","oldDelta","editor","change","shiftRange","setSelection","SILENT","args","events","TEXT_CHANGE","emitter","emit","EDITOR_CHANGE","overload","API","pos","max","Range","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","done","err","_editor2","_editor","_emitter4","_emitter3","_module2","_module","_selection2","_selection","_logger2","_logger","_theme2","_theme","html","innerHTML","trim","classList","add","__quill","addContainer","setAttribute","scrollingContainer","scroll","whitelist","Editor","selection","Selection","addModule","init","on","type","toggle","isBlank","SCROLL_UPDATE","mutations","lastRange","update","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","logger","level","imports","path","overwrite","warn","startsWith","refNode","createElement","setRange","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","formatLine","formatText","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","getContents","getFormat","Number","MAX_VALUE","getRange","getText","hasFocus","embed","insertEmbed","insertText","contains","off","once","dangerouslyPasteHTML","removeFormat","deleted","applied","applyDelta","version","QUILL_VERSION","Module","_Parchment$Text","method","levels","console","namespace","ns","bind","newLevel","quill","attributeBit","ATTRIBUTE","item","canAdd","replace","removeAttribute","deepEqual","actual","expected","opts","is","objEquiv","isUndefinedOrNull","isBuffer","x","a","isArguments","aIsRegex","isRegex","bIsRegex","flags","isDate","getTime","aIsBuffer","bIsBuffer","ka","objectKeys","kb","e","sort","Date","hasSymbols","origDefineProperty","isFunction","fn","supportsDescriptors","_","predicates","getOwnPropertySymbols","Code","_block2","_block","_Inline","CodeBlock","_Block","textContent","frag","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","searchIndex","lastIndexOf","appendChild","prev","optimize","querySelectorAll","removeChild","unwrap","TAB","_eventemitter2","_eventemitter","EVENTS","EMITTERS","supportsRootNode","eventName","addEventListener","em","handleDOM","listeners","_EventEmitter","log","event","composedPath","containsNode","getRootNode","host","handler","EventEmitter","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","sanitize","url","protocols","anchor","href","protocol","Link","PROTOCOL_WHITELIST","SANITIZED_URL","makeBlot","childNodes","replaceChild","attach","linked_list_1","shadow_1","ContainerBlot","build","reverse","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","position","after","addedNodes","removedNodes","mutation","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","FormatBlot","toLowerCase","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","toStringTag","implementation","GetIntrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","applyBind","Iterator","lib","keepNull","retOp","substr","_instanceof","circular","depth","includeNonEnumerable","_clone","proto","nativeMap","nativeSet","nativePromise","resolve","reject","then","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","useBuffer","Buffer","allocUnsafe","allParents","allChildren","keyChild","valueChild","set","entryChild","attrs","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","global","ignoreCase","multiline","Map","Set","Promise","clonePrototype","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","prefix","ClassAttributor","result","camelize","parts","part","StyleAttributor","style","isArgs","origKeys","keysShim","originalKeys","shim","str","callee","sym","symObj","syms","propertyIsEnumerable","callBind","$indexOf","allowMissing","intrinsic","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","parseFloat","Proxy","RangeError","Reflect","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","string","first","last","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","numberIsNaN","$Object","dotAll","unicode","sticky","Cursor","textNode","createTextNode","CONTENTS","_length","data","composing","getNativeRange","restoreText","lastChild","startNode","startOffset","endNode","endOffset","restore","_toConsumableArray","arr2","from","_clone2","_deepEqual2","_deepEqual","mouseDown","rootDocument","cursor","savedRange","handleComposition","handleDragging","listenDOM","setTimeout","native","hackOffset","ShadowSelection","oldValue","setNativeRange","ignored","nativeRange","collapsed","scrollLength","createRange","setStart","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","startContainer","endContainer","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","makeEmbedArrowHandler","shiftKey","where","Keyboard","LEFT","altKey","RIGHT","getLeaf","handleBackspace","getLine","curFormats","prevFormats","DeltaOp","test","handleDelete","suffix","nextLength","nextFormats","handleDeleteRange","getLines","firstFormats","lastFormats","handleEnter","lineFormats","makeCodeBlockHandler","indent","scrollIndex","getIndex","makeFormatHandler","shortKey","normalize","binding","charCodeAt","SHORTKEY","_op2","_op","_quill2","_quill","navigator","platform","bindings","addBinding","ENTER","metaKey","ctrlKey","userAgent","BACKSPACE","listen","_Module","evt","which","keyCode","defaultPrevented","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","preventDefault","ESCAPE","UP","DOWN","list","cutoff","updateContents","header","Bold","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","_container2","_container","_cursor2","_cursor","_embed2","_embed","_scroll2","_scroll","_clipboard2","_clipboard","_history2","_history","_keyboard2","_keyboard","Clipboard","History","LinkedList","append","nodes","cur","curNode","ret","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","observer","MutationObserver","observe","disconnect","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","searchString","subjectString","floor","thisArg","execCommand","diff_main","text1","text2","cursor_pos","DIFF_EQUAL","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","DIFF_INSERT","DIFF_DELETE","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","x1","k1_offset","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","j","best_common","prefixLength","suffixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","fixed_diffs","left_d","right_d","has","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","k","equalsConstructorPrototypeIfNotBuggy","isObject","isString","theKeys","skipProto","skipConstructor","hasToStringTag","callBound","$toString","isStandardArguments","isLegacyArguments","supportsStandardArguments","origSymbol","hasSymbolSham","that","bound","binder","boundLength","boundArgs","Empty","getPolyfill","polyfill","$exec","isRegexMarker","badStringifier","throwRegexMarker","valueOf","toPrimitive","flagsBound","TypeErr","regex","getDay","tryDateObject","combineFormats","combined","merged","normalizeDelta","image","bullet","_code2","_code","ASCII","getDelta","consumeNextNewline","batchStart","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","cursorIndex","textBlot","CursorBlot","oldText","newText","Events","EE","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","len","removeListener","listener","removeAllListeners","addListener","setMaxListeners","prefixed","getActiveElement","active","shadowRoot","SUPPORTS_SHADOW_SELECTION","ShadowRoot","SUPPORTS_BEFORE_INPUT","InputEvent","getTargetRanges","IS_FIREFOX","IS_MSIE","IS_EDGE","processing","_ranges","windowSel","ranges","newRange","stopImmediatePropagation","isLine","_emitter2","_emitter","_Parchment$Scroll","batch","applyFormat","computeStyle","nodeType","ELEMENT_NODE","getComputedStyle","deltaEndsWith","endText","display","traverse","elementMatchers","textMatchers","matcher","childrenDelta","DOM_KEY","matchAlias","matchAttributor","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","matchBlot","matchBreak","matchIgnore","matchIndent","matchNewline","matchStyles","fontStyle","italic","fontWeight","bold","textIndent","matchText","whiteSpace","replacer","collapse","_extend3","CLIPBOARD_CONFIG","onPaste","matchers","selector","addMatcher","innerText","prepareMatching","paste","pair","matchVisual","endsWithNewlineChange","getLastChangeIndex","deleteLength","changeIndex","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","now","delay","maxStack","IndentClass","IdentAttributor","Blockquote","Header","ListItem","List","listEventHandler","_Container","hasAttribute","_bold2","_bold","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","_link2","_link","Video","_BlockEmbed","addButton","addControls","groups","controls","group","control","addSelect","option","Toolbar","handlers","addHandler","selectedIndex","selected","prompt","isActive","clean","direction","align","link","_core2","_core","_blockquote2","_blockquote","_header2","_header","_list2","_list","_italic2","_italic","_script2","_script","_strike2","_strike","_underline2","_underline","_image2","_image","_video2","_video","_toolbar2","_toolbar","Indent","InlineCode"],"mappings":"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","file":"vaadin-quill.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 132);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0125640705042a07a362","/*!\n * Quill Editor v1.3.6\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 132);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(54);\nvar inline_1 = __webpack_require__(55);\nvar block_1 = __webpack_require__(56);\nvar embed_1 = __webpack_require__(57);\nvar text_1 = __webpack_require__(58);\nvar attributor_1 = __webpack_require__(10);\nvar class_1 = __webpack_require__(29);\nvar style_1 = __webpack_require__(30);\nvar store_1 = __webpack_require__(28);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(15);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(60);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(23);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(59);\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(72);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(14);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(41);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(49);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.6\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar objectKeys = __webpack_require__(31);\nvar isArguments = __webpack_require__(62);\nvar is = __webpack_require__(66);\nvar isRegex = __webpack_require__(68);\nvar flags = __webpack_require__(69);\nvar isDate = __webpack_require__(71);\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keys = __webpack_require__(31);\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(73);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nvar EMITTERS = [];\nvar supportsRootNode = 'getRootNode' in document;\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n EMITTERS.forEach(function (em) {\n em.handleDOM.apply(em, args);\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n EMITTERS.push(_this);\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var target = event.composedPath ? event.composedPath()[0] : event.target;\n var containsNode = function containsNode(node, target) {\n if (!supportsRootNode || target.getRootNode() === document) {\n return node.contains(target);\n }\n\n while (!node.contains(target)) {\n var root = target.getRootNode();\n if (!root || !root.host) {\n return false;\n }\n target = root.host;\n }\n\n return true;\n };\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (target === node || containsNode(node, target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(53);\nvar shadow_1 = __webpack_require__(27);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(10);\nvar store_1 = __webpack_require__(28);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(27);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasSymbols = __webpack_require__(33);\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(64);\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(21);\nvar GetIntrinsic = __webpack_require__(35);\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(10);\nvar class_1 = __webpack_require__(29);\nvar style_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(10);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(10);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(32);\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(61);\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(35);\n\nvar callBind = __webpack_require__(22);\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __webpack_require__(63)();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = __webpack_require__(21);\nvar hasOwn = __webpack_require__(65);\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(36);\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(38);\n\nvar supportsDescriptors = __webpack_require__(12).supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(24);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(14);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _shadowSelectionPolyfill = __webpack_require__(74);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.rootDocument = this.root.getRootNode ? this.root.getRootNode() : document;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown && !_this.composing) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function (_, mutations) {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n\n if (native == null) return;\n\n // We might need to hack the offset on Safari, when we are dealing with the first character of a row.\n // This likely happens because of a race condition between quill's update method being called before the\n // selectionchange event being fired in the selection polyfill.\n var hackOffset = native.start.offset === 0 && native.start.offset === native.end.offset && _this.rootDocument.getSelection() instanceof _shadowSelectionPolyfill.ShadowSelection && mutations.some(function (a) {\n return a.type === 'characterData' && a.oldValue === '';\n }) ? 1 : 0;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n if (_this.root.contains(native.start.node) && _this.root.contains(native.end.node)) {\n _this.setNativeRange(native.start.node, native.start.offset + hackOffset, native.end.node, native.end.offset + hackOffset);\n }\n _this.update(_emitter4.default.sources.SILENT);\n } catch (ignored) {\n // ignore\n }\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = this.rootDocument.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.rootDocument.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = this.rootDocument.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(24);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(23);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 51 */,\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(15);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(40);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(50);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(75);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(76);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(77);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(47);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __webpack_require__(32); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasToStringTag = __webpack_require__(20)();\nvar callBound = __webpack_require__(34);\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = __webpack_require__(33);\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(21);\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(12);\nvar callBind = __webpack_require__(22);\n\nvar implementation = __webpack_require__(36);\nvar getPolyfill = __webpack_require__(37);\nvar shim = __webpack_require__(67);\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getPolyfill = __webpack_require__(37);\nvar define = __webpack_require__(12);\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar callBound = __webpack_require__(34);\nvar hasToStringTag = __webpack_require__(20)();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(12);\nvar callBind = __webpack_require__(22);\n\nvar implementation = __webpack_require__(38);\nvar getPolyfill = __webpack_require__(39);\nvar shim = __webpack_require__(70);\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar supportsDescriptors = __webpack_require__(12).supportsDescriptors;\nvar getPolyfill = __webpack_require__(39);\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = __webpack_require__(20)();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(23);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(40);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(15);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(24);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// see https://github.com/GoogleChromeLabs/shadow-selection-polyfill/issues/11\nvar SUPPORTS_SHADOW_SELECTION = typeof window.ShadowRoot.prototype.getSelection === 'function';\nvar SUPPORTS_BEFORE_INPUT = window.InputEvent && typeof window.InputEvent.prototype.getTargetRanges === 'function';\nvar IS_FIREFOX = window.navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\nvar IS_MSIE = !!(window.navigator.userAgent.match(/Trident/) && !window.navigator.userAgent.match(/MSIE/));\nvar IS_EDGE = window.navigator.userAgent.match(/Edge/);\n\nvar processing = false;\n\nvar ShadowSelection = exports.ShadowSelection = function () {\n function ShadowSelection() {\n _classCallCheck(this, ShadowSelection);\n\n this._ranges = [];\n }\n\n _createClass(ShadowSelection, [{\n key: 'getRangeAt',\n value: function getRangeAt(index) {\n return this._ranges[index];\n }\n }, {\n key: 'addRange',\n value: function addRange(range) {\n this._ranges.push(range);\n if (!processing) {\n var windowSel = window.getSelection();\n windowSel.removeAllRanges();\n windowSel.addRange(range);\n }\n }\n }, {\n key: 'removeAllRanges',\n value: function removeAllRanges() {\n this._ranges = [];\n }\n\n // todo: implement remaining `Selection` methods and properties.\n\n }, {\n key: 'rangeCount',\n get: function get() {\n return this._ranges.length;\n }\n }]);\n\n return ShadowSelection;\n}();\n\nfunction getActiveElement() {\n var active = document.activeElement;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n if (active && active.shadowRoot && active.shadowRoot.activeElement) {\n active = active.shadowRoot.activeElement;\n } else {\n break;\n }\n }\n\n return active;\n}\n\nif ((IS_FIREFOX || IS_MSIE || IS_EDGE) && !SUPPORTS_SHADOW_SELECTION) {\n window.ShadowRoot.prototype.getSelection = function () {\n return document.getSelection();\n };\n}\n\nif (!IS_FIREFOX && !SUPPORTS_SHADOW_SELECTION && SUPPORTS_BEFORE_INPUT) {\n var selection = new ShadowSelection();\n\n window.ShadowRoot.prototype.getSelection = function () {\n return selection;\n };\n\n window.addEventListener('selectionchange', function () {\n if (!processing) {\n processing = true;\n\n var active = getActiveElement();\n\n if (active && active.getAttribute('contenteditable') === 'true') {\n document.execCommand('indent');\n } else {\n selection.removeAllRanges();\n }\n\n processing = false;\n }\n }, true);\n\n window.addEventListener('beforeinput', function (event) {\n if (processing) {\n var ranges = event.getTargetRanges();\n var range = ranges[0];\n\n var newRange = new Range();\n\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(range.endContainer, range.endOffset);\n\n selection.removeAllRanges();\n selection.addRange(newRange);\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }, true);\n\n window.addEventListener('selectstart', function () {\n selection.removeAllRanges();\n }, true);\n}\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(14);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(15);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(42);\n\nvar _background = __webpack_require__(43);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(44);\n\nvar _font = __webpack_require__(45);\n\nvar _size = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: false\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchText = matchText;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(2);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(48);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(4);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(16);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(2);\n\nvar _link = __webpack_require__(16);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(5);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(8);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar supportsRootNode = 'getRootNode' in document;\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n var rootDocument = supportsRootNode ? quill.container.getRootNode() : document;\n _this.container = rootDocument.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(52);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(42);\n\nvar _direction = __webpack_require__(44);\n\nvar _indent = __webpack_require__(78);\n\nvar _blockquote = __webpack_require__(79);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(80);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(81);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(43);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(45);\n\nvar _size = __webpack_require__(46);\n\nvar _bold = __webpack_require__(48);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(82);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(16);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(83);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(84);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(85);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(86);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(87);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _toolbar = __webpack_require__(88);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import Icons from './ui/icons';\n// import Picker from './ui/picker';\n// import ColorPicker from './ui/color-picker';\n// import IconPicker from './ui/icon-picker';\n// import Tooltip from './ui/tooltip';\n\n// import BubbleTheme from './themes/bubble';\n// import SnowTheme from './themes/snow';\n\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n// import Formula from './modules/formula';\n// import Syntax from './modules/syntax';\n\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n // 'modules/formula': Formula,\n // 'modules/syntax': Syntax,\n 'modules/toolbar': _toolbar2.default\n\n // 'themes/bubble': BubbleTheme,\n // 'themes/snow': SnowTheme,\n\n // 'ui/icons': Icons,\n // 'ui/picker': Picker,\n // 'ui/icon-picker': IconPicker,\n // 'ui/color-picker': ColorPicker,\n // 'ui/tooltip': Tooltip\n}, true);\n\nexports.default = _core2.default;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// vaadin-quill.min.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./blot/abstract/container\");\nvar format_1 = require(\"./blot/abstract/format\");\nvar leaf_1 = require(\"./blot/abstract/leaf\");\nvar scroll_1 = require(\"./blot/scroll\");\nvar inline_1 = require(\"./blot/inline\");\nvar block_1 = require(\"./blot/block\");\nvar embed_1 = require(\"./blot/embed\");\nvar text_1 = require(\"./blot/text\");\nvar attributor_1 = require(\"./attributor/attributor\");\nvar class_1 = require(\"./attributor/class\");\nvar style_1 = require(\"./attributor/style\");\nvar store_1 = require(\"./attributor/store\");\nvar Registry = require(\"./registry\");\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/parchment.ts\n// module id = 0\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/registry.ts\n// module id = 1\n// module chunks = 0 1","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Break from './break';\nimport Inline from './inline';\nimport TextBlot from './text';\n\n\nconst NEWLINE_LENGTH = 1;\n\n\nclass BlockEmbed extends Parchment.Embed {\n attach() {\n super.attach();\n this.attributes = new Parchment.Attributor.Store(this.domNode);\n }\n\n delta() {\n return new Delta().insert(this.value(), extend(this.formats(), this.attributes.values()));\n }\n\n format(name, value) {\n let attribute = Parchment.query(name, Parchment.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n\n formatAt(index, length, name, value) {\n this.format(name, value);\n }\n\n insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n let block = Parchment.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n super.insertAt(index, value, def);\n }\n }\n}\nBlockEmbed.scope = Parchment.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nclass Block extends Parchment.Block {\n constructor(domNode) {\n super(domNode);\n this.cache = {};\n }\n\n delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(Parchment.Leaf).reduce((delta, leaf) => {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new Delta()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n\n deleteAt(index, length) {\n super.deleteAt(index, length);\n this.cache = {};\n }\n\n formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n\n insertAt(index, value, def) {\n if (def != null) return super.insertAt(index, value, def);\n if (value.length === 0) return;\n let lines = value.split('\\n');\n let text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n super.insertAt(Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n let block = this;\n lines.reduce(function(index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n\n insertBefore(blot, ref) {\n let head = this.children.head;\n super.insertBefore(blot, ref);\n if (head instanceof Break) {\n head.remove();\n }\n this.cache = {};\n }\n\n length() {\n if (this.cache.length == null) {\n this.cache.length = super.length() + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n\n moveChildren(target, ref) {\n super.moveChildren(target, ref);\n this.cache = {};\n }\n\n optimize(context) {\n super.optimize(context);\n this.cache = {};\n }\n\n path(index) {\n return super.path(index, true);\n }\n\n removeChild(child) {\n super.removeChild(child);\n this.cache = {};\n }\n\n split(index, force = false) {\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n let clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n let next = super.split(index, force);\n this.cache = {};\n return next;\n }\n }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [Inline, Parchment.Embed, TextBlot];\n\n\nfunction bubbleFormats(blot, formats = {}) {\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = extend(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\n\nexport { bubbleFormats, BlockEmbed, Block as default };\n\n\n\n// WEBPACK FOOTER //\n// ./blots/block.js","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/extend/index.js\n// module id = 3\n// module chunks = 0 1","import Text from './text';\nimport Parchment from 'parchment';\n\n\nclass Inline extends Parchment.Inline {\n static compare(self, other) {\n let selfIndex = Inline.order.indexOf(self);\n let otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n\n formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && Parchment.query(name, Parchment.Scope.BLOT)) {\n let blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n super.formatAt(index, length, name, value);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.parent instanceof Inline &&\n Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n let parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n}\nInline.allowedChildren = [Inline, Parchment.Embed, Text];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = [\n 'cursor', 'inline', // Must be lower\n 'underline', 'strike', 'italic', 'bold', 'script',\n 'link', 'code' // Must be higher\n];\n\n\nexport default Inline;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/inline.js","var diff = require('fast-diff');\nvar equal = require('deep-equal');\nvar extend = require('extend');\nvar op = require('./op');\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/quill-delta/lib/delta.js\n// module id = 5\n// module chunks = 0 1","import './polyfill';\nimport Delta from 'quill-delta';\nimport Editor from './editor';\nimport Emitter from './emitter';\nimport Module from './module';\nimport Parchment from 'parchment';\nimport Selection, { Range } from './selection';\nimport extend from 'extend';\nimport logger from './logger';\nimport Theme from './theme';\n\nlet debug = logger('quill');\n\n\nclass Quill {\n static debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n logger.level(limit);\n }\n\n static find(node) {\n return node.__quill || Parchment.find(node);\n }\n\n static import(name) {\n if (this.imports[name] == null) {\n debug.error(`Cannot import ${name}. Are you sure it was registered?`);\n }\n return this.imports[name];\n }\n\n static register(path, target, overwrite = false) {\n if (typeof path !== 'string') {\n let name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach((key) => {\n this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(`Overwriting ${path} with`, target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) &&\n target.blotName !== 'abstract') {\n Parchment.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n\n constructor(container, options = {}) {\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n let html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new Emitter();\n this.scroll = Parchment.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new Editor(this.scroll);\n this.selection = new Selection(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(Emitter.events.EDITOR_CHANGE, (type) => {\n if (type === Emitter.events.TEXT_CHANGE) {\n this.root.classList.toggle('ql-blank', this.editor.isBlank());\n }\n });\n this.emitter.on(Emitter.events.SCROLL_UPDATE, (source, mutations) => {\n let range = this.selection.lastRange;\n let index = range && range.length === 0 ? range.index : undefined;\n modify.call(this, () => {\n return this.editor.update(null, mutations, index);\n }, source);\n });\n let contents = this.clipboard.convert(`
${html}


`);\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n addContainer(container, refNode = null) {\n if (typeof container === 'string') {\n let className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n\n blur() {\n this.selection.setRange(null);\n }\n\n deleteText(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.deleteText(index, length);\n }, source, index, -1*length);\n }\n\n disable() {\n this.enable(false);\n }\n\n enable(enabled = true) {\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n\n focus() {\n let scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n\n format(name, value, source = Emitter.sources.API) {\n return modify.call(this, () => {\n let range = this.getSelection(true);\n let change = new Delta();\n if (range == null) {\n return change;\n } else if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n change = this.editor.formatLine(range.index, range.length, { [name]: value });\n } else if (range.length === 0) {\n this.selection.format(name, value);\n return change;\n } else {\n change = this.editor.formatText(range.index, range.length, { [name]: value });\n }\n this.setSelection(range, Emitter.sources.SILENT);\n return change;\n }, source);\n }\n\n formatLine(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n\n formatText(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n\n getBounds(index, length = 0) {\n let bounds;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n let containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n\n getContents(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getContents(index, length);\n }\n\n getFormat(index = this.getSelection(true), length = 0) {\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n\n getIndex(blot) {\n return blot.offset(this.scroll);\n }\n\n getLength() {\n return this.scroll.length();\n }\n\n getLeaf(index) {\n return this.scroll.leaf(index);\n }\n\n getLine(index) {\n return this.scroll.line(index);\n }\n\n getLines(index = 0, length = Number.MAX_VALUE) {\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n\n getModule(name) {\n return this.theme.modules[name];\n }\n\n getSelection(focus = false) {\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n\n getText(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getText(index, length);\n }\n\n hasFocus() {\n return this.selection.hasFocus();\n }\n\n insertEmbed(index, embed, value, source = Quill.sources.API) {\n return modify.call(this, () => {\n return this.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n\n insertText(index, text, name, value, source) {\n let formats;\n [index, , formats, source] = overload(index, 0, name, value, source);\n return modify.call(this, () => {\n return this.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n\n isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n\n off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n\n on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n\n once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n\n pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n\n removeFormat(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.removeFormat(index, length);\n }, source, index);\n }\n\n scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n\n setContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n let length = this.getLength();\n let deleted = this.editor.deleteText(0, length);\n let applied = this.editor.applyDelta(delta);\n let lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof(lastOp.insert) === 'string' && lastOp.insert[lastOp.insert.length-1] === '\\n') {\n this.editor.deleteText(this.getLength() - 1, 1);\n applied.delete(1);\n }\n let ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n\n setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n [index, length, , source] = overload(index, length, source);\n this.selection.setRange(new Range(index, length), source);\n if (source !== Emitter.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n\n setText(text, source = Emitter.sources.API) {\n let delta = new Delta().insert(text);\n return this.setContents(delta, source);\n }\n\n update(source = Emitter.sources.USER) {\n let change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n\n updateContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n return this.editor.applyDelta(delta, source);\n }, source, true);\n }\n}\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = Emitter.events;\nQuill.sources = Emitter.sources;\n// eslint-disable-next-line no-undef\nQuill.version = typeof(QUILL_VERSION) === 'undefined' ? 'dev' : QUILL_VERSION;\n\nQuill.imports = {\n 'delta' : Delta,\n 'parchment' : Parchment,\n 'core/module' : Module,\n 'core/theme' : Theme\n};\n\n\nfunction expandConfig(container, userConfig) {\n userConfig = extend(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = Theme;\n } else {\n userConfig.theme = Quill.import(`themes/${userConfig.theme}`);\n if (userConfig.theme == null) {\n throw new Error(`Invalid theme ${userConfig.theme}. Did you register it?`);\n }\n }\n let themeConfig = extend(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function(config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function(module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n let moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n let moduleConfig = moduleNames.reduce(function(config, name) {\n let moduleClass = Quill.import(`modules/${name}`);\n if (moduleClass == null) {\n debug.error(`Cannot load ${name} module. Are you sure you registered it?`);\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar &&\n userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = extend(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function(key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function(config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {\n return new Delta();\n }\n let range = index == null ? null : this.getSelection();\n let oldDelta = this.editor.delta;\n let change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, Emitter.sources.SILENT);\n }\n if (change.length() > 0) {\n let args = [Emitter.events.TEXT_CHANGE, change, oldDelta, source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n let formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if (typeof name === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || Emitter.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n let start, end;\n if (index instanceof Delta) {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n return index.transformPosition(pos, source !== Emitter.sources.USER);\n });\n } else {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n if (pos < index || (pos === index && source === Emitter.sources.USER)) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n }\n return new Range(start, end - start);\n}\n\n\nexport { expandConfig, overload, Quill as default };\n\n\n\n// WEBPACK FOOTER //\n// ./core/quill.js","import Parchment from 'parchment';\n\nclass TextBlot extends Parchment.Text { }\n\nexport default TextBlot;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/text.js","let levels = ['error', 'warn', 'log', 'info'];\nlet level = 'warn';\n\nfunction debug(method, ...args) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n console[method](...args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function(logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function(newLevel) {\n level = newLevel;\n};\n\n\nexport default namespace;\n\n\n\n// WEBPACK FOOTER //\n// ./core/logger.js","class Module {\n constructor(quill, options = {}) {\n this.quill = quill;\n this.options = options;\n }\n}\nModule.DEFAULTS = {};\n\n\nexport default Module;\n\n\n\n// WEBPACK FOOTER //\n// ./core/module.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../registry\");\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/attributor.ts\n// module id = 10\n// module chunks = 0 1","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deep-equal/index.js\n// module id = 11\n// module chunks = 0 1","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/define-properties/index.js\n// module id = 12\n// module chunks = 0 1","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Inline from '../blots/inline';\nimport TextBlot from '../blots/text';\n\n\nclass Code extends Inline {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\n\nclass CodeBlock extends Block {\n static create(value) {\n let domNode = super.create(value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n\n static formats() {\n return true;\n }\n\n delta() {\n let text = this.domNode.textContent;\n if (text.endsWith('\\n')) { // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce((delta, frag) => {\n return delta.insert(frag).insert('\\n', this.formats());\n }, new Delta());\n }\n\n format(name, value) {\n if (name === this.statics.blotName && value) return;\n let [text, ] = this.descendant(TextBlot, this.length() - 1);\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n super.format(name, value);\n }\n\n formatAt(index, length, name, value) {\n if (length === 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK) == null ||\n (name === this.statics.blotName && value === this.statics.formats(this.domNode))) {\n return;\n }\n let nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n let prevNewline = this.newlineIndex(index, true) + 1;\n let isolateLength = nextNewline - prevNewline + 1;\n let blot = this.isolate(prevNewline, isolateLength);\n let next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n\n insertAt(index, value, def) {\n if (def != null) return;\n let [text, offset] = this.descendant(TextBlot, index);\n text.insertAt(offset, value);\n }\n\n length() {\n let length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n\n newlineIndex(searchIndex, reverse = false) {\n if (!reverse) {\n let offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n\n optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(Parchment.create('text', '\\n'));\n }\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n super.replace(target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function(node) {\n let blot = Parchment.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof Parchment.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n}\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\n\nexport { Code, CodeBlock as default };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/code.js","import EventEmitter from 'eventemitter3';\nimport logger from './logger';\n\nconst debug = logger('quill:events');\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nconst EMITTERS = [];\nconst supportsRootNode = ('getRootNode' in document);\n\nEVENTS.forEach(function(eventName) {\n document.addEventListener(eventName, (...args) => {\n EMITTERS.forEach((em) => {\n em.handleDOM(...args);\n });\n });\n});\n\n\nclass Emitter extends EventEmitter {\n constructor() {\n super();\n this.listeners = {};\n EMITTERS.push(this);\n this.on('error', debug.error);\n }\n\n emit() {\n debug.log.apply(debug, arguments);\n super.emit.apply(this, arguments);\n }\n\n handleDOM(event, ...args) {\n const target = (event.composedPath ? event.composedPath()[0] : event.target);\n const containsNode = (node, target) => {\n if (!supportsRootNode || target.getRootNode() === document) {\n return node.contains(target);\n }\n\n while (!node.contains(target)) {\n const root = target.getRootNode();\n if (!root || !root.host) {\n return false;\n }\n target = root.host;\n }\n\n return true;\n };\n\n (this.listeners[event.type] || []).forEach(function({ node, handler }) {\n if (target === node || containsNode(node, target)) {\n handler(event, ...args);\n }\n });\n }\n\n listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node, handler })\n }\n}\n\nEmitter.events = {\n EDITOR_CHANGE : 'editor-change',\n SCROLL_BEFORE_UPDATE : 'scroll-before-update',\n SCROLL_OPTIMIZE : 'scroll-optimize',\n SCROLL_UPDATE : 'scroll-update',\n SELECTION_CHANGE : 'selection-change',\n TEXT_CHANGE : 'text-change'\n};\nEmitter.sources = {\n API : 'api',\n SILENT : 'silent',\n USER : 'user'\n};\n\n\nexport default Emitter;\n\n\n\n// WEBPACK FOOTER //\n// ./core/emitter.js","import Parchment from 'parchment';\n\n\nclass Break extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n insertInto(parent, ref) {\n if (parent.children.length === 0) {\n super.insertInto(parent, ref);\n } else {\n this.remove();\n }\n }\n\n length() {\n return 0;\n }\n\n value() {\n return '';\n }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\n\nexport default Break;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/break.js","import Inline from '../blots/inline';\n\n\nclass Link extends Inline {\n static create(value) {\n let node = super.create(value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('target', '_blank');\n return node;\n }\n\n static formats(domNode) {\n return domNode.getAttribute('href');\n }\n\n static sanitize(url) {\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n\n format(name, value) {\n if (name !== this.statics.blotName || !value) return super.format(name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n}\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\n\nfunction sanitize(url, protocols) {\n let anchor = document.createElement('a');\n anchor.href = url;\n let protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\nexport { Link as default, sanitize };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/link.js","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = require(\"../../collection/linked-list\");\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/container.ts\n// module id = 17\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"../../attributor/attributor\");\nvar store_1 = require(\"../../attributor/store\");\nvar container_1 = require(\"./container\");\nvar Registry = require(\"../../registry\");\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/format.ts\n// module id = 18\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/leaf.ts\n// module id = 19\n// module chunks = 0 1","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-tostringtag/shams.js\n// module id = 20\n// module chunks = 0 1","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/function-bind/index.js\n// module id = 21\n// module chunks = 0 1","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/call-bind/index.js\n// module id = 22\n// module chunks = 0 1","var equal = require('deep-equal');\nvar extend = require('extend');\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/quill-delta/lib/op.js\n// module id = 23\n// module chunks = 0 1","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/clone/clone.js\n// module id = 24\n// module chunks = 0 1","import Parchment from 'parchment';\nimport Block, { BlockEmbed } from './block';\n\n\nclass Container extends Parchment.Container { }\nContainer.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Container;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/container.js","import Parchment from 'parchment';\n\nclass ColorAttributor extends Parchment.Attributor.Style {\n value(domNode) {\n let value = super.value(domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function(component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n}\n\nlet ColorClass = new Parchment.Attributor.Class('color', 'ql-color', {\n scope: Parchment.Scope.INLINE\n});\nlet ColorStyle = new ColorAttributor('color', 'color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { ColorAttributor, ColorClass, ColorStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/color.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../../registry\");\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/shadow.ts\n// module id = 27\n// module chunks = 0 1","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nvar class_1 = require(\"./class\");\nvar style_1 = require(\"./style\");\nvar Registry = require(\"../registry\");\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/store.ts\n// module id = 28\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/class.ts\n// module id = 29\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/style.ts\n// module id = 30\n// module chunks = 0 1","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-keys/index.js\n// module id = 31\n// module chunks = 0 1","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-keys/isArguments.js\n// module id = 32\n// module chunks = 0 1","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-symbols/shams.js\n// module id = 33\n// module chunks = 0 1","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/call-bind/callBound.js\n// module id = 34\n// module chunks = 0 1","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/get-intrinsic/index.js\n// module id = 35\n// module chunks = 0 1","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-is/implementation.js\n// module id = 36\n// module chunks = 0 1","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-is/polyfill.js\n// module id = 37\n// module chunks = 0 1","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/implementation.js\n// module id = 38\n// module chunks = 0 1","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/polyfill.js\n// module id = 39\n// module chunks = 0 1","import Parchment from 'parchment';\nimport TextBlot from './text';\n\n\nclass Cursor extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n constructor(domNode, selection) {\n super(domNode);\n this.selection = selection;\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n this._length = 0;\n }\n\n detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n\n format(name, value) {\n if (this._length !== 0) {\n return super.format(name, value);\n }\n let target = this, index = 0;\n while (target != null && target.statics.scope !== Parchment.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n\n index(node, offset) {\n if (node === this.textNode) return 0;\n return super.index(node, offset);\n }\n\n length() {\n return this._length;\n }\n\n position() {\n return [this.textNode, this.textNode.data.length];\n }\n\n remove() {\n super.remove();\n this.parent = null;\n }\n\n restore() {\n if (this.selection.composing || this.parent == null) return;\n let textNode = this.textNode;\n let range = this.selection.getNativeRange();\n let restoreText, start, end;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n [restoreText, start, end] = [textNode, range.start.offset, range.end.offset];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n let text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof TextBlot) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(Parchment.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n [start, end] = [start, end].map(function(offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n\n update(mutations, context) {\n if (mutations.some((mutation) => {\n return mutation.type === 'characterData' && mutation.target === this.textNode;\n })) {\n let range = this.restore();\n if (range) context.range = range;\n }\n }\n\n value() {\n return '';\n }\n}\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n\nexport default Cursor;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/cursor.js","import Parchment from 'parchment';\nimport clone from 'clone';\nimport equal from 'deep-equal';\nimport Emitter from './emitter';\nimport logger from './logger';\nimport { ShadowSelection } from './shadow-selection-polyfill';\n\nconst debug = logger('quill:selection');\n\nclass Range {\n constructor(index, length = 0) {\n this.index = index;\n this.length = length;\n }\n}\n\n\nclass Selection {\n constructor(scroll, emitter) {\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.rootDocument = (this.root.getRootNode ? this.root.getRootNode() : document);\n this.cursor = Parchment.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, () => {\n if (!this.mouseDown && !this.composing) {\n setTimeout(this.update.bind(this, Emitter.sources.USER), 1);\n }\n });\n this.emitter.on(Emitter.events.SCROLL_BEFORE_UPDATE, (_, mutations) => {\n if (!this.hasFocus()) return;\n const native = this.getNativeRange();\n\n if (native == null) return;\n\n // We might need to hack the offset on Safari, when we are dealing with the first character of a row.\n // This likely happens because of a race condition between quill's update method being called before the\n // selectionchange event being fired in the selection polyfill.\n const hackOffset = (native.start.offset === 0 &&\n native.start.offset === native.end.offset &&\n this.rootDocument.getSelection() instanceof ShadowSelection &&\n mutations.some((a) => a.type === 'characterData' && a.oldValue === '')) ? 1 : 0;\n if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n this.emitter.once(Emitter.events.SCROLL_UPDATE, () => {\n try {\n if (\n this.root.contains(native.start.node) &&\n this.root.contains(native.end.node)\n ) {\n this.setNativeRange(\n native.start.node,\n native.start.offset + hackOffset,\n native.end.node,\n native.end.offset + hackOffset\n );\n }\n this.update(Emitter.sources.SILENT);\n } catch (ignored) {\n // ignore\n }\n });\n });\n this.emitter.on(Emitter.events.SCROLL_OPTIMIZE, (mutations, context) => {\n if (context.range) {\n const { startNode, startOffset, endNode, endOffset } = context.range;\n this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(Emitter.sources.SILENT);\n }\n\n handleComposition() {\n this.root.addEventListener('compositionstart', () => {\n this.composing = true;\n });\n this.root.addEventListener('compositionend', () => {\n this.composing = false;\n if (this.cursor.parent) {\n const range = this.cursor.restore();\n if (!range) return;\n setTimeout(() => {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n\n handleDragging() {\n this.emitter.listenDOM('mousedown', document.body, () => {\n this.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, () => {\n this.mouseDown = false;\n this.update(Emitter.sources.USER);\n });\n }\n\n focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n\n format(format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n this.scroll.update();\n let nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || Parchment.query(format, Parchment.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n let blot = Parchment.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof Parchment.Leaf) {\n let after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n\n getBounds(index, length = 0) {\n let scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n let node, [leaf, offset] = this.scroll.leaf(index);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n let range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n [leaf, offset] = this.scroll.leaf(index + length);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n let side = 'left';\n let rect;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n\n getNativeRange() {\n const selection = this.rootDocument.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n const nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n let range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n\n getRange() {\n let normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n let range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n\n hasFocus() {\n return this.rootDocument.activeElement === this.root;\n }\n\n normalizedToRange(range) {\n let positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n let indexes = positions.map((position) => {\n let [node, offset] = position;\n let blot = Parchment.find(node, true);\n let index = blot.offset(this.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof Parchment.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n let end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n let start = Math.min(end, ...indexes);\n return new Range(start, end-start);\n }\n\n normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) ||\n (!nativeRange.collapsed && !contains(this.root, nativeRange.endContainer))) {\n return null;\n }\n let range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function(position) {\n let node = position.node, offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n\n rangeToNative(range) {\n let indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n let args = [];\n let scrollLength = this.scroll.length();\n indexes.forEach((index, i) => {\n index = Math.min(scrollLength - 1, index);\n let node, [leaf, offset] = this.scroll.leaf(index);\n [node, offset] = leaf.position(offset, i !== 0);\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n\n scrollIntoView(scrollingContainer) {\n let range = this.lastRange;\n if (range == null) return;\n let bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n let limit = this.scroll.length()-1;\n let [first, ] = this.scroll.line(Math.min(range.index, limit));\n let last = first;\n if (range.length > 0) {\n [last, ] = this.scroll.line(Math.min(range.index + range.length, limit));\n }\n if (first == null || last == null) return;\n let scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= (scrollBounds.top - bounds.top);\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += (bounds.bottom - scrollBounds.bottom);\n }\n }\n\n setNativeRange(startNode, startOffset, endNode = startNode, endOffset = startOffset, force = false) {\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n const selection = this.rootDocument.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n let native = (this.getNativeRange() || {}).native;\n if (native == null || force ||\n startNode !== native.startContainer ||\n startOffset !== native.startOffset ||\n endNode !== native.endContainer ||\n endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n let range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n\n setRange(range, force = false, source = Emitter.sources.API) {\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n let args = this.rangeToNative(range);\n this.setNativeRange(...args, force);\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n\n update(source = Emitter.sources.USER) {\n let oldRange = this.lastRange;\n let [lastRange, nativeRange] = this.getRange();\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!equal(oldRange, this.lastRange)) {\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n let args = [Emitter.events.SELECTION_CHANGE, clone(this.lastRange), clone(oldRange), source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n }\n}\n\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\n\nexport { Range, Selection as default };\n\n\n\n// WEBPACK FOOTER //\n// ./core/selection.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nlet AlignAttribute = new Parchment.Attributor.Attribute('align', 'align', config);\nlet AlignClass = new Parchment.Attributor.Class('align', 'ql-align', config);\nlet AlignStyle = new Parchment.Attributor.Style('align', 'text-align', config);\n\nexport { AlignAttribute, AlignClass, AlignStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/align.js","import Parchment from 'parchment';\nimport { ColorAttributor } from './color';\n\nlet BackgroundClass = new Parchment.Attributor.Class('background', 'ql-bg', {\n scope: Parchment.Scope.INLINE\n});\nlet BackgroundStyle = new ColorAttributor('background', 'background-color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { BackgroundClass, BackgroundStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/background.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nlet DirectionAttribute = new Parchment.Attributor.Attribute('direction', 'dir', config);\nlet DirectionClass = new Parchment.Attributor.Class('direction', 'ql-direction', config);\nlet DirectionStyle = new Parchment.Attributor.Style('direction', 'direction', config);\n\nexport { DirectionAttribute, DirectionClass, DirectionStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/direction.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nlet FontClass = new Parchment.Attributor.Class('font', 'ql-font', config);\n\nclass FontStyleAttributor extends Parchment.Attributor.Style {\n value(node) {\n return super.value(node).replace(/[\"']/g, '');\n }\n}\n\nlet FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexport { FontStyle, FontClass };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/font.js","import Parchment from 'parchment';\n\nlet SizeClass = new Parchment.Attributor.Class('size', 'ql-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nlet SizeStyle = new Parchment.Attributor.Style('size', 'font-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexport { SizeClass, SizeStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/size.js","import clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\nimport Delta from 'quill-delta';\nimport DeltaOp from 'quill-delta/lib/op';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nlet debug = logger('quill:keyboard');\n\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\n\nclass Keyboard extends Module {\n static match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function(key) {\n return (!!binding[key] !== evt[key] && binding[key] !== null);\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n\n constructor(quill, options) {\n super(quill, options);\n this.bindings = {};\n Object.keys(this.options.bindings).forEach((name) => {\n if (name === 'list autofill' &&\n quill.scroll.whitelist != null &&\n !quill.scroll.whitelist['list']) {\n return;\n }\n if (this.options.bindings[name]) {\n this.addBinding(this.options.bindings[name]);\n }\n });\n this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function() {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null },\n { collapsed: true, offset: 0 },\n handleBackspace);\n this.listen();\n }\n\n addBinding(key, context = {}, handler = {}) {\n let binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = extend(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n\n listen() {\n this.quill.root.addEventListener('keydown', (evt) => {\n if (evt.defaultPrevented) return;\n let which = evt.which || evt.keyCode;\n let bindings = (this.bindings[which] || []).filter(function(binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n let range = this.quill.getSelection();\n if (range == null || !this.quill.hasFocus()) return;\n let [line, offset] = this.quill.getLine(range.index);\n let [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n let [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n let prefixText = leafStart instanceof Parchment.Text ? leafStart.value().slice(0, offsetStart) : '';\n let suffixText = leafEnd instanceof Parchment.Text ? leafEnd.value().slice(offsetEnd) : '';\n let curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: this.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n let prevented = bindings.some((binding) => {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function(name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (typeof binding.format === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function(name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return equal(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(this, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n}\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold' : makeFormatHandler('bold'),\n 'italic' : makeFormatHandler('italic'),\n 'underline' : makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', Quill.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', Quill.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', Quill.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, Quill.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function(range) {\n this.quill.deleteText(range.index - 1, 1, Quill.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function(range) {\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index)\n .delete(range.length)\n .insert('\\t');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function(range, context) {\n this.quill.format('list', false, Quill.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, Quill.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function(range) {\n let [line, offset] = this.quill.getLine(range.index);\n let formats = extend({}, line.formats(), { list: 'checked' });\n let delta = new Delta().retain(range.index)\n .insert('\\n', formats)\n .retain(line.length() - offset - 1)\n .retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function(range, context) {\n let [line, offset] = this.quill.getLine(range.index);\n let delta = new Delta().retain(range.index)\n .insert('\\n', context.format)\n .retain(line.length() - offset - 1)\n .retain(1, { header: null });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function(range, context) {\n let length = context.prefix.length;\n let [line, offset] = this.quill.getLine(range.index);\n if (offset > length) return true;\n let value;\n switch (context.prefix.trim()) {\n case '[]': case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-': case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', Quill.sources.USER);\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index - offset)\n .delete(length + 1)\n .retain(line.length() - 2 - offset)\n .retain(1, { list: value });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, Quill.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function(range) {\n const [line, offset] = this.quill.getLine(range.index);\n const delta = new Delta()\n .retain(range.index + line.length() - offset - 2)\n .retain(1, { 'code-block': null })\n .delete(1);\n this.quill.updateContents(delta, Quill.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n const where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return {\n key,\n shiftKey,\n altKey: null,\n [where]: /^$/,\n handler: function(range) {\n let index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += (range.length + 1);\n }\n const [leaf, ] = this.quill.getLeaf(index);\n if (!(leaf instanceof Parchment.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, Quill.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, Quill.sources.USER);\n }\n }\n return false;\n }\n };\n}\n\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n let [line, ] = this.quill.getLine(range.index);\n let formats = {};\n if (context.offset === 0) {\n let [prev, ] = this.quill.getLine(range.index - 1);\n if (prev != null && prev.length() > 1) {\n let curFormats = line.formats();\n let prevFormats = this.quill.getFormat(range.index-1, 1);\n formats = DeltaOp.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n let length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index-length, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index-length, length, formats, Quill.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n let length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n let formats = {}, nextLength = 0;\n let [line, ] = this.quill.getLine(range.index);\n if (context.offset >= line.length() - 1) {\n let [next, ] = this.quill.getLine(range.index + 1);\n if (next) {\n let curFormats = line.formats();\n let nextFormats = this.quill.getFormat(range.index, 1);\n formats = DeltaOp.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, Quill.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n let lines = this.quill.getLines(range);\n let formats = {};\n if (lines.length > 1) {\n let firstFormats = lines[0].formats();\n let lastFormats = lines[lines.length - 1].formats();\n formats = DeltaOp.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, Quill.sources.USER);\n }\n this.quill.setSelection(range.index, Quill.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n let lineFormats = Object.keys(context.format).reduce(function(lineFormats, format) {\n if (Parchment.query(format, Parchment.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, Quill.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach((name) => {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n this.quill.format(name, context.format[name], Quill.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: {'code-block': true },\n handler: function(range) {\n let CodeBlock = Parchment.query('code-block');\n let index = range.index, length = range.length;\n let [block, offset] = this.quill.scroll.descendant(CodeBlock, index);\n if (block == null) return;\n let scrollIndex = this.quill.getIndex(block);\n let start = block.newlineIndex(offset, true) + 1;\n let end = block.newlineIndex(scrollIndex + offset + length);\n let lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach((line, i) => {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(Quill.sources.USER);\n this.quill.setSelection(index, length, Quill.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function(range, context) {\n this.quill.format(format, !context.format[format], Quill.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if (typeof binding === 'object') {\n binding = clone(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\n\nexport { Keyboard as default, SHORTKEY };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/keyboard.js","import Inline from '../blots/inline';\n\nclass Bold extends Inline {\n static create() {\n return super.create();\n }\n\n static formats() {\n return true;\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n}\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexport default Bold;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/bold.js","class Theme {\n constructor(quill, options) {\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n init() {\n Object.keys(this.options.modules).forEach((name) => {\n if (this.modules[name] == null) {\n this.addModule(name);\n }\n });\n }\n\n addModule(name) {\n let moduleClass = this.quill.constructor.import(`modules/${name}`);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n}\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\n\nexport default Theme;\n\n\n\n// WEBPACK FOOTER //\n// ./core/theme.js","import Parchment from 'parchment';\nimport TextBlot from './text';\n\nconst GUARD_TEXT = \"\\uFEFF\";\n\n\nclass Embed extends Parchment.Embed {\n constructor(node) {\n super(node);\n this.contentNode = document.createElement('span');\n this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(this.domNode.childNodes).forEach((childNode) => {\n this.contentNode.appendChild(childNode);\n });\n this.leftGuard = document.createTextNode(GUARD_TEXT);\n this.rightGuard = document.createTextNode(GUARD_TEXT);\n this.domNode.appendChild(this.leftGuard);\n this.domNode.appendChild(this.contentNode);\n this.domNode.appendChild(this.rightGuard);\n }\n\n index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return super.index(node, offset);\n }\n\n restore(node) {\n let range, textNode;\n let text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof TextBlot) {\n let prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof TextBlot) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n }\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n\n update(mutations, context) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData' &&\n (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n let range = this.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n}\n\n\nexport default Embed;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/embed.js","import Parchment from 'parchment';\nimport Quill from './core/quill';\n\nimport Block, { BlockEmbed } from './blots/block';\nimport Break from './blots/break';\nimport Container from './blots/container';\nimport Cursor from './blots/cursor';\nimport Embed from './blots/embed';\nimport Inline from './blots/inline';\nimport Scroll from './blots/scroll';\nimport TextBlot from './blots/text';\n\nimport Clipboard from './modules/clipboard';\nimport History from './modules/history';\nimport Keyboard from './modules/keyboard';\n\nQuill.register({\n 'blots/block' : Block,\n 'blots/block/embed' : BlockEmbed,\n 'blots/break' : Break,\n 'blots/container' : Container,\n 'blots/cursor' : Cursor,\n 'blots/embed' : Embed,\n 'blots/inline' : Inline,\n 'blots/scroll' : Scroll,\n 'blots/text' : TextBlot,\n\n 'modules/clipboard' : Clipboard,\n 'modules/history' : History,\n 'modules/keyboard' : Keyboard\n});\n\nParchment.register(Block, Break, Cursor, Inline, Scroll, TextBlot);\n\n\nexport default Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./core.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/collection/linked-list.ts\n// module id = 53\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./abstract/container\");\nvar Registry = require(\"../registry\");\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/scroll.ts\n// module id = 54\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/inline.ts\n// module id = 55\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/block.ts\n// module id = 56\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/embed.ts\n// module id = 57\n// module chunks = 0 1","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar Registry = require(\"../registry\");\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/text.ts\n// module id = 58\n// module chunks = 0 1","let elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n let _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function(token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position){\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function(searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./core/polyfill.js","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fast-diff/diff.js\n// module id = 60\n// module chunks = 0 1","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-keys/implementation.js\n// module id = 61\n// module chunks = 0 1","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-arguments/index.js\n// module id = 62\n// module chunks = 0 1","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-symbols/index.js\n// module id = 63\n// module chunks = 0 1","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/function-bind/implementation.js\n// module id = 64\n// module chunks = 0 1","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has/src/index.js\n// module id = 65\n// module chunks = 0 1","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-is/index.js\n// module id = 66\n// module chunks = 0 1","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-is/shim.js\n// module id = 67\n// module chunks = 0 1","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-regex/index.js\n// module id = 68\n// module chunks = 0 1","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/index.js\n// module id = 69\n// module chunks = 0 1","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/shim.js\n// module id = 70\n// module chunks = 0 1","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-date-object/index.js\n// module id = 71\n// module chunks = 0 1","import Delta from 'quill-delta';\nimport DeltaOp from 'quill-delta/lib/op';\nimport Parchment from 'parchment';\nimport CodeBlock from '../formats/code';\nimport CursorBlot from '../blots/cursor';\nimport Block, { bubbleFormats } from '../blots/block';\nimport Break from '../blots/break';\nimport clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\n\n\nconst ASCII = /^[ -~]*$/;\n\n\nclass Editor {\n constructor(scroll) {\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n applyDelta(delta) {\n let consumeNextNewline = false;\n this.scroll.update();\n let scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce((index, op) => {\n let length = op.retain || op.delete || op.insert.length || 1;\n let attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n let text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n this.scroll.insertAt(index, text);\n let [line, offset] = this.scroll.line(index);\n let formats = extend({}, bubbleFormats(line));\n if (line instanceof Block) {\n let [leaf, ] = line.descendant(Parchment.Leaf, offset);\n formats = extend(formats, bubbleFormats(leaf));\n }\n attributes = DeltaOp.attributes.diff(formats, attributes) || {};\n } else if (typeof op.insert === 'object') {\n let key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach((name) => {\n this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce((index, op) => {\n if (typeof op.delete === 'number') {\n this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n\n deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new Delta().retain(index).delete(length));\n }\n\n formatLine(index, length, formats = {}) {\n this.scroll.update();\n Object.keys(formats).forEach((format) => {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n let lines = this.scroll.lines(index, Math.max(length, 1));\n let lengthRemaining = length;\n lines.forEach((line) => {\n let lineLength = line.length();\n if (!(line instanceof CodeBlock)) {\n line.format(format, formats[format]);\n } else {\n let codeIndex = index - line.offset(this.scroll);\n let codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new Delta().retain(index).retain(length, clone(formats)));\n }\n\n formatText(index, length, formats = {}) {\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).retain(length, clone(formats)));\n }\n\n getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n\n getDelta() {\n return this.scroll.lines().reduce((delta, line) => {\n return delta.concat(line.delta());\n }, new Delta());\n }\n\n getFormat(index, length = 0) {\n let lines = [], leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function(path) {\n let [blot, ] = path;\n if (blot instanceof Block) {\n lines.push(blot);\n } else if (blot instanceof Parchment.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(Parchment.Leaf, index, length);\n }\n let formatsArr = [lines, leaves].map(function(blots) {\n if (blots.length === 0) return {};\n let formats = bubbleFormats(blots.shift());\n while (Object.keys(formats).length > 0) {\n let blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(bubbleFormats(blot), formats);\n }\n return formats;\n });\n return extend.apply(extend, formatsArr);\n }\n\n getText(index, length) {\n return this.getContents(index, length).filter(function(op) {\n return typeof op.insert === 'string';\n }).map(function(op) {\n return op.insert;\n }).join('');\n }\n\n insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new Delta().retain(index).insert({ [embed]: value }));\n }\n\n insertText(index, text, formats = {}) {\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).insert(text, clone(formats)));\n }\n\n isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n let block = this.scroll.children.head;\n if (block.statics.blotName !== Block.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof Break;\n }\n\n removeFormat(index, length) {\n let text = this.getText(index, length);\n let [line, offset] = this.scroll.line(index + length);\n let suffixLength = 0, suffix = new Delta();\n if (line != null) {\n if (!(line instanceof CodeBlock)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n let contents = this.getContents(index, length + suffixLength);\n let diff = contents.diff(new Delta().insert(text).concat(suffix));\n let delta = new Delta().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n\n update(change, mutations = [], cursorIndex = undefined) {\n let oldDelta = this.delta;\n if (mutations.length === 1 &&\n mutations[0].type === 'characterData' &&\n mutations[0].target.data.match(ASCII) &&\n Parchment.find(mutations[0].target)) {\n // Optimization for character changes\n let textBlot = Parchment.find(mutations[0].target);\n let formats = bubbleFormats(textBlot);\n let index = textBlot.offset(this.scroll);\n let oldValue = mutations[0].oldValue.replace(CursorBlot.CONTENTS, '');\n let oldText = new Delta().insert(oldValue);\n let newText = new Delta().insert(textBlot.value());\n let diffDelta = new Delta().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function(delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new Delta());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !equal(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n}\n\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function(merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function(delta, op) {\n if (op.insert === 1) {\n let attributes = clone(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = clone(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n let text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new Delta());\n}\n\n\nexport default Editor;\n\n\n\n// WEBPACK FOOTER //\n// ./core/editor.js","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/eventemitter3/index.js\n// module id = 73\n// module chunks = 0 1","// see https://github.com/GoogleChromeLabs/shadow-selection-polyfill/issues/11\nconst SUPPORTS_SHADOW_SELECTION = typeof window.ShadowRoot.prototype.getSelection === 'function';\nconst SUPPORTS_BEFORE_INPUT = window.InputEvent && typeof window.InputEvent.prototype.getTargetRanges === 'function';\nconst IS_FIREFOX = window.navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\nconst IS_MSIE = !!(window.navigator.userAgent.match(/Trident/) && !window.navigator.userAgent.match(/MSIE/));\nconst IS_EDGE = window.navigator.userAgent.match(/Edge/);\n\nlet processing = false;\nexport class ShadowSelection {\n constructor() {\n this._ranges = [];\n }\n\n get rangeCount() {\n return this._ranges.length;\n }\n\n getRangeAt(index) {\n return this._ranges[index];\n }\n\n addRange(range) {\n this._ranges.push(range);\n if (!processing) {\n let windowSel = window.getSelection();\n windowSel.removeAllRanges();\n windowSel.addRange(range);\n }\n }\n\n removeAllRanges() {\n this._ranges = [];\n }\n\n // todo: implement remaining `Selection` methods and properties.\n}\n\nfunction getActiveElement() {\n let active = document.activeElement;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n if (active && active.shadowRoot && active.shadowRoot.activeElement) {\n active = active.shadowRoot.activeElement;\n } else {\n break;\n }\n }\n\n return active;\n}\n\nif ((IS_FIREFOX || IS_MSIE || IS_EDGE) && !SUPPORTS_SHADOW_SELECTION) {\n window.ShadowRoot.prototype.getSelection = function() {\n return document.getSelection();\n }\n}\n\nif (!IS_FIREFOX && !SUPPORTS_SHADOW_SELECTION && SUPPORTS_BEFORE_INPUT) {\n let selection = new ShadowSelection();\n\n window.ShadowRoot.prototype.getSelection = function() {\n return selection;\n }\n\n window.addEventListener('selectionchange', () => {\n if (!processing) {\n processing = true;\n\n const active = getActiveElement();\n\n if (active && (active.getAttribute('contenteditable') === 'true')) {\n document.execCommand('indent');\n } else {\n selection.removeAllRanges();\n }\n\n processing = false;\n }\n }, true);\n\n window.addEventListener('beforeinput', (event) => {\n if (processing) {\n const ranges = event.getTargetRanges();\n const range = ranges[0];\n\n const newRange = new Range();\n\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(range.endContainer, range.endOffset);\n\n selection.removeAllRanges();\n selection.addRange(newRange);\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }, true);\n\n window.addEventListener('selectstart', () => {\n selection.removeAllRanges();\n }, true);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./core/shadow-selection-polyfill.js","import Parchment from 'parchment';\nimport Emitter from '../core/emitter';\nimport Block, { BlockEmbed } from './block';\nimport Break from './break';\nimport CodeBlock from '../formats/code';\nimport Container from './container';\n\n\nfunction isLine(blot) {\n return (blot instanceof Block || blot instanceof BlockEmbed);\n}\n\n\nclass Scroll extends Parchment.Scroll {\n constructor(domNode, config) {\n super(domNode);\n this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n this.whitelist = config.whitelist.reduce(function(whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n this.optimize();\n this.enable();\n }\n\n batchStart() {\n this.batch = true;\n }\n\n batchEnd() {\n this.batch = false;\n this.optimize();\n }\n\n deleteAt(index, length) {\n let [first, offset] = this.line(index);\n let [last, ] = this.line(index + length);\n super.deleteAt(index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof BlockEmbed || last instanceof BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof CodeBlock) {\n let newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof CodeBlock) {\n let newlineIndex = last.newlineIndex(0);\n if (newlineIndex > -1) {\n last.split(newlineIndex + 1);\n }\n }\n let ref = last.children.head instanceof Break ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n\n enable(enabled = true) {\n this.domNode.setAttribute('contenteditable', enabled);\n }\n\n formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n super.formatAt(index, length, format, value);\n this.optimize();\n }\n\n insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || Parchment.query(value, Parchment.Scope.BLOCK) == null) {\n let blot = Parchment.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n let embed = Parchment.create(value, def);\n this.appendChild(embed);\n }\n } else {\n super.insertAt(index, value, def);\n }\n this.optimize();\n }\n\n insertBefore(blot, ref) {\n if (blot.statics.scope === Parchment.Scope.INLINE_BLOT) {\n let wrapper = Parchment.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n super.insertBefore(blot, ref);\n }\n\n leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n\n line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n\n lines(index = 0, length = Number.MAX_VALUE) {\n let getLines = (blot, index, length) => {\n let lines = [], lengthLeft = length;\n blot.children.forEachAt(index, length, function(child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof Parchment.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n\n optimize(mutations = [], context = {}) {\n if (this.batch === true) return;\n super.optimize(mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n\n path(index) {\n return super.path(index).slice(1); // Exclude self\n }\n\n update(mutations) {\n if (this.batch === true) return;\n let source = Emitter.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n super.update(mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_UPDATE, source, mutations);\n }\n }\n}\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Scroll;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/scroll.js","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nimport { AlignAttribute, AlignStyle } from '../formats/align';\nimport { BackgroundStyle } from '../formats/background';\nimport CodeBlock from '../formats/code';\nimport { ColorStyle } from '../formats/color';\nimport { DirectionAttribute, DirectionStyle } from '../formats/direction';\nimport { FontStyle } from '../formats/font';\nimport { SizeStyle } from '../formats/size';\n\nlet debug = logger('quill:clipboard');\n\n\nconst DOM_KEY = '__ql-matcher';\n\nconst CLIPBOARD_CONFIG = [\n [Node.TEXT_NODE, matchText],\n [Node.TEXT_NODE, matchNewline],\n ['br', matchBreak],\n [Node.ELEMENT_NODE, matchNewline],\n [Node.ELEMENT_NODE, matchBlot],\n [Node.ELEMENT_NODE, matchAttributor],\n [Node.ELEMENT_NODE, matchStyles],\n ['li', matchIndent],\n ['b', matchAlias.bind(matchAlias, 'bold')],\n ['i', matchAlias.bind(matchAlias, 'italic')],\n ['style', matchIgnore]\n];\n\nconst ATTRIBUTE_ATTRIBUTORS = [\n AlignAttribute,\n DirectionAttribute\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nconst STYLE_ATTRIBUTORS = [\n AlignStyle,\n BackgroundStyle,\n ColorStyle,\n DirectionStyle,\n FontStyle,\n SizeStyle\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\n\nclass Clipboard extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.quill.root.addEventListener('paste', this.onPaste.bind(this));\n this.container = this.quill.addContainer('ql-clipboard');\n this.container.setAttribute('contenteditable', true);\n this.container.setAttribute('tabindex', -1);\n this.matchers = [];\n CLIPBOARD_CONFIG.concat(this.options.matchers).forEach(([selector, matcher]) => {\n this.addMatcher(selector, matcher);\n });\n }\n\n addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n\n convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n const formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[CodeBlock.blotName]) {\n const text = this.container.innerText;\n this.container.innerHTML = '';\n return new Delta().insert(text, { [CodeBlock.blotName]: formats[CodeBlock.blotName] });\n }\n let [elementMatchers, textMatchers] = this.prepareMatching();\n let delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new Delta().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n\n dangerouslyPasteHTML(index, html, source = Quill.sources.API) {\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, Quill.sources.SILENT);\n } else {\n let paste = this.convert(html);\n this.quill.updateContents(new Delta().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), Quill.sources.SILENT);\n }\n }\n\n onPaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n let range = this.quill.getSelection();\n let delta = new Delta().retain(range.index);\n let scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(Quill.sources.SILENT);\n setTimeout(() => {\n delta = delta.concat(this.convert()).delete(range.length);\n this.quill.updateContents(delta, Quill.sources.USER);\n // range.length contributes to delta.length()\n this.quill.setSelection(delta.length() - range.length, Quill.sources.SILENT);\n this.quill.scrollingContainer.scrollTop = scrollTop;\n this.quill.focus();\n }, 1);\n }\n\n prepareMatching() {\n let elementMatchers = [], textMatchers = [];\n this.matchers.forEach((pair) => {\n let [selector, matcher] = pair;\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(this.container.querySelectorAll(selector), (node) => {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n}\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: false\n};\n\n\nfunction applyFormat(delta, format, value) {\n if (typeof format === 'object') {\n return Object.keys(format).reduce(function(delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function(delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, extend({}, {[format]: value}, op.attributes));\n }\n }, new Delta());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n const DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n let endText = \"\";\n for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n let op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1*text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n let style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) { // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function(delta, matcher) {\n return matcher(node, delta);\n }, new Delta());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], (delta, childNode) => {\n let childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new Delta());\n } else {\n return new Delta();\n }\n}\n\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n let attributes = Parchment.Attributor.Attribute.keys(node);\n let classes = Parchment.Attributor.Class.keys(node);\n let styles = Parchment.Attributor.Style.keys(node);\n let formats = {};\n attributes.concat(classes).concat(styles).forEach((name) => {\n let attr = Parchment.query(name, Parchment.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name]\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n let match = Parchment.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof Parchment.Embed) {\n let embed = {};\n let value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new Delta().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new Delta();\n}\n\nfunction matchIndent(node, delta) {\n let match = Parchment.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n let indent = -1, parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((Parchment.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new Delta().retain(delta.length() - 1).retain(1, { indent: indent}));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || (delta.length() > 0 && node.nextSibling && isLine(node.nextSibling))) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n let formats = {};\n let style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') ||\n parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) { // Could be 0.5in\n delta = new Delta().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n let text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n let replacer = function(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if ((node.previousSibling == null && isLine(node.parentNode)) ||\n (node.previousSibling != null && isLine(node.previousSibling))) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if ((node.nextSibling == null && isLine(node.parentNode)) ||\n (node.nextSibling != null && isLine(node.nextSibling))) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\n\nexport { Clipboard as default, matchAttributor, matchBlot, matchNewline, matchText };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/clipboard.js","import Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\n\n\nclass History extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.lastRecorded = 0;\n this.ignoreChange = false;\n this.clear();\n this.quill.on(Quill.events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\n if (eventName !== Quill.events.TEXT_CHANGE || this.ignoreChange) return;\n if (!this.options.userOnly || source === Quill.sources.USER) {\n this.record(delta, oldDelta);\n } else {\n this.transform(delta);\n }\n });\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, this.undo.bind(this));\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, this.redo.bind(this));\n if (/Win/i.test(navigator.platform)) {\n this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, this.redo.bind(this));\n }\n }\n\n change(source, dest) {\n if (this.stack[source].length === 0) return;\n let delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], Quill.sources.USER);\n this.ignoreChange = false;\n let index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n\n clear() {\n this.stack = { undo: [], redo: [] };\n }\n\n cutoff() {\n this.lastRecorded = 0;\n }\n\n record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n let undoDelta = this.quill.getContents().diff(oldDelta);\n let timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n let delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n\n redo() {\n this.change('redo', 'undo');\n }\n\n transform(delta) {\n this.stack.undo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n\n undo() {\n this.change('undo', 'redo');\n }\n}\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n let lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function(attr) {\n return Parchment.query(attr, Parchment.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n let deleteLength = delta.reduce(function(length, op) {\n length += (op.delete || 0);\n return length;\n }, 0);\n let changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\n\nexport { History as default, getLastChangeIndex };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/history.js","import Parchment from 'parchment';\n\nclass IdentAttributor extends Parchment.Attributor.Class {\n add(node, value) {\n if (value === '+1' || value === '-1') {\n let indent = this.value(node) || 0;\n value = (value === '+1' ? (indent + 1) : (indent - 1));\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return super.add(node, value);\n }\n }\n\n canAdd(node, value) {\n return super.canAdd(node, value) || super.canAdd(node, parseInt(value));\n }\n\n value(node) {\n return parseInt(super.value(node)) || undefined; // Don't return NaN\n }\n}\n\nlet IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: Parchment.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexport { IndentClass };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/indent.js","import Block from '../blots/block';\n\n\nclass Blockquote extends Block {}\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\n\nexport default Blockquote;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/blockquote.js","import Block from '../blots/block';\n\n\nclass Header extends Block {\n static formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n}\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\n\nexport default Header;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/header.js","import Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Container from '../blots/container';\n\n\nclass ListItem extends Block {\n static formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : super.formats(domNode);\n }\n\n format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(Parchment.create(this.statics.scope));\n } else {\n super.format(name, value);\n }\n }\n\n remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n super.remove();\n }\n }\n\n replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return super.replaceWith(name, value);\n }\n }\n}\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\n\nclass List extends Container {\n static create(value) {\n let tagName = value === 'ordered' ? 'OL' : 'UL';\n let node = super.create(tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n\n constructor(domNode) {\n super(domNode);\n const listEventHandler = (e) => {\n if (e.target.parentNode !== domNode) return;\n let format = this.statics.formats(domNode);\n let blot = Parchment.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if(format === 'unchecked') {\n blot.format('list', 'checked');\n }\n }\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n }\n\n format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n\n formats() {\n // We don't inherit from FormatBlot\n return { [this.statics.blotName]: this.statics.formats(this.domNode) };\n }\n\n insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n super.insertBefore(blot, ref);\n } else {\n let index = ref == null ? this.length() : ref.offset(this);\n let after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n next.domNode.tagName === this.domNode.tagName &&\n next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n let item = Parchment.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n super.replace(target);\n }\n}\nList.blotName = 'list';\nList.scope = Parchment.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\n\nexport { ListItem, List as default };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/list.js","import Bold from './bold';\n\nclass Italic extends Bold { }\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexport default Italic;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/italic.js","import Inline from '../blots/inline';\n\nclass Script extends Inline {\n static create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return super.create(value);\n }\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n}\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexport default Script;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/script.js","import Inline from '../blots/inline';\n\nclass Strike extends Inline { }\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexport default Strike;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/strike.js","import Inline from '../blots/inline';\n\nclass Underline extends Inline { }\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexport default Underline;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/underline.js","import Parchment from 'parchment';\nimport { sanitize } from '../formats/link';\n\nconst ATTRIBUTES = [\n 'alt',\n 'height',\n 'width'\n];\n\n\nclass Image extends Parchment.Embed {\n static create(value) {\n let node = super.create(value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n\n static sanitize(url) {\n return sanitize(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\n\nexport default Image;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/image.js","import { BlockEmbed } from '../blots/block';\nimport Link from '../formats/link';\n\nconst ATTRIBUTES = [\n 'height',\n 'width'\n];\n\n\nclass Video extends BlockEmbed {\n static create(value) {\n let node = super.create(value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static sanitize(url) {\n return Link.sanitize(url);\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\n\nexport default Video;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/video.js","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nconst supportsRootNode = ('getRootNode' in document);\nlet debug = logger('quill:toolbar');\n\nclass Toolbar extends Module {\n constructor(quill, options) {\n super(quill, options);\n if (Array.isArray(this.options.container)) {\n let container = document.createElement('div');\n addControls(container, this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n this.container = container;\n } else if (typeof this.options.container === 'string') {\n const rootDocument = (supportsRootNode ? quill.container.getRootNode() : document);\n this.container = rootDocument.querySelector(this.options.container);\n } else {\n this.container = this.options.container;\n }\n if (!(this.container instanceof HTMLElement)) {\n return debug.error('Container required for toolbar', this.options);\n }\n this.container.classList.add('ql-toolbar');\n this.controls = [];\n this.handlers = {};\n Object.keys(this.options.handlers).forEach((format) => {\n this.addHandler(format, this.options.handlers[format]);\n });\n [].forEach.call(this.container.querySelectorAll('button, select'), (input) => {\n this.attach(input);\n });\n this.quill.on(Quill.events.EDITOR_CHANGE, (type, range) => {\n if (type === Quill.events.SELECTION_CHANGE) {\n this.update(range);\n }\n });\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n let [range, ] = this.quill.selection.getRange(); // quill.getSelection triggers update\n this.update(range);\n });\n }\n\n addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n\n attach(input) {\n let format = [].find.call(input.classList, (className) => {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (Parchment.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n let eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, (e) => {\n let value;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n let selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n this.quill.focus();\n let [range, ] = this.quill.selection.getRange();\n if (this.handlers[format] != null) {\n this.handlers[format].call(this, value);\n } else if (Parchment.query(format).prototype instanceof Parchment.Embed) {\n value = prompt(`Enter ${format}`);\n if (!value) return;\n this.quill.updateContents(new Delta()\n .retain(range.index)\n .delete(range.length)\n .insert({ [format]: value })\n , Quill.sources.USER);\n } else {\n this.quill.format(format, value, Quill.sources.USER);\n }\n this.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n\n update(range) {\n let formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function(pair) {\n let [format, input] = pair;\n if (input.tagName === 'SELECT') {\n let option;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n let value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector(`option[value=\"${value}\"]`);\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n let isActive = formats[format] === input.getAttribute('value') ||\n (formats[format] != null && formats[format].toString() === input.getAttribute('value')) ||\n (formats[format] == null && !input.getAttribute('value'));\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n}\nToolbar.DEFAULTS = {};\n\n\nfunction addButton(container, format, value) {\n let input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function(controls) {\n let group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function(control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n let format = Object.keys(control)[0];\n let value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n let input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function(value) {\n let option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function() {\n let range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n let formats = this.quill.getFormat();\n Object.keys(formats).forEach((name) => {\n // Clean functionality in existing apps only clean inline formats\n if (Parchment.query(name, Parchment.Scope.INLINE) != null) {\n this.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, Quill.sources.USER);\n }\n },\n direction: function(value) {\n let align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', Quill.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, Quill.sources.USER);\n }\n this.quill.format('direction', value, Quill.sources.USER);\n },\n indent: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n let indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n let modifier = (value === '+1') ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, Quill.sources.USER);\n }\n },\n link: function(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, Quill.sources.USER);\n },\n list: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, Quill.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', Quill.sources.USER);\n }\n } else {\n this.quill.format('list', value, Quill.sources.USER);\n }\n }\n }\n}\n\n\nexport { Toolbar as default, addControls };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/toolbar.js","import Quill from './core';\n\nimport { AlignClass, AlignStyle } from './formats/align';\nimport { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';\nimport { IndentClass as Indent } from './formats/indent';\n\nimport Blockquote from './formats/blockquote';\nimport Header from './formats/header';\nimport List, { ListItem } from './formats/list';\n\nimport { BackgroundClass, BackgroundStyle } from './formats/background';\nimport { ColorClass, ColorStyle } from './formats/color';\nimport { FontClass, FontStyle } from './formats/font';\nimport { SizeClass, SizeStyle } from './formats/size';\n\nimport Bold from './formats/bold';\nimport Italic from './formats/italic';\nimport Link from './formats/link';\nimport Script from './formats/script';\nimport Strike from './formats/strike';\nimport Underline from './formats/underline';\n\nimport Image from './formats/image';\nimport Video from './formats/video';\n\nimport CodeBlock, { Code as InlineCode } from './formats/code';\n\n// import Formula from './modules/formula';\n// import Syntax from './modules/syntax';\nimport Toolbar from './modules/toolbar';\n\n// import Icons from './ui/icons';\n// import Picker from './ui/picker';\n// import ColorPicker from './ui/color-picker';\n// import IconPicker from './ui/icon-picker';\n// import Tooltip from './ui/tooltip';\n\n// import BubbleTheme from './themes/bubble';\n// import SnowTheme from './themes/snow';\n\n\nQuill.register({\n 'attributors/attribute/direction': DirectionAttribute,\n\n 'attributors/class/align': AlignClass,\n 'attributors/class/background': BackgroundClass,\n 'attributors/class/color': ColorClass,\n 'attributors/class/direction': DirectionClass,\n 'attributors/class/font': FontClass,\n 'attributors/class/size': SizeClass,\n\n 'attributors/style/align': AlignStyle,\n 'attributors/style/background': BackgroundStyle,\n 'attributors/style/color': ColorStyle,\n 'attributors/style/direction': DirectionStyle,\n 'attributors/style/font': FontStyle,\n 'attributors/style/size': SizeStyle\n}, true);\n\n\nQuill.register({\n 'formats/align': AlignClass,\n 'formats/direction': DirectionClass,\n 'formats/indent': Indent,\n\n 'formats/background': BackgroundStyle,\n 'formats/color': ColorStyle,\n 'formats/font': FontClass,\n 'formats/size': SizeClass,\n\n 'formats/blockquote': Blockquote,\n 'formats/code-block': CodeBlock,\n 'formats/header': Header,\n 'formats/list': List,\n\n 'formats/bold': Bold,\n 'formats/code': InlineCode,\n 'formats/italic': Italic,\n 'formats/link': Link,\n 'formats/script': Script,\n 'formats/strike': Strike,\n 'formats/underline': Underline,\n\n 'formats/image': Image,\n 'formats/video': Video,\n\n 'formats/list/item': ListItem,\n\n // 'modules/formula': Formula,\n // 'modules/syntax': Syntax,\n 'modules/toolbar': Toolbar\n\n // 'themes/bubble': BubbleTheme,\n // 'themes/snow': SnowTheme,\n\n // 'ui/icons': Icons,\n // 'ui/picker': Picker,\n // 'ui/icon-picker': IconPicker,\n // 'ui/color-picker': ColorPicker,\n // 'ui/tooltip': Tooltip\n}, true);\n\n\nexport default Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./vaadin-quill.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"vaadin-quill.min.js","mappings":"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","sources":["webpack://Quill/webpack/universalModuleDefinition","webpack://Quill/./node_modules/eventemitter3/index.js","webpack://Quill/./node_modules/fast-diff/diff.js","webpack://Quill/./node_modules/lodash.clonedeep/index.js","webpack://Quill/./node_modules/lodash.isequal/index.js","webpack://Quill/./node_modules/lodash.merge/index.js","webpack://Quill/../../../../../webpack/universalModuleDefinition","webpack://Quill/../../../../../webpack/bootstrap 3c334e19bc1efdeb80ab","webpack://Quill/../../../../../src/registry.ts","webpack://Quill/../../../../../src/attributor/attributor.ts","webpack://Quill/../../../../../src/blot/abstract/container.ts","webpack://Quill/../../../../../src/blot/abstract/format.ts","webpack://Quill/../../../../../src/blot/abstract/leaf.ts","webpack://Quill/../../../../../src/blot/abstract/shadow.ts","webpack://Quill/../../../../../src/attributor/store.ts","webpack://Quill/../../../../../src/attributor/class.ts","webpack://Quill/../../../../../src/attributor/style.ts","webpack://Quill/../../../../../src/parchment.ts","webpack://Quill/../../../../../src/collection/linked-list.ts","webpack://Quill/../../../../../src/blot/scroll.ts","webpack://Quill/../../../../../src/blot/inline.ts","webpack://Quill/../../../../../src/blot/block.ts","webpack://Quill/../../../../../src/blot/embed.ts","webpack://Quill/../../../../../src/blot/text.ts","webpack://Quill/./node_modules/quill-delta/src/AttributeMap.ts","webpack://Quill/./node_modules/quill-delta/src/Delta.ts","webpack://Quill/./node_modules/quill-delta/src/Iterator.ts","webpack://Quill/./node_modules/quill-delta/src/Op.ts","webpack://Quill/./node_modules/core-js/internals/a-callable.js","webpack://Quill/./node_modules/core-js/internals/a-constructor.js","webpack://Quill/./node_modules/core-js/internals/a-possible-prototype.js","webpack://Quill/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Quill/./node_modules/core-js/internals/advance-string-index.js","webpack://Quill/./node_modules/core-js/internals/an-object.js","webpack://Quill/./node_modules/core-js/internals/array-for-each.js","webpack://Quill/./node_modules/core-js/internals/array-includes.js","webpack://Quill/./node_modules/core-js/internals/array-iteration.js","webpack://Quill/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://Quill/./node_modules/core-js/internals/array-method-is-strict.js","webpack://Quill/./node_modules/core-js/internals/array-set-length.js","webpack://Quill/./node_modules/core-js/internals/array-slice.js","webpack://Quill/./node_modules/core-js/internals/array-species-constructor.js","webpack://Quill/./node_modules/core-js/internals/array-species-create.js","webpack://Quill/./node_modules/core-js/internals/classof-raw.js","webpack://Quill/./node_modules/core-js/internals/classof.js","webpack://Quill/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Quill/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://Quill/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://Quill/./node_modules/core-js/internals/create-iter-result-object.js","webpack://Quill/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Quill/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Quill/./node_modules/core-js/internals/create-property.js","webpack://Quill/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://Quill/./node_modules/core-js/internals/define-built-in.js","webpack://Quill/./node_modules/core-js/internals/define-global-property.js","webpack://Quill/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://Quill/./node_modules/core-js/internals/descriptors.js","webpack://Quill/./node_modules/core-js/internals/document-create-element.js","webpack://Quill/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://Quill/./node_modules/core-js/internals/dom-iterables.js","webpack://Quill/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://Quill/./node_modules/core-js/internals/engine-user-agent.js","webpack://Quill/./node_modules/core-js/internals/engine-v8-version.js","webpack://Quill/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Quill/./node_modules/core-js/internals/export.js","webpack://Quill/./node_modules/core-js/internals/fails.js","webpack://Quill/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://Quill/./node_modules/core-js/internals/function-apply.js","webpack://Quill/./node_modules/core-js/internals/function-bind-context.js","webpack://Quill/./node_modules/core-js/internals/function-bind-native.js","webpack://Quill/./node_modules/core-js/internals/function-bind.js","webpack://Quill/./node_modules/core-js/internals/function-call.js","webpack://Quill/./node_modules/core-js/internals/function-name.js","webpack://Quill/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://Quill/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://Quill/./node_modules/core-js/internals/function-uncurry-this.js","webpack://Quill/./node_modules/core-js/internals/get-built-in.js","webpack://Quill/./node_modules/core-js/internals/get-json-replacer-function.js","webpack://Quill/./node_modules/core-js/internals/get-method.js","webpack://Quill/./node_modules/core-js/internals/get-substitution.js","webpack://Quill/./node_modules/core-js/internals/global.js","webpack://Quill/./node_modules/core-js/internals/has-own-property.js","webpack://Quill/./node_modules/core-js/internals/hidden-keys.js","webpack://Quill/./node_modules/core-js/internals/html.js","webpack://Quill/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Quill/./node_modules/core-js/internals/indexed-object.js","webpack://Quill/./node_modules/core-js/internals/inherit-if-required.js","webpack://Quill/./node_modules/core-js/internals/inspect-source.js","webpack://Quill/./node_modules/core-js/internals/internal-state.js","webpack://Quill/./node_modules/core-js/internals/is-array.js","webpack://Quill/./node_modules/core-js/internals/is-callable.js","webpack://Quill/./node_modules/core-js/internals/is-constructor.js","webpack://Quill/./node_modules/core-js/internals/is-forced.js","webpack://Quill/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://Quill/./node_modules/core-js/internals/is-object.js","webpack://Quill/./node_modules/core-js/internals/is-possible-prototype.js","webpack://Quill/./node_modules/core-js/internals/is-pure.js","webpack://Quill/./node_modules/core-js/internals/is-regexp.js","webpack://Quill/./node_modules/core-js/internals/is-symbol.js","webpack://Quill/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://Quill/./node_modules/core-js/internals/iterator-define.js","webpack://Quill/./node_modules/core-js/internals/iterators-core.js","webpack://Quill/./node_modules/core-js/internals/iterators.js","webpack://Quill/./node_modules/core-js/internals/length-of-array-like.js","webpack://Quill/./node_modules/core-js/internals/make-built-in.js","webpack://Quill/./node_modules/core-js/internals/math-trunc.js","webpack://Quill/./node_modules/core-js/internals/not-a-regexp.js","webpack://Quill/./node_modules/core-js/internals/object-create.js","webpack://Quill/./node_modules/core-js/internals/object-define-properties.js","webpack://Quill/./node_modules/core-js/internals/object-define-property.js","webpack://Quill/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Quill/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://Quill/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Quill/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Quill/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://Quill/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://Quill/./node_modules/core-js/internals/object-keys-internal.js","webpack://Quill/./node_modules/core-js/internals/object-keys.js","webpack://Quill/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Quill/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://Quill/./node_modules/core-js/internals/object-to-string.js","webpack://Quill/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://Quill/./node_modules/core-js/internals/own-keys.js","webpack://Quill/./node_modules/core-js/internals/path.js","webpack://Quill/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://Quill/./node_modules/core-js/internals/regexp-exec.js","webpack://Quill/./node_modules/core-js/internals/regexp-flags.js","webpack://Quill/./node_modules/core-js/internals/regexp-get-flags.js","webpack://Quill/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://Quill/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://Quill/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://Quill/./node_modules/core-js/internals/require-object-coercible.js","webpack://Quill/./node_modules/core-js/internals/set-to-string-tag.js","webpack://Quill/./node_modules/core-js/internals/shared-key.js","webpack://Quill/./node_modules/core-js/internals/shared-store.js","webpack://Quill/./node_modules/core-js/internals/shared.js","webpack://Quill/./node_modules/core-js/internals/species-constructor.js","webpack://Quill/./node_modules/core-js/internals/string-multibyte.js","webpack://Quill/./node_modules/core-js/internals/string-trim-forced.js","webpack://Quill/./node_modules/core-js/internals/string-trim.js","webpack://Quill/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://Quill/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://Quill/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://Quill/./node_modules/core-js/internals/this-number-value.js","webpack://Quill/./node_modules/core-js/internals/to-absolute-index.js","webpack://Quill/./node_modules/core-js/internals/to-indexed-object.js","webpack://Quill/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://Quill/./node_modules/core-js/internals/to-length.js","webpack://Quill/./node_modules/core-js/internals/to-object.js","webpack://Quill/./node_modules/core-js/internals/to-primitive.js","webpack://Quill/./node_modules/core-js/internals/to-property-key.js","webpack://Quill/./node_modules/core-js/internals/to-string-tag-support.js","webpack://Quill/./node_modules/core-js/internals/to-string.js","webpack://Quill/./node_modules/core-js/internals/try-to-string.js","webpack://Quill/./node_modules/core-js/internals/uid.js","webpack://Quill/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Quill/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://Quill/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://Quill/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://Quill/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://Quill/./node_modules/core-js/internals/well-known-symbol.js","webpack://Quill/./node_modules/core-js/internals/whitespaces.js","webpack://Quill/./node_modules/core-js/modules/es.array.concat.js","webpack://Quill/./node_modules/core-js/modules/es.array.filter.js","webpack://Quill/./node_modules/core-js/modules/es.array.find.js","webpack://Quill/./node_modules/core-js/modules/es.array.iterator.js","webpack://Quill/./node_modules/core-js/modules/es.array.join.js","webpack://Quill/./node_modules/core-js/modules/es.array.map.js","webpack://Quill/./node_modules/core-js/modules/es.array.slice.js","webpack://Quill/./node_modules/core-js/modules/es.array.splice.js","webpack://Quill/./node_modules/core-js/modules/es.json.stringify.js","webpack://Quill/./node_modules/core-js/modules/es.number.constructor.js","webpack://Quill/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://Quill/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://Quill/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://Quill/./node_modules/core-js/modules/es.object.keys.js","webpack://Quill/./node_modules/core-js/modules/es.object.to-string.js","webpack://Quill/./node_modules/core-js/modules/es.reflect.construct.js","webpack://Quill/./node_modules/core-js/modules/es.regexp.exec.js","webpack://Quill/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://Quill/./node_modules/core-js/modules/es.string.ends-with.js","webpack://Quill/./node_modules/core-js/modules/es.string.match.js","webpack://Quill/./node_modules/core-js/modules/es.string.replace.js","webpack://Quill/./node_modules/core-js/modules/es.string.split.js","webpack://Quill/./node_modules/core-js/modules/es.string.starts-with.js","webpack://Quill/./node_modules/core-js/modules/es.string.trim.js","webpack://Quill/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://Quill/./node_modules/core-js/modules/es.symbol.for.js","webpack://Quill/./node_modules/core-js/modules/es.symbol.js","webpack://Quill/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://Quill/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://Quill/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://Quill/webpack/bootstrap","webpack://Quill/webpack/runtime/compat get default export","webpack://Quill/webpack/runtime/define property getters","webpack://Quill/webpack/runtime/global","webpack://Quill/webpack/runtime/hasOwnProperty shorthand","webpack://Quill/webpack/runtime/node module decorator","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Quill/./core/polyfill.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Quill/./blots/break.js","webpack://Quill/./blots/text.js","webpack://Quill/./blots/inline.js","webpack://Quill/./blots/block.js","webpack://Quill/./formats/code.js","webpack://Quill/./blots/cursor.js","webpack://Quill/./core/editor.js","webpack://Quill/./core/logger.js","webpack://Quill/./core/emitter.js","webpack://Quill/./core/module.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://Quill/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://Quill/./core/shadow-selection-polyfill.js","webpack://Quill/./core/selection.js","webpack://Quill/./core/theme.js","webpack://Quill/./core/quill.js","webpack://Quill/./blots/container.js","webpack://Quill/./blots/embed.js","webpack://Quill/./blots/scroll.js","webpack://Quill/./formats/align.js","webpack://Quill/./formats/color.js","webpack://Quill/./formats/background.js","webpack://Quill/./formats/direction.js","webpack://Quill/./formats/font.js","webpack://Quill/./formats/size.js","webpack://Quill/./modules/clipboard.js","webpack://Quill/./modules/history.js","webpack://Quill/./modules/keyboard.js","webpack://Quill/./core.js","webpack://Quill/./formats/indent.js","webpack://Quill/./formats/blockquote.js","webpack://Quill/./formats/header.js","webpack://Quill/./formats/list.js","webpack://Quill/./formats/bold.js","webpack://Quill/./formats/italic.js","webpack://Quill/./formats/link.js","webpack://Quill/./formats/script.js","webpack://Quill/./formats/strike.js","webpack://Quill/./formats/underline.js","webpack://Quill/./formats/image.js","webpack://Quill/./formats/video.js","webpack://Quill/./modules/toolbar.js","webpack://Quill/./vaadin-quill.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(self, function() {\nreturn ","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Parchment\"] = factory();\n\telse\n\t\troot[\"Parchment\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3c334e19bc1efdeb80ab","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/registry.ts\n// module id = 0\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../registry\");\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/attributor/attributor.ts\n// module id = 1\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = require(\"../../collection/linked-list\");\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/abstract/container.ts\n// module id = 2\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"../../attributor/attributor\");\nvar store_1 = require(\"../../attributor/store\");\nvar container_1 = require(\"./container\");\nvar Registry = require(\"../../registry\");\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/abstract/format.ts\n// module id = 3\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n var _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/abstract/leaf.ts\n// module id = 4\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../../registry\");\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent_1 = Registry.create(this.statics.scope);\n blot.wrap(parent_1);\n parent_1.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/abstract/shadow.ts\n// module id = 5\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nvar class_1 = require(\"./class\");\nvar style_1 = require(\"./style\");\nvar Registry = require(\"../registry\");\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/attributor/store.ts\n// module id = 6\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/attributor/class.ts\n// module id = 7\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/attributor/style.ts\n// module id = 8\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./blot/abstract/container\");\nvar format_1 = require(\"./blot/abstract/format\");\nvar leaf_1 = require(\"./blot/abstract/leaf\");\nvar scroll_1 = require(\"./blot/scroll\");\nvar inline_1 = require(\"./blot/inline\");\nvar block_1 = require(\"./blot/block\");\nvar embed_1 = require(\"./blot/embed\");\nvar text_1 = require(\"./blot/text\");\nvar attributor_1 = require(\"./attributor/attributor\");\nvar class_1 = require(\"./attributor/class\");\nvar style_1 = require(\"./attributor/style\");\nvar store_1 = require(\"./attributor/store\");\nvar Registry = require(\"./registry\");\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/parchment.ts\n// module id = 10\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length_1 = cur.length();\n if (index < length_1 ||\n (inclusive && index === length_1 && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length_1;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/collection/linked-list.ts\n// module id = 11\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./abstract/container\");\nvar Registry = require(\"../registry\");\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/scroll.ts\n// module id = 12\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/inline.ts\n// module id = 13\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/block.ts\n// module id = 14\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/embed.ts\n// module id = 15\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar Registry = require(\"../registry\");\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/blot/text.ts\n// module id = 16\n// module chunks = 0","import cloneDeep from 'lodash.clonedeep';\nimport isEqual from 'lodash.isequal';\n\ninterface AttributeMap {\n [key: string]: any;\n}\n\nnamespace AttributeMap {\n export function compose(\n a: AttributeMap = {},\n b: AttributeMap = {},\n keepNull: boolean,\n ): AttributeMap | undefined {\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n let attributes = cloneDeep(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce((copy, key) => {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (const key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n\n export function diff(\n a: AttributeMap = {},\n b: AttributeMap = {},\n ): AttributeMap | undefined {\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n const attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce((attrs, key) => {\n if (!isEqual(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n\n export function invert(\n attr: AttributeMap = {},\n base: AttributeMap = {},\n ): AttributeMap {\n attr = attr || {};\n const baseInverted = Object.keys(base).reduce((memo, key) => {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce((memo, key) => {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n\n export function transform(\n a: AttributeMap | undefined,\n b: AttributeMap | undefined,\n priority = false,\n ): AttributeMap | undefined {\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n const attributes = Object.keys(b).reduce((attrs, key) => {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n}\n\nexport default AttributeMap;\n","import diff from 'fast-diff';\nimport cloneDeep from 'lodash.clonedeep';\nimport isEqual from 'lodash.isequal';\nimport AttributeMap from './AttributeMap';\nimport Op from './Op';\n\nconst NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\nclass Delta {\n static Op = Op;\n static AttributeMap = AttributeMap;\n\n ops: Op[];\n constructor(ops?: Op[] | { ops: Op[] }) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n }\n\n insert(arg: string | object, attributes?: AttributeMap): this {\n const newOp: Op = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (\n attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0\n ) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n }\n\n delete(length: number): this {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n }\n\n retain(length: number, attributes?: AttributeMap): this {\n if (length <= 0) {\n return this;\n }\n const newOp: Op = { retain: length };\n if (\n attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0\n ) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n }\n\n push(newOp: Op): this {\n let index = this.ops.length;\n let lastOp = this.ops[index - 1];\n newOp = cloneDeep(newOp);\n if (typeof lastOp === 'object') {\n if (\n typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number'\n ) {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (isEqual(newOp.attributes, lastOp.attributes)) {\n if (\n typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string'\n ) {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n } else if (\n typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number'\n ) {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n }\n\n chop(): this {\n const lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n }\n\n filter(predicate: (op: Op, index: number) => boolean): Op[] {\n return this.ops.filter(predicate);\n }\n\n forEach(predicate: (op: Op, index: number) => void): void {\n this.ops.forEach(predicate);\n }\n\n map(predicate: (op: Op, index: number) => T): T[] {\n return this.ops.map(predicate);\n }\n\n partition(predicate: (op: Op) => boolean): [Op[], Op[]] {\n const passed: Op[] = [];\n const failed: Op[] = [];\n this.forEach((op) => {\n const target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n }\n\n reduce(\n predicate: (accum: T, curr: Op, index: number) => T,\n initialValue: T,\n ): T {\n return this.ops.reduce(predicate, initialValue);\n }\n\n changeLength(): number {\n return this.reduce((length, elem) => {\n if (elem.insert) {\n return length + Op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n }\n\n length(): number {\n return this.reduce((length, elem) => {\n return length + Op.length(elem);\n }, 0);\n }\n\n slice(start = 0, end = Infinity): Delta {\n const ops = [];\n const iter = Op.iterator(this.ops);\n let index = 0;\n while (index < end && iter.hasNext()) {\n let nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op.length(nextOp);\n }\n return new Delta(ops);\n }\n\n compose(other: Delta): Delta {\n const thisIter = Op.iterator(this.ops);\n const otherIter = Op.iterator(other.ops);\n const ops = [];\n const firstOther = otherIter.peek();\n if (\n firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null\n ) {\n let firstLeft = firstOther.retain;\n while (\n thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft\n ) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n const delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n const thisOp = thisIter.next(length);\n const otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n const newOp: Op = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n const attributes = AttributeMap.compose(\n thisOp.attributes,\n otherOp.attributes,\n typeof thisOp.retain === 'number',\n );\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (\n !otherIter.hasNext() &&\n isEqual(delta.ops[delta.ops.length - 1], newOp)\n ) {\n const rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (\n typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number'\n ) {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n }\n\n concat(other: Delta): Delta {\n const delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n }\n\n diff(other: Delta, cursor?: number | diff.CursorInfo): Delta {\n if (this.ops === other.ops) {\n return new Delta();\n }\n const strings = [this, other].map((delta) => {\n return delta\n .map((op) => {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n const prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n const retDelta = new Delta();\n const diffResult = diff(strings[0], strings[1], cursor);\n const thisIter = Op.iterator(this.ops);\n const otherIter = Op.iterator(other.ops);\n diffResult.forEach((component: diff.Diff) => {\n let length = component[1].length;\n while (length > 0) {\n let opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(\n thisIter.peekLength(),\n otherIter.peekLength(),\n length,\n );\n const thisOp = thisIter.next(opLength);\n const otherOp = otherIter.next(opLength);\n if (isEqual(thisOp.insert, otherOp.insert)) {\n retDelta.retain(\n opLength,\n AttributeMap.diff(thisOp.attributes, otherOp.attributes),\n );\n } else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n }\n\n eachLine(\n predicate: (\n line: Delta,\n attributes: AttributeMap,\n index: number,\n ) => boolean | void,\n newline = '\\n',\n ): void {\n const iter = Op.iterator(this.ops);\n let line = new Delta();\n let i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n const thisOp = iter.peek();\n const start = Op.length(thisOp) - iter.peekLength();\n const index =\n typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n }\n\n invert(base: Delta): Delta {\n const inverted = new Delta();\n this.reduce((baseIndex, op) => {\n if (op.insert) {\n inverted.delete(Op.length(op));\n } else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n } else if (op.delete || (op.retain && op.attributes)) {\n const length = (op.delete || op.retain) as number;\n const slice = base.slice(baseIndex, baseIndex + length);\n slice.forEach((baseOp) => {\n if (op.delete) {\n inverted.push(baseOp);\n } else if (op.retain && op.attributes) {\n inverted.retain(\n Op.length(baseOp),\n AttributeMap.invert(op.attributes, baseOp.attributes),\n );\n }\n });\n return baseIndex + length;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n }\n\n transform(index: number, priority?: boolean): number;\n transform(other: Delta, priority?: boolean): Delta;\n transform(arg: number | Delta, priority = false): typeof arg {\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n const other: Delta = arg;\n const thisIter = Op.iterator(this.ops);\n const otherIter = Op.iterator(other.ops);\n const delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (\n thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')\n ) {\n delta.retain(Op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n const thisOp = thisIter.next(length);\n const otherOp = otherIter.next(length);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp.delete) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(\n length,\n AttributeMap.transform(\n thisOp.attributes,\n otherOp.attributes,\n priority,\n ),\n );\n }\n }\n }\n return delta.chop();\n }\n\n transformPosition(index: number, priority = false): number {\n priority = !!priority;\n const thisIter = Op.iterator(this.ops);\n let offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n const length = thisIter.peekLength();\n const nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n }\n}\n\nexport = Delta;\n","import Op from './Op';\n\nexport default class Iterator {\n ops: Op[];\n index: number;\n offset: number;\n\n constructor(ops: Op[]) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n\n hasNext(): boolean {\n return this.peekLength() < Infinity;\n }\n\n next(length?: number): Op {\n if (!length) {\n length = Infinity;\n }\n const nextOp = this.ops[this.index];\n if (nextOp) {\n const offset = this.offset;\n const opLength = Op.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n } else {\n const retOp: Op = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n }\n\n peek(): Op {\n return this.ops[this.index];\n }\n\n peekLength(): number {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n }\n\n peekType(): string {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n }\n\n rest(): Op[] {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n const offset = this.offset;\n const index = this.index;\n const next = this.next();\n const rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n }\n}\n","import AttributeMap from './AttributeMap';\nimport Iterator from './Iterator';\n\ninterface Op {\n // only one property out of {insert, delete, retain} will be present\n insert?: string | object;\n delete?: number;\n retain?: number;\n\n attributes?: AttributeMap;\n}\n\nnamespace Op {\n export function iterator(ops: Op[]): Iterator {\n return new Iterator(ops);\n }\n\n export function length(op: Op): number {\n if (typeof op.delete === 'number') {\n return op.delete;\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n}\n\nexport default Op;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?
b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","let elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n let _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function(token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(searchString, position){\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function(searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import Parchment from 'parchment';\n\n\nclass Break extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n insertInto(parent, ref) {\n if (parent.children.length === 0) {\n super.insertInto(parent, ref);\n } else {\n this.remove();\n }\n }\n\n length() {\n return 0;\n }\n\n value() {\n return '';\n }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\n\nexport default Break;\n","import Parchment from 'parchment';\n\nclass TextBlot extends Parchment.Text { }\n\nexport default TextBlot;\n","import Text from './text';\nimport Parchment from 'parchment';\n\n\nclass Inline extends Parchment.Inline {\n static compare(self, other) {\n let selfIndex = Inline.order.indexOf(self);\n let otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n\n formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && Parchment.query(name, Parchment.Scope.BLOT)) {\n let blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n super.formatAt(index, length, name, value);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.parent instanceof Inline &&\n Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n let parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n}\nInline.allowedChildren = [Inline, Parchment.Embed, Text];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = [\n 'cursor', 'inline', // Must be lower\n 'underline', 'strike', 'italic', 'bold', 'script',\n 'link', 'code' // Must be higher\n];\n\n\nexport default Inline;\n","import merge from 'lodash.merge';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Break from './break';\nimport Inline from './inline';\nimport TextBlot from './text';\n\n\nconst NEWLINE_LENGTH = 1;\n\n\nclass BlockEmbed extends Parchment.Embed {\n attach() {\n super.attach();\n this.attributes = new Parchment.Attributor.Store(this.domNode);\n }\n\n delta() {\n return new Delta().insert(this.value(), merge(this.formats(), this.attributes.values()));\n }\n\n format(name, value) {\n let attribute = Parchment.query(name, Parchment.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n\n formatAt(index, length, name, value) {\n this.format(name, value);\n }\n\n insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n let block = Parchment.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n super.insertAt(index, value, def);\n }\n }\n}\nBlockEmbed.scope = Parchment.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nclass Block extends Parchment.Block {\n constructor(domNode) {\n super(domNode);\n this.cache = {};\n }\n\n delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(Parchment.Leaf).reduce((delta, leaf) => {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new Delta()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n\n deleteAt(index, length) {\n super.deleteAt(index, length);\n this.cache = {};\n }\n\n formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n\n insertAt(index, value, def) {\n if (def != null) return super.insertAt(index, value, def);\n if (value.length === 0) return;\n let lines = value.split('\\n');\n let text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n super.insertAt(Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n let block = this;\n lines.reduce(function(index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n\n insertBefore(blot, ref) {\n let head = this.children.head;\n super.insertBefore(blot, ref);\n if (head instanceof Break) {\n head.remove();\n }\n this.cache = {};\n }\n\n length() {\n if (this.cache.length == null) {\n this.cache.length = super.length() + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n\n moveChildren(target, ref) {\n super.moveChildren(target, ref);\n this.cache = {};\n }\n\n optimize(context) {\n super.optimize(context);\n this.cache = {};\n }\n\n path(index) {\n return super.path(index, true);\n }\n\n removeChild(child) {\n super.removeChild(child);\n this.cache = {};\n }\n\n split(index, force = false) {\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n let clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n let next = super.split(index, force);\n this.cache = {};\n return next;\n }\n }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [Inline, Parchment.Embed, TextBlot];\n\n\nfunction bubbleFormats(blot, formats = {}) {\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = merge(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\n\nexport { bubbleFormats, BlockEmbed, Block as default };\n","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Inline from '../blots/inline';\nimport TextBlot from '../blots/text';\n\n\nclass Code extends Inline {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\n\nclass CodeBlock extends Block {\n static create(value) {\n let domNode = super.create(value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n\n static formats() {\n return true;\n }\n\n delta() {\n let text = this.domNode.textContent;\n if (text.endsWith('\\n')) { // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce((delta, frag) => {\n return delta.insert(frag).insert('\\n', this.formats());\n }, new Delta());\n }\n\n format(name, value) {\n if (name === this.statics.blotName && value) return;\n let [text, ] = this.descendant(TextBlot, this.length() - 1);\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n super.format(name, value);\n }\n\n formatAt(index, length, name, value) {\n if (length === 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK) == null ||\n (name === this.statics.blotName && value === this.statics.formats(this.domNode))) {\n return;\n }\n let nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n let prevNewline = this.newlineIndex(index, true) + 1;\n let isolateLength = nextNewline - prevNewline + 1;\n let blot = this.isolate(prevNewline, isolateLength);\n let next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n\n insertAt(index, value, def) {\n if (def != null) return;\n let [text, offset] = this.descendant(TextBlot, index);\n text.insertAt(offset, value);\n }\n\n length() {\n let length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n\n newlineIndex(searchIndex, reverse = false) {\n if (!reverse) {\n let offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n\n optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(Parchment.create('text', '\\n'));\n }\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n super.replace(target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function(node) {\n let blot = Parchment.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof Parchment.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n}\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\n\nexport { Code, CodeBlock as default };\n","import Parchment from 'parchment';\nimport TextBlot from './text';\n\n\nclass Cursor extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n constructor(domNode, selection) {\n super(domNode);\n this.selection = selection;\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n this._length = 0;\n }\n\n detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n\n format(name, value) {\n if (this._length !== 0) {\n return super.format(name, value);\n }\n let target = this, index = 0;\n while (target != null && target.statics.scope !== Parchment.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n\n index(node, offset) {\n if (node === this.textNode) return 0;\n return super.index(node, offset);\n }\n\n length() {\n return this._length;\n }\n\n position() {\n return [this.textNode, this.textNode.data.length];\n }\n\n remove() {\n super.remove();\n this.parent = null;\n }\n\n restore() {\n if (this.selection.composing || this.parent == null) return;\n let textNode = this.textNode;\n let range = this.selection.getNativeRange();\n let restoreText, start, end;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n [restoreText, start, end] = [textNode, range.start.offset, range.end.offset];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n let text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof TextBlot) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(Parchment.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n [start, end] = [start, end].map(function(offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n\n update(mutations, context) {\n if (mutations.some((mutation) => {\n return mutation.type === 'characterData' && mutation.target === this.textNode;\n })) {\n let range = this.restore();\n if (range) context.range = range;\n }\n }\n\n value() {\n return '';\n }\n}\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n\nexport default Cursor;\n","import cloneDeep from 'lodash.clonedeep';\nimport isEqual from 'lodash.isequal';\nimport merge from 'lodash.merge';\nimport Delta, { AttributeMap } from 'quill-delta';\nimport Parchment from 'parchment';\nimport CodeBlock from '../formats/code';\nimport CursorBlot from '../blots/cursor';\nimport Block, { bubbleFormats } from '../blots/block';\nimport Break from '../blots/break';\n\nconst ASCII = /^[ -~]*$/;\n\n\nclass Editor {\n constructor(scroll) {\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n applyDelta(delta) {\n let consumeNextNewline = false;\n this.scroll.update();\n let scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce((index, op) => {\n let length = op.retain || op.delete || op.insert.length || 1;\n let attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n let text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n this.scroll.insertAt(index, text);\n let [line, offset] = this.scroll.line(index);\n let formats = merge({}, bubbleFormats(line));\n if (line instanceof Block) {\n let [leaf, ] = line.descendant(Parchment.Leaf, offset);\n formats = merge(formats, bubbleFormats(leaf));\n }\n attributes = AttributeMap.diff(formats, attributes) || {};\n } else if (typeof op.insert === 'object') {\n let key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach((name) => {\n this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce((index, op) => {\n if (typeof op.delete === 'number') {\n this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n\n deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new Delta().retain(index).delete(length));\n }\n\n formatLine(index, length, formats = {}) {\n this.scroll.update();\n Object.keys(formats).forEach((format) => {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n let lines = this.scroll.lines(index, Math.max(length, 1));\n let lengthRemaining = length;\n lines.forEach((line) => {\n let lineLength = line.length();\n if (!(line instanceof CodeBlock)) {\n line.format(format, formats[format]);\n } else {\n let codeIndex = index - line.offset(this.scroll);\n let codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new Delta().retain(index).retain(length, cloneDeep(formats)));\n }\n\n formatText(index, length, formats = {}) {\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).retain(length, cloneDeep(formats)));\n }\n\n getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n\n getDelta() {\n return this.scroll.lines().reduce((delta, line) => {\n return delta.concat(line.delta());\n }, new Delta());\n }\n\n getFormat(index, length = 0) {\n let lines = [], leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function(path) {\n let [blot, ] = path;\n if (blot instanceof Block) {\n lines.push(blot);\n } else if (blot instanceof Parchment.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(Parchment.Leaf, index, length);\n }\n const [lineFormats, leafFormats] = [lines, leaves].map(function(blots) {\n if (blots.length === 0) return {};\n let formats = bubbleFormats(blots.shift());\n while (Object.keys(formats).length > 0) {\n let blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(bubbleFormats(blot), formats);\n }\n return formats;\n });\n return { ...lineFormats, ...leafFormats };\n }\n\n getText(index, length) {\n return this.getContents(index, length).filter(function(op) {\n return typeof op.insert === 'string';\n }).map(function(op) {\n return op.insert;\n }).join('');\n }\n\n insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new Delta().retain(index).insert({ [embed]: value }));\n }\n\n insertText(index, text, formats = {}) {\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).insert(text, cloneDeep(formats)));\n }\n\n isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n let block = this.scroll.children.head;\n if (block.statics.blotName !== Block.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof Break;\n }\n\n removeFormat(index, length) {\n let text = this.getText(index, length);\n let [line, offset] = this.scroll.line(index + length);\n let suffixLength = 0, suffix = new Delta();\n if (line != null) {\n if (!(line instanceof CodeBlock)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n let contents = this.getContents(index, length + suffixLength);\n let diff = contents.diff(new Delta().insert(text).concat(suffix));\n let delta = new Delta().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n\n update(change, mutations = [], cursorIndex = undefined) {\n let oldDelta = this.delta;\n if (mutations.length === 1 &&\n mutations[0].type === 'characterData' &&\n mutations[0].target.data.match(ASCII) &&\n Parchment.find(mutations[0].target)) {\n // Optimization for character changes\n let textBlot = Parchment.find(mutations[0].target);\n let formats = bubbleFormats(textBlot);\n let index = textBlot.offset(this.scroll);\n let oldValue = mutations[0].oldValue.replace(CursorBlot.CONTENTS, '');\n let oldText = new Delta().insert(oldValue);\n let newText = new Delta().insert(textBlot.value());\n let diffDelta = new Delta().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function(delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new Delta());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !isEqual(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n}\n\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function(merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function(delta, op) {\n if (op.insert === 1) {\n let attributes = cloneDeep(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = cloneDeep(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n let text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new Delta());\n}\n\n\nexport default Editor;\n","let levels = ['error', 'warn', 'log', 'info'];\nlet level = 'warn';\n\nfunction debug(method, ...args) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n console[method](...args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function(logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function(newLevel) {\n level = newLevel;\n};\n\n\nexport default namespace;\n","import EventEmitter from 'eventemitter3';\nimport logger from './logger';\n\nconst debug = logger('quill:events');\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nconst EMITTERS = [];\nconst supportsRootNode = ('getRootNode' in document);\n\nEVENTS.forEach(function(eventName) {\n document.addEventListener(eventName, (...args) => {\n EMITTERS.forEach((em) => {\n em.handleDOM(...args);\n });\n });\n});\n\n\nclass Emitter extends EventEmitter {\n constructor() {\n super();\n this.listeners = {};\n this.on('error', debug.error);\n }\n\n emit() {\n debug.log.apply(debug, arguments);\n super.emit.apply(this, arguments);\n }\n\n connect() {\n EMITTERS.push(this);\n }\n\n disconnect() {\n EMITTERS.splice(EMITTERS.indexOf(this), 1);\n }\n\n handleDOM(event, ...args) {\n const target = (event.composedPath ? event.composedPath()[0] : event.target);\n const containsNode = (node, target) => {\n if (!supportsRootNode || target.getRootNode() === document) {\n return node.contains(target);\n }\n\n while (!node.contains(target)) {\n const root = target.getRootNode();\n if (!root || !root.host) {\n return false;\n }\n target = root.host;\n }\n\n return true;\n };\n\n (this.listeners[event.type] || []).forEach(function({ node, handler }) {\n if (target === node || containsNode(node, target)) {\n handler(event, ...args);\n }\n });\n }\n\n listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node, handler })\n }\n}\n\nEmitter.events = {\n EDITOR_CHANGE : 'editor-change',\n SCROLL_BEFORE_UPDATE : 'scroll-before-update',\n SCROLL_OPTIMIZE : 'scroll-optimize',\n SCROLL_UPDATE : 'scroll-update',\n SELECTION_CHANGE : 'selection-change',\n TEXT_CHANGE : 'text-change'\n};\nEmitter.sources = {\n API : 'api',\n SILENT : 'silent',\n USER : 'user'\n};\n\n\nexport default Emitter;\n","class Module {\n constructor(quill, options = {}) {\n this.quill = quill;\n this.options = options;\n }\n}\nModule.DEFAULTS = {};\n\n\nexport default Module;\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","// see https://github.com/GoogleChromeLabs/shadow-selection-polyfill/issues/11\nconst SUPPORTS_SHADOW_SELECTION = typeof window.ShadowRoot.prototype.getSelection === 'function';\nconst SUPPORTS_BEFORE_INPUT = window.InputEvent && typeof window.InputEvent.prototype.getTargetRanges === 'function';\nconst IS_FIREFOX = window.navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\nconst IS_MSIE = !!(window.navigator.userAgent.match(/Trident/) && !window.navigator.userAgent.match(/MSIE/));\nconst IS_EDGE = window.navigator.userAgent.match(/Edge/);\n\nlet processing = false;\nexport class ShadowSelection {\n constructor() {\n this._ranges = [];\n }\n\n get rangeCount() {\n return this._ranges.length;\n }\n\n getRangeAt(index) {\n return this._ranges[index];\n }\n\n addRange(range) {\n this._ranges.push(range);\n if (!processing) {\n let windowSel = window.getSelection();\n windowSel.removeAllRanges();\n windowSel.setBaseAndExtent(range.startContainer, range.startOffset, range.endContainer, range.endOffset);\n }\n }\n\n removeAllRanges() {\n this._ranges = [];\n }\n\n // todo: implement remaining `Selection` methods and properties.\n}\n\nfunction getActiveElement() {\n let active = document.activeElement;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n if (active && active.shadowRoot && active.shadowRoot.activeElement) {\n active = active.shadowRoot.activeElement;\n } else {\n break;\n }\n }\n\n return active;\n}\n\nif ((IS_FIREFOX || IS_MSIE || IS_EDGE) && !SUPPORTS_SHADOW_SELECTION) {\n window.ShadowRoot.prototype.getSelection = function() {\n return document.getSelection();\n }\n}\n\nif (!IS_FIREFOX && !SUPPORTS_SHADOW_SELECTION && SUPPORTS_BEFORE_INPUT) {\n let selection = new ShadowSelection();\n\n window.ShadowRoot.prototype.getSelection = function() {\n return selection;\n }\n\n window.addEventListener('selectionchange', () => {\n if (!processing) {\n processing = true;\n\n const active = getActiveElement();\n\n if (active && (active.getAttribute('contenteditable') === 'true')) {\n document.execCommand('indent');\n } else {\n selection.removeAllRanges();\n }\n\n processing = false;\n }\n }, true);\n\n window.addEventListener('beforeinput', (event) => {\n if (processing) {\n const ranges = event.getTargetRanges();\n const range = ranges[0];\n\n const newRange = new Range();\n\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(range.endContainer, range.endOffset);\n\n selection.removeAllRanges();\n selection.addRange(newRange);\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }, true);\n\n window.addEventListener('selectstart', () => {\n selection.removeAllRanges();\n }, true);\n}\n","import cloneDeep from 'lodash.clonedeep';\nimport isEqual from 'lodash.isequal';\nimport Parchment from 'parchment';\nimport Emitter from './emitter';\nimport logger from './logger';\nimport { ShadowSelection } from './shadow-selection-polyfill';\n\nconst debug = logger('quill:selection');\n\nclass Range {\n constructor(index, length = 0) {\n this.index = index;\n this.length = length;\n }\n}\n\n\nclass Selection {\n constructor(scroll, emitter) {\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.rootDocument = (this.root.getRootNode ? this.root.getRootNode() : document);\n this.cursor = Parchment.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, () => {\n if (!this.mouseDown && !this.composing) {\n setTimeout(this.update.bind(this, Emitter.sources.USER), 1);\n }\n });\n this.emitter.on(Emitter.events.SCROLL_BEFORE_UPDATE, (_, mutations) => {\n if (!this.hasFocus()) return;\n const native = this.getNativeRange();\n\n if (native == null) return;\n\n // We might need to hack the offset on Safari, when we are dealing with the first character of a row.\n // This likely happens because of a race condition between quill's update method being called before the\n // selectionchange event being fired in the selection polyfill.\n const hackOffset = (native.start.offset === 0 &&\n native.start.offset === native.end.offset &&\n this.rootDocument.getSelection() instanceof ShadowSelection &&\n mutations.some((a) => a.type === 'characterData' && a.oldValue === '')) ? 1 : 0;\n if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n this.emitter.once(Emitter.events.SCROLL_UPDATE, () => {\n try {\n if (\n this.root.contains(native.start.node) &&\n this.root.contains(native.end.node)\n ) {\n this.setNativeRange(\n native.start.node,\n native.start.offset + hackOffset,\n native.end.node,\n native.end.offset + hackOffset\n );\n }\n this.update(Emitter.sources.SILENT);\n } catch (ignored) {\n // ignore\n }\n });\n });\n this.emitter.on(Emitter.events.SCROLL_OPTIMIZE, (mutations, context) => {\n if (context.range) {\n const { startNode, startOffset, endNode, endOffset } = context.range;\n this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(Emitter.sources.SILENT);\n }\n\n handleComposition() {\n this.root.addEventListener('compositionstart', () => {\n this.composing = true;\n });\n this.root.addEventListener('compositionend', () => {\n this.composing = false;\n if (this.cursor.parent) {\n const range = this.cursor.restore();\n if (!range) return;\n setTimeout(() => {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n\n handleDragging() {\n this.emitter.listenDOM('mousedown', document.body, () => {\n this.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, () => {\n this.mouseDown = false;\n this.update(Emitter.sources.USER);\n });\n }\n\n focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n\n format(format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n this.scroll.update();\n let nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || Parchment.query(format, Parchment.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n let blot = Parchment.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof Parchment.Leaf) {\n let after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n\n getBounds(index, length = 0) {\n let scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n let node, [leaf, offset] = this.scroll.leaf(index);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n let range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n [leaf, offset] = this.scroll.leaf(index + length);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n let side = 'left';\n let rect;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n\n getNativeRange() {\n const selection = this.rootDocument.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n const nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n let range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n\n getRange() {\n let normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n let range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n\n hasFocus() {\n return this.rootDocument.activeElement === this.root;\n }\n\n normalizedToRange(range) {\n let positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n let indexes = positions.map((position) => {\n let [node, offset] = position;\n let blot = Parchment.find(node, true);\n let index = blot.offset(this.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof Parchment.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n let end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n let start = Math.min(end, ...indexes);\n return new Range(start, end-start);\n }\n\n normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) ||\n (!nativeRange.collapsed && !contains(this.root, nativeRange.endContainer))) {\n return null;\n }\n let range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function(position) {\n let node = position.node, offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n\n rangeToNative(range) {\n let indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n let args = [];\n let scrollLength = this.scroll.length();\n indexes.forEach((index, i) => {\n index = Math.min(scrollLength - 1, index);\n let node, [leaf, offset] = this.scroll.leaf(index);\n [node, offset] = leaf.position(offset, i !== 0);\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n\n scrollIntoView(scrollingContainer) {\n let range = this.lastRange;\n if (range == null) return;\n let bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n let limit = this.scroll.length()-1;\n let [first, ] = this.scroll.line(Math.min(range.index, limit));\n let last = first;\n if (range.length > 0) {\n [last, ] = this.scroll.line(Math.min(range.index + range.length, limit));\n }\n if (first == null || last == null) return;\n let scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= (scrollBounds.top - bounds.top);\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += (bounds.bottom - scrollBounds.bottom);\n }\n }\n\n setNativeRange(startNode, startOffset, endNode = startNode, endOffset = startOffset, force = false) {\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n const selection = this.rootDocument.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n let native = (this.getNativeRange() || {}).native;\n if (native == null || force ||\n startNode !== native.startContainer ||\n startOffset !== native.startOffset ||\n endNode !== native.endContainer ||\n endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n let range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n\n setRange(range, force = false, source = Emitter.sources.API) {\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n let args = this.rangeToNative(range);\n this.setNativeRange(...args, force);\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n\n update(source = Emitter.sources.USER) {\n let oldRange = this.lastRange;\n let [lastRange, nativeRange] = this.getRange();\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!isEqual(oldRange, this.lastRange)) {\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n let args = [Emitter.events.SELECTION_CHANGE, cloneDeep(this.lastRange), cloneDeep(oldRange), source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n }\n}\n\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\n\nexport { Range, Selection as default };\n","class Theme {\n constructor(quill, options) {\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n init() {\n Object.keys(this.options.modules).forEach((name) => {\n if (this.modules[name] == null) {\n this.addModule(name);\n }\n });\n }\n\n addModule(name) {\n let moduleClass = this.quill.constructor.import(`modules/${name}`);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n}\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\n\nexport default Theme;\n","import './polyfill';\nimport merge from 'lodash.merge';\nimport Delta from 'quill-delta';\nimport Editor from './editor';\nimport Emitter from './emitter';\nimport Module from './module';\nimport Parchment from 'parchment';\nimport Selection, { Range } from './selection';\nimport logger from './logger';\nimport Theme from './theme';\n\nlet debug = logger('quill');\n\n\nclass Quill {\n static debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n logger.level(limit);\n }\n\n static find(node) {\n return node.__quill || Parchment.find(node);\n }\n\n static import(name) {\n if (this.imports[name] == null) {\n debug.error(`Cannot import ${name}. Are you sure it was registered?`);\n }\n return this.imports[name];\n }\n\n static register(path, target, overwrite = false) {\n if (typeof path !== 'string') {\n let name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach((key) => {\n this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(`Overwriting ${path} with`, target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) &&\n target.blotName !== 'abstract') {\n Parchment.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n\n constructor(container, options = {}) {\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n let html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new Emitter();\n this.scroll = Parchment.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new Editor(this.scroll);\n this.selection = new Selection(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(Emitter.events.EDITOR_CHANGE, (type) => {\n if (type === Emitter.events.TEXT_CHANGE) {\n this.root.classList.toggle('ql-blank', this.editor.isBlank());\n }\n });\n this.emitter.on(Emitter.events.SCROLL_UPDATE, (source, mutations) => {\n let range = this.selection.lastRange;\n let index = range && range.length === 0 ? range.index : undefined;\n modify.call(this, () => {\n return this.editor.update(null, mutations, index);\n }, source);\n });\n let contents = this.clipboard.convert(`
${html}


`);\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n addContainer(container, refNode = null) {\n if (typeof container === 'string') {\n let className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n\n blur() {\n this.selection.setRange(null);\n }\n\n deleteText(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.deleteText(index, length);\n }, source, index, -1*length);\n }\n\n disable() {\n this.enable(false);\n }\n\n enable(enabled = true) {\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n\n focus() {\n let scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n\n format(name, value, source = Emitter.sources.API) {\n return modify.call(this, () => {\n let range = this.getSelection(true);\n let change = new Delta();\n if (range == null) {\n return change;\n } else if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n change = this.editor.formatLine(range.index, range.length, { [name]: value });\n } else if (range.length === 0) {\n this.selection.format(name, value);\n return change;\n } else {\n change = this.editor.formatText(range.index, range.length, { [name]: value });\n }\n this.setSelection(range, Emitter.sources.SILENT);\n return change;\n }, source);\n }\n\n formatLine(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n\n formatText(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n\n getBounds(index, length = 0) {\n let bounds;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n let containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n\n getContents(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getContents(index, length);\n }\n\n getFormat(index = this.getSelection(true), length = 0) {\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n\n getIndex(blot) {\n return blot.offset(this.scroll);\n }\n\n getLength() {\n return this.scroll.length();\n }\n\n getLeaf(index) {\n return this.scroll.leaf(index);\n }\n\n getLine(index) {\n return this.scroll.line(index);\n }\n\n getLines(index = 0, length = Number.MAX_VALUE) {\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n\n getModule(name) {\n return this.theme.modules[name];\n }\n\n getSelection(focus = false) {\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n\n getText(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getText(index, length);\n }\n\n hasFocus() {\n return this.selection.hasFocus();\n }\n\n insertEmbed(index, embed, value, source = Quill.sources.API) {\n return modify.call(this, () => {\n return this.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n\n insertText(index, text, name, value, source) {\n let formats;\n [index, , formats, source] = overload(index, 0, name, value, source);\n return modify.call(this, () => {\n return this.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n\n isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n\n off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n\n on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n\n once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n\n pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n\n removeFormat(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.removeFormat(index, length);\n }, source, index);\n }\n\n scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n\n setContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n let length = this.getLength();\n let deleted = this.editor.deleteText(0, length);\n let applied = this.editor.applyDelta(delta);\n let lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof(lastOp.insert) === 'string' && lastOp.insert[lastOp.insert.length-1] === '\\n') {\n this.editor.deleteText(this.getLength() - 1, 1);\n applied.delete(1);\n }\n let ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n\n setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n [index, length, , source] = overload(index, length, source);\n this.selection.setRange(new Range(index, length), source);\n if (source !== Emitter.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n\n setText(text, source = Emitter.sources.API) {\n let delta = new Delta().insert(text);\n return this.setContents(delta, source);\n }\n\n update(source = Emitter.sources.USER) {\n let change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n\n updateContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n return this.editor.applyDelta(delta, source);\n }, source, true);\n }\n}\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = Emitter.events;\nQuill.sources = Emitter.sources;\n// eslint-disable-next-line no-undef\nQuill.version = typeof(QUILL_VERSION) === 'undefined' ? 'dev' : QUILL_VERSION;\n\nQuill.imports = {\n 'delta' : Delta,\n 'parchment' : Parchment,\n 'core/module' : Module,\n 'core/theme' : Theme\n};\n\n\nfunction expandConfig(container, userConfig) {\n userConfig = merge({\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = Theme;\n } else {\n userConfig.theme = Quill.import(`themes/${userConfig.theme}`);\n if (userConfig.theme == null) {\n throw new Error(`Invalid theme ${userConfig.theme}. Did you register it?`);\n }\n }\n let themeConfig = merge({}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function(config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function(module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n let moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n let moduleConfig = moduleNames.reduce(function(config, name) {\n let moduleClass = Quill.import(`modules/${name}`);\n if (moduleClass == null) {\n debug.error(`Cannot load ${name} module. Are you sure you registered it?`);\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar &&\n userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = merge({}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function(key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function(config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {\n return new Delta();\n }\n let range = index == null ? null : this.getSelection();\n let oldDelta = this.editor.delta;\n let change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, Emitter.sources.SILENT);\n }\n if (change.length() > 0) {\n let args = [Emitter.events.TEXT_CHANGE, change, oldDelta, source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n let formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if (typeof name === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || Emitter.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n let start, end;\n if (index instanceof Delta) {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n return index.transformPosition(pos, source !== Emitter.sources.USER);\n });\n } else {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n if (pos < index || (pos === index && source === Emitter.sources.USER)) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n }\n return new Range(start, end - start);\n}\n\n\nexport { expandConfig, overload, Quill as default };\n","import Parchment from 'parchment';\nimport Block, { BlockEmbed } from './block';\n\n\nclass Container extends Parchment.Container { }\nContainer.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Container;\n","import Parchment from 'parchment';\nimport TextBlot from './text';\n\nconst GUARD_TEXT = \"\\uFEFF\";\n\n\nclass Embed extends Parchment.Embed {\n constructor(node) {\n super(node);\n this.contentNode = document.createElement('span');\n this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(this.domNode.childNodes).forEach((childNode) => {\n this.contentNode.appendChild(childNode);\n });\n this.leftGuard = document.createTextNode(GUARD_TEXT);\n this.rightGuard = document.createTextNode(GUARD_TEXT);\n this.domNode.appendChild(this.leftGuard);\n this.domNode.appendChild(this.contentNode);\n this.domNode.appendChild(this.rightGuard);\n }\n\n index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return super.index(node, offset);\n }\n\n restore(node) {\n let range, textNode;\n let text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof TextBlot) {\n let prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof TextBlot) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n }\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n\n update(mutations, context) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData' &&\n (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n let range = this.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n}\n\n\nexport default Embed;\n","import Parchment from 'parchment';\nimport Emitter from '../core/emitter';\nimport Block, { BlockEmbed } from './block';\nimport Break from './break';\nimport CodeBlock from '../formats/code';\nimport Container from './container';\n\n\nfunction isLine(blot) {\n return (blot instanceof Block || blot instanceof BlockEmbed);\n}\n\n\nclass Scroll extends Parchment.Scroll {\n constructor(domNode, config) {\n super(domNode);\n this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n this.whitelist = config.whitelist.reduce(function(whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n this.optimize();\n this.enable();\n }\n\n batchStart() {\n this.batch = true;\n }\n\n batchEnd() {\n this.batch = false;\n this.optimize();\n }\n\n deleteAt(index, length) {\n let [first, offset] = this.line(index);\n let [last, ] = this.line(index + length);\n super.deleteAt(index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof BlockEmbed || last instanceof BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof CodeBlock) {\n let newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof CodeBlock) {\n let newlineIndex = last.newlineIndex(0);\n if (newlineIndex > -1) {\n last.split(newlineIndex + 1);\n }\n }\n let ref = last.children.head instanceof Break ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n\n enable(enabled = true) {\n this.domNode.setAttribute('contenteditable', enabled);\n }\n\n formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n super.formatAt(index, length, format, value);\n this.optimize();\n }\n\n insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || Parchment.query(value, Parchment.Scope.BLOCK) == null) {\n let blot = Parchment.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n let embed = Parchment.create(value, def);\n this.appendChild(embed);\n }\n } else {\n super.insertAt(index, value, def);\n }\n this.optimize();\n }\n\n insertBefore(blot, ref) {\n if (blot.statics.scope === Parchment.Scope.INLINE_BLOT) {\n let wrapper = Parchment.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n super.insertBefore(blot, ref);\n }\n\n leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n\n line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n\n lines(index = 0, length = Number.MAX_VALUE) {\n let getLines = (blot, index, length) => {\n let lines = [], lengthLeft = length;\n blot.children.forEachAt(index, length, function(child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof Parchment.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n\n optimize(mutations = [], context = {}) {\n if (this.batch === true) return;\n super.optimize(mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n\n path(index) {\n return super.path(index).slice(1); // Exclude self\n }\n\n update(mutations) {\n if (this.batch === true) return;\n let source = Emitter.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n super.update(mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_UPDATE, source, mutations);\n }\n }\n}\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Scroll;\n","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nlet AlignAttribute = new Parchment.Attributor.Attribute('align', 'align', config);\nlet AlignClass = new Parchment.Attributor.Class('align', 'ql-align', config);\nlet AlignStyle = new Parchment.Attributor.Style('align', 'text-align', config);\n\nexport { AlignAttribute, AlignClass, AlignStyle };\n","import Parchment from 'parchment';\n\nclass ColorAttributor extends Parchment.Attributor.Style {\n value(domNode) {\n let value = super.value(domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function(component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n}\n\nlet ColorClass = new Parchment.Attributor.Class('color', 'ql-color', {\n scope: Parchment.Scope.INLINE\n});\nlet ColorStyle = new ColorAttributor('color', 'color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { ColorAttributor, ColorClass, ColorStyle };\n","import Parchment from 'parchment';\nimport { ColorAttributor } from './color';\n\nlet BackgroundClass = new Parchment.Attributor.Class('background', 'ql-bg', {\n scope: Parchment.Scope.INLINE\n});\nlet BackgroundStyle = new ColorAttributor('background', 'background-color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { BackgroundClass, BackgroundStyle };\n","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nlet DirectionAttribute = new Parchment.Attributor.Attribute('direction', 'dir', config);\nlet DirectionClass = new Parchment.Attributor.Class('direction', 'ql-direction', config);\nlet DirectionStyle = new Parchment.Attributor.Style('direction', 'direction', config);\n\nexport { DirectionAttribute, DirectionClass, DirectionStyle };\n","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nlet FontClass = new Parchment.Attributor.Class('font', 'ql-font', config);\n\nclass FontStyleAttributor extends Parchment.Attributor.Style {\n value(node) {\n return super.value(node).replace(/[\"']/g, '');\n }\n}\n\nlet FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexport { FontStyle, FontClass };\n","import Parchment from 'parchment';\n\nlet SizeClass = new Parchment.Attributor.Class('size', 'ql-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nlet SizeStyle = new Parchment.Attributor.Style('size', 'font-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexport { SizeClass, SizeStyle };\n","import merge from 'lodash.merge';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nimport { AlignAttribute, AlignStyle } from '../formats/align';\nimport { BackgroundStyle } from '../formats/background';\nimport CodeBlock from '../formats/code';\nimport { ColorStyle } from '../formats/color';\nimport { DirectionAttribute, DirectionStyle } from '../formats/direction';\nimport { FontStyle } from '../formats/font';\nimport { SizeStyle } from '../formats/size';\n\nlet debug = logger('quill:clipboard');\n\n\nconst DOM_KEY = '__ql-matcher';\n\nconst CLIPBOARD_CONFIG = [\n [Node.TEXT_NODE, matchText],\n [Node.TEXT_NODE, matchNewline],\n ['br', matchBreak],\n [Node.ELEMENT_NODE, matchNewline],\n [Node.ELEMENT_NODE, matchBlot],\n [Node.ELEMENT_NODE, matchAttributor],\n [Node.ELEMENT_NODE, matchStyles],\n ['li', matchIndent],\n ['b', matchAlias.bind(matchAlias, 'bold')],\n ['i', matchAlias.bind(matchAlias, 'italic')],\n ['style', matchIgnore]\n];\n\nconst ATTRIBUTE_ATTRIBUTORS = [\n AlignAttribute,\n DirectionAttribute\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nconst STYLE_ATTRIBUTORS = [\n AlignStyle,\n BackgroundStyle,\n ColorStyle,\n DirectionStyle,\n FontStyle,\n SizeStyle\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\n\nclass Clipboard extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.quill.root.addEventListener('paste', this.onPaste.bind(this));\n this.container = this.quill.addContainer('ql-clipboard');\n this.container.setAttribute('contenteditable', true);\n this.container.setAttribute('tabindex', -1);\n this.matchers = [];\n CLIPBOARD_CONFIG.concat(this.options.matchers).forEach(([selector, matcher]) => {\n this.addMatcher(selector, matcher);\n });\n }\n\n addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n\n convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n const formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[CodeBlock.blotName]) {\n const text = this.container.innerText;\n this.container.innerHTML = '';\n return new Delta().insert(text, { [CodeBlock.blotName]: formats[CodeBlock.blotName] });\n }\n let [elementMatchers, textMatchers] = this.prepareMatching();\n let delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new Delta().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n\n dangerouslyPasteHTML(index, html, source = Quill.sources.API) {\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, Quill.sources.SILENT);\n } else {\n let paste = this.convert(html);\n this.quill.updateContents(new Delta().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), Quill.sources.SILENT);\n }\n }\n\n onPaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n let range = this.quill.getSelection();\n let delta = new Delta().retain(range.index);\n let scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(Quill.sources.SILENT);\n setTimeout(() => {\n delta = delta.concat(this.convert()).delete(range.length);\n this.quill.updateContents(delta, Quill.sources.USER);\n // range.length contributes to delta.length()\n this.quill.setSelection(delta.length() - range.length, Quill.sources.SILENT);\n this.quill.scrollingContainer.scrollTop = scrollTop;\n this.quill.focus();\n }, 1);\n }\n\n prepareMatching() {\n let elementMatchers = [], textMatchers = [];\n this.matchers.forEach((pair) => {\n let [selector, matcher] = pair;\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(this.container.querySelectorAll(selector), (node) => {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n}\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: false\n};\n\n\nfunction applyFormat(delta, format, value) {\n if (typeof format === 'object') {\n return Object.keys(format).reduce(function(delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function(delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, merge({}, {[format]: value}, op.attributes));\n }\n }, new Delta());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n const DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n let endText = \"\";\n for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n let op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1*text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n let style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) { // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function(delta, matcher) {\n return matcher(node, delta);\n }, new Delta());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], (delta, childNode) => {\n let childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new Delta());\n } else {\n return new Delta();\n }\n}\n\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n let attributes = Parchment.Attributor.Attribute.keys(node);\n let classes = Parchment.Attributor.Class.keys(node);\n let styles = Parchment.Attributor.Style.keys(node);\n let formats = {};\n attributes.concat(classes).concat(styles).forEach((name) => {\n let attr = Parchment.query(name, Parchment.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name]\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n let match = Parchment.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof Parchment.Embed) {\n let embed = {};\n let value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new Delta().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new Delta();\n}\n\nfunction matchIndent(node, delta) {\n let match = Parchment.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n let indent = -1, parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((Parchment.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new Delta().retain(delta.length() - 1).retain(1, { indent: indent}));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || (delta.length() > 0 && node.nextSibling && isLine(node.nextSibling))) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n let formats = {};\n let style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') ||\n parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) { // Could be 0.5in\n delta = new Delta().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n let text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n let replacer = function(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if ((node.previousSibling == null && isLine(node.parentNode)) ||\n (node.previousSibling != null && isLine(node.previousSibling))) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if ((node.nextSibling == null && isLine(node.parentNode)) ||\n (node.nextSibling != null && isLine(node.nextSibling))) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\n\nexport { Clipboard as default, matchAttributor, matchBlot, matchNewline, matchText };\n","import Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\n\n\nclass History extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.lastRecorded = 0;\n this.ignoreChange = false;\n this.clear();\n this.quill.on(Quill.events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\n if (eventName !== Quill.events.TEXT_CHANGE || this.ignoreChange) return;\n if (!this.options.userOnly || source === Quill.sources.USER) {\n this.record(delta, oldDelta);\n } else {\n this.transform(delta);\n }\n });\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, this.undo.bind(this));\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, this.redo.bind(this));\n if (/Win/i.test(navigator.platform)) {\n this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, this.redo.bind(this));\n }\n }\n\n change(source, dest) {\n if (this.stack[source].length === 0) return;\n let delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], Quill.sources.USER);\n this.ignoreChange = false;\n let index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n\n clear() {\n this.stack = { undo: [], redo: [] };\n }\n\n cutoff() {\n this.lastRecorded = 0;\n }\n\n record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n let undoDelta = this.quill.getContents().diff(oldDelta);\n let timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n let delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n\n redo() {\n this.change('redo', 'undo');\n }\n\n transform(delta) {\n this.stack.undo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n\n undo() {\n this.change('undo', 'redo');\n }\n}\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n let lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function(attr) {\n return Parchment.query(attr, Parchment.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n let deleteLength = delta.reduce(function(length, op) {\n length += (op.delete || 0);\n return length;\n }, 0);\n let changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\n\nexport { History as default, getLastChangeIndex };\n","import cloneDeep from 'lodash.clonedeep';\nimport isEqual from 'lodash.isequal';\nimport merge from 'lodash.merge';\nimport Delta, { AttributeMap } from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nlet debug = logger('quill:keyboard');\n\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\n\nclass Keyboard extends Module {\n static match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function(key) {\n return (!!binding[key] !== evt[key] && binding[key] !== null);\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n\n constructor(quill, options) {\n super(quill, options);\n this.bindings = {};\n Object.keys(this.options.bindings).forEach((name) => {\n if (name === 'list autofill' &&\n quill.scroll.whitelist != null &&\n !quill.scroll.whitelist['list']) {\n return;\n }\n if (this.options.bindings[name]) {\n this.addBinding(this.options.bindings[name]);\n }\n });\n this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function() {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null },\n { collapsed: true, offset: 0 },\n handleBackspace);\n this.listen();\n }\n\n addBinding(key, context = {}, handler = {}) {\n let binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = merge(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n\n listen() {\n this.quill.root.addEventListener('keydown', (evt) => {\n if (evt.defaultPrevented) return;\n let which = evt.which || evt.keyCode;\n let bindings = (this.bindings[which] || []).filter(function(binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n let range = this.quill.getSelection();\n if (range == null || !this.quill.hasFocus()) return;\n let [line, offset] = this.quill.getLine(range.index);\n let [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n let [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n let prefixText = leafStart instanceof Parchment.Text ? leafStart.value().slice(0, offsetStart) : '';\n let suffixText = leafEnd instanceof Parchment.Text ? leafEnd.value().slice(offsetEnd) : '';\n let curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: this.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n let prevented = bindings.some((binding) => {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function(name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (typeof binding.format === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function(name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return isEqual(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(this, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n}\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold' : makeFormatHandler('bold'),\n 'italic' : makeFormatHandler('italic'),\n 'underline' : makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', Quill.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', Quill.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', Quill.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, Quill.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function(range) {\n this.quill.deleteText(range.index - 1, 1, Quill.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function(range) {\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index)\n .delete(range.length)\n .insert('\\t');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function(range, context) {\n this.quill.format('list', false, Quill.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, Quill.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function(range) {\n let [line, offset] = this.quill.getLine(range.index);\n let formats = merge({}, line.formats(), { list: 'checked' });\n let delta = new Delta().retain(range.index)\n .insert('\\n', formats)\n .retain(line.length() - offset - 1)\n .retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function(range, context) {\n let [line, offset] = this.quill.getLine(range.index);\n let delta = new Delta().retain(range.index)\n .insert('\\n', context.format)\n .retain(line.length() - offset - 1)\n .retain(1, { header: null });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function(range, context) {\n let length = context.prefix.length;\n let [line, offset] = this.quill.getLine(range.index);\n if (offset > length) return true;\n let value;\n switch (context.prefix.trim()) {\n case '[]': case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-': case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', Quill.sources.USER);\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index - offset)\n .delete(length + 1)\n .retain(line.length() - 2 - offset)\n .retain(1, { list: value });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, Quill.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function(range) {\n const [line, offset] = this.quill.getLine(range.index);\n const delta = new Delta()\n .retain(range.index + line.length() - offset - 2)\n .retain(1, { 'code-block': null })\n .delete(1);\n this.quill.updateContents(delta, Quill.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n const where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return {\n key,\n shiftKey,\n altKey: null,\n [where]: /^$/,\n handler: function(range) {\n let index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += (range.length + 1);\n }\n const [leaf, ] = this.quill.getLeaf(index);\n if (!(leaf instanceof Parchment.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, Quill.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, Quill.sources.USER);\n }\n }\n return false;\n }\n };\n}\n\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n let [line, ] = this.quill.getLine(range.index);\n let formats = {};\n if (context.offset === 0) {\n let [prev, ] = this.quill.getLine(range.index - 1);\n if (prev != null && prev.length() > 1) {\n let curFormats = line.formats();\n let prevFormats = this.quill.getFormat(range.index-1, 1);\n formats = AttributeMap.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n let length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index-length, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index-length, length, formats, Quill.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n let length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n let formats = {}, nextLength = 0;\n let [line, ] = this.quill.getLine(range.index);\n if (context.offset >= line.length() - 1) {\n let [next, ] = this.quill.getLine(range.index + 1);\n if (next) {\n let curFormats = line.formats();\n let nextFormats = this.quill.getFormat(range.index, 1);\n formats = DeltaOp.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, Quill.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n let lines = this.quill.getLines(range);\n let formats = {};\n if (lines.length > 1) {\n let firstFormats = lines[0].formats();\n let lastFormats = lines[lines.length - 1].formats();\n formats = DeltaOp.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, Quill.sources.USER);\n }\n this.quill.setSelection(range.index, Quill.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n let lineFormats = Object.keys(context.format).reduce(function(lineFormats, format) {\n if (Parchment.query(format, Parchment.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, Quill.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach((name) => {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n this.quill.format(name, context.format[name], Quill.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: {'code-block': true },\n handler: function(range) {\n let CodeBlock = Parchment.query('code-block');\n let index = range.index, length = range.length;\n let [block, offset] = this.quill.scroll.descendant(CodeBlock, index);\n if (block == null) return;\n let scrollIndex = this.quill.getIndex(block);\n let start = block.newlineIndex(offset, true) + 1;\n let end = block.newlineIndex(scrollIndex + offset + length);\n let lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach((line, i) => {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(Quill.sources.USER);\n this.quill.setSelection(index, length, Quill.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function(range, context) {\n this.quill.format(format, !context.format[format], Quill.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if (typeof binding === 'object') {\n binding = cloneDeep(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\n\nexport { Keyboard as default, SHORTKEY };\n","import Parchment from 'parchment';\nimport Quill from './core/quill';\n\nimport Block, { BlockEmbed } from './blots/block';\nimport Break from './blots/break';\nimport Container from './blots/container';\nimport Cursor from './blots/cursor';\nimport Embed from './blots/embed';\nimport Inline from './blots/inline';\nimport Scroll from './blots/scroll';\nimport TextBlot from './blots/text';\n\nimport Clipboard from './modules/clipboard';\nimport History from './modules/history';\nimport Keyboard from './modules/keyboard';\n\nQuill.register({\n 'blots/block' : Block,\n 'blots/block/embed' : BlockEmbed,\n 'blots/break' : Break,\n 'blots/container' : Container,\n 'blots/cursor' : Cursor,\n 'blots/embed' : Embed,\n 'blots/inline' : Inline,\n 'blots/scroll' : Scroll,\n 'blots/text' : TextBlot,\n\n 'modules/clipboard' : Clipboard,\n 'modules/history' : History,\n 'modules/keyboard' : Keyboard\n});\n\nParchment.register(Block, Break, Cursor, Inline, Scroll, TextBlot);\n\n\nexport default Quill;\n","import Parchment from 'parchment';\n\nclass IdentAttributor extends Parchment.Attributor.Class {\n add(node, value) {\n if (value === '+1' || value === '-1') {\n let indent = this.value(node) || 0;\n value = (value === '+1' ? (indent + 1) : (indent - 1));\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return super.add(node, value);\n }\n }\n\n canAdd(node, value) {\n return super.canAdd(node, value) || super.canAdd(node, parseInt(value));\n }\n\n value(node) {\n return parseInt(super.value(node)) || undefined; // Don't return NaN\n }\n}\n\nlet IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: Parchment.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexport { IndentClass };\n","import Block from '../blots/block';\n\n\nclass Blockquote extends Block {}\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\n\nexport default Blockquote;\n","import Block from '../blots/block';\n\n\nclass Header extends Block {\n static formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n}\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\n\nexport default Header;\n","import Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Container from '../blots/container';\n\n\nclass ListItem extends Block {\n static formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : super.formats(domNode);\n }\n\n format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(Parchment.create(this.statics.scope));\n } else {\n super.format(name, value);\n }\n }\n\n remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n super.remove();\n }\n }\n\n replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return super.replaceWith(name, value);\n }\n }\n}\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\n\nclass List extends Container {\n static create(value) {\n let tagName = value === 'ordered' ? 'OL' : 'UL';\n let node = super.create(tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n\n constructor(domNode) {\n super(domNode);\n const listEventHandler = (e) => {\n if (e.target.parentNode !== domNode) return;\n let format = this.statics.formats(domNode);\n let blot = Parchment.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if(format === 'unchecked') {\n blot.format('list', 'checked');\n }\n }\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n }\n\n format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n\n formats() {\n // We don't inherit from FormatBlot\n return { [this.statics.blotName]: this.statics.formats(this.domNode) };\n }\n\n insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n super.insertBefore(blot, ref);\n } else {\n let index = ref == null ? this.length() : ref.offset(this);\n let after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n next.domNode.tagName === this.domNode.tagName &&\n next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n let item = Parchment.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n super.replace(target);\n }\n}\nList.blotName = 'list';\nList.scope = Parchment.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\n\nexport { ListItem, List as default };\n","import Inline from '../blots/inline';\n\nclass Bold extends Inline {\n static create() {\n return super.create();\n }\n\n static formats() {\n return true;\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n}\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexport default Bold;\n","import Bold from './bold';\n\nclass Italic extends Bold { }\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexport default Italic;\n","import Inline from '../blots/inline';\n\n\nclass Link extends Inline {\n static create(value) {\n let node = super.create(value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('target', '_blank');\n return node;\n }\n\n static formats(domNode) {\n return domNode.getAttribute('href');\n }\n\n static sanitize(url) {\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n\n format(name, value) {\n if (name !== this.statics.blotName || !value) return super.format(name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n}\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\n\nfunction sanitize(url, protocols) {\n let anchor = document.createElement('a');\n anchor.href = url;\n let protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\nexport { Link as default, sanitize };\n","import Inline from '../blots/inline';\n\nclass Script extends Inline {\n static create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return super.create(value);\n }\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n}\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexport default Script;\n","import Inline from '../blots/inline';\n\nclass Strike extends Inline { }\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexport default Strike;\n","import Inline from '../blots/inline';\n\nclass Underline extends Inline { }\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexport default Underline;\n","import Parchment from 'parchment';\nimport { sanitize } from '../formats/link';\n\nconst ATTRIBUTES = [\n 'alt',\n 'height',\n 'width'\n];\n\n\nclass Image extends Parchment.Embed {\n static create(value) {\n let node = super.create(value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n\n static sanitize(url) {\n return sanitize(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\n\nexport default Image;\n","import { BlockEmbed } from '../blots/block';\nimport Link from '../formats/link';\n\nconst ATTRIBUTES = [\n 'height',\n 'width'\n];\n\n\nclass Video extends BlockEmbed {\n static create(value) {\n let node = super.create(value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static sanitize(url) {\n return Link.sanitize(url);\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\n\nexport default Video;\n","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nconst supportsRootNode = ('getRootNode' in document);\nlet debug = logger('quill:toolbar');\n\nclass Toolbar extends Module {\n constructor(quill, options) {\n super(quill, options);\n if (Array.isArray(this.options.container)) {\n let container = document.createElement('div');\n addControls(container, this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n this.container = container;\n } else if (typeof this.options.container === 'string') {\n const rootDocument = (supportsRootNode ? quill.container.getRootNode() : document);\n this.container = rootDocument.querySelector(this.options.container);\n } else {\n this.container = this.options.container;\n }\n if (!(this.container instanceof HTMLElement)) {\n return debug.error('Container required for toolbar', this.options);\n }\n this.container.classList.add('ql-toolbar');\n this.controls = [];\n this.handlers = {};\n Object.keys(this.options.handlers).forEach((format) => {\n this.addHandler(format, this.options.handlers[format]);\n });\n [].forEach.call(this.container.querySelectorAll('button, select'), (input) => {\n this.attach(input);\n });\n this.quill.on(Quill.events.EDITOR_CHANGE, (type, range) => {\n if (type === Quill.events.SELECTION_CHANGE) {\n this.update(range);\n }\n });\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n let [range, ] = this.quill.selection.getRange(); // quill.getSelection triggers update\n this.update(range);\n });\n }\n\n addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n\n attach(input) {\n let format = [].find.call(input.classList, (className) => {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (Parchment.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n let eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, (e) => {\n let value;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n let selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n this.quill.focus();\n let [range, ] = this.quill.selection.getRange();\n if (this.handlers[format] != null) {\n this.handlers[format].call(this, value);\n } else if (Parchment.query(format).prototype instanceof Parchment.Embed) {\n value = prompt(`Enter ${format}`);\n if (!value) return;\n this.quill.updateContents(new Delta()\n .retain(range.index)\n .delete(range.length)\n .insert({ [format]: value })\n , Quill.sources.USER);\n } else {\n this.quill.format(format, value, Quill.sources.USER);\n }\n this.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n\n update(range) {\n let formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function(pair) {\n let [format, input] = pair;\n if (input.tagName === 'SELECT') {\n let option;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n let value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector(`option[value=\"${value}\"]`);\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n let isActive = formats[format] === input.getAttribute('value') ||\n (formats[format] != null && formats[format].toString() === input.getAttribute('value')) ||\n (formats[format] == null && !input.getAttribute('value'));\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n}\nToolbar.DEFAULTS = {};\n\n\nfunction addButton(container, format, value) {\n let input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function(controls) {\n let group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function(control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n let format = Object.keys(control)[0];\n let value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n let input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function(value) {\n let option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function() {\n let range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n let formats = this.quill.getFormat();\n Object.keys(formats).forEach((name) => {\n // Clean functionality in existing apps only clean inline formats\n if (Parchment.query(name, Parchment.Scope.INLINE) != null) {\n this.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, Quill.sources.USER);\n }\n },\n direction: function(value) {\n let align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', Quill.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, Quill.sources.USER);\n }\n this.quill.format('direction', value, Quill.sources.USER);\n },\n indent: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n let indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n let modifier = (value === '+1') ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, Quill.sources.USER);\n }\n },\n link: function(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, Quill.sources.USER);\n },\n list: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, Quill.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', Quill.sources.USER);\n }\n } else {\n this.quill.format('list', value, Quill.sources.USER);\n }\n }\n }\n}\n\n\nexport { Toolbar as default, addControls };\n","import Quill from './core';\n\nimport { AlignClass, AlignStyle } from './formats/align';\nimport { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';\nimport { IndentClass as Indent } from './formats/indent';\n\nimport Blockquote from './formats/blockquote';\nimport Header from './formats/header';\nimport List, { ListItem } from './formats/list';\n\nimport { BackgroundClass, BackgroundStyle } from './formats/background';\nimport { ColorClass, ColorStyle } from './formats/color';\nimport { FontClass, FontStyle } from './formats/font';\nimport { SizeClass, SizeStyle } from './formats/size';\n\nimport Bold from './formats/bold';\nimport Italic from './formats/italic';\nimport Link from './formats/link';\nimport Script from './formats/script';\nimport Strike from './formats/strike';\nimport Underline from './formats/underline';\n\nimport Image from './formats/image';\nimport Video from './formats/video';\n\nimport CodeBlock, { Code as InlineCode } from './formats/code';\n\n// import Formula from './modules/formula';\n// import Syntax from './modules/syntax';\nimport Toolbar from './modules/toolbar';\n\n// import Icons from './ui/icons';\n// import Picker from './ui/picker';\n// import ColorPicker from './ui/color-picker';\n// import IconPicker from './ui/icon-picker';\n// import Tooltip from './ui/tooltip';\n\n// import BubbleTheme from './themes/bubble';\n// import SnowTheme from './themes/snow';\n\n\nQuill.register({\n 'attributors/attribute/direction': DirectionAttribute,\n\n 'attributors/class/align': AlignClass,\n 'attributors/class/background': BackgroundClass,\n 'attributors/class/color': ColorClass,\n 'attributors/class/direction': DirectionClass,\n 'attributors/class/font': FontClass,\n 'attributors/class/size': SizeClass,\n\n 'attributors/style/align': AlignStyle,\n 'attributors/style/background': BackgroundStyle,\n 'attributors/style/color': ColorStyle,\n 'attributors/style/direction': DirectionStyle,\n 'attributors/style/font': FontStyle,\n 'attributors/style/size': SizeStyle\n}, true);\n\n\nQuill.register({\n 'formats/align': AlignClass,\n 'formats/direction': DirectionClass,\n 'formats/indent': Indent,\n\n 'formats/background': BackgroundStyle,\n 'formats/color': ColorStyle,\n 'formats/font': FontClass,\n 'formats/size': SizeClass,\n\n 'formats/blockquote': Blockquote,\n 'formats/code-block': CodeBlock,\n 'formats/header': Header,\n 'formats/list': List,\n\n 'formats/bold': Bold,\n 'formats/code': InlineCode,\n 'formats/italic': Italic,\n 'formats/link': Link,\n 'formats/script': Script,\n 'formats/strike': Strike,\n 'formats/underline': Underline,\n\n 'formats/image': Image,\n 'formats/video': Video,\n\n 'formats/list/item': ListItem,\n\n // 'modules/formula': Formula,\n // 'modules/syntax': Syntax,\n 'modules/toolbar': Toolbar\n\n // 'themes/bubble': BubbleTheme,\n // 'themes/snow': SnowTheme,\n\n // 'ui/icons': Icons,\n // 'ui/picker': Picker,\n // 'ui/icon-picker': IconPicker,\n // 'ui/color-picker': ColorPicker,\n // 'ui/tooltip': Tooltip\n}, true);\n\n\nexport default Quill;\n"],"names":["root","factory","exports","module","define","amd","self","has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","EventEmitter","_events","_eventsCount","create","__proto__","eventNames","events","name","names","call","push","slice","getOwnPropertySymbols","concat","listeners","event","exists","evt","available","i","l","length","ee","Array","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","listener","removeAllListeners","off","addListener","setMaxListeners","prefixed","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","_fix_unicode","editdiff","oldText","newText","oldRange","index","newRange","oldLength","newLength","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","prefixLength","Math","min","oldPrefix","newPrefix","make_edit_splice","cursor","suffixLength","oldSuffix","newSuffix","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","indexOf","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","floor","best_common","text1_a","text1_b","text2_a","text2_b","hm1","ceil","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","x","delta","front","k1start","k1end","k2start","k2end","d","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","unshift","diff_cleanupMerge","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","charCodeAt","pointerend","is_surrogate_pair_end","fix_unicode","pointer","count_delete","count_insert","text_delete","text_insert","splice","previous_equality","ends_with_pair_start","stray","k","starts_with_pair_end","n","pop","changes","charCode","str","before","oldMiddle","newMiddle","after","tuples","ret","remove_empty_tuples","diff","INSERT","DELETE","EQUAL","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","g","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","map","pair","set","addSetEntry","value","add","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","result","toString","e","mapToArray","size","forEach","key","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Buffer","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","propertyIsEnumerable","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","clear","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArray","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","stack","isObject","isArr","constructor","input","initCloneArray","source","copyArray","tag","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","values","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","newValue","getMapData","type","data","getValue","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","resolve","ctorString","isLength","baseKeys","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","arrayTag","asyncTag","errorTag","nullTag","proxyTag","undefinedTag","typedArrayTags","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","nativeObjectToString","symToStringTag","toStringTag","SetCache","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","message","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","arrLength","seen","arrValue","othIndex","resIndex","arrayFilter","baseUnary","types","require","objectCtorString","allocUnsafe","defineProperty","nativeMax","max","nativeNow","Date","now","baseCreate","assignMergeValue","baseAssignValue","fromRight","baseFor","iterable","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","srcValue","mergeFunc","safeGet","isCommon","isTyped","isPlainObject","isNew","keysIn","toPlainObject","baseMergeDeep","baseRest","start","setToString","otherArgs","thisArg","overRest","identity","baseSetToString","string","count","lastCalled","stamp","remaining","shortOut","assigner","merge","sources","guard","isIterateeCall","property","extendStatics","__extends","setPrototypeOf","b","p","__","ParchmentError","_super","_this","Error","Scope","attributes","classes","tags","query","scope","match","ANY","Text","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","getAttribute","split","tagName","TYPE","DATA_KEY","BlotClass","node","find","bubble","blot","parentNode","register","Definitions","_i","Definition","blotName","attrName","keyName","className","toUpperCase","Registry","Attributor","options","attributeBit","ATTRIBUTE","whitelist","item","canAdd","setAttribute","BLOT","remove","removeAttribute","default","linked_list_1","shadow_1","ContainerBlot","domNode","build","appendChild","insertBefore","attach","children","child","childNodes","reverse","makeBlot","head","err","deleteAt","forEachAt","descendant","criteria","_a","descendants","Number","MAX_VALUE","lengthLeft","detach","formatAt","insertAt","def","childBlot","refBlot","statics","allowedChildren","some","insertInto","reduce","memo","moveChildren","targetParent","refNode","optimize","defaultChild","path","inclusive","position","removeChild","target","force","next","clone","parent","unwrap","update","mutations","addedNodes","removedNodes","mutation","document","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","filter","sort","a","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","attributor_1","store_1","container_1","FormatBlot","formats","toLowerCase","format","attribute","replaceWith","replacement","wrap","wrapper","move","LeafBlot","INLINE_BLOT","ShadowBlot","enumerable","configurable","parseInt","createElement","classList","scroll","cloneNode","isolate","parent_1","ref","parentBlot","refDomNode","class_1","style_1","AttributorStore","styles","attr","ClassAttributor","join","camelize","parts","rest","part","StyleAttributor","trim","style","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","Parchment","Container","Format","Leaf","Embed","Scroll","Block","Inline","Attribute","Class","Style","Store","LinkedList","tail","append","nodes","contains","cur","iterator","prev","curNode","length_1","callback","startNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","observer","MutationObserver","observe","disconnect","records","takeRecords","mark","markParent","previousSibling","grandChild","BLOCK_BLOT","InlineBlot","obj1","obj2","prop","isEqual","BlockBlot","navigator","userAgent","EmbedBlot","TextBlot","text","createTextNode","splitText","AttributeMap","compose","keepNull","attrs","invert","base","baseInverted","priority","NULL_CHARACTER","fromCharCode","ops","insert","newOp","delete","retain","lastOp","chop","partition","passed","failed","op","initialValue","changeLength","elem","end","iter","hasNext","nextOp","Delta","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","strings","retDelta","diffResult","component","opLength","eachLine","newline","line","inverted","baseIndex","baseOp","transformPosition","nextType","Op","Infinity","retOp","substr","isCallable","tryToString","$TypeError","TypeError","argument","isConstructor","isPossiblePrototype","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","S","unicode","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","includes","bind","uncurryThis","IndexedObject","toObject","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","every","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","foo","Boolean","method","DESCRIPTORS","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","writable","error","$Array","originalArray","C","arraySpeciesConstructor","stringSlice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","MATCH","error1","error2","F","done","createPropertyDescriptor","bitmap","makeBuiltIn","descriptor","getter","setter","defineGlobalProperty","simple","global","unsafe","nonConfigurable","nonWritable","P","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","version","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","regexpExec","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","nativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","$exec","NATIVE_BIND","FunctionPrototype","Reflect","aCallable","arraySlice","$Function","factories","Prototype","partArgs","argsLength","list","construct","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","classof","replacer","rawLength","element","keysLength","isNullOrUndefined","V","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","tailPos","m","symbols","ch","capture","check","globalThis","window","getBuiltIn","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","enforce","getterFor","documentAll","all","noop","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","feature","detection","normalize","POLYFILL","NATIVE","isRegExp","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","IteratorPrototype","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","obj","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","trunc","activeXDocument","anObject","definePropertiesModule","enumBugKeys","html","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","display","src","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","pref","val","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","TAG","SHARED","mode","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","CONVERT_TO_STRING","pos","first","second","codeAt","whitespaces","ltrim","rtrim","SymbolPrototype","TO_PRIMITIVE","hint","NATIVE_SYMBOL","keyFor","integer","number","isSymbol","getMethod","ordinaryToPrimitive","exoticToPrim","toPrimitive","id","postfix","random","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","doesNotExceedSafeInteger","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","E","A","$filter","$find","addToUnscopables","FIND","SKIPS_HOLES","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","nativeJoin","separator","$map","nativeSlice","HAS_SPECIES_SUPPORT","Constructor","fin","setArrayLength","deletePropertyOrThrow","deleteCount","insertCount","actualDeleteCount","from","to","actualStart","argumentsLength","getReplacerFunction","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","stringify","space","inheritIfRequired","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","toNumber","third","radix","maxCode","digits","code","NaN","NumberWrapper","primValue","toNumeric","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptors","$getOwnPropertySymbols","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","instance","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","endsWith","searchString","endPosition","search","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","matchStr","getSubstitution","REPLACE","stringIndexOf","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","speciesConstructor","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","limit","splitter","unicodeMatching","lim","q","z","startsWith","$trim","forcedStringTrimMethod","nativeObjectCreate","getOwnPropertyNamesExternal","defineBuiltInAccessor","defineWellKnownSymbol","defineSymbolToPrimitive","HIDDEN","RangeError","QObject","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","__esModule","definition","o","nmd","paths","_typeof","t","r","_defineProperty","_arrayLikeToArray","_unsupportedIterableToArray","_slicedToArray","u","_classCallCheck","_defineProperties","_createClass","toggle","_toggle","token","subjectString","isFinite","addEventListener","execCommand","_getPrototypeOf","_get","_possibleConstructorReturn","ReferenceError","_setPrototypeOf","_inherits","Break","_Parchment$Embed","_callSuper","_Parchment$Text","_Parchment$Inline","compare","_superPropGet","selfIndex","order","otherIndex","BlockEmbed","BLOCK_ATTRIBUTE","block","_Parchment$Block","leaf","bubbleFormats","lines","shift","Code","_Inline","CodeBlock","_Block","textContent","frag","nextNewline","newlineIndex","prevNewline","isolateLength","_this$descendant4","searchIndex","lastIndexOf","querySelectorAll","TAB","Cursor","selection","textNode","CONTENTS","_length","composing","restoreText","range","getNativeRange","_ref","lastChild","_map2","startOffset","endNode","endOffset","_this2","restore","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","cloneDeep","image","bullet","normalizeDelta","_this$scroll$line2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","_this3","leaves","blots","combineFormats","lineFormats","leafFormats","_objectSpread","getContents","embed","_this4","getText","_this$scroll$line4","suffix","applyDelta","change","cursorIndex","oldDelta","textBlot","oldValue","CursorBlot","combined","merged","levels","level","debug","_console","_len","_key","console","ns","logger","newLevel","EMITTERS","supportsRootNode","eventName","em","handleDOM","Emitter","_EventEmitter","log","_len2","_key2","composedPath","handler","getRootNode","host","containsNode","EDITOR_CHANGE","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SCROLL_UPDATE","SELECTION_CHANGE","TEXT_CHANGE","API","SILENT","USER","Module","quill","DEFAULTS","_toConsumableArray","SUPPORTS_SHADOW_SELECTION","ShadowRoot","getSelection","SUPPORTS_BEFORE_INPUT","InputEvent","getTargetRanges","IS_FIREFOX","IS_MSIE","IS_EDGE","processing","ShadowSelection","_ranges","windowSel","removeAllRanges","setBaseAndExtent","startContainer","endContainer","active","activeElement","shadowRoot","getActiveElement","Range","setStart","setEnd","addRange","preventDefault","stopImmediatePropagation","Selection","emitter","mouseDown","rootDocument","lastRange","savedRange","handleComposition","handleDragging","listenDOM","setTimeout","hasFocus","native","hackOffset","setNativeRange","ignored","_context$range","focus","setRange","nativeRange","collapsed","_this$scroll$leaf2","_leaf$position2","createRange","_this$scroll$leaf4","_leaf$position4","getBoundingClientRect","rect","side","bottom","top","height","left","right","width","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","positions","indexes","_position","_this5","_this5$scroll$leaf2","_leaf$position6","scrollingContainer","bounds","getBounds","last","scrollBounds","scrollTop","blur","rangeToNative","_this$getRange2","getRange","_this$emitter","_this$emitter2","Theme","modules","addModule","moduleClass","import","themes","Quill","container","expandConfig","innerHTML","__quill","addContainer","editor","theme","keyboard","clipboard","history","init","isBlank","modify","contents","setContents","placeholder","readOnly","disable","_overload2","overload","deleteText","enable","enabled","scrollIntoView","formatLine","formatText","setSelection","_overload4","_overload6","containerBounds","getLength","_overload8","getFormat","_overload10","_this6","insertEmbed","_this7","_overload12","insertText","dangerouslyPasteHTML","_this8","_overload14","removeFormat","_this9","deleted","applied","_overload16","_this10","imports","_this11","overwrite","warn","userConfig","themeConfig","config","moduleConfig","toolbar","querySelector","modifier","strict","isEnabled","shiftRange","_map4","_Parchment$Container","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","isLine","_Parchment$Scroll","batch","_this$line2","getLines","AlignAttribute","AlignClass","AlignStyle","ColorAttributor","_Parchment$Attributor","ColorClass","ColorStyle","BackgroundClass","BackgroundStyle","DirectionAttribute","DirectionClass","DirectionStyle","FontClass","FontStyleAttributor","FontStyle","SizeClass","SizeStyle","DOM_KEY","CLIPBOARD_CONFIG","computeStyle","whiteSpace","collapse","matchNewline","deltaEndsWith","ELEMENT_NODE","applyFormat","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","fontStyle","italic","fontWeight","bold","parseFloat","textIndent","indent","matchAlias","Clipboard","_Module","onPaste","matchers","_ref2","selector","addMatcher","innerText","_this$prepareMatching2","prepareMatching","elementMatchers","textMatchers","traverse","paste","updateContents","defaultPrevented","_pair","getComputedStyle","endText","childrenDelta","matchVisual","History","lastRecorded","ignoreChange","userOnly","record","addBinding","shortKey","undo","shiftKey","redo","platform","dest","deleteLength","changeIndex","endsWithNewlineChange","getLastChangeIndex","changeDelta","undoDelta","timestamp","delay","maxStack","SHORTKEY","Keyboard","bindings","ENTER","handleEnter","metaKey","ctrlKey","altKey","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","which","keyCode","_this2$quill$getLine2","getLine","_this2$quill$getLeaf2","getLeaf","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","makeEmbedArrowHandler","where","LEFT","RIGHT","curFormats","prevFormats","nextLength","nextFormats","DeltaOp","firstFormats","lastFormats","makeCodeBlockHandler","_this$quill$scroll$de2","scrollIndex","getIndex","makeFormatHandler","ESCAPE","UP","DOWN","cutoff","_this$quill$getLine2","_this$quill$getLine4","header","_this$quill$getLine6","_this$quill$getLine8","IdentAttributor","IndentClass","Blockquote","Header","ListItem","List","_Container","listEventHandler","hasAttribute","Bold","Italic","_Bold","Link","sanitize","url","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","Toolbar","controls","control","addButton","option","addSelect","addControls","handlers","addHandler","selectedIndex","selected","prompt","isActive","clean","direction","align","link","Indent","InlineCode"],"sourceRoot":""} \ No newline at end of file