decidim-core 0.0.1.alpha9 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -25
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/fonts/decidim/Source_Sans_Pro_400.eot +0 -0
  5. data/app/assets/fonts/decidim/Source_Sans_Pro_400.svg +345 -0
  6. data/app/assets/fonts/decidim/Source_Sans_Pro_400.ttf +0 -0
  7. data/app/assets/fonts/decidim/Source_Sans_Pro_400.woff +0 -0
  8. data/app/assets/fonts/decidim/Source_Sans_Pro_400.woff2 +0 -0
  9. data/app/assets/fonts/decidim/Source_Sans_Pro_600.eot +0 -0
  10. data/app/assets/fonts/decidim/Source_Sans_Pro_600.svg +339 -0
  11. data/app/assets/fonts/decidim/Source_Sans_Pro_600.ttf +0 -0
  12. data/app/assets/fonts/decidim/Source_Sans_Pro_600.woff +0 -0
  13. data/app/assets/fonts/decidim/Source_Sans_Pro_600.woff2 +0 -0
  14. data/app/assets/fonts/decidim/Source_Sans_Pro_900.eot +0 -0
  15. data/app/assets/fonts/decidim/Source_Sans_Pro_900.svg +342 -0
  16. data/app/assets/fonts/decidim/Source_Sans_Pro_900.ttf +0 -0
  17. data/app/assets/fonts/decidim/Source_Sans_Pro_900.woff +0 -0
  18. data/app/assets/fonts/decidim/Source_Sans_Pro_900.woff2 +0 -0
  19. data/app/assets/images/decidim/default-avatar.svg +14 -0
  20. data/app/assets/javascripts/decidim.js.es6 +5 -5
  21. data/app/assets/javascripts/decidim/editor.js.es6 +46 -0
  22. data/app/assets/stylesheets/decidim/_variables.scss +12 -13
  23. data/app/assets/stylesheets/decidim/application.sass +4 -1
  24. data/app/assets/stylesheets/decidim/editor.sass +4 -0
  25. data/app/assets/stylesheets/decidim/modules/_card-grid.scss +4 -1
  26. data/app/assets/stylesheets/decidim/modules/_cards.scss +5 -0
  27. data/app/assets/stylesheets/decidim/modules/_navbar.scss +1 -0
  28. data/app/assets/stylesheets/decidim/modules/_process-header.scss +24 -75
  29. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +0 -1
  30. data/app/assets/stylesheets/decidim/modules/_process-phase.scss +80 -0
  31. data/app/assets/stylesheets/decidim/utils/_fontface.scss +39 -1
  32. data/app/assets/stylesheets/decidim/utils/_helpers.scss +25 -0
  33. data/app/assets/stylesheets/decidim/utils/_keyframes.scss +21 -0
  34. data/app/assets/stylesheets/decidim/utils/_mixins.scss +37 -0
  35. data/app/assets/stylesheets/decidim/utils/_settings.scss +11 -5
  36. data/app/commands/decidim/authorize_user.rb +2 -2
  37. data/app/constraints/decidim/current_feature.rb +48 -0
  38. data/app/controllers/concerns/decidim/form_factory.rb +80 -0
  39. data/app/controllers/concerns/decidim/locale_switcher.rb +17 -10
  40. data/app/controllers/concerns/decidim/needs_participatory_process.rb +33 -0
  41. data/app/controllers/decidim/application_controller.rb +1 -1
  42. data/app/controllers/decidim/devise/confirmations_controller.rb +1 -1
  43. data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
  44. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  45. data/app/controllers/decidim/devise/sessions_controller.rb +16 -2
  46. data/app/controllers/decidim/pages_controller.rb +14 -0
  47. data/app/controllers/decidim/participatory_processes_controller.rb +7 -0
  48. data/app/forms/decidim/form.rb +15 -0
  49. data/app/forms/translatable_presence_validator.rb +31 -0
  50. data/app/helpers/decidim/application_helper.rb +17 -2
  51. data/app/helpers/decidim/layout_helper.rb +8 -1
  52. data/app/helpers/decidim/localized_locales_helper.rb +43 -0
  53. data/app/helpers/decidim/participatory_process_helper.rb +16 -0
  54. data/app/helpers/decidim/translations_helper.rb +17 -0
  55. data/app/models/decidim/category.rb +35 -0
  56. data/app/models/decidim/component.rb +51 -0
  57. data/app/models/decidim/feature.rb +30 -0
  58. data/app/models/decidim/organization.rb +20 -1
  59. data/app/models/decidim/participatory_process.rb +43 -4
  60. data/app/models/decidim/participatory_process_attachment.rb +56 -0
  61. data/app/models/decidim/scope.rb +14 -0
  62. data/app/models/decidim/static_page.rb +56 -0
  63. data/app/models/decidim/user.rb +2 -0
  64. data/app/queries/decidim/organization_participatory_processes.rb +17 -0
  65. data/app/services/decidim/authorization_handler.rb +2 -2
  66. data/app/types/decidim/process_step_type.rb +24 -0
  67. data/app/types/decidim/process_type.rb +16 -0
  68. data/app/types/decidim/user_type.rb +14 -0
  69. data/app/uploaders/decidim/attachment_uploader.rb +70 -0
  70. data/app/uploaders/decidim/avatar_uploader.rb +14 -0
  71. data/app/uploaders/decidim/banner_image_uploader.rb +1 -1
  72. data/app/uploaders/decidim/hero_image_uploader.rb +1 -1
  73. data/app/uploaders/decidim/homepage_image_uploader.rb +11 -0
  74. data/app/uploaders/decidim/image_uploader.rb +46 -0
  75. data/app/uploaders/decidim/organization_logo_uploader.rb +9 -0
  76. data/app/views/decidim/devise/registrations/new.html.erb +1 -1
  77. data/app/views/decidim/participatory_processes/_documents.html.erb +26 -0
  78. data/app/views/decidim/participatory_processes/_photos.html.erb +16 -0
  79. data/app/views/decidim/participatory_processes/_promoted_process.html.erb +1 -1
  80. data/app/views/decidim/participatory_processes/show.html.erb +16 -11
  81. data/app/views/kaminari/decidim/_first_page.html.erb +11 -0
  82. data/app/views/kaminari/decidim/_gap.html.erb +8 -0
  83. data/app/views/kaminari/decidim/_last_page.html.erb +11 -0
  84. data/app/views/kaminari/decidim/_next_page.html.erb +11 -0
  85. data/app/views/kaminari/decidim/_page.html.erb +12 -0
  86. data/app/views/kaminari/decidim/_paginator.html.erb +25 -0
  87. data/app/views/kaminari/decidim/_prev_page.html.erb +11 -0
  88. data/app/views/layouts/decidim/_application.html.erb +17 -0
  89. data/app/views/layouts/decidim/_footer.html.erb +5 -3
  90. data/app/views/layouts/decidim/_header.html.erb +8 -21
  91. data/app/views/layouts/decidim/_language_chooser.html.erb +14 -0
  92. data/app/views/layouts/decidim/_logo.html.erb +17 -13
  93. data/app/views/layouts/decidim/_process_header.html.erb +34 -0
  94. data/app/views/layouts/decidim/_process_header_steps.html.erb +26 -0
  95. data/app/views/layouts/decidim/_user_menu.html.erb +2 -0
  96. data/app/views/layouts/decidim/application.html.erb +3 -0
  97. data/app/views/layouts/decidim/participatory_process.html.erb +15 -0
  98. data/app/views/pages/decidim_page.html.erb +12 -0
  99. data/app/views/pages/home.html.erb +106 -2
  100. data/config/i18n-tasks.yml +3 -1
  101. data/config/locales/ca.yml +40 -10
  102. data/config/locales/en.yml +39 -4
  103. data/config/locales/es.yml +44 -14
  104. data/config/routes.rb +14 -1
  105. data/db/migrate/20160919104837_create_decidim_organizations.rb +4 -0
  106. data/db/migrate/20161005153007_add_description_to_organizations.rb +1 -3
  107. data/db/migrate/20161010102356_translate_processes.rb +4 -4
  108. data/db/migrate/20161017085822_add_participatory_process_steps.rb +3 -3
  109. data/db/migrate/20161107152228_remove_not_null_on_step_position.rb +5 -0
  110. data/db/migrate/20161108093802_create_decidim_static_pages.rb +11 -0
  111. data/db/migrate/20161110092735_add_index_for_process_slug_organization.rb +8 -0
  112. data/db/migrate/20161110105712_create_decidim_features.rb +9 -0
  113. data/db/migrate/20161116115156_create_attachments.rb +18 -0
  114. data/db/migrate/20161123085134_add_categories.rb +10 -0
  115. data/db/migrate/20161130105257_create_decidim_scopes.rb +9 -0
  116. data/db/migrate/20161209134715_make_organization_description_optional.rb +5 -0
  117. data/db/migrate/20161213094244_add_avatar_to_users.rb +5 -0
  118. data/db/migrate/20161214152811_add_logo_to_organizations.rb +5 -0
  119. data/db/seeds.rb +36 -6
  120. data/db/seeds/Exampledocument.pdf +0 -0
  121. data/{app/assets/images/decidim/hero-home.jpg → db/seeds/homepage_image.jpg} +0 -0
  122. data/lib/decidim/core.rb +55 -2
  123. data/lib/decidim/core/engine.rb +16 -2
  124. data/lib/decidim/core/version.rb +11 -2
  125. data/lib/decidim/feature_manifest.rb +71 -0
  126. data/lib/decidim/features.rb +8 -0
  127. data/lib/decidim/features/base_controller.rb +32 -0
  128. data/lib/decidim/features/namer.rb +35 -0
  129. data/lib/decidim/form_builder.rb +140 -6
  130. data/lib/decidim/page_finder.rb +48 -0
  131. data/lib/decidim/query_extensions.rb +33 -0
  132. data/lib/decidim/translatable_attributes.rb +1 -24
  133. data/vendor/assets/javascripts/quill.min.js +14 -0
  134. data/vendor/assets/javascripts/quill.min.js.map +1 -0
  135. data/vendor/assets/stylesheets/quill.bubble.css +843 -0
  136. data/vendor/assets/stylesheets/quill.core.css +362 -0
  137. data/vendor/assets/stylesheets/quill.snow.css +881 -0
  138. metadata +164 -32
  139. data/LICENSE.txt +0 -619
  140. data/app/views/decidim/participatory_processes/_process_header_home.html.erb +0 -18
  141. data/app/views/pages/terms.ca.html.erb +0 -4
  142. data/app/views/pages/terms.en.html.erb +0 -4
  143. data/app/views/pages/terms.es.html.erb +0 -4
@@ -44,31 +44,8 @@ module Decidim
44
44
  end
45
45
  end
46
46
 
47
- # Public: Mirrors ActiveModel's `validates` interface to define
48
- # validations in multiple locales.
49
- #
50
- # *arguments - The exact same arguments `validates` would receive.
51
- #
52
- # Example:
53
- #
54
- # translatable_validates :name, :description, presence: true
55
- # # This will validate the presence of `name_ca` and `name_en`
56
- #
57
- # Returns nothing.
58
- def translatable_validates(*arguments)
59
- options = arguments.last
60
- fields = arguments[0..-2]
61
-
62
- localized_fields = fields.flat_map do |f|
63
- locales.map { |locale| "#{f}_#{locale}".gsub("-", "__") }
64
- end
65
-
66
- validation_arguments = localized_fields + [options]
67
- validates(*validation_arguments)
68
- end
69
-
70
47
  def locales
71
- I18n.available_locales
48
+ Decidim.available_locales
72
49
  end
73
50
  end
74
51
 
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Quill Editor v1.1.5
3
+ * https://quilljs.com/
4
+ * Copyright (c) 2014, Jason Chen
5
+ * Copyright (c) 2013, salesforce.com
6
+ */
7
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Quill=e():t.Quill=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}(function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))switch(typeof t[e]){case"function":break;case"object":t[e]=function(e){var n=e.slice(1),r=t[e[0]];return function(t,e,o){r.apply(this,[t,e,o].concat(n))}}(t[e]);break;default:t[e]=t[t[e]]}return t}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(1),i=r(o),l=n(49),a=n(52),s=n(57),u=n(58),c=r(u),f=n(59),p=r(f),h=n(60),d=r(h),y=n(50),v=n(51),b=n(53),g=n(54),m=n(61),_=r(m),O=n(62),w=r(O),x=n(63),k=r(x),E=n(64),j=r(E),A=n(65),N=r(A),q=n(66),T=r(q),P=n(67),S=r(P),L=n(68),C=r(L),M=n(28),R=r(M),I=n(69),B=r(I),D=n(70),U=r(D),H=n(71),F=r(H),K=n(72),z=r(K),Z=n(104),W=r(Z),V=n(106),Y=r(V),G=n(107),X=r(G),Q=n(108),$=r(Q),J=n(109),tt=r(J),et=n(111),nt=r(et);i.default.register({"attributors/attribute/direction":a.DirectionAttribute,"attributors/class/align":l.AlignClass,"attributors/class/background":y.BackgroundClass,"attributors/class/color":v.ColorClass,"attributors/class/direction":a.DirectionClass,"attributors/class/font":b.FontClass,"attributors/class/size":g.SizeClass,"attributors/style/align":l.AlignStyle,"attributors/style/background":y.BackgroundStyle,"attributors/style/color":v.ColorStyle,"attributors/style/direction":a.DirectionStyle,"attributors/style/font":b.FontStyle,"attributors/style/size":g.SizeStyle},!0),i.default.register({"formats/align":l.AlignClass,"formats/direction":a.DirectionClass,"formats/indent":s.IndentClass,"formats/background":y.BackgroundStyle,"formats/color":v.ColorStyle,"formats/font":b.FontClass,"formats/size":g.SizeClass,"formats/blockquote":c.default,"formats/code-block":R.default,"formats/header":p.default,"formats/list":d.default,"formats/bold":_.default,"formats/code":M.Code,"formats/italic":w.default,"formats/link":k.default,"formats/script":j.default,"formats/strike":N.default,"formats/underline":T.default,"formats/image":S.default,"formats/video":C.default,"formats/list/item":h.ListItem,"modules/formula":B.default,"modules/syntax":U.default,"modules/toolbar":F.default,"themes/bubble":tt.default,"themes/snow":nt.default,"ui/icons":z.default,"ui/picker":W.default,"ui/icon-picker":X.default,"ui/color-picker":Y.default,"ui/tooltip":$.default},!0),t.exports=i.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(2),i=r(o),l=n(18),a=r(l),s=n(29),u=r(s),c=n(31),f=r(c),p=n(46),h=r(p),d=n(35),y=r(d),v=n(32),b=r(v),g=n(33),m=r(g),_=n(47),O=r(_),w=n(34),x=r(w),k=n(48),E=r(k),j=n(55),A=r(j),N=n(56),q=r(N);a.default.register({"blots/block":u.default,"blots/block/embed":s.BlockEmbed,"blots/break":f.default,"blots/container":h.default,"blots/cursor":y.default,"blots/embed":b.default,"blots/inline":m.default,"blots/scroll":O.default,"blots/text":x.default,"modules/clipboard":E.default,"modules/history":A.default,"modules/keyboard":q.default}),i.default.register(u.default,f.default,y.default,m.default,O.default,x.default),t.exports=a.default},function(t,e,n){"use strict";var r=n(3),o=n(7),i=n(12),l=n(13),a=n(14),s=n(15),u=n(16),c=n(17),f=n(8),p=n(10),h=n(11),d=n(9),y=n(6),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:u.default,Scroll:l.default,Block:s.default,Inline:a.default,Text:c.default,Attributor:{Attribute:f.default,Class:p.default,Style:h.default,Store:d.default}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=v},function(t,e,n){"use strict";function r(t){var e=a.find(t);if(null==e)try{e=a.create(t)}catch(n){e=a.create(a.Scope.INLINE),[].slice.call(t.childNodes).forEach(function(t){e.domNode.appendChild(t)}),t.parentNode.replaceChild(e.domNode,t),e.attach()}return e}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(4),l=n(5),a=n(6),s=function(t){function e(){t.apply(this,arguments)}return o(e,t),e.prototype.appendChild=function(t){this.insertBefore(t)},e.prototype.attach=function(){var e=this;t.prototype.attach.call(this),this.children=new i.default,[].slice.call(this.domNode.childNodes).reverse().forEach(function(t){try{var n=r(t);e.insertBefore(n,e.children.head)}catch(t){if(t instanceof a.ParchmentError)return;throw t}})},e.prototype.deleteAt=function(t,e){return 0===t&&e===this.length()?this.remove():void 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,l){(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-=l}),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 l=null==n?a.create("text",e):a.create(e,n);this.appendChild(l)}},e.prototype.insertBefore=function(t,e){if(null!=this.statics.allowedChildren&&!this.statics.allowedChildren.some(function(e){return t instanceof e}))throw new a.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(){if(t.prototype.optimize.call(this),0===this.children.length)if(null!=this.statics.defaultChild){var e=a.create(this.statics.defaultChild);this.appendChild(e),e.optimize()}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],l=[[this,t]];return o instanceof e?l.concat(o.path(i,n)):(null!=o&&l.push([o,i]),l)},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){var e=this,n=[],o=[];t.forEach(function(t){t.target===e.domNode&&"childList"===t.type&&(n.push.apply(n,t.addedNodes),o.push.apply(o,t.removedNodes))}),o.forEach(function(t){if(!(null!=t.parentNode&&document.body.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)){var n=a.find(t);null!=n&&(null!=n.domNode.parentNode&&n.domNode.parentNode!==e.domNode||n.detach())}}),n.filter(function(t){return t.parentNode==e.domNode}).sort(function(t,e){return t===e?0:t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1}).forEach(function(t){var n=null;null!=t.nextSibling&&(n=a.find(t.nextSibling));var o=r(t);o.next==n&&null!=o.next||(null!=o.parent&&o.parent.removeChild(e),e.insertBefore(o,n))})},e}(l.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=s},function(t,e){"use strict";var n=function(){function t(){this.head=this.tail=void 0,this.length=0}return t.prototype.append=function(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];this.insertBefore(t[0],void 0),t.length>1&&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.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=void 0,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(t<o||e&&t===o&&(null==n.next||0!==n.next.length()))return[n,t];t-=o}return[null,0]},t.prototype.forEach=function(t){for(var e,n=this.iterator();e=n();)t(e)},t.prototype.forEachAt=function(t,e,n){if(!(e<=0))for(var r,o=this.find(t),i=o[0],l=o[1],a=t-l,s=this.iterator(i);(r=s())&&a<t+e;){var u=r.length();t>a?n(r,t-a,Math.min(e,a+u-t)):n(r,0,Math.min(u,t+e-a)),a+=u}},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}();Object.defineProperty(e,"__esModule",{value:!0}),e.default=n},function(t,e,n){"use strict";var r=n(6),o=function(){function t(t){this.domNode=t,this.attach()}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(){this.domNode[r.DATA_KEY]={blot:this}},t.prototype.clone=function(){var t=this.domNode.cloneNode();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){var n=this.isolate(t,e);n.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 l=r.create(this.statics.scope);i.wrap(l),l.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){if(null!=this.parent&&this.parent.children.remove(this),t.children.insertBefore(this,e),null!=e)var n=e.domNode;null!=this.next&&this.domNode.nextSibling==n||t.domNode.insertBefore(this.domNode,n),this.parent=t},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(){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){void 0===t&&(t=[])},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}();Object.defineProperty(e,"__esModule",{value:!0}),e.default=o},function(t,e){"use strict";function n(t,e){var n=o(t);if(null==n)throw new a("Unable to create "+t+" blot");var r=n,i=t instanceof Node?t:r.create(e);return new r(i,e)}function r(t,n){return void 0===n&&(n=!1),null==t?null:null!=t[e.DATA_KEY]?t[e.DATA_KEY].blot:n?r(t.parentNode,n):null}function o(t,e){void 0===e&&(e=p.ANY);var n;if("string"==typeof t)n=f[t]||s[t];else if(t instanceof Text)n=f.text;else if("number"==typeof t)t&p.LEVEL&p.BLOCK?n=f.block:t&p.LEVEL&p.INLINE&&(n=f.inline);else if(t instanceof HTMLElement){var r=(t.getAttribute("class")||"").split(/\s+/);for(var o in r)if(n=u[r[o]])break;n=n||c[t.tagName]}return null==n&&t instanceof Node&&console.log(t.nodeType),null==n?null:e&p.LEVEL&n.scope&&e&p.TYPE&n.scope?n:null}function i(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];if(t.length>1)return t.map(function(t){return i(t)});var n=t[0];if("string"!=typeof n.blotName&&"string"!=typeof n.attrName)throw new a("Invalid definition");if("abstract"===n.blotName)throw new a("Cannot register abstract class");if(f[n.blotName||n.attrName]=n,"string"==typeof n.keyName)s[n.keyName]=n;else if(null!=n.className&&(u[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!=c[t]&&null!=n.className||(c[t]=n)})}return n}var l=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=function(t){function e(e){e="[Parchment] "+e,t.call(this,e),this.message=e,this.name=this.constructor.name}return l(e,t),e}(Error);e.ParchmentError=a;var s={},u={},c={},f={};e.DATA_KEY="__blot",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"}(e.Scope||(e.Scope={}));var p=e.Scope;e.create=n,e.find=r,e.query=o,e.register=i},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(8),i=n(9),l=n(3),a=n(6),s=function(t){function e(){t.apply(this,arguments)}return r(e,t),e.formats=function(t){return"string"==typeof this.tagName||(Array.isArray(this.tagName)?t.tagName.toLowerCase():void 0)},e.prototype.attach=function(){t.prototype.attach.call(this),this.attributes=new i.default(this.domNode)},e.prototype.format=function(t,e){var n=a.query(t);n instanceof o.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){var n=this;t.prototype.update.call(this,e),e.some(function(t){return t.target===n.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}(l.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=s},function(t,e,n){"use strict";var r=n(6),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){var n=r.query(t,r.Scope.BLOT&(this.scope|r.Scope.TYPE));return null!=n&&(null==this.whitelist||this.whitelist.indexOf(e)>-1)},t.prototype.remove=function(t){t.removeAttribute(this.keyName)},t.prototype.value=function(t){return t.getAttribute(this.keyName)},t}();Object.defineProperty(e,"__esModule",{value:!0}),e.default=o},function(t,e,n){"use strict";var r=n(8),o=n(10),i=n(11),l=n(6),a=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),a=i.default.keys(this.domNode);e.concat(n).concat(a).forEach(function(e){var n=l.query(e,l.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}();Object.defineProperty(e,"__esModule",{value:!0}),e.default=a},function(t,e,n){"use strict";function r(t,e){var n=t.getAttribute("class")||"";return n.split(/\s+/).filter(function(t){return 0===t.indexOf(e+"-")})}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(8),l=function(t){function e(){t.apply(this,arguments)}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){var e=r(t,this.keyName);e.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]||"";return e.slice(this.keyName.length+1)},e}(i.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=l},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(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(8),l=function(t){function e(){t.apply(this,arguments)}return o(e,t),e.keys=function(t){return(t.getAttribute("style")||"").split(";").map(function(t){var e=t.split(":");return e[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){return t.style[r(this.keyName)]},e}(i.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=l},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(5),i=n(6),l=function(t){function e(){t.apply(this,arguments)}return r(e,t),e.value=function(t){return!0},e.prototype.index=function(t,e){return t!==this.domNode?-1:Math.min(e,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={},t[this.statics.blotName]=this.statics.value(this.domNode)||!0,t;var t},e.scope=i.Scope.INLINE_BLOT,e}(o.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=l},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(3),i=n(6),l={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},a=100,s=function(t){function e(e){var n=this;t.call(this,e),this.parent=null,this.observer=new MutationObserver(function(t){n.update(t)}),this.observer.observe(this.domNode,l)}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){var n=this;void 0===e&&(e=[]),t.prototype.optimize.call(this),e.push.apply(e,this.observer.takeRecords());for(var r=function(t,e){void 0===e&&(e=!0),null!=t&&t!==n&&null!=t.domNode.parentNode&&(null==t.domNode[i.DATA_KEY].mutations&&(t.domNode[i.DATA_KEY].mutations=[]),e&&r(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())},s=e,u=0;s.length>0;u+=1){if(u>=a)throw new Error("[Parchment] Maximum optimize iterations reached");s.forEach(function(t){var e=i.find(t.target,!0);null!=e&&(e.domNode===t.target&&("childList"===t.type?(r(i.find(t.previousSibling,!1)),[].forEach.call(t.addedNodes,function(t){var e=i.find(t,!1);r(e,!1),e instanceof o.default&&e.children.forEach(function(t){r(t,!1)})})):"attributes"===t.type&&r(e.prev)),r(e))}),this.children.forEach(l),s=this.observer.takeRecords(),e.push.apply(e,s)}},e.prototype.update=function(e){var n=this;e=e||this.observer.takeRecords(),e.map(function(t){var e=i.find(t.target,!0);if(null!=e)return 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!==n&&null!=t.domNode[i.DATA_KEY]&&t.update(t.domNode[i.DATA_KEY].mutations||[])}),null!=this.domNode[i.DATA_KEY].mutations&&t.prototype.update.call(this,this.domNode[i.DATA_KEY].mutations),this.optimize(e)},e.blotName="scroll",e.defaultChild="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="DIV",e}(o.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=s},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(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=n(7),l=n(6),a=function(t){function e(){t.apply(this,arguments)}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]||l.query(r,l.Scope.ATTRIBUTE)){var i=this.isolate(e,n);i.format(r,o)}else t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.optimize=function(){t.prototype.optimize.call(this);var n=this.formats();if(0===Object.keys(n).length)return this.unwrap();var o=this.next;o instanceof e&&o.prev===this&&r(n,o.formats())&&(o.moveChildren(this),o.remove())},e.blotName="inline",e.scope=l.Scope.INLINE_BLOT,e.tagName="SPAN",e}(i.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(7),i=n(6),l=function(t){function e(){t.apply(this,arguments)}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),l=i.create(n,r);o.parent.insertBefore(l,o)}},e.blotName="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="P",e}(o.default);Object.defineProperty(e,"__esModule",{value:!0}),e.default=l},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(12),i=function(t){function e(){t.apply(this,arguments)}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);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=n(12),i=n(6),l=function(t){function e(e){t.call(this,e),this.text=this.statics.value(this.domNode)}return r(e,t),e.create=function(t){return document.createTextNode(t)},e.value=function(t){return t.data},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(){t.prototype.optimize.call(this),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){var e=this;t.some(function(t){return"characterData"===t.type&&t.target===e.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);Object.defineProperty(e,"__esModule",{value:!0}),e.default=l},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 l(t,e){if(e=(0,j.default)(!0,{container:t,modules:{clipboard:!0,keyboard:!0,history:!0}},e),e.theme&&e.theme!==S.DEFAULTS.theme){if(e.theme=S.import("themes/"+e.theme),null==e.theme)throw new Error("Invalid theme "+e.theme+". Did you register it?")}else e.theme=T.default;var n=(0,j.default)(!0,{},e.theme.DEFAULTS);[n,e].forEach(function(t){t.modules=t.modules||{},Object.keys(t.modules).forEach(function(e){t.modules[e]===!0&&(t.modules[e]={})})});var r=Object.keys(n.modules).concat(Object.keys(e.modules)),o=r.reduce(function(t,e){var n=S.import("modules/"+e);return null==n?P.error("Cannot load "+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=(0,j.default)(!0,{},S.DEFAULTS,{modules:o},n,e),["bounds","container"].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 a(t,e,n,r){if(!this.options.strict&&!this.isEnabled()&&e===g.default.sources.USER)return new d.default;var o=null==n?null:this.getSelection(),i=this.editor.delta,l=t();if(null!=o&&(n===!0&&(n=o.index),null==r?o=u(o,l,e):0!==r&&(o=u(o,n,r,e)),this.setSelection(o,g.default.sources.SILENT)),l.length()>0){var a,s=[g.default.events.TEXT_CHANGE,l,i,e];if((a=this.emitter).emit.apply(a,[g.default.events.EDITOR_CHANGE].concat(s)),e!==g.default.sources.SILENT){var c;(c=this.emitter).emit.apply(c,s)}}return l}function s(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"===("undefined"==typeof 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 u(t,e,n,r){if(null==t)return null;var o=void 0,i=void 0;if(e instanceof d.default){var l=[t.index,t.index+t.length].map(function(t){return e.transformPosition(t,r===g.default.sources.USER)}),a=f(l,2);o=a[0],i=a[1]}else{var s=[t.index,t.index+t.length].map(function(t){return t<e||t===e&&r!==g.default.sources.USER?t:n>=0?t+n:Math.max(e,t+n)}),u=f(s,2);o=u[0],i=u[1]}return new x.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 l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}();n(19);var h=n(20),d=r(h),y=n(27),v=r(y),b=n(36),g=r(b),m=n(43),_=r(m),O=n(2),w=r(O),x=n(44),k=r(x),E=n(30),j=r(E),A=n(38),N=r(A),q=n(45),T=r(q),P=(0,N.default)("quill"),S=function(){function t(e){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,t),this.options=l(e,r),this.container=this.options.container,null==this.container)return P.error("Invalid Quill container",e);this.options.debug&&t.debug(this.options.debug);var o=this.container.innerHTML.trim();
8
+ this.container.classList.add("ql-container"),this.container.innerHTML="",this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),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 k.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;a.call(n,function(){return n.editor.update(null,e,o)},t)});var s=this.clipboard.convert("<div class='ql-editor' style=\"white-space: normal;\">"+o+"<p><br></p></div>");this.setContents(s),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){t===!0&&(t="log"),N.default.level(t)}},{key:"import",value:function(t){return null==this.imports[t]&&P.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||P.warn("Overwriting "+t+" with",e),this.imports[t]=e,(t.startsWith("blots/")||t.startsWith("formats/"))&&"abstract"!==e.blotName&&w.default.register(e)}}]),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=s(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],a.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),t||this.blur()}},{key:"focus",value:function(){this.selection.focus(),this.selection.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 a.call(this,function(){var r=n.getSelection(!0),i=new d.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,l=void 0,u=s(t,e,n,r,o),c=f(u,4);return t=c[0],e=c[1],l=c[2],o=c[3],a.call(this,function(){return i.editor.formatLine(t,e,l)},o,t,0)}},{key:"formatText",value:function(t,e,n,r,o){var i=this,l=void 0,u=s(t,e,n,r,o),c=f(u,4);return t=c[0],e=c[1],l=c[2],o=c[3],a.call(this,function(){return i.editor.formatText(t,e,l)},o,t,0)}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"number"==typeof t?this.selection.getBounds(t,e):this.selection.getBounds(t.index,t.length)}},{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=s(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(),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:"getLength",value:function(){return this.scroll.length()}},{key:"getModule",value:function(t){return this.theme.modules[t]}},{key:"getSelection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&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=s(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 a.call(this,function(){return o.editor.insertEmbed(e,n,r)},i,e)}},{key:"insertText",value:function(t,e,n,r,o){var i=this,l=void 0,u=s(t,0,n,r,o),c=f(u,4);return t=c[0],l=c[2],o=c[3],a.call(this,function(){return i.editor.insertText(t,e,l)},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=s(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],a.call(this,function(){return r.editor.removeFormat(t,e)},n,t)}},{key:"setContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API;return a.call(this,function(){t=new d.default(t);var n=e.getLength(),r=e.editor.deleteText(0,n),o=e.editor.applyDelta(t),i=o.ops[o.ops.length-1];null!=i&&"string"==typeof i.insert&&"\n"===i.insert[i.insert.length-1]&&(e.editor.deleteText(e.getLength()-1,1),o.delete(1));var l=r.compose(o);return l},n)}},{key:"setSelection",value:function(e,n,r){if(null==e)this.selection.setRange(null,n||t.sources.API);else{var o=s(e,n,r),i=f(o,4);e=i[0],n=i[1],r=i[3],this.selection.setRange(new x.Range(e,n),r)}this.selection.scrollIntoView()}},{key:"setText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API,n=(new d.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 a.call(this,function(){return t=new d.default(t),e.editor.applyDelta(t,n)},n,!0)}}]),t}();S.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,strict:!0,theme:"default"},S.events=g.default.events,S.sources=g.default.sources,S.version="1.1.5",S.imports={delta:d.default,parchment:w.default,"core/module":_.default,"core/theme":T.default},e.expandConfig=l,e.overload=s,e.default=S},function(t,e){"use strict";var n=document.createElement("div");n.classList.toggle("test-class",!1),n.classList.contains("test-class")&&!function(){var t=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(e,n){return arguments.length>1&&!this.contains(e)==!n?n:t.call(this,e)}}(),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 r!==-1&&r===e}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function t(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,n=Object(this),r=n.length>>>0,o=arguments[1],i=0;i<r;i++)if(t=n[i],e.call(o,t,i,n))return t}}),document.addEventListener("DOMContentLoaded",function(){document.execCommand("enableObjectResizing",!1,!1)})},function(t,e,n){var r=n(21),o=n(22),i=n(25),l=n(26),a=String.fromCharCode(0),s=function(t){Array.isArray(t)?this.ops=t:null!=t&&Array.isArray(t.ops)?this.ops=t.ops:this.ops=[]};s.prototype.insert=function(t,e){var n={};return 0===t.length?this:(n.insert=t,null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n))},s.prototype.delete=function(t){return t<=0?this:this.push({delete:t})},s.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)},s.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,n=this.ops[e-1],"object"!=typeof n))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},s.prototype.filter=function(t){return this.ops.filter(t)},s.prototype.forEach=function(t){this.ops.forEach(t)},s.prototype.map=function(t){return this.ops.map(t)},s.prototype.partition=function(t){var e=[],n=[];return this.forEach(function(r){var o=t(r)?e:n;o.push(r)}),[e,n]},s.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},s.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},s.prototype.length=function(){return this.reduce(function(t,e){return t+l.length(e)},0)},s.prototype.slice=function(t,e){t=t||0,"number"!=typeof e&&(e=1/0);for(var n=[],r=l.iterator(this.ops),o=0;o<e&&r.hasNext();){var i;o<t?i=r.next(t-o):(i=r.next(e-o),n.push(i)),o+=l.length(i)}return new s(n)},s.prototype.compose=function(t){for(var e=l.iterator(this.ops),n=l.iterator(t.ops),r=new s;e.hasNext()||n.hasNext();)if("insert"===n.peekType())r.push(n.next());else if("delete"===e.peekType())r.push(e.next());else{var o=Math.min(e.peekLength(),n.peekLength()),i=e.next(o),a=n.next(o);if("number"==typeof a.retain){var u={};"number"==typeof i.retain?u.retain=o:u.insert=i.insert;var c=l.attributes.compose(i.attributes,a.attributes,"number"==typeof i.retain);c&&(u.attributes=c),r.push(u)}else"number"==typeof a.delete&&"number"==typeof i.retain&&r.push(a)}return r.chop()},s.prototype.concat=function(t){var e=new s(this.ops.slice());return t.ops.length>0&&(e.push(t.ops[0]),e.ops=e.ops.concat(t.ops.slice(1))),e},s.prototype.diff=function(t,e){if(this.ops===t.ops)return new s;var n=[this,t].map(function(e){return e.map(function(n){if(null!=n.insert)return"string"==typeof n.insert?n.insert:a;var r=e===t?"on":"with";throw new Error("diff() called "+r+" non-document")}).join("")}),i=new s,u=r(n[0],n[1],e),c=l.iterator(this.ops),f=l.iterator(t.ops);return u.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 a=c.next(n),s=f.next(n);o(a.insert,s.insert)?i.retain(n,l.attributes.diff(a.attributes,s.attributes)):i.push(s).delete(n)}e-=n}}),i.chop()},s.prototype.eachLine=function(t,e){e=e||"\n";for(var n=l.iterator(this.ops),r=new s;n.hasNext();){if("insert"!==n.peekType())return;var o=n.peek(),i=l.length(o)-n.peekLength(),a="string"==typeof o.insert?o.insert.indexOf(e,i)-i:-1;a<0?r.push(n.next()):a>0?r.push(n.next(a)):(t(r,n.next(1).attributes||{}),r=new s)}r.length()>0&&t(r,{})},s.prototype.transform=function(t,e){if(e=!!e,"number"==typeof t)return this.transformPosition(t,e);for(var n=l.iterator(this.ops),r=l.iterator(t.ops),o=new s;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()),a=n.next(i),u=r.next(i);if(a.delete)continue;u.delete?o.push(u):o.retain(i,l.attributes.transform(a.attributes,u.attributes,e))}else o.retain(l.length(n.next()));return o.chop()},s.prototype.transformPosition=function(t,e){e=!!e;for(var n=l.iterator(this.ops),r=0;n.hasNext()&&r<=t;){var o=n.peekLength(),i=n.peekType();n.next(),"delete"!==i?("insert"===i&&(r<t||!e)&&(t+=o),r+=o):t-=Math.min(o,t-r)}return t},t.exports=s},function(t,e){function n(t,e,n){if(t==e)return t?[[y,t]]:[];(n<0||t.length<n)&&(n=null);var o=l(t,e),i=t.substring(0,o);t=t.substring(o),e=e.substring(o),o=a(t,e);var s=t.substring(t.length-o);t=t.substring(0,t.length-o),e=e.substring(0,e.length-o);var c=r(t,e);return i&&c.unshift([y,i]),s&&c.push([y,s]),u(c),null!=n&&(c=f(c,n)),c}function r(t,e){var r;if(!t)return[[d,e]];if(!e)return[[h,t]];var i=t.length>e.length?t:e,l=t.length>e.length?e:t,a=i.indexOf(l);if(a!=-1)return r=[[d,i.substring(0,a)],[y,l],[d,i.substring(a+l.length)]],t.length>e.length&&(r[0][0]=r[2][0]=h),r;if(1==l.length)return[[h,t],[d,e]];var u=s(t,e);if(u){var c=u[0],f=u[1],p=u[2],v=u[3],b=u[4],g=n(c,p),m=n(f,v);return g.concat([[y,b]],m)}return o(t,e)}function o(t,e){for(var n=t.length,r=e.length,o=Math.ceil((n+r)/2),l=o,a=2*o,s=new Array(a),u=new Array(a),c=0;c<a;c++)s[c]=-1,u[c]=-1;s[l+1]=0,u[l+1]=0;for(var f=n-r,p=f%2!=0,y=0,v=0,b=0,g=0,m=0;m<o;m++){for(var _=-m+y;_<=m-v;_+=2){var O,w=l+_;O=_==-m||_!=m&&s[w-1]<s[w+1]?s[w+1]:s[w-1]+1;for(var x=O-_;O<n&&x<r&&t.charAt(O)==e.charAt(x);)O++,x++;if(s[w]=O,O>n)v+=2;else if(x>r)y+=2;else if(p){var k=l+f-_;if(k>=0&&k<a&&u[k]!=-1){var E=n-u[k];if(O>=E)return i(t,e,O,x)}}}for(var j=-m+b;j<=m-g;j+=2){var E,k=l+j;E=j==-m||j!=m&&u[k-1]<u[k+1]?u[k+1]:u[k-1]+1;for(var A=E-j;E<n&&A<r&&t.charAt(n-E-1)==e.charAt(r-A-1);)E++,A++;if(u[k]=E,E>n)g+=2;else if(A>r)b+=2;else if(!p){var w=l+f-j;if(w>=0&&w<a&&s[w]!=-1){var O=s[w],x=l+O-w;if(E=n-E,O>=E)return i(t,e,O,x)}}}}return[[h,t],[d,e]]}function i(t,e,r,o){var i=t.substring(0,r),l=e.substring(0,o),a=t.substring(r),s=e.substring(o),u=n(i,l),c=n(a,s);return u.concat(c)}function l(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<o;)t.substring(i,o)==e.substring(i,o)?(n=o,i=n):r=o,o=Math.floor((r-n)/2+n);return o}function a(t,e){if(!t||!e||t.charAt(t.length-1)!=e.charAt(e.length-1))return 0;for(var n=0,r=Math.min(t.length,e.length),o=r,i=0;n<o;)t.substring(t.length-o,t.length-i)==e.substring(e.length-o,e.length-i)?(n=o,i=n):r=o,o=Math.floor((r-n)/2+n);return o}function s(t,e){function n(t,e,n){for(var r,o,i,s,u=t.substring(n,n+Math.floor(t.length/4)),c=-1,f="";(c=e.indexOf(u,c+1))!=-1;){var p=l(t.substring(n),e.substring(c)),h=a(t.substring(0,n),e.substring(0,c));f.length<h+p&&(f=e.substring(c-h,c)+e.substring(c,c+p),r=t.substring(0,n-h),o=t.substring(n+p),i=e.substring(0,c-h),s=e.substring(c+p))}return 2*f.length>=t.length?[r,o,i,s,f]:null}var r=t.length>e.length?t:e,o=t.length>e.length?e:t;if(r.length<4||2*o.length<r.length)return null;var i,s=n(r,o,Math.ceil(r.length/4)),u=n(r,o,Math.ceil(r.length/2));if(!s&&!u)return null;i=u?s&&s[4].length>u[4].length?s:u:s;var c,f,p,h;t.length>e.length?(c=i[0],f=i[1],p=i[2],h=i[3]):(p=i[0],h=i[1],c=i[2],f=i[3]);var d=i[4];return[c,f,p,h,d]}function u(t){t.push([y,""]);for(var e,n=0,r=0,o=0,i="",s="";n<t.length;)switch(t[n][0]){case d:o++,s+=t[n][1],n++;break;case h:r++,i+=t[n][1],n++;break;case y:r+o>1?(0!==r&&0!==o&&(e=l(s,i),0!==e&&(n-r-o>0&&t[n-r-o-1][0]==y?t[n-r-o-1][1]+=s.substring(0,e):(t.splice(0,0,[y,s.substring(0,e)]),n++),s=s.substring(e),i=i.substring(e)),e=a(s,i),0!==e&&(t[n][1]=s.substring(s.length-e)+t[n][1],s=s.substring(0,s.length-e),i=i.substring(0,i.length-e))),0===r?t.splice(n-o,r+o,[d,s]):0===o?t.splice(n-r,r+o,[h,i]):t.splice(n-r-o,r+o,[h,i],[d,s]),n=n-r-o+(r?1:0)+(o?1:0)+1):0!==n&&t[n-1][0]==y?(t[n-1][1]+=t[n][1],t.splice(n,1)):n++,o=0,r=0,i="",s=""}""===t[t.length-1][1]&&t.pop();var c=!1;for(n=1;n<t.length-1;)t[n-1][0]==y&&t[n+1][0]==y&&(t[n][1].substring(t[n][1].length-t[n-1][1].length)==t[n-1][1]?(t[n][1]=t[n-1][1]+t[n][1].substring(0,t[n][1].length-t[n-1][1].length),t[n+1][1]=t[n-1][1]+t[n+1][1],t.splice(n-1,1),c=!0):t[n][1].substring(0,t[n+1][1].length)==t[n+1][1]&&(t[n-1][1]+=t[n+1][1],t[n][1]=t[n][1].substring(t[n+1][1].length)+t[n+1][1],t.splice(n+1,1),c=!0)),n++;c&&u(t)}function c(t,e){if(0===e)return[y,t];for(var n=0,r=0;r<t.length;r++){var o=t[r];if(o[0]===h||o[0]===y){var i=n+o[1].length;if(e===i)return[r+1,t];if(e<i){t=t.slice();var l=e-n,a=[o[0],o[1].slice(0,l)],s=[o[0],o[1].slice(l)];return t.splice(r,1,a,s),[r+1,t]}n=i}}throw new Error("cursor_pos is out of bounds!")}function f(t,e){var n=c(t,e),r=n[1],o=n[0],i=r[o],l=r[o+1];if(null==i)return t;if(i[0]!==y)return t;if(null!=l&&i[1]+l[1]===l[1]+i[1])return r.splice(o,2,l,i),p(r,o,2);if(null!=l&&0===l[1].indexOf(i[1])){r.splice(o,2,[l[0],i[1]],[0,i[1]]);var a=l[1].slice(i[1].length);return a.length>0&&r.splice(o+2,0,[l[0],a]),p(r,o,3)}return t}function p(t,e,n){for(var r=e+n-1;r>=0&&r>=e-1;r--)if(r+1<t.length){var o=t[r],i=t[r+1];o[0]===i[1]&&t.splice(r,2,[o[0],o[1]+i[1]])}return t}var h=-1,d=1,y=0,v=n;v.INSERT=d,v.DELETE=h,v.EQUAL=y,t.exports=v},[112,23,24],function(t,e){function n(t){var e=[];for(var n in t)e.push(n);return e}e=t.exports="function"==typeof Object.keys?Object.keys:n,e.shim=n},function(t,e){function n(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();e=t.exports=o?n:r,e.supported=n,e.unsupported=r},function(t,e){"use strict";var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,o=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===r.call(t)},i=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"undefined"==typeof i||n.call(t,i)};t.exports=function t(){var e,n,r,l,a,s,u=arguments[0],c=1,f=arguments.length,p=!1;for("boolean"==typeof u?(p=u,u=arguments[1]||{},c=2):("object"!=typeof u&&"function"!=typeof u||null==u)&&(u={});c<f;++c)if(e=arguments[c],null!=e)for(n in e)r=u[n],l=e[n],u!==l&&(p&&l&&(i(l)||(a=o(l)))?(a?(a=!1,s=r&&o(r)?r:[]):s=r&&i(r)?r:{},u[n]=t(p,s,l)):"undefined"!=typeof l&&(u[n]=l));return u}},function(t,e,n){function r(t){this.ops=t,this.index=0,this.offset=0}var o=n(22),i=n(25),l={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=l.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]?l.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"},t.exports=l},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 l(t,e){return Object.keys(e).reduce(function(n,r){return null==t[r]?n:(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)},{})}function a(t){return t.reduce(function(t,e){if(1===e.insert){var n=(0,k.default)(e.attributes);return delete n.image,t.insert({image:e.attributes.image},n)}if(null==e.attributes||e.attributes.list!==!0&&e.attributes.bullet!==!0||(e=(0,k.default)(e),e.attributes.list?e.attributes.list="ordered":(e.attributes.list="bullet",delete e.attributes.bullet)),"string"==typeof e.insert){var r=e.insert.replace(/\r\n/g,"\n").replace(/\r/g,"\n");return t.insert(r,e.attributes)}return t.push(e)},new p.default)}Object.defineProperty(e,"__esModule",{value:!0});var s="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},u=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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")}}(),c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=n(20),p=r(f),h=n(26),d=r(h),y=n(2),v=r(y),b=n(28),g=r(b),m=n(35),_=r(m),O=n(29),w=r(O),x=n(39),k=r(x),E=n(40),j=r(E),A=n(30),N=r(A),q=function(){function t(e){i(this,t),this.scroll=e,this.delta=this.getDelta()}return c(t,[{key:"applyDelta",value:function(t){var e=this,n=!1;this.scroll.update();var r=this.scroll.length();return this.scroll.batch=!0,t=a(t),t.reduce(function(t,o){var i=o.retain||o.delete||o.insert.length||1,l=o.attributes||{};if(null!=o.insert){if("string"==typeof o.insert){var a=o.insert;a.endsWith("\n")&&n&&(n=!1,a=a.slice(0,-1)),t>=r&&!a.endsWith("\n")&&(n=!0),e.scroll.insertAt(t,a);var c=e.scroll.line(t),f=u(c,2),p=f[0],h=f[1],y=(0,N.default)({},(0,O.bubbleFormats)(p));if(p instanceof w.default){var b=p.descendant(v.default.Leaf,h),g=u(b,1),m=g[0];y=(0,N.default)(y,(0,O.bubbleFormats)(m))}l=d.default.attributes.diff(y,l)||{}}else if("object"===s(o.insert)){var _=Object.keys(o.insert)[0];if(null==_)return t;e.scroll.insertAt(t,_,o.insert[_])}r+=i}return Object.keys(l).forEach(function(n){e.scroll.formatAt(t,i,n,l[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.batch=!1,this.scroll.optimize(),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){var i=n.scroll.lines(t,Math.max(e,1)),l=e;i.forEach(function(e){var i=e.length();if(e instanceof g.default){var a=t-e.offset(n.scroll),s=e.newlineIndex(a+l)-a+1;e.formatAt(a,s,o,r[o])}else e.format(o,r[o]);l-=i})}),this.scroll.optimize(),this.update((new p.default).retain(t).retain(e,(0,k.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,k.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=u(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=l((0,O.bubbleFormats)(n),e)}return e});return N.default.apply(N.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,k.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.length()<=1&&0==Object.keys(t.formats()).length}},{key:"removeFormat",value:function(t,e){var n=this.getText(t,e),r=this.scroll.line(t+e),o=u(r,2),i=o[0],l=o[1],a=0,s=new p.default;null!=i&&(a=i instanceof g.default?i.newlineIndex(l)-l+1:i.length()-l,s=i.delta().slice(l,l+a-1).insert("\n"));var c=this.getContents(t,e+a),f=c.diff((new p.default).insert(n).concat(s)),h=(new p.default).retain(t).concat(f);return this.applyDelta(h)}},{key:"update",value:function(t){var e=this,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;return 1===n.length&&"characterData"===n[0].type&&v.default.find(n[0].target)?!function(){var i=v.default.find(n[0].target),l=(0,O.bubbleFormats)(i),a=i.offset(e.scroll),s=n[0].oldValue.replace(_.default.CONTENTS,""),u=(new p.default).insert(s),c=(new p.default).insert(i.value()),f=(new p.default).retain(a).concat(u.diff(c,r));t=f.reduce(function(t,e){return e.insert?t.insert(e.insert,l):t.push(e)},new p.default),e.delta=o.compose(t)}():(this.delta=this.getDelta(),t&&(0,j.default)(o.compose(t),this.delta)||(t=o.diff(this.delta,r))),t}}]),t}();e.default=q},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 l(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.default=e.Code=void 0;var a=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(20),f=r(c),p=n(2),h=r(p),d=n(29),y=r(d),v=n(33),b=r(v),g=n(34),m=r(g),_=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(b.default);_.blotName="code",_.tagName="CODE";var O=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),s(e,[{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 f.default)}},{key:"format",value:function(t,n){if(t!==this.statics.blotName||!n){var r=this.descendant(m.default,this.length()-1),o=a(r,1),i=o[0];null!=i&&i.deleteAt(i.length()-1,1),u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}},{key:"formatAt",value:function(t,n,r,o){if(0!==n&&null!=h.default.query(r,h.default.Scope.BLOCK)&&(r!==this.statics.blotName||o!==this.statics.formats(this.domNode))){var i=this.newlineIndex(t);if(!(i<0||i>=t+n)){var l=this.newlineIndex(t,!0)+1,a=i-l+1,s=this.isolate(l,a),u=s.next;s.format(r,o),u instanceof e&&u.formatAt(0,t-l+n-a,r,o)}}}},{key:"insertAt",value:function(t,e,n){if(null==n){var r=this.descendant(m.default,t),o=a(r,2),i=o[0],l=o[1];i.insertAt(l,e)}}},{key:"length",value:function t(){var t=this.domNode.textContent.length;return this.domNode.textContent.endsWith("\n")?t:t+1}},{key:"newlineIndex",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e)return this.domNode.textContent.slice(0,t).lastIndexOf("\n");var n=this.domNode.textContent.slice(t).indexOf("\n");return n>-1?t+n:-1}},{key:"optimize",value:function(){this.domNode.textContent.endsWith("\n")||this.appendChild(h.default.create("text","\n")),u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this);var t=this.next;null!=t&&t.prev===this&&t.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===t.statics.formats(t.domNode)&&(t.optimize(),t.moveChildren(this),t.remove())}},{key:"replace",value:function(t){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t),[].slice.call(this.domNode.querySelectorAll("*")).forEach(function(t){var e=h.default.find(t);null==e?t.parentNode.removeChild(t):e instanceof h.default.Embed?e.remove():e.unwrap()})}}],[{key:"create",value:function(t){var n=u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);
9
+ 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 l(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 a(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:a(t.parent,e))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BlockEmbed=e.bubbleFormats=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(30),f=r(c),p=n(20),h=r(p),d=n(2),y=r(d),v=n(31),b=r(v),g=n(32),m=r(g),_=n(33),O=r(_),w=n(34),x=r(w),k=1,E=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),s(e,[{key:"attach",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"attach",this).call(this),this.attributes=new y.default.Attributor.Store(this.domNode)}},{key:"delta",value:function(){return(new h.default).insert(this.value(),(0,f.default)(this.formats(),this.attributes.values()))}},{key:"format",value:function(t,e){var n=y.default.query(t,y.default.Scope.BLOCK_ATTRIBUTE);null!=n&&this.attributes.attribute(n,e)}},{key:"formatAt",value:function(t,e,n,r){this.format(n,r)}},{key:"insertAt",value:function(t,n,r){if("string"==typeof n&&n.endsWith("\n")){var o=y.default.create(j.blotName);this.parent.insertBefore(o,0===t?this:this.next),o.insertAt(0,n.slice(0,-1))}else u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,t,n,r)}}]),e}(m.default);E.scope=y.default.Scope.BLOCK_BLOT;var j=function(t){function e(t){o(this,e);var n=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.cache={},n}return l(e,t),s(e,[{key:"delta",value:function(){return null==this.cache.delta&&(this.cache.delta=this.descendants(y.default.Leaf).reduce(function(t,e){return 0===e.length()?t:t.insert(e.value(),a(e))},new h.default).insert("\n",a(this))),this.cache.delta}},{key:"deleteAt",value:function(t,n){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"deleteAt",this).call(this,t,n),this.cache={}}},{key:"formatAt",value:function(t,n,r,o){n<=0||(y.default.query(r,y.default.Scope.BLOCK)?t+n===this.length()&&this.format(r,o):u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"formatAt",this).call(this,t,Math.min(n,this.length()-t-1),r,o),this.cache={})}},{key:"insertAt",value:function(t,n,r){if(null!=r)return u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,t,n,r);if(0!==n.length){var o=n.split("\n"),i=o.shift();i.length>0&&(t<this.length()-1||null==this.children.tail?u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,Math.min(t,this.length()-1),i):this.children.tail.insertAt(this.children.tail.length(),i),this.cache={});var l=this;o.reduce(function(t,e){return l=l.split(t,!0),l.insertAt(0,e),e.length},t+i.length)}}},{key:"insertBefore",value:function(t,n){var r=this.children.head;u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n),r instanceof b.default&&r.remove(),this.cache={}}},{key:"length",value:function(){return null==this.cache.length&&(this.cache.length=u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"length",this).call(this)+k),this.cache.length}},{key:"moveChildren",value:function(t,n){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"moveChildren",this).call(this,t,n),this.cache={}}},{key:"optimize",value:function(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this),this.cache={}}},{key:"path",value:function(t){return u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"path",this).call(this,t,!0)}},{key:"removeChild",value:function(t){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"removeChild",this).call(this,t),this.cache={}}},{key:"split",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n&&(0===t||t>=this.length()-k)){var r=this.clone();return 0===t?(this.parent.insertBefore(r,this),this):(this.parent.insertBefore(r,this.next),r)}var o=u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"split",this).call(this,t,n);return this.cache={},o}}]),e}(y.default.Block);j.blotName="block",j.tagName="P",j.defaultChild="break",j.allowedChildren=[O.default,m.default,x.default],e.bubbleFormats=a,e.BlockEmbed=E,e.default=j},25,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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(32),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"insertInto",value:function(t,n){0===t.children.length?s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertInto",this).call(this,t,n):this.remove()}},{key:"length",value:function(){return 0}},{key:"value",value:function(){return""}}],[{key:"value",value:function(){}}]),e}(c.default);f.blotName="break",f.tagName="BR",e.default=f},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 l(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(2),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default.Embed);e.default=u},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(32),c=r(u),f=n(34),p=r(f),h=n(2),d=r(h),y=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"formatAt",value:function(t,n,r,o){if(e.compare(this.statics.blotName,r)<0&&d.default.query(r,d.default.Scope.BLOT)){var i=this.isolate(t,n);o&&i.wrap(r,o)}else s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"formatAt",this).call(this,t,n,r,o)}},{key:"optimize",value:function(){if(s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this),this.parent instanceof e&&e.compare(this.statics.blotName,this.parent.statics.blotName)>0){var t=this.parent.isolate(this.offset(),this.length());this.moveChildren(t),t.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:t<n?-1:1}}]),e}(d.default.Inline);y.allowedChildren=[y,c.default,p.default],y.order=["cursor","inline","code","underline","strike","italic","bold","script","link"],e.default=y},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 l(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(2),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default.Text);e.default=u},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 l(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){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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 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 l=o.get;if(void 0!==l)return l.call(r)},u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(2),f=r(c),p=n(32),h=r(p),d=n(34),y=r(d),v=n(36),b=r(v),g=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return r.selection=n,r.textNode=document.createTextNode(e.CONTENTS),r.domNode.appendChild(r.textNode),r._length=0,r}return l(e,t),u(e,null,[{key:"value",value:function(){}}]),u(e,[{key:"detach",value:function(){null!=this.parent&&this.parent.removeChild(this)}},{key:"format",value:function(t,n){if(0!==this._length)return s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n);for(var r=this,o=0;null!=r&&r.statics.scope!==f.default.Scope.BLOCK_BLOT;)o+=r.offset(r.parent),r=r.parent;null!=r&&(this._length=e.CONTENTS.length,r.optimize(),r.formatAt(o,e.CONTENTS.length,t,n),this._length=0)}},{key:"index",value:function(t,n){return t===this.textNode?0:s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"index",this).call(this,t,n)}},{key:"length",value:function(){return this._length}},{key:"position",value:function(){return[this.textNode,this.textNode.data.length]}},{key:"remove",value:function(){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"remove",this).call(this),this.parent=null}},{key:"restore",value:function(){var t=this;if(!this.selection.composing&&null!=this.parent){var n=this.textNode,r=this.selection.getNativeRange(),o=void 0,i=void 0,l=void 0;if(null!=r&&r.start.node===n&&r.end.node===n){var s=[n,r.start.offset,r.end.offset];o=s[0],i=s[1],l=s[2]}for(;null!=this.domNode.lastChild&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);if(this.textNode.data!==e.CONTENTS){var u=this.textNode.data.split(e.CONTENTS).join("");this.next instanceof y.default?(o=this.next.domNode,this.next.insertAt(0,u),this.textNode.data=e.CONTENTS):(this.textNode.data=u,this.parent.insertBefore(f.default.create(this.textNode),this),this.textNode=document.createTextNode(e.CONTENTS),this.domNode.appendChild(this.textNode))}this.remove(),null!=i&&this.selection.emitter.once(b.default.events.SCROLL_OPTIMIZE,function(){var e=[i,l].map(function(t){return Math.max(0,Math.min(o.data.length,t-1))}),n=a(e,2);i=n[0],l=n[1],t.selection.setNativeRange(o,i,o,l)})}}},{key:"update",value:function(t){var e=this;t.forEach(function(t){"characterData"===t.type&&t.target===e.textNode&&e.restore()})}},{key:"value",value:function(){return""}}]),e}(h.default);g.blotName="cursor",g.className="ql-cursor",g.tagName="span",g.CONTENTS="\ufeff",e.default=g},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(37),c=r(u),f=n(38),p=r(f),h=(0,p.default)("quill:events"),d=function(t){function e(){o(this,e);var t=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.on("error",h.error),t}return l(e,t),a(e,[{key:"emit",value:function(){h.log.apply(h,arguments),s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"emit",this).apply(this,arguments)}}]),e}(c.default);d.events={EDITOR_CHANGE:"editor-change",SCROLL_BEFORE_UPDATE:"scroll-before-update",SCROLL_OPTIMIZE:"scroll-optimize",SCROLL_UPDATE:"scroll-update",SELECTION_CHANGE:"selection-change",TEXT_CHANGE:"text-change"},d.sources={API:"api",SILENT:"silent",USER:"user"},e.default=d},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,l="~";Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(l=!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(l?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t,e){var n=l?l+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,a=new Array(i);o<i;o++)a[o]=r[o].fn;return a},o.prototype.emit=function(t,e,n,r,o,i){var a=l?l+t:t;if(!this._events[a])return!1;var s,u,c=this._events[a],f=arguments.length;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),f){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,r),!0;case 5:return c.fn.call(c.context,e,n,r,o),!0;case 6:return c.fn.call(c.context,e,n,r,o,i),!0}for(u=1,s=new Array(f-1);u<f;u++)s[u-1]=arguments[u];c.fn.apply(c.context,s)}else{var p,h=c.length;for(u=0;u<h;u++)switch(c[u].once&&this.removeListener(t,c[u].fn,void 0,!0),f){case 1:c[u].fn.call(c[u].context);break;case 2:c[u].fn.call(c[u].context,e);break;case 3:c[u].fn.call(c[u].context,e,n);break;case 4:c[u].fn.call(c[u].context,e,n,r);break;default:if(!s)for(p=1,s=new Array(f-1);p<f;p++)s[p-1]=arguments[p];c[u].fn.apply(c[u].context,s)}}return!0},o.prototype.on=function(t,e,n){var o=new r(e,n||this),i=l?l+t:t;return this._events[i]?this._events[i].fn?this._events[i]=[this._events[i],o]:this._events[i].push(o):(this._events[i]=o,this._eventsCount++),this},o.prototype.once=function(t,e,n){var o=new r(e,n||this,!0),i=l?l+t:t;return this._events[i]?this._events[i].fn?this._events[i]=[this._events[i],o]:this._events[i].push(o):(this._events[i]=o,this._eventsCount++),this},o.prototype.removeListener=function(t,e,r,o){var i=l?l+t:t;if(!this._events[i])return this;if(!e)return 0===--this._eventsCount?this._events=new n:delete this._events[i],this;var a=this._events[i];if(a.fn)a.fn!==e||o&&!a.once||r&&a.context!==r||(0===--this._eventsCount?this._events=new n:delete this._events[i]);else{for(var s=0,u=[],c=a.length;s<c;s++)(a[s].fn!==e||o&&!a[s].once||r&&a[s].context!==r)&&u.push(a[s]);u.length?this._events[i]=1===u.length?u[0]:u:0===--this._eventsCount?this._events=new n:delete this._events[i]}return this},o.prototype.removeAllListeners=function(t){var e;return t?(e=l?l+t:t,this._events[e]&&(0===--this._eventsCount?this._events=new n:delete this._events[e])):(this._events=new n,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prototype.setMaxListeners=function(){return this},o.prefixed=l,o.EventEmitter=o,"undefined"!=typeof t&&(t.exports=o)},function(t,e){"use strict";function n(t){if(o.indexOf(t)<=o.indexOf(i)){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];console[t].apply(console,n)}}function r(t){return o.reduce(function(e,r){return e[r]=n.bind(console,r,t),e},{})}Object.defineProperty(e,"__esModule",{value:!0});var o=["error","warn","log","info"],i="warn";n.level=r.level=function(t){i=t},e.default=r},function(t,e){var n=function(){"use strict";function t(e,n,r,o){function u(e,r){if(null===e)return null;if(0===r)return e;var c,d;if("object"!=typeof e)return e;if(e instanceof l)c=new l;else if(e instanceof a)c=new a;else if(e instanceof s)c=new s(function(t,n){e.then(function(e){t(u(e,r-1))},function(t){n(u(t,r-1))})});else if(t.__isArray(e))c=[];else if(t.__isRegExp(e))c=new RegExp(e.source,i(e)),e.lastIndex&&(c.lastIndex=e.lastIndex);else if(t.__isDate(e))c=new Date(e.getTime());else{if(h&&Buffer.isBuffer(e))return c=new Buffer(e.length),e.copy(c),c;"undefined"==typeof o?(d=Object.getPrototypeOf(e),c=Object.create(d)):(c=Object.create(o),d=o)}if(n){var y=f.indexOf(e);if(y!=-1)return p[y];f.push(e),p.push(c)}if(e instanceof l)for(var v=e.keys();;){var b=v.next();if(b.done)break;var g=u(b.value,r-1),m=u(e.get(b.value),r-1);c.set(g,m)}if(e instanceof a)for(var _=e.keys();;){var b=_.next();if(b.done)break;var O=u(b.value,r-1);c.add(O)}for(var w in e){var x;d&&(x=Object.getOwnPropertyDescriptor(d,w)),x&&null==x.set||(c[w]=u(e[w],r-1))}if(Object.getOwnPropertySymbols)for(var k=Object.getOwnPropertySymbols(e),w=0;w<k.length;w++){var E=k[w];c[E]=u(e[E],r-1)}return c}var c;"object"==typeof n&&(r=n.depth,o=n.prototype,c=n.filter,n=n.circular);var f=[],p=[],h="undefined"!=typeof Buffer;return"undefined"==typeof n&&(n=!0),"undefined"==typeof r&&(r=1/0),u(e,r)}function e(t){return Object.prototype.toString.call(t)}function n(t){return"object"==typeof t&&"[object Date]"===e(t)}function r(t){return"object"==typeof t&&"[object Array]"===e(t)}function o(t){return"object"==typeof t&&"[object RegExp]"===e(t)}function i(t){var e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),e}var l;try{l=Map}catch(t){l=function(){}}var a;try{a=Set}catch(t){a=function(){}}var s;try{s=Promise}catch(t){s=function(){}}return t.clonePrototype=function(t){if(null===t)return null;var e=function(){};return e.prototype=t,new e},t.__objToStr=e,t.__isDate=n,t.__isArray=r,t.__isRegExp=o,t.__getRegExpFlags=i,t}();"object"==typeof t&&t.exports&&(t.exports=n)},[112,41,42],23,24,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(this,t),this.quill=e,this.options=r};r.DEFAULTS={},e.default=r},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){try{e.parentNode}catch(t){return!1}return e instanceof Text&&(e=e.parentNode),t.contains(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Range=void 0;var a=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=n(2),c=r(u),f=n(39),p=r(f),h=n(40),d=r(h),y=n(36),v=r(y),b=n(38),g=r(b),m=(0,g.default)("quill:selection"),_=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(this,t),this.index=e,this.length=n},O=function(){function t(e,n){var r=this;i(this,t),this.emitter=n,this.scroll=e,this.composing=!1,this.root=this.scroll.domNode,this.root.addEventListener("compositionstart",function(){r.composing=!0}),this.root.addEventListener("compositionend",function(){r.composing=!1}),this.cursor=c.default.create("cursor",this),this.lastRange=this.savedRange=new _(0,0),["keyup","mouseup","mouseleave","touchend","touchleave","focus","blur"].forEach(function(t){r.root.addEventListener(t,function(){setTimeout(r.update.bind(r,v.default.sources.USER),100)})}),this.emitter.on(v.default.events.EDITOR_CHANGE,function(t,e){t===v.default.events.TEXT_CHANGE&&e.length()>0&&r.update(v.default.sources.SILENT)}),this.emitter.on(v.default.events.SCROLL_BEFORE_UPDATE,function(){var t=r.getNativeRange();null!=t&&t.start.node!==r.cursor.textNode&&r.emitter.once(v.default.events.SCROLL_UPDATE,function(){try{r.setNativeRange(t.start.node,t.start.offset,t.end.node,t.end.offset)}catch(t){}})}),this.update(v.default.sources.SILENT)}return s(t,[{key:"focus",value:function(){if(!this.hasFocus()){var t=document.body.scrollTop;this.root.focus(),document.body.scrollTop=t,this.setRange(this.savedRange)}}},{key:"format",value:function(t,e){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=void 0,i=this.scroll.leaf(t),l=a(i,2),s=l[0],u=l[1];if(null==s)return null;var c=s.position(u,!0),f=a(c,2);o=f[0],u=f[1];var p=document.createRange();if(e>0){p.setStart(o,u);var h=this.scroll.leaf(t+e),d=a(h,2);if(s=d[0],u=d[1],null==s)return null;var y=s.position(u,!0),v=a(y,2);o=v[0],u=v[1],p.setEnd(o,u),r=p.getBoundingClientRect()}else{var b="left",g=void 0;o instanceof Text?(u<o.data.length?(p.setStart(o,u),p.setEnd(o,u+1)):(p.setStart(o,u-1),p.setEnd(o,u),b="right"),g=p.getBoundingClientRect()):(g=s.domNode.getBoundingClientRect(),u>0&&(b="right")),r={height:g.height,left:g[b],width:0,top:g.top}}var m=this.root.parentNode.getBoundingClientRect();return{left:r.left-m.left,right:r.left+r.width-m.left,top:r.top-m.top,bottom:r.top+r.height-m.top,height:r.height,width:r.width}}},{key:"getNativeRange",value:function(){var t=document.getSelection();if(null==t||t.rangeCount<=0)return null;var e=t.getRangeAt(0);if(null==e)return null;if(!l(this.root,e.startContainer)||!e.collapsed&&!l(this.root,e.endContainer))return null;var n={start:{node:e.startContainer,offset:e.startOffset},end:{node:e.endContainer,offset:e.endOffset},native:e};return[n.start,n.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}),m.info("getNativeRange",n),n}},{key:"getRange",value:function(){var t=this,e=this.getNativeRange();if(null==e)return[null,null];var n=[[e.start.node,e.start.offset]];e.native.collapsed||n.push([e.end.node,e.end.offset]);var r=n.map(function(e){var n=a(e,2),r=n[0],o=n[1],i=c.default.find(r,!0),l=i.offset(t.scroll);return 0===o?l:i instanceof c.default.Container?l+i.length():l+i.index(r,o)}),i=Math.min.apply(Math,o(r)),l=Math.max.apply(Math,o(r));return[new _(i,l-i),e]}},{key:"hasFocus",value:function(){return document.activeElement===this.root}},{key:"scrollIntoView",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastRange;if(null!=t){var e=this.getBounds(t.index,t.length);if(null!=e)if(this.root.offsetHeight<e.bottom){var n=this.scroll.line(Math.min(t.index+t.length,this.scroll.length()-1)),r=a(n,1),o=r[0];this.root.scrollTop=o.domNode.offsetTop+o.domNode.offsetHeight-this.root.offsetHeight}else if(e.top<0){var i=this.scroll.line(Math.min(t.index,this.scroll.length()-1)),l=a(i,1),s=l[0];this.root.scrollTop=s.domNode.offsetTop}}}},{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(m.info("setNativeRange",t,e,n,r),null==t||null!=this.root.parentNode&&null!=t.parentNode&&null!=n.parentNode){var i=document.getSelection();if(null!=i)if(null!=t){this.hasFocus()||this.root.focus();var l=this.getNativeRange();if(null==l||o||t!==l.start.node||e!==l.start.offset||n!==l.end.node||r!==l.end.offset){var a=document.createRange();a.setStart(t,e),a.setEnd(n,r),i.removeAllRanges(),i.addRange(a)}}else i.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v.default.sources.API;"string"==typeof n&&(r=n,n=!1),m.info("setRange",t),null!=t?!function(){var r=t.collapsed?[t.index]:[t.index,t.index+t.length],i=[],l=e.scroll.length();r.forEach(function(t,n){t=Math.min(l-1,t);var r=void 0,o=e.scroll.leaf(t),s=a(o,2),u=s[0],c=s[1],f=u.position(c,0!==n),p=a(f,2);r=p[0],c=p[1],i.push(r,c)}),i.length<2&&(i=i.concat(i)),e.setNativeRange.apply(e,o(i).concat([n]))}():this.setNativeRange(null),this.update(r)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v.default.sources.USER,e=void 0,n=this.lastRange,r=this.getRange(),o=a(r,2);if(this.lastRange=o[0],e=o[1],null!=this.lastRange&&(this.savedRange=this.lastRange),!(0,d.default)(n,this.lastRange)){var i;!this.composing&&null!=e&&e.native.collapsed&&e.start.node!==this.cursor.textNode&&this.cursor.restore();var l=[v.default.events.SELECTION_CHANGE,(0,p.default)(this.lastRange),(0,p.default)(n),t];if((i=this.emitter).emit.apply(i,[v.default.events.EDITOR_CHANGE].concat(l)),t!==v.default.sources.SILENT){var s;(s=this.emitter).emit.apply(s,l)}}}}]),t}();e.Range=_,e.default=O},function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(){function t(e,r){n(this,t),this.quill=e,this.options=r,this.modules={}}return r(t,[{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/"+t);return this.modules[t]=new e(this.quill,this.options.modules[t]||{}),this.modules[t]}}]),t}();o.DEFAULTS={modules:{}},o.themes={default:o},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");
10
+ return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(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(2),s=r(a),u=n(29),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default.Container);f.allowedChildren=[c.default,u.BlockEmbed,f],e.default=f},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 l(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 a(t){return t instanceof v.default||t instanceof y.BlockEmbed}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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")}}(),u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=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 l=o.get;if(void 0!==l)return l.call(r)},f=n(2),p=r(f),h=n(36),d=r(h),y=n(29),v=r(y),b=n(31),g=r(b),m=n(46),_=r(m),O=n(28),w=r(O),x=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return r.emitter=n.emitter,Array.isArray(n.whitelist)&&(r.whitelist=n.whitelist.reduce(function(t,e){return t[e]=!0,t},{})),r.optimize(),r.enable(),r}return l(e,t),u(e,[{key:"deleteAt",value:function(t,n){var r=this.line(t),o=s(r,2),i=o[0],l=o[1],a=this.line(t+n),u=s(a,1),f=u[0];if(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"deleteAt",this).call(this,t,n),null!=f&&i!==f&&l>0&&!(i instanceof y.BlockEmbed)&&!(f instanceof y.BlockEmbed)){f instanceof w.default&&f.deleteAt(f.length()-1,1);var p=f.children.head instanceof g.default?null:f.children.head;i.moveChildren(f,p),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(a,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,n=function t(e,n,r){var o=[],i=r;return e.children.forEachAt(n,r,function(e,n,r){a(e)?o.push(e):e instanceof p.default.Container&&(o=o.concat(t(e,n,i))),i-=r}),o};return n(this,t,e)}},{key:"optimize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.batch!==!0&&(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t),t.length>0&&this.emitter.emit(d.default.events.SCROLL_OPTIMIZE,t))}},{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(this.batch!==!0){var n=d.default.sources.USER;"string"==typeof t&&(n=t),Array.isArray(t)||(t=this.observer.takeRecords()),t.length>0&&this.emitter.emit(d.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(d.default.events.SCROLL_UPDATE,n,t)}}}]),e}(p.default.Scroll);x.blotName="scroll",x.className="ql-editor",x.tagName="DIV",x.defaultChild="block",x.allowedChildren=[v.default,y.BlockEmbed,_.default],e.default=x},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){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function l(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 s(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){if(t.nodeType!==Node.ELEMENT_NODE)return{};var e="__ql-computed-style";return t[e]||(t[e]=window.getComputedStyle(t))}function c(t,e){for(var n="",r=t.ops.length-1;r>=0&&n.length<e.length;--r){var o=t.ops[r];if("string"!=typeof o.insert)break;n=o.insert+n}return n.slice(-1*e.length)===e}function f(t){if(0===t.childNodes.length)return!1;var e=u(t);return["block","list-item"].indexOf(e.display)>-1}function p(t,e,n){return n.compose((new k.default).retain(n.length(),o({},t,!0)))}function h(t,e){var n=j.default.Attributor.Attribute.keys(t),r=j.default.Attributor.Class.keys(t),o=j.default.Attributor.Style.keys(t),i={};return n.concat(r).concat(o).forEach(function(e){var n=j.default.query(e,j.default.Scope.ATTRIBUTE);null!=n&&(i[n.attrName]=n.value(t),i[n.attrName])||(null!=H[e]&&(n=H[e],i[n.attrName]=n.value(t)),null!=F[e]&&(n=F[e],i[n.attrName]=n.value(t)))}),Object.keys(i).length>0&&(e=e.compose((new k.default).retain(e.length(),i))),e}function d(t,e){var n=j.default.query(t);if(null==n)return e;if(n.prototype instanceof j.default.Embed){var r={},i=n.value(t);null!=i&&(r[n.blotName]=i,e=(new k.default).insert(r,n.formats(t)))}else if("function"==typeof n.formats){var l=o({},n.blotName,n.formats(t));e=e.compose((new k.default).retain(e.length(),l))}return e}function y(t,e){return c(e,"\n")||e.insert("\n"),e}function v(){return new k.default}function b(t,e){return f(t)&&!c(e,"\n")&&e.insert("\n"),e}function g(t,e){if(f(t)&&null!=t.nextElementSibling&&!c(e,"\n\n")){var n=t.offsetHeight+parseFloat(u(t).marginTop)+parseFloat(u(t).marginBottom);t.nextElementSibling.offsetTop>t.offsetTop+1.5*n&&e.insert("\n")}return e}function m(t,e){var n={},r=t.style||{};return r.fontWeight&&"bold"===u(t).fontWeight&&(n.bold=!0),Object.keys(n).length>0&&(e=e.compose((new k.default).retain(e.length(),n))),parseFloat(r.textIndent||0)>0&&(e=(new k.default).insert("\t").concat(e)),e}function _(t,e){var n=t.data;if("O:P"===t.parentNode.tagName)return e.insert(n.trim());if(!u(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.matchSpacing=e.matchNewline=e.matchBlot=e.matchAttributor=e.default=void 0;var O=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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")}}(),w=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),x=n(20),k=r(x),E=n(2),j=r(E),A=n(18),N=r(A),q=n(38),T=r(q),P=n(43),S=r(P),L=n(49),C=n(50),M=n(51),R=n(52),I=n(53),B=n(54),D=(0,T.default)("quill:clipboard"),U=[[Node.TEXT_NODE,_],["br",y],[Node.ELEMENT_NODE,b],[Node.ELEMENT_NODE,d],[Node.ELEMENT_NODE,g],[Node.ELEMENT_NODE,h],[Node.ELEMENT_NODE,m],["b",p.bind(p,"bold")],["i",p.bind(p,"italic")],["style",v]],H=[L.AlignAttribute,R.DirectionAttribute].reduce(function(t,e){return t[e.keyName]=e,t},{}),F=[L.AlignStyle,C.BackgroundStyle,M.ColorStyle,R.DirectionStyle,I.FontStyle,B.SizeStyle].reduce(function(t,e){return t[e.keyName]=e,t},{}),K=function(t){function e(t,n){l(this,e);var r=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.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=[],U.concat(r.options.matchers).forEach(function(t){r.addMatcher.apply(r,i(t))}),r}return s(e,t),w(e,[{key:"addMatcher",value:function(t,e){this.matchers.push([t,e])}},{key:"convert",value:function(t){var e=this,n="__ql-matcher";"string"==typeof t&&(this.container.innerHTML=t);var r=[],o=[];this.matchers.forEach(function(t){var i=O(t,2),l=i[0],a=i[1];switch(l){case Node.TEXT_NODE:r.push(a);break;case Node.ELEMENT_NODE:o.push(a);break;default:[].forEach.call(e.container.querySelectorAll(l),function(t){t[n]=t[n]||[],t[n].push(a)})}});var i=function t(e){return e.nodeType===e.TEXT_NODE?r.reduce(function(t,n){return n(e,t)},new k.default):e.nodeType===e.ELEMENT_NODE?[].reduce.call(e.childNodes||[],function(r,i){var l=t(i);return i.nodeType===e.ELEMENT_NODE&&(l=o.reduce(function(t,e){return e(i,t)},l),l=(i[n]||[]).reduce(function(t,e){return e(i,t)},l)),r.concat(l)},new k.default):new k.default},l=i(this.container);return c(l,"\n")&&null==l.ops[l.ops.length-1].attributes&&(l=l.compose((new k.default).retain(l.length()-1).delete(1))),D.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]:N.default.sources.API;if("string"==typeof t)return this.quill.setContents(this.convert(t),e);var r=this.convert(e);return this.quill.updateContents((new k.default).retain(t).concat(r),n)}},{key:"onPaste",value:function(t){var e=this;if(!t.defaultPrevented&&this.quill.isEnabled()){var n=this.quill.getSelection(),r=(new k.default).retain(n.index).delete(n.length),o=document.body.scrollTop;this.container.focus(),setTimeout(function(){e.quill.selection.update(N.default.sources.SILENT),r=r.concat(e.convert()),e.quill.updateContents(r,N.default.sources.USER),e.quill.setSelection(r.length()-n.length,N.default.sources.SILENT),document.body.scrollTop=o,e.quill.selection.scrollIntoView()},1)}}}]),e}(S.default);K.DEFAULTS={matchers:[]},e.default=K,e.matchAttributor=h,e.matchBlot=d,e.matchNewline=b,e.matchSpacing=g,e.matchText=_},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.AlignStyle=e.AlignClass=e.AlignAttribute=void 0;var o=n(2),i=r(o),l={scope:i.default.Scope.BLOCK,whitelist:["right","center","justify"]},a=new i.default.Attributor.Attribute("align","align",l),s=new i.default.Attributor.Class("align","ql-align",l),u=new i.default.Attributor.Style("align","text-align",l);e.AlignAttribute=a,e.AlignClass=s,e.AlignStyle=u},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.BackgroundStyle=e.BackgroundClass=void 0;var o=n(2),i=r(o),l=n(51),a=new i.default.Attributor.Class("background","ql-bg",{scope:i.default.Scope.INLINE}),s=new l.ColorAttributor("background","background-color",{scope:i.default.Scope.INLINE});e.BackgroundClass=a,e.BackgroundStyle=s},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 l(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.ColorStyle=e.ColorClass=e.ColorAttributor=void 0;var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(2),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"value",value:function t(n){var t=s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",this).call(this,n);return t.startsWith("rgb(")?(t=t.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),"#"+t.split(",").map(function(t){return("00"+parseInt(t).toString(16)).slice(-2)}).join("")):t}}]),e}(c.default.Attributor.Style),p=new c.default.Attributor.Class("color","ql-color",{scope:c.default.Scope.INLINE}),h=new f("color","color",{scope:c.default.Scope.INLINE});e.ColorAttributor=f,e.ColorClass=p,e.ColorStyle=h},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.DirectionStyle=e.DirectionClass=e.DirectionAttribute=void 0;var o=n(2),i=r(o),l={scope:i.default.Scope.BLOCK,whitelist:["rtl"]},a=new i.default.Attributor.Attribute("direction","dir",l),s=new i.default.Attributor.Class("direction","ql-direction",l),u=new i.default.Attributor.Style("direction","direction",l);e.DirectionAttribute=a,e.DirectionClass=s,e.DirectionStyle=u},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 l(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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(2),c=r(u),f={scope:c.default.Scope.INLINE,whitelist:["serif","monospace"]},p=new c.default.Attributor.Class("font","ql-font",f),h=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"value",value:function(t){return s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",this).call(this,t).replace(/["']/g,"")}}]),e}(c.default.Attributor.Style),d=new h("font","font-family",f);e.FontStyle=d,e.FontClass=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.SizeStyle=e.SizeClass=void 0;var o=n(2),i=r(o),l=new i.default.Attributor.Class("size","ql-size",{scope:i.default.Scope.INLINE,whitelist:["small","large","huge"]}),a=new i.default.Attributor.Style("size","font-size",{scope:i.default.Scope.INLINE,whitelist:["10px","18px","32px"]});e.SizeClass=l,e.SizeStyle=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 l(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 a(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 s(t){var e=t.reduce(function(t,e){return t+=e.delete||0},0),n=t.length()-e;return a(t)&&(n-=1),n}Object.defineProperty(e,"__esModule",{value:!0}),e.getLastChangeIndex=e.default=void 0;var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(2),f=r(c),p=n(18),h=r(p),d=n(43),y=r(d),v=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.lastRecorded=0,r.ignoreChange=!1,r.clear(),r.quill.on(h.default.events.EDITOR_CHANGE,function(t,e,n,o){t!==h.default.events.TEXT_CHANGE||r.ignoreChange||(r.options.userOnly&&o!==h.default.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 l(e,t),u(e,[{key:"change",value:function(t,e){if(0!==this.stack[t].length){var n=this.stack[t].pop();this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(n[t],h.default.sources.USER),this.ignoreChange=!1;var r=s(n[t]);this.quill.setSelection(r),this.quill.selection.scrollIntoView(),this.stack[e].push(n)}}},{key:"clear",value:function(){this.stack={undo:[],redo:[]}}},{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")}}]),e}(y.default);v.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1},e.default=v,e.getLastChangeIndex=s},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 l(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 a(t,e){if(0!==t.index){var n=this.quill.scroll.line(t.index),r=y(n,1),o=r[0],i={};if(0===e.offset){var l=o.formats(),a=this.quill.getFormat(t.index-1,1);i=k.default.attributes.diff(l,a)||{}}this.quill.deleteText(t.index-1,1,N.default.sources.USER),Object.keys(i).length>0&&this.quill.formatLine(t.index-1,1,i,N.default.sources.USER),this.quill.selection.scrollIntoView()}}function s(t){t.index>=this.quill.getLength()-1||this.quill.deleteText(t.index,1,N.default.sources.USER)}function u(t){this.quill.deleteText(t,N.default.sources.USER),this.quill.setSelection(t.index,N.default.sources.SILENT),this.quill.selection.scrollIntoView()}function c(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 j.default.query(n,j.default.Scope.BLOCK)&&!Array.isArray(e.format[n])&&(t[n]=e.format[n]),t},{});this.quill.insertText(t.index,"\n",r,N.default.sources.USER),this.quill.selection.scrollIntoView(),Object.keys(e.format).forEach(function(t){null==r[t]&&(Array.isArray(e.format[t])||"link"!==t&&n.quill.format(t,e.format[t],N.default.sources.USER))})}function f(t){return{key:M.keys.TAB,shiftKey:!t,format:{"code-block":!0},handler:function(e){var n=j.default.query("code-block"),r=e.index,o=e.length,i=this.quill.scroll.descendant(n,r),l=y(i,2),a=l[0],s=l[1];if(null!=a){var u=this.quill.scroll.offset(a),c=a.newlineIndex(s,!0)+1,f=a.newlineIndex(u+s+o),p=a.domNode.textContent.slice(c,f).split("\n");s=0,p.forEach(function(e,i){t?(a.insertAt(c+s,n.TAB),s+=n.TAB.length,0===i?r+=n.TAB.length:o+=n.TAB.length):e.startsWith(n.TAB)&&(a.deleteAt(c+s,n.TAB.length),s-=n.TAB.length,0===i?r-=n.TAB.length:o-=n.TAB.length),s+=e.length+1}),this.quill.update(N.default.sources.USER),this.quill.setSelection(r,o,N.default.sources.SILENT)}}}}function p(t){return{key:t[0].toUpperCase(),shortKey:!0,handler:function(e,n){this.quill.format(t,!n.format[t],N.default.sources.USER)}}}function h(t){if("string"==typeof t||"number"==typeof t)return h({key:t});if("object"===("undefined"==typeof t?"undefined":d(t))&&(t=(0,g.default)(t,!1)),"string"==typeof t.key)if(null!=M.keys[t.key.toUpperCase()])t.key=M.keys[t.key.toUpperCase()];else{if(1!==t.key.length)return null;t.key=t.key.toUpperCase().charCodeAt(0)}return t}Object.defineProperty(e,"__esModule",{value:!0});var d="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},y=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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")}}(),v=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),b=n(39),g=r(b),m=n(40),_=r(m),O=n(30),w=r(O),x=n(26),k=r(x),E=n(2),j=r(E),A=n(18),N=r(A),q=n(38),T=r(q),P=n(43),S=r(P),L=(0,T.default)("quill:keyboard"),C=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",M=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.bindings={},Object.keys(r.options.bindings).forEach(function(t){r.options.bindings[t]&&r.addBinding(r.options.bindings[t])}),r.addBinding({key:e.keys.ENTER,shiftKey:null},c),r.addBinding({key:e.keys.ENTER,metaKey:null,ctrlKey:null,altKey:null},function(){}),r.addBinding({key:e.keys.BACKSPACE},{collapsed:!0,prefix:/^.?$/},a),r.addBinding({key:e.keys.DELETE},{collapsed:!0,suffix:/^$/},s),r.addBinding({key:e.keys.BACKSPACE},{collapsed:!1},u),r.addBinding({key:e.keys.DELETE},{collapsed:!1},u),/Trident/i.test(navigator.userAgent)&&(r.addBinding({key:e.keys.BACKSPACE,shortKey:!0},a),r.addBinding({key:e.keys.DELETE,shortKey:!0},s)),r.listen(),r}return l(e,t),v(e,null,[{key:"match",value:function(t,e){return e=h(e),(!!e.shortKey===t[C]||null===e.shortKey)&&(!["altKey","ctrlKey","metaKey","shiftKey"].some(function(n){return n!=C&&!!e[n]!==t[n]&&null!==e[n]})&&e.key===(t.which||t.keyCode))}}]),v(e,[{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=h(t);return null==r||null==r.key?L.warn("Attempted to add invalid keyboard binding",r):("function"==typeof e&&(e={handler:e}),"function"==typeof n&&(n={handler:n}),r=(0,w.default)(r,e,n),this.bindings[r.key]=this.bindings[r.key]||[],void 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 l=t.quill.scroll.line(i.index),a=y(l,2),s=a[0],u=a[1],c=t.quill.scroll.leaf(i.index),f=y(c,2),p=f[0],h=f[1],v=0===i.length?[p,h]:t.quill.scroll.leaf(i.index+i.length),b=y(v,2),g=b[0],m=b[1],O=p instanceof j.default.Text?p.value().slice(0,h):"",w=g instanceof j.default.Text?g.value().slice(m):"",x={collapsed:0===i.length,empty:0===i.length&&s.length()<=1,format:t.quill.getFormat(i),offset:u,prefix:O,suffix:w},k=o.some(function(e){if(null!=e.collapsed&&e.collapsed!==x.collapsed)return!1;if(null!=e.empty&&e.empty!==x.empty)return!1;if(null!=e.offset&&e.offset!==x.offset)return!1;if(Array.isArray(e.format)){if(e.format.every(function(t){return null==x.format[t]}))return!1}else if("object"===d(e.format)&&!Object.keys(e.format).every(function(t){return e.format[t]===!0?null!=x.format[t]:e.format[t]===!1?null==x.format[t]:(0,_.default)(e.format[t],x.format[t])}))return!1;return!(null!=e.prefix&&!e.prefix.test(x.prefix))&&(!(null!=e.suffix&&!e.suffix.test(x.suffix))&&e.handler.call(t,i,x)!==!0)});k&&n.preventDefault()}}}})}}]),e}(S.default);M.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},M.DEFAULTS={bindings:{bold:p("bold"),italic:p("italic"),underline:p("underline"),indent:{key:M.keys.TAB,format:["blockquote","indent","list"],handler:function(t,e){return!(!e.collapsed||0===e.offset)||void this.quill.format("indent","+1",N.default.sources.USER)}},outdent:{key:M.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(t,e){return!(!e.collapsed||0===e.offset)||void this.quill.format("indent","-1",N.default.sources.USER)}},"outdent backspace":{key:M.keys.BACKSPACE,collapsed:!0,format:["blockquote","indent","list"],offset:0,handler:function(t,e){null!=e.format.indent?this.quill.format("indent","-1",N.default.sources.USER):null!=e.format.blockquote?this.quill.format("blockquote",!1,N.default.sources.USER):null!=e.format.list&&this.quill.format("list",!1,N.default.sources.USER)}},"indent code-block":f(!0),"outdent code-block":f(!1),"remove tab":{key:M.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(t){this.quill.deleteText(t.index-1,1,N.default.sources.USER)}},tab:{key:M.keys.TAB,handler:function(t,e){e.collapsed||this.quill.scroll.deleteAt(t.index,t.length),this.quill.insertText(t.index,"\t",N.default.sources.USER),this.quill.setSelection(t.index+1,N.default.sources.SILENT)}},"list empty enter":{key:M.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(t,e){this.quill.format("list",!1,N.default.sources.USER),e.format.indent&&this.quill.format("indent",!1,N.default.sources.USER)}},"header enter":{key:M.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(t){this.quill.scroll.insertAt(t.index,"\n"),this.quill.formatText(t.index+1,1,"header",!1,N.default.sources.USER),this.quill.setSelection(t.index+1,N.default.sources.SILENT),this.quill.selection.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^(1\.|-)$/,handler:function(t,e){var n=e.prefix.length;this.quill.scroll.deleteAt(t.index-n,n),this.quill.formatLine(t.index-n,1,"list",1===n?"bullet":"ordered",N.default.sources.USER),this.quill.setSelection(t.index-n,N.default.sources.SILENT)}}}},e.default=M},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 l(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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(2),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"add",value:function(t,n){
11
+ 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):s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"add",this).call(this,t,n)}},{key:"value",value:function(t){return parseInt(s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",this).call(this,t))||void 0}}]),e}(c.default.Attributor.Class),p=new f("indent","ql-indent",{scope:c.default.Scope.BLOCK,whitelist:[1,2,3,4,5,6,7,8]});e.IndentClass=p},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 l(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(29),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default);u.blotName="blockquote",u.tagName="blockquote",e.default=u},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(29),u=r(s),c=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,null,[{key:"formats",value:function(t){return this.tagName.indexOf(t.tagName)+1}}]),e}(u.default);c.blotName="header",c.tagName=["H1","H2","H3","H4","H5","H6"],e.default=c},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 l(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}),e.default=e.ListItem=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(2),f=r(c),p=n(29),h=r(p),d=n(46),y=r(d),v=function(t){function e(){return i(this,e),l(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),s(e,[{key:"format",value:function(t,n){t!==b.blotName||n?u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n):this.replaceWith(f.default.create(this.statics.scope))}},{key:"remove",value:function(){null==this.prev&&null==this.next?this.parent.remove():u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"remove",this).call(this)}},{key:"replaceWith",value:function(t,n){return this.parent.isolate(this.offset(this.parent),this.length()),t===this.parent.statics.blotName?(this.parent.replaceWith(t,n),this):(this.parent.unwrap(),u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replaceWith",this).call(this,t,n))}}],[{key:"formats",value:function(t){return t.tagName===this.tagName?void 0:u(e.__proto__||Object.getPrototypeOf(e),"formats",this).call(this,t)}}]),e}(h.default);v.blotName="list-item",v.tagName="LI";var b=function(t){function e(){return i(this,e),l(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),s(e,[{key:"format",value:function(t,e){this.children.length>0&&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)u(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(){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this);var t=this.next;null!=t&&t.prev===this&&t.statics.blotName===this.statics.blotName&&t.domNode.tagName===this.domNode.tagName&&(t.moveChildren(this),t.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)}u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t)}}],[{key:"create",value:function(t){return"ordered"===t?t="OL":"bullet"===t&&(t="UL"),u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t)}},{key:"formats",value:function(t){return"OL"===t.tagName?"ordered":"UL"===t.tagName?"bullet":void 0}}]),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){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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(33),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"optimize",value:function(){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}}],[{key:"create",value:function(){return s(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this)}},{key:"formats",value:function(){return!0}}]),e}(c.default);f.blotName="bold",f.tagName=["STRONG","B"],e.default=f},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 l(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(61),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default);u.blotName="italic",u.tagName=["EM","I"],e.default=u},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 l(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 a(t,e){var n=document.createElement("a");n.href=t;var r=n.href.slice(0,n.href.indexOf(":"));return e.indexOf(r)>-1}Object.defineProperty(e,"__esModule",{value:!0}),e.sanitize=e.default=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(33),f=r(c),p=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),s(e,[{key:"format",value:function(t,n){return t===this.statics.blotName&&n?(n=this.constructor.sanitize(n),void this.domNode.setAttribute("href",n)):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 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 a(t,["http","https","mailto"])?t:this.SANITIZED_URL}}]),e}(f.default);p.blotName="link",p.tagName="A",p.SANITIZED_URL="about:blank",e.default=p,e.sanitize=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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(33),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,null,[{key:"create",value:function(t){return"super"===t?document.createElement("sup"):"sub"===t?document.createElement("sub"):s(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t)}},{key:"formats",value:function(t){return"SUB"===t.tagName?"sub":"SUP"===t.tagName?"super":void 0}}]),e}(c.default);f.blotName="script",f.tagName=["SUB","SUP"],e.default=f},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 l(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(33),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default);u.blotName="strike",u.tagName="S",e.default=u},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 l(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(33),s=r(a),u=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default);u.blotName="underline",u.tagName="U",e.default=u},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(32),c=r(u),f=n(63),p=["alt","height","width"],h=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"format",value:function(t,n){p.indexOf(t)>-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=s(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 p.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,f.sanitize)(t,["http","https","data"])?t:"//:0"}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(c.default);h.blotName="image",h.tagName="IMG",e.default=h},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(29),c=n(63),f=r(c),p=["height","width"],h=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"format",value:function(t,n){p.indexOf(t)>-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=s(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 p.reduce(function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e},{})}},{key:"sanitize",value:function(t){return f.default.sanitize(t)}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(u.BlockEmbed);h.blotName="video",h.className="ql-video",h.tagName="IFRAME",e.default=h},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 l(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 a(){if(null==window.katex)throw new Error("Formula module requires KaTeX.");h.default.register(d,!0)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.FormulaBlot=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(32),f=r(c),p=n(18),h=r(p),d=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),s(e,[{key:"index",value:function(){return 1}}],[{key:"create",value:function(t){var n=u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return"string"==typeof t&&(window.katex.render(t,n),n.setAttribute("data-value",t)),n.setAttribute("contenteditable",!1),n}},{key:"value",value:function(t){return t.getAttribute("data-value")}}]),e}(f.default);d.blotName="formula",d.className="ql-formula",d.tagName="SPAN",e.FormulaBlot=d,e.default=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 l(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.default=e.CodeToken=e.CodeBlock=void 0;var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(2),c=r(u),f=n(18),p=r(f),h=n(43),d=r(h),y=n(28),v=r(y),b=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),a(e,[{key:"replaceWith",value:function(t){this.domNode.textContent=this.domNode.textContent,this.attach(),s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replaceWith",this).call(this,t)}},{key:"highlight",value:function(t){if(this.cachedHTML!==this.domNode.innerHTML){var e=this.domNode.textContent;(e.trim().length>0||null==this.cachedHTML)&&(this.domNode.innerHTML=t(e),this.attach()),this.cachedHTML=this.domNode.innerHTML}}}]),e}(v.default);b.className="ql-syntax";var g=new c.default.Attributor.Class("token","hljs",{scope:c.default.Scope.INLINE}),m=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));if("function"!=typeof r.options.highlight)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");p.default.register(g,!0),p.default.register(b,!0);var l=null;return r.quill.on(p.default.events.SCROLL_OPTIMIZE,function(){null==l&&(l=setTimeout(function(){r.highlight(),l=null},100))}),r.highlight(),r}return l(e,t),a(e,[{key:"highlight",value:function(){var t=this;if(!this.quill.selection.composing){var e=this.quill.getSelection();this.quill.scroll.descendants(b).forEach(function(e){e.highlight(t.options.highlight)}),this.quill.update(p.default.sources.SILENT),null!=e&&this.quill.setSelection(e,p.default.sources.SILENT)}}}]),e}(d.default);m.DEFAULTS={highlight:function(){return null==window.hljs?null:function(t){var e=window.hljs.highlightAuto(t);return e.value}}()},e.CodeBlock=b,e.CodeToken=g,e.default=m},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 l(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 s(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 u(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)s(n,t);else{var e=Object.keys(t)[0],r=t[e];Array.isArray(r)?c(n,e,r):s(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");t!==!1?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 l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),h=n(20),d=r(h),y=n(2),v=r(y),b=n(18),g=r(b),m=n(38),_=r(m),O=n(43),w=r(O),x=(0,_.default)("quill:toolbar"),k=function(t){function e(t,n){i(this,e);var r=l(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));if(Array.isArray(r.options.container)){var o=document.createElement("div");u(o,r.options.container),t.container.parentNode.insertBefore(o,t.container),r.container=o}else"string"==typeof r.options.container?r.container=document.querySelector(r.options.container):r.container=r.options.container;if(!(r.container instanceof HTMLElement)){var a;return a=x.error("Container required for toolbar",r.options),l(r,a)}return 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(g.default.events.EDITOR_CHANGE,function(t,e){t===g.default.events.SELECTION_CHANGE&&r.update(e)}),r.quill.on(g.default.events.SCROLL_OPTIMIZE,function(){var t=r.quill.selection.getRange(),e=f(t,1),n=e[0];r.update(n)}),r}return a(e,t),p(e,[{key:"addHandler",value:function(t,e){this.handlers[t]=e}},{key:"attach",value:function(t){var e=this,n=[].find.call(t.classList,function(t){return 0===t.indexOf("ql-")});if(n){if(n=n.slice("ql-".length),"BUTTON"===t.tagName&&t.setAttribute("type","button"),null==this.handlers[n]){if(null!=this.quill.scroll.whitelist&&null==this.quill.scroll.whitelist[n])return void x.warn("ignoring attaching to disabled format",n,t);if(null==v.default.query(n))return void x.warn("ignoring attaching to nonexistent format",n,t)}var r="SELECT"===t.tagName?"change":"click";t.addEventListener(r,function(r){var i=void 0;if("SELECT"===t.tagName){if(t.selectedIndex<0)return;var l=t.options[t.selectedIndex];i=!l.hasAttribute("selected")&&(l.value||!1)}else i=!t.classList.contains("ql-active")&&(t.value||!t.hasAttribute("value")),r.preventDefault();e.quill.focus();var a=e.quill.selection.getRange(),s=f(a,1),u=s[0];if(null!=e.handlers[n])e.handlers[n].call(e,i);else if(v.default.query(n).prototype instanceof v.default.Embed){if(i=prompt("Enter "+n),!i)return;e.quill.updateContents((new d.default).retain(u.index).delete(u.length).insert(o({},n,i)),g.default.sources.USER)}else e.quill.format(n,i,g.default.sources.USER);e.update(u)}),this.controls.push([n,t])}}},{key:"update",value:function(t){var e=null==t?{}:this.quill.getFormat(t);this.controls.forEach(function(n){var r=f(n,2),o=r[0],i=r[1];if("SELECT"===i.tagName){var l=void 0;if(null==t)l=null;else if(null==e[o])l=i.querySelector("option[selected]");else if(!Array.isArray(e[o])){var a=e[o];"string"==typeof a&&(a=a.replace(/\"/g,'\\"')),l=i.querySelector('option[value="'+a+'"]')}null==l?(i.value="",i.selectedIndex=-1):l.selected=!0}else if(null==t)i.classList.remove("ql-active");else if(i.hasAttribute("value")){var s=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",s)}else i.classList.toggle("ql-active",null!=e[o])})}}]),e}(w.default);k.DEFAULTS={},k.DEFAULTS={container:null,handlers:{clean:function(){var t=this,e=this.quill.getSelection();if(null!=e)if(0==e.length){var n=this.quill.getFormat();Object.keys(n).forEach(function(e){null!=v.default.query(e,v.default.Scope.INLINE)&&t.quill.format(e,!1)})}else this.quill.removeFormat(e,g.default.sources.USER)},direction:function(t){var e=this.quill.getFormat().align;"rtl"===t&&null==e?this.quill.format("align","right",g.default.sources.USER):t||"right"!==e||this.quill.format("align",!1,g.default.sources.USER),this.quill.format("direction",t,g.default.sources.USER)},link:function(t){t===!0&&(t=prompt("Enter link URL:")),this.quill.format("link",t,g.default.sources.USER)},indent:function t(e){var n=this.quill.getSelection(),r=this.quill.getFormat(n),t=parseInt(r.indent||0);if("+1"===e||"-1"===e){var o="+1"===e?1:-1;"rtl"===r.direction&&(o*=-1),this.quill.format("indent",t+o,g.default.sources.USER)}}}},e.default=k,e.addControls=u},function(t,e,n){"use strict";t.exports={align:{"":n(73),center:n(74),right:n(75),justify:n(76)},background:n(77),blockquote:n(78),bold:n(79),clean:n(80),code:n(81),"code-block":n(81),color:n(82),direction:{"":n(83),rtl:n(84)},float:{center:n(85),full:n(86),left:n(87),right:n(88)},formula:n(89),header:{1:n(90),2:n(91)},italic:n(92),image:n(93),indent:{"+1":n(94),"-1":n(95)},link:n(96),list:{ordered:n(97),bullet:n(98)},script:{sub:n(99),super:n(100)},strike:n(101),underline:n(102),video:n(103)}},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <g class="ql-fill ql-color-label"> <polygon points="6 6.868 6 6 5 6 5 7 5.942 7 6 6.868"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points="6.817 5 6 5 6 6 6.38 6 6.817 5"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points="4 11.439 4 11 3 11 3 12 3.755 12 4 11.439"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points="4.63 10 4 10 4 11 4.192 11 4.63 10"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points="13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points="12 6.868 12 6 11.62 6 12 6.868"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points="12.933 9 13 9 13 8 12.495 8 12.933 9"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points="5.5 13 9 5 12.5 13"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>';
12
+ },function(t,e){t.exports='<svg viewbox="0 0 18 18"> <rect class="ql-fill ql-stroke" height=3 width=3 x=4 y=5></rect> <rect class="ql-fill ql-stroke" height=3 width=3 x=11 y=5></rect> <path class="ql-even ql-fill ql-stroke" d=M7,8c0,4.031-3,5-3,5></path> <path class="ql-even ql-fill ql-stroke" d=M14,8c0,4.031-3,5-3,5></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>'},function(t,e){t.exports='<svg class="" viewbox="0 0 18 18"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline> <polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class="ql-color-label ql-stroke ql-transparent" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points="5.5 11 9 3 12.5 11"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="3 11 5 9 3 7 3 11"></polygon> <line class="ql-stroke ql-fill" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="15 12 13 10 15 8 15 12"></polygon> <line class="ql-stroke ql-fill" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform="translate(24 18) rotate(-180)"/> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <line class="ql-stroke ql-thin" x1=13.5 x2=15.5 y1=14.5 y2=14.5></line> <path class=ql-fill d=M14.5,15a0.5,0.5,0,0,1-.5-0.5V12.085l-0.276.138A0.5,0.5,0,0,1,13.053,12c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,15,11.5v3A0.5,0.5,0,0,1,14.5,15Z></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <path class="ql-stroke ql-thin" d=M15.5,14.5h-2c0-.234,1.85-1.076,1.85-2.234a0.959,0.959,0,0,0-1.85-.109></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class="ql-even ql-fill" points="5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12"></polyline> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class="ql-fill ql-stroke" points="3 7 3 11 5 9 3 7"></polyline> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points="5 7 5 11 3 9 5 7"></polyline> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class="ql-even ql-stroke" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class="ql-even ql-stroke" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class="ql-stroke ql-thin" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class="ql-stroke ql-thin" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class="ql-stroke ql-thin" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <line class="ql-stroke ql-thin" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>'},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>'},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")}Object.defineProperty(e,"__esModule",{value:!0});var i="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},l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=n(105),s=r(a),u=function(){function t(e){var n=this;o(this,t),this.select=e,this.container=document.createElement("span"),this.buildPicker(),this.select.style.display="none",this.select.parentNode.insertBefore(this.container,this.select),this.label.addEventListener("click",function(){n.container.classList.toggle("ql-expanded")}),this.select.addEventListener("change",this.update.bind(this))}return l(t,[{key:"buildItem",value:function(t){var e=this,n=document.createElement("span");return n.classList.add("ql-picker-item"),t.hasAttribute("value")&&n.setAttribute("data-value",t.getAttribute("value")),t.textContent&&n.setAttribute("data-label",t.textContent),n.addEventListener("click",function(){e.selectItem(n,!0)}),n}},{key:"buildLabel",value:function(){var t=document.createElement("span");return t.classList.add("ql-picker-label"),t.innerHTML=s.default,this.container.appendChild(t),t}},{key:"buildOptions",value:function(){var t=this,e=document.createElement("span");e.classList.add("ql-picker-options"),[].slice.call(this.select.options).forEach(function(n){var r=t.buildItem(n);e.appendChild(r),n.hasAttribute("selected")&&t.selectItem(r)}),this.container.appendChild(e)}},{key:"buildPicker",value:function(){var t=this;[].slice.call(this.select.attributes).forEach(function(e){t.container.setAttribute(e.name,e.value)}),this.container.classList.add("ql-picker"),this.label=this.buildLabel(),this.buildOptions()}},{key:"close",value:function(){this.container.classList.remove("ql-expanded")}},{key:"selectItem",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.container.querySelector(".ql-selected");if(t!==n)if(null!=n&&n.classList.remove("ql-selected"),null!=t){if(t.classList.add("ql-selected"),this.select.selectedIndex=[].indexOf.call(t.parentNode.children,t),t.hasAttribute("data-value")?this.label.setAttribute("data-value",t.getAttribute("data-value")):this.label.removeAttribute("data-value"),t.hasAttribute("data-label")?this.label.setAttribute("data-label",t.getAttribute("data-label")):this.label.removeAttribute("data-label"),e){if("function"==typeof Event)this.select.dispatchEvent(new Event("change"));else if("object"===("undefined"==typeof Event?"undefined":i(Event))){var r=document.createEvent("Event");r.initEvent("change",!0,!0),this.select.dispatchEvent(r)}this.close()}}else this.label.removeAttribute("data-value"),this.label.removeAttribute("data-label")}},{key:"update",value:function(){var t=void 0;if(this.select.selectedIndex>-1){var e=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];t=this.select.options[this.select.selectedIndex],this.selectItem(e)}else this.selectItem(null);var n=null!=t&&t!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",n)}}]),t}();e.default=u},function(t,e){t.exports='<svg viewbox="0 0 18 18"> <polygon class=ql-stroke points="7 11 9 13 11 11 7 11"></polygon> <polygon class=ql-stroke points="7 7 9 5 11 7 7 7"></polygon> </svg>'},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(104),c=r(u),f=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return r.label.innerHTML=n,r.container.classList.add("ql-color-picker"),[].slice.call(r.container.querySelectorAll(".ql-picker-item"),0,7).forEach(function(t){t.classList.add("ql-primary")}),r}return l(e,t),a(e,[{key:"buildItem",value:function(t){var n=s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"buildItem",this).call(this,t);return n.style.backgroundColor=t.getAttribute("value")||"",n}},{key:"selectItem",value:function(t,n){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"selectItem",this).call(this,t,n);var r=this.label.querySelector(".ql-color-label"),o=t?t.getAttribute("data-value")||"":"";r&&("line"===r.tagName?r.style.stroke=o:r.style.fill=o)}}]),e}(c.default);e.default=f},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 l(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<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=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 l=o.get;if(void 0!==l)return l.call(r)},u=n(104),c=r(u),f=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return r.container.classList.add("ql-icon-picker"),[].forEach.call(r.container.querySelectorAll(".ql-picker-item"),function(t){t.innerHTML=n[t.getAttribute("data-value")||""]}),r.defaultItem=r.container.querySelector(".ql-selected"),r.selectItem(r.defaultItem),r}return l(e,t),a(e,[{key:"selectItem",value:function(t,n){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"selectItem",this).call(this,t,n),t=t||this.defaultItem,this.label.innerHTML=t.innerHTML}}]),e}(c.default);e.default=f},function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=function(){function t(e,r){var o=this;n(this,t),this.quill=e,this.boundsContainer=r||document.body,this.root=e.addContainer("ql-tooltip"),this.root.innerHTML=this.constructor.TEMPLATE;var i=parseInt(window.getComputedStyle(this.root).marginTop);this.quill.root.addEventListener("scroll",function(){o.root.style.marginTop=-1*o.quill.root.scrollTop+i+"px",o.checkBounds()}),this.hide()}return r(t,[{key:"checkBounds",value:function(){this.root.classList.toggle("ql-out-top",this.root.offsetTop<=0),this.root.classList.remove("ql-out-bottom"),this.root.classList.toggle("ql-out-bottom",this.root.offsetTop+this.root.offsetHeight>=this.quill.root.offsetHeight)}},{key:"hide",value:function(){this.root.classList.add("ql-hidden")}},{key:"position",value:function(t){var e=t.left+t.width/2-this.root.offsetWidth/2,n=t.bottom+this.quill.root.scrollTop;this.root.style.left=e+"px",this.root.style.top=n+"px";var r=this.boundsContainer.getBoundingClientRect(),o=this.root.getBoundingClientRect(),i=0;return o.right>r.right&&(i=r.right-o.right,this.root.style.left=e+i+"px"),o.left<r.left&&(i=r.left-o.left,this.root.style.left=e+i+"px"),this.checkBounds(),i}},{key:"show",value:function(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}}]),t}();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 l(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.default=e.BubbleTooltip=void 0;var a=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 l=o.get;if(void 0!==l)return l.call(r)},s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=n(30),c=r(u),f=n(36),p=r(f),h=n(110),d=r(h),y=n(44),v=n(72),b=r(v),g=[["bold","italic","link"],[{header:1},{header:2},"blockquote"]],m=function(t){function e(t,n){o(this,e),null!=n.modules.toolbar&&null==n.modules.toolbar.container&&(n.modules.toolbar.container=g);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.quill.container.classList.add("ql-bubble"),r}return l(e,t),s(e,[{key:"extendToolbar",value:function(t){this.tooltip=new _(this.quill,this.options.bounds),this.tooltip.root.appendChild(t.container),this.buildButtons([].slice.call(t.container.querySelectorAll("button")),b.default),this.buildPickers([].slice.call(t.container.querySelectorAll("select")),b.default)}}]),e}(d.default);m.DEFAULTS=(0,c.default)(!0,{},d.default.DEFAULTS,{modules:{toolbar:{handlers:{link:function(t){t?this.quill.theme.tooltip.edit():this.quill.format("link",!1)}}}}});var _=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.quill.on(p.default.events.EDITOR_CHANGE,function(t,e){if(t===p.default.events.SELECTION_CHANGE)if(null!=e&&e.length>0){r.show(),r.root.style.left="0px",r.root.style.width="",r.root.style.width=r.root.offsetWidth+"px";var n=r.quill.scroll.lines(e.index,e.length);if(1===n.length)r.position(r.quill.getBounds(e));else{var o=n[n.length-1],i=o.offset(r.quill.scroll),l=Math.min(o.length()-1,e.index+e.length-i),a=r.quill.getBounds(new y.Range(i,l));r.position(a)}}else document.activeElement!==r.textbox&&r.quill.hasFocus()&&r.hide()}),r}return l(e,t),s(e,[{key:"listen",value:function(){var t=this;a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"listen",this).call(this),this.root.querySelector(".ql-close").addEventListener("click",function(){t.root.classList.remove("ql-editing")}),this.quill.on(p.default.events.SCROLL_OPTIMIZE,function(){setTimeout(function(){if(!t.root.classList.contains("ql-hidden")){var e=t.quill.getSelection();null!=e&&t.position(t.quill.getBounds(e))}},1)})}},{key:"cancel",value:function(){this.show()}},{key:"position",value:function(t){var n=a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"position",this).call(this,t),r=this.root.querySelector(".ql-tooltip-arrow");return r.style.marginLeft="",0===n?n:void(r.style.marginLeft=-1*n-r.offsetWidth/2+"px")}}]),e}(h.BaseTooltip);_.TEMPLATE=['<span class="ql-tooltip-arrow"></span>','<div class="ql-tooltip-editor">','<input type="text" data-formula="e=mc^2" data-link="quilljs.com" data-video="Embed URL">','<a class="ql-close"></a>',"</div>"].join(""),e.BubbleTooltip=_,e.default=m},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 l(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 a(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e.forEach(function(e){var r=document.createElement("option");e===n?r.setAttribute("selected","selected"):r.setAttribute("value",e),t.appendChild(r)})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BaseTooltip=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=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 l=o.get;if(void 0!==l)return l.call(r)},c=n(30),f=r(c),p=n(20),h=r(p),d=n(36),y=r(d),v=n(56),b=r(v),g=n(45),m=r(g),_=n(106),O=r(_),w=n(107),x=r(w),k=n(104),E=r(k),j=n(108),A=r(j),N=[!1,"center","right","justify"],q=["#000000","#e60000","#ff9900","#ffff00","#008a00","#0066cc","#9933ff","#ffffff","#facccc","#ffebcc","#ffffcc","#cce8cc","#cce0f5","#ebd6ff","#bbbbbb","#f06666","#ffc266","#ffff66","#66b966","#66a3e0","#c285ff","#888888","#a10000","#b26b00","#b2b200","#006100","#0047b2","#6b24b2","#444444","#5c0000","#663d00","#666600","#003700","#002966","#3d1466"],T=[!1,"serif","monospace"],P=["1","2","3",!1],S=["small",!1,"large","huge"],L=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n)),l=function e(n){return document.body.contains(t.root)?(null==r.tooltip||r.tooltip.root.contains(n.target)||document.activeElement===r.tooltip.textbox||r.quill.hasFocus()||r.tooltip.hide(),void(null!=r.pickers&&r.pickers.forEach(function(t){t.container.contains(n.target)||t.close()}))):document.body.removeEventListener("click",e)};return document.body.addEventListener("click",l),r}return l(e,t),s(e,[{key:"addModule",value:function(t){var n=u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"addModule",this).call(this,t);return"toolbar"===t&&this.extendToolbar(n),n}},{key:"buildButtons",value:function(t,e){t.forEach(function(t){var n=t.getAttribute("class")||"";n.split(/\s+/).forEach(function(n){if(n.startsWith("ql-")&&(n=n.slice("ql-".length),null!=e[n]))if("direction"===n)t.innerHTML=e[n][""]+e[n].rtl;else if("string"==typeof e[n])t.innerHTML=e[n];else{var r=t.value||"";null!=r&&e[n][r]&&(t.innerHTML=e[n][r])}})})}},{key:"buildPickers",value:function(t,e){var n=this;this.pickers=t.map(function(t){if(t.classList.contains("ql-align"))return null==t.querySelector("option")&&a(t,N),new x.default(t,e.align);if(t.classList.contains("ql-background")||t.classList.contains("ql-color")){var n=t.classList.contains("ql-background")?"background":"color";return null==t.querySelector("option")&&a(t,q,"background"===n?"#ffffff":"#000000"),new O.default(t,e[n])}return null==t.querySelector("option")&&(t.classList.contains("ql-font")?a(t,T):t.classList.contains("ql-header")?a(t,P):t.classList.contains("ql-size")&&a(t,S)),new E.default(t)});var r=function(){n.pickers.forEach(function(t){t.update()})};this.quill.on(y.default.events.SELECTION_CHANGE,r).on(y.default.events.SCROLL_OPTIMIZE,r)}}]),e}(m.default);L.DEFAULTS=(0,f.default)(!0,{},m.default.DEFAULTS,{modules:{toolbar:{handlers:{formula:function(){this.quill.theme.tooltip.edit("formula")},image:function(){var t=this,e=this.container.querySelector("input.ql-image[type=file]");null==e&&(e=document.createElement("input"),e.setAttribute("type","file"),e.setAttribute("accept","image/png, image/gif, image/jpeg, image/bmp, image/x-icon, image/svg+xml"),e.classList.add("ql-image"),e.addEventListener("change",function(){if(null!=e.files&&null!=e.files[0]){var n=new FileReader;n.onload=function(n){var r=t.quill.getSelection(!0);t.quill.updateContents((new h.default).retain(r.index).delete(r.length).insert({image:n.target.result}),y.default.sources.USER),e.value=""},n.readAsDataURL(e.files[0])}}),this.container.appendChild(e)),e.click()},video:function(){this.quill.theme.tooltip.edit("video")}}}}});var C=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.textbox=r.root.querySelector('input[type="text"]'),r.listen(),r}return l(e,t),s(e,[{key:"listen",value:function(){var t=this;this.textbox.addEventListener("keydown",function(e){b.default.match(e,"enter")?(t.save(),e.preventDefault()):b.default.match(e,"escape")&&(t.cancel(),e.preventDefault())})}},{key:"cancel",value:function(){this.hide()}},{key:"edit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"link",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),null!=e?this.textbox.value=e:t!==this.root.getAttribute("data-mode")&&(this.textbox.value=""),this.position(this.quill.getBounds(this.quill.selection.savedRange)),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute("data-"+t)||""),this.root.setAttribute("data-mode",t)}},{key:"restoreFocus",value:function(){var t=this.quill.root.scrollTop;this.quill.focus(),this.quill.root.scrollTop=t}},{key:"save",value:function(){var t=this.textbox.value;switch(this.root.getAttribute("data-mode")){case"link":var e=this.quill.root.scrollTop;this.linkRange?(this.quill.formatText(this.linkRange,"link",t,y.default.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",t,y.default.sources.USER)),this.quill.root.scrollTop=e;break;case"video":var n=t.match(/^(https?):\/\/(www\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||t.match(/^(https?):\/\/(www\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);n?t=n[1]+"://www.youtube.com/embed/"+n[3]+"?showinfo=0":(n=t.match(/^(https?):\/\/(www\.)?vimeo\.com\/(\d+)/))&&(t=n[1]+"://player.vimeo.com/video/"+n[3]+"/");case"formula":var r=this.quill.getSelection(!0),o=r.index+r.length;null!=r&&(this.quill.insertEmbed(o,this.root.getAttribute("data-mode"),t,y.default.sources.USER),"formula"===this.root.getAttribute("data-mode")&&this.quill.insertText(o+1," ",y.default.sources.USER),this.quill.setSelection(o+2,y.default.sources.USER))}this.textbox.value="",this.hide()}}]),e}(A.default);e.BaseTooltip=C,e.default=L},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 l(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){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);
13
+ }catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.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 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 l=o.get;if(void 0!==l)return l.call(r)},u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(30),f=r(c),p=n(36),h=r(p),d=n(110),y=r(d),v=n(63),b=r(v),g=n(44),m=n(72),_=r(m),O=[[{header:["1","2","3",!1]}],["bold","italic","underline","link"],[{list:"ordered"},{list:"bullet"}],["clean"]],w=function(t){function e(t,n){o(this,e),null!=n.modules.toolbar&&null==n.modules.toolbar.container&&(n.modules.toolbar.container=O);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.quill.container.classList.add("ql-snow"),r}return l(e,t),u(e,[{key:"extendToolbar",value:function(t){t.container.classList.add("ql-snow"),this.buildButtons([].slice.call(t.container.querySelectorAll("button")),_.default),this.buildPickers([].slice.call(t.container.querySelectorAll("select")),_.default),this.tooltip=new x(this.quill,this.options.bounds),t.container.querySelector(".ql-link")&&this.quill.keyboard.addBinding({key:"K",shortKey:!0},function(e,n){t.handlers.link.call(t,!n.format.link)})}}]),e}(y.default);w.DEFAULTS=(0,f.default)(!0,{},y.default.DEFAULTS,{modules:{toolbar:{handlers:{link:function(t){if(t){var e=this.quill.getSelection();if(null==e||0==e.length)return;var n=this.quill.getText(e);/^\S+@\S+\.\S+$/.test(n)&&0!==n.indexOf("mailto:")&&(n="mailto:"+n);var r=this.quill.theme.tooltip;r.edit("link",n)}else this.quill.format("link",!1)}}}}});var x=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return r.preview=r.root.querySelector("a.ql-preview"),r}return l(e,t),u(e,[{key:"listen",value:function(){var t=this;s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"listen",this).call(this),this.root.querySelector("a.ql-action").addEventListener("click",function(e){t.root.classList.contains("ql-editing")?t.save():t.edit("link",t.preview.textContent),e.preventDefault()}),this.root.querySelector("a.ql-remove").addEventListener("click",function(e){null!=t.linkRange&&(t.restoreFocus(),t.quill.formatText(t.linkRange,"link",!1,h.default.sources.USER),delete t.linkRange),e.preventDefault(),t.hide()}),this.quill.on(h.default.events.SELECTION_CHANGE,function(e){if(null!=e){if(0===e.length){var n=t.quill.scroll.descendant(b.default,e.index),r=a(n,2),o=r[0],i=r[1];if(null!=o){t.linkRange=new g.Range(e.index-i,o.length());var l=b.default.formats(o.domNode);return t.preview.textContent=l,t.preview.setAttribute("href",l),t.show(),void t.position(t.quill.getBounds(t.linkRange))}}else delete t.linkRange;t.hide()}})}},{key:"show",value:function(){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"show",this).call(this),this.root.removeAttribute("data-mode")}}]),e}(d.BaseTooltip);x.TEMPLATE=['<a class="ql-preview" target="_blank" href="about:blank"></a>','<input type="text" data-formula="e=mc^2" data-link="quilljs.com" data-video="Embed URL">','<a class="ql-action"></a>','<a class="ql-remove"></a>'].join(""),e.default=w},function(t,e,n,r,o){function i(t){return null===t||void 0===t}function l(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 r,o;if(i(t)||i(e))return!1;if(t.prototype!==e.prototype)return!1;if(c(t))return!!c(e)&&(t=s.call(t),e=s.call(e),f(t,e,n));if(l(t)){if(!l(e))return!1;if(t.length!==e.length)return!1;for(r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}try{var a=u(t),p=u(e)}catch(t){return!1}if(a.length!=p.length)return!1;for(a.sort(),p.sort(),r=a.length-1;r>=0;r--)if(a[r]!=p[r])return!1;for(r=a.length-1;r>=0;r--)if(o=a[r],!f(t[o],e[o],n))return!1;return typeof t==typeof e}var s=Array.prototype.slice,u=n(r),c=n(o),f=t.exports=function(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?n.strict?t===e:t==e:a(t,e,n))}}]))});
14
+ //# sourceMappingURL=quill.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///quill.min.js","webpack:///webpack/bootstrap 12da403d1f2adb6b6342","webpack:///./quill.js","webpack:///./core.js","webpack:///../parchment/src/parchment.ts","webpack:///../parchment/src/blot/abstract/container.ts","webpack:///../parchment/src/collection/linked-list.ts","webpack:///../parchment/src/blot/abstract/shadow.ts","webpack:///../parchment/src/registry.ts","webpack:///../parchment/src/blot/abstract/format.ts","webpack:///../parchment/src/attributor/attributor.ts","webpack:///../parchment/src/attributor/store.ts","webpack:///../parchment/src/attributor/class.ts","webpack:///../parchment/src/attributor/style.ts","webpack:///../parchment/src/blot/abstract/leaf.ts","webpack:///../parchment/src/blot/scroll.ts","webpack:///../parchment/src/blot/inline.ts","webpack:///../parchment/src/blot/block.ts","webpack:///../parchment/src/blot/embed.ts","webpack:///../parchment/src/blot/text.ts","webpack:///./core/quill.js","webpack:///./core/polyfill.js","webpack:///../delta/lib/delta.js","webpack:///../delta/~/fast-diff/diff.js","webpack:///../delta/~/deep-equal/lib/keys.js","webpack:///../delta/~/deep-equal/lib/is_arguments.js","webpack:///../delta/~/extend/index.js","webpack:///../delta/lib/op.js","webpack:///./core/editor.js","webpack:///./formats/code.js","webpack:///./blots/block.js","webpack:///./blots/break.js","webpack:///./blots/embed.js","webpack:///./blots/inline.js","webpack:///./blots/text.js","webpack:///./blots/cursor.js","webpack:///./core/emitter.js","webpack:///./~/eventemitter3/index.js","webpack:///./core/logger.js","webpack:///./~/clone/clone.js","webpack:///./core/module.js","webpack:///./core/selection.js","webpack:///./core/theme.js","webpack:///./blots/container.js","webpack:///./blots/scroll.js","webpack:///./modules/clipboard.js","webpack:///./formats/align.js","webpack:///./formats/background.js","webpack:///./formats/color.js","webpack:///./formats/direction.js","webpack:///./formats/font.js","webpack:///./formats/size.js","webpack:///./modules/history.js","webpack:///./modules/keyboard.js","webpack:///./formats/indent.js","webpack:///./formats/blockquote.js","webpack:///./formats/header.js","webpack:///./formats/list.js","webpack:///./formats/bold.js","webpack:///./formats/italic.js","webpack:///./formats/link.js","webpack:///./formats/script.js","webpack:///./formats/strike.js","webpack:///./formats/underline.js","webpack:///./formats/image.js","webpack:///./formats/video.js","webpack:///./modules/formula.js","webpack:///./modules/syntax.js","webpack:///./modules/toolbar.js","webpack:///./ui/icons.js","webpack:///./assets/icons/align-left.svg","webpack:///./assets/icons/align-center.svg","webpack:///./assets/icons/align-right.svg","webpack:///./assets/icons/align-justify.svg","webpack:///./assets/icons/background.svg","webpack:///./assets/icons/blockquote.svg","webpack:///./assets/icons/bold.svg","webpack:///./assets/icons/clean.svg","webpack:///./assets/icons/code.svg","webpack:///./assets/icons/color.svg","webpack:///./assets/icons/direction-ltr.svg","webpack:///./assets/icons/direction-rtl.svg","webpack:///./assets/icons/float-center.svg","webpack:///./assets/icons/float-full.svg","webpack:///./assets/icons/float-left.svg","webpack:///./assets/icons/float-right.svg","webpack:///./assets/icons/formula.svg","webpack:///./assets/icons/header.svg","webpack:///./assets/icons/header-2.svg","webpack:///./assets/icons/italic.svg","webpack:///./assets/icons/image.svg","webpack:///./assets/icons/indent.svg","webpack:///./assets/icons/outdent.svg","webpack:///./assets/icons/link.svg","webpack:///./assets/icons/list-ordered.svg","webpack:///./assets/icons/list-bullet.svg","webpack:///./assets/icons/subscript.svg","webpack:///./assets/icons/superscript.svg","webpack:///./assets/icons/strike.svg","webpack:///./assets/icons/underline.svg","webpack:///./assets/icons/video.svg","webpack:///./ui/picker.js","webpack:///./assets/icons/dropdown.svg","webpack:///./ui/color-picker.js","webpack:///./ui/icon-picker.js","webpack:///./ui/tooltip.js","webpack:///./themes/bubble.js","webpack:///./themes/base.js","webpack:///./themes/snow.js","webpack:///../delta/~/deep-equal/index.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","i","Object","prototype","hasOwnProperty","_m","args","slice","fn","a","b","apply","concat","_interopRequireDefault","obj","__esModule","default","_core","_core2","_align","_direction","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_background","_color","_font","_size","_bold","_bold2","_italic","_italic2","_link","_link2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_code","_code2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_icons","_icons2","_picker","_picker2","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_tooltip","_tooltip2","_bubble","_bubble2","_snow","_snow2","register","attributors/attribute/direction","DirectionAttribute","attributors/class/align","AlignClass","attributors/class/background","BackgroundClass","attributors/class/color","ColorClass","attributors/class/direction","DirectionClass","attributors/class/font","FontClass","attributors/class/size","SizeClass","attributors/style/align","AlignStyle","attributors/style/background","BackgroundStyle","attributors/style/color","ColorStyle","attributors/style/direction","DirectionStyle","attributors/style/font","FontStyle","attributors/style/size","SizeStyle","formats/align","formats/direction","formats/indent","IndentClass","formats/background","formats/color","formats/font","formats/size","formats/blockquote","formats/code-block","formats/header","formats/list","formats/bold","formats/code","Code","formats/italic","formats/link","formats/script","formats/strike","formats/underline","formats/image","formats/video","formats/list/item","ListItem","modules/formula","modules/syntax","modules/toolbar","themes/bubble","themes/snow","ui/icons","ui/picker","ui/icon-picker","ui/color-picker","ui/tooltip","_parchment","_parchment2","_quill","_quill2","_block","_block2","_break","_break2","_container","_container2","_cursor","_cursor2","_embed","_embed2","_inline","_inline2","_scroll","_scroll2","_text","_text2","_clipboard","_clipboard2","_history","_history2","_keyboard","_keyboard2","blots/block","blots/block/embed","BlockEmbed","blots/break","blots/container","blots/cursor","blots/embed","blots/inline","blots/scroll","blots/text","modules/clipboard","modules/history","modules/keyboard","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","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","defineProperty","value","makeBlot","node","blot","e","INLINE","childNodes","forEach","child","domNode","appendChild","parentNode","replaceChild","attach","__extends","d","__","constructor","linked_list_1","shadow_1","ContainerBlot","_super","arguments","other","insertBefore","_this","children","reverse","head","err","ParchmentError","deleteAt","index","length","remove","forEachAt","offset","descendant","criteria","_a","blotName","descendants","Number","MAX_VALUE","lengthLeft","push","detach","formatAt","name","insertAt","def","childBlot","refBlot","statics","allowedChildren","some","insertInto","reduce","memo","moveChildren","targetParent","refNode","optimize","defaultChild","path","inclusive","position","removeChild","replace","target","split","force","next","after","clone","parent","unwrap","update","mutations","addedNodes","removedNodes","mutation","type","document","body","compareDocumentPosition","Node","DOCUMENT_POSITION_CONTAINED_BY","filter","sort","DOCUMENT_POSITION_FOLLOWING","nextSibling","LinkedList","tail","undefined","append","nodes","_i","contains","cur","iterator","prev","curNode","ret","length_1","callback","startNode","curIndex","curLength","Math","min","map","ShadowBlot","get","enumerable","configurable","tagName","Array","isArray","toUpperCase","parseInt","toString","createElement","indexOf","className","classList","add","DATA_KEY","cloneNode","isolate","BLOT","wrap","ATTRIBUTE","parent_1","scope","format","ref","parentBlot","refDomNode","replaceWith","replacement","wrapper","input","match","BlotClass","bubble","ANY","types","attributes","LEVEL","BLOCK","HTMLElement","names","getAttribute","classes","tags","console","log","nodeType","TYPE","Definitions","Definition","attrName","keyName","tagNames","tag","message","Error","FormatBlot","formats","toLowerCase","attribute","values","copy","build","move","options","attributeBit","whitelist","keys","item","canAdd","setAttribute","removeAttribute","AttributorStore","styles","attr","key","prefix","ClassAttributor","join","matches","result","camelize","parts","rest","part","StyleAttributor","arr","trim","style","LeafBlot","INLINE_BLOT","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","observer","MutationObserver","observe","disconnect","takeRecords","mark","markParent","remaining","previousSibling","grandChild","BLOCK_BLOT","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","TextBlot","text","createTextNode","data","splitText","_defineProperty","writable","_classCallCheck","instance","Constructor","TypeError","expandConfig","container","userConfig","_extend2","clipboard","keyboard","history","theme","Quill","DEFAULTS","import","_theme2","themeConfig","config","moduleNames","moduleConfig","moduleClass","debug","error","toolbar","querySelector","modify","modifier","source","shift","strict","isEnabled","_emitter4","sources","USER","_quillDelta2","range","getSelection","oldDelta","editor","delta","change","shiftRange","setSelection","SILENT","_emitter","events","TEXT_CHANGE","emitter","emit","EDITOR_CHANGE","_emitter2","overload","_typeof","API","start","end","_map","pos","transformPosition","_map2","_slicedToArray","_map3","max","_map4","_selection","Range","Symbol","sliceIterator","_arr","_n","_d","_e","_s","done","_createClass","defineProperties","props","descriptor","protoProps","staticProps","_quillDelta","_editor","_editor2","_emitter3","_module","_module2","_selection2","_extend","_logger","_logger2","_theme","_this2","html","innerHTML","addContainer","scroll","selection","addModule","init","on","toggle","isBlank","SCROLL_UPDATE","lastRange","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","level","imports","overwrite","warn","startsWith","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","blur","focus","scrollIntoView","_this4","formatLine","formatText","_this5","_overload3","_overload4","_this6","_overload5","_overload6","getBounds","getLength","_overload7","_overload8","getContents","getFormat","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","lastOp","ops","insert","delete","compose","_overload15","_overload16","_this11","bounds","version","parchment","core/module","core/theme","elem","_toggle","DOMTokenList","token","String","searchString","substr","endsWith","subjectString","isFinite","floor","lastIndex","predicate","list","thisArg","addEventListener","execCommand","diff","equal","extend","op","NULL_CHARACTER","fromCharCode","Delta","newOp","retain","unshift","splice","partition","passed","failed","initial","chop","pop","Infinity","iter","hasNext","nextOp","thisIter","otherIter","peekType","peekLength","thisOp","otherOp","strings","prep","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","peek","transform","priority","nextType","diff_main","text1","text2","cursor_pos","DIFF_EQUAL","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","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","x","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","suffix","left_d","right_d","shim","supported","object","unsupported","propertyIsEnumerable","supportsArgumentsClass","hasOwn","toStr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","src","copyIsArray","deep","Iterator","lib","keepNull","retOp","combineFormats","combined","merged","normalizeDelta","_clone2","image","bullet","_op","_op2","_clone","_deepEqual","_deepEqual2","Editor","getDelta","consumeNextNewline","scrollLength","batch","_scroll$line","_scroll$line2","bubbleFormats","_line$descendant","_line$descendant2","leaf","lines","lengthRemaining","lineLength","codeIndex","codeLength","newlineIndex","leaves","_path","formatsArr","blots","_scroll$line3","_scroll$line4","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_get","property","receiver","Function","desc","getOwnPropertyDescriptor","getPrototypeOf","getter","_Inline","CodeBlock","_Block","textContent","frag","_descendant","_descendant2","nextNewline","prevNewline","isolateLength","_descendant3","_descendant4","searchIndex","lastIndexOf","querySelectorAll","TAB","NEWLINE_LENGTH","_Embed","BLOCK_ATTRIBUTE","block","_Parchment$Block","cache","Break","_Parchment$Embed","_Parchment$Inline","compare","selfIndex","order","otherIndex","_Parchment$Text","Cursor","textNode","_length","composing","getNativeRange","restoreText","_ref","lastChild","SCROLL_OPTIMIZE","setNativeRange","restore","_eventemitter","_eventemitter2","Emitter","_EventEmitter","SCROLL_BEFORE_UPDATE","SELECTION_CHANGE","Events","EE","context","EventEmitter","_events","_eventsCount","has","eventNames","getOwnPropertySymbols","listeners","event","exists","evt","available","l","ee","a1","a2","a3","a4","a5","len","removeListener","listener","removeAllListeners","addListener","setMaxListeners","prefixed","method","levels","_len","_key","namespace","ns","logger","bind","newLevel","circular","depth","proto","nativeMap","nativeSet","nativePromise","resolve","reject","then","__isArray","__isRegExp","RegExp","__getRegExpFlags","__isDate","Date","getTime","useBuffer","Buffer","isBuffer","allParents","allChildren","keyIterator","keyChild","valueChild","set","entryChild","attrs","symbols","symbol","__objToStr","o","re","flags","global","ignoreCase","multiline","Map","_","Set","Promise","clonePrototype","Module","quill","_toConsumableArray","arr2","from","Selection","cursor","savedRange","eventName","setTimeout","native","ignored","bodyTop","scrollTop","nativeRange","collapsed","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","getBoundingClientRect","side","rect","height","left","width","top","containerBounds","right","bottom","rangeCount","getRangeAt","startContainer","endContainer","startOffset","endOffset","info","positions","indexes","_position","activeElement","offsetHeight","offsetTop","endNode","removeAllRanges","addRange","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","oldRange","_getRange","_getRange2","Theme","themes","_Parchment$Container","isLine","_Parchment$Scroll","_line","_line2","first","_line3","_line4","last","getLines","computeStyle","ELEMENT_NODE","DOM_KEY","window","getComputedStyle","deltaEndsWith","endText","display","matchAlias","matchAttributor","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","matchBlot","matchBreak","matchIgnore","matchNewline","matchSpacing","nextElementSibling","nodeHeight","parseFloat","marginTop","marginBottom","matchStyles","fontWeight","bold","textIndent","matchText","whiteSpace","replacer","collapse","CLIPBOARD_CONFIG","TEXT_NODE","AlignAttribute","Clipboard","_Module","onPaste","matchers","pair","addMatcher","selector","matcher","textMatchers","elementMatchers","_pair","traverse","childNode","childrenDelta","paste","updateContents","defaultPrevented","ColorAttributor","_Parchment$Attributor","FontStyleAttributor","endsWithNewlineChange","getLastChangeIndex","deleteLength","changeIndex","History","lastRecorded","ignoreChange","userOnly","record","addBinding","shortKey","undo","shiftKey","redo","test","navigator","platform","dest","stack","changeDelta","undoDelta","timestamp","now","delay","maxStack","handleBackspace","_quill$scroll$line3","_quill$scroll$line4","curFormats","prevFormats","handleDelete","handleDeleteRange","handleEnter","lineFormats","makeCodeBlockHandler","indent","Keyboard","code-block","handler","_quill$scroll$descend","_quill$scroll$descend2","scrollOffset","makeFormatHandler","normalize","binding","charCodeAt","SHORTKEY","bindings","ENTER","metaKey","ctrlKey","altKey","BACKSPACE","userAgent","listen","which","keyCode","_quill$scroll$line","_quill$scroll$line2","_quill$scroll$leaf","_quill$scroll$leaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","preventDefault","ESCAPE","LEFT","UP","RIGHT","DOWN","italic","underline","outdent","outdent backspace","blockquote","indent code-block","outdent code-block","remove tab","tab","list empty enter","header enter","list autofill","IdentAttributor","Blockquote","Header","List","_Container","Bold","Italic","_Bold","sanitize","url","protocols","anchor","href","protocol","Link","SANITIZED_URL","Script","Strike","Underline","ATTRIBUTES","Image","hasAttribute","Video","_BlockEmbed","Formula","katex","FormulaBlot","render","CodeToken","SyntaxCodeBlock","_CodeBlock","highlight","cachedHTML","Syntax","timer","code","hljs","highlightAuto","addButton","addControls","groups","controls","group","control","addSelect","option","Toolbar","_ret","handlers","addHandler","_this$quill$selection","_this$quill$selection2","selectedIndex","selected","_quill$selection$getR","_quill$selection$getR2","prompt","isActive","clean","direction","align","link","","center","justify","background","color","rtl","float","full","formula","header","1","2","+1","-1","ordered","script","sub","super","strike","video","_dropdown","_dropdown2","Picker","select","buildPicker","label","selectItem","buildItem","buildLabel","buildOptions","trigger","Event","dispatchEvent","createEvent","initEvent","close","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","icons","defaultItem","Tooltip","boundsContainer","TEMPLATE","checkBounds","hide","reference","offsetWidth","rootBounds","BubbleTooltip","_base","_base2","TOOLBAR_CONFIG","BubbleTheme","_BaseTheme","tooltip","buildButtons","buildPickers","edit","_BaseTooltip","show","lastLine","textbox","arrow","marginLeft","BaseTooltip","fillSelect","defaultValue","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","pickers","picker","removeEventListener","extendToolbar","buttons","button","selects","fileInput","files","reader","FileReader","onload","readAsDataURL","click","_Tooltip","save","cancel","mode","preview","linkRange","restoreFocus","SnowTheme","SnowTooltip","__webpack_module_template_argument_0__","__webpack_module_template_argument_1__","isUndefinedOrNull","objEquiv","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","actual","expected"],"mappings":"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E/9RvBC,EAAAD,QAAA,+LxEq+RM,SAASC,EAAQD,GyEr+RvBC,EAAAD,QAAA,+LzE2+RM,SAASC,EAAQD,G0E3+RvBC,EAAAD,QAAA;E1Ei/RM,SAASC,EAAQD,G2Ej/RvBC,EAAAD,QAAA,sT3Eu/RM,SAASC,EAAQD,G4Ev/RvBC,EAAAD,QAAA,iR5E6/RM,SAASC,EAAQD,G6E7/RvBC,EAAAD,QAAA,sU7EmgSM,SAASC,EAAQD,G8EngSvBC,EAAAD,QAAA,uO9EygSM,SAASC,EAAQD,G+EzgSvBC,EAAAD,QAAA,oP/E+gSM,SAASC,EAAQD,GgF/gSvBC,EAAAD,QAAA,mVhFqhSM,SAASC,EAAQD,GiFrhSvBC,EAAAD,QAAA,kVjF2hSM,SAASC,EAAQD,GkF3hSvBC,EAAAD,QAAA,qOlFiiSM,SAASC,EAAQD,GmFjiSvBC,EAAAD,QAAA,mOnFuiSM,SAASC,EAAQD,GoFviSvBC,EAAAD,QAAA,0WpF6iSM,SAASC,EAAQD,GqF7iSvBC,EAAAD,QAAA,6YrFmjSM,SAASC,EAAQD,GsFnjSvBC,EAAAD,QAAA,03CtFyjSM,SAASC,EAAQD,GuFzjSvBC,EAAAD,QAAA,mcvF+jSM,SAASC,EAAQD,GwF/jSvBC,EAAAD,QAAA,gTxFqkSM,SAASC,EAAQD,GyFrkSvBC,EAAAD,QAAA,gMzF2kSM,SAASC,EAAQD,G0F3kSvBC,EAAAD,QAAA,0O1FilSM,SAASC,EAAQD,G2FjlSvBC,EAAAD,QAAA,yQ3FulSM,SAASC,EAAQD,G4FvlSvBC,EAAAD,QAAA,+P5F6lSM,SAASC,EAAQD,G6F7lSvBC,EAAAD,QAAA,+Z7FmmSM,SAASC,EAAQD,G8FnmSvBC,EAAAD,QAAA,osB9FymSM,SAASC,EAAQD,G+FzmSvBC,EAAAD,QAAA,uV/F+mSM,SAASC,EAAQD,GgG/mSvBC,EAAAD,QAAA,wqBhGqnSM,SAASC,EAAQD,GiGrnSvBC,EAAAD,QAAA,ijBjG2nSM,SAASC,EAAQD,GkG3nSvBC,EAAAD,QAAA,6gBlGioSM,SAASC,EAAQD,GmGjoSvBC,EAAAD,QAAA,gMnGuoSM,SAASC,EAAQD,GoGvoSvBC,EAAAD,QAAA,+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","file":"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})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","/*!\n * Quill Editor v1.1.5\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})(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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _core = __webpack_require__(1);\n\t\n\tvar _core2 = _interopRequireDefault(_core);\n\t\n\tvar _align = __webpack_require__(49);\n\t\n\tvar _direction = __webpack_require__(52);\n\t\n\tvar _indent = __webpack_require__(57);\n\t\n\tvar _blockquote = __webpack_require__(58);\n\t\n\tvar _blockquote2 = _interopRequireDefault(_blockquote);\n\t\n\tvar _header = __webpack_require__(59);\n\t\n\tvar _header2 = _interopRequireDefault(_header);\n\t\n\tvar _list = __webpack_require__(60);\n\t\n\tvar _list2 = _interopRequireDefault(_list);\n\t\n\tvar _background = __webpack_require__(50);\n\t\n\tvar _color = __webpack_require__(51);\n\t\n\tvar _font = __webpack_require__(53);\n\t\n\tvar _size = __webpack_require__(54);\n\t\n\tvar _bold = __webpack_require__(61);\n\t\n\tvar _bold2 = _interopRequireDefault(_bold);\n\t\n\tvar _italic = __webpack_require__(62);\n\t\n\tvar _italic2 = _interopRequireDefault(_italic);\n\t\n\tvar _link = __webpack_require__(63);\n\t\n\tvar _link2 = _interopRequireDefault(_link);\n\t\n\tvar _script = __webpack_require__(64);\n\t\n\tvar _script2 = _interopRequireDefault(_script);\n\t\n\tvar _strike = __webpack_require__(65);\n\t\n\tvar _strike2 = _interopRequireDefault(_strike);\n\t\n\tvar _underline = __webpack_require__(66);\n\t\n\tvar _underline2 = _interopRequireDefault(_underline);\n\t\n\tvar _image = __webpack_require__(67);\n\t\n\tvar _image2 = _interopRequireDefault(_image);\n\t\n\tvar _video = __webpack_require__(68);\n\t\n\tvar _video2 = _interopRequireDefault(_video);\n\t\n\tvar _code = __webpack_require__(28);\n\t\n\tvar _code2 = _interopRequireDefault(_code);\n\t\n\tvar _formula = __webpack_require__(69);\n\t\n\tvar _formula2 = _interopRequireDefault(_formula);\n\t\n\tvar _syntax = __webpack_require__(70);\n\t\n\tvar _syntax2 = _interopRequireDefault(_syntax);\n\t\n\tvar _toolbar = __webpack_require__(71);\n\t\n\tvar _toolbar2 = _interopRequireDefault(_toolbar);\n\t\n\tvar _icons = __webpack_require__(72);\n\t\n\tvar _icons2 = _interopRequireDefault(_icons);\n\t\n\tvar _picker = __webpack_require__(104);\n\t\n\tvar _picker2 = _interopRequireDefault(_picker);\n\t\n\tvar _colorPicker = __webpack_require__(106);\n\t\n\tvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\t\n\tvar _iconPicker = __webpack_require__(107);\n\t\n\tvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\t\n\tvar _tooltip = __webpack_require__(108);\n\t\n\tvar _tooltip2 = _interopRequireDefault(_tooltip);\n\t\n\tvar _bubble = __webpack_require__(109);\n\t\n\tvar _bubble2 = _interopRequireDefault(_bubble);\n\t\n\tvar _snow = __webpack_require__(111);\n\t\n\tvar _snow2 = _interopRequireDefault(_snow);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t_core2.default.register({\n\t 'attributors/attribute/direction': _direction.DirectionAttribute,\n\t\n\t 'attributors/class/align': _align.AlignClass,\n\t 'attributors/class/background': _background.BackgroundClass,\n\t 'attributors/class/color': _color.ColorClass,\n\t 'attributors/class/direction': _direction.DirectionClass,\n\t 'attributors/class/font': _font.FontClass,\n\t 'attributors/class/size': _size.SizeClass,\n\t\n\t 'attributors/style/align': _align.AlignStyle,\n\t 'attributors/style/background': _background.BackgroundStyle,\n\t 'attributors/style/color': _color.ColorStyle,\n\t 'attributors/style/direction': _direction.DirectionStyle,\n\t 'attributors/style/font': _font.FontStyle,\n\t 'attributors/style/size': _size.SizeStyle\n\t}, true);\n\t\n\t_core2.default.register({\n\t 'formats/align': _align.AlignClass,\n\t 'formats/direction': _direction.DirectionClass,\n\t 'formats/indent': _indent.IndentClass,\n\t\n\t 'formats/background': _background.BackgroundStyle,\n\t 'formats/color': _color.ColorStyle,\n\t 'formats/font': _font.FontClass,\n\t 'formats/size': _size.SizeClass,\n\t\n\t 'formats/blockquote': _blockquote2.default,\n\t 'formats/code-block': _code2.default,\n\t 'formats/header': _header2.default,\n\t 'formats/list': _list2.default,\n\t\n\t 'formats/bold': _bold2.default,\n\t 'formats/code': _code.Code,\n\t 'formats/italic': _italic2.default,\n\t 'formats/link': _link2.default,\n\t 'formats/script': _script2.default,\n\t 'formats/strike': _strike2.default,\n\t 'formats/underline': _underline2.default,\n\t\n\t 'formats/image': _image2.default,\n\t 'formats/video': _video2.default,\n\t\n\t 'formats/list/item': _list.ListItem,\n\t\n\t 'modules/formula': _formula2.default,\n\t 'modules/syntax': _syntax2.default,\n\t 'modules/toolbar': _toolbar2.default,\n\t\n\t 'themes/bubble': _bubble2.default,\n\t 'themes/snow': _snow2.default,\n\t\n\t 'ui/icons': _icons2.default,\n\t 'ui/picker': _picker2.default,\n\t 'ui/icon-picker': _iconPicker2.default,\n\t 'ui/color-picker': _colorPicker2.default,\n\t 'ui/tooltip': _tooltip2.default\n\t}, true);\n\t\n\tmodule.exports = _core2.default;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tvar _break = __webpack_require__(31);\n\t\n\tvar _break2 = _interopRequireDefault(_break);\n\t\n\tvar _container = __webpack_require__(46);\n\t\n\tvar _container2 = _interopRequireDefault(_container);\n\t\n\tvar _cursor = __webpack_require__(35);\n\t\n\tvar _cursor2 = _interopRequireDefault(_cursor);\n\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tvar _scroll = __webpack_require__(47);\n\t\n\tvar _scroll2 = _interopRequireDefault(_scroll);\n\t\n\tvar _text = __webpack_require__(34);\n\t\n\tvar _text2 = _interopRequireDefault(_text);\n\t\n\tvar _clipboard = __webpack_require__(48);\n\t\n\tvar _clipboard2 = _interopRequireDefault(_clipboard);\n\t\n\tvar _history = __webpack_require__(55);\n\t\n\tvar _history2 = _interopRequireDefault(_history);\n\t\n\tvar _keyboard = __webpack_require__(56);\n\t\n\tvar _keyboard2 = _interopRequireDefault(_keyboard);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t_quill2.default.register({\n\t 'blots/block': _block2.default,\n\t 'blots/block/embed': _block.BlockEmbed,\n\t 'blots/break': _break2.default,\n\t 'blots/container': _container2.default,\n\t 'blots/cursor': _cursor2.default,\n\t 'blots/embed': _embed2.default,\n\t 'blots/inline': _inline2.default,\n\t 'blots/scroll': _scroll2.default,\n\t 'blots/text': _text2.default,\n\t\n\t 'modules/clipboard': _clipboard2.default,\n\t 'modules/history': _history2.default,\n\t 'modules/keyboard': _keyboard2.default\n\t});\n\t\n\t_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\t\n\tmodule.exports = _quill2.default;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar container_1 = __webpack_require__(3);\n\tvar format_1 = __webpack_require__(7);\n\tvar leaf_1 = __webpack_require__(12);\n\tvar scroll_1 = __webpack_require__(13);\n\tvar inline_1 = __webpack_require__(14);\n\tvar block_1 = __webpack_require__(15);\n\tvar embed_1 = __webpack_require__(16);\n\tvar text_1 = __webpack_require__(17);\n\tvar attributor_1 = __webpack_require__(8);\n\tvar class_1 = __webpack_require__(10);\n\tvar style_1 = __webpack_require__(11);\n\tvar store_1 = __webpack_require__(9);\n\tvar Registry = __webpack_require__(6);\n\tvar Parchment = {\n\t Scope: Registry.Scope,\n\t create: Registry.create,\n\t find: Registry.find,\n\t query: Registry.query,\n\t register: Registry.register,\n\t Container: container_1.default,\n\t Format: format_1.default,\n\t Leaf: leaf_1.default,\n\t Embed: embed_1.default,\n\t Scroll: scroll_1.default,\n\t Block: block_1.default,\n\t Inline: inline_1.default,\n\t Text: text_1.default,\n\t Attributor: {\n\t Attribute: attributor_1.default,\n\t Class: class_1.default,\n\t Style: style_1.default,\n\t Store: store_1.default\n\t }\n\t};\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = Parchment;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar linked_list_1 = __webpack_require__(4);\n\tvar shadow_1 = __webpack_require__(5);\n\tvar Registry = __webpack_require__(6);\n\tvar ContainerBlot = (function (_super) {\n\t __extends(ContainerBlot, _super);\n\t function ContainerBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t ContainerBlot.prototype.appendChild = function (other) {\n\t this.insertBefore(other);\n\t };\n\t ContainerBlot.prototype.attach = function () {\n\t var _this = this;\n\t _super.prototype.attach.call(this);\n\t this.children = new linked_list_1.default();\n\t // Need to be reversed for if DOM nodes already in order\n\t [].slice.call(this.domNode.childNodes).reverse().forEach(function (node) {\n\t try {\n\t var child = makeBlot(node);\n\t _this.insertBefore(child, _this.children.head);\n\t }\n\t catch (err) {\n\t if (err instanceof Registry.ParchmentError)\n\t return;\n\t else\n\t throw err;\n\t }\n\t });\n\t };\n\t ContainerBlot.prototype.deleteAt = function (index, length) {\n\t if (index === 0 && length === this.length()) {\n\t return this.remove();\n\t }\n\t this.children.forEachAt(index, length, function (child, offset, length) {\n\t child.deleteAt(offset, length);\n\t });\n\t };\n\t ContainerBlot.prototype.descendant = function (criteria, index) {\n\t var _a = this.children.find(index), child = _a[0], offset = _a[1];\n\t if ((criteria.blotName == null && criteria(child)) ||\n\t (criteria.blotName != null && child instanceof criteria)) {\n\t return [child, offset];\n\t }\n\t else if (child instanceof ContainerBlot) {\n\t return child.descendant(criteria, offset);\n\t }\n\t else {\n\t return [null, -1];\n\t }\n\t };\n\t ContainerBlot.prototype.descendants = function (criteria, index, length) {\n\t if (index === void 0) { index = 0; }\n\t if (length === void 0) { length = Number.MAX_VALUE; }\n\t var descendants = [], lengthLeft = length;\n\t this.children.forEachAt(index, length, function (child, index, length) {\n\t if ((criteria.blotName == null && criteria(child)) ||\n\t (criteria.blotName != null && child instanceof criteria)) {\n\t descendants.push(child);\n\t }\n\t if (child instanceof ContainerBlot) {\n\t descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n\t }\n\t lengthLeft -= length;\n\t });\n\t return descendants;\n\t };\n\t ContainerBlot.prototype.detach = function () {\n\t this.children.forEach(function (child) {\n\t child.detach();\n\t });\n\t _super.prototype.detach.call(this);\n\t };\n\t ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n\t this.children.forEachAt(index, length, function (child, offset, length) {\n\t child.formatAt(offset, length, name, value);\n\t });\n\t };\n\t ContainerBlot.prototype.insertAt = function (index, value, def) {\n\t var _a = this.children.find(index), child = _a[0], offset = _a[1];\n\t if (child) {\n\t child.insertAt(offset, value, def);\n\t }\n\t else {\n\t var blot = (def == null) ? Registry.create('text', value) : Registry.create(value, def);\n\t this.appendChild(blot);\n\t }\n\t };\n\t ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n\t if (this.statics.allowedChildren != null && !this.statics.allowedChildren.some(function (child) {\n\t return childBlot instanceof child;\n\t })) {\n\t throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n\t }\n\t childBlot.insertInto(this, refBlot);\n\t };\n\t ContainerBlot.prototype.length = function () {\n\t return this.children.reduce(function (memo, child) {\n\t return memo + child.length();\n\t }, 0);\n\t };\n\t ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n\t this.children.forEach(function (child) {\n\t targetParent.insertBefore(child, refNode);\n\t });\n\t };\n\t ContainerBlot.prototype.optimize = function () {\n\t _super.prototype.optimize.call(this);\n\t if (this.children.length === 0) {\n\t if (this.statics.defaultChild != null) {\n\t var child = Registry.create(this.statics.defaultChild);\n\t this.appendChild(child);\n\t child.optimize();\n\t }\n\t else {\n\t this.remove();\n\t }\n\t }\n\t };\n\t ContainerBlot.prototype.path = function (index, inclusive) {\n\t if (inclusive === void 0) { inclusive = false; }\n\t var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n\t var position = [[this, index]];\n\t if (child instanceof ContainerBlot) {\n\t return position.concat(child.path(offset, inclusive));\n\t }\n\t else if (child != null) {\n\t position.push([child, offset]);\n\t }\n\t return position;\n\t };\n\t ContainerBlot.prototype.removeChild = function (child) {\n\t this.children.remove(child);\n\t };\n\t ContainerBlot.prototype.replace = function (target) {\n\t if (target instanceof ContainerBlot) {\n\t target.moveChildren(this);\n\t }\n\t _super.prototype.replace.call(this, target);\n\t };\n\t ContainerBlot.prototype.split = function (index, force) {\n\t if (force === void 0) { force = false; }\n\t if (!force) {\n\t if (index === 0)\n\t return this;\n\t if (index === this.length())\n\t return this.next;\n\t }\n\t var after = this.clone();\n\t this.parent.insertBefore(after, this.next);\n\t this.children.forEachAt(index, this.length(), function (child, offset, length) {\n\t child = child.split(offset, force);\n\t after.appendChild(child);\n\t });\n\t return after;\n\t };\n\t ContainerBlot.prototype.unwrap = function () {\n\t this.moveChildren(this.parent, this.next);\n\t this.remove();\n\t };\n\t ContainerBlot.prototype.update = function (mutations) {\n\t var _this = this;\n\t var addedNodes = [], removedNodes = [];\n\t mutations.forEach(function (mutation) {\n\t if (mutation.target === _this.domNode && mutation.type === 'childList') {\n\t addedNodes.push.apply(addedNodes, mutation.addedNodes);\n\t removedNodes.push.apply(removedNodes, mutation.removedNodes);\n\t }\n\t });\n\t removedNodes.forEach(function (node) {\n\t if (node.parentNode != null &&\n\t (document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY)) {\n\t // Node has not actually been removed\n\t return;\n\t }\n\t var blot = Registry.find(node);\n\t if (blot == null)\n\t return;\n\t if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n\t blot.detach();\n\t }\n\t });\n\t addedNodes.filter(function (node) {\n\t return node.parentNode == _this.domNode;\n\t }).sort(function (a, b) {\n\t if (a === b)\n\t return 0;\n\t if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n\t return 1;\n\t }\n\t return -1;\n\t }).forEach(function (node) {\n\t var refBlot = null;\n\t if (node.nextSibling != null) {\n\t refBlot = Registry.find(node.nextSibling);\n\t }\n\t var blot = makeBlot(node);\n\t if (blot.next != refBlot || blot.next == null) {\n\t if (blot.parent != null) {\n\t blot.parent.removeChild(_this);\n\t }\n\t _this.insertBefore(blot, refBlot);\n\t }\n\t });\n\t };\n\t return ContainerBlot;\n\t}(shadow_1.default));\n\tfunction makeBlot(node) {\n\t var blot = Registry.find(node);\n\t if (blot == null) {\n\t try {\n\t blot = Registry.create(node);\n\t }\n\t catch (e) {\n\t blot = Registry.create(Registry.Scope.INLINE);\n\t [].slice.call(node.childNodes).forEach(function (child) {\n\t blot.domNode.appendChild(child);\n\t });\n\t node.parentNode.replaceChild(blot.domNode, node);\n\t blot.attach();\n\t }\n\t }\n\t return blot;\n\t}\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = ContainerBlot;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tvar LinkedList = (function () {\n\t function LinkedList() {\n\t this.head = this.tail = undefined;\n\t this.length = 0;\n\t }\n\t LinkedList.prototype.append = function () {\n\t var nodes = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t nodes[_i - 0] = arguments[_i];\n\t }\n\t this.insertBefore(nodes[0], undefined);\n\t if (nodes.length > 1) {\n\t this.append.apply(this, nodes.slice(1));\n\t }\n\t };\n\t LinkedList.prototype.contains = function (node) {\n\t var cur, next = this.iterator();\n\t while (cur = next()) {\n\t if (cur === node)\n\t return true;\n\t }\n\t return false;\n\t };\n\t LinkedList.prototype.insertBefore = function (node, refNode) {\n\t node.next = refNode;\n\t if (refNode != null) {\n\t node.prev = refNode.prev;\n\t if (refNode.prev != null) {\n\t refNode.prev.next = node;\n\t }\n\t refNode.prev = node;\n\t if (refNode === this.head) {\n\t this.head = node;\n\t }\n\t }\n\t else if (this.tail != null) {\n\t this.tail.next = node;\n\t node.prev = this.tail;\n\t this.tail = node;\n\t }\n\t else {\n\t node.prev = undefined;\n\t this.head = this.tail = node;\n\t }\n\t this.length += 1;\n\t };\n\t LinkedList.prototype.offset = function (target) {\n\t var index = 0, cur = this.head;\n\t while (cur != null) {\n\t if (cur === target)\n\t return index;\n\t index += cur.length();\n\t cur = cur.next;\n\t }\n\t return -1;\n\t };\n\t LinkedList.prototype.remove = function (node) {\n\t if (!this.contains(node))\n\t return;\n\t if (node.prev != null)\n\t node.prev.next = node.next;\n\t if (node.next != null)\n\t node.next.prev = node.prev;\n\t if (node === this.head)\n\t this.head = node.next;\n\t if (node === this.tail)\n\t this.tail = node.prev;\n\t this.length -= 1;\n\t };\n\t LinkedList.prototype.iterator = function (curNode) {\n\t if (curNode === void 0) { curNode = this.head; }\n\t // TODO use yield when we can\n\t return function () {\n\t var ret = curNode;\n\t if (curNode != null)\n\t curNode = curNode.next;\n\t return ret;\n\t };\n\t };\n\t LinkedList.prototype.find = function (index, inclusive) {\n\t if (inclusive === void 0) { inclusive = false; }\n\t var cur, next = this.iterator();\n\t while (cur = next()) {\n\t var length_1 = cur.length();\n\t if (index < length_1 || (inclusive && index === length_1 && (cur.next == null || cur.next.length() !== 0))) {\n\t return [cur, index];\n\t }\n\t index -= length_1;\n\t }\n\t return [null, 0];\n\t };\n\t LinkedList.prototype.forEach = function (callback) {\n\t var cur, next = this.iterator();\n\t while (cur = next()) {\n\t callback(cur);\n\t }\n\t };\n\t LinkedList.prototype.forEachAt = function (index, length, callback) {\n\t if (length <= 0)\n\t return;\n\t var _a = this.find(index), startNode = _a[0], offset = _a[1];\n\t var cur, curIndex = index - offset, next = this.iterator(startNode);\n\t while ((cur = next()) && curIndex < index + length) {\n\t var curLength = cur.length();\n\t if (index > curIndex) {\n\t callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n\t }\n\t else {\n\t callback(cur, 0, Math.min(curLength, index + length - curIndex));\n\t }\n\t curIndex += curLength;\n\t }\n\t };\n\t LinkedList.prototype.map = function (callback) {\n\t return this.reduce(function (memo, cur) {\n\t memo.push(callback(cur));\n\t return memo;\n\t }, []);\n\t };\n\t LinkedList.prototype.reduce = function (callback, memo) {\n\t var cur, next = this.iterator();\n\t while (cur = next()) {\n\t memo = callback(memo, cur);\n\t }\n\t return memo;\n\t };\n\t return LinkedList;\n\t}());\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = LinkedList;\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar Registry = __webpack_require__(6);\n\tvar ShadowBlot = (function () {\n\t function ShadowBlot(domNode) {\n\t this.domNode = domNode;\n\t this.attach();\n\t }\n\t Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n\t // Hack for accessing inherited static methods\n\t get: function () {\n\t return this.constructor;\n\t },\n\t enumerable: true,\n\t configurable: true\n\t });\n\t ShadowBlot.create = function (value) {\n\t if (this.tagName == null) {\n\t throw new Registry.ParchmentError('Blot definition missing tagName');\n\t }\n\t var node;\n\t if (Array.isArray(this.tagName)) {\n\t if (typeof value === 'string') {\n\t value = value.toUpperCase();\n\t if (parseInt(value).toString() === value) {\n\t value = parseInt(value);\n\t }\n\t }\n\t if (typeof value === 'number') {\n\t node = document.createElement(this.tagName[value - 1]);\n\t }\n\t else if (this.tagName.indexOf(value) > -1) {\n\t node = document.createElement(value);\n\t }\n\t else {\n\t node = document.createElement(this.tagName[0]);\n\t }\n\t }\n\t else {\n\t node = document.createElement(this.tagName);\n\t }\n\t if (this.className) {\n\t node.classList.add(this.className);\n\t }\n\t return node;\n\t };\n\t ShadowBlot.prototype.attach = function () {\n\t this.domNode[Registry.DATA_KEY] = { blot: this };\n\t };\n\t ShadowBlot.prototype.clone = function () {\n\t var domNode = this.domNode.cloneNode();\n\t return Registry.create(domNode);\n\t };\n\t ShadowBlot.prototype.detach = function () {\n\t if (this.parent != null)\n\t this.parent.removeChild(this);\n\t delete this.domNode[Registry.DATA_KEY];\n\t };\n\t ShadowBlot.prototype.deleteAt = function (index, length) {\n\t var blot = this.isolate(index, length);\n\t blot.remove();\n\t };\n\t ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n\t var blot = this.isolate(index, length);\n\t if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n\t blot.wrap(name, value);\n\t }\n\t else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n\t var parent_1 = Registry.create(this.statics.scope);\n\t blot.wrap(parent_1);\n\t parent_1.format(name, value);\n\t }\n\t };\n\t ShadowBlot.prototype.insertAt = function (index, value, def) {\n\t var blot = (def == null) ? Registry.create('text', value) : Registry.create(value, def);\n\t var ref = this.split(index);\n\t this.parent.insertBefore(blot, ref);\n\t };\n\t ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n\t if (this.parent != null) {\n\t this.parent.children.remove(this);\n\t }\n\t parentBlot.children.insertBefore(this, refBlot);\n\t if (refBlot != null) {\n\t var refDomNode = refBlot.domNode;\n\t }\n\t if (this.next == null || this.domNode.nextSibling != refDomNode) {\n\t parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n\t }\n\t this.parent = parentBlot;\n\t };\n\t ShadowBlot.prototype.isolate = function (index, length) {\n\t var target = this.split(index);\n\t target.split(length);\n\t return target;\n\t };\n\t ShadowBlot.prototype.length = function () {\n\t return 1;\n\t };\n\t ;\n\t ShadowBlot.prototype.offset = function (root) {\n\t if (root === void 0) { root = this.parent; }\n\t if (this.parent == null || this == root)\n\t return 0;\n\t return this.parent.children.offset(this) + this.parent.offset(root);\n\t };\n\t ShadowBlot.prototype.optimize = function () {\n\t // TODO clean up once we use WeakMap\n\t if (this.domNode[Registry.DATA_KEY] != null) {\n\t delete this.domNode[Registry.DATA_KEY].mutations;\n\t }\n\t };\n\t ShadowBlot.prototype.remove = function () {\n\t if (this.domNode.parentNode != null) {\n\t this.domNode.parentNode.removeChild(this.domNode);\n\t }\n\t this.detach();\n\t };\n\t ShadowBlot.prototype.replace = function (target) {\n\t if (target.parent == null)\n\t return;\n\t target.parent.insertBefore(this, target.next);\n\t target.remove();\n\t };\n\t ShadowBlot.prototype.replaceWith = function (name, value) {\n\t var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n\t replacement.replace(this);\n\t return replacement;\n\t };\n\t ShadowBlot.prototype.split = function (index, force) {\n\t return index === 0 ? this : this.next;\n\t };\n\t ShadowBlot.prototype.update = function (mutations) {\n\t if (mutations === void 0) { mutations = []; }\n\t // Nothing to do by default\n\t };\n\t ShadowBlot.prototype.wrap = function (name, value) {\n\t var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n\t if (this.parent != null) {\n\t this.parent.insertBefore(wrapper, this.next);\n\t }\n\t wrapper.appendChild(this);\n\t return wrapper;\n\t };\n\t ShadowBlot.blotName = 'abstract';\n\t return ShadowBlot;\n\t}());\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = ShadowBlot;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar ParchmentError = (function (_super) {\n\t __extends(ParchmentError, _super);\n\t function ParchmentError(message) {\n\t message = '[Parchment] ' + message;\n\t _super.call(this, message);\n\t this.message = message;\n\t this.name = this.constructor.name;\n\t }\n\t return ParchmentError;\n\t}(Error));\n\texports.ParchmentError = ParchmentError;\n\tvar attributes = {};\n\tvar classes = {};\n\tvar tags = {};\n\tvar types = {};\n\texports.DATA_KEY = '__blot';\n\t(function (Scope) {\n\t Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n\t Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n\t Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n\t Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n\t Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n\t Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n\t Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n\t Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n\t Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n\t Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n\t Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n\t})(exports.Scope || (exports.Scope = {}));\n\tvar Scope = exports.Scope;\n\t;\n\tfunction create(input, value) {\n\t var match = query(input);\n\t if (match == null) {\n\t throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n\t }\n\t var BlotClass = match;\n\t var node = input instanceof Node ? input : BlotClass.create(value);\n\t return new BlotClass(node, value);\n\t}\n\texports.create = create;\n\tfunction find(node, bubble) {\n\t if (bubble === void 0) { bubble = false; }\n\t if (node == null)\n\t return null;\n\t if (node[exports.DATA_KEY] != null)\n\t return node[exports.DATA_KEY].blot;\n\t if (bubble)\n\t return find(node.parentNode, bubble);\n\t return null;\n\t}\n\texports.find = find;\n\tfunction query(query, scope) {\n\t if (scope === void 0) { scope = Scope.ANY; }\n\t var match;\n\t if (typeof query === 'string') {\n\t match = types[query] || attributes[query];\n\t }\n\t else if (query instanceof Text) {\n\t match = types['text'];\n\t }\n\t else if (typeof query === 'number') {\n\t if (query & Scope.LEVEL & Scope.BLOCK) {\n\t match = types['block'];\n\t }\n\t else if (query & Scope.LEVEL & Scope.INLINE) {\n\t match = types['inline'];\n\t }\n\t }\n\t else if (query instanceof HTMLElement) {\n\t var names = (query.getAttribute('class') || '').split(/\\s+/);\n\t for (var i in names) {\n\t match = classes[names[i]];\n\t if (match)\n\t break;\n\t }\n\t match = match || tags[query.tagName];\n\t }\n\t if (match == null) {\n\t if (query instanceof Node) {\n\t console.log(query.nodeType);\n\t }\n\t }\n\t if (match == null)\n\t return null;\n\t if ((scope & Scope.LEVEL & match.scope) && (scope & Scope.TYPE & match.scope))\n\t return match;\n\t return null;\n\t}\n\texports.query = query;\n\tfunction register() {\n\t var Definitions = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t Definitions[_i - 0] = arguments[_i];\n\t }\n\t if (Definitions.length > 1) {\n\t return Definitions.map(function (d) {\n\t return register(d);\n\t });\n\t }\n\t var Definition = Definitions[0];\n\t if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n\t throw new ParchmentError('Invalid definition');\n\t }\n\t else if (Definition.blotName === 'abstract') {\n\t throw new ParchmentError('Cannot register abstract class');\n\t }\n\t types[Definition.blotName || Definition.attrName] = Definition;\n\t if (typeof Definition.keyName === 'string') {\n\t attributes[Definition.keyName] = Definition;\n\t }\n\t else {\n\t if (Definition.className != null) {\n\t classes[Definition.className] = Definition;\n\t }\n\t if (Definition.tagName != null) {\n\t if (Array.isArray(Definition.tagName)) {\n\t Definition.tagName = Definition.tagName.map(function (tagName) {\n\t return tagName.toUpperCase();\n\t });\n\t }\n\t else {\n\t Definition.tagName = Definition.tagName.toUpperCase();\n\t }\n\t var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n\t tagNames.forEach(function (tag) {\n\t if (tags[tag] == null || Definition.className == null) {\n\t tags[tag] = Definition;\n\t }\n\t });\n\t }\n\t }\n\t return Definition;\n\t}\n\texports.register = register;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar attributor_1 = __webpack_require__(8);\n\tvar store_1 = __webpack_require__(9);\n\tvar container_1 = __webpack_require__(3);\n\tvar Registry = __webpack_require__(6);\n\tvar FormatBlot = (function (_super) {\n\t __extends(FormatBlot, _super);\n\t function FormatBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t FormatBlot.formats = function (domNode) {\n\t if (typeof this.tagName === 'string') {\n\t return true;\n\t }\n\t else if (Array.isArray(this.tagName)) {\n\t return domNode.tagName.toLowerCase();\n\t }\n\t return undefined;\n\t };\n\t FormatBlot.prototype.attach = function () {\n\t _super.prototype.attach.call(this);\n\t this.attributes = new store_1.default(this.domNode);\n\t };\n\t FormatBlot.prototype.format = function (name, value) {\n\t var format = Registry.query(name);\n\t if (format instanceof attributor_1.default) {\n\t this.attributes.attribute(format, value);\n\t }\n\t else if (value) {\n\t if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n\t this.replaceWith(name, value);\n\t }\n\t }\n\t };\n\t FormatBlot.prototype.formats = function () {\n\t var formats = this.attributes.values();\n\t var format = this.statics.formats(this.domNode);\n\t if (format != null) {\n\t formats[this.statics.blotName] = format;\n\t }\n\t return formats;\n\t };\n\t FormatBlot.prototype.replaceWith = function (name, value) {\n\t var replacement = _super.prototype.replaceWith.call(this, name, value);\n\t this.attributes.copy(replacement);\n\t return replacement;\n\t };\n\t FormatBlot.prototype.update = function (mutations) {\n\t var _this = this;\n\t _super.prototype.update.call(this, mutations);\n\t if (mutations.some(function (mutation) {\n\t return mutation.target === _this.domNode && mutation.type === 'attributes';\n\t })) {\n\t this.attributes.build();\n\t }\n\t };\n\t FormatBlot.prototype.wrap = function (name, value) {\n\t var wrapper = _super.prototype.wrap.call(this, name, value);\n\t if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n\t this.attributes.move(wrapper);\n\t }\n\t return wrapper;\n\t };\n\t return FormatBlot;\n\t}(container_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = FormatBlot;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar Registry = __webpack_require__(6);\n\tvar Attributor = (function () {\n\t function Attributor(attrName, keyName, options) {\n\t if (options === void 0) { options = {}; }\n\t this.attrName = attrName;\n\t this.keyName = keyName;\n\t var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n\t if (options.scope != null) {\n\t // Ignore type bits, force attribute bit\n\t this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n\t }\n\t else {\n\t this.scope = Registry.Scope.ATTRIBUTE;\n\t }\n\t if (options.whitelist != null)\n\t this.whitelist = options.whitelist;\n\t }\n\t Attributor.keys = function (node) {\n\t return [].map.call(node.attributes, function (item) {\n\t return item.name;\n\t });\n\t };\n\t Attributor.prototype.add = function (node, value) {\n\t if (!this.canAdd(node, value))\n\t return false;\n\t node.setAttribute(this.keyName, value);\n\t return true;\n\t };\n\t Attributor.prototype.canAdd = function (node, value) {\n\t var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n\t if (match != null && (this.whitelist == null || this.whitelist.indexOf(value) > -1)) {\n\t return true;\n\t }\n\t return false;\n\t };\n\t Attributor.prototype.remove = function (node) {\n\t node.removeAttribute(this.keyName);\n\t };\n\t Attributor.prototype.value = function (node) {\n\t return node.getAttribute(this.keyName);\n\t };\n\t return Attributor;\n\t}());\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = Attributor;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar attributor_1 = __webpack_require__(8);\n\tvar class_1 = __webpack_require__(10);\n\tvar style_1 = __webpack_require__(11);\n\tvar Registry = __webpack_require__(6);\n\tvar AttributorStore = (function () {\n\t function AttributorStore(domNode) {\n\t this.attributes = {};\n\t this.domNode = domNode;\n\t this.build();\n\t }\n\t AttributorStore.prototype.attribute = function (attribute, value) {\n\t if (value) {\n\t if (attribute.add(this.domNode, value)) {\n\t if (attribute.value(this.domNode) != null) {\n\t this.attributes[attribute.attrName] = attribute;\n\t }\n\t else {\n\t delete this.attributes[attribute.attrName];\n\t }\n\t }\n\t }\n\t else {\n\t attribute.remove(this.domNode);\n\t delete this.attributes[attribute.attrName];\n\t }\n\t };\n\t AttributorStore.prototype.build = function () {\n\t var _this = this;\n\t this.attributes = {};\n\t var attributes = attributor_1.default.keys(this.domNode);\n\t var classes = class_1.default.keys(this.domNode);\n\t var styles = style_1.default.keys(this.domNode);\n\t attributes.concat(classes).concat(styles).forEach(function (name) {\n\t var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n\t if (attr instanceof attributor_1.default) {\n\t _this.attributes[attr.attrName] = attr;\n\t }\n\t });\n\t };\n\t AttributorStore.prototype.copy = function (target) {\n\t var _this = this;\n\t Object.keys(this.attributes).forEach(function (key) {\n\t var value = _this.attributes[key].value(_this.domNode);\n\t target.format(key, value);\n\t });\n\t };\n\t AttributorStore.prototype.move = function (target) {\n\t var _this = this;\n\t this.copy(target);\n\t Object.keys(this.attributes).forEach(function (key) {\n\t _this.attributes[key].remove(_this.domNode);\n\t });\n\t this.attributes = {};\n\t };\n\t AttributorStore.prototype.values = function () {\n\t var _this = this;\n\t return Object.keys(this.attributes).reduce(function (attributes, name) {\n\t attributes[name] = _this.attributes[name].value(_this.domNode);\n\t return attributes;\n\t }, {});\n\t };\n\t return AttributorStore;\n\t}());\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = AttributorStore;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar attributor_1 = __webpack_require__(8);\n\tfunction match(node, prefix) {\n\t var className = node.getAttribute('class') || '';\n\t return className.split(/\\s+/).filter(function (name) {\n\t return name.indexOf(prefix + \"-\") === 0;\n\t });\n\t}\n\tvar ClassAttributor = (function (_super) {\n\t __extends(ClassAttributor, _super);\n\t function ClassAttributor() {\n\t _super.apply(this, arguments);\n\t }\n\t ClassAttributor.keys = function (node) {\n\t return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n\t return name.split('-').slice(0, -1).join('-');\n\t });\n\t };\n\t ClassAttributor.prototype.add = function (node, value) {\n\t if (!this.canAdd(node, value))\n\t return false;\n\t this.remove(node);\n\t node.classList.add(this.keyName + \"-\" + value);\n\t return true;\n\t };\n\t ClassAttributor.prototype.remove = function (node) {\n\t var matches = match(node, this.keyName);\n\t matches.forEach(function (name) {\n\t node.classList.remove(name);\n\t });\n\t if (node.classList.length === 0) {\n\t node.removeAttribute('class');\n\t }\n\t };\n\t ClassAttributor.prototype.value = function (node) {\n\t var result = match(node, this.keyName)[0] || '';\n\t return result.slice(this.keyName.length + 1); // +1 for hyphen\n\t };\n\t return ClassAttributor;\n\t}(attributor_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = ClassAttributor;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar attributor_1 = __webpack_require__(8);\n\tfunction camelize(name) {\n\t var parts = name.split('-');\n\t var rest = parts.slice(1).map(function (part) {\n\t return part[0].toUpperCase() + part.slice(1);\n\t }).join('');\n\t return parts[0] + rest;\n\t}\n\tvar StyleAttributor = (function (_super) {\n\t __extends(StyleAttributor, _super);\n\t function StyleAttributor() {\n\t _super.apply(this, arguments);\n\t }\n\t StyleAttributor.keys = function (node) {\n\t return (node.getAttribute('style') || '').split(';').map(function (value) {\n\t var arr = value.split(':');\n\t return arr[0].trim();\n\t });\n\t };\n\t StyleAttributor.prototype.add = function (node, value) {\n\t if (!this.canAdd(node, value))\n\t return false;\n\t node.style[camelize(this.keyName)] = value;\n\t return true;\n\t };\n\t StyleAttributor.prototype.remove = function (node) {\n\t node.style[camelize(this.keyName)] = '';\n\t if (!node.getAttribute('style')) {\n\t node.removeAttribute('style');\n\t }\n\t };\n\t StyleAttributor.prototype.value = function (node) {\n\t return node.style[camelize(this.keyName)];\n\t };\n\t return StyleAttributor;\n\t}(attributor_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = StyleAttributor;\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar shadow_1 = __webpack_require__(5);\n\tvar Registry = __webpack_require__(6);\n\tvar LeafBlot = (function (_super) {\n\t __extends(LeafBlot, _super);\n\t function LeafBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t LeafBlot.value = function (domNode) {\n\t return true;\n\t };\n\t LeafBlot.prototype.index = function (node, offset) {\n\t if (node !== this.domNode)\n\t return -1;\n\t return Math.min(offset, 1);\n\t };\n\t LeafBlot.prototype.position = function (index, inclusive) {\n\t var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n\t if (index > 0)\n\t offset += 1;\n\t return [this.parent.domNode, offset];\n\t };\n\t LeafBlot.prototype.value = function () {\n\t return (_a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a);\n\t var _a;\n\t };\n\t LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n\t return LeafBlot;\n\t}(shadow_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = LeafBlot;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar container_1 = __webpack_require__(3);\n\tvar Registry = __webpack_require__(6);\n\tvar OBSERVER_CONFIG = {\n\t attributes: true,\n\t characterData: true,\n\t characterDataOldValue: true,\n\t childList: true,\n\t subtree: true\n\t};\n\tvar MAX_OPTIMIZE_ITERATIONS = 100;\n\tvar ScrollBlot = (function (_super) {\n\t __extends(ScrollBlot, _super);\n\t function ScrollBlot(node) {\n\t var _this = this;\n\t _super.call(this, node);\n\t this.parent = null;\n\t this.observer = new MutationObserver(function (mutations) {\n\t _this.update(mutations);\n\t });\n\t this.observer.observe(this.domNode, OBSERVER_CONFIG);\n\t }\n\t ScrollBlot.prototype.detach = function () {\n\t _super.prototype.detach.call(this);\n\t this.observer.disconnect();\n\t };\n\t ScrollBlot.prototype.deleteAt = function (index, length) {\n\t this.update();\n\t if (index === 0 && length === this.length()) {\n\t this.children.forEach(function (child) {\n\t child.remove();\n\t });\n\t }\n\t else {\n\t _super.prototype.deleteAt.call(this, index, length);\n\t }\n\t };\n\t ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n\t this.update();\n\t _super.prototype.formatAt.call(this, index, length, name, value);\n\t };\n\t ScrollBlot.prototype.insertAt = function (index, value, def) {\n\t this.update();\n\t _super.prototype.insertAt.call(this, index, value, def);\n\t };\n\t ScrollBlot.prototype.optimize = function (mutations) {\n\t var _this = this;\n\t if (mutations === void 0) { mutations = []; }\n\t _super.prototype.optimize.call(this);\n\t mutations.push.apply(mutations, this.observer.takeRecords());\n\t // TODO use WeakMap\n\t var mark = function (blot, markParent) {\n\t if (markParent === void 0) { markParent = true; }\n\t if (blot == null || blot === _this)\n\t return;\n\t if (blot.domNode.parentNode == null)\n\t return;\n\t if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n\t blot.domNode[Registry.DATA_KEY].mutations = [];\n\t }\n\t if (markParent)\n\t mark(blot.parent);\n\t };\n\t var optimize = function (blot) {\n\t if (blot.domNode[Registry.DATA_KEY] == null || blot.domNode[Registry.DATA_KEY].mutations == null) {\n\t return;\n\t }\n\t if (blot instanceof container_1.default) {\n\t blot.children.forEach(optimize);\n\t }\n\t blot.optimize();\n\t };\n\t var remaining = mutations;\n\t for (var i = 0; remaining.length > 0; i += 1) {\n\t if (i >= MAX_OPTIMIZE_ITERATIONS) {\n\t throw new Error('[Parchment] Maximum optimize iterations reached');\n\t }\n\t remaining.forEach(function (mutation) {\n\t var blot = Registry.find(mutation.target, true);\n\t if (blot == null)\n\t return;\n\t if (blot.domNode === mutation.target) {\n\t if (mutation.type === 'childList') {\n\t mark(Registry.find(mutation.previousSibling, false));\n\t [].forEach.call(mutation.addedNodes, function (node) {\n\t var child = Registry.find(node, false);\n\t mark(child, false);\n\t if (child instanceof container_1.default) {\n\t child.children.forEach(function (grandChild) {\n\t mark(grandChild, false);\n\t });\n\t }\n\t });\n\t }\n\t else if (mutation.type === 'attributes') {\n\t mark(blot.prev);\n\t }\n\t }\n\t mark(blot);\n\t });\n\t this.children.forEach(optimize);\n\t remaining = this.observer.takeRecords();\n\t mutations.push.apply(mutations, remaining);\n\t }\n\t };\n\t ScrollBlot.prototype.update = function (mutations) {\n\t var _this = this;\n\t mutations = mutations || this.observer.takeRecords();\n\t // TODO use WeakMap\n\t mutations.map(function (mutation) {\n\t var blot = Registry.find(mutation.target, true);\n\t if (blot == null)\n\t return;\n\t if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n\t blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n\t return blot;\n\t }\n\t else {\n\t blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n\t return null;\n\t }\n\t }).forEach(function (blot) {\n\t if (blot == null || blot === _this || blot.domNode[Registry.DATA_KEY] == null)\n\t return;\n\t blot.update(blot.domNode[Registry.DATA_KEY].mutations || []);\n\t });\n\t if (this.domNode[Registry.DATA_KEY].mutations != null) {\n\t _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations);\n\t }\n\t this.optimize(mutations);\n\t };\n\t ScrollBlot.blotName = 'scroll';\n\t ScrollBlot.defaultChild = 'block';\n\t ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n\t ScrollBlot.tagName = 'DIV';\n\t return ScrollBlot;\n\t}(container_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = ScrollBlot;\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar format_1 = __webpack_require__(7);\n\tvar Registry = __webpack_require__(6);\n\t// Shallow object comparison\n\tfunction isEqual(obj1, obj2) {\n\t if (Object.keys(obj1).length !== Object.keys(obj2).length)\n\t return false;\n\t for (var prop in obj1) {\n\t if (obj1[prop] !== obj2[prop])\n\t return false;\n\t }\n\t return true;\n\t}\n\tvar InlineBlot = (function (_super) {\n\t __extends(InlineBlot, _super);\n\t function InlineBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t InlineBlot.formats = function (domNode) {\n\t if (domNode.tagName === InlineBlot.tagName)\n\t return undefined;\n\t return _super.formats.call(this, domNode);\n\t };\n\t InlineBlot.prototype.format = function (name, value) {\n\t var _this = this;\n\t if (name === this.statics.blotName && !value) {\n\t this.children.forEach(function (child) {\n\t if (!(child instanceof format_1.default)) {\n\t child = child.wrap(InlineBlot.blotName, true);\n\t }\n\t _this.attributes.copy(child);\n\t });\n\t this.unwrap();\n\t }\n\t else {\n\t _super.prototype.format.call(this, name, value);\n\t }\n\t };\n\t InlineBlot.prototype.formatAt = function (index, length, name, value) {\n\t if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n\t var blot = this.isolate(index, length);\n\t blot.format(name, value);\n\t }\n\t else {\n\t _super.prototype.formatAt.call(this, index, length, name, value);\n\t }\n\t };\n\t InlineBlot.prototype.optimize = function () {\n\t _super.prototype.optimize.call(this);\n\t var formats = this.formats();\n\t if (Object.keys(formats).length === 0) {\n\t return this.unwrap(); // unformatted span\n\t }\n\t var next = this.next;\n\t if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n\t next.moveChildren(this);\n\t next.remove();\n\t }\n\t };\n\t InlineBlot.blotName = 'inline';\n\t InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n\t InlineBlot.tagName = 'SPAN';\n\t return InlineBlot;\n\t}(format_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = InlineBlot;\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar format_1 = __webpack_require__(7);\n\tvar Registry = __webpack_require__(6);\n\tvar BlockBlot = (function (_super) {\n\t __extends(BlockBlot, _super);\n\t function BlockBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t BlockBlot.formats = function (domNode) {\n\t var tagName = Registry.query(BlockBlot.blotName).tagName;\n\t if (domNode.tagName === tagName)\n\t return undefined;\n\t return _super.formats.call(this, domNode);\n\t };\n\t BlockBlot.prototype.format = function (name, value) {\n\t if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n\t return;\n\t }\n\t else if (name === this.statics.blotName && !value) {\n\t this.replaceWith(BlockBlot.blotName);\n\t }\n\t else {\n\t _super.prototype.format.call(this, name, value);\n\t }\n\t };\n\t BlockBlot.prototype.formatAt = function (index, length, name, value) {\n\t if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n\t this.format(name, value);\n\t }\n\t else {\n\t _super.prototype.formatAt.call(this, index, length, name, value);\n\t }\n\t };\n\t BlockBlot.prototype.insertAt = function (index, value, def) {\n\t if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n\t // Insert text or inline\n\t _super.prototype.insertAt.call(this, index, value, def);\n\t }\n\t else {\n\t var after = this.split(index);\n\t var blot = Registry.create(value, def);\n\t after.parent.insertBefore(blot, after);\n\t }\n\t };\n\t BlockBlot.blotName = 'block';\n\t BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n\t BlockBlot.tagName = 'P';\n\t return BlockBlot;\n\t}(format_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = BlockBlot;\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar leaf_1 = __webpack_require__(12);\n\tvar EmbedBlot = (function (_super) {\n\t __extends(EmbedBlot, _super);\n\t function EmbedBlot() {\n\t _super.apply(this, arguments);\n\t }\n\t EmbedBlot.formats = function (domNode) {\n\t return undefined;\n\t };\n\t EmbedBlot.prototype.format = function (name, value) {\n\t // super.formatAt wraps, which is what we want in general,\n\t // but this allows subclasses to overwrite for formats\n\t // that just apply to particular embeds\n\t _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n\t };\n\t EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n\t if (index === 0 && length === this.length()) {\n\t this.format(name, value);\n\t }\n\t else {\n\t _super.prototype.formatAt.call(this, index, length, name, value);\n\t }\n\t };\n\t EmbedBlot.prototype.formats = function () {\n\t return this.statics.formats(this.domNode);\n\t };\n\t return EmbedBlot;\n\t}(leaf_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = EmbedBlot;\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar leaf_1 = __webpack_require__(12);\n\tvar Registry = __webpack_require__(6);\n\tvar TextBlot = (function (_super) {\n\t __extends(TextBlot, _super);\n\t function TextBlot(node) {\n\t _super.call(this, node);\n\t this.text = this.statics.value(this.domNode);\n\t }\n\t TextBlot.create = function (value) {\n\t return document.createTextNode(value);\n\t };\n\t TextBlot.value = function (domNode) {\n\t return domNode.data;\n\t };\n\t TextBlot.prototype.deleteAt = function (index, length) {\n\t this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n\t };\n\t TextBlot.prototype.index = function (node, offset) {\n\t if (this.domNode === node) {\n\t return offset;\n\t }\n\t return -1;\n\t };\n\t TextBlot.prototype.insertAt = function (index, value, def) {\n\t if (def == null) {\n\t this.text = this.text.slice(0, index) + value + this.text.slice(index);\n\t this.domNode.data = this.text;\n\t }\n\t else {\n\t _super.prototype.insertAt.call(this, index, value, def);\n\t }\n\t };\n\t TextBlot.prototype.length = function () {\n\t return this.text.length;\n\t };\n\t TextBlot.prototype.optimize = function () {\n\t _super.prototype.optimize.call(this);\n\t this.text = this.statics.value(this.domNode);\n\t if (this.text.length === 0) {\n\t this.remove();\n\t }\n\t else if (this.next instanceof TextBlot && this.next.prev === this) {\n\t this.insertAt(this.length(), this.next.value());\n\t this.next.remove();\n\t }\n\t };\n\t TextBlot.prototype.position = function (index, inclusive) {\n\t if (inclusive === void 0) { inclusive = false; }\n\t return [this.domNode, index];\n\t };\n\t TextBlot.prototype.split = function (index, force) {\n\t if (force === void 0) { force = false; }\n\t if (!force) {\n\t if (index === 0)\n\t return this;\n\t if (index === this.length())\n\t return this.next;\n\t }\n\t var after = Registry.create(this.domNode.splitText(index));\n\t this.parent.insertBefore(after, this.next);\n\t this.text = this.statics.value(this.domNode);\n\t return after;\n\t };\n\t TextBlot.prototype.update = function (mutations) {\n\t var _this = this;\n\t if (mutations.some(function (mutation) {\n\t return mutation.type === 'characterData' && mutation.target === _this.domNode;\n\t })) {\n\t this.text = this.statics.value(this.domNode);\n\t }\n\t };\n\t TextBlot.prototype.value = function () {\n\t return this.text;\n\t };\n\t TextBlot.blotName = 'text';\n\t TextBlot.scope = Registry.Scope.INLINE_BLOT;\n\t return TextBlot;\n\t}(leaf_1.default));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = TextBlot;\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.overload = exports.expandConfig = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\t__webpack_require__(19);\n\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _editor = __webpack_require__(27);\n\t\n\tvar _editor2 = _interopRequireDefault(_editor);\n\t\n\tvar _emitter3 = __webpack_require__(36);\n\t\n\tvar _emitter4 = _interopRequireDefault(_emitter3);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _selection = __webpack_require__(44);\n\t\n\tvar _selection2 = _interopRequireDefault(_selection);\n\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tvar _theme = __webpack_require__(45);\n\t\n\tvar _theme2 = _interopRequireDefault(_theme);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar debug = (0, _logger2.default)('quill');\n\t\n\tvar Quill = function () {\n\t _createClass(Quill, null, [{\n\t key: 'debug',\n\t value: function debug(limit) {\n\t if (limit === true) {\n\t limit = 'log';\n\t }\n\t _logger2.default.level(limit);\n\t }\n\t }, {\n\t key: 'import',\n\t value: function _import(name) {\n\t if (this.imports[name] == null) {\n\t debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n\t }\n\t return this.imports[name];\n\t }\n\t }, {\n\t key: 'register',\n\t value: function register(path, target) {\n\t var _this = this;\n\t\n\t var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\t\n\t if (typeof path !== 'string') {\n\t var name = path.attrName || path.blotName;\n\t if (typeof name === 'string') {\n\t // register(Blot | Attributor, overwrite)\n\t this.register('formats/' + name, path, target);\n\t } else {\n\t Object.keys(path).forEach(function (key) {\n\t _this.register(key, path[key], target);\n\t });\n\t }\n\t } else {\n\t if (this.imports[path] != null && !overwrite) {\n\t debug.warn('Overwriting ' + path + ' with', target);\n\t }\n\t this.imports[path] = target;\n\t if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n\t _parchment2.default.register(target);\n\t }\n\t }\n\t }\n\t }]);\n\t\n\t function Quill(container) {\n\t var _this2 = this;\n\t\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t _classCallCheck(this, Quill);\n\t\n\t this.options = expandConfig(container, options);\n\t this.container = this.options.container;\n\t if (this.container == null) {\n\t return debug.error('Invalid Quill container', container);\n\t }\n\t if (this.options.debug) {\n\t Quill.debug(this.options.debug);\n\t }\n\t var html = this.container.innerHTML.trim();\n\t this.container.classList.add('ql-container');\n\t this.container.innerHTML = '';\n\t this.root = this.addContainer('ql-editor');\n\t this.root.classList.add('ql-blank');\n\t this.emitter = new _emitter4.default();\n\t this.scroll = _parchment2.default.create(this.root, {\n\t emitter: this.emitter,\n\t whitelist: this.options.formats\n\t });\n\t this.editor = new _editor2.default(this.scroll);\n\t this.selection = new _selection2.default(this.scroll, this.emitter);\n\t this.theme = new this.options.theme(this, this.options);\n\t this.keyboard = this.theme.addModule('keyboard');\n\t this.clipboard = this.theme.addModule('clipboard');\n\t this.history = this.theme.addModule('history');\n\t this.theme.init();\n\t this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n\t if (type === _emitter4.default.events.TEXT_CHANGE) {\n\t _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n\t }\n\t });\n\t this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n\t var range = _this2.selection.lastRange;\n\t var index = range && range.length === 0 ? range.index : undefined;\n\t modify.call(_this2, function () {\n\t return _this2.editor.update(null, mutations, index);\n\t }, source);\n\t });\n\t var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n\t this.setContents(contents);\n\t this.history.clear();\n\t if (this.options.placeholder) {\n\t this.root.setAttribute('data-placeholder', this.options.placeholder);\n\t }\n\t if (this.options.readOnly) {\n\t this.disable();\n\t }\n\t }\n\t\n\t _createClass(Quill, [{\n\t key: 'addContainer',\n\t value: function addContainer(container) {\n\t var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\n\t if (typeof container === 'string') {\n\t var className = container;\n\t container = document.createElement('div');\n\t container.classList.add(className);\n\t }\n\t this.container.insertBefore(container, refNode);\n\t return container;\n\t }\n\t }, {\n\t key: 'blur',\n\t value: function blur() {\n\t this.selection.setRange(null);\n\t }\n\t }, {\n\t key: 'deleteText',\n\t value: function deleteText(index, length, source) {\n\t var _this3 = this;\n\t\n\t var _overload = overload(index, length, source);\n\t\n\t var _overload2 = _slicedToArray(_overload, 4);\n\t\n\t index = _overload2[0];\n\t length = _overload2[1];\n\t source = _overload2[3];\n\t\n\t return modify.call(this, function () {\n\t return _this3.editor.deleteText(index, length);\n\t }, source, index, -1 * length);\n\t }\n\t }, {\n\t key: 'disable',\n\t value: function disable() {\n\t this.enable(false);\n\t }\n\t }, {\n\t key: 'enable',\n\t value: function enable() {\n\t var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\t\n\t this.scroll.enable(enabled);\n\t this.container.classList.toggle('ql-disabled', !enabled);\n\t if (!enabled) {\n\t this.blur();\n\t }\n\t }\n\t }, {\n\t key: 'focus',\n\t value: function focus() {\n\t this.selection.focus();\n\t this.selection.scrollIntoView();\n\t }\n\t }, {\n\t key: 'format',\n\t value: function format(name, value) {\n\t var _this4 = this;\n\t\n\t var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\t\n\t return modify.call(this, function () {\n\t var range = _this4.getSelection(true);\n\t var change = new _quillDelta2.default();\n\t if (range == null) {\n\t return change;\n\t } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n\t change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n\t } else if (range.length === 0) {\n\t _this4.selection.format(name, value);\n\t return change;\n\t } else {\n\t change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n\t }\n\t _this4.setSelection(range, _emitter4.default.sources.SILENT);\n\t return change;\n\t }, source);\n\t }\n\t }, {\n\t key: 'formatLine',\n\t value: function formatLine(index, length, name, value, source) {\n\t var _this5 = this;\n\t\n\t var formats = void 0;\n\t\n\t var _overload3 = overload(index, length, name, value, source);\n\t\n\t var _overload4 = _slicedToArray(_overload3, 4);\n\t\n\t index = _overload4[0];\n\t length = _overload4[1];\n\t formats = _overload4[2];\n\t source = _overload4[3];\n\t\n\t return modify.call(this, function () {\n\t return _this5.editor.formatLine(index, length, formats);\n\t }, source, index, 0);\n\t }\n\t }, {\n\t key: 'formatText',\n\t value: function formatText(index, length, name, value, source) {\n\t var _this6 = this;\n\t\n\t var formats = void 0;\n\t\n\t var _overload5 = overload(index, length, name, value, source);\n\t\n\t var _overload6 = _slicedToArray(_overload5, 4);\n\t\n\t index = _overload6[0];\n\t length = _overload6[1];\n\t formats = _overload6[2];\n\t source = _overload6[3];\n\t\n\t return modify.call(this, function () {\n\t return _this6.editor.formatText(index, length, formats);\n\t }, source, index, 0);\n\t }\n\t }, {\n\t key: 'getBounds',\n\t value: function getBounds(index) {\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\t\n\t if (typeof index === 'number') {\n\t return this.selection.getBounds(index, length);\n\t } else {\n\t return this.selection.getBounds(index.index, index.length);\n\t }\n\t }\n\t }, {\n\t key: 'getContents',\n\t value: function getContents() {\n\t var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\t\n\t var _overload7 = overload(index, length);\n\t\n\t var _overload8 = _slicedToArray(_overload7, 2);\n\t\n\t index = _overload8[0];\n\t length = _overload8[1];\n\t\n\t return this.editor.getContents(index, length);\n\t }\n\t }, {\n\t key: 'getFormat',\n\t value: function getFormat() {\n\t var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection();\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\t\n\t if (typeof index === 'number') {\n\t return this.editor.getFormat(index, length);\n\t } else {\n\t return this.editor.getFormat(index.index, index.length);\n\t }\n\t }\n\t }, {\n\t key: 'getLength',\n\t value: function getLength() {\n\t return this.scroll.length();\n\t }\n\t }, {\n\t key: 'getModule',\n\t value: function getModule(name) {\n\t return this.theme.modules[name];\n\t }\n\t }, {\n\t key: 'getSelection',\n\t value: function getSelection() {\n\t var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\n\t if (focus) this.focus();\n\t this.update(); // Make sure we access getRange with editor in consistent state\n\t return this.selection.getRange()[0];\n\t }\n\t }, {\n\t key: 'getText',\n\t value: function getText() {\n\t var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\t\n\t var _overload9 = overload(index, length);\n\t\n\t var _overload10 = _slicedToArray(_overload9, 2);\n\t\n\t index = _overload10[0];\n\t length = _overload10[1];\n\t\n\t return this.editor.getText(index, length);\n\t }\n\t }, {\n\t key: 'hasFocus',\n\t value: function hasFocus() {\n\t return this.selection.hasFocus();\n\t }\n\t }, {\n\t key: 'insertEmbed',\n\t value: function insertEmbed(index, embed, value) {\n\t var _this7 = this;\n\t\n\t var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\t\n\t return modify.call(this, function () {\n\t return _this7.editor.insertEmbed(index, embed, value);\n\t }, source, index);\n\t }\n\t }, {\n\t key: 'insertText',\n\t value: function insertText(index, text, name, value, source) {\n\t var _this8 = this;\n\t\n\t var formats = void 0;\n\t\n\t var _overload11 = overload(index, 0, name, value, source);\n\t\n\t var _overload12 = _slicedToArray(_overload11, 4);\n\t\n\t index = _overload12[0];\n\t formats = _overload12[2];\n\t source = _overload12[3];\n\t\n\t return modify.call(this, function () {\n\t return _this8.editor.insertText(index, text, formats);\n\t }, source, index, text.length);\n\t }\n\t }, {\n\t key: 'isEnabled',\n\t value: function isEnabled() {\n\t return !this.container.classList.contains('ql-disabled');\n\t }\n\t }, {\n\t key: 'off',\n\t value: function off() {\n\t return this.emitter.off.apply(this.emitter, arguments);\n\t }\n\t }, {\n\t key: 'on',\n\t value: function on() {\n\t return this.emitter.on.apply(this.emitter, arguments);\n\t }\n\t }, {\n\t key: 'once',\n\t value: function once() {\n\t return this.emitter.once.apply(this.emitter, arguments);\n\t }\n\t }, {\n\t key: 'pasteHTML',\n\t value: function pasteHTML(index, html, source) {\n\t this.clipboard.dangerouslyPasteHTML(index, html, source);\n\t }\n\t }, {\n\t key: 'removeFormat',\n\t value: function removeFormat(index, length, source) {\n\t var _this9 = this;\n\t\n\t var _overload13 = overload(index, length, source);\n\t\n\t var _overload14 = _slicedToArray(_overload13, 4);\n\t\n\t index = _overload14[0];\n\t length = _overload14[1];\n\t source = _overload14[3];\n\t\n\t return modify.call(this, function () {\n\t return _this9.editor.removeFormat(index, length);\n\t }, source, index);\n\t }\n\t }, {\n\t key: 'setContents',\n\t value: function setContents(delta) {\n\t var _this10 = this;\n\t\n\t var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\t\n\t return modify.call(this, function () {\n\t delta = new _quillDelta2.default(delta);\n\t var length = _this10.getLength();\n\t var deleted = _this10.editor.deleteText(0, length);\n\t var applied = _this10.editor.applyDelta(delta);\n\t var lastOp = applied.ops[applied.ops.length - 1];\n\t if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n\t _this10.editor.deleteText(_this10.getLength() - 1, 1);\n\t applied.delete(1);\n\t }\n\t var ret = deleted.compose(applied);\n\t return ret;\n\t }, source);\n\t }\n\t }, {\n\t key: 'setSelection',\n\t value: function setSelection(index, length, source) {\n\t if (index == null) {\n\t this.selection.setRange(null, length || Quill.sources.API);\n\t } else {\n\t var _overload15 = overload(index, length, source);\n\t\n\t var _overload16 = _slicedToArray(_overload15, 4);\n\t\n\t index = _overload16[0];\n\t length = _overload16[1];\n\t source = _overload16[3];\n\t\n\t this.selection.setRange(new _selection.Range(index, length), source);\n\t }\n\t this.selection.scrollIntoView();\n\t }\n\t }, {\n\t key: 'setText',\n\t value: function setText(text) {\n\t var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\t\n\t var delta = new _quillDelta2.default().insert(text);\n\t return this.setContents(delta, source);\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update() {\n\t var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\t\n\t var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n\t this.selection.update(source);\n\t return change;\n\t }\n\t }, {\n\t key: 'updateContents',\n\t value: function updateContents(delta) {\n\t var _this11 = this;\n\t\n\t var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\t\n\t return modify.call(this, function () {\n\t delta = new _quillDelta2.default(delta);\n\t return _this11.editor.applyDelta(delta, source);\n\t }, source, true);\n\t }\n\t }]);\n\t\n\t return Quill;\n\t}();\n\t\n\tQuill.DEFAULTS = {\n\t bounds: null,\n\t formats: null,\n\t modules: {},\n\t placeholder: '',\n\t readOnly: false,\n\t strict: true,\n\t theme: 'default'\n\t};\n\tQuill.events = _emitter4.default.events;\n\tQuill.sources = _emitter4.default.sources;\n\t// eslint-disable-next-line no-undef\n\tQuill.version = false ? 'dev' : (\"1.1.5\");\n\t\n\tQuill.imports = {\n\t 'delta': _quillDelta2.default,\n\t 'parchment': _parchment2.default,\n\t 'core/module': _module2.default,\n\t 'core/theme': _theme2.default\n\t};\n\t\n\tfunction expandConfig(container, userConfig) {\n\t userConfig = (0, _extend2.default)(true, {\n\t container: container,\n\t modules: {\n\t clipboard: true,\n\t keyboard: true,\n\t history: true\n\t }\n\t }, userConfig);\n\t if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n\t userConfig.theme = _theme2.default;\n\t } else {\n\t userConfig.theme = Quill.import('themes/' + userConfig.theme);\n\t if (userConfig.theme == null) {\n\t throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n\t }\n\t }\n\t var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n\t [themeConfig, userConfig].forEach(function (config) {\n\t config.modules = config.modules || {};\n\t Object.keys(config.modules).forEach(function (module) {\n\t if (config.modules[module] === true) {\n\t config.modules[module] = {};\n\t }\n\t });\n\t });\n\t var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n\t var moduleConfig = moduleNames.reduce(function (config, name) {\n\t var moduleClass = Quill.import('modules/' + name);\n\t if (moduleClass == null) {\n\t debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n\t } else {\n\t config[name] = moduleClass.DEFAULTS || {};\n\t }\n\t return config;\n\t }, {});\n\t // Special case toolbar shorthand\n\t if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n\t userConfig.modules.toolbar = {\n\t container: userConfig.modules.toolbar\n\t };\n\t }\n\t userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n\t ['bounds', 'container'].forEach(function (key) {\n\t if (typeof userConfig[key] === 'string') {\n\t userConfig[key] = document.querySelector(userConfig[key]);\n\t }\n\t });\n\t userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n\t if (userConfig.modules[name]) {\n\t config[name] = userConfig.modules[name];\n\t }\n\t return config;\n\t }, {});\n\t return userConfig;\n\t}\n\t\n\t// Handle selection preservation and TEXT_CHANGE emission\n\t// common to modification APIs\n\tfunction modify(modifier, source, index, shift) {\n\t if (!this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n\t return new _quillDelta2.default();\n\t }\n\t var range = index == null ? null : this.getSelection();\n\t var oldDelta = this.editor.delta;\n\t var change = modifier();\n\t if (range != null) {\n\t if (index === true) index = range.index;\n\t if (shift == null) {\n\t range = shiftRange(range, change, source);\n\t } else if (shift !== 0) {\n\t range = shiftRange(range, index, shift, source);\n\t }\n\t this.setSelection(range, _emitter4.default.sources.SILENT);\n\t }\n\t if (change.length() > 0) {\n\t var _emitter;\n\t\n\t var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n\t (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n\t if (source !== _emitter4.default.sources.SILENT) {\n\t var _emitter2;\n\t\n\t (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n\t }\n\t }\n\t return change;\n\t}\n\t\n\tfunction overload(index, length, name, value, source) {\n\t var formats = {};\n\t if (typeof index.index === 'number' && typeof index.length === 'number') {\n\t // Allow for throwaway end (used by insertText/insertEmbed)\n\t if (typeof length !== 'number') {\n\t source = value, value = name, name = length, length = index.length, index = index.index;\n\t } else {\n\t length = index.length, index = index.index;\n\t }\n\t } else if (typeof length !== 'number') {\n\t source = value, value = name, name = length, length = 0;\n\t }\n\t // Handle format being object, two format name/value strings or excluded\n\t if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n\t formats = name;\n\t source = value;\n\t } else if (typeof name === 'string') {\n\t if (value != null) {\n\t formats[name] = value;\n\t } else {\n\t source = name;\n\t }\n\t }\n\t // Handle optional source\n\t source = source || _emitter4.default.sources.API;\n\t return [index, length, formats, source];\n\t}\n\t\n\tfunction shiftRange(range, index, length, source) {\n\t if (range == null) return null;\n\t var start = void 0,\n\t end = void 0;\n\t if (index instanceof _quillDelta2.default) {\n\t var _map = [range.index, range.index + range.length].map(function (pos) {\n\t return index.transformPosition(pos, source === _emitter4.default.sources.USER);\n\t });\n\t\n\t var _map2 = _slicedToArray(_map, 2);\n\t\n\t start = _map2[0];\n\t end = _map2[1];\n\t } else {\n\t var _map3 = [range.index, range.index + range.length].map(function (pos) {\n\t if (pos < index || pos === index && source !== _emitter4.default.sources.USER) return pos;\n\t if (length >= 0) {\n\t return pos + length;\n\t } else {\n\t return Math.max(index, pos + length);\n\t }\n\t });\n\t\n\t var _map4 = _slicedToArray(_map3, 2);\n\t\n\t start = _map4[0];\n\t end = _map4[1];\n\t }\n\t return new _selection.Range(start, end - start);\n\t}\n\t\n\texports.expandConfig = expandConfig;\n\texports.overload = overload;\n\texports.default = Quill;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar elem = document.createElement('div');\n\telem.classList.toggle('test-class', false);\n\tif (elem.classList.contains('test-class')) {\n\t (function () {\n\t var _toggle = DOMTokenList.prototype.toggle;\n\t DOMTokenList.prototype.toggle = function (token, force) {\n\t if (arguments.length > 1 && !this.contains(token) === !force) {\n\t return force;\n\t } else {\n\t return _toggle.call(this, token);\n\t }\n\t };\n\t })();\n\t}\n\t\n\tif (!String.prototype.startsWith) {\n\t String.prototype.startsWith = function (searchString, position) {\n\t position = position || 0;\n\t return this.substr(position, searchString.length) === searchString;\n\t };\n\t}\n\t\n\tif (!String.prototype.endsWith) {\n\t String.prototype.endsWith = function (searchString, position) {\n\t var subjectString = this.toString();\n\t if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n\t position = subjectString.length;\n\t }\n\t position -= searchString.length;\n\t var lastIndex = subjectString.indexOf(searchString, position);\n\t return lastIndex !== -1 && lastIndex === position;\n\t };\n\t}\n\t\n\tif (!Array.prototype.find) {\n\t Object.defineProperty(Array.prototype, \"find\", {\n\t value: function value(predicate) {\n\t if (this === null) {\n\t throw new TypeError('Array.prototype.find called on null or undefined');\n\t }\n\t if (typeof predicate !== 'function') {\n\t throw new TypeError('predicate must be a function');\n\t }\n\t var list = Object(this);\n\t var length = list.length >>> 0;\n\t var thisArg = arguments[1];\n\t var value;\n\t\n\t for (var i = 0; i < length; i++) {\n\t value = list[i];\n\t if (predicate.call(thisArg, value, i, list)) {\n\t return value;\n\t }\n\t }\n\t return undefined;\n\t }\n\t });\n\t}\n\t\n\t// Disable resizing in Firefox\n\tdocument.addEventListener(\"DOMContentLoaded\", function () {\n\t document.execCommand(\"enableObjectResizing\", false, false);\n\t});\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar diff = __webpack_require__(21);\n\tvar equal = __webpack_require__(22);\n\tvar extend = __webpack_require__(25);\n\tvar op = __webpack_require__(26);\n\t\n\t\n\tvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\t\n\t\n\tvar Delta = function (ops) {\n\t // Assume we are given a well formed ops\n\t if (Array.isArray(ops)) {\n\t this.ops = ops;\n\t } else if (ops != null && Array.isArray(ops.ops)) {\n\t this.ops = ops.ops;\n\t } else {\n\t this.ops = [];\n\t }\n\t};\n\t\n\t\n\tDelta.prototype.insert = function (text, attributes) {\n\t var newOp = {};\n\t if (text.length === 0) return this;\n\t newOp.insert = text;\n\t if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n\t newOp.attributes = attributes;\n\t }\n\t return this.push(newOp);\n\t};\n\t\n\tDelta.prototype['delete'] = function (length) {\n\t if (length <= 0) return this;\n\t return this.push({ 'delete': length });\n\t};\n\t\n\tDelta.prototype.retain = function (length, attributes) {\n\t if (length <= 0) return this;\n\t var newOp = { retain: length };\n\t if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n\t newOp.attributes = attributes;\n\t }\n\t return this.push(newOp);\n\t};\n\t\n\tDelta.prototype.push = function (newOp) {\n\t var index = this.ops.length;\n\t var lastOp = this.ops[index - 1];\n\t newOp = extend(true, {}, newOp);\n\t if (typeof lastOp === 'object') {\n\t if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n\t this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n\t return this;\n\t }\n\t // Since it does not matter if we insert before or after deleting at the same index,\n\t // always prefer to insert first\n\t if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n\t index -= 1;\n\t lastOp = this.ops[index - 1];\n\t if (typeof lastOp !== 'object') {\n\t this.ops.unshift(newOp);\n\t return this;\n\t }\n\t }\n\t if (equal(newOp.attributes, lastOp.attributes)) {\n\t if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n\t this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n\t if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n\t return this;\n\t } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n\t this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n\t if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n\t return this;\n\t }\n\t }\n\t }\n\t if (index === this.ops.length) {\n\t this.ops.push(newOp);\n\t } else {\n\t this.ops.splice(index, 0, newOp);\n\t }\n\t return this;\n\t};\n\t\n\tDelta.prototype.filter = function (predicate) {\n\t return this.ops.filter(predicate);\n\t};\n\t\n\tDelta.prototype.forEach = function (predicate) {\n\t this.ops.forEach(predicate);\n\t};\n\t\n\tDelta.prototype.map = function (predicate) {\n\t return this.ops.map(predicate);\n\t};\n\t\n\tDelta.prototype.partition = function (predicate) {\n\t var passed = [], failed = [];\n\t this.forEach(function(op) {\n\t var target = predicate(op) ? passed : failed;\n\t target.push(op);\n\t });\n\t return [passed, failed];\n\t};\n\t\n\tDelta.prototype.reduce = function (predicate, initial) {\n\t return this.ops.reduce(predicate, initial);\n\t};\n\t\n\tDelta.prototype.chop = function () {\n\t var lastOp = this.ops[this.ops.length - 1];\n\t if (lastOp && lastOp.retain && !lastOp.attributes) {\n\t this.ops.pop();\n\t }\n\t return this;\n\t};\n\t\n\tDelta.prototype.length = function () {\n\t return this.reduce(function (length, elem) {\n\t return length + op.length(elem);\n\t }, 0);\n\t};\n\t\n\tDelta.prototype.slice = function (start, end) {\n\t start = start || 0;\n\t if (typeof end !== 'number') end = Infinity;\n\t var ops = [];\n\t var iter = op.iterator(this.ops);\n\t var index = 0;\n\t while (index < end && iter.hasNext()) {\n\t var nextOp;\n\t if (index < start) {\n\t nextOp = iter.next(start - index);\n\t } else {\n\t nextOp = iter.next(end - index);\n\t ops.push(nextOp);\n\t }\n\t index += op.length(nextOp);\n\t }\n\t return new Delta(ops);\n\t};\n\t\n\t\n\tDelta.prototype.compose = function (other) {\n\t var thisIter = op.iterator(this.ops);\n\t var otherIter = op.iterator(other.ops);\n\t var delta = new Delta();\n\t while (thisIter.hasNext() || otherIter.hasNext()) {\n\t if (otherIter.peekType() === 'insert') {\n\t delta.push(otherIter.next());\n\t } else if (thisIter.peekType() === 'delete') {\n\t delta.push(thisIter.next());\n\t } else {\n\t var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n\t var thisOp = thisIter.next(length);\n\t var otherOp = otherIter.next(length);\n\t if (typeof otherOp.retain === 'number') {\n\t var newOp = {};\n\t if (typeof thisOp.retain === 'number') {\n\t newOp.retain = length;\n\t } else {\n\t newOp.insert = thisOp.insert;\n\t }\n\t // Preserve null when composing with a retain, otherwise remove it for inserts\n\t var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n\t if (attributes) newOp.attributes = attributes;\n\t delta.push(newOp);\n\t // Other op should be delete, we could be an insert or retain\n\t // Insert + delete cancels out\n\t } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n\t delta.push(otherOp);\n\t }\n\t }\n\t }\n\t return delta.chop();\n\t};\n\t\n\tDelta.prototype.concat = function (other) {\n\t var delta = new Delta(this.ops.slice());\n\t if (other.ops.length > 0) {\n\t delta.push(other.ops[0]);\n\t delta.ops = delta.ops.concat(other.ops.slice(1));\n\t }\n\t return delta;\n\t};\n\t\n\tDelta.prototype.diff = function (other, index) {\n\t if (this.ops === other.ops) {\n\t return new Delta();\n\t }\n\t var strings = [this, other].map(function (delta) {\n\t return delta.map(function (op) {\n\t if (op.insert != null) {\n\t return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n\t }\n\t var prep = (delta === other) ? 'on' : 'with';\n\t throw new Error('diff() called ' + prep + ' non-document');\n\t }).join('');\n\t });\n\t var delta = new Delta();\n\t var diffResult = diff(strings[0], strings[1], index);\n\t var thisIter = op.iterator(this.ops);\n\t var otherIter = op.iterator(other.ops);\n\t diffResult.forEach(function (component) {\n\t var length = component[1].length;\n\t while (length > 0) {\n\t var opLength = 0;\n\t switch (component[0]) {\n\t case diff.INSERT:\n\t opLength = Math.min(otherIter.peekLength(), length);\n\t delta.push(otherIter.next(opLength));\n\t break;\n\t case diff.DELETE:\n\t opLength = Math.min(length, thisIter.peekLength());\n\t thisIter.next(opLength);\n\t delta['delete'](opLength);\n\t break;\n\t case diff.EQUAL:\n\t opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n\t var thisOp = thisIter.next(opLength);\n\t var otherOp = otherIter.next(opLength);\n\t if (equal(thisOp.insert, otherOp.insert)) {\n\t delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n\t } else {\n\t delta.push(otherOp)['delete'](opLength);\n\t }\n\t break;\n\t }\n\t length -= opLength;\n\t }\n\t });\n\t return delta.chop();\n\t};\n\t\n\tDelta.prototype.eachLine = function (predicate, newline) {\n\t newline = newline || '\\n';\n\t var iter = op.iterator(this.ops);\n\t var line = new Delta();\n\t while (iter.hasNext()) {\n\t if (iter.peekType() !== 'insert') return;\n\t var thisOp = iter.peek();\n\t var start = op.length(thisOp) - iter.peekLength();\n\t var index = typeof thisOp.insert === 'string' ?\n\t thisOp.insert.indexOf(newline, start) - start : -1;\n\t if (index < 0) {\n\t line.push(iter.next());\n\t } else if (index > 0) {\n\t line.push(iter.next(index));\n\t } else {\n\t predicate(line, iter.next(1).attributes || {});\n\t line = new Delta();\n\t }\n\t }\n\t if (line.length() > 0) {\n\t predicate(line, {});\n\t }\n\t};\n\t\n\tDelta.prototype.transform = function (other, priority) {\n\t priority = !!priority;\n\t if (typeof other === 'number') {\n\t return this.transformPosition(other, priority);\n\t }\n\t var thisIter = op.iterator(this.ops);\n\t var otherIter = op.iterator(other.ops);\n\t var delta = new Delta();\n\t while (thisIter.hasNext() || otherIter.hasNext()) {\n\t if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n\t delta.retain(op.length(thisIter.next()));\n\t } else if (otherIter.peekType() === 'insert') {\n\t delta.push(otherIter.next());\n\t } else {\n\t var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n\t var thisOp = thisIter.next(length);\n\t var otherOp = otherIter.next(length);\n\t if (thisOp['delete']) {\n\t // Our delete either makes their delete redundant or removes their retain\n\t continue;\n\t } else if (otherOp['delete']) {\n\t delta.push(otherOp);\n\t } else {\n\t // We retain either their retain or insert\n\t delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n\t }\n\t }\n\t }\n\t return delta.chop();\n\t};\n\t\n\tDelta.prototype.transformPosition = function (index, priority) {\n\t priority = !!priority;\n\t var thisIter = op.iterator(this.ops);\n\t var offset = 0;\n\t while (thisIter.hasNext() && offset <= index) {\n\t var length = thisIter.peekLength();\n\t var nextType = thisIter.peekType();\n\t thisIter.next();\n\t if (nextType === 'delete') {\n\t index -= Math.min(length, index - offset);\n\t continue;\n\t } else if (nextType === 'insert' && (offset < index || !priority)) {\n\t index += length;\n\t }\n\t offset += length;\n\t }\n\t return index;\n\t};\n\t\n\t\n\tmodule.exports = Delta;\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t/**\n\t * This library modifies the diff-patch-match library by Neil Fraser\n\t * by removing the patch and match functionality and certain advanced\n\t * options in the diff function. The original license is as follows:\n\t *\n\t * ===\n\t *\n\t * Diff Match and Patch\n\t *\n\t * Copyright 2006 Google Inc.\n\t * http://code.google.com/p/google-diff-match-patch/\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t\n\t/**\n\t * The data structure representing a diff is an array of tuples:\n\t * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n\t * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n\t */\n\tvar DIFF_DELETE = -1;\n\tvar DIFF_INSERT = 1;\n\tvar DIFF_EQUAL = 0;\n\t\n\t\n\t/**\n\t * Find the differences between two texts. Simplifies the problem by stripping\n\t * any common prefix or suffix off the texts before diffing.\n\t * @param {string} text1 Old string to be diffed.\n\t * @param {string} text2 New string to be diffed.\n\t * @param {Int} cursor_pos Expected edit position in text1 (optional)\n\t * @return {Array} Array of diff tuples.\n\t */\n\tfunction diff_main(text1, text2, cursor_pos) {\n\t // Check for equality (speedup).\n\t if (text1 == text2) {\n\t if (text1) {\n\t return [[DIFF_EQUAL, text1]];\n\t }\n\t return [];\n\t }\n\t\n\t // Check cursor_pos within bounds\n\t if (cursor_pos < 0 || text1.length < cursor_pos) {\n\t cursor_pos = null;\n\t }\n\t\n\t // Trim off common prefix (speedup).\n\t var commonlength = diff_commonPrefix(text1, text2);\n\t var commonprefix = text1.substring(0, commonlength);\n\t text1 = text1.substring(commonlength);\n\t text2 = text2.substring(commonlength);\n\t\n\t // Trim off common suffix (speedup).\n\t commonlength = diff_commonSuffix(text1, text2);\n\t var commonsuffix = text1.substring(text1.length - commonlength);\n\t text1 = text1.substring(0, text1.length - commonlength);\n\t text2 = text2.substring(0, text2.length - commonlength);\n\t\n\t // Compute the diff on the middle block.\n\t var diffs = diff_compute_(text1, text2);\n\t\n\t // Restore the prefix and suffix.\n\t if (commonprefix) {\n\t diffs.unshift([DIFF_EQUAL, commonprefix]);\n\t }\n\t if (commonsuffix) {\n\t diffs.push([DIFF_EQUAL, commonsuffix]);\n\t }\n\t diff_cleanupMerge(diffs);\n\t if (cursor_pos != null) {\n\t diffs = fix_cursor(diffs, cursor_pos);\n\t }\n\t return diffs;\n\t};\n\t\n\t\n\t/**\n\t * Find the differences between two texts. Assumes that the texts do not\n\t * have any common prefix or suffix.\n\t * @param {string} text1 Old string to be diffed.\n\t * @param {string} text2 New string to be diffed.\n\t * @return {Array} Array of diff tuples.\n\t */\n\tfunction diff_compute_(text1, text2) {\n\t var diffs;\n\t\n\t if (!text1) {\n\t // Just add some text (speedup).\n\t return [[DIFF_INSERT, text2]];\n\t }\n\t\n\t if (!text2) {\n\t // Just delete some text (speedup).\n\t return [[DIFF_DELETE, text1]];\n\t }\n\t\n\t var longtext = text1.length > text2.length ? text1 : text2;\n\t var shorttext = text1.length > text2.length ? text2 : text1;\n\t var i = longtext.indexOf(shorttext);\n\t if (i != -1) {\n\t // Shorter text is inside the longer text (speedup).\n\t diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n\t [DIFF_EQUAL, shorttext],\n\t [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n\t // Swap insertions for deletions if diff is reversed.\n\t if (text1.length > text2.length) {\n\t diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n\t }\n\t return diffs;\n\t }\n\t\n\t if (shorttext.length == 1) {\n\t // Single character string.\n\t // After the previous speedup, the character can't be an equality.\n\t return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n\t }\n\t\n\t // Check to see if the problem can be split in two.\n\t var hm = diff_halfMatch_(text1, text2);\n\t if (hm) {\n\t // A half-match was found, sort out the return data.\n\t var text1_a = hm[0];\n\t var text1_b = hm[1];\n\t var text2_a = hm[2];\n\t var text2_b = hm[3];\n\t var mid_common = hm[4];\n\t // Send both pairs off for separate processing.\n\t var diffs_a = diff_main(text1_a, text2_a);\n\t var diffs_b = diff_main(text1_b, text2_b);\n\t // Merge the results.\n\t return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n\t }\n\t\n\t return diff_bisect_(text1, text2);\n\t};\n\t\n\t\n\t/**\n\t * Find the 'middle snake' of a diff, split the problem in two\n\t * and return the recursively constructed diff.\n\t * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n\t * @param {string} text1 Old string to be diffed.\n\t * @param {string} text2 New string to be diffed.\n\t * @return {Array} Array of diff tuples.\n\t * @private\n\t */\n\tfunction diff_bisect_(text1, text2) {\n\t // Cache the text lengths to prevent multiple calls.\n\t var text1_length = text1.length;\n\t var text2_length = text2.length;\n\t var max_d = Math.ceil((text1_length + text2_length) / 2);\n\t var v_offset = max_d;\n\t var v_length = 2 * max_d;\n\t var v1 = new Array(v_length);\n\t var v2 = new Array(v_length);\n\t // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n\t // integers and undefined.\n\t for (var x = 0; x < v_length; x++) {\n\t v1[x] = -1;\n\t v2[x] = -1;\n\t }\n\t v1[v_offset + 1] = 0;\n\t v2[v_offset + 1] = 0;\n\t var delta = text1_length - text2_length;\n\t // If the total number of characters is odd, then the front path will collide\n\t // with the reverse path.\n\t var front = (delta % 2 != 0);\n\t // Offsets for start and end of k loop.\n\t // Prevents mapping of space beyond the grid.\n\t var k1start = 0;\n\t var k1end = 0;\n\t var k2start = 0;\n\t var k2end = 0;\n\t for (var d = 0; d < max_d; d++) {\n\t // Walk the front path one step.\n\t for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n\t var k1_offset = v_offset + k1;\n\t var x1;\n\t if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n\t x1 = v1[k1_offset + 1];\n\t } else {\n\t x1 = v1[k1_offset - 1] + 1;\n\t }\n\t var y1 = x1 - k1;\n\t while (x1 < text1_length && y1 < text2_length &&\n\t text1.charAt(x1) == text2.charAt(y1)) {\n\t x1++;\n\t y1++;\n\t }\n\t v1[k1_offset] = x1;\n\t if (x1 > text1_length) {\n\t // Ran off the right of the graph.\n\t k1end += 2;\n\t } else if (y1 > text2_length) {\n\t // Ran off the bottom of the graph.\n\t k1start += 2;\n\t } else if (front) {\n\t var k2_offset = v_offset + delta - k1;\n\t if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n\t // Mirror x2 onto top-left coordinate system.\n\t var x2 = text1_length - v2[k2_offset];\n\t if (x1 >= x2) {\n\t // Overlap detected.\n\t return diff_bisectSplit_(text1, text2, x1, y1);\n\t }\n\t }\n\t }\n\t }\n\t\n\t // Walk the reverse path one step.\n\t for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n\t var k2_offset = v_offset + k2;\n\t var x2;\n\t if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n\t x2 = v2[k2_offset + 1];\n\t } else {\n\t x2 = v2[k2_offset - 1] + 1;\n\t }\n\t var y2 = x2 - k2;\n\t while (x2 < text1_length && y2 < text2_length &&\n\t text1.charAt(text1_length - x2 - 1) ==\n\t text2.charAt(text2_length - y2 - 1)) {\n\t x2++;\n\t y2++;\n\t }\n\t v2[k2_offset] = x2;\n\t if (x2 > text1_length) {\n\t // Ran off the left of the graph.\n\t k2end += 2;\n\t } else if (y2 > text2_length) {\n\t // Ran off the top of the graph.\n\t k2start += 2;\n\t } else if (!front) {\n\t var k1_offset = v_offset + delta - k2;\n\t if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n\t var x1 = v1[k1_offset];\n\t var y1 = v_offset + x1 - k1_offset;\n\t // Mirror x2 onto top-left coordinate system.\n\t x2 = text1_length - x2;\n\t if (x1 >= x2) {\n\t // Overlap detected.\n\t return diff_bisectSplit_(text1, text2, x1, y1);\n\t }\n\t }\n\t }\n\t }\n\t }\n\t // Diff took too long and hit the deadline or\n\t // number of diffs equals number of characters, no commonality at all.\n\t return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n\t};\n\t\n\t\n\t/**\n\t * Given the location of the 'middle snake', split the diff in two parts\n\t * and recurse.\n\t * @param {string} text1 Old string to be diffed.\n\t * @param {string} text2 New string to be diffed.\n\t * @param {number} x Index of split point in text1.\n\t * @param {number} y Index of split point in text2.\n\t * @return {Array} Array of diff tuples.\n\t */\n\tfunction diff_bisectSplit_(text1, text2, x, y) {\n\t var text1a = text1.substring(0, x);\n\t var text2a = text2.substring(0, y);\n\t var text1b = text1.substring(x);\n\t var text2b = text2.substring(y);\n\t\n\t // Compute both diffs serially.\n\t var diffs = diff_main(text1a, text2a);\n\t var diffsb = diff_main(text1b, text2b);\n\t\n\t return diffs.concat(diffsb);\n\t};\n\t\n\t\n\t/**\n\t * Determine the common prefix of two strings.\n\t * @param {string} text1 First string.\n\t * @param {string} text2 Second string.\n\t * @return {number} The number of characters common to the start of each\n\t * string.\n\t */\n\tfunction diff_commonPrefix(text1, text2) {\n\t // Quick check for common null cases.\n\t if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n\t return 0;\n\t }\n\t // Binary search.\n\t // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\t var pointermin = 0;\n\t var pointermax = Math.min(text1.length, text2.length);\n\t var pointermid = pointermax;\n\t var pointerstart = 0;\n\t while (pointermin < pointermid) {\n\t if (text1.substring(pointerstart, pointermid) ==\n\t text2.substring(pointerstart, pointermid)) {\n\t pointermin = pointermid;\n\t pointerstart = pointermin;\n\t } else {\n\t pointermax = pointermid;\n\t }\n\t pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n\t }\n\t return pointermid;\n\t};\n\t\n\t\n\t/**\n\t * Determine the common suffix of two strings.\n\t * @param {string} text1 First string.\n\t * @param {string} text2 Second string.\n\t * @return {number} The number of characters common to the end of each string.\n\t */\n\tfunction diff_commonSuffix(text1, text2) {\n\t // Quick check for common null cases.\n\t if (!text1 || !text2 ||\n\t text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n\t return 0;\n\t }\n\t // Binary search.\n\t // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\t var pointermin = 0;\n\t var pointermax = Math.min(text1.length, text2.length);\n\t var pointermid = pointermax;\n\t var pointerend = 0;\n\t while (pointermin < pointermid) {\n\t if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n\t text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n\t pointermin = pointermid;\n\t pointerend = pointermin;\n\t } else {\n\t pointermax = pointermid;\n\t }\n\t pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n\t }\n\t return pointermid;\n\t};\n\t\n\t\n\t/**\n\t * Do the two texts share a substring which is at least half the length of the\n\t * longer text?\n\t * This speedup can produce non-minimal diffs.\n\t * @param {string} text1 First string.\n\t * @param {string} text2 Second string.\n\t * @return {Array.<string>} Five element Array, containing the prefix of\n\t * text1, the suffix of text1, the prefix of text2, the suffix of\n\t * text2 and the common middle. Or null if there was no match.\n\t */\n\tfunction diff_halfMatch_(text1, text2) {\n\t var longtext = text1.length > text2.length ? text1 : text2;\n\t var shorttext = text1.length > text2.length ? text2 : text1;\n\t if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n\t return null; // Pointless.\n\t }\n\t\n\t /**\n\t * Does a substring of shorttext exist within longtext such that the substring\n\t * is at least half the length of longtext?\n\t * Closure, but does not reference any external variables.\n\t * @param {string} longtext Longer string.\n\t * @param {string} shorttext Shorter string.\n\t * @param {number} i Start index of quarter length substring within longtext.\n\t * @return {Array.<string>} Five element Array, containing the prefix of\n\t * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n\t * of shorttext and the common middle. Or null if there was no match.\n\t * @private\n\t */\n\t function diff_halfMatchI_(longtext, shorttext, i) {\n\t // Start with a 1/4 length substring at position i as a seed.\n\t var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n\t var j = -1;\n\t var best_common = '';\n\t var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n\t while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n\t var prefixLength = diff_commonPrefix(longtext.substring(i),\n\t shorttext.substring(j));\n\t var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n\t shorttext.substring(0, j));\n\t if (best_common.length < suffixLength + prefixLength) {\n\t best_common = shorttext.substring(j - suffixLength, j) +\n\t shorttext.substring(j, j + prefixLength);\n\t best_longtext_a = longtext.substring(0, i - suffixLength);\n\t best_longtext_b = longtext.substring(i + prefixLength);\n\t best_shorttext_a = shorttext.substring(0, j - suffixLength);\n\t best_shorttext_b = shorttext.substring(j + prefixLength);\n\t }\n\t }\n\t if (best_common.length * 2 >= longtext.length) {\n\t return [best_longtext_a, best_longtext_b,\n\t best_shorttext_a, best_shorttext_b, best_common];\n\t } else {\n\t return null;\n\t }\n\t }\n\t\n\t // First check if the second quarter is the seed for a half-match.\n\t var hm1 = diff_halfMatchI_(longtext, shorttext,\n\t Math.ceil(longtext.length / 4));\n\t // Check again based on the third quarter.\n\t var hm2 = diff_halfMatchI_(longtext, shorttext,\n\t Math.ceil(longtext.length / 2));\n\t var hm;\n\t if (!hm1 && !hm2) {\n\t return null;\n\t } else if (!hm2) {\n\t hm = hm1;\n\t } else if (!hm1) {\n\t hm = hm2;\n\t } else {\n\t // Both matched. Select the longest.\n\t hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n\t }\n\t\n\t // A half-match was found, sort out the return data.\n\t var text1_a, text1_b, text2_a, text2_b;\n\t if (text1.length > text2.length) {\n\t text1_a = hm[0];\n\t text1_b = hm[1];\n\t text2_a = hm[2];\n\t text2_b = hm[3];\n\t } else {\n\t text2_a = hm[0];\n\t text2_b = hm[1];\n\t text1_a = hm[2];\n\t text1_b = hm[3];\n\t }\n\t var mid_common = hm[4];\n\t return [text1_a, text1_b, text2_a, text2_b, mid_common];\n\t};\n\t\n\t\n\t/**\n\t * Reorder and merge like edit sections. Merge equalities.\n\t * Any edit section can move as long as it doesn't cross an equality.\n\t * @param {Array} diffs Array of diff tuples.\n\t */\n\tfunction diff_cleanupMerge(diffs) {\n\t diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n\t var pointer = 0;\n\t var count_delete = 0;\n\t var count_insert = 0;\n\t var text_delete = '';\n\t var text_insert = '';\n\t var commonlength;\n\t while (pointer < diffs.length) {\n\t switch (diffs[pointer][0]) {\n\t case DIFF_INSERT:\n\t count_insert++;\n\t text_insert += diffs[pointer][1];\n\t pointer++;\n\t break;\n\t case DIFF_DELETE:\n\t count_delete++;\n\t text_delete += diffs[pointer][1];\n\t pointer++;\n\t break;\n\t case DIFF_EQUAL:\n\t // Upon reaching an equality, check for prior redundancies.\n\t if (count_delete + count_insert > 1) {\n\t if (count_delete !== 0 && count_insert !== 0) {\n\t // Factor out any common prefixies.\n\t commonlength = diff_commonPrefix(text_insert, text_delete);\n\t if (commonlength !== 0) {\n\t if ((pointer - count_delete - count_insert) > 0 &&\n\t diffs[pointer - count_delete - count_insert - 1][0] ==\n\t DIFF_EQUAL) {\n\t diffs[pointer - count_delete - count_insert - 1][1] +=\n\t text_insert.substring(0, commonlength);\n\t } else {\n\t diffs.splice(0, 0, [DIFF_EQUAL,\n\t text_insert.substring(0, commonlength)]);\n\t pointer++;\n\t }\n\t text_insert = text_insert.substring(commonlength);\n\t text_delete = text_delete.substring(commonlength);\n\t }\n\t // Factor out any common suffixies.\n\t commonlength = diff_commonSuffix(text_insert, text_delete);\n\t if (commonlength !== 0) {\n\t diffs[pointer][1] = text_insert.substring(text_insert.length -\n\t commonlength) + diffs[pointer][1];\n\t text_insert = text_insert.substring(0, text_insert.length -\n\t commonlength);\n\t text_delete = text_delete.substring(0, text_delete.length -\n\t commonlength);\n\t }\n\t }\n\t // Delete the offending records and add the merged ones.\n\t if (count_delete === 0) {\n\t diffs.splice(pointer - count_insert,\n\t count_delete + count_insert, [DIFF_INSERT, text_insert]);\n\t } else if (count_insert === 0) {\n\t diffs.splice(pointer - count_delete,\n\t count_delete + count_insert, [DIFF_DELETE, text_delete]);\n\t } else {\n\t diffs.splice(pointer - count_delete - count_insert,\n\t count_delete + count_insert, [DIFF_DELETE, text_delete],\n\t [DIFF_INSERT, text_insert]);\n\t }\n\t pointer = pointer - count_delete - count_insert +\n\t (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n\t } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n\t // Merge this equality with the previous one.\n\t diffs[pointer - 1][1] += diffs[pointer][1];\n\t diffs.splice(pointer, 1);\n\t } else {\n\t pointer++;\n\t }\n\t count_insert = 0;\n\t count_delete = 0;\n\t text_delete = '';\n\t text_insert = '';\n\t break;\n\t }\n\t }\n\t if (diffs[diffs.length - 1][1] === '') {\n\t diffs.pop(); // Remove the dummy entry at the end.\n\t }\n\t\n\t // Second pass: look for single edits surrounded on both sides by equalities\n\t // which can be shifted sideways to eliminate an equality.\n\t // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n\t var changes = false;\n\t pointer = 1;\n\t // Intentionally ignore the first and last element (don't need checking).\n\t while (pointer < diffs.length - 1) {\n\t if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n\t diffs[pointer + 1][0] == DIFF_EQUAL) {\n\t // This is a single edit surrounded by equalities.\n\t if (diffs[pointer][1].substring(diffs[pointer][1].length -\n\t diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n\t // Shift the edit over the previous equality.\n\t diffs[pointer][1] = diffs[pointer - 1][1] +\n\t diffs[pointer][1].substring(0, diffs[pointer][1].length -\n\t diffs[pointer - 1][1].length);\n\t diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n\t diffs.splice(pointer - 1, 1);\n\t changes = true;\n\t } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n\t diffs[pointer + 1][1]) {\n\t // Shift the edit over the next equality.\n\t diffs[pointer - 1][1] += diffs[pointer + 1][1];\n\t diffs[pointer][1] =\n\t diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n\t diffs[pointer + 1][1];\n\t diffs.splice(pointer + 1, 1);\n\t changes = true;\n\t }\n\t }\n\t pointer++;\n\t }\n\t // If shifts were made, the diff needs reordering and another shift sweep.\n\t if (changes) {\n\t diff_cleanupMerge(diffs);\n\t }\n\t};\n\t\n\t\n\tvar diff = diff_main;\n\tdiff.INSERT = DIFF_INSERT;\n\tdiff.DELETE = DIFF_DELETE;\n\tdiff.EQUAL = DIFF_EQUAL;\n\t\n\tmodule.exports = diff;\n\t\n\t/*\n\t * Modify a diff such that the cursor position points to the start of a change:\n\t * E.g.\n\t * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n\t * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n\t * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n\t * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n\t *\n\t * @param {Array} diffs Array of diff tuples\n\t * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n\t * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n\t */\n\tfunction cursor_normalize_diff (diffs, cursor_pos) {\n\t if (cursor_pos === 0) {\n\t return [DIFF_EQUAL, diffs];\n\t }\n\t for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n\t var d = diffs[i];\n\t if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n\t var next_pos = current_pos + d[1].length;\n\t if (cursor_pos === next_pos) {\n\t return [i + 1, diffs];\n\t } else if (cursor_pos < next_pos) {\n\t // copy to prevent side effects\n\t diffs = diffs.slice();\n\t // split d into two diff changes\n\t var split_pos = cursor_pos - current_pos;\n\t var d_left = [d[0], d[1].slice(0, split_pos)];\n\t var d_right = [d[0], d[1].slice(split_pos)];\n\t diffs.splice(i, 1, d_left, d_right);\n\t return [i + 1, diffs];\n\t } else {\n\t current_pos = next_pos;\n\t }\n\t }\n\t }\n\t throw new Error('cursor_pos is out of bounds!')\n\t}\n\t\n\t/*\n\t * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n\t *\n\t * Case 1)\n\t * Check if a naive shift is possible:\n\t * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n\t * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n\t * Case 2)\n\t * Check if the following shifts are possible:\n\t * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n\t * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n\t * ^ ^\n\t * d d_next\n\t *\n\t * @param {Array} diffs Array of diff tuples\n\t * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n\t * @return {Array} Array of diff tuples\n\t */\n\tfunction fix_cursor (diffs, cursor_pos) {\n\t var norm = cursor_normalize_diff(diffs, cursor_pos);\n\t var ndiffs = norm[1];\n\t var cursor_pointer = norm[0];\n\t var d = ndiffs[cursor_pointer];\n\t var d_next = ndiffs[cursor_pointer + 1];\n\t\n\t if (d == null) {\n\t // Text was deleted from end of original string,\n\t // cursor is now out of bounds in new string\n\t return diffs;\n\t } else if (d[0] !== DIFF_EQUAL) {\n\t // A modification happened at the cursor location.\n\t // This is the expected outcome, so we can return the original diff.\n\t return diffs;\n\t } else {\n\t if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n\t // Case 1)\n\t // It is possible to perform a naive shift\n\t ndiffs.splice(cursor_pointer, 2, d_next, d)\n\t return merge_tuples(ndiffs, cursor_pointer, 2)\n\t } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n\t // Case 2)\n\t // d[1] is a prefix of d_next[1]\n\t // We can assume that d_next[0] !== 0, since d[0] === 0\n\t // Shift edit locations..\n\t ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n\t var suffix = d_next[1].slice(d[1].length);\n\t if (suffix.length > 0) {\n\t ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n\t }\n\t return merge_tuples(ndiffs, cursor_pointer, 3)\n\t } else {\n\t // Not possible to perform any modification\n\t return diffs;\n\t }\n\t }\n\t\n\t}\n\t\n\t/*\n\t * Try to merge tuples with their neigbors in a given range.\n\t * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n\t *\n\t * @param {Array} diffs Array of diff tuples.\n\t * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n\t * @param {Int} length Number of consecutive elements to check.\n\t * @return {Array} Array of merged diff tuples.\n\t */\n\tfunction merge_tuples (diffs, start, length) {\n\t // Check from (start-1) to (start+length).\n\t for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n\t if (i + 1 < diffs.length) {\n\t var left_d = diffs[i];\n\t var right_d = diffs[i+1];\n\t if (left_d[0] === right_d[1]) {\n\t diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n\t }\n\t }\n\t }\n\t return diffs;\n\t}\n\n\n/***/ },\n/* 22 */\n[112, 23, 24],\n/* 23 */\n/***/ function(module, exports) {\n\n\texports = module.exports = typeof Object.keys === 'function'\n\t ? Object.keys : shim;\n\t\n\texports.shim = shim;\n\tfunction shim (obj) {\n\t var keys = [];\n\t for (var key in obj) keys.push(key);\n\t return keys;\n\t}\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\tvar supportsArgumentsClass = (function(){\n\t return Object.prototype.toString.call(arguments)\n\t})() == '[object Arguments]';\n\t\n\texports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\t\n\texports.supported = supported;\n\tfunction supported(object) {\n\t return Object.prototype.toString.call(object) == '[object Arguments]';\n\t};\n\t\n\texports.unsupported = unsupported;\n\tfunction unsupported(object){\n\t return object &&\n\t typeof object == 'object' &&\n\t typeof object.length == 'number' &&\n\t Object.prototype.hasOwnProperty.call(object, 'callee') &&\n\t !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n\t false;\n\t};\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar hasOwn = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\t\n\tvar isArray = function isArray(arr) {\n\t\tif (typeof Array.isArray === 'function') {\n\t\t\treturn Array.isArray(arr);\n\t\t}\n\t\n\t\treturn toStr.call(arr) === '[object Array]';\n\t};\n\t\n\tvar isPlainObject = function isPlainObject(obj) {\n\t\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\t\treturn false;\n\t\t}\n\t\n\t\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\t\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t\t// Not own constructor property must be Object\n\t\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\t\treturn false;\n\t\t}\n\t\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tvar key;\n\t\tfor (key in obj) {/**/}\n\t\n\t\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n\t};\n\t\n\tmodule.exports = function extend() {\n\t\tvar options, name, src, copy, copyIsArray, clone,\n\t\t\ttarget = arguments[0],\n\t\t\ti = 1,\n\t\t\tlength = arguments.length,\n\t\t\tdeep = false;\n\t\n\t\t// Handle a deep copy situation\n\t\tif (typeof target === 'boolean') {\n\t\t\tdeep = target;\n\t\t\ttarget = arguments[1] || {};\n\t\t\t// skip the boolean and the target\n\t\t\ti = 2;\n\t\t} else if ((typeof target !== 'object' && typeof target !== 'function') || target == null) {\n\t\t\ttarget = {};\n\t\t}\n\t\n\t\tfor (; i < length; ++i) {\n\t\t\toptions = arguments[i];\n\t\t\t// Only deal with non-null/undefined values\n\t\t\tif (options != null) {\n\t\t\t\t// Extend the base object\n\t\t\t\tfor (name in options) {\n\t\t\t\t\tsrc = target[name];\n\t\t\t\t\tcopy = options[name];\n\t\n\t\t\t\t\t// Prevent never-ending loop\n\t\t\t\t\tif (target !== copy) {\n\t\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\t\ttarget[name] = extend(deep, clone, copy);\n\t\n\t\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\t\ttarget[name] = copy;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\t// Return the modified object\n\t\treturn target;\n\t};\n\t\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar equal = __webpack_require__(22);\n\tvar extend = __webpack_require__(25);\n\t\n\t\n\tvar lib = {\n\t attributes: {\n\t compose: function (a, b, keepNull) {\n\t if (typeof a !== 'object') a = {};\n\t if (typeof b !== 'object') b = {};\n\t var attributes = extend(true, {}, b);\n\t if (!keepNull) {\n\t attributes = Object.keys(attributes).reduce(function (copy, key) {\n\t if (attributes[key] != null) {\n\t copy[key] = attributes[key];\n\t }\n\t return copy;\n\t }, {});\n\t }\n\t for (var key in a) {\n\t if (a[key] !== undefined && b[key] === undefined) {\n\t attributes[key] = a[key];\n\t }\n\t }\n\t return Object.keys(attributes).length > 0 ? attributes : undefined;\n\t },\n\t\n\t diff: function(a, b) {\n\t if (typeof a !== 'object') a = {};\n\t if (typeof b !== 'object') b = {};\n\t var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n\t if (!equal(a[key], b[key])) {\n\t attributes[key] = b[key] === undefined ? null : b[key];\n\t }\n\t return attributes;\n\t }, {});\n\t return Object.keys(attributes).length > 0 ? attributes : undefined;\n\t },\n\t\n\t transform: function (a, b, priority) {\n\t if (typeof a !== 'object') return b;\n\t if (typeof b !== 'object') return undefined;\n\t if (!priority) return b; // b simply overwrites us without priority\n\t var attributes = Object.keys(b).reduce(function (attributes, key) {\n\t if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n\t return attributes;\n\t }, {});\n\t return Object.keys(attributes).length > 0 ? attributes : undefined;\n\t }\n\t },\n\t\n\t iterator: function (ops) {\n\t return new Iterator(ops);\n\t },\n\t\n\t length: function (op) {\n\t if (typeof op['delete'] === 'number') {\n\t return op['delete'];\n\t } else if (typeof op.retain === 'number') {\n\t return op.retain;\n\t } else {\n\t return typeof op.insert === 'string' ? op.insert.length : 1;\n\t }\n\t }\n\t};\n\t\n\t\n\tfunction Iterator(ops) {\n\t this.ops = ops;\n\t this.index = 0;\n\t this.offset = 0;\n\t};\n\t\n\tIterator.prototype.hasNext = function () {\n\t return this.peekLength() < Infinity;\n\t};\n\t\n\tIterator.prototype.next = function (length) {\n\t if (!length) length = Infinity;\n\t var nextOp = this.ops[this.index];\n\t if (nextOp) {\n\t var offset = this.offset;\n\t var opLength = lib.length(nextOp)\n\t if (length >= opLength - offset) {\n\t length = opLength - offset;\n\t this.index += 1;\n\t this.offset = 0;\n\t } else {\n\t this.offset += length;\n\t }\n\t if (typeof nextOp['delete'] === 'number') {\n\t return { 'delete': length };\n\t } else {\n\t var retOp = {};\n\t if (nextOp.attributes) {\n\t retOp.attributes = nextOp.attributes;\n\t }\n\t if (typeof nextOp.retain === 'number') {\n\t retOp.retain = length;\n\t } else if (typeof nextOp.insert === 'string') {\n\t retOp.insert = nextOp.insert.substr(offset, length);\n\t } else {\n\t // offset should === 0, length should === 1\n\t retOp.insert = nextOp.insert;\n\t }\n\t return retOp;\n\t }\n\t } else {\n\t return { retain: Infinity };\n\t }\n\t};\n\t\n\tIterator.prototype.peek = function () {\n\t return this.ops[this.index];\n\t};\n\t\n\tIterator.prototype.peekLength = function () {\n\t if (this.ops[this.index]) {\n\t // Should never return 0 if our index is being managed correctly\n\t return lib.length(this.ops[this.index]) - this.offset;\n\t } else {\n\t return Infinity;\n\t }\n\t};\n\t\n\tIterator.prototype.peekType = function () {\n\t if (this.ops[this.index]) {\n\t if (typeof this.ops[this.index]['delete'] === 'number') {\n\t return 'delete';\n\t } else if (typeof this.ops[this.index].retain === 'number') {\n\t return 'retain';\n\t } else {\n\t return 'insert';\n\t }\n\t }\n\t return 'retain';\n\t};\n\t\n\t\n\tmodule.exports = lib;\n\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _op = __webpack_require__(26);\n\t\n\tvar _op2 = _interopRequireDefault(_op);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _code = __webpack_require__(28);\n\t\n\tvar _code2 = _interopRequireDefault(_code);\n\t\n\tvar _cursor = __webpack_require__(35);\n\t\n\tvar _cursor2 = _interopRequireDefault(_cursor);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tvar _clone = __webpack_require__(39);\n\t\n\tvar _clone2 = _interopRequireDefault(_clone);\n\t\n\tvar _deepEqual = __webpack_require__(40);\n\t\n\tvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar Editor = function () {\n\t function Editor(scroll) {\n\t _classCallCheck(this, Editor);\n\t\n\t this.scroll = scroll;\n\t this.delta = this.getDelta();\n\t }\n\t\n\t _createClass(Editor, [{\n\t key: 'applyDelta',\n\t value: function applyDelta(delta) {\n\t var _this = this;\n\t\n\t var consumeNextNewline = false;\n\t this.scroll.update();\n\t var scrollLength = this.scroll.length();\n\t this.scroll.batch = true;\n\t delta = normalizeDelta(delta);\n\t delta.reduce(function (index, op) {\n\t var length = op.retain || op.delete || op.insert.length || 1;\n\t var attributes = op.attributes || {};\n\t if (op.insert != null) {\n\t if (typeof op.insert === 'string') {\n\t var text = op.insert;\n\t if (text.endsWith('\\n') && consumeNextNewline) {\n\t consumeNextNewline = false;\n\t text = text.slice(0, -1);\n\t }\n\t if (index >= scrollLength && !text.endsWith('\\n')) {\n\t consumeNextNewline = true;\n\t }\n\t _this.scroll.insertAt(index, text);\n\t\n\t var _scroll$line = _this.scroll.line(index),\n\t _scroll$line2 = _slicedToArray(_scroll$line, 2),\n\t line = _scroll$line2[0],\n\t offset = _scroll$line2[1];\n\t\n\t var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n\t if (line instanceof _block2.default) {\n\t var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n\t _line$descendant2 = _slicedToArray(_line$descendant, 1),\n\t leaf = _line$descendant2[0];\n\t\n\t formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n\t }\n\t attributes = _op2.default.attributes.diff(formats, attributes) || {};\n\t } else if (_typeof(op.insert) === 'object') {\n\t var key = Object.keys(op.insert)[0]; // There should only be one key\n\t if (key == null) return index;\n\t _this.scroll.insertAt(index, key, op.insert[key]);\n\t }\n\t scrollLength += length;\n\t }\n\t Object.keys(attributes).forEach(function (name) {\n\t _this.scroll.formatAt(index, length, name, attributes[name]);\n\t });\n\t return index + length;\n\t }, 0);\n\t delta.reduce(function (index, op) {\n\t if (typeof op.delete === 'number') {\n\t _this.scroll.deleteAt(index, op.delete);\n\t return index;\n\t }\n\t return index + (op.retain || op.insert.length || 1);\n\t }, 0);\n\t this.scroll.batch = false;\n\t this.scroll.optimize();\n\t return this.update(delta);\n\t }\n\t }, {\n\t key: 'deleteText',\n\t value: function deleteText(index, length) {\n\t this.scroll.deleteAt(index, length);\n\t return this.update(new _quillDelta2.default().retain(index).delete(length));\n\t }\n\t }, {\n\t key: 'formatLine',\n\t value: function formatLine(index, length) {\n\t var _this2 = this;\n\t\n\t var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\t\n\t this.scroll.update();\n\t Object.keys(formats).forEach(function (format) {\n\t var lines = _this2.scroll.lines(index, Math.max(length, 1));\n\t var lengthRemaining = length;\n\t lines.forEach(function (line) {\n\t var lineLength = line.length();\n\t if (!(line instanceof _code2.default)) {\n\t line.format(format, formats[format]);\n\t } else {\n\t var codeIndex = index - line.offset(_this2.scroll);\n\t var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n\t line.formatAt(codeIndex, codeLength, format, formats[format]);\n\t }\n\t lengthRemaining -= lineLength;\n\t });\n\t });\n\t this.scroll.optimize();\n\t return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n\t }\n\t }, {\n\t key: 'formatText',\n\t value: function formatText(index, length) {\n\t var _this3 = this;\n\t\n\t var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\t\n\t Object.keys(formats).forEach(function (format) {\n\t _this3.scroll.formatAt(index, length, format, formats[format]);\n\t });\n\t return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n\t }\n\t }, {\n\t key: 'getContents',\n\t value: function getContents(index, length) {\n\t return this.delta.slice(index, index + length);\n\t }\n\t }, {\n\t key: 'getDelta',\n\t value: function getDelta() {\n\t return this.scroll.lines().reduce(function (delta, line) {\n\t return delta.concat(line.delta());\n\t }, new _quillDelta2.default());\n\t }\n\t }, {\n\t key: 'getFormat',\n\t value: function getFormat(index) {\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\t\n\t var lines = [],\n\t leaves = [];\n\t if (length === 0) {\n\t this.scroll.path(index).forEach(function (path) {\n\t var _path = _slicedToArray(path, 1),\n\t blot = _path[0];\n\t\n\t if (blot instanceof _block2.default) {\n\t lines.push(blot);\n\t } else if (blot instanceof _parchment2.default.Leaf) {\n\t leaves.push(blot);\n\t }\n\t });\n\t } else {\n\t lines = this.scroll.lines(index, length);\n\t leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n\t }\n\t var formatsArr = [lines, leaves].map(function (blots) {\n\t if (blots.length === 0) return {};\n\t var formats = (0, _block.bubbleFormats)(blots.shift());\n\t while (Object.keys(formats).length > 0) {\n\t var blot = blots.shift();\n\t if (blot == null) return formats;\n\t formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n\t }\n\t return formats;\n\t });\n\t return _extend2.default.apply(_extend2.default, formatsArr);\n\t }\n\t }, {\n\t key: 'getText',\n\t value: function getText(index, length) {\n\t return this.getContents(index, length).filter(function (op) {\n\t return typeof op.insert === 'string';\n\t }).map(function (op) {\n\t return op.insert;\n\t }).join('');\n\t }\n\t }, {\n\t key: 'insertEmbed',\n\t value: function insertEmbed(index, embed, value) {\n\t this.scroll.insertAt(index, embed, value);\n\t return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n\t }\n\t }, {\n\t key: 'insertText',\n\t value: function insertText(index, text) {\n\t var _this4 = this;\n\t\n\t var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\t\n\t text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\t this.scroll.insertAt(index, text);\n\t Object.keys(formats).forEach(function (format) {\n\t _this4.scroll.formatAt(index, text.length, format, formats[format]);\n\t });\n\t return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n\t }\n\t }, {\n\t key: 'isBlank',\n\t value: function isBlank() {\n\t if (this.scroll.children.length == 0) return true;\n\t if (this.scroll.children.length > 1) return false;\n\t var child = this.scroll.children.head;\n\t return child.length() <= 1 && Object.keys(child.formats()).length == 0;\n\t }\n\t }, {\n\t key: 'removeFormat',\n\t value: function removeFormat(index, length) {\n\t var text = this.getText(index, length);\n\t\n\t var _scroll$line3 = this.scroll.line(index + length),\n\t _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n\t line = _scroll$line4[0],\n\t offset = _scroll$line4[1];\n\t\n\t var suffixLength = 0,\n\t suffix = new _quillDelta2.default();\n\t if (line != null) {\n\t if (!(line instanceof _code2.default)) {\n\t suffixLength = line.length() - offset;\n\t } else {\n\t suffixLength = line.newlineIndex(offset) - offset + 1;\n\t }\n\t suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n\t }\n\t var contents = this.getContents(index, length + suffixLength);\n\t var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n\t var delta = new _quillDelta2.default().retain(index).concat(diff);\n\t return this.applyDelta(delta);\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update(change) {\n\t var _this5 = this;\n\t\n\t var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\t\n\t var oldDelta = this.delta;\n\t if (mutations.length === 1 && mutations[0].type === 'characterData' && _parchment2.default.find(mutations[0].target)) {\n\t (function () {\n\t // Optimization for character changes\n\t var textBlot = _parchment2.default.find(mutations[0].target);\n\t var formats = (0, _block.bubbleFormats)(textBlot);\n\t var index = textBlot.offset(_this5.scroll);\n\t var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n\t var oldText = new _quillDelta2.default().insert(oldValue);\n\t var newText = new _quillDelta2.default().insert(textBlot.value());\n\t var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n\t change = diffDelta.reduce(function (delta, op) {\n\t if (op.insert) {\n\t return delta.insert(op.insert, formats);\n\t } else {\n\t return delta.push(op);\n\t }\n\t }, new _quillDelta2.default());\n\t _this5.delta = oldDelta.compose(change);\n\t })();\n\t } else {\n\t this.delta = this.getDelta();\n\t if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n\t change = oldDelta.diff(this.delta, cursorIndex);\n\t }\n\t }\n\t return change;\n\t }\n\t }]);\n\t\n\t return Editor;\n\t}();\n\t\n\tfunction combineFormats(formats, combined) {\n\t return Object.keys(combined).reduce(function (merged, name) {\n\t if (formats[name] == null) return merged;\n\t if (combined[name] === formats[name]) {\n\t merged[name] = combined[name];\n\t } else if (Array.isArray(combined[name])) {\n\t if (combined[name].indexOf(formats[name]) < 0) {\n\t merged[name] = combined[name].concat([formats[name]]);\n\t }\n\t } else {\n\t merged[name] = [combined[name], formats[name]];\n\t }\n\t return merged;\n\t }, {});\n\t}\n\t\n\tfunction normalizeDelta(delta) {\n\t return delta.reduce(function (delta, op) {\n\t if (op.insert === 1) {\n\t var attributes = (0, _clone2.default)(op.attributes);\n\t delete attributes['image'];\n\t return delta.insert({ image: op.attributes.image }, attributes);\n\t }\n\t if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n\t op = (0, _clone2.default)(op);\n\t if (op.attributes.list) {\n\t op.attributes.list = 'ordered';\n\t } else {\n\t op.attributes.list = 'bullet';\n\t delete op.attributes.bullet;\n\t }\n\t }\n\t if (typeof op.insert === 'string') {\n\t var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\t return delta.insert(text, op.attributes);\n\t }\n\t return delta.push(op);\n\t }, new _quillDelta2.default());\n\t}\n\t\n\texports.default = Editor;\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.Code = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tvar _text = __webpack_require__(34);\n\t\n\tvar _text2 = _interopRequireDefault(_text);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Code = function (_Inline) {\n\t _inherits(Code, _Inline);\n\t\n\t function Code() {\n\t _classCallCheck(this, Code);\n\t\n\t return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n\t }\n\t\n\t return Code;\n\t}(_inline2.default);\n\t\n\tCode.blotName = 'code';\n\tCode.tagName = 'CODE';\n\t\n\tvar CodeBlock = function (_Block) {\n\t _inherits(CodeBlock, _Block);\n\t\n\t function CodeBlock() {\n\t _classCallCheck(this, CodeBlock);\n\t\n\t return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n\t }\n\t\n\t _createClass(CodeBlock, [{\n\t key: 'delta',\n\t value: function delta() {\n\t var _this3 = this;\n\t\n\t var text = this.domNode.textContent;\n\t if (text.endsWith('\\n')) {\n\t // Should always be true\n\t text = text.slice(0, -1);\n\t }\n\t return text.split('\\n').reduce(function (delta, frag) {\n\t return delta.insert(frag).insert('\\n', _this3.formats());\n\t }, new _quillDelta2.default());\n\t }\n\t }, {\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (name === this.statics.blotName && value) return;\n\t\n\t var _descendant = this.descendant(_text2.default, this.length() - 1),\n\t _descendant2 = _slicedToArray(_descendant, 1),\n\t text = _descendant2[0];\n\t\n\t if (text != null) {\n\t text.deleteAt(text.length() - 1, 1);\n\t }\n\t _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n\t }\n\t }, {\n\t key: 'formatAt',\n\t value: function formatAt(index, length, name, value) {\n\t if (length === 0) return;\n\t if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n\t return;\n\t }\n\t var nextNewline = this.newlineIndex(index);\n\t if (nextNewline < 0 || nextNewline >= index + length) return;\n\t var prevNewline = this.newlineIndex(index, true) + 1;\n\t var isolateLength = nextNewline - prevNewline + 1;\n\t var blot = this.isolate(prevNewline, isolateLength);\n\t var next = blot.next;\n\t blot.format(name, value);\n\t if (next instanceof CodeBlock) {\n\t next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n\t }\n\t }\n\t }, {\n\t key: 'insertAt',\n\t value: function insertAt(index, value, def) {\n\t if (def != null) return;\n\t\n\t var _descendant3 = this.descendant(_text2.default, index),\n\t _descendant4 = _slicedToArray(_descendant3, 2),\n\t text = _descendant4[0],\n\t offset = _descendant4[1];\n\t\n\t text.insertAt(offset, value);\n\t }\n\t }, {\n\t key: 'length',\n\t value: function length() {\n\t var length = this.domNode.textContent.length;\n\t if (!this.domNode.textContent.endsWith('\\n')) {\n\t return length + 1;\n\t }\n\t return length;\n\t }\n\t }, {\n\t key: 'newlineIndex',\n\t value: function newlineIndex(searchIndex) {\n\t var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t if (!reverse) {\n\t var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n\t return offset > -1 ? searchIndex + offset : -1;\n\t } else {\n\t return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n\t }\n\t }\n\t }, {\n\t key: 'optimize',\n\t value: function optimize() {\n\t if (!this.domNode.textContent.endsWith('\\n')) {\n\t this.appendChild(_parchment2.default.create('text', '\\n'));\n\t }\n\t _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this);\n\t var next = this.next;\n\t if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n\t next.optimize();\n\t next.moveChildren(this);\n\t next.remove();\n\t }\n\t }\n\t }, {\n\t key: 'replace',\n\t value: function replace(target) {\n\t _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n\t [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n\t var blot = _parchment2.default.find(node);\n\t if (blot == null) {\n\t node.parentNode.removeChild(node);\n\t } else if (blot instanceof _parchment2.default.Embed) {\n\t blot.remove();\n\t } else {\n\t blot.unwrap();\n\t }\n\t });\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n\t domNode.setAttribute('spellcheck', false);\n\t return domNode;\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats() {\n\t return true;\n\t }\n\t }]);\n\t\n\t return CodeBlock;\n\t}(_block2.default);\n\t\n\tCodeBlock.blotName = 'code-block';\n\tCodeBlock.tagName = 'PRE';\n\tCodeBlock.TAB = ' ';\n\t\n\texports.Code = Code;\n\texports.default = CodeBlock;\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _break = __webpack_require__(31);\n\t\n\tvar _break2 = _interopRequireDefault(_break);\n\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tvar _text = __webpack_require__(34);\n\t\n\tvar _text2 = _interopRequireDefault(_text);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar NEWLINE_LENGTH = 1;\n\t\n\tvar BlockEmbed = function (_Embed) {\n\t _inherits(BlockEmbed, _Embed);\n\t\n\t function BlockEmbed() {\n\t _classCallCheck(this, BlockEmbed);\n\t\n\t return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n\t }\n\t\n\t _createClass(BlockEmbed, [{\n\t key: 'attach',\n\t value: function attach() {\n\t _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n\t this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n\t }\n\t }, {\n\t key: 'delta',\n\t value: function delta() {\n\t return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n\t }\n\t }, {\n\t key: 'format',\n\t value: function format(name, value) {\n\t var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n\t if (attribute != null) {\n\t this.attributes.attribute(attribute, value);\n\t }\n\t }\n\t }, {\n\t key: 'formatAt',\n\t value: function formatAt(index, length, name, value) {\n\t this.format(name, value);\n\t }\n\t }, {\n\t key: 'insertAt',\n\t value: function insertAt(index, value, def) {\n\t if (typeof value === 'string' && value.endsWith('\\n')) {\n\t var block = _parchment2.default.create(Block.blotName);\n\t this.parent.insertBefore(block, index === 0 ? this : this.next);\n\t block.insertAt(0, value.slice(0, -1));\n\t } else {\n\t _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n\t }\n\t }\n\t }]);\n\t\n\t return BlockEmbed;\n\t}(_embed2.default);\n\t\n\tBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n\t// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\t\n\t\n\tvar Block = function (_Parchment$Block) {\n\t _inherits(Block, _Parchment$Block);\n\t\n\t function Block(domNode) {\n\t _classCallCheck(this, Block);\n\t\n\t var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\t\n\t _this2.cache = {};\n\t return _this2;\n\t }\n\t\n\t _createClass(Block, [{\n\t key: 'delta',\n\t value: function delta() {\n\t if (this.cache.delta == null) {\n\t this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n\t if (leaf.length() === 0) {\n\t return delta;\n\t } else {\n\t return delta.insert(leaf.value(), bubbleFormats(leaf));\n\t }\n\t }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n\t }\n\t return this.cache.delta;\n\t }\n\t }, {\n\t key: 'deleteAt',\n\t value: function deleteAt(index, length) {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'formatAt',\n\t value: function formatAt(index, length, name, value) {\n\t if (length <= 0) return;\n\t if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n\t if (index + length === this.length()) {\n\t this.format(name, value);\n\t }\n\t } else {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n\t }\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'insertAt',\n\t value: function insertAt(index, value, def) {\n\t if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n\t if (value.length === 0) return;\n\t var lines = value.split('\\n');\n\t var text = lines.shift();\n\t if (text.length > 0) {\n\t if (index < this.length() - 1 || this.children.tail == null) {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n\t } else {\n\t this.children.tail.insertAt(this.children.tail.length(), text);\n\t }\n\t this.cache = {};\n\t }\n\t var block = this;\n\t lines.reduce(function (index, line) {\n\t block = block.split(index, true);\n\t block.insertAt(0, line);\n\t return line.length;\n\t }, index + text.length);\n\t }\n\t }, {\n\t key: 'insertBefore',\n\t value: function insertBefore(blot, ref) {\n\t var head = this.children.head;\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n\t if (head instanceof _break2.default) {\n\t head.remove();\n\t }\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'length',\n\t value: function length() {\n\t if (this.cache.length == null) {\n\t this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n\t }\n\t return this.cache.length;\n\t }\n\t }, {\n\t key: 'moveChildren',\n\t value: function moveChildren(target, ref) {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'optimize',\n\t value: function optimize() {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this);\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'path',\n\t value: function path(index) {\n\t return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n\t }\n\t }, {\n\t key: 'removeChild',\n\t value: function removeChild(child) {\n\t _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n\t this.cache = {};\n\t }\n\t }, {\n\t key: 'split',\n\t value: function split(index) {\n\t var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n\t var clone = this.clone();\n\t if (index === 0) {\n\t this.parent.insertBefore(clone, this);\n\t return this;\n\t } else {\n\t this.parent.insertBefore(clone, this.next);\n\t return clone;\n\t }\n\t } else {\n\t var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n\t this.cache = {};\n\t return next;\n\t }\n\t }\n\t }]);\n\t\n\t return Block;\n\t}(_parchment2.default.Block);\n\t\n\tBlock.blotName = 'block';\n\tBlock.tagName = 'P';\n\tBlock.defaultChild = 'break';\n\tBlock.allowedChildren = [_inline2.default, _embed2.default, _text2.default];\n\t\n\tfunction bubbleFormats(blot) {\n\t var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t if (blot == null) return formats;\n\t if (typeof blot.formats === 'function') {\n\t formats = (0, _extend2.default)(formats, blot.formats());\n\t }\n\t if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n\t return formats;\n\t }\n\t return bubbleFormats(blot.parent, formats);\n\t}\n\t\n\texports.bubbleFormats = bubbleFormats;\n\texports.BlockEmbed = BlockEmbed;\n\texports.default = Block;\n\n/***/ },\n/* 30 */\n25,\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Break = function (_Embed) {\n\t _inherits(Break, _Embed);\n\t\n\t function Break() {\n\t _classCallCheck(this, Break);\n\t\n\t return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Break, [{\n\t key: 'insertInto',\n\t value: function insertInto(parent, ref) {\n\t if (parent.children.length === 0) {\n\t _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n\t } else {\n\t this.remove();\n\t }\n\t }\n\t }, {\n\t key: 'length',\n\t value: function length() {\n\t return 0;\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value() {\n\t return '';\n\t }\n\t }], [{\n\t key: 'value',\n\t value: function value() {\n\t return undefined;\n\t }\n\t }]);\n\t\n\t return Break;\n\t}(_embed2.default);\n\t\n\tBreak.blotName = 'break';\n\tBreak.tagName = 'BR';\n\t\n\texports.default = Break;\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Embed = function (_Parchment$Embed) {\n\t _inherits(Embed, _Parchment$Embed);\n\t\n\t function Embed() {\n\t _classCallCheck(this, Embed);\n\t\n\t return _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).apply(this, arguments));\n\t }\n\t\n\t return Embed;\n\t}(_parchment2.default.Embed);\n\t\n\texports.default = Embed;\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _text = __webpack_require__(34);\n\t\n\tvar _text2 = _interopRequireDefault(_text);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Inline = function (_Parchment$Inline) {\n\t _inherits(Inline, _Parchment$Inline);\n\t\n\t function Inline() {\n\t _classCallCheck(this, Inline);\n\t\n\t return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Inline, [{\n\t key: 'formatAt',\n\t value: function formatAt(index, length, name, value) {\n\t if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n\t var blot = this.isolate(index, length);\n\t if (value) {\n\t blot.wrap(name, value);\n\t }\n\t } else {\n\t _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n\t }\n\t }\n\t }, {\n\t key: 'optimize',\n\t value: function optimize() {\n\t _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this);\n\t if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n\t var parent = this.parent.isolate(this.offset(), this.length());\n\t this.moveChildren(parent);\n\t parent.wrap(this);\n\t }\n\t }\n\t }], [{\n\t key: 'compare',\n\t value: function compare(self, other) {\n\t var selfIndex = Inline.order.indexOf(self);\n\t var otherIndex = Inline.order.indexOf(other);\n\t if (selfIndex >= 0 || otherIndex >= 0) {\n\t return selfIndex - otherIndex;\n\t } else if (self === other) {\n\t return 0;\n\t } else if (self < other) {\n\t return -1;\n\t } else {\n\t return 1;\n\t }\n\t }\n\t }]);\n\t\n\t return Inline;\n\t}(_parchment2.default.Inline);\n\t\n\tInline.allowedChildren = [Inline, _embed2.default, _text2.default];\n\t// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\tInline.order = ['cursor', 'inline', // Must be lower\n\t'code', 'underline', 'strike', 'italic', 'bold', 'script', 'link' // Must be higher\n\t];\n\t\n\texports.default = Inline;\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar TextBlot = function (_Parchment$Text) {\n\t _inherits(TextBlot, _Parchment$Text);\n\t\n\t function TextBlot() {\n\t _classCallCheck(this, TextBlot);\n\t\n\t return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n\t }\n\t\n\t return TextBlot;\n\t}(_parchment2.default.Text);\n\t\n\texports.default = TextBlot;\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _text = __webpack_require__(34);\n\t\n\tvar _text2 = _interopRequireDefault(_text);\n\t\n\tvar _emitter = __webpack_require__(36);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Cursor = function (_Embed) {\n\t _inherits(Cursor, _Embed);\n\t\n\t _createClass(Cursor, null, [{\n\t key: 'value',\n\t value: function value() {\n\t return undefined;\n\t }\n\t }]);\n\t\n\t function Cursor(domNode, selection) {\n\t _classCallCheck(this, Cursor);\n\t\n\t var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\t\n\t _this.selection = selection;\n\t _this.textNode = document.createTextNode(Cursor.CONTENTS);\n\t _this.domNode.appendChild(_this.textNode);\n\t _this._length = 0;\n\t return _this;\n\t }\n\t\n\t _createClass(Cursor, [{\n\t key: 'detach',\n\t value: function detach() {\n\t // super.detach() will also clear domNode.__blot\n\t if (this.parent != null) this.parent.removeChild(this);\n\t }\n\t }, {\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (this._length !== 0) {\n\t return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n\t }\n\t var target = this,\n\t index = 0;\n\t while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n\t index += target.offset(target.parent);\n\t target = target.parent;\n\t }\n\t if (target != null) {\n\t this._length = Cursor.CONTENTS.length;\n\t target.optimize();\n\t target.formatAt(index, Cursor.CONTENTS.length, name, value);\n\t this._length = 0;\n\t }\n\t }\n\t }, {\n\t key: 'index',\n\t value: function index(node, offset) {\n\t if (node === this.textNode) return 0;\n\t return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n\t }\n\t }, {\n\t key: 'length',\n\t value: function length() {\n\t return this._length;\n\t }\n\t }, {\n\t key: 'position',\n\t value: function position() {\n\t return [this.textNode, this.textNode.data.length];\n\t }\n\t }, {\n\t key: 'remove',\n\t value: function remove() {\n\t _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n\t this.parent = null;\n\t }\n\t }, {\n\t key: 'restore',\n\t value: function restore() {\n\t var _this2 = this;\n\t\n\t if (this.selection.composing) return;\n\t if (this.parent == null) return;\n\t var textNode = this.textNode;\n\t var range = this.selection.getNativeRange();\n\t var restoreText = void 0,\n\t start = void 0,\n\t end = void 0;\n\t if (range != null && range.start.node === textNode && range.end.node === textNode) {\n\t var _ref = [textNode, range.start.offset, range.end.offset];\n\t restoreText = _ref[0];\n\t start = _ref[1];\n\t end = _ref[2];\n\t }\n\t // Link format will insert text outside of anchor tag\n\t while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n\t this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n\t }\n\t if (this.textNode.data !== Cursor.CONTENTS) {\n\t var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n\t if (this.next instanceof _text2.default) {\n\t restoreText = this.next.domNode;\n\t this.next.insertAt(0, text);\n\t this.textNode.data = Cursor.CONTENTS;\n\t } else {\n\t this.textNode.data = text;\n\t this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n\t this.textNode = document.createTextNode(Cursor.CONTENTS);\n\t this.domNode.appendChild(this.textNode);\n\t }\n\t }\n\t this.remove();\n\t if (start == null) return;\n\t this.selection.emitter.once(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n\t var _map = [start, end].map(function (offset) {\n\t return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n\t });\n\t\n\t var _map2 = _slicedToArray(_map, 2);\n\t\n\t start = _map2[0];\n\t end = _map2[1];\n\t\n\t _this2.selection.setNativeRange(restoreText, start, restoreText, end);\n\t });\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update(mutations) {\n\t var _this3 = this;\n\t\n\t mutations.forEach(function (mutation) {\n\t if (mutation.type === 'characterData' && mutation.target === _this3.textNode) {\n\t _this3.restore();\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value() {\n\t return '';\n\t }\n\t }]);\n\t\n\t return Cursor;\n\t}(_embed2.default);\n\t\n\tCursor.blotName = 'cursor';\n\tCursor.className = 'ql-cursor';\n\tCursor.tagName = 'span';\n\tCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\t\n\t\n\texports.default = Cursor;\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _eventemitter = __webpack_require__(37);\n\t\n\tvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar debug = (0, _logger2.default)('quill:events');\n\t\n\tvar Emitter = function (_EventEmitter) {\n\t _inherits(Emitter, _EventEmitter);\n\t\n\t function Emitter() {\n\t _classCallCheck(this, Emitter);\n\t\n\t var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\t\n\t _this.on('error', debug.error);\n\t return _this;\n\t }\n\t\n\t _createClass(Emitter, [{\n\t key: 'emit',\n\t value: function emit() {\n\t debug.log.apply(debug, arguments);\n\t _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n\t }\n\t }]);\n\t\n\t return Emitter;\n\t}(_eventemitter2.default);\n\t\n\tEmitter.events = {\n\t EDITOR_CHANGE: 'editor-change',\n\t SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n\t SCROLL_OPTIMIZE: 'scroll-optimize',\n\t SCROLL_UPDATE: 'scroll-update',\n\t SELECTION_CHANGE: 'selection-change',\n\t TEXT_CHANGE: 'text-change'\n\t};\n\tEmitter.sources = {\n\t API: 'api',\n\t SILENT: 'silent',\n\t USER: 'user'\n\t};\n\t\n\texports.default = Emitter;\n\n/***/ },\n/* 37 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar has = Object.prototype.hasOwnProperty\n\t , prefix = '~';\n\t\n\t/**\n\t * Constructor to create a storage for our `EE` objects.\n\t * An `Events` instance is a plain object whose properties are event names.\n\t *\n\t * @constructor\n\t * @api private\n\t */\n\tfunction Events() {}\n\t\n\t//\n\t// We try to not inherit from `Object.prototype`. In some engines creating an\n\t// instance in this way is faster than calling `Object.create(null)` directly.\n\t// If `Object.create(null)` is not supported we prefix the event names with a\n\t// character to make sure that the built-in object properties are not\n\t// overridden or used as an attack vector.\n\t//\n\tif (Object.create) {\n\t Events.prototype = Object.create(null);\n\t\n\t //\n\t // This hack is needed because the `__proto__` property is still inherited in\n\t // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n\t //\n\t if (!new Events().__proto__) prefix = false;\n\t}\n\t\n\t/**\n\t * Representation of a single event listener.\n\t *\n\t * @param {Function} fn The listener function.\n\t * @param {Mixed} context The context to invoke the listener with.\n\t * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n\t * @constructor\n\t * @api private\n\t */\n\tfunction EE(fn, context, once) {\n\t this.fn = fn;\n\t this.context = context;\n\t this.once = once || false;\n\t}\n\t\n\t/**\n\t * Minimal `EventEmitter` interface that is molded against the Node.js\n\t * `EventEmitter` interface.\n\t *\n\t * @constructor\n\t * @api public\n\t */\n\tfunction EventEmitter() {\n\t this._events = new Events();\n\t this._eventsCount = 0;\n\t}\n\t\n\t/**\n\t * Return an array listing the events for which the emitter has registered\n\t * listeners.\n\t *\n\t * @returns {Array}\n\t * @api public\n\t */\n\tEventEmitter.prototype.eventNames = function eventNames() {\n\t var names = []\n\t , events\n\t , name;\n\t\n\t if (this._eventsCount === 0) return names;\n\t\n\t for (name in (events = this._events)) {\n\t if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n\t }\n\t\n\t if (Object.getOwnPropertySymbols) {\n\t return names.concat(Object.getOwnPropertySymbols(events));\n\t }\n\t\n\t return names;\n\t};\n\t\n\t/**\n\t * Return the listeners registered for a given event.\n\t *\n\t * @param {String|Symbol} event The event name.\n\t * @param {Boolean} exists Only check if there are listeners.\n\t * @returns {Array|Boolean}\n\t * @api public\n\t */\n\tEventEmitter.prototype.listeners = function listeners(event, exists) {\n\t var evt = prefix ? prefix + event : event\n\t , available = this._events[evt];\n\t\n\t if (exists) return !!available;\n\t if (!available) return [];\n\t if (available.fn) return [available.fn];\n\t\n\t for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n\t ee[i] = available[i].fn;\n\t }\n\t\n\t return ee;\n\t};\n\t\n\t/**\n\t * Calls each of the listeners registered for a given event.\n\t *\n\t * @param {String|Symbol} event The event name.\n\t * @returns {Boolean} `true` if the event had listeners, else `false`.\n\t * @api public\n\t */\n\tEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n\t var evt = prefix ? prefix + event : event;\n\t\n\t if (!this._events[evt]) return false;\n\t\n\t var listeners = this._events[evt]\n\t , len = arguments.length\n\t , args\n\t , i;\n\t\n\t if (listeners.fn) {\n\t if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\t\n\t switch (len) {\n\t case 1: return listeners.fn.call(listeners.context), true;\n\t case 2: return listeners.fn.call(listeners.context, a1), true;\n\t case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n\t case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\t case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\t case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n\t }\n\t\n\t for (i = 1, args = new Array(len -1); i < len; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t\n\t listeners.fn.apply(listeners.context, args);\n\t } else {\n\t var length = listeners.length\n\t , j;\n\t\n\t for (i = 0; i < length; i++) {\n\t if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\t\n\t switch (len) {\n\t case 1: listeners[i].fn.call(listeners[i].context); break;\n\t case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n\t case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n\t case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n\t default:\n\t if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n\t args[j - 1] = arguments[j];\n\t }\n\t\n\t listeners[i].fn.apply(listeners[i].context, args);\n\t }\n\t }\n\t }\n\t\n\t return true;\n\t};\n\t\n\t/**\n\t * Add a listener for a given event.\n\t *\n\t * @param {String|Symbol} event The event name.\n\t * @param {Function} fn The listener function.\n\t * @param {Mixed} [context=this] The context to invoke the listener with.\n\t * @returns {EventEmitter} `this`.\n\t * @api public\n\t */\n\tEventEmitter.prototype.on = function on(event, fn, context) {\n\t var listener = new EE(fn, context || this)\n\t , evt = prefix ? prefix + event : event;\n\t\n\t if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n\t else if (!this._events[evt].fn) this._events[evt].push(listener);\n\t else this._events[evt] = [this._events[evt], listener];\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Add a one-time listener for a given event.\n\t *\n\t * @param {String|Symbol} event The event name.\n\t * @param {Function} fn The listener function.\n\t * @param {Mixed} [context=this] The context to invoke the listener with.\n\t * @returns {EventEmitter} `this`.\n\t * @api public\n\t */\n\tEventEmitter.prototype.once = function once(event, fn, context) {\n\t var listener = new EE(fn, context || this, true)\n\t , evt = prefix ? prefix + event : event;\n\t\n\t if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n\t else if (!this._events[evt].fn) this._events[evt].push(listener);\n\t else this._events[evt] = [this._events[evt], listener];\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove the listeners of a given event.\n\t *\n\t * @param {String|Symbol} event The event name.\n\t * @param {Function} fn Only remove the listeners that match this function.\n\t * @param {Mixed} context Only remove the listeners that have this context.\n\t * @param {Boolean} once Only remove one-time listeners.\n\t * @returns {EventEmitter} `this`.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n\t var evt = prefix ? prefix + event : event;\n\t\n\t if (!this._events[evt]) return this;\n\t if (!fn) {\n\t if (--this._eventsCount === 0) this._events = new Events();\n\t else delete this._events[evt];\n\t return this;\n\t }\n\t\n\t var listeners = this._events[evt];\n\t\n\t if (listeners.fn) {\n\t if (\n\t listeners.fn === fn\n\t && (!once || listeners.once)\n\t && (!context || listeners.context === context)\n\t ) {\n\t if (--this._eventsCount === 0) this._events = new Events();\n\t else delete this._events[evt];\n\t }\n\t } else {\n\t for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n\t if (\n\t listeners[i].fn !== fn\n\t || (once && !listeners[i].once)\n\t || (context && listeners[i].context !== context)\n\t ) {\n\t events.push(listeners[i]);\n\t }\n\t }\n\t\n\t //\n\t // Reset the array, or remove it completely if we have no more listeners.\n\t //\n\t if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n\t else if (--this._eventsCount === 0) this._events = new Events();\n\t else delete this._events[evt];\n\t }\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove all listeners, or those of the specified event.\n\t *\n\t * @param {String|Symbol} [event] The event name.\n\t * @returns {EventEmitter} `this`.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n\t var evt;\n\t\n\t if (event) {\n\t evt = prefix ? prefix + event : event;\n\t if (this._events[evt]) {\n\t if (--this._eventsCount === 0) this._events = new Events();\n\t else delete this._events[evt];\n\t }\n\t } else {\n\t this._events = new Events();\n\t this._eventsCount = 0;\n\t }\n\t\n\t return this;\n\t};\n\t\n\t//\n\t// Alias methods names because people roll like that.\n\t//\n\tEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\tEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\t\n\t//\n\t// This function doesn't apply anymore.\n\t//\n\tEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n\t return this;\n\t};\n\t\n\t//\n\t// Expose the prefix.\n\t//\n\tEventEmitter.prefixed = prefix;\n\t\n\t//\n\t// Allow `EventEmitter` to be imported as module namespace.\n\t//\n\tEventEmitter.EventEmitter = EventEmitter;\n\t\n\t//\n\t// Expose the module.\n\t//\n\tif ('undefined' !== typeof module) {\n\t module.exports = EventEmitter;\n\t}\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar levels = ['error', 'warn', 'log', 'info'];\n\tvar level = 'warn';\n\t\n\tfunction debug(method) {\n\t if (levels.indexOf(method) <= levels.indexOf(level)) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t console[method].apply(console, args); // eslint-disable-line no-console\n\t }\n\t}\n\t\n\tfunction namespace(ns) {\n\t return levels.reduce(function (logger, method) {\n\t logger[method] = debug.bind(console, method, ns);\n\t return logger;\n\t }, {});\n\t}\n\t\n\tdebug.level = namespace.level = function (newLevel) {\n\t level = newLevel;\n\t};\n\t\n\texports.default = namespace;\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\tvar clone = (function() {\n\t'use strict';\n\t\n\tvar nativeMap;\n\ttry {\n\t nativeMap = Map;\n\t} catch(_) {\n\t // maybe a reference error because no `Map`. Give it a dummy value that no\n\t // value will ever be an instanceof.\n\t nativeMap = function() {};\n\t}\n\t\n\tvar nativeSet;\n\ttry {\n\t nativeSet = Set;\n\t} catch(_) {\n\t nativeSet = function() {};\n\t}\n\t\n\tvar nativePromise;\n\ttry {\n\t nativePromise = Promise;\n\t} catch(_) {\n\t nativePromise = function() {};\n\t}\n\t\n\t/**\n\t * Clones (copies) an Object using deep copying.\n\t *\n\t * This function supports circular references by default, but if you are certain\n\t * there are no circular references in your object, you can save some CPU time\n\t * by calling clone(obj, false).\n\t *\n\t * Caution: if `circular` is false and `parent` contains circular references,\n\t * your program may enter an infinite loop and crash.\n\t *\n\t * @param `parent` - the object to be cloned\n\t * @param `circular` - set to true if the object to be cloned may contain\n\t * circular references. (optional - true by default)\n\t * @param `depth` - set to a number if the object is only to be cloned to\n\t * a particular depth. (optional - defaults to Infinity)\n\t * @param `prototype` - sets the prototype to be used when cloning an object.\n\t * (optional - defaults to parent prototype).\n\t*/\n\tfunction clone(parent, circular, depth, prototype) {\n\t var filter;\n\t if (typeof circular === 'object') {\n\t depth = circular.depth;\n\t prototype = circular.prototype;\n\t filter = circular.filter;\n\t circular = circular.circular;\n\t }\n\t // maintain two arrays for circular references, where corresponding parents\n\t // and children have the same index\n\t var allParents = [];\n\t var allChildren = [];\n\t\n\t var useBuffer = typeof Buffer != 'undefined';\n\t\n\t if (typeof circular == 'undefined')\n\t circular = true;\n\t\n\t if (typeof depth == 'undefined')\n\t depth = Infinity;\n\t\n\t // recurse this function so we don't reset allParents and allChildren\n\t function _clone(parent, depth) {\n\t // cloning null always returns null\n\t if (parent === null)\n\t return null;\n\t\n\t if (depth === 0)\n\t return parent;\n\t\n\t var child;\n\t var proto;\n\t if (typeof parent != 'object') {\n\t return parent;\n\t }\n\t\n\t if (parent instanceof nativeMap) {\n\t child = new nativeMap();\n\t } else if (parent instanceof nativeSet) {\n\t child = new nativeSet();\n\t } else if (parent instanceof nativePromise) {\n\t child = new nativePromise(function (resolve, reject) {\n\t parent.then(function(value) {\n\t resolve(_clone(value, depth - 1));\n\t }, function(err) {\n\t reject(_clone(err, depth - 1));\n\t });\n\t });\n\t } else if (clone.__isArray(parent)) {\n\t child = [];\n\t } else if (clone.__isRegExp(parent)) {\n\t child = new RegExp(parent.source, __getRegExpFlags(parent));\n\t if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n\t } else if (clone.__isDate(parent)) {\n\t child = new Date(parent.getTime());\n\t } else if (useBuffer && Buffer.isBuffer(parent)) {\n\t child = new Buffer(parent.length);\n\t parent.copy(child);\n\t return child;\n\t } else {\n\t if (typeof prototype == 'undefined') {\n\t proto = Object.getPrototypeOf(parent);\n\t child = Object.create(proto);\n\t }\n\t else {\n\t child = Object.create(prototype);\n\t proto = prototype;\n\t }\n\t }\n\t\n\t if (circular) {\n\t var index = allParents.indexOf(parent);\n\t\n\t if (index != -1) {\n\t return allChildren[index];\n\t }\n\t allParents.push(parent);\n\t allChildren.push(child);\n\t }\n\t\n\t if (parent instanceof nativeMap) {\n\t var keyIterator = parent.keys();\n\t while(true) {\n\t var next = keyIterator.next();\n\t if (next.done) {\n\t break;\n\t }\n\t var keyChild = _clone(next.value, depth - 1);\n\t var valueChild = _clone(parent.get(next.value), depth - 1);\n\t child.set(keyChild, valueChild);\n\t }\n\t }\n\t if (parent instanceof nativeSet) {\n\t var iterator = parent.keys();\n\t while(true) {\n\t var next = iterator.next();\n\t if (next.done) {\n\t break;\n\t }\n\t var entryChild = _clone(next.value, depth - 1);\n\t child.add(entryChild);\n\t }\n\t }\n\t\n\t for (var i in parent) {\n\t var attrs;\n\t if (proto) {\n\t attrs = Object.getOwnPropertyDescriptor(proto, i);\n\t }\n\t\n\t if (attrs && attrs.set == null) {\n\t continue;\n\t }\n\t child[i] = _clone(parent[i], depth - 1);\n\t }\n\t\n\t if (Object.getOwnPropertySymbols) {\n\t var symbols = Object.getOwnPropertySymbols(parent);\n\t for (var i = 0; i < symbols.length; i++) {\n\t // Don't need to worry about cloning a symbol because it is a primitive,\n\t // like a number or string.\n\t var symbol = symbols[i];\n\t child[symbol] = _clone(parent[symbol], depth - 1);\n\t }\n\t }\n\t\n\t return child;\n\t }\n\t\n\t return _clone(parent, depth);\n\t}\n\t\n\t/**\n\t * Simple flat clone using prototype, accepts only objects, usefull for property\n\t * override on FLAT configuration object (no nested props).\n\t *\n\t * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n\t * works.\n\t */\n\tclone.clonePrototype = function clonePrototype(parent) {\n\t if (parent === null)\n\t return null;\n\t\n\t var c = function () {};\n\t c.prototype = parent;\n\t return new c();\n\t};\n\t\n\t// private utility functions\n\t\n\tfunction __objToStr(o) {\n\t return Object.prototype.toString.call(o);\n\t}\n\tclone.__objToStr = __objToStr;\n\t\n\tfunction __isDate(o) {\n\t return typeof o === 'object' && __objToStr(o) === '[object Date]';\n\t}\n\tclone.__isDate = __isDate;\n\t\n\tfunction __isArray(o) {\n\t return typeof o === 'object' && __objToStr(o) === '[object Array]';\n\t}\n\tclone.__isArray = __isArray;\n\t\n\tfunction __isRegExp(o) {\n\t return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n\t}\n\tclone.__isRegExp = __isRegExp;\n\t\n\tfunction __getRegExpFlags(re) {\n\t var flags = '';\n\t if (re.global) flags += 'g';\n\t if (re.ignoreCase) flags += 'i';\n\t if (re.multiline) flags += 'm';\n\t return flags;\n\t}\n\tclone.__getRegExpFlags = __getRegExpFlags;\n\t\n\treturn clone;\n\t})();\n\t\n\tif (typeof module === 'object' && module.exports) {\n\t module.exports = clone;\n\t}\n\n\n/***/ },\n/* 40 */\n[112, 41, 42],\n/* 41 */\n23,\n/* 42 */\n24,\n/* 43 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar Module = function Module(quill) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t _classCallCheck(this, Module);\n\t\n\t this.quill = quill;\n\t this.options = options;\n\t};\n\t\n\tModule.DEFAULTS = {};\n\t\n\texports.default = Module;\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.Range = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _clone = __webpack_require__(39);\n\t\n\tvar _clone2 = _interopRequireDefault(_clone);\n\t\n\tvar _deepEqual = __webpack_require__(40);\n\t\n\tvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\t\n\tvar _emitter3 = __webpack_require__(36);\n\t\n\tvar _emitter4 = _interopRequireDefault(_emitter3);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar debug = (0, _logger2.default)('quill:selection');\n\t\n\tvar Range = function Range(index) {\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\t\n\t _classCallCheck(this, Range);\n\t\n\t this.index = index;\n\t this.length = length;\n\t};\n\t\n\tvar Selection = function () {\n\t function Selection(scroll, emitter) {\n\t var _this = this;\n\t\n\t _classCallCheck(this, Selection);\n\t\n\t this.emitter = emitter;\n\t this.scroll = scroll;\n\t this.composing = false;\n\t this.root = this.scroll.domNode;\n\t this.root.addEventListener('compositionstart', function () {\n\t _this.composing = true;\n\t });\n\t this.root.addEventListener('compositionend', function () {\n\t _this.composing = false;\n\t });\n\t this.cursor = _parchment2.default.create('cursor', this);\n\t // savedRange is last non-null range\n\t this.lastRange = this.savedRange = new Range(0, 0);\n\t ['keyup', 'mouseup', 'mouseleave', 'touchend', 'touchleave', 'focus', 'blur'].forEach(function (eventName) {\n\t _this.root.addEventListener(eventName, function () {\n\t // When range used to be a selection and user click within the selection,\n\t // the range now being a cursor has not updated yet without setTimeout\n\t setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 100);\n\t });\n\t });\n\t this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n\t if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n\t _this.update(_emitter4.default.sources.SILENT);\n\t }\n\t });\n\t this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n\t var native = _this.getNativeRange();\n\t if (native == null) return;\n\t if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n\t // TODO unclear if this has negative side effects\n\t _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n\t try {\n\t _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n\t } catch (ignored) {}\n\t });\n\t });\n\t this.update(_emitter4.default.sources.SILENT);\n\t }\n\t\n\t _createClass(Selection, [{\n\t key: 'focus',\n\t value: function focus() {\n\t if (this.hasFocus()) return;\n\t var bodyTop = document.body.scrollTop;\n\t this.root.focus();\n\t document.body.scrollTop = bodyTop;\n\t this.setRange(this.savedRange);\n\t }\n\t }, {\n\t key: 'format',\n\t value: function format(_format, value) {\n\t this.scroll.update();\n\t var nativeRange = this.getNativeRange();\n\t if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n\t if (nativeRange.start.node !== this.cursor.textNode) {\n\t var blot = _parchment2.default.find(nativeRange.start.node, false);\n\t if (blot == null) return;\n\t // TODO Give blot ability to not split\n\t if (blot instanceof _parchment2.default.Leaf) {\n\t var after = blot.split(nativeRange.start.offset);\n\t blot.parent.insertBefore(this.cursor, after);\n\t } else {\n\t blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n\t }\n\t this.cursor.attach();\n\t }\n\t this.cursor.format(_format, value);\n\t this.scroll.optimize();\n\t this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n\t this.update();\n\t }\n\t }, {\n\t key: 'getBounds',\n\t value: function getBounds(index) {\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\t\n\t var scrollLength = this.scroll.length();\n\t index = Math.min(index, scrollLength - 1);\n\t length = Math.min(index + length, scrollLength - 1) - index;\n\t var bounds = void 0,\n\t node = void 0,\n\t _scroll$leaf = this.scroll.leaf(index),\n\t _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n\t leaf = _scroll$leaf2[0],\n\t offset = _scroll$leaf2[1];\n\t if (leaf == null) return null;\n\t\n\t var _leaf$position = leaf.position(offset, true);\n\t\n\t var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\t\n\t node = _leaf$position2[0];\n\t offset = _leaf$position2[1];\n\t\n\t var range = document.createRange();\n\t if (length > 0) {\n\t range.setStart(node, offset);\n\t\n\t var _scroll$leaf3 = this.scroll.leaf(index + length);\n\t\n\t var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\t\n\t leaf = _scroll$leaf4[0];\n\t offset = _scroll$leaf4[1];\n\t\n\t if (leaf == null) return null;\n\t\n\t var _leaf$position3 = leaf.position(offset, true);\n\t\n\t var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\t\n\t node = _leaf$position4[0];\n\t offset = _leaf$position4[1];\n\t\n\t range.setEnd(node, offset);\n\t bounds = range.getBoundingClientRect();\n\t } else {\n\t var side = 'left';\n\t var rect = void 0;\n\t if (node instanceof Text) {\n\t if (offset < node.data.length) {\n\t range.setStart(node, offset);\n\t range.setEnd(node, offset + 1);\n\t } else {\n\t range.setStart(node, offset - 1);\n\t range.setEnd(node, offset);\n\t side = 'right';\n\t }\n\t rect = range.getBoundingClientRect();\n\t } else {\n\t rect = leaf.domNode.getBoundingClientRect();\n\t if (offset > 0) side = 'right';\n\t }\n\t bounds = {\n\t height: rect.height,\n\t left: rect[side],\n\t width: 0,\n\t top: rect.top\n\t };\n\t }\n\t var containerBounds = this.root.parentNode.getBoundingClientRect();\n\t return {\n\t left: bounds.left - containerBounds.left,\n\t right: bounds.left + bounds.width - containerBounds.left,\n\t top: bounds.top - containerBounds.top,\n\t bottom: bounds.top + bounds.height - containerBounds.top,\n\t height: bounds.height,\n\t width: bounds.width\n\t };\n\t }\n\t }, {\n\t key: 'getNativeRange',\n\t value: function getNativeRange() {\n\t var selection = document.getSelection();\n\t if (selection == null || selection.rangeCount <= 0) return null;\n\t var nativeRange = selection.getRangeAt(0);\n\t if (nativeRange == null) return null;\n\t if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n\t return null;\n\t }\n\t var range = {\n\t start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n\t end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n\t native: nativeRange\n\t };\n\t [range.start, range.end].forEach(function (position) {\n\t var node = position.node,\n\t offset = position.offset;\n\t while (!(node instanceof Text) && node.childNodes.length > 0) {\n\t if (node.childNodes.length > offset) {\n\t node = node.childNodes[offset];\n\t offset = 0;\n\t } else if (node.childNodes.length === offset) {\n\t node = node.lastChild;\n\t offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n\t } else {\n\t break;\n\t }\n\t }\n\t position.node = node, position.offset = offset;\n\t });\n\t debug.info('getNativeRange', range);\n\t return range;\n\t }\n\t }, {\n\t key: 'getRange',\n\t value: function getRange() {\n\t var _this2 = this;\n\t\n\t var range = this.getNativeRange();\n\t if (range == null) return [null, null];\n\t var positions = [[range.start.node, range.start.offset]];\n\t if (!range.native.collapsed) {\n\t positions.push([range.end.node, range.end.offset]);\n\t }\n\t var indexes = positions.map(function (position) {\n\t var _position = _slicedToArray(position, 2),\n\t node = _position[0],\n\t offset = _position[1];\n\t\n\t var blot = _parchment2.default.find(node, true);\n\t var index = blot.offset(_this2.scroll);\n\t if (offset === 0) {\n\t return index;\n\t } else if (blot instanceof _parchment2.default.Container) {\n\t return index + blot.length();\n\t } else {\n\t return index + blot.index(node, offset);\n\t }\n\t });\n\t var start = Math.min.apply(Math, _toConsumableArray(indexes)),\n\t end = Math.max.apply(Math, _toConsumableArray(indexes));\n\t return [new Range(start, end - start), range];\n\t }\n\t }, {\n\t key: 'hasFocus',\n\t value: function hasFocus() {\n\t return document.activeElement === this.root;\n\t }\n\t }, {\n\t key: 'scrollIntoView',\n\t value: function scrollIntoView() {\n\t var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.lastRange;\n\t\n\t if (range == null) return;\n\t var bounds = this.getBounds(range.index, range.length);\n\t if (bounds == null) return;\n\t if (this.root.offsetHeight < bounds.bottom) {\n\t var _scroll$line = this.scroll.line(Math.min(range.index + range.length, this.scroll.length() - 1)),\n\t _scroll$line2 = _slicedToArray(_scroll$line, 1),\n\t line = _scroll$line2[0];\n\t\n\t this.root.scrollTop = line.domNode.offsetTop + line.domNode.offsetHeight - this.root.offsetHeight;\n\t } else if (bounds.top < 0) {\n\t var _scroll$line3 = this.scroll.line(Math.min(range.index, this.scroll.length() - 1)),\n\t _scroll$line4 = _slicedToArray(_scroll$line3, 1),\n\t _line = _scroll$line4[0];\n\t\n\t this.root.scrollTop = _line.domNode.offsetTop;\n\t }\n\t }\n\t }, {\n\t key: 'setNativeRange',\n\t value: function setNativeRange(startNode, startOffset) {\n\t var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n\t var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n\t var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\t\n\t debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n\t if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n\t return;\n\t }\n\t var selection = document.getSelection();\n\t if (selection == null) return;\n\t if (startNode != null) {\n\t if (!this.hasFocus()) this.root.focus();\n\t var nativeRange = this.getNativeRange();\n\t if (nativeRange == null || force || startNode !== nativeRange.start.node || startOffset !== nativeRange.start.offset || endNode !== nativeRange.end.node || endOffset !== nativeRange.end.offset) {\n\t var range = document.createRange();\n\t range.setStart(startNode, startOffset);\n\t range.setEnd(endNode, endOffset);\n\t selection.removeAllRanges();\n\t selection.addRange(range);\n\t }\n\t } else {\n\t selection.removeAllRanges();\n\t this.root.blur();\n\t document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n\t }\n\t }\n\t }, {\n\t key: 'setRange',\n\t value: function setRange(range) {\n\t var _this3 = this;\n\t\n\t var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\t\n\t if (typeof force === 'string') {\n\t source = force;\n\t force = false;\n\t }\n\t debug.info('setRange', range);\n\t if (range != null) {\n\t (function () {\n\t var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n\t var args = [];\n\t var scrollLength = _this3.scroll.length();\n\t indexes.forEach(function (index, i) {\n\t index = Math.min(scrollLength - 1, index);\n\t var node = void 0,\n\t _scroll$leaf5 = _this3.scroll.leaf(index),\n\t _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n\t leaf = _scroll$leaf6[0],\n\t offset = _scroll$leaf6[1];\n\t var _leaf$position5 = leaf.position(offset, i !== 0);\n\t\n\t var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\t\n\t node = _leaf$position6[0];\n\t offset = _leaf$position6[1];\n\t\n\t args.push(node, offset);\n\t });\n\t if (args.length < 2) {\n\t args = args.concat(args);\n\t }\n\t _this3.setNativeRange.apply(_this3, _toConsumableArray(args).concat([force]));\n\t })();\n\t } else {\n\t this.setNativeRange(null);\n\t }\n\t this.update(source);\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update() {\n\t var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\t\n\t var nativeRange = void 0,\n\t oldRange = this.lastRange;\n\t\n\t var _getRange = this.getRange();\n\t\n\t var _getRange2 = _slicedToArray(_getRange, 2);\n\t\n\t this.lastRange = _getRange2[0];\n\t nativeRange = _getRange2[1];\n\t\n\t if (this.lastRange != null) {\n\t this.savedRange = this.lastRange;\n\t }\n\t if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n\t var _emitter;\n\t\n\t if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n\t this.cursor.restore();\n\t }\n\t var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n\t (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n\t if (source !== _emitter4.default.sources.SILENT) {\n\t var _emitter2;\n\t\n\t (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n\t }\n\t }\n\t }\n\t }]);\n\t\n\t return Selection;\n\t}();\n\t\n\tfunction contains(parent, descendant) {\n\t try {\n\t // Firefox inserts inaccessible nodes around video elements\n\t descendant.parentNode;\n\t } catch (e) {\n\t return false;\n\t }\n\t // IE11 has bug with Text nodes\n\t // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n\t if (descendant instanceof Text) {\n\t descendant = descendant.parentNode;\n\t }\n\t return parent.contains(descendant);\n\t}\n\t\n\texports.Range = Range;\n\texports.default = Selection;\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar Theme = function () {\n\t function Theme(quill, options) {\n\t _classCallCheck(this, Theme);\n\t\n\t this.quill = quill;\n\t this.options = options;\n\t this.modules = {};\n\t }\n\t\n\t _createClass(Theme, [{\n\t key: 'init',\n\t value: function init() {\n\t var _this = this;\n\t\n\t Object.keys(this.options.modules).forEach(function (name) {\n\t if (_this.modules[name] == null) {\n\t _this.addModule(name);\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'addModule',\n\t value: function addModule(name) {\n\t var moduleClass = this.quill.constructor.import('modules/' + name);\n\t this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n\t return this.modules[name];\n\t }\n\t }]);\n\t\n\t return Theme;\n\t}();\n\t\n\tTheme.DEFAULTS = {\n\t modules: {}\n\t};\n\tTheme.themes = {\n\t 'default': Theme\n\t};\n\t\n\texports.default = Theme;\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Container = function (_Parchment$Container) {\n\t _inherits(Container, _Parchment$Container);\n\t\n\t function Container() {\n\t _classCallCheck(this, Container);\n\t\n\t return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n\t }\n\t\n\t return Container;\n\t}(_parchment2.default.Container);\n\t\n\tContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\t\n\texports.default = Container;\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _emitter = __webpack_require__(36);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tvar _break = __webpack_require__(31);\n\t\n\tvar _break2 = _interopRequireDefault(_break);\n\t\n\tvar _container = __webpack_require__(46);\n\t\n\tvar _container2 = _interopRequireDefault(_container);\n\t\n\tvar _code = __webpack_require__(28);\n\t\n\tvar _code2 = _interopRequireDefault(_code);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tfunction isLine(blot) {\n\t return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n\t}\n\t\n\tvar Scroll = function (_Parchment$Scroll) {\n\t _inherits(Scroll, _Parchment$Scroll);\n\t\n\t function Scroll(domNode, config) {\n\t _classCallCheck(this, Scroll);\n\t\n\t var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\t\n\t _this.emitter = config.emitter;\n\t if (Array.isArray(config.whitelist)) {\n\t _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n\t whitelist[format] = true;\n\t return whitelist;\n\t }, {});\n\t }\n\t _this.optimize();\n\t _this.enable();\n\t return _this;\n\t }\n\t\n\t _createClass(Scroll, [{\n\t key: 'deleteAt',\n\t value: function deleteAt(index, length) {\n\t var _line = this.line(index),\n\t _line2 = _slicedToArray(_line, 2),\n\t first = _line2[0],\n\t offset = _line2[1];\n\t\n\t var _line3 = this.line(index + length),\n\t _line4 = _slicedToArray(_line3, 1),\n\t last = _line4[0];\n\t\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n\t if (last != null && first !== last && offset > 0 && !(first instanceof _block.BlockEmbed) && !(last instanceof _block.BlockEmbed)) {\n\t if (last instanceof _code2.default) {\n\t last.deleteAt(last.length() - 1, 1);\n\t }\n\t var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n\t first.moveChildren(last, ref);\n\t first.remove();\n\t }\n\t this.optimize();\n\t }\n\t }, {\n\t key: 'enable',\n\t value: function enable() {\n\t var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\t\n\t this.domNode.setAttribute('contenteditable', enabled);\n\t }\n\t }, {\n\t key: 'formatAt',\n\t value: function formatAt(index, length, format, value) {\n\t if (this.whitelist != null && !this.whitelist[format]) return;\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n\t this.optimize();\n\t }\n\t }, {\n\t key: 'insertAt',\n\t value: function insertAt(index, value, def) {\n\t if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n\t if (index >= this.length()) {\n\t if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n\t var blot = _parchment2.default.create(this.statics.defaultChild);\n\t this.appendChild(blot);\n\t if (def == null && value.endsWith('\\n')) {\n\t value = value.slice(0, -1);\n\t }\n\t blot.insertAt(0, value, def);\n\t } else {\n\t var embed = _parchment2.default.create(value, def);\n\t this.appendChild(embed);\n\t }\n\t } else {\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n\t }\n\t this.optimize();\n\t }\n\t }, {\n\t key: 'insertBefore',\n\t value: function insertBefore(blot, ref) {\n\t if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n\t var wrapper = _parchment2.default.create(this.statics.defaultChild);\n\t wrapper.appendChild(blot);\n\t blot = wrapper;\n\t }\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n\t }\n\t }, {\n\t key: 'leaf',\n\t value: function leaf(index) {\n\t return this.path(index).pop() || [null, -1];\n\t }\n\t }, {\n\t key: 'line',\n\t value: function line(index) {\n\t if (index === this.length()) {\n\t return this.line(index - 1);\n\t }\n\t return this.descendant(isLine, index);\n\t }\n\t }, {\n\t key: 'lines',\n\t value: function lines() {\n\t var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\t var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\t\n\t var getLines = function getLines(blot, index, length) {\n\t var lines = [],\n\t lengthLeft = length;\n\t blot.children.forEachAt(index, length, function (child, index, length) {\n\t if (isLine(child)) {\n\t lines.push(child);\n\t } else if (child instanceof _parchment2.default.Container) {\n\t lines = lines.concat(getLines(child, index, lengthLeft));\n\t }\n\t lengthLeft -= length;\n\t });\n\t return lines;\n\t };\n\t return getLines(this, index, length);\n\t }\n\t }, {\n\t key: 'optimize',\n\t value: function optimize() {\n\t var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\t\n\t if (this.batch === true) return;\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations);\n\t if (mutations.length > 0) {\n\t this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations);\n\t }\n\t }\n\t }, {\n\t key: 'path',\n\t value: function path(index) {\n\t return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update(mutations) {\n\t if (this.batch === true) return;\n\t var source = _emitter2.default.sources.USER;\n\t if (typeof mutations === 'string') {\n\t source = mutations;\n\t }\n\t if (!Array.isArray(mutations)) {\n\t mutations = this.observer.takeRecords();\n\t }\n\t if (mutations.length > 0) {\n\t this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n\t }\n\t _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n\t if (mutations.length > 0) {\n\t this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n\t }\n\t }\n\t }]);\n\t\n\t return Scroll;\n\t}(_parchment2.default.Scroll);\n\t\n\tScroll.blotName = 'scroll';\n\tScroll.className = 'ql-editor';\n\tScroll.tagName = 'DIV';\n\tScroll.defaultChild = 'block';\n\tScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\t\n\texports.default = Scroll;\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tvar _align = __webpack_require__(49);\n\t\n\tvar _background = __webpack_require__(50);\n\t\n\tvar _color = __webpack_require__(51);\n\t\n\tvar _direction = __webpack_require__(52);\n\t\n\tvar _font = __webpack_require__(53);\n\t\n\tvar _size = __webpack_require__(54);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar debug = (0, _logger2.default)('quill:clipboard');\n\t\n\tvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\t\n\tvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n\t memo[attr.keyName] = attr;\n\t return memo;\n\t}, {});\n\t\n\tvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n\t memo[attr.keyName] = attr;\n\t return memo;\n\t}, {});\n\t\n\tvar Clipboard = function (_Module) {\n\t _inherits(Clipboard, _Module);\n\t\n\t function Clipboard(quill, options) {\n\t _classCallCheck(this, Clipboard);\n\t\n\t var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\t\n\t _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n\t _this.container = _this.quill.addContainer('ql-clipboard');\n\t _this.container.setAttribute('contenteditable', true);\n\t _this.container.setAttribute('tabindex', -1);\n\t _this.matchers = [];\n\t CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (pair) {\n\t _this.addMatcher.apply(_this, _toConsumableArray(pair));\n\t });\n\t return _this;\n\t }\n\t\n\t _createClass(Clipboard, [{\n\t key: 'addMatcher',\n\t value: function addMatcher(selector, matcher) {\n\t this.matchers.push([selector, matcher]);\n\t }\n\t }, {\n\t key: 'convert',\n\t value: function convert(html) {\n\t var _this2 = this;\n\t\n\t var DOM_KEY = '__ql-matcher';\n\t if (typeof html === 'string') {\n\t this.container.innerHTML = html;\n\t }\n\t var textMatchers = [],\n\t elementMatchers = [];\n\t this.matchers.forEach(function (pair) {\n\t var _pair = _slicedToArray(pair, 2),\n\t selector = _pair[0],\n\t matcher = _pair[1];\n\t\n\t switch (selector) {\n\t case Node.TEXT_NODE:\n\t textMatchers.push(matcher);\n\t break;\n\t case Node.ELEMENT_NODE:\n\t elementMatchers.push(matcher);\n\t break;\n\t default:\n\t [].forEach.call(_this2.container.querySelectorAll(selector), function (node) {\n\t // TODO use weakmap\n\t node[DOM_KEY] = node[DOM_KEY] || [];\n\t node[DOM_KEY].push(matcher);\n\t });\n\t break;\n\t }\n\t });\n\t var traverse = function traverse(node) {\n\t // Post-order\n\t if (node.nodeType === node.TEXT_NODE) {\n\t return textMatchers.reduce(function (delta, matcher) {\n\t return matcher(node, delta);\n\t }, new _quillDelta2.default());\n\t } else if (node.nodeType === node.ELEMENT_NODE) {\n\t return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n\t var childrenDelta = traverse(childNode);\n\t if (childNode.nodeType === node.ELEMENT_NODE) {\n\t childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n\t return matcher(childNode, childrenDelta);\n\t }, childrenDelta);\n\t childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n\t return matcher(childNode, childrenDelta);\n\t }, childrenDelta);\n\t }\n\t return delta.concat(childrenDelta);\n\t }, new _quillDelta2.default());\n\t } else {\n\t return new _quillDelta2.default();\n\t }\n\t };\n\t var delta = traverse(this.container);\n\t // Remove trailing newline\n\t if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n\t delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n\t }\n\t debug.log('convert', this.container.innerHTML, delta);\n\t this.container.innerHTML = '';\n\t return delta;\n\t }\n\t }, {\n\t key: 'dangerouslyPasteHTML',\n\t value: function dangerouslyPasteHTML(index, html) {\n\t var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\t\n\t if (typeof index === 'string') {\n\t return this.quill.setContents(this.convert(index), html);\n\t } else {\n\t var paste = this.convert(html);\n\t return this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n\t }\n\t }\n\t }, {\n\t key: 'onPaste',\n\t value: function onPaste(e) {\n\t var _this3 = this;\n\t\n\t if (e.defaultPrevented || !this.quill.isEnabled()) return;\n\t var range = this.quill.getSelection();\n\t var delta = new _quillDelta2.default().retain(range.index).delete(range.length);\n\t var bodyTop = document.body.scrollTop;\n\t this.container.focus();\n\t setTimeout(function () {\n\t _this3.quill.selection.update(_quill2.default.sources.SILENT);\n\t delta = delta.concat(_this3.convert());\n\t _this3.quill.updateContents(delta, _quill2.default.sources.USER);\n\t // range.length contributes to delta.length()\n\t _this3.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n\t document.body.scrollTop = bodyTop;\n\t _this3.quill.selection.scrollIntoView();\n\t }, 1);\n\t }\n\t }]);\n\t\n\t return Clipboard;\n\t}(_module2.default);\n\t\n\tClipboard.DEFAULTS = {\n\t matchers: []\n\t};\n\t\n\tfunction computeStyle(node) {\n\t if (node.nodeType !== Node.ELEMENT_NODE) return {};\n\t var DOM_KEY = '__ql-computed-style';\n\t return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n\t}\n\t\n\tfunction deltaEndsWith(delta, text) {\n\t var endText = \"\";\n\t for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n\t var op = delta.ops[i];\n\t if (typeof op.insert !== 'string') break;\n\t endText = op.insert + endText;\n\t }\n\t return endText.slice(-1 * text.length) === text;\n\t}\n\t\n\tfunction isLine(node) {\n\t if (node.childNodes.length === 0) return false; // Exclude embed blocks\n\t var style = computeStyle(node);\n\t return ['block', 'list-item'].indexOf(style.display) > -1;\n\t}\n\t\n\tfunction matchAlias(format, node, delta) {\n\t return delta.compose(new _quillDelta2.default().retain(delta.length(), _defineProperty({}, format, true)));\n\t}\n\t\n\tfunction matchAttributor(node, delta) {\n\t var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n\t var classes = _parchment2.default.Attributor.Class.keys(node);\n\t var styles = _parchment2.default.Attributor.Style.keys(node);\n\t var formats = {};\n\t attributes.concat(classes).concat(styles).forEach(function (name) {\n\t var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n\t if (attr != null) {\n\t formats[attr.attrName] = attr.value(node);\n\t if (formats[attr.attrName]) return;\n\t }\n\t if (ATTRIBUTE_ATTRIBUTORS[name] != null) {\n\t attr = ATTRIBUTE_ATTRIBUTORS[name];\n\t formats[attr.attrName] = attr.value(node);\n\t }\n\t if (STYLE_ATTRIBUTORS[name] != null) {\n\t attr = STYLE_ATTRIBUTORS[name];\n\t formats[attr.attrName] = attr.value(node);\n\t }\n\t });\n\t if (Object.keys(formats).length > 0) {\n\t delta = delta.compose(new _quillDelta2.default().retain(delta.length(), formats));\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchBlot(node, delta) {\n\t var match = _parchment2.default.query(node);\n\t if (match == null) return delta;\n\t if (match.prototype instanceof _parchment2.default.Embed) {\n\t var embed = {};\n\t var value = match.value(node);\n\t if (value != null) {\n\t embed[match.blotName] = value;\n\t delta = new _quillDelta2.default().insert(embed, match.formats(node));\n\t }\n\t } else if (typeof match.formats === 'function') {\n\t var formats = _defineProperty({}, match.blotName, match.formats(node));\n\t delta = delta.compose(new _quillDelta2.default().retain(delta.length(), formats));\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchBreak(node, delta) {\n\t if (!deltaEndsWith(delta, '\\n')) {\n\t delta.insert('\\n');\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchIgnore() {\n\t return new _quillDelta2.default();\n\t}\n\t\n\tfunction matchNewline(node, delta) {\n\t if (isLine(node) && !deltaEndsWith(delta, '\\n')) {\n\t delta.insert('\\n');\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchSpacing(node, delta) {\n\t if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n\t var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n\t if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n\t delta.insert('\\n');\n\t }\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchStyles(node, delta) {\n\t var formats = {};\n\t var style = node.style || {};\n\t if (style.fontWeight && computeStyle(node).fontWeight === 'bold') {\n\t formats.bold = true;\n\t }\n\t if (Object.keys(formats).length > 0) {\n\t delta = delta.compose(new _quillDelta2.default().retain(delta.length(), formats));\n\t }\n\t if (parseFloat(style.textIndent || 0) > 0) {\n\t // Could be 0.5in\n\t delta = new _quillDelta2.default().insert('\\t').concat(delta);\n\t }\n\t return delta;\n\t}\n\t\n\tfunction matchText(node, delta) {\n\t var text = node.data;\n\t // Word represents empty line with <o:p>&nbsp;</o:p>\n\t if (node.parentNode.tagName === 'O:P') {\n\t return delta.insert(text.trim());\n\t }\n\t if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n\t // eslint-disable-next-line func-style\n\t var replacer = function replacer(collapse, match) {\n\t match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n\t return match.length < 1 && collapse ? ' ' : match;\n\t };\n\t text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n\t text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n\t if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n\t text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n\t }\n\t if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n\t text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n\t }\n\t }\n\t return delta.insert(text);\n\t}\n\t\n\texports.default = Clipboard;\n\texports.matchAttributor = matchAttributor;\n\texports.matchBlot = matchBlot;\n\texports.matchNewline = matchNewline;\n\texports.matchSpacing = matchSpacing;\n\texports.matchText = matchText;\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar config = {\n\t scope: _parchment2.default.Scope.BLOCK,\n\t whitelist: ['right', 'center', 'justify']\n\t};\n\t\n\tvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\n\tvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\n\tvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\t\n\texports.AlignAttribute = AlignAttribute;\n\texports.AlignClass = AlignClass;\n\texports.AlignStyle = AlignStyle;\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.BackgroundStyle = exports.BackgroundClass = undefined;\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _color = __webpack_require__(51);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n\t scope: _parchment2.default.Scope.INLINE\n\t});\n\tvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n\t scope: _parchment2.default.Scope.INLINE\n\t});\n\t\n\texports.BackgroundClass = BackgroundClass;\n\texports.BackgroundStyle = BackgroundStyle;\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ColorAttributor = function (_Parchment$Attributor) {\n\t _inherits(ColorAttributor, _Parchment$Attributor);\n\t\n\t function ColorAttributor() {\n\t _classCallCheck(this, ColorAttributor);\n\t\n\t return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n\t }\n\t\n\t _createClass(ColorAttributor, [{\n\t key: 'value',\n\t value: function value(domNode) {\n\t var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n\t if (!value.startsWith('rgb(')) return value;\n\t value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n\t return '#' + value.split(',').map(function (component) {\n\t return ('00' + parseInt(component).toString(16)).slice(-2);\n\t }).join('');\n\t }\n\t }]);\n\t\n\t return ColorAttributor;\n\t}(_parchment2.default.Attributor.Style);\n\t\n\tvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n\t scope: _parchment2.default.Scope.INLINE\n\t});\n\tvar ColorStyle = new ColorAttributor('color', 'color', {\n\t scope: _parchment2.default.Scope.INLINE\n\t});\n\t\n\texports.ColorAttributor = ColorAttributor;\n\texports.ColorClass = ColorClass;\n\texports.ColorStyle = ColorStyle;\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar config = {\n\t scope: _parchment2.default.Scope.BLOCK,\n\t whitelist: ['rtl']\n\t};\n\t\n\tvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\n\tvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\n\tvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\t\n\texports.DirectionAttribute = DirectionAttribute;\n\texports.DirectionClass = DirectionClass;\n\texports.DirectionStyle = DirectionStyle;\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.FontClass = exports.FontStyle = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar config = {\n\t scope: _parchment2.default.Scope.INLINE,\n\t whitelist: ['serif', 'monospace']\n\t};\n\t\n\tvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\t\n\tvar FontStyleAttributor = function (_Parchment$Attributor) {\n\t _inherits(FontStyleAttributor, _Parchment$Attributor);\n\t\n\t function FontStyleAttributor() {\n\t _classCallCheck(this, FontStyleAttributor);\n\t\n\t return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n\t }\n\t\n\t _createClass(FontStyleAttributor, [{\n\t key: 'value',\n\t value: function value(node) {\n\t return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n\t }\n\t }]);\n\t\n\t return FontStyleAttributor;\n\t}(_parchment2.default.Attributor.Style);\n\t\n\tvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\t\n\texports.FontStyle = FontStyle;\n\texports.FontClass = FontClass;\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.SizeStyle = exports.SizeClass = undefined;\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n\t scope: _parchment2.default.Scope.INLINE,\n\t whitelist: ['small', 'large', 'huge']\n\t});\n\tvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n\t scope: _parchment2.default.Scope.INLINE,\n\t whitelist: ['10px', '18px', '32px']\n\t});\n\t\n\texports.SizeClass = SizeClass;\n\texports.SizeStyle = SizeStyle;\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.getLastChangeIndex = exports.default = undefined;\n\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar History = function (_Module) {\n\t _inherits(History, _Module);\n\t\n\t function History(quill, options) {\n\t _classCallCheck(this, History);\n\t\n\t var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\t\n\t _this.lastRecorded = 0;\n\t _this.ignoreChange = false;\n\t _this.clear();\n\t _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n\t if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n\t if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n\t _this.record(delta, oldDelta);\n\t } else {\n\t _this.transform(delta);\n\t }\n\t });\n\t _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n\t _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n\t if (/Win/i.test(navigator.platform)) {\n\t _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n\t }\n\t return _this;\n\t }\n\t\n\t _createClass(History, [{\n\t key: 'change',\n\t value: function change(source, dest) {\n\t if (this.stack[source].length === 0) return;\n\t var delta = this.stack[source].pop();\n\t this.lastRecorded = 0;\n\t this.ignoreChange = true;\n\t this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n\t this.ignoreChange = false;\n\t var index = getLastChangeIndex(delta[source]);\n\t this.quill.setSelection(index);\n\t this.quill.selection.scrollIntoView();\n\t this.stack[dest].push(delta);\n\t }\n\t }, {\n\t key: 'clear',\n\t value: function clear() {\n\t this.stack = { undo: [], redo: [] };\n\t }\n\t }, {\n\t key: 'record',\n\t value: function record(changeDelta, oldDelta) {\n\t if (changeDelta.ops.length === 0) return;\n\t this.stack.redo = [];\n\t var undoDelta = this.quill.getContents().diff(oldDelta);\n\t var timestamp = Date.now();\n\t if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n\t var delta = this.stack.undo.pop();\n\t undoDelta = undoDelta.compose(delta.undo);\n\t changeDelta = delta.redo.compose(changeDelta);\n\t } else {\n\t this.lastRecorded = timestamp;\n\t }\n\t this.stack.undo.push({\n\t redo: changeDelta,\n\t undo: undoDelta\n\t });\n\t if (this.stack.undo.length > this.options.maxStack) {\n\t this.stack.undo.shift();\n\t }\n\t }\n\t }, {\n\t key: 'redo',\n\t value: function redo() {\n\t this.change('redo', 'undo');\n\t }\n\t }, {\n\t key: 'transform',\n\t value: function transform(delta) {\n\t this.stack.undo.forEach(function (change) {\n\t change.undo = delta.transform(change.undo, true);\n\t change.redo = delta.transform(change.redo, true);\n\t });\n\t this.stack.redo.forEach(function (change) {\n\t change.undo = delta.transform(change.undo, true);\n\t change.redo = delta.transform(change.redo, true);\n\t });\n\t }\n\t }, {\n\t key: 'undo',\n\t value: function undo() {\n\t this.change('undo', 'redo');\n\t }\n\t }]);\n\t\n\t return History;\n\t}(_module2.default);\n\t\n\tHistory.DEFAULTS = {\n\t delay: 1000,\n\t maxStack: 100,\n\t userOnly: false\n\t};\n\t\n\tfunction endsWithNewlineChange(delta) {\n\t var lastOp = delta.ops[delta.ops.length - 1];\n\t if (lastOp == null) return false;\n\t if (lastOp.insert != null) {\n\t return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n\t }\n\t if (lastOp.attributes != null) {\n\t return Object.keys(lastOp.attributes).some(function (attr) {\n\t return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n\t });\n\t }\n\t return false;\n\t}\n\t\n\tfunction getLastChangeIndex(delta) {\n\t var deleteLength = delta.reduce(function (length, op) {\n\t length += op.delete || 0;\n\t return length;\n\t }, 0);\n\t var changeIndex = delta.length() - deleteLength;\n\t if (endsWithNewlineChange(delta)) {\n\t changeIndex -= 1;\n\t }\n\t return changeIndex;\n\t}\n\t\n\texports.default = History;\n\texports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _clone = __webpack_require__(39);\n\t\n\tvar _clone2 = _interopRequireDefault(_clone);\n\t\n\tvar _deepEqual = __webpack_require__(40);\n\t\n\tvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _op = __webpack_require__(26);\n\t\n\tvar _op2 = _interopRequireDefault(_op);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar debug = (0, _logger2.default)('quill:keyboard');\n\t\n\tvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\t\n\tvar Keyboard = function (_Module) {\n\t _inherits(Keyboard, _Module);\n\t\n\t _createClass(Keyboard, null, [{\n\t key: 'match',\n\t value: function match(evt, binding) {\n\t binding = normalize(binding);\n\t if (!!binding.shortKey !== evt[SHORTKEY] && binding.shortKey !== null) return false;\n\t if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n\t return key != SHORTKEY && !!binding[key] !== evt[key] && binding[key] !== null;\n\t })) {\n\t return false;\n\t }\n\t return binding.key === (evt.which || evt.keyCode);\n\t }\n\t }]);\n\t\n\t function Keyboard(quill, options) {\n\t _classCallCheck(this, Keyboard);\n\t\n\t var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\t\n\t _this.bindings = {};\n\t Object.keys(_this.options.bindings).forEach(function (name) {\n\t if (_this.options.bindings[name]) {\n\t _this.addBinding(_this.options.bindings[name]);\n\t }\n\t });\n\t _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n\t _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n\t _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n\t _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^$/ }, handleDelete);\n\t _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n\t _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n\t if (/Trident/i.test(navigator.userAgent)) {\n\t _this.addBinding({ key: Keyboard.keys.BACKSPACE, shortKey: true }, handleBackspace);\n\t _this.addBinding({ key: Keyboard.keys.DELETE, shortKey: true }, handleDelete);\n\t }\n\t _this.listen();\n\t return _this;\n\t }\n\t\n\t _createClass(Keyboard, [{\n\t key: 'addBinding',\n\t value: function addBinding(key) {\n\t var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\t\n\t var binding = normalize(key);\n\t if (binding == null || binding.key == null) {\n\t return debug.warn('Attempted to add invalid keyboard binding', binding);\n\t }\n\t if (typeof context === 'function') {\n\t context = { handler: context };\n\t }\n\t if (typeof handler === 'function') {\n\t handler = { handler: handler };\n\t }\n\t binding = (0, _extend2.default)(binding, context, handler);\n\t this.bindings[binding.key] = this.bindings[binding.key] || [];\n\t this.bindings[binding.key].push(binding);\n\t }\n\t }, {\n\t key: 'listen',\n\t value: function listen() {\n\t var _this2 = this;\n\t\n\t this.quill.root.addEventListener('keydown', function (evt) {\n\t if (evt.defaultPrevented) return;\n\t var which = evt.which || evt.keyCode;\n\t var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n\t return Keyboard.match(evt, binding);\n\t });\n\t if (bindings.length === 0) return;\n\t var range = _this2.quill.getSelection();\n\t if (range == null || !_this2.quill.hasFocus()) return;\n\t\n\t var _quill$scroll$line = _this2.quill.scroll.line(range.index),\n\t _quill$scroll$line2 = _slicedToArray(_quill$scroll$line, 2),\n\t line = _quill$scroll$line2[0],\n\t offset = _quill$scroll$line2[1];\n\t\n\t var _quill$scroll$leaf = _this2.quill.scroll.leaf(range.index),\n\t _quill$scroll$leaf2 = _slicedToArray(_quill$scroll$leaf, 2),\n\t leafStart = _quill$scroll$leaf2[0],\n\t offsetStart = _quill$scroll$leaf2[1];\n\t\n\t var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.scroll.leaf(range.index + range.length),\n\t _ref2 = _slicedToArray(_ref, 2),\n\t leafEnd = _ref2[0],\n\t offsetEnd = _ref2[1];\n\t\n\t var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n\t var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n\t var curContext = {\n\t collapsed: range.length === 0,\n\t empty: range.length === 0 && line.length() <= 1,\n\t format: _this2.quill.getFormat(range),\n\t offset: offset,\n\t prefix: prefixText,\n\t suffix: suffixText\n\t };\n\t var prevented = bindings.some(function (binding) {\n\t if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n\t if (binding.empty != null && binding.empty !== curContext.empty) return false;\n\t if (binding.offset != null && binding.offset !== curContext.offset) return false;\n\t if (Array.isArray(binding.format)) {\n\t // any format is present\n\t if (binding.format.every(function (name) {\n\t return curContext.format[name] == null;\n\t })) {\n\t return false;\n\t }\n\t } else if (_typeof(binding.format) === 'object') {\n\t // all formats must match\n\t if (!Object.keys(binding.format).every(function (name) {\n\t if (binding.format[name] === true) return curContext.format[name] != null;\n\t if (binding.format[name] === false) return curContext.format[name] == null;\n\t return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n\t })) {\n\t return false;\n\t }\n\t }\n\t if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n\t if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n\t return binding.handler.call(_this2, range, curContext) !== true;\n\t });\n\t if (prevented) {\n\t evt.preventDefault();\n\t }\n\t });\n\t }\n\t }]);\n\t\n\t return Keyboard;\n\t}(_module2.default);\n\t\n\tKeyboard.keys = {\n\t BACKSPACE: 8,\n\t TAB: 9,\n\t ENTER: 13,\n\t ESCAPE: 27,\n\t LEFT: 37,\n\t UP: 38,\n\t RIGHT: 39,\n\t DOWN: 40,\n\t DELETE: 46\n\t};\n\t\n\tKeyboard.DEFAULTS = {\n\t bindings: {\n\t 'bold': makeFormatHandler('bold'),\n\t 'italic': makeFormatHandler('italic'),\n\t 'underline': makeFormatHandler('underline'),\n\t 'indent': {\n\t // highlight tab or tab at beginning of list, indent or blockquote\n\t key: Keyboard.keys.TAB,\n\t format: ['blockquote', 'indent', 'list'],\n\t handler: function handler(range, context) {\n\t if (context.collapsed && context.offset !== 0) return true;\n\t this.quill.format('indent', '+1', _quill2.default.sources.USER);\n\t }\n\t },\n\t 'outdent': {\n\t key: Keyboard.keys.TAB,\n\t shiftKey: true,\n\t format: ['blockquote', 'indent', 'list'],\n\t // highlight tab or tab at beginning of list, indent or blockquote\n\t handler: function handler(range, context) {\n\t if (context.collapsed && context.offset !== 0) return true;\n\t this.quill.format('indent', '-1', _quill2.default.sources.USER);\n\t }\n\t },\n\t 'outdent backspace': {\n\t key: Keyboard.keys.BACKSPACE,\n\t collapsed: true,\n\t format: ['blockquote', 'indent', 'list'],\n\t offset: 0,\n\t handler: function handler(range, context) {\n\t if (context.format.indent != null) {\n\t this.quill.format('indent', '-1', _quill2.default.sources.USER);\n\t } else if (context.format.blockquote != null) {\n\t this.quill.format('blockquote', false, _quill2.default.sources.USER);\n\t } else if (context.format.list != null) {\n\t this.quill.format('list', false, _quill2.default.sources.USER);\n\t }\n\t }\n\t },\n\t 'indent code-block': makeCodeBlockHandler(true),\n\t 'outdent code-block': makeCodeBlockHandler(false),\n\t 'remove tab': {\n\t key: Keyboard.keys.TAB,\n\t shiftKey: true,\n\t collapsed: true,\n\t prefix: /\\t$/,\n\t handler: function handler(range) {\n\t this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n\t }\n\t },\n\t 'tab': {\n\t key: Keyboard.keys.TAB,\n\t handler: function handler(range, context) {\n\t if (!context.collapsed) {\n\t this.quill.scroll.deleteAt(range.index, range.length);\n\t }\n\t this.quill.insertText(range.index, '\\t', _quill2.default.sources.USER);\n\t this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n\t }\n\t },\n\t 'list empty enter': {\n\t key: Keyboard.keys.ENTER,\n\t collapsed: true,\n\t format: ['list'],\n\t empty: true,\n\t handler: function handler(range, context) {\n\t this.quill.format('list', false, _quill2.default.sources.USER);\n\t if (context.format.indent) {\n\t this.quill.format('indent', false, _quill2.default.sources.USER);\n\t }\n\t }\n\t },\n\t 'header enter': {\n\t key: Keyboard.keys.ENTER,\n\t collapsed: true,\n\t format: ['header'],\n\t suffix: /^$/,\n\t handler: function handler(range) {\n\t this.quill.scroll.insertAt(range.index, '\\n');\n\t this.quill.formatText(range.index + 1, 1, 'header', false, _quill2.default.sources.USER);\n\t this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n\t this.quill.selection.scrollIntoView();\n\t }\n\t },\n\t 'list autofill': {\n\t key: ' ',\n\t collapsed: true,\n\t format: { list: false },\n\t prefix: /^(1\\.|-)$/,\n\t handler: function handler(range, context) {\n\t var length = context.prefix.length;\n\t this.quill.scroll.deleteAt(range.index - length, length);\n\t this.quill.formatLine(range.index - length, 1, 'list', length === 1 ? 'bullet' : 'ordered', _quill2.default.sources.USER);\n\t this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n\t }\n\t }\n\t }\n\t};\n\t\n\tfunction handleBackspace(range, context) {\n\t if (range.index === 0) return;\n\t\n\t var _quill$scroll$line3 = this.quill.scroll.line(range.index),\n\t _quill$scroll$line4 = _slicedToArray(_quill$scroll$line3, 1),\n\t line = _quill$scroll$line4[0];\n\t\n\t var formats = {};\n\t if (context.offset === 0) {\n\t var curFormats = line.formats();\n\t var prevFormats = this.quill.getFormat(range.index - 1, 1);\n\t formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n\t }\n\t this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n\t if (Object.keys(formats).length > 0) {\n\t this.quill.formatLine(range.index - 1, 1, formats, _quill2.default.sources.USER);\n\t }\n\t this.quill.selection.scrollIntoView();\n\t}\n\t\n\tfunction handleDelete(range) {\n\t if (range.index >= this.quill.getLength() - 1) return;\n\t this.quill.deleteText(range.index, 1, _quill2.default.sources.USER);\n\t}\n\t\n\tfunction handleDeleteRange(range) {\n\t this.quill.deleteText(range, _quill2.default.sources.USER);\n\t this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n\t this.quill.selection.scrollIntoView();\n\t}\n\t\n\tfunction handleEnter(range, context) {\n\t var _this3 = this;\n\t\n\t if (range.length > 0) {\n\t this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n\t }\n\t var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n\t if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n\t lineFormats[format] = context.format[format];\n\t }\n\t return lineFormats;\n\t }, {});\n\t this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n\t this.quill.selection.scrollIntoView();\n\t Object.keys(context.format).forEach(function (name) {\n\t if (lineFormats[name] != null) return;\n\t if (Array.isArray(context.format[name])) return;\n\t if (name === 'link') return;\n\t _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n\t });\n\t}\n\t\n\tfunction makeCodeBlockHandler(indent) {\n\t return {\n\t key: Keyboard.keys.TAB,\n\t shiftKey: !indent,\n\t format: { 'code-block': true },\n\t handler: function handler(range) {\n\t var CodeBlock = _parchment2.default.query('code-block');\n\t var index = range.index,\n\t length = range.length;\n\t\n\t var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n\t _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n\t block = _quill$scroll$descend2[0],\n\t offset = _quill$scroll$descend2[1];\n\t\n\t if (block == null) return;\n\t var scrollOffset = this.quill.scroll.offset(block);\n\t var start = block.newlineIndex(offset, true) + 1;\n\t var end = block.newlineIndex(scrollOffset + offset + length);\n\t var lines = block.domNode.textContent.slice(start, end).split('\\n');\n\t offset = 0;\n\t lines.forEach(function (line, i) {\n\t if (indent) {\n\t block.insertAt(start + offset, CodeBlock.TAB);\n\t offset += CodeBlock.TAB.length;\n\t if (i === 0) {\n\t index += CodeBlock.TAB.length;\n\t } else {\n\t length += CodeBlock.TAB.length;\n\t }\n\t } else if (line.startsWith(CodeBlock.TAB)) {\n\t block.deleteAt(start + offset, CodeBlock.TAB.length);\n\t offset -= CodeBlock.TAB.length;\n\t if (i === 0) {\n\t index -= CodeBlock.TAB.length;\n\t } else {\n\t length -= CodeBlock.TAB.length;\n\t }\n\t }\n\t offset += line.length + 1;\n\t });\n\t this.quill.update(_quill2.default.sources.USER);\n\t this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n\t }\n\t };\n\t}\n\t\n\tfunction makeFormatHandler(format) {\n\t return {\n\t key: format[0].toUpperCase(),\n\t shortKey: true,\n\t handler: function handler(range, context) {\n\t this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n\t }\n\t };\n\t}\n\t\n\tfunction normalize(binding) {\n\t if (typeof binding === 'string' || typeof binding === 'number') {\n\t return normalize({ key: binding });\n\t }\n\t if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n\t binding = (0, _clone2.default)(binding, false);\n\t }\n\t if (typeof binding.key === 'string') {\n\t if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n\t binding.key = Keyboard.keys[binding.key.toUpperCase()];\n\t } else if (binding.key.length === 1) {\n\t binding.key = binding.key.toUpperCase().charCodeAt(0);\n\t } else {\n\t return null;\n\t }\n\t }\n\t return binding;\n\t}\n\t\n\texports.default = Keyboard;\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.IndentClass = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar IdentAttributor = function (_Parchment$Attributor) {\n\t _inherits(IdentAttributor, _Parchment$Attributor);\n\t\n\t function IdentAttributor() {\n\t _classCallCheck(this, IdentAttributor);\n\t\n\t return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n\t }\n\t\n\t _createClass(IdentAttributor, [{\n\t key: 'add',\n\t value: function add(node, value) {\n\t if (value === '+1' || value === '-1') {\n\t var indent = this.value(node) || 0;\n\t value = value === '+1' ? indent + 1 : indent - 1;\n\t }\n\t if (value === 0) {\n\t this.remove(node);\n\t return true;\n\t } else {\n\t return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n\t }\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value(node) {\n\t return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n\t }\n\t }]);\n\t\n\t return IdentAttributor;\n\t}(_parchment2.default.Attributor.Class);\n\t\n\tvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n\t scope: _parchment2.default.Scope.BLOCK,\n\t whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n\t});\n\t\n\texports.IndentClass = IndentClass;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Blockquote = function (_Block) {\n\t _inherits(Blockquote, _Block);\n\t\n\t function Blockquote() {\n\t _classCallCheck(this, Blockquote);\n\t\n\t return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n\t }\n\t\n\t return Blockquote;\n\t}(_block2.default);\n\t\n\tBlockquote.blotName = 'blockquote';\n\tBlockquote.tagName = 'blockquote';\n\t\n\texports.default = Blockquote;\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Header = function (_Block) {\n\t _inherits(Header, _Block);\n\t\n\t function Header() {\n\t _classCallCheck(this, Header);\n\t\n\t return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Header, null, [{\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t return this.tagName.indexOf(domNode.tagName) + 1;\n\t }\n\t }]);\n\t\n\t return Header;\n\t}(_block2.default);\n\t\n\tHeader.blotName = 'header';\n\tHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\t\n\texports.default = Header;\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.ListItem = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _block2 = _interopRequireDefault(_block);\n\t\n\tvar _container = __webpack_require__(46);\n\t\n\tvar _container2 = _interopRequireDefault(_container);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ListItem = function (_Block) {\n\t _inherits(ListItem, _Block);\n\t\n\t function ListItem() {\n\t _classCallCheck(this, ListItem);\n\t\n\t return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n\t }\n\t\n\t _createClass(ListItem, [{\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (name === List.blotName && !value) {\n\t this.replaceWith(_parchment2.default.create(this.statics.scope));\n\t } else {\n\t _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n\t }\n\t }\n\t }, {\n\t key: 'remove',\n\t value: function remove() {\n\t if (this.prev == null && this.next == null) {\n\t this.parent.remove();\n\t } else {\n\t _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n\t }\n\t }\n\t }, {\n\t key: 'replaceWith',\n\t value: function replaceWith(name, value) {\n\t this.parent.isolate(this.offset(this.parent), this.length());\n\t if (name === this.parent.statics.blotName) {\n\t this.parent.replaceWith(name, value);\n\t return this;\n\t } else {\n\t this.parent.unwrap();\n\t return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n\t }\n\t }\n\t }], [{\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n\t }\n\t }]);\n\t\n\t return ListItem;\n\t}(_block2.default);\n\t\n\tListItem.blotName = 'list-item';\n\tListItem.tagName = 'LI';\n\t\n\tvar List = function (_Container) {\n\t _inherits(List, _Container);\n\t\n\t function List() {\n\t _classCallCheck(this, List);\n\t\n\t return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n\t }\n\t\n\t _createClass(List, [{\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (this.children.length > 0) {\n\t this.children.tail.format(name, value);\n\t }\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats() {\n\t // We don't inherit from FormatBlot\n\t return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n\t }\n\t }, {\n\t key: 'insertBefore',\n\t value: function insertBefore(blot, ref) {\n\t if (blot instanceof ListItem) {\n\t _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n\t } else {\n\t var index = ref == null ? this.length() : ref.offset(this);\n\t var after = this.split(index);\n\t after.parent.insertBefore(blot, after);\n\t }\n\t }\n\t }, {\n\t key: 'optimize',\n\t value: function optimize() {\n\t _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this);\n\t var next = this.next;\n\t if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName) {\n\t next.moveChildren(this);\n\t next.remove();\n\t }\n\t }\n\t }, {\n\t key: 'replace',\n\t value: function replace(target) {\n\t if (target.statics.blotName !== this.statics.blotName) {\n\t var item = _parchment2.default.create(this.statics.defaultChild);\n\t target.moveChildren(item);\n\t this.appendChild(item);\n\t }\n\t _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t if (value === 'ordered') {\n\t value = 'OL';\n\t } else if (value === 'bullet') {\n\t value = 'UL';\n\t }\n\t return _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, value);\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t if (domNode.tagName === 'OL') return 'ordered';\n\t if (domNode.tagName === 'UL') return 'bullet';\n\t return undefined;\n\t }\n\t }]);\n\t\n\t return List;\n\t}(_container2.default);\n\t\n\tList.blotName = 'list';\n\tList.scope = _parchment2.default.Scope.BLOCK_BLOT;\n\tList.tagName = ['OL', 'UL'];\n\tList.defaultChild = 'list-item';\n\tList.allowedChildren = [ListItem];\n\t\n\texports.ListItem = ListItem;\n\texports.default = List;\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Bold = function (_Inline) {\n\t _inherits(Bold, _Inline);\n\t\n\t function Bold() {\n\t _classCallCheck(this, Bold);\n\t\n\t return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Bold, [{\n\t key: 'optimize',\n\t value: function optimize() {\n\t _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this);\n\t if (this.domNode.tagName !== this.statics.tagName[0]) {\n\t this.replaceWith(this.statics.blotName);\n\t }\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create() {\n\t return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats() {\n\t return true;\n\t }\n\t }]);\n\t\n\t return Bold;\n\t}(_inline2.default);\n\t\n\tBold.blotName = 'bold';\n\tBold.tagName = ['STRONG', 'B'];\n\t\n\texports.default = Bold;\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _bold = __webpack_require__(61);\n\t\n\tvar _bold2 = _interopRequireDefault(_bold);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Italic = function (_Bold) {\n\t _inherits(Italic, _Bold);\n\t\n\t function Italic() {\n\t _classCallCheck(this, Italic);\n\t\n\t return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n\t }\n\t\n\t return Italic;\n\t}(_bold2.default);\n\t\n\tItalic.blotName = 'italic';\n\tItalic.tagName = ['EM', 'I'];\n\t\n\texports.default = Italic;\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.sanitize = exports.default = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Link = function (_Inline) {\n\t _inherits(Link, _Inline);\n\t\n\t function Link() {\n\t _classCallCheck(this, Link);\n\t\n\t return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Link, [{\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n\t value = this.constructor.sanitize(value);\n\t this.domNode.setAttribute('href', value);\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n\t value = this.sanitize(value);\n\t node.setAttribute('href', value);\n\t node.setAttribute('target', '_blank');\n\t return node;\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t return domNode.getAttribute('href');\n\t }\n\t }, {\n\t key: 'sanitize',\n\t value: function sanitize(url) {\n\t return _sanitize(url, ['http', 'https', 'mailto']) ? url : this.SANITIZED_URL;\n\t }\n\t }]);\n\t\n\t return Link;\n\t}(_inline2.default);\n\t\n\tLink.blotName = 'link';\n\tLink.tagName = 'A';\n\tLink.SANITIZED_URL = 'about:blank';\n\t\n\tfunction _sanitize(url, protocols) {\n\t var anchor = document.createElement('a');\n\t anchor.href = url;\n\t var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n\t return protocols.indexOf(protocol) > -1;\n\t}\n\t\n\texports.default = Link;\n\texports.sanitize = _sanitize;\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Script = function (_Inline) {\n\t _inherits(Script, _Inline);\n\t\n\t function Script() {\n\t _classCallCheck(this, Script);\n\t\n\t return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Script, null, [{\n\t key: 'create',\n\t value: function create(value) {\n\t if (value === 'super') {\n\t return document.createElement('sup');\n\t } else if (value === 'sub') {\n\t return document.createElement('sub');\n\t } else {\n\t return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n\t }\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t if (domNode.tagName === 'SUB') return 'sub';\n\t if (domNode.tagName === 'SUP') return 'super';\n\t return undefined;\n\t }\n\t }]);\n\t\n\t return Script;\n\t}(_inline2.default);\n\t\n\tScript.blotName = 'script';\n\tScript.tagName = ['SUB', 'SUP'];\n\t\n\texports.default = Script;\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Strike = function (_Inline) {\n\t _inherits(Strike, _Inline);\n\t\n\t function Strike() {\n\t _classCallCheck(this, Strike);\n\t\n\t return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n\t }\n\t\n\t return Strike;\n\t}(_inline2.default);\n\t\n\tStrike.blotName = 'strike';\n\tStrike.tagName = 'S';\n\t\n\texports.default = Strike;\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _inline = __webpack_require__(33);\n\t\n\tvar _inline2 = _interopRequireDefault(_inline);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar Underline = function (_Inline) {\n\t _inherits(Underline, _Inline);\n\t\n\t function Underline() {\n\t _classCallCheck(this, Underline);\n\t\n\t return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n\t }\n\t\n\t return Underline;\n\t}(_inline2.default);\n\t\n\tUnderline.blotName = 'underline';\n\tUnderline.tagName = 'U';\n\t\n\texports.default = Underline;\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _link = __webpack_require__(63);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ATTRIBUTES = ['alt', 'height', 'width'];\n\t\n\tvar Image = function (_Embed) {\n\t _inherits(Image, _Embed);\n\t\n\t function Image() {\n\t _classCallCheck(this, Image);\n\t\n\t return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Image, [{\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (ATTRIBUTES.indexOf(name) > -1) {\n\t if (value) {\n\t this.domNode.setAttribute(name, value);\n\t } else {\n\t this.domNode.removeAttribute(name);\n\t }\n\t } else {\n\t _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n\t }\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n\t if (typeof value === 'string') {\n\t node.setAttribute('src', this.sanitize(value));\n\t }\n\t return node;\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t return ATTRIBUTES.reduce(function (formats, attribute) {\n\t if (domNode.hasAttribute(attribute)) {\n\t formats[attribute] = domNode.getAttribute(attribute);\n\t }\n\t return formats;\n\t }, {});\n\t }\n\t }, {\n\t key: 'match',\n\t value: function match(url) {\n\t return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n\t );\n\t }\n\t }, {\n\t key: 'sanitize',\n\t value: function sanitize(url) {\n\t return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value(domNode) {\n\t return domNode.getAttribute('src');\n\t }\n\t }]);\n\t\n\t return Image;\n\t}(_embed2.default);\n\t\n\tImage.blotName = 'image';\n\tImage.tagName = 'IMG';\n\t\n\texports.default = Image;\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _block = __webpack_require__(29);\n\t\n\tvar _link = __webpack_require__(63);\n\t\n\tvar _link2 = _interopRequireDefault(_link);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ATTRIBUTES = ['height', 'width'];\n\t\n\tvar Video = function (_BlockEmbed) {\n\t _inherits(Video, _BlockEmbed);\n\t\n\t function Video() {\n\t _classCallCheck(this, Video);\n\t\n\t return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Video, [{\n\t key: 'format',\n\t value: function format(name, value) {\n\t if (ATTRIBUTES.indexOf(name) > -1) {\n\t if (value) {\n\t this.domNode.setAttribute(name, value);\n\t } else {\n\t this.domNode.removeAttribute(name);\n\t }\n\t } else {\n\t _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n\t }\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n\t node.setAttribute('frameborder', '0');\n\t node.setAttribute('allowfullscreen', true);\n\t node.setAttribute('src', this.sanitize(value));\n\t return node;\n\t }\n\t }, {\n\t key: 'formats',\n\t value: function formats(domNode) {\n\t return ATTRIBUTES.reduce(function (formats, attribute) {\n\t if (domNode.hasAttribute(attribute)) {\n\t formats[attribute] = domNode.getAttribute(attribute);\n\t }\n\t return formats;\n\t }, {});\n\t }\n\t }, {\n\t key: 'sanitize',\n\t value: function sanitize(url) {\n\t return _link2.default.sanitize(url);\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value(domNode) {\n\t return domNode.getAttribute('src');\n\t }\n\t }]);\n\t\n\t return Video;\n\t}(_block.BlockEmbed);\n\t\n\tVideo.blotName = 'video';\n\tVideo.className = 'ql-video';\n\tVideo.tagName = 'IFRAME';\n\t\n\texports.default = Video;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.FormulaBlot = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _embed = __webpack_require__(32);\n\t\n\tvar _embed2 = _interopRequireDefault(_embed);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar FormulaBlot = function (_Embed) {\n\t _inherits(FormulaBlot, _Embed);\n\t\n\t function FormulaBlot() {\n\t _classCallCheck(this, FormulaBlot);\n\t\n\t return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n\t }\n\t\n\t _createClass(FormulaBlot, [{\n\t key: 'index',\n\t value: function index() {\n\t return 1;\n\t }\n\t }], [{\n\t key: 'create',\n\t value: function create(value) {\n\t var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n\t if (typeof value === 'string') {\n\t window.katex.render(value, node);\n\t node.setAttribute('data-value', value);\n\t }\n\t node.setAttribute('contenteditable', false);\n\t return node;\n\t }\n\t }, {\n\t key: 'value',\n\t value: function value(domNode) {\n\t return domNode.getAttribute('data-value');\n\t }\n\t }]);\n\t\n\t return FormulaBlot;\n\t}(_embed2.default);\n\t\n\tFormulaBlot.blotName = 'formula';\n\tFormulaBlot.className = 'ql-formula';\n\tFormulaBlot.tagName = 'SPAN';\n\t\n\tfunction Formula() {\n\t if (window.katex == null) {\n\t throw new Error('Formula module requires KaTeX.');\n\t }\n\t _quill2.default.register(FormulaBlot, true);\n\t}\n\t\n\texports.FormulaBlot = FormulaBlot;\n\texports.default = Formula;\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tvar _code = __webpack_require__(28);\n\t\n\tvar _code2 = _interopRequireDefault(_code);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar SyntaxCodeBlock = function (_CodeBlock) {\n\t _inherits(SyntaxCodeBlock, _CodeBlock);\n\t\n\t function SyntaxCodeBlock() {\n\t _classCallCheck(this, SyntaxCodeBlock);\n\t\n\t return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n\t }\n\t\n\t _createClass(SyntaxCodeBlock, [{\n\t key: 'replaceWith',\n\t value: function replaceWith(block) {\n\t this.domNode.textContent = this.domNode.textContent;\n\t this.attach();\n\t _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n\t }\n\t }, {\n\t key: 'highlight',\n\t value: function highlight(_highlight) {\n\t if (this.cachedHTML !== this.domNode.innerHTML) {\n\t var text = this.domNode.textContent;\n\t if (text.trim().length > 0 || this.cachedHTML == null) {\n\t this.domNode.innerHTML = _highlight(text);\n\t this.attach();\n\t }\n\t this.cachedHTML = this.domNode.innerHTML;\n\t }\n\t }\n\t }]);\n\t\n\t return SyntaxCodeBlock;\n\t}(_code2.default);\n\t\n\tSyntaxCodeBlock.className = 'ql-syntax';\n\t\n\tvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n\t scope: _parchment2.default.Scope.INLINE\n\t});\n\t\n\tvar Syntax = function (_Module) {\n\t _inherits(Syntax, _Module);\n\t\n\t function Syntax(quill, options) {\n\t _classCallCheck(this, Syntax);\n\t\n\t var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\t\n\t if (typeof _this2.options.highlight !== 'function') {\n\t throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n\t }\n\t _quill2.default.register(CodeToken, true);\n\t _quill2.default.register(SyntaxCodeBlock, true);\n\t var timer = null;\n\t _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n\t if (timer != null) return;\n\t timer = setTimeout(function () {\n\t _this2.highlight();\n\t timer = null;\n\t }, 100);\n\t });\n\t _this2.highlight();\n\t return _this2;\n\t }\n\t\n\t _createClass(Syntax, [{\n\t key: 'highlight',\n\t value: function highlight() {\n\t var _this3 = this;\n\t\n\t if (this.quill.selection.composing) return;\n\t var range = this.quill.getSelection();\n\t this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n\t code.highlight(_this3.options.highlight);\n\t });\n\t this.quill.update(_quill2.default.sources.SILENT);\n\t if (range != null) {\n\t this.quill.setSelection(range, _quill2.default.sources.SILENT);\n\t }\n\t }\n\t }]);\n\t\n\t return Syntax;\n\t}(_module2.default);\n\t\n\tSyntax.DEFAULTS = {\n\t highlight: function () {\n\t if (window.hljs == null) return null;\n\t return function (text) {\n\t var result = window.hljs.highlightAuto(text);\n\t return result.value;\n\t };\n\t }()\n\t};\n\t\n\texports.CodeBlock = SyntaxCodeBlock;\n\texports.CodeToken = CodeToken;\n\texports.default = Syntax;\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.addControls = exports.default = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _parchment = __webpack_require__(2);\n\t\n\tvar _parchment2 = _interopRequireDefault(_parchment);\n\t\n\tvar _quill = __webpack_require__(18);\n\t\n\tvar _quill2 = _interopRequireDefault(_quill);\n\t\n\tvar _logger = __webpack_require__(38);\n\t\n\tvar _logger2 = _interopRequireDefault(_logger);\n\t\n\tvar _module = __webpack_require__(43);\n\t\n\tvar _module2 = _interopRequireDefault(_module);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar debug = (0, _logger2.default)('quill:toolbar');\n\t\n\tvar Toolbar = function (_Module) {\n\t _inherits(Toolbar, _Module);\n\t\n\t function Toolbar(quill, options) {\n\t _classCallCheck(this, Toolbar);\n\t\n\t var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\t\n\t if (Array.isArray(_this.options.container)) {\n\t var container = document.createElement('div');\n\t addControls(container, _this.options.container);\n\t quill.container.parentNode.insertBefore(container, quill.container);\n\t _this.container = container;\n\t } else if (typeof _this.options.container === 'string') {\n\t _this.container = document.querySelector(_this.options.container);\n\t } else {\n\t _this.container = _this.options.container;\n\t }\n\t if (!(_this.container instanceof HTMLElement)) {\n\t var _ret;\n\t\n\t return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n\t }\n\t _this.container.classList.add('ql-toolbar');\n\t _this.controls = [];\n\t _this.handlers = {};\n\t Object.keys(_this.options.handlers).forEach(function (format) {\n\t _this.addHandler(format, _this.options.handlers[format]);\n\t });\n\t [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n\t _this.attach(input);\n\t });\n\t _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n\t if (type === _quill2.default.events.SELECTION_CHANGE) {\n\t _this.update(range);\n\t }\n\t });\n\t _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n\t var _this$quill$selection = _this.quill.selection.getRange(),\n\t _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n\t range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\t\n\t\n\t _this.update(range);\n\t });\n\t return _this;\n\t }\n\t\n\t _createClass(Toolbar, [{\n\t key: 'addHandler',\n\t value: function addHandler(format, handler) {\n\t this.handlers[format] = handler;\n\t }\n\t }, {\n\t key: 'attach',\n\t value: function attach(input) {\n\t var _this2 = this;\n\t\n\t var format = [].find.call(input.classList, function (className) {\n\t return className.indexOf('ql-') === 0;\n\t });\n\t if (!format) return;\n\t format = format.slice('ql-'.length);\n\t if (input.tagName === 'BUTTON') {\n\t input.setAttribute('type', 'button');\n\t }\n\t if (this.handlers[format] == null) {\n\t if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n\t debug.warn('ignoring attaching to disabled format', format, input);\n\t return;\n\t }\n\t if (_parchment2.default.query(format) == null) {\n\t debug.warn('ignoring attaching to nonexistent format', format, input);\n\t return;\n\t }\n\t }\n\t var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n\t input.addEventListener(eventName, function (e) {\n\t var value = void 0;\n\t if (input.tagName === 'SELECT') {\n\t if (input.selectedIndex < 0) return;\n\t var selected = input.options[input.selectedIndex];\n\t if (selected.hasAttribute('selected')) {\n\t value = false;\n\t } else {\n\t value = selected.value || false;\n\t }\n\t } else {\n\t if (input.classList.contains('ql-active')) {\n\t value = false;\n\t } else {\n\t value = input.value || !input.hasAttribute('value');\n\t }\n\t e.preventDefault();\n\t }\n\t _this2.quill.focus();\n\t\n\t var _quill$selection$getR = _this2.quill.selection.getRange(),\n\t _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n\t range = _quill$selection$getR2[0];\n\t\n\t if (_this2.handlers[format] != null) {\n\t _this2.handlers[format].call(_this2, value);\n\t } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n\t value = prompt('Enter ' + format);\n\t if (!value) return;\n\t _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n\t } else {\n\t _this2.quill.format(format, value, _quill2.default.sources.USER);\n\t }\n\t _this2.update(range);\n\t });\n\t // TODO use weakmap\n\t this.controls.push([format, input]);\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update(range) {\n\t var formats = range == null ? {} : this.quill.getFormat(range);\n\t this.controls.forEach(function (pair) {\n\t var _pair = _slicedToArray(pair, 2),\n\t format = _pair[0],\n\t input = _pair[1];\n\t\n\t if (input.tagName === 'SELECT') {\n\t var option = void 0;\n\t if (range == null) {\n\t option = null;\n\t } else if (formats[format] == null) {\n\t option = input.querySelector('option[selected]');\n\t } else if (!Array.isArray(formats[format])) {\n\t var value = formats[format];\n\t if (typeof value === 'string') {\n\t value = value.replace(/\\\"/g, '\\\\\"');\n\t }\n\t option = input.querySelector('option[value=\"' + value + '\"]');\n\t }\n\t if (option == null) {\n\t input.value = ''; // TODO make configurable?\n\t input.selectedIndex = -1;\n\t } else {\n\t option.selected = true;\n\t }\n\t } else {\n\t if (range == null) {\n\t input.classList.remove('ql-active');\n\t } else if (input.hasAttribute('value')) {\n\t // both being null should match (default values)\n\t // '1' should match with 1 (headers)\n\t var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n\t input.classList.toggle('ql-active', isActive);\n\t } else {\n\t input.classList.toggle('ql-active', formats[format] != null);\n\t }\n\t }\n\t });\n\t }\n\t }]);\n\t\n\t return Toolbar;\n\t}(_module2.default);\n\t\n\tToolbar.DEFAULTS = {};\n\t\n\tfunction addButton(container, format, value) {\n\t var input = document.createElement('button');\n\t input.setAttribute('type', 'button');\n\t input.classList.add('ql-' + format);\n\t if (value != null) {\n\t input.value = value;\n\t }\n\t container.appendChild(input);\n\t}\n\t\n\tfunction addControls(container, groups) {\n\t if (!Array.isArray(groups[0])) {\n\t groups = [groups];\n\t }\n\t groups.forEach(function (controls) {\n\t var group = document.createElement('span');\n\t group.classList.add('ql-formats');\n\t controls.forEach(function (control) {\n\t if (typeof control === 'string') {\n\t addButton(group, control);\n\t } else {\n\t var format = Object.keys(control)[0];\n\t var value = control[format];\n\t if (Array.isArray(value)) {\n\t addSelect(group, format, value);\n\t } else {\n\t addButton(group, format, value);\n\t }\n\t }\n\t });\n\t container.appendChild(group);\n\t });\n\t}\n\t\n\tfunction addSelect(container, format, values) {\n\t var input = document.createElement('select');\n\t input.classList.add('ql-' + format);\n\t values.forEach(function (value) {\n\t var option = document.createElement('option');\n\t if (value !== false) {\n\t option.setAttribute('value', value);\n\t } else {\n\t option.setAttribute('selected', 'selected');\n\t }\n\t input.appendChild(option);\n\t });\n\t container.appendChild(input);\n\t}\n\t\n\tToolbar.DEFAULTS = {\n\t container: null,\n\t handlers: {\n\t clean: function clean() {\n\t var _this3 = this;\n\t\n\t var range = this.quill.getSelection();\n\t if (range == null) return;\n\t if (range.length == 0) {\n\t var formats = this.quill.getFormat();\n\t Object.keys(formats).forEach(function (name) {\n\t // Clean functionality in existing apps only clean inline formats\n\t if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n\t _this3.quill.format(name, false);\n\t }\n\t });\n\t } else {\n\t this.quill.removeFormat(range, _quill2.default.sources.USER);\n\t }\n\t },\n\t direction: function direction(value) {\n\t var align = this.quill.getFormat()['align'];\n\t if (value === 'rtl' && align == null) {\n\t this.quill.format('align', 'right', _quill2.default.sources.USER);\n\t } else if (!value && align === 'right') {\n\t this.quill.format('align', false, _quill2.default.sources.USER);\n\t }\n\t this.quill.format('direction', value, _quill2.default.sources.USER);\n\t },\n\t link: function link(value) {\n\t if (value === true) {\n\t value = prompt('Enter link URL:');\n\t }\n\t this.quill.format('link', value, _quill2.default.sources.USER);\n\t },\n\t indent: function indent(value) {\n\t var range = this.quill.getSelection();\n\t var formats = this.quill.getFormat(range);\n\t var indent = parseInt(formats.indent || 0);\n\t if (value === '+1' || value === '-1') {\n\t var modifier = value === '+1' ? 1 : -1;\n\t if (formats.direction === 'rtl') modifier *= -1;\n\t this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n\t }\n\t }\n\t }\n\t};\n\t\n\texports.default = Toolbar;\n\texports.addControls = addControls;\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t 'align': {\n\t '': __webpack_require__(73),\n\t 'center': __webpack_require__(74),\n\t 'right': __webpack_require__(75),\n\t 'justify': __webpack_require__(76)\n\t },\n\t 'background': __webpack_require__(77),\n\t 'blockquote': __webpack_require__(78),\n\t 'bold': __webpack_require__(79),\n\t 'clean': __webpack_require__(80),\n\t 'code': __webpack_require__(81),\n\t 'code-block': __webpack_require__(81),\n\t 'color': __webpack_require__(82),\n\t 'direction': {\n\t '': __webpack_require__(83),\n\t 'rtl': __webpack_require__(84)\n\t },\n\t 'float': {\n\t 'center': __webpack_require__(85),\n\t 'full': __webpack_require__(86),\n\t 'left': __webpack_require__(87),\n\t 'right': __webpack_require__(88)\n\t },\n\t 'formula': __webpack_require__(89),\n\t 'header': {\n\t '1': __webpack_require__(90),\n\t '2': __webpack_require__(91)\n\t },\n\t 'italic': __webpack_require__(92),\n\t 'image': __webpack_require__(93),\n\t 'indent': {\n\t '+1': __webpack_require__(94),\n\t '-1': __webpack_require__(95)\n\t },\n\t 'link': __webpack_require__(96),\n\t 'list': {\n\t 'ordered': __webpack_require__(97),\n\t 'bullet': __webpack_require__(98)\n\t },\n\t 'script': {\n\t 'sub': __webpack_require__(99),\n\t 'super': __webpack_require__(100)\n\t },\n\t 'strike': __webpack_require__(101),\n\t 'underline': __webpack_require__(102),\n\t 'video': __webpack_require__(103)\n\t};\n\n/***/ },\n/* 73 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ },\n/* 74 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ },\n/* 75 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ },\n/* 76 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ },\n/* 77 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ },\n/* 78 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ },\n/* 79 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ },\n/* 80 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ },\n/* 81 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ },\n/* 82 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ },\n/* 83 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ },\n/* 84 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ },\n/* 85 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ },\n/* 86 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ },\n/* 87 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ },\n/* 88 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ },\n/* 89 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ },\n/* 90 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <line class=\\\"ql-stroke ql-thin\\\" x1=13.5 x2=15.5 y1=14.5 y2=14.5></line> <path class=ql-fill d=M14.5,15a0.5,0.5,0,0,1-.5-0.5V12.085l-0.276.138A0.5,0.5,0,0,1,13.053,12c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,15,11.5v3A0.5,0.5,0,0,1,14.5,15Z></path> </svg>\";\n\n/***/ },\n/* 91 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <path class=\\\"ql-stroke ql-thin\\\" d=M15.5,14.5h-2c0-.234,1.85-1.076,1.85-2.234a0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ },\n/* 92 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ },\n/* 93 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ },\n/* 94 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ },\n/* 95 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ },\n/* 96 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ },\n/* 97 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ },\n/* 98 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ },\n/* 99 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ },\n/* 100 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ },\n/* 101 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ },\n/* 102 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ },\n/* 103 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ },\n/* 104 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _dropdown = __webpack_require__(105);\n\t\n\tvar _dropdown2 = _interopRequireDefault(_dropdown);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar Picker = function () {\n\t function Picker(select) {\n\t var _this = this;\n\t\n\t _classCallCheck(this, Picker);\n\t\n\t this.select = select;\n\t this.container = document.createElement('span');\n\t this.buildPicker();\n\t this.select.style.display = 'none';\n\t this.select.parentNode.insertBefore(this.container, this.select);\n\t this.label.addEventListener('click', function () {\n\t _this.container.classList.toggle('ql-expanded');\n\t });\n\t this.select.addEventListener('change', this.update.bind(this));\n\t }\n\t\n\t _createClass(Picker, [{\n\t key: 'buildItem',\n\t value: function buildItem(option) {\n\t var _this2 = this;\n\t\n\t var item = document.createElement('span');\n\t item.classList.add('ql-picker-item');\n\t if (option.hasAttribute('value')) {\n\t item.setAttribute('data-value', option.getAttribute('value'));\n\t }\n\t if (option.textContent) {\n\t item.setAttribute('data-label', option.textContent);\n\t }\n\t item.addEventListener('click', function () {\n\t _this2.selectItem(item, true);\n\t });\n\t return item;\n\t }\n\t }, {\n\t key: 'buildLabel',\n\t value: function buildLabel() {\n\t var label = document.createElement('span');\n\t label.classList.add('ql-picker-label');\n\t label.innerHTML = _dropdown2.default;\n\t this.container.appendChild(label);\n\t return label;\n\t }\n\t }, {\n\t key: 'buildOptions',\n\t value: function buildOptions() {\n\t var _this3 = this;\n\t\n\t var options = document.createElement('span');\n\t options.classList.add('ql-picker-options');\n\t [].slice.call(this.select.options).forEach(function (option) {\n\t var item = _this3.buildItem(option);\n\t options.appendChild(item);\n\t if (option.hasAttribute('selected')) {\n\t _this3.selectItem(item);\n\t }\n\t });\n\t this.container.appendChild(options);\n\t }\n\t }, {\n\t key: 'buildPicker',\n\t value: function buildPicker() {\n\t var _this4 = this;\n\t\n\t [].slice.call(this.select.attributes).forEach(function (item) {\n\t _this4.container.setAttribute(item.name, item.value);\n\t });\n\t this.container.classList.add('ql-picker');\n\t this.label = this.buildLabel();\n\t this.buildOptions();\n\t }\n\t }, {\n\t key: 'close',\n\t value: function close() {\n\t this.container.classList.remove('ql-expanded');\n\t }\n\t }, {\n\t key: 'selectItem',\n\t value: function selectItem(item) {\n\t var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t var selected = this.container.querySelector('.ql-selected');\n\t if (item === selected) return;\n\t if (selected != null) {\n\t selected.classList.remove('ql-selected');\n\t }\n\t if (item != null) {\n\t item.classList.add('ql-selected');\n\t this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n\t if (item.hasAttribute('data-value')) {\n\t this.label.setAttribute('data-value', item.getAttribute('data-value'));\n\t } else {\n\t this.label.removeAttribute('data-value');\n\t }\n\t if (item.hasAttribute('data-label')) {\n\t this.label.setAttribute('data-label', item.getAttribute('data-label'));\n\t } else {\n\t this.label.removeAttribute('data-label');\n\t }\n\t if (trigger) {\n\t if (typeof Event === 'function') {\n\t this.select.dispatchEvent(new Event('change'));\n\t } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n\t // IE11\n\t var event = document.createEvent('Event');\n\t event.initEvent('change', true, true);\n\t this.select.dispatchEvent(event);\n\t }\n\t this.close();\n\t }\n\t } else {\n\t this.label.removeAttribute('data-value');\n\t this.label.removeAttribute('data-label');\n\t }\n\t }\n\t }, {\n\t key: 'update',\n\t value: function update() {\n\t var option = void 0;\n\t if (this.select.selectedIndex > -1) {\n\t var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n\t option = this.select.options[this.select.selectedIndex];\n\t this.selectItem(item);\n\t } else {\n\t this.selectItem(null);\n\t }\n\t var isActive = option != null && option !== this.select.querySelector('option[selected]');\n\t this.label.classList.toggle('ql-active', isActive);\n\t }\n\t }]);\n\t\n\t return Picker;\n\t}();\n\t\n\texports.default = Picker;\n\n/***/ },\n/* 105 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ },\n/* 106 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _picker = __webpack_require__(104);\n\t\n\tvar _picker2 = _interopRequireDefault(_picker);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ColorPicker = function (_Picker) {\n\t _inherits(ColorPicker, _Picker);\n\t\n\t function ColorPicker(select, label) {\n\t _classCallCheck(this, ColorPicker);\n\t\n\t var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\t\n\t _this.label.innerHTML = label;\n\t _this.container.classList.add('ql-color-picker');\n\t [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n\t item.classList.add('ql-primary');\n\t });\n\t return _this;\n\t }\n\t\n\t _createClass(ColorPicker, [{\n\t key: 'buildItem',\n\t value: function buildItem(option) {\n\t var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n\t item.style.backgroundColor = option.getAttribute('value') || '';\n\t return item;\n\t }\n\t }, {\n\t key: 'selectItem',\n\t value: function selectItem(item, trigger) {\n\t _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n\t var colorLabel = this.label.querySelector('.ql-color-label');\n\t var value = item ? item.getAttribute('data-value') || '' : '';\n\t if (colorLabel) {\n\t if (colorLabel.tagName === 'line') {\n\t colorLabel.style.stroke = value;\n\t } else {\n\t colorLabel.style.fill = value;\n\t }\n\t }\n\t }\n\t }]);\n\t\n\t return ColorPicker;\n\t}(_picker2.default);\n\t\n\texports.default = ColorPicker;\n\n/***/ },\n/* 107 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _picker = __webpack_require__(104);\n\t\n\tvar _picker2 = _interopRequireDefault(_picker);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar IconPicker = function (_Picker) {\n\t _inherits(IconPicker, _Picker);\n\t\n\t function IconPicker(select, icons) {\n\t _classCallCheck(this, IconPicker);\n\t\n\t var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\t\n\t _this.container.classList.add('ql-icon-picker');\n\t [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n\t item.innerHTML = icons[item.getAttribute('data-value') || ''];\n\t });\n\t _this.defaultItem = _this.container.querySelector('.ql-selected');\n\t _this.selectItem(_this.defaultItem);\n\t return _this;\n\t }\n\t\n\t _createClass(IconPicker, [{\n\t key: 'selectItem',\n\t value: function selectItem(item, trigger) {\n\t _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n\t item = item || this.defaultItem;\n\t this.label.innerHTML = item.innerHTML;\n\t }\n\t }]);\n\t\n\t return IconPicker;\n\t}(_picker2.default);\n\t\n\texports.default = IconPicker;\n\n/***/ },\n/* 108 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar Tooltip = function () {\n\t function Tooltip(quill, boundsContainer) {\n\t var _this = this;\n\t\n\t _classCallCheck(this, Tooltip);\n\t\n\t this.quill = quill;\n\t this.boundsContainer = boundsContainer || document.body;\n\t this.root = quill.addContainer('ql-tooltip');\n\t this.root.innerHTML = this.constructor.TEMPLATE;\n\t var offset = parseInt(window.getComputedStyle(this.root).marginTop);\n\t this.quill.root.addEventListener('scroll', function () {\n\t _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + offset + 'px';\n\t _this.checkBounds();\n\t });\n\t this.hide();\n\t }\n\t\n\t _createClass(Tooltip, [{\n\t key: 'checkBounds',\n\t value: function checkBounds() {\n\t this.root.classList.toggle('ql-out-top', this.root.offsetTop <= 0);\n\t this.root.classList.remove('ql-out-bottom');\n\t this.root.classList.toggle('ql-out-bottom', this.root.offsetTop + this.root.offsetHeight >= this.quill.root.offsetHeight);\n\t }\n\t }, {\n\t key: 'hide',\n\t value: function hide() {\n\t this.root.classList.add('ql-hidden');\n\t }\n\t }, {\n\t key: 'position',\n\t value: function position(reference) {\n\t var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n\t var top = reference.bottom + this.quill.root.scrollTop;\n\t this.root.style.left = left + 'px';\n\t this.root.style.top = top + 'px';\n\t var containerBounds = this.boundsContainer.getBoundingClientRect();\n\t var rootBounds = this.root.getBoundingClientRect();\n\t var shift = 0;\n\t if (rootBounds.right > containerBounds.right) {\n\t shift = containerBounds.right - rootBounds.right;\n\t this.root.style.left = left + shift + 'px';\n\t }\n\t if (rootBounds.left < containerBounds.left) {\n\t shift = containerBounds.left - rootBounds.left;\n\t this.root.style.left = left + shift + 'px';\n\t }\n\t this.checkBounds();\n\t return shift;\n\t }\n\t }, {\n\t key: 'show',\n\t value: function show() {\n\t this.root.classList.remove('ql-editing');\n\t this.root.classList.remove('ql-hidden');\n\t }\n\t }]);\n\t\n\t return Tooltip;\n\t}();\n\t\n\texports.default = Tooltip;\n\n/***/ },\n/* 109 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.BubbleTooltip = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _emitter = __webpack_require__(36);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _base = __webpack_require__(110);\n\t\n\tvar _base2 = _interopRequireDefault(_base);\n\t\n\tvar _selection = __webpack_require__(44);\n\t\n\tvar _icons = __webpack_require__(72);\n\t\n\tvar _icons2 = _interopRequireDefault(_icons);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\t\n\tvar BubbleTheme = function (_BaseTheme) {\n\t _inherits(BubbleTheme, _BaseTheme);\n\t\n\t function BubbleTheme(quill, options) {\n\t _classCallCheck(this, BubbleTheme);\n\t\n\t if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n\t options.modules.toolbar.container = TOOLBAR_CONFIG;\n\t }\n\t\n\t var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\t\n\t _this.quill.container.classList.add('ql-bubble');\n\t return _this;\n\t }\n\t\n\t _createClass(BubbleTheme, [{\n\t key: 'extendToolbar',\n\t value: function extendToolbar(toolbar) {\n\t this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n\t this.tooltip.root.appendChild(toolbar.container);\n\t this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n\t this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n\t }\n\t }]);\n\t\n\t return BubbleTheme;\n\t}(_base2.default);\n\t\n\tBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n\t modules: {\n\t toolbar: {\n\t handlers: {\n\t link: function link(value) {\n\t if (!value) {\n\t this.quill.format('link', false);\n\t } else {\n\t this.quill.theme.tooltip.edit();\n\t }\n\t }\n\t }\n\t }\n\t }\n\t});\n\t\n\tvar BubbleTooltip = function (_BaseTooltip) {\n\t _inherits(BubbleTooltip, _BaseTooltip);\n\t\n\t function BubbleTooltip(quill, bounds) {\n\t _classCallCheck(this, BubbleTooltip);\n\t\n\t var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\t\n\t _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range) {\n\t if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n\t if (range != null && range.length > 0) {\n\t _this2.show();\n\t // Lock our width so we will expand beyond our offsetParent boundaries\n\t _this2.root.style.left = '0px';\n\t _this2.root.style.width = '';\n\t _this2.root.style.width = _this2.root.offsetWidth + 'px';\n\t var lines = _this2.quill.scroll.lines(range.index, range.length);\n\t if (lines.length === 1) {\n\t _this2.position(_this2.quill.getBounds(range));\n\t } else {\n\t var lastLine = lines[lines.length - 1];\n\t var index = lastLine.offset(_this2.quill.scroll);\n\t var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n\t var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n\t _this2.position(_bounds);\n\t }\n\t } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n\t _this2.hide();\n\t }\n\t });\n\t return _this2;\n\t }\n\t\n\t _createClass(BubbleTooltip, [{\n\t key: 'listen',\n\t value: function listen() {\n\t var _this3 = this;\n\t\n\t _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n\t this.root.querySelector('.ql-close').addEventListener('click', function () {\n\t _this3.root.classList.remove('ql-editing');\n\t });\n\t this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n\t // Let selection be restored by toolbar handlers before repositioning\n\t setTimeout(function () {\n\t if (_this3.root.classList.contains('ql-hidden')) return;\n\t var range = _this3.quill.getSelection();\n\t if (range != null) {\n\t _this3.position(_this3.quill.getBounds(range));\n\t }\n\t }, 1);\n\t });\n\t }\n\t }, {\n\t key: 'cancel',\n\t value: function cancel() {\n\t this.show();\n\t }\n\t }, {\n\t key: 'position',\n\t value: function position(reference) {\n\t var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n\t var arrow = this.root.querySelector('.ql-tooltip-arrow');\n\t arrow.style.marginLeft = '';\n\t if (shift === 0) return shift;\n\t arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n\t }\n\t }]);\n\t\n\t return BubbleTooltip;\n\t}(_base.BaseTooltip);\n\t\n\tBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\t\n\texports.BubbleTooltip = BubbleTooltip;\n\texports.default = BubbleTheme;\n\n/***/ },\n/* 110 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.BaseTooltip = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _quillDelta = __webpack_require__(20);\n\t\n\tvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\t\n\tvar _emitter = __webpack_require__(36);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _keyboard = __webpack_require__(56);\n\t\n\tvar _keyboard2 = _interopRequireDefault(_keyboard);\n\t\n\tvar _theme = __webpack_require__(45);\n\t\n\tvar _theme2 = _interopRequireDefault(_theme);\n\t\n\tvar _colorPicker = __webpack_require__(106);\n\t\n\tvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\t\n\tvar _iconPicker = __webpack_require__(107);\n\t\n\tvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\t\n\tvar _picker = __webpack_require__(104);\n\t\n\tvar _picker2 = _interopRequireDefault(_picker);\n\t\n\tvar _tooltip = __webpack_require__(108);\n\t\n\tvar _tooltip2 = _interopRequireDefault(_tooltip);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar ALIGNS = [false, 'center', 'right', 'justify'];\n\t\n\tvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\t\n\tvar FONTS = [false, 'serif', 'monospace'];\n\t\n\tvar HEADERS = ['1', '2', '3', false];\n\t\n\tvar SIZES = ['small', false, 'large', 'huge'];\n\t\n\tvar BaseTheme = function (_Theme) {\n\t _inherits(BaseTheme, _Theme);\n\t\n\t function BaseTheme(quill, options) {\n\t _classCallCheck(this, BaseTheme);\n\t\n\t var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\t\n\t var listener = function listener(e) {\n\t if (!document.body.contains(quill.root)) {\n\t return document.body.removeEventListener('click', listener);\n\t }\n\t if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n\t _this.tooltip.hide();\n\t }\n\t if (_this.pickers != null) {\n\t _this.pickers.forEach(function (picker) {\n\t if (!picker.container.contains(e.target)) {\n\t picker.close();\n\t }\n\t });\n\t }\n\t };\n\t document.body.addEventListener('click', listener);\n\t return _this;\n\t }\n\t\n\t _createClass(BaseTheme, [{\n\t key: 'addModule',\n\t value: function addModule(name) {\n\t var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n\t if (name === 'toolbar') {\n\t this.extendToolbar(module);\n\t }\n\t return module;\n\t }\n\t }, {\n\t key: 'buildButtons',\n\t value: function buildButtons(buttons, icons) {\n\t buttons.forEach(function (button) {\n\t var className = button.getAttribute('class') || '';\n\t className.split(/\\s+/).forEach(function (name) {\n\t if (!name.startsWith('ql-')) return;\n\t name = name.slice('ql-'.length);\n\t if (icons[name] == null) return;\n\t if (name === 'direction') {\n\t button.innerHTML = icons[name][''] + icons[name]['rtl'];\n\t } else if (typeof icons[name] === 'string') {\n\t button.innerHTML = icons[name];\n\t } else {\n\t var value = button.value || '';\n\t if (value != null && icons[name][value]) {\n\t button.innerHTML = icons[name][value];\n\t }\n\t }\n\t });\n\t });\n\t }\n\t }, {\n\t key: 'buildPickers',\n\t value: function buildPickers(selects, icons) {\n\t var _this2 = this;\n\t\n\t this.pickers = selects.map(function (select) {\n\t if (select.classList.contains('ql-align')) {\n\t if (select.querySelector('option') == null) {\n\t fillSelect(select, ALIGNS);\n\t }\n\t return new _iconPicker2.default(select, icons.align);\n\t } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n\t var format = select.classList.contains('ql-background') ? 'background' : 'color';\n\t if (select.querySelector('option') == null) {\n\t fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n\t }\n\t return new _colorPicker2.default(select, icons[format]);\n\t } else {\n\t if (select.querySelector('option') == null) {\n\t if (select.classList.contains('ql-font')) {\n\t fillSelect(select, FONTS);\n\t } else if (select.classList.contains('ql-header')) {\n\t fillSelect(select, HEADERS);\n\t } else if (select.classList.contains('ql-size')) {\n\t fillSelect(select, SIZES);\n\t }\n\t }\n\t return new _picker2.default(select);\n\t }\n\t });\n\t var update = function update() {\n\t _this2.pickers.forEach(function (picker) {\n\t picker.update();\n\t });\n\t };\n\t this.quill.on(_emitter2.default.events.SELECTION_CHANGE, update).on(_emitter2.default.events.SCROLL_OPTIMIZE, update);\n\t }\n\t }]);\n\t\n\t return BaseTheme;\n\t}(_theme2.default);\n\t\n\tBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n\t modules: {\n\t toolbar: {\n\t handlers: {\n\t formula: function formula() {\n\t this.quill.theme.tooltip.edit('formula');\n\t },\n\t image: function image() {\n\t var _this3 = this;\n\t\n\t var fileInput = this.container.querySelector('input.ql-image[type=file]');\n\t if (fileInput == null) {\n\t fileInput = document.createElement('input');\n\t fileInput.setAttribute('type', 'file');\n\t fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon, image/svg+xml');\n\t fileInput.classList.add('ql-image');\n\t fileInput.addEventListener('change', function () {\n\t if (fileInput.files != null && fileInput.files[0] != null) {\n\t var reader = new FileReader();\n\t reader.onload = function (e) {\n\t var range = _this3.quill.getSelection(true);\n\t _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n\t fileInput.value = \"\";\n\t };\n\t reader.readAsDataURL(fileInput.files[0]);\n\t }\n\t });\n\t this.container.appendChild(fileInput);\n\t }\n\t fileInput.click();\n\t },\n\t video: function video() {\n\t this.quill.theme.tooltip.edit('video');\n\t }\n\t }\n\t }\n\t }\n\t});\n\t\n\tvar BaseTooltip = function (_Tooltip) {\n\t _inherits(BaseTooltip, _Tooltip);\n\t\n\t function BaseTooltip(quill, boundsContainer) {\n\t _classCallCheck(this, BaseTooltip);\n\t\n\t var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\t\n\t _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n\t _this4.listen();\n\t return _this4;\n\t }\n\t\n\t _createClass(BaseTooltip, [{\n\t key: 'listen',\n\t value: function listen() {\n\t var _this5 = this;\n\t\n\t this.textbox.addEventListener('keydown', function (event) {\n\t if (_keyboard2.default.match(event, 'enter')) {\n\t _this5.save();\n\t event.preventDefault();\n\t } else if (_keyboard2.default.match(event, 'escape')) {\n\t _this5.cancel();\n\t event.preventDefault();\n\t }\n\t });\n\t }\n\t }, {\n\t key: 'cancel',\n\t value: function cancel() {\n\t this.hide();\n\t }\n\t }, {\n\t key: 'edit',\n\t value: function edit() {\n\t var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n\t var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\n\t this.root.classList.remove('ql-hidden');\n\t this.root.classList.add('ql-editing');\n\t if (preview != null) {\n\t this.textbox.value = preview;\n\t } else if (mode !== this.root.getAttribute('data-mode')) {\n\t this.textbox.value = '';\n\t }\n\t this.position(this.quill.getBounds(this.quill.selection.savedRange));\n\t this.textbox.select();\n\t this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n\t this.root.setAttribute('data-mode', mode);\n\t }\n\t }, {\n\t key: 'restoreFocus',\n\t value: function restoreFocus() {\n\t var scrollTop = this.quill.root.scrollTop;\n\t this.quill.focus();\n\t this.quill.root.scrollTop = scrollTop;\n\t }\n\t }, {\n\t key: 'save',\n\t value: function save() {\n\t var value = this.textbox.value;\n\t switch (this.root.getAttribute('data-mode')) {\n\t case 'link':\n\t {\n\t var scrollTop = this.quill.root.scrollTop;\n\t if (this.linkRange) {\n\t this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n\t delete this.linkRange;\n\t } else {\n\t this.restoreFocus();\n\t this.quill.format('link', value, _emitter2.default.sources.USER);\n\t }\n\t this.quill.root.scrollTop = scrollTop;\n\t break;\n\t }\n\t case 'video':\n\t {\n\t var match = value.match(/^(https?):\\/\\/(www\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || value.match(/^(https?):\\/\\/(www\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n\t if (match) {\n\t value = match[1] + '://www.youtube.com/embed/' + match[3] + '?showinfo=0';\n\t } else if (match = value.match(/^(https?):\\/\\/(www\\.)?vimeo\\.com\\/(\\d+)/)) {\n\t // eslint-disable-line no-cond-assign\n\t value = match[1] + '://player.vimeo.com/video/' + match[3] + '/';\n\t }\n\t } // eslint-disable-next-line no-fallthrough\n\t case 'formula':\n\t {\n\t var range = this.quill.getSelection(true);\n\t var index = range.index + range.length;\n\t if (range != null) {\n\t this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n\t if (this.root.getAttribute('data-mode') === 'formula') {\n\t this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n\t }\n\t this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n\t }\n\t break;\n\t }\n\t default:\n\t }\n\t this.textbox.value = '';\n\t this.hide();\n\t }\n\t }]);\n\t\n\t return BaseTooltip;\n\t}(_tooltip2.default);\n\t\n\tfunction fillSelect(select, values) {\n\t var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\t\n\t values.forEach(function (value) {\n\t var option = document.createElement('option');\n\t if (value === defaultValue) {\n\t option.setAttribute('selected', 'selected');\n\t } else {\n\t option.setAttribute('value', value);\n\t }\n\t select.appendChild(option);\n\t });\n\t}\n\t\n\texports.BaseTooltip = BaseTooltip;\n\texports.default = BaseTheme;\n\n/***/ },\n/* 111 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _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\t\n\tvar _extend = __webpack_require__(30);\n\t\n\tvar _extend2 = _interopRequireDefault(_extend);\n\t\n\tvar _emitter = __webpack_require__(36);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _base = __webpack_require__(110);\n\t\n\tvar _base2 = _interopRequireDefault(_base);\n\t\n\tvar _link = __webpack_require__(63);\n\t\n\tvar _link2 = _interopRequireDefault(_link);\n\t\n\tvar _selection = __webpack_require__(44);\n\t\n\tvar _icons = __webpack_require__(72);\n\t\n\tvar _icons2 = _interopRequireDefault(_icons);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\t\n\tvar SnowTheme = function (_BaseTheme) {\n\t _inherits(SnowTheme, _BaseTheme);\n\t\n\t function SnowTheme(quill, options) {\n\t _classCallCheck(this, SnowTheme);\n\t\n\t if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n\t options.modules.toolbar.container = TOOLBAR_CONFIG;\n\t }\n\t\n\t var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\t\n\t _this.quill.container.classList.add('ql-snow');\n\t return _this;\n\t }\n\t\n\t _createClass(SnowTheme, [{\n\t key: 'extendToolbar',\n\t value: function extendToolbar(toolbar) {\n\t toolbar.container.classList.add('ql-snow');\n\t this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n\t this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n\t this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n\t if (toolbar.container.querySelector('.ql-link')) {\n\t this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n\t toolbar.handlers['link'].call(toolbar, !context.format.link);\n\t });\n\t }\n\t }\n\t }]);\n\t\n\t return SnowTheme;\n\t}(_base2.default);\n\t\n\tSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n\t modules: {\n\t toolbar: {\n\t handlers: {\n\t link: function link(value) {\n\t if (value) {\n\t var range = this.quill.getSelection();\n\t if (range == null || range.length == 0) return;\n\t var preview = this.quill.getText(range);\n\t if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n\t preview = 'mailto:' + preview;\n\t }\n\t var tooltip = this.quill.theme.tooltip;\n\t tooltip.edit('link', preview);\n\t } else {\n\t this.quill.format('link', false);\n\t }\n\t }\n\t }\n\t }\n\t }\n\t});\n\t\n\tvar SnowTooltip = function (_BaseTooltip) {\n\t _inherits(SnowTooltip, _BaseTooltip);\n\t\n\t function SnowTooltip(quill, bounds) {\n\t _classCallCheck(this, SnowTooltip);\n\t\n\t var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\t\n\t _this2.preview = _this2.root.querySelector('a.ql-preview');\n\t return _this2;\n\t }\n\t\n\t _createClass(SnowTooltip, [{\n\t key: 'listen',\n\t value: function listen() {\n\t var _this3 = this;\n\t\n\t _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n\t this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n\t if (_this3.root.classList.contains('ql-editing')) {\n\t _this3.save();\n\t } else {\n\t _this3.edit('link', _this3.preview.textContent);\n\t }\n\t event.preventDefault();\n\t });\n\t this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n\t if (_this3.linkRange != null) {\n\t _this3.restoreFocus();\n\t _this3.quill.formatText(_this3.linkRange, 'link', false, _emitter2.default.sources.USER);\n\t delete _this3.linkRange;\n\t }\n\t event.preventDefault();\n\t _this3.hide();\n\t });\n\t this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range) {\n\t if (range == null) return;\n\t if (range.length === 0) {\n\t var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n\t _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n\t link = _quill$scroll$descend2[0],\n\t offset = _quill$scroll$descend2[1];\n\t\n\t if (link != null) {\n\t _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n\t var preview = _link2.default.formats(link.domNode);\n\t _this3.preview.textContent = preview;\n\t _this3.preview.setAttribute('href', preview);\n\t _this3.show();\n\t _this3.position(_this3.quill.getBounds(_this3.linkRange));\n\t return;\n\t }\n\t } else {\n\t delete _this3.linkRange;\n\t }\n\t _this3.hide();\n\t });\n\t }\n\t }, {\n\t key: 'show',\n\t value: function show() {\n\t _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n\t this.root.removeAttribute('data-mode');\n\t }\n\t }]);\n\t\n\t return SnowTooltip;\n\t}(_base.BaseTooltip);\n\t\n\tSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\t\n\texports.default = SnowTheme;\n\n/***/ },\n/* 112 */\n/***/ function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {\n\n\tvar pSlice = Array.prototype.slice;\n\tvar objectKeys = __webpack_require__(__webpack_module_template_argument_0__);\n\tvar isArguments = __webpack_require__(__webpack_module_template_argument_1__);\n\t\n\tvar deepEqual = module.exports = function (actual, expected, opts) {\n\t if (!opts) opts = {};\n\t // 7.1. All identical values are equivalent, as determined by ===.\n\t if (actual === expected) {\n\t return true;\n\t\n\t } else if (actual instanceof Date && expected instanceof Date) {\n\t return actual.getTime() === expected.getTime();\n\t\n\t // 7.3. Other pairs that do not both pass typeof value == 'object',\n\t // equivalence is determined by ==.\n\t } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n\t return opts.strict ? actual === expected : actual == expected;\n\t\n\t // 7.4. For all other Object pairs, including Array objects, equivalence is\n\t // determined by having the same number of owned properties (as verified\n\t // with Object.prototype.hasOwnProperty.call), the same set of keys\n\t // (although not necessarily the same order), equivalent values for every\n\t // corresponding key, and an identical 'prototype' property. Note: this\n\t // accounts for both named and indexed properties on Arrays.\n\t } else {\n\t return objEquiv(actual, expected, opts);\n\t }\n\t}\n\t\n\tfunction isUndefinedOrNull(value) {\n\t return value === null || value === undefined;\n\t}\n\t\n\tfunction isBuffer (x) {\n\t if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n\t if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n\t return false;\n\t }\n\t if (x.length > 0 && typeof x[0] !== 'number') return false;\n\t return true;\n\t}\n\t\n\tfunction objEquiv(a, b, opts) {\n\t var i, key;\n\t if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n\t return false;\n\t // an identical 'prototype' property.\n\t if (a.prototype !== b.prototype) return false;\n\t //~~~I've managed to break Object.keys through screwy arguments passing.\n\t // Converting to array solves the problem.\n\t if (isArguments(a)) {\n\t if (!isArguments(b)) {\n\t return false;\n\t }\n\t a = pSlice.call(a);\n\t b = pSlice.call(b);\n\t return deepEqual(a, b, opts);\n\t }\n\t if (isBuffer(a)) {\n\t if (!isBuffer(b)) {\n\t return false;\n\t }\n\t if (a.length !== b.length) return false;\n\t for (i = 0; i < a.length; i++) {\n\t if (a[i] !== b[i]) return false;\n\t }\n\t return true;\n\t }\n\t try {\n\t var ka = objectKeys(a),\n\t kb = objectKeys(b);\n\t } catch (e) {//happens when one is a string literal and the other isn't\n\t return false;\n\t }\n\t // having the same number of owned properties (keys incorporates\n\t // hasOwnProperty)\n\t if (ka.length != kb.length)\n\t return false;\n\t //the same set of keys (although not necessarily the same order),\n\t ka.sort();\n\t kb.sort();\n\t //~~~cheap key test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t if (ka[i] != kb[i])\n\t return false;\n\t }\n\t //equivalent values for every corresponding key, and\n\t //~~~possibly expensive deep test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t key = ka[i];\n\t if (!deepEqual(a[key], b[key], opts)) return false;\n\t }\n\t return typeof a === typeof b;\n\t}\n\n\n/***/ }\n/******/ ])))\n});\n;\n\n\n// WEBPACK FOOTER //\n// quill.min.js"," \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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 12da403d1f2adb6b6342","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\nimport Formula from './modules/formula';\nimport Syntax from './modules/syntax';\nimport Toolbar from './modules/toolbar';\n\nimport Icons from './ui/icons';\nimport Picker from './ui/picker';\nimport ColorPicker from './ui/color-picker';\nimport IconPicker from './ui/icon-picker';\nimport Tooltip from './ui/tooltip';\n\nimport BubbleTheme from './themes/bubble';\nimport 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\nmodule.exports = Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./quill.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\nmodule.exports = Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./core.js","\"use strict\";\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Parchment;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/parchment.ts\n// module id = 2\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar linked_list_1 = require('../../collection/linked-list');\nvar shadow_1 = require('./shadow');\nvar Registry = require('../../registry');\nvar ContainerBlot = (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot() {\n _super.apply(this, arguments);\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n var _this = this;\n _super.prototype.attach.call(this);\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice.call(this.domNode.childNodes).reverse().forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head);\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 = [], 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 && !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 () {\n _super.prototype.optimize.call(this);\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();\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) {\n var _this = this;\n var addedNodes = [], 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 if (node.parentNode != null &&\n (document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY)) {\n // Node has not actually been removed\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.filter(function (node) {\n return node.parentNode == _this.domNode;\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 }).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);\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 blot.domNode.appendChild(child);\n });\n node.parentNode.replaceChild(blot.domNode, node);\n blot.attach();\n }\n }\n return blot;\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ContainerBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/abstract/container.ts\n// module id = 3\n// module chunks = 0","\"use strict\";\nvar LinkedList = (function () {\n function LinkedList() {\n this.head = this.tail = undefined;\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 - 0] = arguments[_i];\n }\n this.insertBefore(nodes[0], undefined);\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 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 = undefined;\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 || (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}());\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LinkedList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/collection/linked-list.ts\n// module id = 4\n// module chunks = 0","\"use strict\";\nvar Registry = require('../../registry');\nvar ShadowBlot = (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n this.attach();\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 this.domNode[Registry.DATA_KEY] = { blot: this };\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode();\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\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 (this.parent != null) {\n this.parent.children.remove(this);\n }\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n var refDomNode = refBlot.domNode;\n }\n if (this.next == null || this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\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 ;\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 () {\n // TODO clean up once we use WeakMap\n if (this.domNode[Registry.DATA_KEY] != null) {\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) {\n if (mutations === void 0) { mutations = []; }\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}());\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ShadowBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/abstract/shadow.ts\n// module id = 5\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar ParchmentError = (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n message = '[Parchment] ' + message;\n _super.call(this, message);\n this.message = message;\n this.name = this.constructor.name;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\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})(exports.Scope || (exports.Scope = {}));\nvar Scope = exports.Scope;\n;\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 = input instanceof 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 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 }\n else if (query instanceof Text) {\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 if (query instanceof Node) {\n console.log(query.nodeType);\n }\n }\n if (match == null)\n return null;\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 - 0] = 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// ../parchment/src/registry.ts\n// module id = 6\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar attributor_1 = require('../../attributor/attributor');\nvar store_1 = require('../../attributor/store');\nvar container_1 = require('./container');\nvar Registry = require('../../registry');\nvar FormatBlot = (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot() {\n _super.apply(this, arguments);\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.attach = function () {\n _super.prototype.attach.call(this);\n this.attributes = new store_1.default(this.domNode);\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) {\n var _this = this;\n _super.prototype.update.call(this, mutations);\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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = FormatBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/abstract/format.ts\n// module id = 7\n// module chunks = 0","\"use strict\";\nvar Registry = require('../registry');\nvar Attributor = (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 && (this.whitelist == null || this.whitelist.indexOf(value) > -1)) {\n return true;\n }\n return false;\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n return node.getAttribute(this.keyName);\n };\n return Attributor;\n}());\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Attributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/attributor/attributor.ts\n// module id = 8\n// module chunks = 0","\"use strict\";\nvar attributor_1 = require('./attributor');\nvar class_1 = require('./class');\nvar style_1 = require('./style');\nvar Registry = require('../registry');\nvar AttributorStore = (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\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.concat(classes).concat(styles).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}());\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = AttributorStore;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/attributor/store.ts\n// module id = 9\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\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 = (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n _super.apply(this, arguments);\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).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 return result.slice(this.keyName.length + 1); // +1 for hyphen\n };\n return ClassAttributor;\n}(attributor_1.default));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ClassAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/attributor/class.ts\n// module id = 10\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar attributor_1 = require('./attributor');\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n _super.apply(this, arguments);\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 node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n return node.style[camelize(this.keyName)];\n };\n return StyleAttributor;\n}(attributor_1.default));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/attributor/style.ts\n// module id = 11\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar shadow_1 = require('./shadow');\nvar Registry = require('../../registry');\nvar LeafBlot = (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n _super.apply(this, arguments);\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (node !== this.domNode)\n return -1;\n return Math.min(offset, 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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = LeafBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/abstract/leaf.ts\n// module id = 12\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\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 = (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = this;\n _super.call(this, node);\n this.parent = null;\n this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n this.observer.observe(this.domNode, OBSERVER_CONFIG);\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) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n _super.prototype.optimize.call(this);\n mutations.push.apply(mutations, this.observer.takeRecords());\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 if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n if (blot.domNode[Registry.DATA_KEY] == null || 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();\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 = this.observer.takeRecords();\n mutations.push.apply(mutations, remaining);\n }\n };\n ScrollBlot.prototype.update = function (mutations) {\n var _this = this;\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations.map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n }).forEach(function (blot) {\n if (blot == null || blot === _this || blot.domNode[Registry.DATA_KEY] == null)\n return;\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || []);\n });\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations);\n }\n this.optimize(mutations);\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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = ScrollBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/scroll.ts\n// module id = 13\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\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 for (var prop in obj1) {\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n _super.apply(this, arguments);\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 () {\n _super.prototype.optimize.call(this);\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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = InlineBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/inline.ts\n// module id = 14\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar format_1 = require('./abstract/format');\nvar Registry = require('../registry');\nvar BlockBlot = (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n _super.apply(this, arguments);\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.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = BlockBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/block.ts\n// module id = 15\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar leaf_1 = require('./abstract/leaf');\nvar EmbedBlot = (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n _super.apply(this, arguments);\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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = EmbedBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/embed.ts\n// module id = 16\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar leaf_1 = require('./abstract/leaf');\nvar Registry = require('../registry');\nvar TextBlot = (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n _super.call(this, node);\n this.text = this.statics.value(this.domNode);\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n return domNode.data;\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 () {\n _super.prototype.optimize.call(this);\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) {\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));\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = TextBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../parchment/src/blot/text.ts\n// module id = 17\n// module chunks = 0","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 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 }\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.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\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(`<div class='ql-editor' style=\"white-space: normal;\">${html}<p><br></p></div>`);\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 if (!enabled) {\n this.blur();\n }\n }\n\n focus() {\n this.selection.focus();\n this.selection.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 if (typeof index === 'number') {\n return this.selection.getBounds(index, length);\n } else {\n return this.selection.getBounds(index.index, index.length);\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(), 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 getLength() {\n return this.scroll.length();\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 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 }\n this.selection.scrollIntoView();\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 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'].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","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\n// Disable resizing in Firefox\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n document.execCommand(\"enableObjectResizing\", false, false);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./core/polyfill.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.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.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.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 delta = new Delta();\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 // 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 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 predicate(line, iter.next(1).attributes || {});\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {});\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// ../delta/lib/delta.js\n// module id = 20\n// module chunks = 0","/**\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 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.<string>} 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.<string>} 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: A<ins>BA</ins>C -> <ins>AB</ins>AC\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/*\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// ../delta/~/fast-diff/diff.js\n// module id = 21\n// module chunks = 0","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../delta/~/deep-equal/lib/keys.js\n// module id = 23\n// module chunks = 0","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../delta/~/deep-equal/lib/is_arguments.js\n// module id = 24\n// module chunks = 0","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\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\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0],\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = 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} else if ((typeof target !== 'object' && typeof target !== 'function') || target == null) {\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 = target[name];\n\t\t\t\tcopy = 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\ttarget[name] = 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\ttarget[name] = 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//////////////////\n// WEBPACK FOOTER\n// ../delta/~/extend/index.js\n// module id = 25\n// module chunks = 0","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\n\nmodule.exports = lib;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../delta/lib/op.js\n// module id = 26\n// module chunks = 0","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 clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\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.batch = true;\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.batch = false;\n this.scroll.optimize();\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 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 child = this.scroll.children.head;\n return child.length() <= 1 && Object.keys(child.formats()).length == 0;\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 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","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() {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(Parchment.create('text', '\\n'));\n }\n super.optimize();\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();\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 extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Break from './break';\nimport Embed from './embed';\nimport Inline from './inline';\nimport TextBlot from './text';\n\n\nconst NEWLINE_LENGTH = 1;\n\n\nclass BlockEmbed extends 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() {\n super.optimize();\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, 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","import Embed from './embed';\n\n\nclass Break extends 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 Parchment from 'parchment';\n\nclass Embed extends Parchment.Embed { }\n\nexport default Embed;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/embed.js","import Embed from './embed';\nimport 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() {\n super.optimize();\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, 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 'code', 'underline', 'strike', 'italic', 'bold', 'script',\n 'link' // Must be higher\n];\n\n\nexport default Inline;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/inline.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","import Parchment from 'parchment';\nimport Embed from './embed';\nimport TextBlot from './text';\nimport Emitter from '../core/emitter';\n\n\nclass Cursor extends 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) return;\n if (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) return;\n this.selection.emitter.once(Emitter.events.SCROLL_OPTIMIZE, () => {\n [start, end] = [start, end].map(function(offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n this.selection.setNativeRange(restoreText, start, restoreText, end);\n });\n }\n\n update(mutations) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData' && mutation.target === this.textNode) {\n this.restore();\n }\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 EventEmitter from 'eventemitter3';\nimport logger from './logger';\n\nlet debug = logger('quill:events');\n\n\nclass Emitter extends EventEmitter {\n constructor() {\n super();\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\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","'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// ./~/eventemitter3/index.js\n// module id = 37\n// module chunks = 0","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].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\n\nexport default namespace;\n\n\n\n// WEBPACK FOOTER //\n// ./core/logger.js","var clone = (function() {\n'use strict';\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*/\nfunction clone(parent, circular, depth, prototype) {\n var filter;\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n filter = circular.filter;\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 (parent instanceof nativeMap) {\n child = new nativeMap();\n } else if (parent instanceof nativeSet) {\n child = new nativeSet();\n } else if (parent instanceof 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 child = new Buffer(parent.length);\n parent.copy(child);\n return child;\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 (parent instanceof nativeMap) {\n var keyIterator = parent.keys();\n while(true) {\n var next = keyIterator.next();\n if (next.done) {\n break;\n }\n var keyChild = _clone(next.value, depth - 1);\n var valueChild = _clone(parent.get(next.value), depth - 1);\n child.set(keyChild, valueChild);\n }\n }\n if (parent instanceof nativeSet) {\n var iterator = parent.keys();\n while(true) {\n var next = iterator.next();\n if (next.done) {\n break;\n }\n var entryChild = _clone(next.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 child[symbol] = _clone(parent[symbol], depth - 1);\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// ./~/clone/clone.js\n// module id = 39\n// module chunks = 0","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","import Parchment from 'parchment';\nimport clone from 'clone';\nimport equal from 'deep-equal';\nimport Emitter from './emitter';\nimport logger from './logger';\n\nlet debug = logger('quill:selection');\n\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.root = this.scroll.domNode;\n this.root.addEventListener('compositionstart', () => {\n this.composing = true;\n });\n this.root.addEventListener('compositionend', () => {\n this.composing = false;\n });\n this.cursor = Parchment.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n ['keyup', 'mouseup', 'mouseleave', 'touchend', 'touchleave', 'focus', 'blur'].forEach((eventName) => {\n this.root.addEventListener(eventName, () => {\n // When range used to be a selection and user click within the selection,\n // the range now being a cursor has not updated yet without setTimeout\n setTimeout(this.update.bind(this, Emitter.sources.USER), 100);\n });\n });\n this.emitter.on(Emitter.events.EDITOR_CHANGE, (type, delta) => {\n if (type === Emitter.events.TEXT_CHANGE && delta.length() > 0) {\n this.update(Emitter.sources.SILENT);\n }\n });\n this.emitter.on(Emitter.events.SCROLL_BEFORE_UPDATE, () => {\n let native = this.getNativeRange();\n if (native == null) return;\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 this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.update(Emitter.sources.SILENT);\n }\n\n focus() {\n if (this.hasFocus()) return;\n let bodyTop = document.body.scrollTop;\n this.root.focus();\n document.body.scrollTop = bodyTop;\n this.setRange(this.savedRange);\n }\n\n format(format, value) {\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 bounds, 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 bounds = 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 bounds = {\n height: rect.height,\n left: rect[side],\n width: 0,\n top: rect.top\n };\n }\n let containerBounds = this.root.parentNode.getBoundingClientRect();\n return {\n left: bounds.left - containerBounds.left,\n right: bounds.left + bounds.width - containerBounds.left,\n top: bounds.top - containerBounds.top,\n bottom: bounds.top + bounds.height - containerBounds.top,\n height: bounds.height,\n width: bounds.width\n };\n }\n\n getNativeRange() {\n let selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n let nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\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 debug.info('getNativeRange', range);\n return range;\n }\n\n getRange() {\n let range = this.getNativeRange();\n if (range == null) return [null, null];\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 start = Math.min(...indexes), end = Math.max(...indexes);\n return [new Range(start, end-start), range];\n }\n\n hasFocus() {\n return document.activeElement === this.root;\n }\n\n scrollIntoView(range = this.lastRange) {\n if (range == null) return;\n let bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n if (this.root.offsetHeight < bounds.bottom) {\n let [line, ] = this.scroll.line(Math.min(range.index + range.length, this.scroll.length()-1));\n this.root.scrollTop = line.domNode.offsetTop + line.domNode.offsetHeight - this.root.offsetHeight;\n } else if (bounds.top < 0) {\n let [line, ] = this.scroll.line(Math.min(range.index, this.scroll.length()-1));\n this.root.scrollTop = line.domNode.offsetTop;\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 let selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n let nativeRange = this.getNativeRange();\n if (nativeRange == null || force ||\n startNode !== nativeRange.start.node || startOffset !== nativeRange.start.offset ||\n endNode !== nativeRange.end.node || endOffset !== nativeRange.end.offset) {\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 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 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 nativeRange, oldRange = this.lastRange;\n [this.lastRange, nativeRange] = this.getRange();\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","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 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';\nimport Emitter from '../core/emitter';\nimport Block, { BlockEmbed } from './block';\nimport Break from './break';\nimport Container from './container';\nimport CodeBlock from '../formats/code';\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 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 !(first instanceof BlockEmbed) && !(last instanceof BlockEmbed)) {\n if (last instanceof CodeBlock) {\n last.deleteAt(last.length() - 1, 1);\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 = []) {\n if (this.batch === true) return;\n super.optimize(mutations);\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_OPTIMIZE, mutations);\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 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 { 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\nconst CLIPBOARD_CONFIG = [\n [Node.TEXT_NODE, matchText],\n ['br', matchBreak],\n [Node.ELEMENT_NODE, matchNewline],\n [Node.ELEMENT_NODE, matchBlot],\n [Node.ELEMENT_NODE, matchSpacing],\n [Node.ELEMENT_NODE, matchAttributor],\n [Node.ELEMENT_NODE, matchStyles],\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((pair) => {\n this.addMatcher(...pair);\n });\n }\n\n addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n\n convert(html) {\n const DOM_KEY = '__ql-matcher';\n if (typeof html === 'string') {\n this.container.innerHTML = html;\n }\n let textMatchers = [], elementMatchers = [];\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 let traverse = (node) => { // 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);\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 let delta = traverse(this.container);\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 return this.quill.setContents(this.convert(index), html);\n } else {\n let paste = this.convert(html);\n return this.quill.updateContents(new Delta().retain(index).concat(paste), source);\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).delete(range.length);\n let bodyTop = document.body.scrollTop;\n this.container.focus();\n setTimeout(() => {\n this.quill.selection.update(Quill.sources.SILENT);\n delta = delta.concat(this.convert());\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 document.body.scrollTop = bodyTop;\n this.quill.selection.scrollIntoView();\n }, 1);\n }\n}\nClipboard.DEFAULTS = {\n matchers: []\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 matchAlias(format, node, delta) {\n return delta.compose(new Delta().retain(delta.length(), { [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 if (ATTRIBUTE_ATTRIBUTORS[name] != null) {\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node);\n }\n if (STYLE_ATTRIBUTORS[name] != null) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node);\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = delta.compose(new Delta().retain(delta.length(), 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 let formats = { [match.blotName]: match.formats(node) };\n delta = delta.compose(new Delta().retain(delta.length(), formats));\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 matchNewline(node, delta) {\n if (isLine(node) && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n let nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight*1.5) {\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.fontWeight && computeStyle(node).fontWeight === 'bold') {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = delta.compose(new Delta().retain(delta.length(), 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 <o:p>&nbsp;</o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\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, matchSpacing, matchText };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/clipboard.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\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","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 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.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 this.quill.selection.scrollIntoView();\n this.stack[dest].push(delta);\n }\n\n clear() {\n this.stack = { undo: [], redo: [] };\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 clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\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 (!!binding.shortKey !== evt[SHORTKEY] && binding.shortKey !== null) return false;\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function(key) {\n return (key != SHORTKEY && !!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 (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 this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^$/ }, handleDelete);\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n if (/Trident/i.test(navigator.userAgent)) {\n this.addBinding({ key: Keyboard.keys.BACKSPACE, shortKey: true }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE, shortKey: true }, handleDelete);\n }\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.scroll.line(range.index);\n let [leafStart, offsetStart] = this.quill.scroll.leaf(range.index);\n let [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.scroll.leaf(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 format: ['blockquote', '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.blockquote != null) {\n this.quill.format('blockquote', false, 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, context) {\n if (!context.collapsed) {\n this.quill.scroll.deleteAt(range.index, range.length);\n }\n this.quill.insertText(range.index, '\\t', Quill.sources.USER);\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 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function(range) {\n this.quill.scroll.insertAt(range.index, '\\n');\n this.quill.formatText(range.index + 1, 1, 'header', false, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.selection.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^(1\\.|-)$/,\n handler: function(range, context) {\n let length = context.prefix.length;\n this.quill.scroll.deleteAt(range.index - length, length);\n this.quill.formatLine(range.index - length, 1, 'list', length === 1 ? 'bullet' : 'ordered', Quill.sources.USER);\n this.quill.setSelection(range.index - length, Quill.sources.SILENT);\n }\n }\n }\n};\n\n\nfunction handleBackspace(range, context) {\n if (range.index === 0) return;\n let [line, ] = this.quill.scroll.line(range.index);\n let formats = {};\n if (context.offset === 0) {\n let curFormats = line.formats();\n let prevFormats = this.quill.getFormat(range.index-1, 1);\n formats = DeltaOp.attributes.diff(curFormats, prevFormats) || {};\n }\n this.quill.deleteText(range.index-1, 1, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index-1, 1, formats, Quill.sources.USER);\n }\n this.quill.selection.scrollIntoView();\n}\n\nfunction handleDelete(range) {\n if (range.index >= this.quill.getLength() - 1) return;\n this.quill.deleteText(range.index, 1, Quill.sources.USER);\n}\n\nfunction handleDeleteRange(range) {\n this.quill.deleteText(range, Quill.sources.USER);\n this.quill.setSelection(range.index, Quill.sources.SILENT);\n this.quill.selection.scrollIntoView();\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 this.quill.selection.scrollIntoView();\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 scrollOffset = this.quill.scroll.offset(block);\n let start = block.newlineIndex(offset, true) + 1;\n let end = block.newlineIndex(scrollOffset + 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 return binding;\n}\n\n\nexport default Keyboard;\n\n\n\n// WEBPACK FOOTER //\n// ./modules/keyboard.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 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 if (value === 'ordered') {\n value = 'OL';\n } else if (value === 'bullet') {\n value = 'UL';\n }\n return super.create(value);\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') return 'bullet';\n return undefined;\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() {\n super.optimize();\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.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 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() {\n super.optimize();\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","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\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, ['http', 'https', 'mailto']) ? 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';\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","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 Embed from '../blots/embed';\nimport { sanitize } from '../formats/link';\n\nconst ATTRIBUTES = [\n 'alt',\n 'height',\n 'width'\n];\n\n\nclass Image extends 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 Embed from '../blots/embed';\nimport Quill from '../core/quill';\n\n\nclass FormulaBlot extends Embed {\n static create(value) {\n let node = super.create(value);\n if (typeof value === 'string') {\n window.katex.render(value, node);\n node.setAttribute('data-value', value);\n }\n node.setAttribute('contenteditable', false);\n return node;\n }\n\n static value(domNode) {\n return domNode.getAttribute('data-value');\n }\n\n index() {\n return 1;\n }\n}\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\n\nfunction Formula() {\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n Quill.register(FormulaBlot, true);\n}\n\n\nexport { FormulaBlot, Formula as default };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/formula.js","import Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\nimport CodeBlock from '../formats/code';\n\n\nclass SyntaxCodeBlock extends CodeBlock {\n replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n super.replaceWith(block);\n }\n\n highlight(highlight) {\n if (this.cachedHTML !== this.domNode.innerHTML) {\n let text = this.domNode.textContent;\n if (text.trim().length > 0 || this.cachedHTML == null) {\n this.domNode.innerHTML = highlight(text);\n this.attach();\n }\n this.cachedHTML = this.domNode.innerHTML;\n }\n }\n}\nSyntaxCodeBlock.className = 'ql-syntax';\n\n\nlet CodeToken = new Parchment.Attributor.Class('token', 'hljs', {\n scope: Parchment.Scope.INLINE\n});\n\n\nclass Syntax extends Module {\n constructor(quill, options) {\n super(quill, options);\n if (typeof this.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n Quill.register(CodeToken, true);\n Quill.register(SyntaxCodeBlock, true);\n let timer = null;\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n if (timer != null) return;\n timer = setTimeout(() => {\n this.highlight();\n timer = null;\n }, 100);\n });\n this.highlight();\n }\n\n highlight() {\n if (this.quill.selection.composing) return;\n let range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach((code) => {\n code.highlight(this.options.highlight);\n });\n this.quill.update(Quill.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, Quill.sources.SILENT);\n }\n }\n}\nSyntax.DEFAULTS = {\n highlight: (function() {\n if (window.hljs == null) return null;\n return function(text) {\n let result = window.hljs.highlightAuto(text);\n return result.value;\n };\n })()\n};\n\n\nexport { SyntaxCodeBlock as CodeBlock, CodeToken, Syntax as default};\n\n\n\n// WEBPACK FOOTER //\n// ./modules/syntax.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\nlet debug = logger('quill:toolbar');\n\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 this.container = document.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 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 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 }\n}\n\n\nexport { Toolbar as default, addControls };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/toolbar.js","module.exports = {\n 'align': {\n '' : require('../assets/icons/align-left.svg'),\n 'center' : require('../assets/icons/align-center.svg'),\n 'right' : require('../assets/icons/align-right.svg'),\n 'justify' : require('../assets/icons/align-justify.svg')\n },\n 'background': require('../assets/icons/background.svg'),\n 'blockquote': require('../assets/icons/blockquote.svg'),\n 'bold' : require('../assets/icons/bold.svg'),\n 'clean' : require('../assets/icons/clean.svg'),\n 'code' : require('../assets/icons/code.svg'),\n 'code-block': require('../assets/icons/code.svg'),\n 'color' : require('../assets/icons/color.svg'),\n 'direction' : {\n '' : require('../assets/icons/direction-ltr.svg'),\n 'rtl' : require('../assets/icons/direction-rtl.svg')\n },\n 'float': {\n 'center' : require('../assets/icons/float-center.svg'),\n 'full' : require('../assets/icons/float-full.svg'),\n 'left' : require('../assets/icons/float-left.svg'),\n 'right' : require('../assets/icons/float-right.svg')\n },\n 'formula' : require('../assets/icons/formula.svg'),\n 'header': {\n '1' : require('../assets/icons/header.svg'),\n '2' : require('../assets/icons/header-2.svg')\n },\n 'italic' : require('../assets/icons/italic.svg'),\n 'image' : require('../assets/icons/image.svg'),\n 'indent': {\n '+1' : require('../assets/icons/indent.svg'),\n '-1' : require('../assets/icons/outdent.svg')\n },\n 'link' : require('../assets/icons/link.svg'),\n 'list': {\n 'ordered' : require('../assets/icons/list-ordered.svg'),\n 'bullet' : require('../assets/icons/list-bullet.svg')\n },\n 'script': {\n 'sub' : require('../assets/icons/subscript.svg'),\n 'super' : require('../assets/icons/superscript.svg'),\n },\n 'strike' : require('../assets/icons/strike.svg'),\n 'underline' : require('../assets/icons/underline.svg'),\n 'video' : require('../assets/icons/video.svg')\n};\n\n\n\n// WEBPACK FOOTER //\n// ./ui/icons.js","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-left.svg\n// module id = 73\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-center.svg\n// module id = 74\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-right.svg\n// module id = 75\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-justify.svg\n// module id = 76\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/background.svg\n// module id = 77\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/blockquote.svg\n// module id = 78\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/bold.svg\n// module id = 79\n// module chunks = 0","module.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/clean.svg\n// module id = 80\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/code.svg\n// module id = 81\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/color.svg\n// module id = 82\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/direction-ltr.svg\n// module id = 83\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/direction-rtl.svg\n// module id = 84\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-center.svg\n// module id = 85\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-full.svg\n// module id = 86\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-left.svg\n// module id = 87\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-right.svg\n// module id = 88\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/formula.svg\n// module id = 89\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <line class=\\\"ql-stroke ql-thin\\\" x1=13.5 x2=15.5 y1=14.5 y2=14.5></line> <path class=ql-fill d=M14.5,15a0.5,0.5,0,0,1-.5-0.5V12.085l-0.276.138A0.5,0.5,0,0,1,13.053,12c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,15,11.5v3A0.5,0.5,0,0,1,14.5,15Z></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/header.svg\n// module id = 90\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=3 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=11 y1=4 y2=14></line> <line class=ql-stroke x1=11 x2=3 y1=9 y2=9></line> <path class=\\\"ql-stroke ql-thin\\\" d=M15.5,14.5h-2c0-.234,1.85-1.076,1.85-2.234a0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/header-2.svg\n// module id = 91\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/italic.svg\n// module id = 92\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/image.svg\n// module id = 93\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/indent.svg\n// module id = 94\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/outdent.svg\n// module id = 95\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/link.svg\n// module id = 96\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/list-ordered.svg\n// module id = 97\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/list-bullet.svg\n// module id = 98\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/subscript.svg\n// module id = 99\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/superscript.svg\n// module id = 100\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/strike.svg\n// module id = 101\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/underline.svg\n// module id = 102\n// module chunks = 0","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/video.svg\n// module id = 103\n// module chunks = 0","import DropdownIcon from '../assets/icons/dropdown.svg';\n\n\nclass Picker {\n constructor(select) {\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n this.label.addEventListener('click', () => {\n this.container.classList.toggle('ql-expanded');\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n buildItem(option) {\n let item = document.createElement('span');\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', () => {\n this.selectItem(item, true);\n });\n return item;\n }\n\n buildLabel() {\n let label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = DropdownIcon;\n this.container.appendChild(label);\n return label;\n }\n\n buildOptions() {\n let options = document.createElement('span');\n options.classList.add('ql-picker-options');\n [].slice.call(this.select.options).forEach((option) => {\n let item = this.buildItem(option);\n options.appendChild(item);\n if (option.hasAttribute('selected')) {\n this.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n\n buildPicker() {\n [].slice.call(this.select.attributes).forEach((item) => {\n this.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n\n close() {\n this.container.classList.remove('ql-expanded');\n }\n\n selectItem(item, trigger = false) {\n let selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item != null) {\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if (typeof Event === 'object') { // IE11\n let event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n } else {\n this.label.removeAttribute('data-value');\n this.label.removeAttribute('data-label');\n }\n }\n\n update() {\n let option;\n if (this.select.selectedIndex > -1) {\n let item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n let isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n}\n\n\nexport default Picker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/picker.js","module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/dropdown.svg\n// module id = 105\n// module chunks = 0","import Picker from './picker';\n\n\nclass ColorPicker extends Picker {\n constructor(select, label) {\n super(select);\n this.label.innerHTML = label;\n this.container.classList.add('ql-color-picker');\n [].slice.call(this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function(item) {\n item.classList.add('ql-primary');\n });\n }\n\n buildItem(option) {\n let item = super.buildItem(option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n\n selectItem(item, trigger) {\n super.selectItem(item, trigger);\n let colorLabel = this.label.querySelector('.ql-color-label');\n let value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n}\n\n\nexport default ColorPicker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/color-picker.js","import Picker from './picker';\n\n\nclass IconPicker extends Picker {\n constructor(select, icons) {\n super(select);\n this.container.classList.add('ql-icon-picker');\n [].forEach.call(this.container.querySelectorAll('.ql-picker-item'), (item) => {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n this.defaultItem = this.container.querySelector('.ql-selected');\n this.selectItem(this.defaultItem);\n }\n\n selectItem(item, trigger) {\n super.selectItem(item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n}\n\n\nexport default IconPicker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/icon-picker.js","class Tooltip {\n constructor(quill, boundsContainer) {\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n let offset = parseInt(window.getComputedStyle(this.root).marginTop);\n this.quill.root.addEventListener('scroll', () => {\n this.root.style.marginTop = (-1*this.quill.root.scrollTop) + offset + 'px';\n this.checkBounds();\n });\n this.hide();\n }\n\n checkBounds() {\n this.root.classList.toggle('ql-out-top', this.root.offsetTop <= 0);\n this.root.classList.remove('ql-out-bottom');\n this.root.classList.toggle('ql-out-bottom', this.root.offsetTop + this.root.offsetHeight >= this.quill.root.offsetHeight);\n }\n\n hide() {\n this.root.classList.add('ql-hidden');\n }\n\n position(reference) {\n let left = reference.left + reference.width/2 - this.root.offsetWidth/2;\n let top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n let containerBounds = this.boundsContainer.getBoundingClientRect();\n let rootBounds = this.root.getBoundingClientRect();\n let shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = (left + shift) + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = (left + shift) + 'px';\n }\n this.checkBounds();\n return shift;\n }\n\n show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n}\n\n\nexport default Tooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/tooltip.js","import extend from 'extend';\nimport Emitter from '../core/emitter';\nimport BaseTheme, { BaseTooltip } from './base';\nimport { Range } from '../core/selection';\nimport icons from '../ui/icons';\n\n\nconst TOOLBAR_CONFIG = [\n ['bold', 'italic', 'link'],\n [{ header: 1 }, { header: 2 }, 'blockquote']\n];\n\nclass BubbleTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-bubble');\n }\n\n extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), icons);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), icons);\n }\n}\nBubbleTheme.DEFAULTS = extend(true, {}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\n\nclass BubbleTooltip extends BaseTooltip {\n constructor(quill, bounds) {\n super(quill, bounds);\n this.quill.on(Emitter.events.EDITOR_CHANGE, (type, range) => {\n if (type !== Emitter.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0) {\n this.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n this.root.style.left = '0px';\n this.root.style.width = '';\n this.root.style.width = this.root.offsetWidth + 'px';\n let lines = this.quill.scroll.lines(range.index, range.length);\n if (lines.length === 1) {\n this.position(this.quill.getBounds(range));\n } else {\n let lastLine = lines[lines.length - 1];\n let index = lastLine.offset(this.quill.scroll);\n let length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n let bounds = this.quill.getBounds(new Range(index, length));\n this.position(bounds);\n }\n } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\n this.hide();\n }\n });\n }\n\n listen() {\n super.listen();\n this.root.querySelector('.ql-close').addEventListener('click', () => {\n this.root.classList.remove('ql-editing');\n });\n this.quill.on(Emitter.events.SCROLL_OPTIMIZE, () => {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(() => {\n if (this.root.classList.contains('ql-hidden')) return;\n let range = this.quill.getSelection();\n if (range != null) {\n this.position(this.quill.getBounds(range));\n }\n }, 1);\n });\n }\n\n cancel() {\n this.show();\n }\n\n position(reference) {\n let shift = super.position(reference);\n let arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = (-1*shift - arrow.offsetWidth/2) + 'px';\n }\n}\nBubbleTooltip.TEMPLATE = [\n '<span class=\"ql-tooltip-arrow\"></span>',\n '<div class=\"ql-tooltip-editor\">',\n '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"quilljs.com\" data-video=\"Embed URL\">',\n '<a class=\"ql-close\"></a>',\n '</div>'\n].join('');\n\n\nexport { BubbleTooltip, BubbleTheme as default };\n\n\n\n// WEBPACK FOOTER //\n// ./themes/bubble.js","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Emitter from '../core/emitter';\nimport Keyboard from '../modules/keyboard';\nimport Theme from '../core/theme';\nimport ColorPicker from '../ui/color-picker';\nimport IconPicker from '../ui/icon-picker';\nimport Picker from '../ui/picker';\nimport Tooltip from '../ui/tooltip';\n\n\nconst ALIGNS = [ false, 'center', 'right', 'justify' ];\n\nconst COLORS = [\n \"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\",\n \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\",\n \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\",\n \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\",\n \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"\n];\n\nconst FONTS = [ false, 'serif', 'monospace' ];\n\nconst HEADERS = [ '1', '2', '3', false ];\n\nconst SIZES = [ 'small', false, 'large', 'huge' ];\n\n\nclass BaseTheme extends Theme {\n constructor(quill, options) {\n super(quill, options);\n let listener = (e) => {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (this.tooltip != null && !this.tooltip.root.contains(e.target) &&\n document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\n this.tooltip.hide();\n }\n if (this.pickers != null) {\n this.pickers.forEach(function(picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n document.body.addEventListener('click', listener);\n }\n\n addModule(name) {\n let module = super.addModule(name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n\n buildButtons(buttons, icons) {\n buttons.forEach((button) => {\n let className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach((name) => {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n let value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n\n buildPickers(selects, icons) {\n this.pickers = selects.map((select) => {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new IconPicker(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n let format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new ColorPicker(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new Picker(select);\n }\n });\n let update = () => {\n this.pickers.forEach(function(picker) {\n picker.update();\n });\n };\n this.quill.on(Emitter.events.SELECTION_CHANGE, update)\n .on(Emitter.events.SCROLL_OPTIMIZE, update);\n }\n}\nBaseTheme.DEFAULTS = extend(true, {}, Theme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function() {\n let fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon, image/svg+xml');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', () => {\n if (fileInput.files != null && fileInput.files[0] != null) {\n let reader = new FileReader();\n reader.onload = (e) => {\n let range = this.quill.getSelection(true);\n this.quill.updateContents(new Delta()\n .retain(range.index)\n .delete(range.length)\n .insert({ image: e.target.result })\n , Emitter.sources.USER);\n fileInput.value = \"\";\n }\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\n\nclass BaseTooltip extends Tooltip {\n constructor(quill, boundsContainer) {\n super(quill, boundsContainer);\n this.textbox = this.root.querySelector('input[type=\"text\"]');\n this.listen();\n }\n\n listen() {\n this.textbox.addEventListener('keydown', (event) => {\n if (Keyboard.match(event, 'enter')) {\n this.save();\n event.preventDefault();\n } else if (Keyboard.match(event, 'escape')) {\n this.cancel();\n event.preventDefault();\n }\n });\n }\n\n cancel() {\n this.hide();\n }\n\n edit(mode = 'link', preview = null) {\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute(`data-${mode}`) || '');\n this.root.setAttribute('data-mode', mode);\n }\n\n restoreFocus() {\n let scrollTop = this.quill.root.scrollTop;\n this.quill.focus();\n this.quill.root.scrollTop = scrollTop;\n }\n\n save() {\n let value = this.textbox.value;\n switch(this.root.getAttribute('data-mode')) {\n case 'link': {\n let scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, Emitter.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, Emitter.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video': {\n let match = value.match(/^(https?):\\/\\/(www\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) ||\n value.match(/^(https?):\\/\\/(www\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n value = match[1] + '://www.youtube.com/embed/' + match[3] + '?showinfo=0';\n } else if (match = value.match(/^(https?):\\/\\/(www\\.)?vimeo\\.com\\/(\\d+)/)) { // eslint-disable-line no-cond-assign\n value = match[1] + '://player.vimeo.com/video/' + match[3] + '/';\n }\n } // eslint-disable-next-line no-fallthrough\n case 'formula': {\n let range = this.quill.getSelection(true);\n let index = range.index + range.length;\n if (range != null) {\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, Emitter.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', Emitter.sources.USER);\n }\n this.quill.setSelection(index + 2, Emitter.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n}\n\n\nfunction fillSelect(select, values, defaultValue = false) {\n values.forEach(function(value) {\n let option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\n\nexport { BaseTooltip, BaseTheme as default };\n\n\n\n// WEBPACK FOOTER //\n// ./themes/base.js","import extend from 'extend';\nimport Emitter from '../core/emitter';\nimport BaseTheme, { BaseTooltip } from './base';\nimport LinkBlot from '../formats/link';\nimport { Range } from '../core/selection';\nimport icons from '../ui/icons';\n\n\nconst TOOLBAR_CONFIG = [\n [{ header: ['1', '2', '3', false] }],\n ['bold', 'italic', 'underline', 'link'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['clean']\n];\n\nclass SnowTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-snow');\n }\n\n extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), icons);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), icons);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function(range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n}\nSnowTheme.DEFAULTS = extend(true, {}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function(value) {\n if (value) {\n let range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n let preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n let tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\n\nclass SnowTooltip extends BaseTooltip {\n constructor(quill, bounds) {\n super(quill, bounds);\n this.preview = this.root.querySelector('a.ql-preview');\n }\n\n listen() {\n super.listen();\n this.root.querySelector('a.ql-action').addEventListener('click', (event) => {\n if (this.root.classList.contains('ql-editing')) {\n this.save();\n } else {\n this.edit('link', this.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', (event) => {\n if (this.linkRange != null) {\n this.restoreFocus();\n this.quill.formatText(this.linkRange, 'link', false, Emitter.sources.USER);\n delete this.linkRange;\n }\n event.preventDefault();\n this.hide();\n });\n this.quill.on(Emitter.events.SELECTION_CHANGE, (range) => {\n if (range == null) return;\n if (range.length === 0) {\n let [link, offset] = this.quill.scroll.descendant(LinkBlot, range.index);\n if (link != null) {\n this.linkRange = new Range(range.index - offset, link.length());\n let preview = LinkBlot.formats(link.domNode);\n this.preview.textContent = preview;\n this.preview.setAttribute('href', preview);\n this.show();\n this.position(this.quill.getBounds(this.linkRange));\n return;\n }\n } else {\n delete this.linkRange;\n }\n this.hide();\n });\n }\n\n show() {\n super.show();\n this.root.removeAttribute('data-mode');\n }\n}\nSnowTooltip.TEMPLATE = [\n '<a class=\"ql-preview\" target=\"_blank\" href=\"about:blank\"></a>',\n '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"quilljs.com\" data-video=\"Embed URL\">',\n '<a class=\"ql-action\"></a>',\n '<a class=\"ql-remove\"></a>'\n].join('');\n\n\nexport default SnowTheme;\n\n\n\n// WEBPACK FOOTER //\n// ./themes/snow.js","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\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 } else {\n return objEquiv(actual, expected, opts);\n }\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') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\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 try {\n var ka = objectKeys(a),\n 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\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\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])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~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 return typeof a === typeof b;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../delta/~/deep-equal/index.js\n// module id = 22\n// module chunks = 0"],"sourceRoot":""}
@@ -0,0 +1,843 @@
1
+ /*!
2
+ * Quill Editor v1.1.5
3
+ * https://quilljs.com/
4
+ * Copyright (c) 2014, Jason Chen
5
+ * Copyright (c) 2013, salesforce.com
6
+ */
7
+ .ql-container {
8
+ box-sizing: border-box;
9
+ font-family: Helvetica, Arial, sans-serif;
10
+ font-size: 13px;
11
+ height: 100%;
12
+ margin: 0px;
13
+ position: relative;
14
+ }
15
+ .ql-container.ql-disabled .ql-tooltip {
16
+ visibility: hidden;
17
+ }
18
+ .ql-clipboard {
19
+ left: -100000px;
20
+ height: 1px;
21
+ overflow-y: hidden;
22
+ position: absolute;
23
+ top: 50%;
24
+ }
25
+ .ql-clipboard p {
26
+ margin: 0;
27
+ padding: 0;
28
+ }
29
+ .ql-editor {
30
+ box-sizing: border-box;
31
+ cursor: text;
32
+ line-height: 1.42;
33
+ height: 100%;
34
+ outline: none;
35
+ overflow-y: auto;
36
+ padding: 12px 15px;
37
+ tab-size: 4;
38
+ -moz-tab-size: 4;
39
+ text-align: left;
40
+ white-space: pre-wrap;
41
+ word-wrap: break-word;
42
+ }
43
+ .ql-editor p,
44
+ .ql-editor ol,
45
+ .ql-editor ul,
46
+ .ql-editor pre,
47
+ .ql-editor blockquote,
48
+ .ql-editor h1,
49
+ .ql-editor h2,
50
+ .ql-editor h3,
51
+ .ql-editor h4,
52
+ .ql-editor h5,
53
+ .ql-editor h6 {
54
+ margin: 0;
55
+ padding: 0;
56
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
57
+ }
58
+ .ql-editor ol,
59
+ .ql-editor ul {
60
+ padding-left: 1.5em;
61
+ }
62
+ .ql-editor ol > li,
63
+ .ql-editor ul > li {
64
+ list-style-type: none;
65
+ }
66
+ .ql-editor ul > li::before {
67
+ content: '\25CF';
68
+ }
69
+ .ql-editor li::before {
70
+ display: inline-block;
71
+ margin-right: 0.3em;
72
+ text-align: right;
73
+ white-space: nowrap;
74
+ width: 1.2em;
75
+ }
76
+ .ql-editor li:not(.ql-direction-rtl)::before {
77
+ margin-left: -1.5em;
78
+ }
79
+ .ql-editor ol li,
80
+ .ql-editor ul li {
81
+ padding-left: 1.5em;
82
+ }
83
+ .ql-editor ol li {
84
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
85
+ counter-increment: list-num;
86
+ }
87
+ .ql-editor ol li:before {
88
+ content: counter(list-num, decimal) '. ';
89
+ }
90
+ .ql-editor ol li.ql-indent-1 {
91
+ counter-increment: list-1;
92
+ }
93
+ .ql-editor ol li.ql-indent-1:before {
94
+ content: counter(list-1, lower-alpha) '. ';
95
+ }
96
+ .ql-editor ol li.ql-indent-1 {
97
+ counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
98
+ }
99
+ .ql-editor ol li.ql-indent-2 {
100
+ counter-increment: list-2;
101
+ }
102
+ .ql-editor ol li.ql-indent-2:before {
103
+ content: counter(list-2, lower-roman) '. ';
104
+ }
105
+ .ql-editor ol li.ql-indent-2 {
106
+ counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
107
+ }
108
+ .ql-editor ol li.ql-indent-3 {
109
+ counter-increment: list-3;
110
+ }
111
+ .ql-editor ol li.ql-indent-3:before {
112
+ content: counter(list-3, decimal) '. ';
113
+ }
114
+ .ql-editor ol li.ql-indent-3 {
115
+ counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
116
+ }
117
+ .ql-editor ol li.ql-indent-4 {
118
+ counter-increment: list-4;
119
+ }
120
+ .ql-editor ol li.ql-indent-4:before {
121
+ content: counter(list-4, lower-alpha) '. ';
122
+ }
123
+ .ql-editor ol li.ql-indent-4 {
124
+ counter-reset: list-5 list-6 list-7 list-8 list-9;
125
+ }
126
+ .ql-editor ol li.ql-indent-5 {
127
+ counter-increment: list-5;
128
+ }
129
+ .ql-editor ol li.ql-indent-5:before {
130
+ content: counter(list-5, lower-roman) '. ';
131
+ }
132
+ .ql-editor ol li.ql-indent-5 {
133
+ counter-reset: list-6 list-7 list-8 list-9;
134
+ }
135
+ .ql-editor ol li.ql-indent-6 {
136
+ counter-increment: list-6;
137
+ }
138
+ .ql-editor ol li.ql-indent-6:before {
139
+ content: counter(list-6, decimal) '. ';
140
+ }
141
+ .ql-editor ol li.ql-indent-6 {
142
+ counter-reset: list-7 list-8 list-9;
143
+ }
144
+ .ql-editor ol li.ql-indent-7 {
145
+ counter-increment: list-7;
146
+ }
147
+ .ql-editor ol li.ql-indent-7:before {
148
+ content: counter(list-7, lower-alpha) '. ';
149
+ }
150
+ .ql-editor ol li.ql-indent-7 {
151
+ counter-reset: list-8 list-9;
152
+ }
153
+ .ql-editor ol li.ql-indent-8 {
154
+ counter-increment: list-8;
155
+ }
156
+ .ql-editor ol li.ql-indent-8:before {
157
+ content: counter(list-8, lower-roman) '. ';
158
+ }
159
+ .ql-editor ol li.ql-indent-8 {
160
+ counter-reset: list-9;
161
+ }
162
+ .ql-editor ol li.ql-indent-9 {
163
+ counter-increment: list-9;
164
+ }
165
+ .ql-editor ol li.ql-indent-9:before {
166
+ content: counter(list-9, decimal) '. ';
167
+ }
168
+ .ql-editor .ql-indent-1:not(.ql-direction-rtl) {
169
+ padding-left: 3em;
170
+ }
171
+ .ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
172
+ padding-left: 4.5em;
173
+ }
174
+ .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
175
+ padding-right: 3em;
176
+ }
177
+ .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
178
+ padding-right: 4.5em;
179
+ }
180
+ .ql-editor .ql-indent-2:not(.ql-direction-rtl) {
181
+ padding-left: 6em;
182
+ }
183
+ .ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
184
+ padding-left: 7.5em;
185
+ }
186
+ .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
187
+ padding-right: 6em;
188
+ }
189
+ .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
190
+ padding-right: 7.5em;
191
+ }
192
+ .ql-editor .ql-indent-3:not(.ql-direction-rtl) {
193
+ padding-left: 9em;
194
+ }
195
+ .ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
196
+ padding-left: 10.5em;
197
+ }
198
+ .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
199
+ padding-right: 9em;
200
+ }
201
+ .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
202
+ padding-right: 10.5em;
203
+ }
204
+ .ql-editor .ql-indent-4:not(.ql-direction-rtl) {
205
+ padding-left: 12em;
206
+ }
207
+ .ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
208
+ padding-left: 13.5em;
209
+ }
210
+ .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
211
+ padding-right: 12em;
212
+ }
213
+ .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
214
+ padding-right: 13.5em;
215
+ }
216
+ .ql-editor .ql-indent-5:not(.ql-direction-rtl) {
217
+ padding-left: 15em;
218
+ }
219
+ .ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
220
+ padding-left: 16.5em;
221
+ }
222
+ .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
223
+ padding-right: 15em;
224
+ }
225
+ .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
226
+ padding-right: 16.5em;
227
+ }
228
+ .ql-editor .ql-indent-6:not(.ql-direction-rtl) {
229
+ padding-left: 18em;
230
+ }
231
+ .ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
232
+ padding-left: 19.5em;
233
+ }
234
+ .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
235
+ padding-right: 18em;
236
+ }
237
+ .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
238
+ padding-right: 19.5em;
239
+ }
240
+ .ql-editor .ql-indent-7:not(.ql-direction-rtl) {
241
+ padding-left: 21em;
242
+ }
243
+ .ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
244
+ padding-left: 22.5em;
245
+ }
246
+ .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
247
+ padding-right: 21em;
248
+ }
249
+ .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
250
+ padding-right: 22.5em;
251
+ }
252
+ .ql-editor .ql-indent-8:not(.ql-direction-rtl) {
253
+ padding-left: 24em;
254
+ }
255
+ .ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
256
+ padding-left: 25.5em;
257
+ }
258
+ .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
259
+ padding-right: 24em;
260
+ }
261
+ .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
262
+ padding-right: 25.5em;
263
+ }
264
+ .ql-editor .ql-indent-9:not(.ql-direction-rtl) {
265
+ padding-left: 27em;
266
+ }
267
+ .ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
268
+ padding-left: 28.5em;
269
+ }
270
+ .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
271
+ padding-right: 27em;
272
+ }
273
+ .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
274
+ padding-right: 28.5em;
275
+ }
276
+ .ql-editor .ql-video {
277
+ display: block;
278
+ max-width: 100%;
279
+ }
280
+ .ql-editor .ql-video.ql-align-center {
281
+ margin: 0 auto;
282
+ }
283
+ .ql-editor .ql-video.ql-align-right {
284
+ margin: 0 0 0 auto;
285
+ }
286
+ .ql-editor .ql-bg-black {
287
+ background-color: #000;
288
+ }
289
+ .ql-editor .ql-bg-red {
290
+ background-color: #e60000;
291
+ }
292
+ .ql-editor .ql-bg-orange {
293
+ background-color: #f90;
294
+ }
295
+ .ql-editor .ql-bg-yellow {
296
+ background-color: #ff0;
297
+ }
298
+ .ql-editor .ql-bg-green {
299
+ background-color: #008a00;
300
+ }
301
+ .ql-editor .ql-bg-blue {
302
+ background-color: #06c;
303
+ }
304
+ .ql-editor .ql-bg-purple {
305
+ background-color: #93f;
306
+ }
307
+ .ql-editor .ql-color-white {
308
+ color: #fff;
309
+ }
310
+ .ql-editor .ql-color-red {
311
+ color: #e60000;
312
+ }
313
+ .ql-editor .ql-color-orange {
314
+ color: #f90;
315
+ }
316
+ .ql-editor .ql-color-yellow {
317
+ color: #ff0;
318
+ }
319
+ .ql-editor .ql-color-green {
320
+ color: #008a00;
321
+ }
322
+ .ql-editor .ql-color-blue {
323
+ color: #06c;
324
+ }
325
+ .ql-editor .ql-color-purple {
326
+ color: #93f;
327
+ }
328
+ .ql-editor .ql-font-serif {
329
+ font-family: Georgia, Times New Roman, serif;
330
+ }
331
+ .ql-editor .ql-font-monospace {
332
+ font-family: Monaco, Courier New, monospace;
333
+ }
334
+ .ql-editor .ql-size-small {
335
+ font-size: 0.75em;
336
+ }
337
+ .ql-editor .ql-size-large {
338
+ font-size: 1.5em;
339
+ }
340
+ .ql-editor .ql-size-huge {
341
+ font-size: 2.5em;
342
+ }
343
+ .ql-editor .ql-direction-rtl {
344
+ direction: rtl;
345
+ text-align: inherit;
346
+ }
347
+ .ql-editor .ql-align-center {
348
+ text-align: center;
349
+ }
350
+ .ql-editor .ql-align-justify {
351
+ text-align: justify;
352
+ }
353
+ .ql-editor .ql-align-right {
354
+ text-align: right;
355
+ }
356
+ .ql-editor.ql-blank::before {
357
+ color: rgba(0,0,0,0.6);
358
+ content: attr(data-placeholder);
359
+ font-style: italic;
360
+ pointer-events: none;
361
+ position: absolute;
362
+ }
363
+ .ql-bubble.ql-toolbar:after,
364
+ .ql-bubble .ql-toolbar:after {
365
+ clear: both;
366
+ content: '';
367
+ display: table;
368
+ }
369
+ .ql-bubble.ql-toolbar button,
370
+ .ql-bubble .ql-toolbar button {
371
+ background: none;
372
+ border: none;
373
+ cursor: pointer;
374
+ display: inline-block;
375
+ float: left;
376
+ height: 24px;
377
+ padding: 3px 5px;
378
+ width: 28px;
379
+ }
380
+ .ql-bubble.ql-toolbar button svg,
381
+ .ql-bubble .ql-toolbar button svg {
382
+ float: left;
383
+ height: 100%;
384
+ }
385
+ .ql-bubble.ql-toolbar input.ql-image[type=file],
386
+ .ql-bubble .ql-toolbar input.ql-image[type=file] {
387
+ display: none;
388
+ }
389
+ .ql-bubble.ql-toolbar button:hover,
390
+ .ql-bubble .ql-toolbar button:hover,
391
+ .ql-bubble.ql-toolbar button.ql-active,
392
+ .ql-bubble .ql-toolbar button.ql-active,
393
+ .ql-bubble.ql-toolbar .ql-picker-label:hover,
394
+ .ql-bubble .ql-toolbar .ql-picker-label:hover,
395
+ .ql-bubble.ql-toolbar .ql-picker-label.ql-active,
396
+ .ql-bubble .ql-toolbar .ql-picker-label.ql-active,
397
+ .ql-bubble.ql-toolbar .ql-picker-item:hover,
398
+ .ql-bubble .ql-toolbar .ql-picker-item:hover,
399
+ .ql-bubble.ql-toolbar .ql-picker-item.ql-selected,
400
+ .ql-bubble .ql-toolbar .ql-picker-item.ql-selected {
401
+ color: #fff;
402
+ }
403
+ .ql-bubble.ql-toolbar button:hover .ql-fill,
404
+ .ql-bubble .ql-toolbar button:hover .ql-fill,
405
+ .ql-bubble.ql-toolbar button.ql-active .ql-fill,
406
+ .ql-bubble .ql-toolbar button.ql-active .ql-fill,
407
+ .ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,
408
+ .ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,
409
+ .ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,
410
+ .ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,
411
+ .ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,
412
+ .ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,
413
+ .ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
414
+ .ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
415
+ .ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,
416
+ .ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill,
417
+ .ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,
418
+ .ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,
419
+ .ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
420
+ .ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
421
+ .ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
422
+ .ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
423
+ .ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
424
+ .ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
425
+ .ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
426
+ .ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
427
+ fill: #fff;
428
+ }
429
+ .ql-bubble.ql-toolbar button:hover .ql-stroke,
430
+ .ql-bubble .ql-toolbar button:hover .ql-stroke,
431
+ .ql-bubble.ql-toolbar button.ql-active .ql-stroke,
432
+ .ql-bubble .ql-toolbar button.ql-active .ql-stroke,
433
+ .ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,
434
+ .ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,
435
+ .ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
436
+ .ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
437
+ .ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,
438
+ .ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,
439
+ .ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
440
+ .ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
441
+ .ql-bubble.ql-toolbar button:hover .ql-stroke-miter,
442
+ .ql-bubble .ql-toolbar button:hover .ql-stroke-miter,
443
+ .ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,
444
+ .ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,
445
+ .ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
446
+ .ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
447
+ .ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
448
+ .ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
449
+ .ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
450
+ .ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
451
+ .ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
452
+ .ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
453
+ stroke: #fff;
454
+ }
455
+ .ql-bubble {
456
+ box-sizing: border-box;
457
+ }
458
+ .ql-bubble * {
459
+ box-sizing: border-box;
460
+ }
461
+ .ql-bubble .ql-hidden {
462
+ display: none;
463
+ }
464
+ .ql-bubble .ql-out-bottom,
465
+ .ql-bubble .ql-out-top {
466
+ visibility: hidden;
467
+ }
468
+ .ql-bubble .ql-tooltip {
469
+ position: absolute;
470
+ }
471
+ .ql-bubble .ql-tooltip a {
472
+ cursor: pointer;
473
+ text-decoration: none;
474
+ }
475
+ .ql-bubble .ql-formats {
476
+ display: inline-block;
477
+ vertical-align: middle;
478
+ }
479
+ .ql-bubble .ql-formats:after {
480
+ clear: both;
481
+ content: '';
482
+ display: table;
483
+ }
484
+ .ql-bubble .ql-stroke {
485
+ fill: none;
486
+ stroke: #ccc;
487
+ stroke-linecap: round;
488
+ stroke-linejoin: round;
489
+ stroke-width: 2;
490
+ }
491
+ .ql-bubble .ql-stroke-miter {
492
+ fill: none;
493
+ stroke: #ccc;
494
+ stroke-miterlimit: 10;
495
+ stroke-width: 2;
496
+ }
497
+ .ql-bubble .ql-fill,
498
+ .ql-bubble .ql-stroke.ql-fill {
499
+ fill: #ccc;
500
+ }
501
+ .ql-bubble .ql-empty {
502
+ fill: none;
503
+ }
504
+ .ql-bubble .ql-even {
505
+ fill-rule: evenodd;
506
+ }
507
+ .ql-bubble .ql-thin,
508
+ .ql-bubble .ql-stroke.ql-thin {
509
+ stroke-width: 1;
510
+ }
511
+ .ql-bubble .ql-transparent {
512
+ opacity: 0.4;
513
+ }
514
+ .ql-bubble .ql-direction svg:last-child {
515
+ display: none;
516
+ }
517
+ .ql-bubble .ql-direction.ql-active svg:last-child {
518
+ display: inline;
519
+ }
520
+ .ql-bubble .ql-direction.ql-active svg:first-child {
521
+ display: none;
522
+ }
523
+ .ql-bubble .ql-editor h1 {
524
+ font-size: 2em;
525
+ }
526
+ .ql-bubble .ql-editor h2 {
527
+ font-size: 1.5em;
528
+ }
529
+ .ql-bubble .ql-editor h3 {
530
+ font-size: 1.17em;
531
+ }
532
+ .ql-bubble .ql-editor h4 {
533
+ font-size: 1em;
534
+ }
535
+ .ql-bubble .ql-editor h5 {
536
+ font-size: 0.83em;
537
+ }
538
+ .ql-bubble .ql-editor h6 {
539
+ font-size: 0.67em;
540
+ }
541
+ .ql-bubble .ql-editor a {
542
+ text-decoration: underline;
543
+ }
544
+ .ql-bubble .ql-editor blockquote {
545
+ border-left: 4px solid #ccc;
546
+ margin-bottom: 5px;
547
+ margin-top: 5px;
548
+ padding-left: 16px;
549
+ }
550
+ .ql-bubble .ql-editor code,
551
+ .ql-bubble .ql-editor pre {
552
+ background-color: #f0f0f0;
553
+ border-radius: 3px;
554
+ }
555
+ .ql-bubble .ql-editor pre {
556
+ white-space: pre-wrap;
557
+ margin-bottom: 5px;
558
+ margin-top: 5px;
559
+ padding: 5px 10px;
560
+ }
561
+ .ql-bubble .ql-editor code {
562
+ font-size: 85%;
563
+ padding-bottom: 2px;
564
+ padding-top: 2px;
565
+ }
566
+ .ql-bubble .ql-editor code:before,
567
+ .ql-bubble .ql-editor code:after {
568
+ content: "\A0";
569
+ letter-spacing: -2px;
570
+ }
571
+ .ql-bubble .ql-editor pre.ql-syntax {
572
+ background-color: #23241f;
573
+ color: #f8f8f2;
574
+ overflow: visible;
575
+ }
576
+ .ql-bubble .ql-editor img {
577
+ max-width: 100%;
578
+ }
579
+ .ql-bubble .ql-picker {
580
+ color: #ccc;
581
+ display: inline-block;
582
+ float: left;
583
+ font-size: 14px;
584
+ font-weight: 500;
585
+ height: 24px;
586
+ position: relative;
587
+ vertical-align: middle;
588
+ }
589
+ .ql-bubble .ql-picker-label {
590
+ cursor: pointer;
591
+ display: inline-block;
592
+ height: 100%;
593
+ padding-left: 8px;
594
+ padding-right: 2px;
595
+ position: relative;
596
+ width: 100%;
597
+ }
598
+ .ql-bubble .ql-picker-label::before {
599
+ display: inline-block;
600
+ line-height: 22px;
601
+ }
602
+ .ql-bubble .ql-picker-options {
603
+ background-color: #444;
604
+ display: none;
605
+ min-width: 100%;
606
+ padding: 4px 8px;
607
+ position: absolute;
608
+ white-space: nowrap;
609
+ }
610
+ .ql-bubble .ql-picker-options .ql-picker-item {
611
+ cursor: pointer;
612
+ display: block;
613
+ padding-bottom: 5px;
614
+ padding-top: 5px;
615
+ }
616
+ .ql-bubble .ql-picker.ql-expanded .ql-picker-label {
617
+ color: #777;
618
+ z-index: 2;
619
+ }
620
+ .ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill {
621
+ fill: #777;
622
+ }
623
+ .ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
624
+ stroke: #777;
625
+ }
626
+ .ql-bubble .ql-picker.ql-expanded .ql-picker-options {
627
+ display: block;
628
+ margin-top: -1px;
629
+ top: 100%;
630
+ z-index: 1;
631
+ }
632
+ .ql-bubble .ql-color-picker,
633
+ .ql-bubble .ql-icon-picker {
634
+ width: 28px;
635
+ }
636
+ .ql-bubble .ql-color-picker .ql-picker-label,
637
+ .ql-bubble .ql-icon-picker .ql-picker-label {
638
+ padding: 2px 4px;
639
+ }
640
+ .ql-bubble .ql-color-picker .ql-picker-label svg,
641
+ .ql-bubble .ql-icon-picker .ql-picker-label svg {
642
+ right: 4px;
643
+ }
644
+ .ql-bubble .ql-icon-picker .ql-picker-options {
645
+ padding: 4px 0px;
646
+ }
647
+ .ql-bubble .ql-icon-picker .ql-picker-item {
648
+ height: 24px;
649
+ width: 24px;
650
+ padding: 2px 4px;
651
+ }
652
+ .ql-bubble .ql-color-picker .ql-picker-options {
653
+ padding: 3px 5px;
654
+ width: 152px;
655
+ }
656
+ .ql-bubble .ql-color-picker .ql-picker-item {
657
+ border: 1px solid transparent;
658
+ float: left;
659
+ height: 16px;
660
+ margin: 2px;
661
+ padding: 0px;
662
+ width: 16px;
663
+ }
664
+ .ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
665
+ position: absolute;
666
+ margin-top: -9px;
667
+ right: 0;
668
+ top: 50%;
669
+ width: 18px;
670
+ }
671
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
672
+ .ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
673
+ .ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
674
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
675
+ .ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
676
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
677
+ content: attr(data-label);
678
+ }
679
+ .ql-bubble .ql-picker.ql-header {
680
+ width: 98px;
681
+ }
682
+ .ql-bubble .ql-picker.ql-header .ql-picker-label::before,
683
+ .ql-bubble .ql-picker.ql-header .ql-picker-item::before {
684
+ content: 'Normal';
685
+ }
686
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
687
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
688
+ content: 'Heading 1';
689
+ }
690
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
691
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
692
+ content: 'Heading 2';
693
+ }
694
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
695
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
696
+ content: 'Heading 3';
697
+ }
698
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
699
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
700
+ content: 'Heading 4';
701
+ }
702
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
703
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
704
+ content: 'Heading 5';
705
+ }
706
+ .ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
707
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
708
+ content: 'Heading 6';
709
+ }
710
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
711
+ font-size: 2em;
712
+ }
713
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
714
+ font-size: 1.5em;
715
+ }
716
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
717
+ font-size: 1.17em;
718
+ }
719
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
720
+ font-size: 1em;
721
+ }
722
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
723
+ font-size: 0.83em;
724
+ }
725
+ .ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
726
+ font-size: 0.67em;
727
+ }
728
+ .ql-bubble .ql-picker.ql-font {
729
+ width: 108px;
730
+ }
731
+ .ql-bubble .ql-picker.ql-font .ql-picker-label::before,
732
+ .ql-bubble .ql-picker.ql-font .ql-picker-item::before {
733
+ content: 'Sans Serif';
734
+ }
735
+ .ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
736
+ .ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
737
+ content: 'Serif';
738
+ }
739
+ .ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
740
+ .ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
741
+ content: 'Monospace';
742
+ }
743
+ .ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
744
+ font-family: Georgia, Times New Roman, serif;
745
+ }
746
+ .ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
747
+ font-family: Monaco, Courier New, monospace;
748
+ }
749
+ .ql-bubble .ql-picker.ql-size {
750
+ width: 98px;
751
+ }
752
+ .ql-bubble .ql-picker.ql-size .ql-picker-label::before,
753
+ .ql-bubble .ql-picker.ql-size .ql-picker-item::before {
754
+ content: 'Normal';
755
+ }
756
+ .ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
757
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
758
+ content: 'Small';
759
+ }
760
+ .ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
761
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
762
+ content: 'Large';
763
+ }
764
+ .ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
765
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
766
+ content: 'Huge';
767
+ }
768
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
769
+ font-size: 10px;
770
+ }
771
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
772
+ font-size: 18px;
773
+ }
774
+ .ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
775
+ font-size: 32px;
776
+ }
777
+ .ql-bubble .ql-color-picker.ql-background .ql-picker-item {
778
+ background-color: #fff;
779
+ }
780
+ .ql-bubble .ql-color-picker.ql-color .ql-picker-item {
781
+ background-color: #000;
782
+ }
783
+ .ql-bubble .ql-toolbar .ql-formats {
784
+ margin: 8px 12px 8px 0px;
785
+ }
786
+ .ql-bubble .ql-toolbar .ql-formats:first-child {
787
+ margin-left: 12px;
788
+ }
789
+ .ql-bubble .ql-color-picker svg {
790
+ margin: 1px;
791
+ }
792
+ .ql-bubble .ql-color-picker .ql-picker-item.ql-selected,
793
+ .ql-bubble .ql-color-picker .ql-picker-item:hover {
794
+ border-color: #fff;
795
+ }
796
+ .ql-bubble .ql-tooltip {
797
+ background-color: #444;
798
+ border-radius: 25px;
799
+ color: #fff;
800
+ margin-top: 10px;
801
+ }
802
+ .ql-bubble .ql-tooltip-arrow {
803
+ border-bottom: 6px solid #444;
804
+ border-left: 6px solid transparent;
805
+ border-right: 6px solid transparent;
806
+ content: " ";
807
+ display: block;
808
+ left: 50%;
809
+ margin-left: -6px;
810
+ position: absolute;
811
+ top: -6px;
812
+ }
813
+ .ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor {
814
+ display: block;
815
+ }
816
+ .ql-bubble .ql-tooltip.ql-editing .ql-formats {
817
+ visibility: hidden;
818
+ }
819
+ .ql-bubble .ql-tooltip-editor {
820
+ display: none;
821
+ }
822
+ .ql-bubble .ql-tooltip-editor input[type=text] {
823
+ background: transparent;
824
+ border: none;
825
+ color: #fff;
826
+ font-size: 13px;
827
+ height: 100%;
828
+ outline: none;
829
+ padding: 10px 20px;
830
+ position: absolute;
831
+ width: 100%;
832
+ }
833
+ .ql-bubble .ql-tooltip-editor a {
834
+ top: 10px;
835
+ position: absolute;
836
+ right: 20px;
837
+ }
838
+ .ql-bubble .ql-tooltip-editor a:before {
839
+ color: #ccc;
840
+ content: "\D7";
841
+ font-size: 16px;
842
+ font-weight: bold;
843
+ }