promethee 1.4.8 → 1.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -6
  3. data/app/assets/javascripts/promethee.js +4 -0
  4. data/app/assets/stylesheets/promethee-edit.sass +1 -0
  5. data/config/initializers/assets.rb +1 -0
  6. data/lib/promethee/rails/version.rb +1 -1
  7. data/node_modules/angular-summernote/CHANGELOG.md +149 -0
  8. data/node_modules/angular-summernote/LICENSE-MIT +22 -0
  9. data/node_modules/angular-summernote/README.md +270 -0
  10. data/node_modules/angular-summernote/bower.json +49 -0
  11. data/{vendor/assets/javascripts → node_modules/angular-summernote/dist}/angular-summernote.js +0 -0
  12. data/node_modules/angular-summernote/dist/angular-summernote.min.js +2 -0
  13. data/node_modules/angular-summernote/examples/fontstyle-plugin.html +48 -0
  14. data/node_modules/angular-summernote/examples/index.html +180 -0
  15. data/node_modules/angular-summernote/examples/index2.html +60 -0
  16. data/node_modules/angular-summernote/examples/index3.html +57 -0
  17. data/node_modules/angular-summernote/gulpfile.js +115 -0
  18. data/node_modules/angular-summernote/package.json +53 -0
  19. data/node_modules/angular-summernote/src/angular-summernote.js +206 -0
  20. data/node_modules/angular-summernote/test/angular-summernote.test.js +660 -0
  21. data/node_modules/angular-summernote/test/chai.conf.js +6 -0
  22. data/node_modules/angular-summernote/test/coverage/Chrome 37.0.2062 (Mac OS X 10.9.4)/index.html +350 -0
  23. data/node_modules/angular-summernote/test/coverage/Chrome 37.0.2062 (Mac OS X 10.9.4)/prettify.css +1 -0
  24. data/node_modules/angular-summernote/test/coverage/Chrome 37.0.2062 (Mac OS X 10.9.4)/prettify.js +1 -0
  25. data/node_modules/angular-summernote/test/coverage/Chrome 37.0.2062 (Mac OS X 10.9.4)/src/angular-summernote.js.html +694 -0
  26. data/node_modules/angular-summernote/test/coverage/Chrome 37.0.2062 (Mac OS X 10.9.4)/src/index.html +350 -0
  27. data/node_modules/angular-summernote/test/karma-angular-1-2-x.conf.js +33 -0
  28. data/node_modules/angular-summernote/test/karma-angular-1-3-x.conf.js +33 -0
  29. data/node_modules/angular-summernote/test/karma-angular-1-4-x.conf.js +33 -0
  30. data/node_modules/angular-summernote/test/karma-shared.conf.js +64 -0
  31. data/node_modules/angular-summernote/test/karma.conf.js +33 -0
  32. data/{vendor/assets/javascripts/summernote/locales/de-DE.js → node_modules/angular-summernote/test/lang/summernote-de-DE.js} +2 -17
  33. data/node_modules/angular-summernote/test/mocha.conf.js +3 -0
  34. data/node_modules/angular-ui-sortable/API.md +84 -0
  35. data/node_modules/angular-ui-sortable/CONTRIBUTING.md +12 -0
  36. data/node_modules/angular-ui-sortable/LICENSE +21 -0
  37. data/node_modules/angular-ui-sortable/README.md +350 -0
  38. data/node_modules/angular-ui-sortable/bower.json +26 -0
  39. data/node_modules/angular-ui-sortable/demo/demo.css +34 -0
  40. data/node_modules/angular-ui-sortable/demo/demo.html +29 -0
  41. data/node_modules/angular-ui-sortable/demo/demo.js +41 -0
  42. data/node_modules/angular-ui-sortable/dist/sortable.js +593 -0
  43. data/node_modules/angular-ui-sortable/dist/sortable.min.js +8 -0
  44. data/node_modules/angular-ui-sortable/gruntFile.js +202 -0
  45. data/node_modules/angular-ui-sortable/package.json +48 -0
  46. data/node_modules/angular-ui-sortable/publish.js +41 -0
  47. data/{vendor/assets/javascripts/ui-sortable.js → node_modules/angular-ui-sortable/src/sortable.js} +106 -200
  48. data/node_modules/angular-ui-sortable/test/bower_overrides.json +13 -0
  49. data/node_modules/angular-ui-sortable/test/karma.conf.js +85 -0
  50. data/node_modules/angular-ui-sortable/test/libs/jquery.simulate.dragandrevert.js +60 -0
  51. data/node_modules/angular-ui-sortable/test/sortable.e2e.callbacks.attr.spec.js +199 -0
  52. data/node_modules/angular-ui-sortable/test/sortable.e2e.callbacks.spec.js +729 -0
  53. data/node_modules/angular-ui-sortable/test/sortable.e2e.directiveoptions.spec.js +554 -0
  54. data/node_modules/angular-ui-sortable/test/sortable.e2e.directives.spec.js +371 -0
  55. data/node_modules/angular-ui-sortable/test/sortable.e2e.events.spec.js +167 -0
  56. data/node_modules/angular-ui-sortable/test/sortable.e2e.multi.spec.js +1232 -0
  57. data/node_modules/angular-ui-sortable/test/sortable.e2e.nested.spec.js +186 -0
  58. data/node_modules/angular-ui-sortable/test/sortable.e2e.spec.js +895 -0
  59. data/node_modules/angular-ui-sortable/test/sortable.spec.js +440 -0
  60. data/node_modules/angular-ui-sortable/test/sortable.test-directives.js +54 -0
  61. data/node_modules/angular-ui-sortable/test/sortable.test-helper.js +114 -0
  62. data/node_modules/angular-ui-sortable/test/sortable.tests.css +12 -0
  63. data/node_modules/ng-file-upload/LICENSE +20 -0
  64. data/node_modules/ng-file-upload/README.md +616 -0
  65. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/FileAPI.flash.swf +0 -0
  66. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/FileAPI.js +0 -0
  67. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/FileAPI.min.js +0 -0
  68. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload-all.js +0 -0
  69. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload-all.min.js +0 -0
  70. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload-shim.js +0 -0
  71. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload-shim.min.js +0 -0
  72. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload.js +0 -0
  73. data/{vendor/assets/javascripts/ng-file-upload → node_modules/ng-file-upload/dist}/ng-file-upload.min.js +0 -0
  74. data/node_modules/ng-file-upload/index.js +2 -0
  75. data/node_modules/ng-file-upload/package.json +42 -0
  76. data/node_modules/summernote/CODE_OF_CONDUCT.md +46 -0
  77. data/node_modules/summernote/CONTRIBUTING.md +67 -0
  78. data/node_modules/summernote/ISSUE_TEMPLATE.md +14 -0
  79. data/node_modules/summernote/LICENSE +21 -0
  80. data/node_modules/summernote/PULL_REQUEST_TEMPLATE.md +28 -0
  81. data/node_modules/summernote/README.md +90 -0
  82. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/base.css +213 -0
  83. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/index.html +262 -0
  84. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/prettify.css +1 -0
  85. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/prettify.js +1 -0
  86. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/sort-arrow-sprite.png +0 -0
  87. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/sorter.js +158 -0
  88. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/Context.js.html +758 -0
  89. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/async.js.html +206 -0
  90. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/dom.js.html +3329 -0
  91. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/env.js.html +386 -0
  92. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/func.js.html +551 -0
  93. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/index.html +171 -0
  94. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/key.js.html +341 -0
  95. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/lists.js.html +695 -0
  96. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/core/range.js.html +2441 -0
  97. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/Bullet.js.html +668 -0
  98. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/History.js.html +380 -0
  99. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/Style.js.html +539 -0
  100. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/Table.js.html +1787 -0
  101. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/Typing.js.html +335 -0
  102. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/editing/index.html +145 -0
  103. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/index.html +119 -0
  104. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/AirPopover.js.html +284 -0
  105. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/AutoLink.js.html +248 -0
  106. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/AutoSync.js.html +122 -0
  107. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Buttons.js.html +2504 -0
  108. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Clipboard.js.html +149 -0
  109. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Codeview.js.html +434 -0
  110. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Dropzone.js.html +410 -0
  111. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Editor.js.html +2648 -0
  112. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Fullscreen.js.html +218 -0
  113. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Handle.js.html +494 -0
  114. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/HelpDialog.js.html +302 -0
  115. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/HintPopover.js.html +743 -0
  116. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/ImageDialog.js.html +458 -0
  117. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/ImagePopover.js.html +239 -0
  118. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/LinkDialog.js.html +587 -0
  119. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/LinkPopover.js.html +272 -0
  120. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Placeholder.js.html +182 -0
  121. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Statusbar.js.html +191 -0
  122. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/TablePopover.js.html +278 -0
  123. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/Toolbar.js.html +473 -0
  124. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/VideoDialog.js.html +680 -0
  125. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/module/index.html +353 -0
  126. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/renderer.js.html +263 -0
  127. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/base/summernote-en-US.js.html +542 -0
  128. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs3/index.html +106 -0
  129. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs3/settings.js.html +956 -0
  130. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs3/ui.js.html +776 -0
  131. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs4/index.html +106 -0
  132. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs4/settings.js.html +968 -0
  133. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/bs4/ui.js.html +791 -0
  134. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/index.html +93 -0
  135. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/index.html +106 -0
  136. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/settings.js.html +953 -0
  137. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui.js.html +1919 -0
  138. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui/DropdownUI.js.html +260 -0
  139. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui/ModalUI.js.html +167 -0
  140. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui/PopoverUI.js.html +347 -0
  141. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui/TooltipUI.js.html +344 -0
  142. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/lite/ui/index.html +132 -0
  143. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/src/js/summernote.js.html +203 -0
  144. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/Context.spec.js.html +323 -0
  145. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/dom.spec.js.html +1046 -0
  146. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/func.spec.js.html +482 -0
  147. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/index.html +145 -0
  148. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/key.spec.js.html +140 -0
  149. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/lists.spec.js.html +419 -0
  150. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/core/range.spec.js.html +1286 -0
  151. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/editing/Table.spec.js.html +1724 -0
  152. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/editing/index.html +106 -0
  153. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/editing/style.spec.js.html +341 -0
  154. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/index.html +93 -0
  155. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/module/Codeview.spec.js.html +161 -0
  156. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/module/Editor.spec.js.html +1235 -0
  157. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/module/Fullscreen.spec.js.html +161 -0
  158. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/base/module/index.html +119 -0
  159. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/bs/module/Buttons.spec.js.html +770 -0
  160. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/bs/module/VideoDialog.spec.js.html +209 -0
  161. data/node_modules/summernote/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/html/test/unit/bs/module/index.html +106 -0
  162. data/node_modules/summernote/dist/font/summernote.eot +0 -0
  163. data/node_modules/summernote/dist/font/summernote.ttf +0 -0
  164. data/node_modules/summernote/dist/font/summernote.woff +0 -0
  165. data/{vendor/assets/javascripts/summernote/locales/ar-AR.js → node_modules/summernote/dist/lang/summernote-ar-AR.js} +55 -4
  166. data/node_modules/summernote/dist/lang/summernote-ar-AR.min.js +3 -0
  167. data/{vendor/assets/javascripts/summernote/locales/bg-BG.js → node_modules/summernote/dist/lang/summernote-bg-BG.js} +60 -4
  168. data/node_modules/summernote/dist/lang/summernote-bg-BG.min.js +3 -0
  169. data/{vendor/assets/javascripts/summernote/locales/ca-ES.js → node_modules/summernote/dist/lang/summernote-ca-ES.js} +12 -4
  170. data/node_modules/summernote/dist/lang/summernote-ca-ES.min.js +3 -0
  171. data/{vendor/assets/javascripts/summernote/locales/cs-CZ.js → node_modules/summernote/dist/lang/summernote-cs-CZ.js} +50 -4
  172. data/node_modules/summernote/dist/lang/summernote-cs-CZ.min.js +3 -0
  173. data/{vendor/assets/javascripts/summernote/locales/da-DK.js → node_modules/summernote/dist/lang/summernote-da-DK.js} +46 -5
  174. data/node_modules/summernote/dist/lang/summernote-da-DK.min.js +3 -0
  175. data/node_modules/summernote/dist/lang/summernote-de-DE.js +154 -0
  176. data/node_modules/summernote/dist/lang/summernote-de-DE.min.js +3 -0
  177. data/{vendor/assets/javascripts/summernote/locales/el-GR.js → node_modules/summernote/dist/lang/summernote-el-GR.js} +11 -3
  178. data/node_modules/summernote/dist/lang/summernote-el-GR.min.js +3 -0
  179. data/{vendor/assets/javascripts/summernote/locales/es-ES.js → node_modules/summernote/dist/lang/summernote-es-ES.js} +12 -4
  180. data/node_modules/summernote/dist/lang/summernote-es-ES.min.js +3 -0
  181. data/{vendor/assets/javascripts/summernote/locales/es-EU.js → node_modules/summernote/dist/lang/summernote-es-EU.js} +55 -4
  182. data/node_modules/summernote/dist/lang/summernote-es-EU.min.js +3 -0
  183. data/{vendor/assets/javascripts/summernote/locales/fa-IR.js → node_modules/summernote/dist/lang/summernote-fa-IR.js} +55 -5
  184. data/node_modules/summernote/dist/lang/summernote-fa-IR.min.js +3 -0
  185. data/{vendor/assets/javascripts/summernote/locales/fi-FI.js → node_modules/summernote/dist/lang/summernote-fi-FI.js} +52 -3
  186. data/node_modules/summernote/dist/lang/summernote-fi-FI.min.js +3 -0
  187. data/{vendor/assets/javascripts/summernote/locales/fr-FR.js → node_modules/summernote/dist/lang/summernote-fr-FR.js} +3 -2
  188. data/node_modules/summernote/dist/lang/summernote-fr-FR.min.js +3 -0
  189. data/{vendor/assets/javascripts/summernote/locales/gl-ES.js → node_modules/summernote/dist/lang/summernote-gl-ES.js} +12 -4
  190. data/node_modules/summernote/dist/lang/summernote-gl-ES.min.js +3 -0
  191. data/{vendor/assets/javascripts/summernote/locales/he-IL.js → node_modules/summernote/dist/lang/summernote-he-IL.js} +51 -3
  192. data/node_modules/summernote/dist/lang/summernote-he-IL.min.js +3 -0
  193. data/{vendor/assets/javascripts/summernote/locales/hr-HR.js → node_modules/summernote/dist/lang/summernote-hr-HR.js} +54 -3
  194. data/node_modules/summernote/dist/lang/summernote-hr-HR.min.js +3 -0
  195. data/{vendor/assets/javascripts/summernote/locales/hu-HU.js → node_modules/summernote/dist/lang/summernote-hu-HU.js} +25 -5
  196. data/node_modules/summernote/dist/lang/summernote-hu-HU.min.js +3 -0
  197. data/{vendor/assets/javascripts/summernote/locales/id-ID.js → node_modules/summernote/dist/lang/summernote-id-ID.js} +56 -4
  198. data/node_modules/summernote/dist/lang/summernote-id-ID.min.js +3 -0
  199. data/{vendor/assets/javascripts/summernote/locales/it-IT.js → node_modules/summernote/dist/lang/summernote-it-IT.js} +55 -4
  200. data/node_modules/summernote/dist/lang/summernote-it-IT.min.js +3 -0
  201. data/{vendor/assets/javascripts/summernote/locales/ja-JP.js → node_modules/summernote/dist/lang/summernote-ja-JP.js} +32 -10
  202. data/node_modules/summernote/dist/lang/summernote-ja-JP.min.js +3 -0
  203. data/{vendor/assets/javascripts/summernote/locales/ko-KR.js → node_modules/summernote/dist/lang/summernote-ko-KR.js} +44 -4
  204. data/node_modules/summernote/dist/lang/summernote-ko-KR.min.js +3 -0
  205. data/{vendor/assets/javascripts/summernote/locales/lt-LT.js → node_modules/summernote/dist/lang/summernote-lt-LT.js} +52 -4
  206. data/node_modules/summernote/dist/lang/summernote-lt-LT.min.js +3 -0
  207. data/{vendor/assets/javascripts/summernote/locales/lt-LV.js → node_modules/summernote/dist/lang/summernote-lt-LV.js} +27 -7
  208. data/node_modules/summernote/dist/lang/summernote-lt-LV.min.js +3 -0
  209. data/{vendor/assets/javascripts/summernote/locales/mn-MN.js → node_modules/summernote/dist/lang/summernote-mn-MN.js} +43 -4
  210. data/node_modules/summernote/dist/lang/summernote-mn-MN.min.js +3 -0
  211. data/{vendor/assets/javascripts/summernote/locales/nb-NO.js → node_modules/summernote/dist/lang/summernote-nb-NO.js} +53 -3
  212. data/node_modules/summernote/dist/lang/summernote-nb-NO.min.js +3 -0
  213. data/{vendor/assets/javascripts/summernote/locales/nl-NL.js → node_modules/summernote/dist/lang/summernote-nl-NL.js} +55 -4
  214. data/node_modules/summernote/dist/lang/summernote-nl-NL.min.js +3 -0
  215. data/{vendor/assets/javascripts/summernote/locales/pl-PL.js → node_modules/summernote/dist/lang/summernote-pl-PL.js} +46 -3
  216. data/node_modules/summernote/dist/lang/summernote-pl-PL.min.js +3 -0
  217. data/{vendor/assets/javascripts/summernote/locales/pt-BR.js → node_modules/summernote/dist/lang/summernote-pt-BR.js} +25 -8
  218. data/node_modules/summernote/dist/lang/summernote-pt-BR.min.js +3 -0
  219. data/{vendor/assets/javascripts/summernote/locales/pt-PT.js → node_modules/summernote/dist/lang/summernote-pt-PT.js} +54 -3
  220. data/node_modules/summernote/dist/lang/summernote-pt-PT.min.js +3 -0
  221. data/node_modules/summernote/dist/lang/summernote-ro-RO.js +155 -0
  222. data/node_modules/summernote/dist/lang/summernote-ro-RO.min.js +3 -0
  223. data/{vendor/assets/javascripts/summernote/locales/ru-RU.js → node_modules/summernote/dist/lang/summernote-ru-RU.js} +46 -3
  224. data/node_modules/summernote/dist/lang/summernote-ru-RU.min.js +3 -0
  225. data/{vendor/assets/javascripts/summernote/locales/sk-SK.js → node_modules/summernote/dist/lang/summernote-sk-SK.js} +54 -3
  226. data/node_modules/summernote/dist/lang/summernote-sk-SK.min.js +3 -0
  227. data/{vendor/assets/javascripts/summernote/locales/sl-SI.js → node_modules/summernote/dist/lang/summernote-sl-SI.js} +53 -4
  228. data/node_modules/summernote/dist/lang/summernote-sl-SI.min.js +3 -0
  229. data/{vendor/assets/javascripts/summernote/locales/sr-RS-Latin.js → node_modules/summernote/dist/lang/summernote-sr-RS-Latin.js} +54 -3
  230. data/node_modules/summernote/dist/lang/summernote-sr-RS-Latin.min.js +3 -0
  231. data/{vendor/assets/javascripts/summernote/locales/sr-RS.js → node_modules/summernote/dist/lang/summernote-sr-RS.js} +54 -3
  232. data/node_modules/summernote/dist/lang/summernote-sr-RS.min.js +3 -0
  233. data/{vendor/assets/javascripts/summernote/locales/sv-SE.js → node_modules/summernote/dist/lang/summernote-sv-SE.js} +55 -4
  234. data/node_modules/summernote/dist/lang/summernote-sv-SE.min.js +3 -0
  235. data/{vendor/assets/javascripts/summernote/locales/ta-IN.js → node_modules/summernote/dist/lang/summernote-ta-IN.js} +46 -4
  236. data/node_modules/summernote/dist/lang/summernote-ta-IN.min.js +3 -0
  237. data/node_modules/summernote/dist/lang/summernote-th-TH.js +155 -0
  238. data/node_modules/summernote/dist/lang/summernote-th-TH.min.js +3 -0
  239. data/{vendor/assets/javascripts/summernote/locales/tr-TR.js → node_modules/summernote/dist/lang/summernote-tr-TR.js} +3 -2
  240. data/node_modules/summernote/dist/lang/summernote-tr-TR.min.js +3 -0
  241. data/{vendor/assets/javascripts/summernote/locales/uk-UA.js → node_modules/summernote/dist/lang/summernote-uk-UA.js} +48 -4
  242. data/node_modules/summernote/dist/lang/summernote-uk-UA.min.js +3 -0
  243. data/node_modules/summernote/dist/lang/summernote-uz-UZ.js +112 -0
  244. data/node_modules/summernote/dist/lang/summernote-uz-UZ.min.js +3 -0
  245. data/{vendor/assets/javascripts/summernote/locales/vi-VN.js → node_modules/summernote/dist/lang/summernote-vi-VN.js} +55 -4
  246. data/node_modules/summernote/dist/lang/summernote-vi-VN.min.js +3 -0
  247. data/{vendor/assets/javascripts/summernote/locales/zh-CN.js → node_modules/summernote/dist/lang/summernote-zh-CN.js} +20 -7
  248. data/node_modules/summernote/dist/lang/summernote-zh-CN.min.js +3 -0
  249. data/{vendor/assets/javascripts/summernote/locales/zh-TW.js → node_modules/summernote/dist/lang/summernote-zh-TW.js} +45 -3
  250. data/node_modules/summernote/dist/lang/summernote-zh-TW.min.js +3 -0
  251. data/node_modules/summernote/dist/summernote-0.8.10-dist.zip +0 -0
  252. data/node_modules/summernote/dist/summernote-bs4.css +1 -0
  253. data/node_modules/summernote/dist/summernote-bs4.js +7323 -0
  254. data/node_modules/summernote/dist/summernote-bs4.js.map +1 -0
  255. data/node_modules/summernote/dist/summernote-bs4.min.js +3 -0
  256. data/node_modules/summernote/dist/summernote-lite.css +1 -0
  257. data/node_modules/summernote/dist/summernote-lite.js +7837 -0
  258. data/node_modules/summernote/dist/summernote-lite.js.map +1 -0
  259. data/node_modules/summernote/dist/summernote.css +1 -0
  260. data/node_modules/summernote/dist/summernote.js +7315 -0
  261. data/node_modules/summernote/dist/summernote.js.map +1 -0
  262. data/node_modules/summernote/dist/summernote.min.js +3 -0
  263. data/node_modules/summernote/examples/airmode.html +35 -0
  264. data/node_modules/summernote/examples/bs3.html +60 -0
  265. data/node_modules/summernote/examples/bs4.html +57 -0
  266. data/node_modules/summernote/examples/codemirror.html +45 -0
  267. data/node_modules/summernote/examples/external-api.html +76 -0
  268. data/node_modules/summernote/examples/hint-emoji.html +61 -0
  269. data/node_modules/summernote/examples/hint-symbols_mathematical-symbols_Greek-letters.html +54 -0
  270. data/node_modules/summernote/examples/hint-userdefine.html +48 -0
  271. data/node_modules/summernote/examples/ie8.html +32 -0
  272. data/node_modules/summernote/examples/jquery-custom-event.html +119 -0
  273. data/node_modules/summernote/examples/jquery19lt.html +25 -0
  274. data/node_modules/summernote/examples/lang.html +33 -0
  275. data/node_modules/summernote/examples/link-blank.html +33 -0
  276. data/node_modules/summernote/examples/lite.html +24 -0
  277. data/node_modules/summernote/examples/nativestyle.html +32 -0
  278. data/node_modules/summernote/examples/ondialog-multitab.html +77 -0
  279. data/node_modules/summernote/examples/ondialog.html +58 -0
  280. data/node_modules/summernote/examples/plugin-hello.html +37 -0
  281. data/node_modules/summernote/examples/rtl.html +32 -0
  282. data/node_modules/summernote/examples/symbols_mathematical-symbols_Greek-letters.json +1118 -0
  283. data/node_modules/summernote/examples/textarea.html +46 -0
  284. data/node_modules/summernote/examples/toolbar-container.html +35 -0
  285. data/node_modules/summernote/examples/with-google-font.html +50 -0
  286. data/node_modules/summernote/index.html +33 -0
  287. data/node_modules/summernote/karma.conf.js +42 -0
  288. data/node_modules/summernote/lang/summernote-ar-AR.js +155 -0
  289. data/node_modules/summernote/lang/summernote-bg-BG.js +155 -0
  290. data/node_modules/summernote/lang/summernote-ca-ES.js +155 -0
  291. data/node_modules/summernote/lang/summernote-cs-CZ.js +149 -0
  292. data/node_modules/summernote/lang/summernote-da-DK.js +155 -0
  293. data/node_modules/summernote/lang/summernote-de-DE.js +154 -0
  294. data/node_modules/summernote/lang/summernote-el-GR.js +155 -0
  295. data/node_modules/summernote/lang/summernote-es-ES.js +155 -0
  296. data/node_modules/summernote/lang/summernote-es-EU.js +154 -0
  297. data/node_modules/summernote/lang/summernote-fa-IR.js +155 -0
  298. data/node_modules/summernote/lang/summernote-fi-FI.js +153 -0
  299. data/node_modules/summernote/lang/summernote-fr-FR.js +155 -0
  300. data/node_modules/summernote/lang/summernote-gl-ES.js +155 -0
  301. data/node_modules/summernote/lang/summernote-he-IL.js +155 -0
  302. data/node_modules/summernote/lang/summernote-hr-HR.js +155 -0
  303. data/node_modules/summernote/lang/summernote-hu-HU.js +155 -0
  304. data/node_modules/summernote/lang/summernote-id-ID.js +155 -0
  305. data/node_modules/summernote/lang/summernote-it-IT.js +155 -0
  306. data/node_modules/summernote/lang/summernote-ja-JP.js +155 -0
  307. data/node_modules/summernote/lang/summernote-ko-KR.js +155 -0
  308. data/node_modules/summernote/lang/summernote-lt-LT.js +155 -0
  309. data/node_modules/summernote/lang/summernote-lt-LV.js +155 -0
  310. data/node_modules/summernote/lang/summernote-mn-MN.js +157 -0
  311. data/node_modules/summernote/lang/summernote-nb-NO.js +154 -0
  312. data/node_modules/summernote/lang/summernote-nl-NL.js +155 -0
  313. data/node_modules/summernote/lang/summernote-pl-PL.js +155 -0
  314. data/node_modules/summernote/lang/summernote-pt-BR.js +155 -0
  315. data/node_modules/summernote/lang/summernote-pt-PT.js +154 -0
  316. data/node_modules/summernote/lang/summernote-ro-RO.js +155 -0
  317. data/node_modules/summernote/lang/summernote-ru-RU.js +155 -0
  318. data/node_modules/summernote/lang/summernote-sk-SK.js +153 -0
  319. data/node_modules/summernote/lang/summernote-sl-SI.js +155 -0
  320. data/node_modules/summernote/lang/summernote-sr-RS-Latin.js +155 -0
  321. data/node_modules/summernote/lang/summernote-sr-RS.js +155 -0
  322. data/node_modules/summernote/lang/summernote-sv-SE.js +155 -0
  323. data/node_modules/summernote/lang/summernote-ta-IN.js +155 -0
  324. data/node_modules/summernote/lang/summernote-th-TH.js +155 -0
  325. data/node_modules/summernote/lang/summernote-tr-TR.js +155 -0
  326. data/node_modules/summernote/lang/summernote-uk-UA.js +155 -0
  327. data/node_modules/summernote/lang/summernote-uz-UZ.js +112 -0
  328. data/node_modules/summernote/lang/summernote-vi-VN.js +155 -0
  329. data/node_modules/summernote/lang/summernote-zh-CN.js +155 -0
  330. data/node_modules/summernote/lang/summernote-zh-TW.js +155 -0
  331. data/node_modules/summernote/package.json +87 -0
  332. data/{vendor/assets/javascripts → node_modules}/summernote/plugin/databasic/summernote-ext-databasic.css +0 -0
  333. data/{vendor/assets/javascripts → node_modules}/summernote/plugin/databasic/summernote-ext-databasic.js +62 -73
  334. data/{vendor/assets/javascripts → node_modules}/summernote/plugin/hello/summernote-ext-hello.js +9 -10
  335. data/{vendor/assets/javascripts → node_modules}/summernote/plugin/specialchars/summernote-ext-specialchars.js +22 -25
  336. data/node_modules/summernote/src/icons/align-center.svg +11 -0
  337. data/node_modules/summernote/src/icons/align-indent.svg +11 -0
  338. data/node_modules/summernote/src/icons/align-justify.svg +11 -0
  339. data/node_modules/summernote/src/icons/align-left.svg +12 -0
  340. data/node_modules/summernote/src/icons/align-outdent.svg +11 -0
  341. data/node_modules/summernote/src/icons/align-right.svg +11 -0
  342. data/node_modules/summernote/src/icons/align.svg +8 -0
  343. data/node_modules/summernote/src/icons/arrow-circle-down.svg +1 -0
  344. data/node_modules/summernote/src/icons/arrow-circle-left.svg +1 -0
  345. data/node_modules/summernote/src/icons/arrow-circle-right.svg +1 -0
  346. data/node_modules/summernote/src/icons/arrow-circle-up.svg +1 -0
  347. data/node_modules/summernote/src/icons/arrows-alt.svg +11 -0
  348. data/node_modules/summernote/src/icons/arrows-h.svg +1 -0
  349. data/node_modules/summernote/src/icons/arrows-v.svg +1 -0
  350. data/node_modules/summernote/src/icons/bold.svg +11 -0
  351. data/node_modules/summernote/src/icons/caret.svg +9 -0
  352. data/node_modules/summernote/src/icons/chain-broken.svg +47 -0
  353. data/node_modules/summernote/src/icons/circle.svg +10 -0
  354. data/node_modules/summernote/src/icons/close.svg +16 -0
  355. data/node_modules/summernote/src/icons/code.svg +11 -0
  356. data/node_modules/summernote/src/icons/col-after.svg +96 -0
  357. data/node_modules/summernote/src/icons/col-before.svg +19 -0
  358. data/node_modules/summernote/src/icons/col-remove.svg +19 -0
  359. data/node_modules/summernote/src/icons/dist/font/summernote.eot +0 -0
  360. data/node_modules/summernote/src/icons/dist/font/summernote.ttf +0 -0
  361. data/node_modules/summernote/src/icons/dist/font/summernote.woff +0 -0
  362. data/node_modules/summernote/src/icons/dist/summernote.html +536 -0
  363. data/node_modules/summernote/src/icons/dist/summernote.less +511 -0
  364. data/node_modules/summernote/src/icons/eraser.svg +13 -0
  365. data/node_modules/summernote/src/icons/font.svg +11 -0
  366. data/node_modules/summernote/src/icons/frame.svg +10 -0
  367. data/node_modules/summernote/src/icons/italic.svg +11 -0
  368. data/node_modules/summernote/src/icons/link.svg +21 -0
  369. data/node_modules/summernote/src/icons/magic.svg +10 -0
  370. data/node_modules/summernote/src/icons/menu-check.svg +8 -0
  371. data/node_modules/summernote/src/icons/minus.svg +11 -0
  372. data/node_modules/summernote/src/icons/orderedlist.svg +12 -0
  373. data/node_modules/summernote/src/icons/pencil.svg +8 -0
  374. data/node_modules/summernote/src/icons/picture.svg +11 -0
  375. data/node_modules/summernote/src/icons/question.svg +10 -0
  376. data/node_modules/summernote/src/icons/redo.svg +10 -0
  377. data/node_modules/summernote/src/icons/row-above.svg +19 -0
  378. data/node_modules/summernote/src/icons/row-below.svg +19 -0
  379. data/node_modules/summernote/src/icons/row-remove.svg +19 -0
  380. data/node_modules/summernote/src/icons/special-character.svg +10 -0
  381. data/node_modules/summernote/src/icons/square.svg +10 -0
  382. data/node_modules/summernote/src/icons/strikethrough.svg +11 -0
  383. data/node_modules/summernote/src/icons/subscript.svg +11 -0
  384. data/node_modules/summernote/src/icons/summernote.svg +11 -0
  385. data/node_modules/summernote/src/icons/superscript.svg +11 -0
  386. data/node_modules/summernote/src/icons/table.svg +11 -0
  387. data/node_modules/summernote/src/icons/templates/summernote.css +110 -0
  388. data/node_modules/summernote/src/icons/templates/summernote.json +5 -0
  389. data/node_modules/summernote/src/icons/text-height.svg +11 -0
  390. data/node_modules/summernote/src/icons/trash.svg +17 -0
  391. data/node_modules/summernote/src/icons/underline.svg +11 -0
  392. data/node_modules/summernote/src/icons/undo.svg +10 -0
  393. data/node_modules/summernote/src/icons/unorderedlist.svg +9 -0
  394. data/node_modules/summernote/src/icons/video.svg +9 -0
  395. data/node_modules/summernote/src/js/base/Context.js +231 -0
  396. data/node_modules/summernote/src/js/base/core/async.js +47 -0
  397. data/node_modules/summernote/src/js/base/core/dom.js +1088 -0
  398. data/node_modules/summernote/src/js/base/core/env.js +107 -0
  399. data/node_modules/summernote/src/js/base/core/func.js +162 -0
  400. data/node_modules/summernote/src/js/base/core/key.js +92 -0
  401. data/node_modules/summernote/src/js/base/core/lists.js +210 -0
  402. data/node_modules/summernote/src/js/base/core/range.js +792 -0
  403. data/node_modules/summernote/src/js/base/editing/Bullet.js +201 -0
  404. data/node_modules/summernote/src/js/base/editing/History.js +105 -0
  405. data/node_modules/summernote/src/js/base/editing/Style.js +158 -0
  406. data/node_modules/summernote/src/js/base/editing/Table.js +574 -0
  407. data/node_modules/summernote/src/js/base/editing/Typing.js +90 -0
  408. data/node_modules/summernote/src/js/base/module/AirPopover.js +73 -0
  409. data/node_modules/summernote/src/js/base/module/AutoLink.js +61 -0
  410. data/node_modules/summernote/src/js/base/module/AutoSync.js +19 -0
  411. data/node_modules/summernote/src/js/base/module/Buttons.js +813 -0
  412. data/node_modules/summernote/src/js/base/module/Clipboard.js +28 -0
  413. data/node_modules/summernote/src/js/base/module/Codeview.js +123 -0
  414. data/node_modules/summernote/src/js/base/module/Dropzone.js +115 -0
  415. data/node_modules/summernote/src/js/base/module/Editor.js +861 -0
  416. data/node_modules/summernote/src/js/base/module/Fullscreen.js +51 -0
  417. data/node_modules/summernote/src/js/base/module/Handle.js +143 -0
  418. data/node_modules/summernote/src/js/base/module/HelpDialog.js +79 -0
  419. data/node_modules/summernote/src/js/base/module/HintPopover.js +226 -0
  420. data/node_modules/summernote/src/js/base/module/ImageDialog.js +131 -0
  421. data/node_modules/summernote/src/js/base/module/ImagePopover.js +58 -0
  422. data/node_modules/summernote/src/js/base/module/LinkDialog.js +174 -0
  423. data/node_modules/summernote/src/js/base/module/LinkPopover.js +69 -0
  424. data/node_modules/summernote/src/js/base/module/Placeholder.js +39 -0
  425. data/node_modules/summernote/src/js/base/module/Statusbar.js +42 -0
  426. data/node_modules/summernote/src/js/base/module/TablePopover.js +71 -0
  427. data/node_modules/summernote/src/js/base/module/Toolbar.js +136 -0
  428. data/node_modules/summernote/src/js/base/module/VideoDialog.js +205 -0
  429. data/node_modules/summernote/src/js/base/renderer.js +66 -0
  430. data/node_modules/summernote/src/js/base/summernote-en-US.js +159 -0
  431. data/node_modules/summernote/src/js/bs3/settings.js +297 -0
  432. data/node_modules/summernote/src/js/bs3/ui.js +237 -0
  433. data/node_modules/summernote/src/js/bs4/settings.js +301 -0
  434. data/node_modules/summernote/src/js/bs4/ui.js +242 -0
  435. data/node_modules/summernote/src/js/lite/settings.js +296 -0
  436. data/node_modules/summernote/src/js/lite/ui.js +618 -0
  437. data/node_modules/summernote/src/js/lite/ui/DropdownUI.js +65 -0
  438. data/node_modules/summernote/src/js/lite/ui/ModalUI.js +34 -0
  439. data/node_modules/summernote/src/js/lite/ui/PopoverUI.js +94 -0
  440. data/node_modules/summernote/src/js/lite/ui/TooltipUI.js +93 -0
  441. data/node_modules/summernote/src/js/summernote.js +46 -0
  442. data/node_modules/summernote/src/less/elements.less +149 -0
  443. data/node_modules/summernote/src/less/elements.scss +149 -0
  444. data/node_modules/summernote/src/less/lite-ui/all.less +15 -0
  445. data/node_modules/summernote/src/less/lite-ui/btn-group.less +51 -0
  446. data/node_modules/summernote/src/less/lite-ui/buttons.less +102 -0
  447. data/node_modules/summernote/src/less/lite-ui/common.less +20 -0
  448. data/node_modules/summernote/src/less/lite-ui/dropdown.less +39 -0
  449. data/node_modules/summernote/src/less/lite-ui/form.less +43 -0
  450. data/node_modules/summernote/src/less/lite-ui/mixins.less +1 -0
  451. data/node_modules/summernote/src/less/lite-ui/mixins/buttons.less +40 -0
  452. data/node_modules/summernote/src/less/lite-ui/modal.less +104 -0
  453. data/node_modules/summernote/src/less/lite-ui/popover.less +121 -0
  454. data/node_modules/summernote/src/less/lite-ui/toolbar.less +4 -0
  455. data/node_modules/summernote/src/less/lite-ui/tooltip.less +66 -0
  456. data/node_modules/summernote/src/less/lite-ui/variables.less +81 -0
  457. data/node_modules/summernote/src/less/summernote-bs4.less +577 -0
  458. data/node_modules/summernote/src/less/summernote-bs4.scss +560 -0
  459. data/node_modules/summernote/src/less/summernote-lite.less +601 -0
  460. data/node_modules/summernote/src/less/summernote.less +576 -0
  461. data/node_modules/summernote/src/less/summernote.scss +560 -0
  462. data/node_modules/summernote/tsconfig.json +12 -0
  463. metadata +459 -69
  464. data/vendor/assets/fonts/summernote.eot +0 -0
  465. data/vendor/assets/fonts/summernote.ttf +0 -0
  466. data/vendor/assets/fonts/summernote.woff +0 -0
  467. data/vendor/assets/javascripts/summernote/index.js +0 -1
  468. data/vendor/assets/javascripts/summernote/locales/index.js +0 -1
  469. data/vendor/assets/javascripts/summernote/locales/ro-RO.js +0 -102
  470. data/vendor/assets/javascripts/summernote/locales/th-TH.js +0 -106
  471. data/vendor/assets/javascripts/summernote/summernote-bs4.js +0 -7990
  472. data/vendor/assets/javascripts/summernote/summernote-lite.js +0 -8598
  473. data/vendor/assets/javascripts/summernote/summernote.js +0 -7987
  474. data/vendor/assets/stylesheets/summernote-bs4.css +0 -1
  475. data/vendor/assets/stylesheets/summernote-lite.css +0 -1
  476. data/vendor/assets/stylesheets/summernote.scss +0 -1
@@ -0,0 +1,410 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for src/js/base/module/Dropzone.js</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../../../../prettify.css" />
7
+ <link rel="stylesheet" href="../../../../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../../../../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../../../../index.html">all files</a> / <a href="index.html">src/js/base/module/</a> Dropzone.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">46.67% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>28/60</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">5.56% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>1/18</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">40% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>6/15</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">46.67% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>28/60</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line low'></div>
45
+ <pre><table class="coverage">
46
+ <tr><td class="line-count quiet">1
47
+ 2
48
+ 3
49
+ 4
50
+ 5
51
+ 6
52
+ 7
53
+ 8
54
+ 9
55
+ 10
56
+ 11
57
+ 12
58
+ 13
59
+ 14
60
+ 15
61
+ 16
62
+ 17
63
+ 18
64
+ 19
65
+ 20
66
+ 21
67
+ 22
68
+ 23
69
+ 24
70
+ 25
71
+ 26
72
+ 27
73
+ 28
74
+ 29
75
+ 30
76
+ 31
77
+ 32
78
+ 33
79
+ 34
80
+ 35
81
+ 36
82
+ 37
83
+ 38
84
+ 39
85
+ 40
86
+ 41
87
+ 42
88
+ 43
89
+ 44
90
+ 45
91
+ 46
92
+ 47
93
+ 48
94
+ 49
95
+ 50
96
+ 51
97
+ 52
98
+ 53
99
+ 54
100
+ 55
101
+ 56
102
+ 57
103
+ 58
104
+ 59
105
+ 60
106
+ 61
107
+ 62
108
+ 63
109
+ 64
110
+ 65
111
+ 66
112
+ 67
113
+ 68
114
+ 69
115
+ 70
116
+ 71
117
+ 72
118
+ 73
119
+ 74
120
+ 75
121
+ 76
122
+ 77
123
+ 78
124
+ 79
125
+ 80
126
+ 81
127
+ 82
128
+ 83
129
+ 84
130
+ 85
131
+ 86
132
+ 87
133
+ 88
134
+ 89
135
+ 90
136
+ 91
137
+ 92
138
+ 93
139
+ 94
140
+ 95
141
+ 96
142
+ 97
143
+ 98
144
+ 99
145
+ 100
146
+ 101
147
+ 102
148
+ 103
149
+ 104
150
+ 105
151
+ 106
152
+ 107
153
+ 108
154
+ 109
155
+ 110
156
+ 111
157
+ 112
158
+ 113
159
+ 114
160
+ 115
161
+ 116</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">1×</span>
164
+ <span class="cline-any cline-yes">1×</span>
165
+ <span class="cline-any cline-yes">77×</span>
166
+ <span class="cline-any cline-yes">77×</span>
167
+ <span class="cline-any cline-yes">77×</span>
168
+ <span class="cline-any cline-yes">77×</span>
169
+ <span class="cline-any cline-yes">77×</span>
170
+ <span class="cline-any cline-yes">77×</span>
171
+ <span class="cline-any cline-yes">77×</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-yes">77×</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-yes">1×</span>
184
+ <span class="cline-any cline-yes">77×</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-no">&nbsp;</span>
187
+ <span class="cline-any cline-no">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-no">&nbsp;</span>
191
+ <span class="cline-any cline-no">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-yes">77×</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-yes">78×</span>
201
+ <span class="cline-any cline-yes">77×</span>
202
+ <span class="cline-any cline-yes">77×</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-yes">77×</span>
205
+ <span class="cline-any cline-no">&nbsp;</span>
206
+ <span class="cline-any cline-no">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
208
+ <span class="cline-any cline-no">&nbsp;</span>
209
+ <span class="cline-any cline-no">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
211
+ <span class="cline-any cline-no">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-no">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-yes">77×</span>
217
+ <span class="cline-any cline-no">&nbsp;</span>
218
+ <span class="cline-any cline-no">&nbsp;</span>
219
+ <span class="cline-any cline-no">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">77×</span>
224
+ <span class="cline-any cline-no">&nbsp;</span>
225
+ <span class="cline-any cline-no">&nbsp;</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">77×</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-yes">77×</span>
236
+ <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-no">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-no">&nbsp;</span>
240
+ <span class="cline-any cline-no">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-yes">77×</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-no">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-no">&nbsp;</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-no">&nbsp;</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-yes">3×</span>
270
+ <span class="cline-any cline-yes">2×</span>
271
+ <span class="cline-any cline-yes">6×</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-yes">2×</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">1×</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import $ from 'jquery';
277
+ &nbsp;
278
+ export default class Dropzone {
279
+ constructor(context) {
280
+ this.context = context;
281
+ this.$eventListener = $(document);
282
+ this.$editor = context.layoutInfo.editor;
283
+ this.$editable = context.layoutInfo.editable;
284
+ this.options = context.options;
285
+ this.lang = this.options.langInfo;
286
+ this.documentEventHandlers = {};
287
+ &nbsp;
288
+ this.$dropzone = $([
289
+ '&lt;div class="note-dropzone"&gt;',
290
+ ' &lt;div class="note-dropzone-message"/&gt;',
291
+ '&lt;/div&gt;'
292
+ ].join('')).prependTo(this.$editor);
293
+ }
294
+ &nbsp;
295
+ /**
296
+ * attach Drag and Drop Events
297
+ */
298
+ initialize() {
299
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.disableDragAndDrop) {
300
+ // prevent default drop event
301
+ <span class="cstat-no" title="statement not covered" > this.documentEventHandlers.onDrop = <span class="fstat-no" title="function not covered" >(e)</span> =&gt; {</span>
302
+ <span class="cstat-no" title="statement not covered" > e.preventDefault();</span>
303
+ };
304
+ // do not consider outside of dropzone
305
+ <span class="cstat-no" title="statement not covered" > this.$eventListener = this.$dropzone;</span>
306
+ <span class="cstat-no" title="statement not covered" > this.$eventListener.on('drop', this.documentEventHandlers.onDrop);</span>
307
+ } else {
308
+ this.attachDragAndDropEvent();
309
+ }
310
+ }
311
+ &nbsp;
312
+ /**
313
+ * attach Drag and Drop Events
314
+ */
315
+ attachDragAndDropEvent() {
316
+ let collection = $();
317
+ const $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');
318
+ &nbsp;
319
+ this.documentEventHandlers.onDragenter = <span class="fstat-no" title="function not covered" >(e)</span> =&gt; {
320
+ <span class="cstat-no" title="statement not covered" > const isCodeview = this.context.invoke('codeview.isActivated');</span>
321
+ <span class="cstat-no" title="statement not covered" > const hasEditorSize = this.$editor.width() &gt; 0 &amp;&amp; this.$editor.height() &gt; 0;</span>
322
+ <span class="cstat-no" title="statement not covered" > if (!isCodeview &amp;&amp; !collection.length &amp;&amp; hasEditorSize) {</span>
323
+ <span class="cstat-no" title="statement not covered" > this.$editor.addClass('dragover');</span>
324
+ <span class="cstat-no" title="statement not covered" > this.$dropzone.width(this.$editor.width());</span>
325
+ <span class="cstat-no" title="statement not covered" > this.$dropzone.height(this.$editor.height());</span>
326
+ <span class="cstat-no" title="statement not covered" > $dropzoneMessage.text(this.lang.image.dragImageHere);</span>
327
+ }
328
+ <span class="cstat-no" title="statement not covered" > collection = collection.add(e.target);</span>
329
+ };
330
+ &nbsp;
331
+ this.documentEventHandlers.onDragleave = <span class="fstat-no" title="function not covered" >(e)</span> =&gt; {
332
+ <span class="cstat-no" title="statement not covered" > collection = collection.not(e.target);</span>
333
+ <span class="cstat-no" title="statement not covered" > if (!collection.length) {</span>
334
+ <span class="cstat-no" title="statement not covered" > this.$editor.removeClass('dragover');</span>
335
+ }
336
+ };
337
+ &nbsp;
338
+ this.documentEventHandlers.onDrop = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
339
+ <span class="cstat-no" title="statement not covered" > collection = $();</span>
340
+ <span class="cstat-no" title="statement not covered" > this.$editor.removeClass('dragover');</span>
341
+ };
342
+ &nbsp;
343
+ // show dropzone on dragenter when dragging a object to document
344
+ // -but only if the editor is visible, i.e. has a positive width and height
345
+ this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)
346
+ .on('dragleave', this.documentEventHandlers.onDragleave)
347
+ .on('drop', this.documentEventHandlers.onDrop);
348
+ &nbsp;
349
+ // change dropzone's message on hover.
350
+ this.$dropzone.on('dragenter', <span class="fstat-no" title="function not covered" >() =&gt; {</span>
351
+ <span class="cstat-no" title="statement not covered" > this.$dropzone.addClass('hover');</span>
352
+ <span class="cstat-no" title="statement not covered" > $dropzoneMessage.text(this.lang.image.dropImage);</span>
353
+ }).on('dragleave', <span class="fstat-no" title="function not covered" >() =&gt; {</span>
354
+ <span class="cstat-no" title="statement not covered" > this.$dropzone.removeClass('hover');</span>
355
+ <span class="cstat-no" title="statement not covered" > $dropzoneMessage.text(this.lang.image.dragImageHere);</span>
356
+ });
357
+ &nbsp;
358
+ // attach dropImage
359
+ this.$dropzone.on('drop', <span class="fstat-no" title="function not covered" >(event)</span> =&gt; {
360
+ <span class="cstat-no" title="statement not covered" > const dataTransfer = event.originalEvent.dataTransfer;</span>
361
+ &nbsp;
362
+ // stop the browser from opening the dropped content
363
+ <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
364
+ &nbsp;
365
+ <span class="cstat-no" title="statement not covered" > if (dataTransfer &amp;&amp; dataTransfer.files &amp;&amp; dataTransfer.files.length) {</span>
366
+ <span class="cstat-no" title="statement not covered" > this.$editable.focus();</span>
367
+ <span class="cstat-no" title="statement not covered" > this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);</span>
368
+ } else {
369
+ <span class="cstat-no" title="statement not covered" > $.each(dataTransfer.types, <span class="fstat-no" title="function not covered" >(idx, type)</span> =&gt; {</span>
370
+ <span class="cstat-no" title="statement not covered" > const content = dataTransfer.getData(type);</span>
371
+ &nbsp;
372
+ <span class="cstat-no" title="statement not covered" > if (type.toLowerCase().indexOf('text') &gt; -1) {</span>
373
+ <span class="cstat-no" title="statement not covered" > this.context.invoke('editor.pasteHTML', content);</span>
374
+ } else {
375
+ <span class="cstat-no" title="statement not covered" > $(content).each(<span class="fstat-no" title="function not covered" >(idx, item)</span> =&gt; {</span>
376
+ <span class="cstat-no" title="statement not covered" > this.context.invoke('editor.insertNode', item);</span>
377
+ });
378
+ }
379
+ });
380
+ }
381
+ }).on('dragover', false); // prevent default dragover event
382
+ }
383
+ &nbsp;
384
+ destroy() {
385
+ Object.keys(this.documentEventHandlers).forEach((key) =&gt; {
386
+ this.$eventListener.off(key.substr(2).toLowerCase(), this.documentEventHandlers[key]);
387
+ });
388
+ this.documentEventHandlers = {};
389
+ }
390
+ }
391
+ &nbsp;</pre></td></tr>
392
+ </table></pre>
393
+ <div class='push'></div><!-- for sticky footer -->
394
+ </div><!-- /wrapper -->
395
+ <div class='footer quiet pad2 space-top1 center small'>
396
+ Code coverage
397
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Feb 20 2018 09:36:40 GMT+0900 (KST)
398
+ </div>
399
+ </div>
400
+ <script src="../../../../prettify.js"></script>
401
+ <script>
402
+ window.onload = function () {
403
+ if (typeof prettyPrint === 'function') {
404
+ prettyPrint();
405
+ }
406
+ };
407
+ </script>
408
+ <script src="../../../../sorter.js"></script>
409
+ </body>
410
+ </html>
@@ -0,0 +1,2648 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for src/js/base/module/Editor.js</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="../../../../prettify.css" />
7
+ <link rel="stylesheet" href="../../../../base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(../../../../sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="../../../../index.html">all files</a> / <a href="index.html">src/js/base/module/</a> Editor.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">70.78% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>281/397</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">43.43% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>76/175</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">64.29% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>54/84</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">71.43% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>280/392</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line medium'></div>
45
+ <pre><table class="coverage">
46
+ <tr><td class="line-count quiet">1
47
+ 2
48
+ 3
49
+ 4
50
+ 5
51
+ 6
52
+ 7
53
+ 8
54
+ 9
55
+ 10
56
+ 11
57
+ 12
58
+ 13
59
+ 14
60
+ 15
61
+ 16
62
+ 17
63
+ 18
64
+ 19
65
+ 20
66
+ 21
67
+ 22
68
+ 23
69
+ 24
70
+ 25
71
+ 26
72
+ 27
73
+ 28
74
+ 29
75
+ 30
76
+ 31
77
+ 32
78
+ 33
79
+ 34
80
+ 35
81
+ 36
82
+ 37
83
+ 38
84
+ 39
85
+ 40
86
+ 41
87
+ 42
88
+ 43
89
+ 44
90
+ 45
91
+ 46
92
+ 47
93
+ 48
94
+ 49
95
+ 50
96
+ 51
97
+ 52
98
+ 53
99
+ 54
100
+ 55
101
+ 56
102
+ 57
103
+ 58
104
+ 59
105
+ 60
106
+ 61
107
+ 62
108
+ 63
109
+ 64
110
+ 65
111
+ 66
112
+ 67
113
+ 68
114
+ 69
115
+ 70
116
+ 71
117
+ 72
118
+ 73
119
+ 74
120
+ 75
121
+ 76
122
+ 77
123
+ 78
124
+ 79
125
+ 80
126
+ 81
127
+ 82
128
+ 83
129
+ 84
130
+ 85
131
+ 86
132
+ 87
133
+ 88
134
+ 89
135
+ 90
136
+ 91
137
+ 92
138
+ 93
139
+ 94
140
+ 95
141
+ 96
142
+ 97
143
+ 98
144
+ 99
145
+ 100
146
+ 101
147
+ 102
148
+ 103
149
+ 104
150
+ 105
151
+ 106
152
+ 107
153
+ 108
154
+ 109
155
+ 110
156
+ 111
157
+ 112
158
+ 113
159
+ 114
160
+ 115
161
+ 116
162
+ 117
163
+ 118
164
+ 119
165
+ 120
166
+ 121
167
+ 122
168
+ 123
169
+ 124
170
+ 125
171
+ 126
172
+ 127
173
+ 128
174
+ 129
175
+ 130
176
+ 131
177
+ 132
178
+ 133
179
+ 134
180
+ 135
181
+ 136
182
+ 137
183
+ 138
184
+ 139
185
+ 140
186
+ 141
187
+ 142
188
+ 143
189
+ 144
190
+ 145
191
+ 146
192
+ 147
193
+ 148
194
+ 149
195
+ 150
196
+ 151
197
+ 152
198
+ 153
199
+ 154
200
+ 155
201
+ 156
202
+ 157
203
+ 158
204
+ 159
205
+ 160
206
+ 161
207
+ 162
208
+ 163
209
+ 164
210
+ 165
211
+ 166
212
+ 167
213
+ 168
214
+ 169
215
+ 170
216
+ 171
217
+ 172
218
+ 173
219
+ 174
220
+ 175
221
+ 176
222
+ 177
223
+ 178
224
+ 179
225
+ 180
226
+ 181
227
+ 182
228
+ 183
229
+ 184
230
+ 185
231
+ 186
232
+ 187
233
+ 188
234
+ 189
235
+ 190
236
+ 191
237
+ 192
238
+ 193
239
+ 194
240
+ 195
241
+ 196
242
+ 197
243
+ 198
244
+ 199
245
+ 200
246
+ 201
247
+ 202
248
+ 203
249
+ 204
250
+ 205
251
+ 206
252
+ 207
253
+ 208
254
+ 209
255
+ 210
256
+ 211
257
+ 212
258
+ 213
259
+ 214
260
+ 215
261
+ 216
262
+ 217
263
+ 218
264
+ 219
265
+ 220
266
+ 221
267
+ 222
268
+ 223
269
+ 224
270
+ 225
271
+ 226
272
+ 227
273
+ 228
274
+ 229
275
+ 230
276
+ 231
277
+ 232
278
+ 233
279
+ 234
280
+ 235
281
+ 236
282
+ 237
283
+ 238
284
+ 239
285
+ 240
286
+ 241
287
+ 242
288
+ 243
289
+ 244
290
+ 245
291
+ 246
292
+ 247
293
+ 248
294
+ 249
295
+ 250
296
+ 251
297
+ 252
298
+ 253
299
+ 254
300
+ 255
301
+ 256
302
+ 257
303
+ 258
304
+ 259
305
+ 260
306
+ 261
307
+ 262
308
+ 263
309
+ 264
310
+ 265
311
+ 266
312
+ 267
313
+ 268
314
+ 269
315
+ 270
316
+ 271
317
+ 272
318
+ 273
319
+ 274
320
+ 275
321
+ 276
322
+ 277
323
+ 278
324
+ 279
325
+ 280
326
+ 281
327
+ 282
328
+ 283
329
+ 284
330
+ 285
331
+ 286
332
+ 287
333
+ 288
334
+ 289
335
+ 290
336
+ 291
337
+ 292
338
+ 293
339
+ 294
340
+ 295
341
+ 296
342
+ 297
343
+ 298
344
+ 299
345
+ 300
346
+ 301
347
+ 302
348
+ 303
349
+ 304
350
+ 305
351
+ 306
352
+ 307
353
+ 308
354
+ 309
355
+ 310
356
+ 311
357
+ 312
358
+ 313
359
+ 314
360
+ 315
361
+ 316
362
+ 317
363
+ 318
364
+ 319
365
+ 320
366
+ 321
367
+ 322
368
+ 323
369
+ 324
370
+ 325
371
+ 326
372
+ 327
373
+ 328
374
+ 329
375
+ 330
376
+ 331
377
+ 332
378
+ 333
379
+ 334
380
+ 335
381
+ 336
382
+ 337
383
+ 338
384
+ 339
385
+ 340
386
+ 341
387
+ 342
388
+ 343
389
+ 344
390
+ 345
391
+ 346
392
+ 347
393
+ 348
394
+ 349
395
+ 350
396
+ 351
397
+ 352
398
+ 353
399
+ 354
400
+ 355
401
+ 356
402
+ 357
403
+ 358
404
+ 359
405
+ 360
406
+ 361
407
+ 362
408
+ 363
409
+ 364
410
+ 365
411
+ 366
412
+ 367
413
+ 368
414
+ 369
415
+ 370
416
+ 371
417
+ 372
418
+ 373
419
+ 374
420
+ 375
421
+ 376
422
+ 377
423
+ 378
424
+ 379
425
+ 380
426
+ 381
427
+ 382
428
+ 383
429
+ 384
430
+ 385
431
+ 386
432
+ 387
433
+ 388
434
+ 389
435
+ 390
436
+ 391
437
+ 392
438
+ 393
439
+ 394
440
+ 395
441
+ 396
442
+ 397
443
+ 398
444
+ 399
445
+ 400
446
+ 401
447
+ 402
448
+ 403
449
+ 404
450
+ 405
451
+ 406
452
+ 407
453
+ 408
454
+ 409
455
+ 410
456
+ 411
457
+ 412
458
+ 413
459
+ 414
460
+ 415
461
+ 416
462
+ 417
463
+ 418
464
+ 419
465
+ 420
466
+ 421
467
+ 422
468
+ 423
469
+ 424
470
+ 425
471
+ 426
472
+ 427
473
+ 428
474
+ 429
475
+ 430
476
+ 431
477
+ 432
478
+ 433
479
+ 434
480
+ 435
481
+ 436
482
+ 437
483
+ 438
484
+ 439
485
+ 440
486
+ 441
487
+ 442
488
+ 443
489
+ 444
490
+ 445
491
+ 446
492
+ 447
493
+ 448
494
+ 449
495
+ 450
496
+ 451
497
+ 452
498
+ 453
499
+ 454
500
+ 455
501
+ 456
502
+ 457
503
+ 458
504
+ 459
505
+ 460
506
+ 461
507
+ 462
508
+ 463
509
+ 464
510
+ 465
511
+ 466
512
+ 467
513
+ 468
514
+ 469
515
+ 470
516
+ 471
517
+ 472
518
+ 473
519
+ 474
520
+ 475
521
+ 476
522
+ 477
523
+ 478
524
+ 479
525
+ 480
526
+ 481
527
+ 482
528
+ 483
529
+ 484
530
+ 485
531
+ 486
532
+ 487
533
+ 488
534
+ 489
535
+ 490
536
+ 491
537
+ 492
538
+ 493
539
+ 494
540
+ 495
541
+ 496
542
+ 497
543
+ 498
544
+ 499
545
+ 500
546
+ 501
547
+ 502
548
+ 503
549
+ 504
550
+ 505
551
+ 506
552
+ 507
553
+ 508
554
+ 509
555
+ 510
556
+ 511
557
+ 512
558
+ 513
559
+ 514
560
+ 515
561
+ 516
562
+ 517
563
+ 518
564
+ 519
565
+ 520
566
+ 521
567
+ 522
568
+ 523
569
+ 524
570
+ 525
571
+ 526
572
+ 527
573
+ 528
574
+ 529
575
+ 530
576
+ 531
577
+ 532
578
+ 533
579
+ 534
580
+ 535
581
+ 536
582
+ 537
583
+ 538
584
+ 539
585
+ 540
586
+ 541
587
+ 542
588
+ 543
589
+ 544
590
+ 545
591
+ 546
592
+ 547
593
+ 548
594
+ 549
595
+ 550
596
+ 551
597
+ 552
598
+ 553
599
+ 554
600
+ 555
601
+ 556
602
+ 557
603
+ 558
604
+ 559
605
+ 560
606
+ 561
607
+ 562
608
+ 563
609
+ 564
610
+ 565
611
+ 566
612
+ 567
613
+ 568
614
+ 569
615
+ 570
616
+ 571
617
+ 572
618
+ 573
619
+ 574
620
+ 575
621
+ 576
622
+ 577
623
+ 578
624
+ 579
625
+ 580
626
+ 581
627
+ 582
628
+ 583
629
+ 584
630
+ 585
631
+ 586
632
+ 587
633
+ 588
634
+ 589
635
+ 590
636
+ 591
637
+ 592
638
+ 593
639
+ 594
640
+ 595
641
+ 596
642
+ 597
643
+ 598
644
+ 599
645
+ 600
646
+ 601
647
+ 602
648
+ 603
649
+ 604
650
+ 605
651
+ 606
652
+ 607
653
+ 608
654
+ 609
655
+ 610
656
+ 611
657
+ 612
658
+ 613
659
+ 614
660
+ 615
661
+ 616
662
+ 617
663
+ 618
664
+ 619
665
+ 620
666
+ 621
667
+ 622
668
+ 623
669
+ 624
670
+ 625
671
+ 626
672
+ 627
673
+ 628
674
+ 629
675
+ 630
676
+ 631
677
+ 632
678
+ 633
679
+ 634
680
+ 635
681
+ 636
682
+ 637
683
+ 638
684
+ 639
685
+ 640
686
+ 641
687
+ 642
688
+ 643
689
+ 644
690
+ 645
691
+ 646
692
+ 647
693
+ 648
694
+ 649
695
+ 650
696
+ 651
697
+ 652
698
+ 653
699
+ 654
700
+ 655
701
+ 656
702
+ 657
703
+ 658
704
+ 659
705
+ 660
706
+ 661
707
+ 662
708
+ 663
709
+ 664
710
+ 665
711
+ 666
712
+ 667
713
+ 668
714
+ 669
715
+ 670
716
+ 671
717
+ 672
718
+ 673
719
+ 674
720
+ 675
721
+ 676
722
+ 677
723
+ 678
724
+ 679
725
+ 680
726
+ 681
727
+ 682
728
+ 683
729
+ 684
730
+ 685
731
+ 686
732
+ 687
733
+ 688
734
+ 689
735
+ 690
736
+ 691
737
+ 692
738
+ 693
739
+ 694
740
+ 695
741
+ 696
742
+ 697
743
+ 698
744
+ 699
745
+ 700
746
+ 701
747
+ 702
748
+ 703
749
+ 704
750
+ 705
751
+ 706
752
+ 707
753
+ 708
754
+ 709
755
+ 710
756
+ 711
757
+ 712
758
+ 713
759
+ 714
760
+ 715
761
+ 716
762
+ 717
763
+ 718
764
+ 719
765
+ 720
766
+ 721
767
+ 722
768
+ 723
769
+ 724
770
+ 725
771
+ 726
772
+ 727
773
+ 728
774
+ 729
775
+ 730
776
+ 731
777
+ 732
778
+ 733
779
+ 734
780
+ 735
781
+ 736
782
+ 737
783
+ 738
784
+ 739
785
+ 740
786
+ 741
787
+ 742
788
+ 743
789
+ 744
790
+ 745
791
+ 746
792
+ 747
793
+ 748
794
+ 749
795
+ 750
796
+ 751
797
+ 752
798
+ 753
799
+ 754
800
+ 755
801
+ 756
802
+ 757
803
+ 758
804
+ 759
805
+ 760
806
+ 761
807
+ 762
808
+ 763
809
+ 764
810
+ 765
811
+ 766
812
+ 767
813
+ 768
814
+ 769
815
+ 770
816
+ 771
817
+ 772
818
+ 773
819
+ 774
820
+ 775
821
+ 776
822
+ 777
823
+ 778
824
+ 779
825
+ 780
826
+ 781
827
+ 782
828
+ 783
829
+ 784
830
+ 785
831
+ 786
832
+ 787
833
+ 788
834
+ 789
835
+ 790
836
+ 791
837
+ 792
838
+ 793
839
+ 794
840
+ 795
841
+ 796
842
+ 797
843
+ 798
844
+ 799
845
+ 800
846
+ 801
847
+ 802
848
+ 803
849
+ 804
850
+ 805
851
+ 806
852
+ 807
853
+ 808
854
+ 809
855
+ 810
856
+ 811
857
+ 812
858
+ 813
859
+ 814
860
+ 815
861
+ 816
862
+ 817
863
+ 818
864
+ 819
865
+ 820
866
+ 821
867
+ 822
868
+ 823
869
+ 824
870
+ 825
871
+ 826
872
+ 827
873
+ 828
874
+ 829
875
+ 830
876
+ 831
877
+ 832
878
+ 833
879
+ 834
880
+ 835
881
+ 836
882
+ 837
883
+ 838
884
+ 839
885
+ 840
886
+ 841
887
+ 842
888
+ 843
889
+ 844
890
+ 845
891
+ 846
892
+ 847
893
+ 848
894
+ 849
895
+ 850
896
+ 851
897
+ 852
898
+ 853
899
+ 854
900
+ 855
901
+ 856
902
+ 857
903
+ 858
904
+ 859
905
+ 860
906
+ 861
907
+ 862</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
908
+ <span class="cline-any cline-yes">1×</span>
909
+ <span class="cline-any cline-yes">1×</span>
910
+ <span class="cline-any cline-yes">1×</span>
911
+ <span class="cline-any cline-yes">1×</span>
912
+ <span class="cline-any cline-yes">1×</span>
913
+ <span class="cline-any cline-yes">1×</span>
914
+ <span class="cline-any cline-yes">1×</span>
915
+ <span class="cline-any cline-yes">1×</span>
916
+ <span class="cline-any cline-yes">1×</span>
917
+ <span class="cline-any cline-yes">1×</span>
918
+ <span class="cline-any cline-yes">1×</span>
919
+ <span class="cline-any cline-yes">1×</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-yes">1×</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-yes">1×</span>
927
+ <span class="cline-any cline-yes">78×</span>
928
+ <span class="cline-any cline-yes">77×</span>
929
+ <span class="cline-any cline-neutral">&nbsp;</span>
930
+ <span class="cline-any cline-yes">77×</span>
931
+ <span class="cline-any cline-yes">77×</span>
932
+ <span class="cline-any cline-yes">77×</span>
933
+ <span class="cline-any cline-yes">77×</span>
934
+ <span class="cline-any cline-yes">77×</span>
935
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <span class="cline-any cline-yes">77×</span>
937
+ <span class="cline-any cline-yes">77×</span>
938
+ <span class="cline-any cline-neutral">&nbsp;</span>
939
+ <span class="cline-any cline-yes">77×</span>
940
+ <span class="cline-any cline-yes">77×</span>
941
+ <span class="cline-any cline-yes">77×</span>
942
+ <span class="cline-any cline-yes">77×</span>
943
+ <span class="cline-any cline-yes">77×</span>
944
+ <span class="cline-any cline-neutral">&nbsp;</span>
945
+ <span class="cline-any cline-yes">77×</span>
946
+ <span class="cline-any cline-yes">77×</span>
947
+ <span class="cline-any cline-yes">77×</span>
948
+ <span class="cline-any cline-yes">77×</span>
949
+ <span class="cline-any cline-yes">77×</span>
950
+ <span class="cline-any cline-yes">77×</span>
951
+ <span class="cline-any cline-yes">77×</span>
952
+ <span class="cline-any cline-yes">77×</span>
953
+ <span class="cline-any cline-yes">77×</span>
954
+ <span class="cline-any cline-yes">77×</span>
955
+ <span class="cline-any cline-yes">77×</span>
956
+ <span class="cline-any cline-yes">77×</span>
957
+ <span class="cline-any cline-neutral">&nbsp;</span>
958
+ <span class="cline-any cline-neutral">&nbsp;</span>
959
+ <span class="cline-any cline-yes">77×</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-yes">77×</span>
966
+ <span class="cline-any cline-yes">1001×</span>
967
+ <span class="cline-any cline-yes">1001×</span>
968
+ <span class="cline-any cline-yes">14×</span>
969
+ <span class="cline-any cline-yes">14×</span>
970
+ <span class="cline-any cline-yes">14×</span>
971
+ <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-neutral">&nbsp;</span>
973
+ <span class="cline-any cline-yes">1001×</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-yes">77×</span>
977
+ <span class="cline-any cline-no">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-yes">77×</span>
981
+ <span class="cline-any cline-yes">1×</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-yes">77×</span>
985
+ <span class="cline-any cline-yes">462×</span>
986
+ <span class="cline-any cline-yes">462×</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-yes">462×</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-yes">77×</span>
994
+ <span class="cline-any cline-yes">2×</span>
995
+ <span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-yes">77×</span>
998
+ <span class="cline-any cline-yes">2×</span>
999
+ <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-neutral">&nbsp;</span>
1001
+ <span class="cline-any cline-yes">77×</span>
1002
+ <span class="cline-any cline-yes">2×</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-neutral">&nbsp;</span>
1005
+ <span class="cline-any cline-yes">77×</span>
1006
+ <span class="cline-any cline-yes">2×</span>
1007
+ <span class="cline-any cline-neutral">&nbsp;</span>
1008
+ <span class="cline-any cline-neutral">&nbsp;</span>
1009
+ <span class="cline-any cline-yes">77×</span>
1010
+ <span class="cline-any cline-yes">2×</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</span>
1012
+ <span class="cline-any cline-neutral">&nbsp;</span>
1013
+ <span class="cline-any cline-neutral">&nbsp;</span>
1014
+ <span class="cline-any cline-neutral">&nbsp;</span>
1015
+ <span class="cline-any cline-neutral">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-yes">77×</span>
1019
+ <span class="cline-any cline-yes">2×</span>
1020
+ <span class="cline-any cline-yes">1×</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-yes">1×</span>
1023
+ <span class="cline-any cline-yes">1×</span>
1024
+ <span class="cline-any cline-yes">1×</span>
1025
+ <span class="cline-any cline-neutral">&nbsp;</span>
1026
+ <span class="cline-any cline-neutral">&nbsp;</span>
1027
+ <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-neutral">&nbsp;</span>
1029
+ <span class="cline-any cline-neutral">&nbsp;</span>
1030
+ <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-yes">77×</span>
1032
+ <span class="cline-any cline-yes">5×</span>
1033
+ <span class="cline-any cline-yes">1×</span>
1034
+ <span class="cline-any cline-neutral">&nbsp;</span>
1035
+ <span class="cline-any cline-yes">4×</span>
1036
+ <span class="cline-any cline-yes">4×</span>
1037
+ <span class="cline-any cline-yes">4×</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-yes">77×</span>
1044
+ <span class="cline-any cline-yes">3×</span>
1045
+ <span class="cline-any cline-yes">1×</span>
1046
+ <span class="cline-any cline-neutral">&nbsp;</span>
1047
+ <span class="cline-any cline-yes">2×</span>
1048
+ <span class="cline-any cline-yes">2×</span>
1049
+ <span class="cline-any cline-neutral">&nbsp;</span>
1050
+ <span class="cline-any cline-neutral">&nbsp;</span>
1051
+ <span class="cline-any cline-neutral">&nbsp;</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1054
+ <span class="cline-any cline-neutral">&nbsp;</span>
1055
+ <span class="cline-any cline-neutral">&nbsp;</span>
1056
+ <span class="cline-any cline-yes">77×</span>
1057
+ <span class="cline-any cline-yes">4×</span>
1058
+ <span class="cline-any cline-yes">4×</span>
1059
+ <span class="cline-any cline-no">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-yes">4×</span>
1062
+ <span class="cline-any cline-neutral">&nbsp;</span>
1063
+ <span class="cline-any cline-neutral">&nbsp;</span>
1064
+ <span class="cline-any cline-neutral">&nbsp;</span>
1065
+ <span class="cline-any cline-neutral">&nbsp;</span>
1066
+ <span class="cline-any cline-neutral">&nbsp;</span>
1067
+ <span class="cline-any cline-neutral">&nbsp;</span>
1068
+ <span class="cline-any cline-yes">77×</span>
1069
+ <span class="cline-any cline-yes">1×</span>
1070
+ <span class="cline-any cline-yes">1×</span>
1071
+ <span class="cline-any cline-yes">1×</span>
1072
+ <span class="cline-any cline-neutral">&nbsp;</span>
1073
+ <span class="cline-any cline-neutral">&nbsp;</span>
1074
+ <span class="cline-any cline-neutral">&nbsp;</span>
1075
+ <span class="cline-any cline-neutral">&nbsp;</span>
1076
+ <span class="cline-any cline-neutral">&nbsp;</span>
1077
+ <span class="cline-any cline-neutral">&nbsp;</span>
1078
+ <span class="cline-any cline-neutral">&nbsp;</span>
1079
+ <span class="cline-any cline-yes">77×</span>
1080
+ <span class="cline-any cline-no">&nbsp;</span>
1081
+ <span class="cline-any cline-neutral">&nbsp;</span>
1082
+ <span class="cline-any cline-neutral">&nbsp;</span>
1083
+ <span class="cline-any cline-neutral">&nbsp;</span>
1084
+ <span class="cline-any cline-neutral">&nbsp;</span>
1085
+ <span class="cline-any cline-neutral">&nbsp;</span>
1086
+ <span class="cline-any cline-neutral">&nbsp;</span>
1087
+ <span class="cline-any cline-neutral">&nbsp;</span>
1088
+ <span class="cline-any cline-neutral">&nbsp;</span>
1089
+ <span class="cline-any cline-neutral">&nbsp;</span>
1090
+ <span class="cline-any cline-yes">77×</span>
1091
+ <span class="cline-any cline-yes">4×</span>
1092
+ <span class="cline-any cline-yes">4×</span>
1093
+ <span class="cline-any cline-yes">4×</span>
1094
+ <span class="cline-any cline-yes">4×</span>
1095
+ <span class="cline-any cline-yes">4×</span>
1096
+ <span class="cline-any cline-neutral">&nbsp;</span>
1097
+ <span class="cline-any cline-neutral">&nbsp;</span>
1098
+ <span class="cline-any cline-yes">4×</span>
1099
+ <span class="cline-any cline-yes">4×</span>
1100
+ <span class="cline-any cline-neutral">&nbsp;</span>
1101
+ <span class="cline-any cline-neutral">&nbsp;</span>
1102
+ <span class="cline-any cline-yes">4×</span>
1103
+ <span class="cline-any cline-no">&nbsp;</span>
1104
+ <span class="cline-any cline-neutral">&nbsp;</span>
1105
+ <span class="cline-any cline-neutral">&nbsp;</span>
1106
+ <span class="cline-any cline-yes">4×</span>
1107
+ <span class="cline-any cline-neutral">&nbsp;</span>
1108
+ <span class="cline-any cline-neutral">&nbsp;</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-yes">4×</span>
1111
+ <span class="cline-any cline-yes">4×</span>
1112
+ <span class="cline-any cline-yes">4×</span>
1113
+ <span class="cline-any cline-yes">4×</span>
1114
+ <span class="cline-any cline-yes">4×</span>
1115
+ <span class="cline-any cline-neutral">&nbsp;</span>
1116
+ <span class="cline-any cline-no">&nbsp;</span>
1117
+ <span class="cline-any cline-neutral">&nbsp;</span>
1118
+ <span class="cline-any cline-neutral">&nbsp;</span>
1119
+ <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-neutral">&nbsp;</span>
1121
+ <span class="cline-any cline-neutral">&nbsp;</span>
1122
+ <span class="cline-any cline-neutral">&nbsp;</span>
1123
+ <span class="cline-any cline-yes">4×</span>
1124
+ <span class="cline-any cline-yes">4×</span>
1125
+ <span class="cline-any cline-yes">4×</span>
1126
+ <span class="cline-any cline-yes">1×</span>
1127
+ <span class="cline-any cline-neutral">&nbsp;</span>
1128
+ <span class="cline-any cline-yes">3×</span>
1129
+ <span class="cline-any cline-neutral">&nbsp;</span>
1130
+ <span class="cline-any cline-neutral">&nbsp;</span>
1131
+ <span class="cline-any cline-neutral">&nbsp;</span>
1132
+ <span class="cline-any cline-yes">4×</span>
1133
+ <span class="cline-any cline-yes">4×</span>
1134
+ <span class="cline-any cline-yes">4×</span>
1135
+ <span class="cline-any cline-yes">4×</span>
1136
+ <span class="cline-any cline-neutral">&nbsp;</span>
1137
+ <span class="cline-any cline-yes">4×</span>
1138
+ <span class="cline-any cline-neutral">&nbsp;</span>
1139
+ <span class="cline-any cline-neutral">&nbsp;</span>
1140
+ <span class="cline-any cline-neutral">&nbsp;</span>
1141
+ <span class="cline-any cline-neutral">&nbsp;</span>
1142
+ <span class="cline-any cline-neutral">&nbsp;</span>
1143
+ <span class="cline-any cline-neutral">&nbsp;</span>
1144
+ <span class="cline-any cline-neutral">&nbsp;</span>
1145
+ <span class="cline-any cline-neutral">&nbsp;</span>
1146
+ <span class="cline-any cline-neutral">&nbsp;</span>
1147
+ <span class="cline-any cline-neutral">&nbsp;</span>
1148
+ <span class="cline-any cline-neutral">&nbsp;</span>
1149
+ <span class="cline-any cline-neutral">&nbsp;</span>
1150
+ <span class="cline-any cline-neutral">&nbsp;</span>
1151
+ <span class="cline-any cline-neutral">&nbsp;</span>
1152
+ <span class="cline-any cline-yes">77×</span>
1153
+ <span class="cline-any cline-yes">1×</span>
1154
+ <span class="cline-any cline-yes">1×</span>
1155
+ <span class="cline-any cline-neutral">&nbsp;</span>
1156
+ <span class="cline-any cline-yes">1×</span>
1157
+ <span class="cline-any cline-yes">1×</span>
1158
+ <span class="cline-any cline-neutral">&nbsp;</span>
1159
+ <span class="cline-any cline-neutral">&nbsp;</span>
1160
+ <span class="cline-any cline-neutral">&nbsp;</span>
1161
+ <span class="cline-any cline-neutral">&nbsp;</span>
1162
+ <span class="cline-any cline-neutral">&nbsp;</span>
1163
+ <span class="cline-any cline-neutral">&nbsp;</span>
1164
+ <span class="cline-any cline-neutral">&nbsp;</span>
1165
+ <span class="cline-any cline-yes">77×</span>
1166
+ <span class="cline-any cline-yes">1×</span>
1167
+ <span class="cline-any cline-yes">1×</span>
1168
+ <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-neutral">&nbsp;</span>
1170
+ <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-neutral">&nbsp;</span>
1172
+ <span class="cline-any cline-neutral">&nbsp;</span>
1173
+ <span class="cline-any cline-neutral">&nbsp;</span>
1174
+ <span class="cline-any cline-neutral">&nbsp;</span>
1175
+ <span class="cline-any cline-yes">77×</span>
1176
+ <span class="cline-any cline-yes">1×</span>
1177
+ <span class="cline-any cline-neutral">&nbsp;</span>
1178
+ <span class="cline-any cline-yes">1×</span>
1179
+ <span class="cline-any cline-yes">1×</span>
1180
+ <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-neutral">&nbsp;</span>
1182
+ <span class="cline-any cline-neutral">&nbsp;</span>
1183
+ <span class="cline-any cline-neutral">&nbsp;</span>
1184
+ <span class="cline-any cline-neutral">&nbsp;</span>
1185
+ <span class="cline-any cline-yes">77×</span>
1186
+ <span class="cline-any cline-no">&nbsp;</span>
1187
+ <span class="cline-any cline-no">&nbsp;</span>
1188
+ <span class="cline-any cline-no">&nbsp;</span>
1189
+ <span class="cline-any cline-neutral">&nbsp;</span>
1190
+ <span class="cline-any cline-no">&nbsp;</span>
1191
+ <span class="cline-any cline-neutral">&nbsp;</span>
1192
+ <span class="cline-any cline-no">&nbsp;</span>
1193
+ <span class="cline-any cline-neutral">&nbsp;</span>
1194
+ <span class="cline-any cline-neutral">&nbsp;</span>
1195
+ <span class="cline-any cline-neutral">&nbsp;</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-neutral">&nbsp;</span>
1198
+ <span class="cline-any cline-neutral">&nbsp;</span>
1199
+ <span class="cline-any cline-neutral">&nbsp;</span>
1200
+ <span class="cline-any cline-yes">77×</span>
1201
+ <span class="cline-any cline-no">&nbsp;</span>
1202
+ <span class="cline-any cline-no">&nbsp;</span>
1203
+ <span class="cline-any cline-no">&nbsp;</span>
1204
+ <span class="cline-any cline-no">&nbsp;</span>
1205
+ <span class="cline-any cline-neutral">&nbsp;</span>
1206
+ <span class="cline-any cline-neutral">&nbsp;</span>
1207
+ <span class="cline-any cline-neutral">&nbsp;</span>
1208
+ <span class="cline-any cline-neutral">&nbsp;</span>
1209
+ <span class="cline-any cline-neutral">&nbsp;</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-yes">77×</span>
1212
+ <span class="cline-any cline-no">&nbsp;</span>
1213
+ <span class="cline-any cline-no">&nbsp;</span>
1214
+ <span class="cline-any cline-neutral">&nbsp;</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-neutral">&nbsp;</span>
1217
+ <span class="cline-any cline-neutral">&nbsp;</span>
1218
+ <span class="cline-any cline-neutral">&nbsp;</span>
1219
+ <span class="cline-any cline-neutral">&nbsp;</span>
1220
+ <span class="cline-any cline-yes">78×</span>
1221
+ <span class="cline-any cline-neutral">&nbsp;</span>
1222
+ <span class="cline-any cline-yes">77×</span>
1223
+ <span class="cline-any cline-yes">1×</span>
1224
+ <span class="cline-any cline-no">&nbsp;</span>
1225
+ <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-yes">1×</span>
1227
+ <span class="cline-any cline-neutral">&nbsp;</span>
1228
+ <span class="cline-any cline-yes">1×</span>
1229
+ <span class="cline-any cline-yes">1×</span>
1230
+ <span class="cline-any cline-yes">1×</span>
1231
+ <span class="cline-any cline-neutral">&nbsp;</span>
1232
+ <span class="cline-any cline-no">&nbsp;</span>
1233
+ <span class="cline-any cline-neutral">&nbsp;</span>
1234
+ <span class="cline-any cline-neutral">&nbsp;</span>
1235
+ <span class="cline-any cline-yes">1×</span>
1236
+ <span class="cline-any cline-no">&nbsp;</span>
1237
+ <span class="cline-any cline-neutral">&nbsp;</span>
1238
+ <span class="cline-any cline-neutral">&nbsp;</span>
1239
+ <span class="cline-any cline-yes">1×</span>
1240
+ <span class="cline-any cline-neutral">&nbsp;</span>
1241
+ <span class="cline-any cline-yes">23×</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-yes">4×</span>
1244
+ <span class="cline-any cline-neutral">&nbsp;</span>
1245
+ <span class="cline-any cline-yes">1×</span>
1246
+ <span class="cline-any cline-neutral">&nbsp;</span>
1247
+ <span class="cline-any cline-yes">1×</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-yes">1×</span>
1250
+ <span class="cline-any cline-neutral">&nbsp;</span>
1251
+ <span class="cline-any cline-no">&nbsp;</span>
1252
+ <span class="cline-any cline-neutral">&nbsp;</span>
1253
+ <span class="cline-any cline-neutral">&nbsp;</span>
1254
+ <span class="cline-any cline-neutral">&nbsp;</span>
1255
+ <span class="cline-any cline-yes">77×</span>
1256
+ <span class="cline-any cline-neutral">&nbsp;</span>
1257
+ <span class="cline-any cline-yes">77×</span>
1258
+ <span class="cline-any cline-yes">13×</span>
1259
+ <span class="cline-any cline-neutral">&nbsp;</span>
1260
+ <span class="cline-any cline-neutral">&nbsp;</span>
1261
+ <span class="cline-any cline-yes">77×</span>
1262
+ <span class="cline-any cline-yes">20×</span>
1263
+ <span class="cline-any cline-neutral">&nbsp;</span>
1264
+ <span class="cline-any cline-yes">3×</span>
1265
+ <span class="cline-any cline-neutral">&nbsp;</span>
1266
+ <span class="cline-any cline-neutral">&nbsp;</span>
1267
+ <span class="cline-any cline-yes">77×</span>
1268
+ <span class="cline-any cline-yes">77×</span>
1269
+ <span class="cline-any cline-no">&nbsp;</span>
1270
+ <span class="cline-any cline-neutral">&nbsp;</span>
1271
+ <span class="cline-any cline-yes">77×</span>
1272
+ <span class="cline-any cline-no">&nbsp;</span>
1273
+ <span class="cline-any cline-neutral">&nbsp;</span>
1274
+ <span class="cline-any cline-yes">77×</span>
1275
+ <span class="cline-any cline-no">&nbsp;</span>
1276
+ <span class="cline-any cline-neutral">&nbsp;</span>
1277
+ <span class="cline-any cline-yes">77×</span>
1278
+ <span class="cline-any cline-no">&nbsp;</span>
1279
+ <span class="cline-any cline-neutral">&nbsp;</span>
1280
+ <span class="cline-any cline-neutral">&nbsp;</span>
1281
+ <span class="cline-any cline-neutral">&nbsp;</span>
1282
+ <span class="cline-any cline-yes">77×</span>
1283
+ <span class="cline-any cline-neutral">&nbsp;</span>
1284
+ <span class="cline-any cline-neutral">&nbsp;</span>
1285
+ <span class="cline-any cline-yes">1×</span>
1286
+ <span class="cline-any cline-yes">2×</span>
1287
+ <span class="cline-any cline-neutral">&nbsp;</span>
1288
+ <span class="cline-any cline-neutral">&nbsp;</span>
1289
+ <span class="cline-any cline-yes">1×</span>
1290
+ <span class="cline-any cline-yes">1×</span>
1291
+ <span class="cline-any cline-yes">1×</span>
1292
+ <span class="cline-any cline-neutral">&nbsp;</span>
1293
+ <span class="cline-any cline-yes">1×</span>
1294
+ <span class="cline-any cline-yes">1×</span>
1295
+ <span class="cline-any cline-yes">1×</span>
1296
+ <span class="cline-any cline-neutral">&nbsp;</span>
1297
+ <span class="cline-any cline-yes">1×</span>
1298
+ <span class="cline-any cline-yes">1×</span>
1299
+ <span class="cline-any cline-no">&nbsp;</span>
1300
+ <span class="cline-any cline-neutral">&nbsp;</span>
1301
+ <span class="cline-any cline-neutral">&nbsp;</span>
1302
+ <span class="cline-any cline-yes">1×</span>
1303
+ <span class="cline-any cline-yes">1×</span>
1304
+ <span class="cline-any cline-no">&nbsp;</span>
1305
+ <span class="cline-any cline-no">&nbsp;</span>
1306
+ <span class="cline-any cline-neutral">&nbsp;</span>
1307
+ <span class="cline-any cline-yes">1×</span>
1308
+ <span class="cline-any cline-no">&nbsp;</span>
1309
+ <span class="cline-any cline-neutral">&nbsp;</span>
1310
+ <span class="cline-any cline-neutral">&nbsp;</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-yes">1×</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-no">&nbsp;</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-no">&nbsp;</span>
1317
+ <span class="cline-any cline-neutral">&nbsp;</span>
1318
+ <span class="cline-any cline-neutral">&nbsp;</span>
1319
+ <span class="cline-any cline-neutral">&nbsp;</span>
1320
+ <span class="cline-any cline-yes">1×</span>
1321
+ <span class="cline-any cline-yes">12×</span>
1322
+ <span class="cline-any cline-neutral">&nbsp;</span>
1323
+ <span class="cline-any cline-yes">12×</span>
1324
+ <span class="cline-any cline-yes">1×</span>
1325
+ <span class="cline-any cline-neutral">&nbsp;</span>
1326
+ <span class="cline-any cline-neutral">&nbsp;</span>
1327
+ <span class="cline-any cline-no">&nbsp;</span>
1328
+ <span class="cline-any cline-neutral">&nbsp;</span>
1329
+ <span class="cline-any cline-neutral">&nbsp;</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-yes">12×</span>
1332
+ <span class="cline-any cline-yes">3×</span>
1333
+ <span class="cline-any cline-yes">3×</span>
1334
+ <span class="cline-any cline-neutral">&nbsp;</span>
1335
+ <span class="cline-any cline-neutral">&nbsp;</span>
1336
+ <span class="cline-any cline-yes">9×</span>
1337
+ <span class="cline-any cline-neutral">&nbsp;</span>
1338
+ <span class="cline-any cline-neutral">&nbsp;</span>
1339
+ <span class="cline-any cline-neutral">&nbsp;</span>
1340
+ <span class="cline-any cline-neutral">&nbsp;</span>
1341
+ <span class="cline-any cline-neutral">&nbsp;</span>
1342
+ <span class="cline-any cline-yes">1×</span>
1343
+ <span class="cline-any cline-yes">13×</span>
1344
+ <span class="cline-any cline-yes">13×</span>
1345
+ <span class="cline-any cline-neutral">&nbsp;</span>
1346
+ <span class="cline-any cline-neutral">&nbsp;</span>
1347
+ <span class="cline-any cline-neutral">&nbsp;</span>
1348
+ <span class="cline-any cline-neutral">&nbsp;</span>
1349
+ <span class="cline-any cline-neutral">&nbsp;</span>
1350
+ <span class="cline-any cline-neutral">&nbsp;</span>
1351
+ <span class="cline-any cline-neutral">&nbsp;</span>
1352
+ <span class="cline-any cline-neutral">&nbsp;</span>
1353
+ <span class="cline-any cline-neutral">&nbsp;</span>
1354
+ <span class="cline-any cline-yes">1×</span>
1355
+ <span class="cline-any cline-no">&nbsp;</span>
1356
+ <span class="cline-any cline-no">&nbsp;</span>
1357
+ <span class="cline-any cline-no">&nbsp;</span>
1358
+ <span class="cline-any cline-neutral">&nbsp;</span>
1359
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
+ <span class="cline-any cline-neutral">&nbsp;</span>
1361
+ <span class="cline-any cline-neutral">&nbsp;</span>
1362
+ <span class="cline-any cline-neutral">&nbsp;</span>
1363
+ <span class="cline-any cline-neutral">&nbsp;</span>
1364
+ <span class="cline-any cline-neutral">&nbsp;</span>
1365
+ <span class="cline-any cline-neutral">&nbsp;</span>
1366
+ <span class="cline-any cline-yes">1×</span>
1367
+ <span class="cline-any cline-no">&nbsp;</span>
1368
+ <span class="cline-any cline-no">&nbsp;</span>
1369
+ <span class="cline-any cline-no">&nbsp;</span>
1370
+ <span class="cline-any cline-neutral">&nbsp;</span>
1371
+ <span class="cline-any cline-neutral">&nbsp;</span>
1372
+ <span class="cline-any cline-neutral">&nbsp;</span>
1373
+ <span class="cline-any cline-yes">1×</span>
1374
+ <span class="cline-any cline-no">&nbsp;</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-yes">1×</span>
1378
+ <span class="cline-any cline-yes">58×</span>
1379
+ <span class="cline-any cline-neutral">&nbsp;</span>
1380
+ <span class="cline-any cline-neutral">&nbsp;</span>
1381
+ <span class="cline-any cline-yes">1×</span>
1382
+ <span class="cline-any cline-no">&nbsp;</span>
1383
+ <span class="cline-any cline-neutral">&nbsp;</span>
1384
+ <span class="cline-any cline-neutral">&nbsp;</span>
1385
+ <span class="cline-any cline-neutral">&nbsp;</span>
1386
+ <span class="cline-any cline-neutral">&nbsp;</span>
1387
+ <span class="cline-any cline-neutral">&nbsp;</span>
1388
+ <span class="cline-any cline-neutral">&nbsp;</span>
1389
+ <span class="cline-any cline-neutral">&nbsp;</span>
1390
+ <span class="cline-any cline-neutral">&nbsp;</span>
1391
+ <span class="cline-any cline-yes">1×</span>
1392
+ <span class="cline-any cline-yes">215×</span>
1393
+ <span class="cline-any cline-yes">215×</span>
1394
+ <span class="cline-any cline-yes">38×</span>
1395
+ <span class="cline-any cline-neutral">&nbsp;</span>
1396
+ <span class="cline-any cline-yes">215×</span>
1397
+ <span class="cline-any cline-neutral">&nbsp;</span>
1398
+ <span class="cline-any cline-neutral">&nbsp;</span>
1399
+ <span class="cline-any cline-neutral">&nbsp;</span>
1400
+ <span class="cline-any cline-neutral">&nbsp;</span>
1401
+ <span class="cline-any cline-neutral">&nbsp;</span>
1402
+ <span class="cline-any cline-neutral">&nbsp;</span>
1403
+ <span class="cline-any cline-neutral">&nbsp;</span>
1404
+ <span class="cline-any cline-neutral">&nbsp;</span>
1405
+ <span class="cline-any cline-yes">1×</span>
1406
+ <span class="cline-any cline-no">&nbsp;</span>
1407
+ <span class="cline-any cline-neutral">&nbsp;</span>
1408
+ <span class="cline-any cline-neutral">&nbsp;</span>
1409
+ <span class="cline-any cline-neutral">&nbsp;</span>
1410
+ <span class="cline-any cline-neutral">&nbsp;</span>
1411
+ <span class="cline-any cline-neutral">&nbsp;</span>
1412
+ <span class="cline-any cline-yes">1×</span>
1413
+ <span class="cline-any cline-yes">1×</span>
1414
+ <span class="cline-any cline-yes">1×</span>
1415
+ <span class="cline-any cline-yes">1×</span>
1416
+ <span class="cline-any cline-neutral">&nbsp;</span>
1417
+ <span class="cline-any cline-neutral">&nbsp;</span>
1418
+ <span class="cline-any cline-neutral">&nbsp;</span>
1419
+ <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-neutral">&nbsp;</span>
1421
+ <span class="cline-any cline-yes">1×</span>
1422
+ <span class="cline-any cline-yes">1×</span>
1423
+ <span class="cline-any cline-yes">1×</span>
1424
+ <span class="cline-any cline-yes">1×</span>
1425
+ <span class="cline-any cline-neutral">&nbsp;</span>
1426
+ <span class="cline-any cline-neutral">&nbsp;</span>
1427
+ <span class="cline-any cline-neutral">&nbsp;</span>
1428
+ <span class="cline-any cline-neutral">&nbsp;</span>
1429
+ <span class="cline-any cline-neutral">&nbsp;</span>
1430
+ <span class="cline-any cline-yes">1×</span>
1431
+ <span class="cline-any cline-yes">49×</span>
1432
+ <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-yes">49×</span>
1434
+ <span class="cline-any cline-neutral">&nbsp;</span>
1435
+ <span class="cline-any cline-neutral">&nbsp;</span>
1436
+ <span class="cline-any cline-neutral">&nbsp;</span>
1437
+ <span class="cline-any cline-neutral">&nbsp;</span>
1438
+ <span class="cline-any cline-neutral">&nbsp;</span>
1439
+ <span class="cline-any cline-neutral">&nbsp;</span>
1440
+ <span class="cline-any cline-yes">1×</span>
1441
+ <span class="cline-any cline-yes">49×</span>
1442
+ <span class="cline-any cline-yes">49×</span>
1443
+ <span class="cline-any cline-yes">49×</span>
1444
+ <span class="cline-any cline-yes">35×</span>
1445
+ <span class="cline-any cline-neutral">&nbsp;</span>
1446
+ <span class="cline-any cline-neutral">&nbsp;</span>
1447
+ <span class="cline-any cline-neutral">&nbsp;</span>
1448
+ <span class="cline-any cline-neutral">&nbsp;</span>
1449
+ <span class="cline-any cline-neutral">&nbsp;</span>
1450
+ <span class="cline-any cline-neutral">&nbsp;</span>
1451
+ <span class="cline-any cline-yes">1×</span>
1452
+ <span class="cline-any cline-yes">1×</span>
1453
+ <span class="cline-any cline-yes">1×</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-neutral">&nbsp;</span>
1456
+ <span class="cline-any cline-yes">1×</span>
1457
+ <span class="cline-any cline-no">&nbsp;</span>
1458
+ <span class="cline-any cline-neutral">&nbsp;</span>
1459
+ <span class="cline-any cline-neutral">&nbsp;</span>
1460
+ <span class="cline-any cline-yes">1×</span>
1461
+ <span class="cline-any cline-yes">1×</span>
1462
+ <span class="cline-any cline-yes">1×</span>
1463
+ <span class="cline-any cline-yes">1×</span>
1464
+ <span class="cline-any cline-neutral">&nbsp;</span>
1465
+ <span class="cline-any cline-neutral">&nbsp;</span>
1466
+ <span class="cline-any cline-neutral">&nbsp;</span>
1467
+ <span class="cline-any cline-neutral">&nbsp;</span>
1468
+ <span class="cline-any cline-neutral">&nbsp;</span>
1469
+ <span class="cline-any cline-neutral">&nbsp;</span>
1470
+ <span class="cline-any cline-neutral">&nbsp;</span>
1471
+ <span class="cline-any cline-yes">1×</span>
1472
+ <span class="cline-any cline-no">&nbsp;</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-neutral">&nbsp;</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-neutral">&nbsp;</span>
1479
+ <span class="cline-any cline-neutral">&nbsp;</span>
1480
+ <span class="cline-any cline-neutral">&nbsp;</span>
1481
+ <span class="cline-any cline-neutral">&nbsp;</span>
1482
+ <span class="cline-any cline-neutral">&nbsp;</span>
1483
+ <span class="cline-any cline-neutral">&nbsp;</span>
1484
+ <span class="cline-any cline-neutral">&nbsp;</span>
1485
+ <span class="cline-any cline-yes">1541×</span>
1486
+ <span class="cline-any cline-yes">1540×</span>
1487
+ <span class="cline-any cline-yes">33×</span>
1488
+ <span class="cline-any cline-yes">33×</span>
1489
+ <span class="cline-any cline-yes">33×</span>
1490
+ <span class="cline-any cline-neutral">&nbsp;</span>
1491
+ <span class="cline-any cline-neutral">&nbsp;</span>
1492
+ <span class="cline-any cline-neutral">&nbsp;</span>
1493
+ <span class="cline-any cline-neutral">&nbsp;</span>
1494
+ <span class="cline-any cline-neutral">&nbsp;</span>
1495
+ <span class="cline-any cline-neutral">&nbsp;</span>
1496
+ <span class="cline-any cline-neutral">&nbsp;</span>
1497
+ <span class="cline-any cline-neutral">&nbsp;</span>
1498
+ <span class="cline-any cline-neutral">&nbsp;</span>
1499
+ <span class="cline-any cline-neutral">&nbsp;</span>
1500
+ <span class="cline-any cline-yes">2×</span>
1501
+ <span class="cline-any cline-yes">1×</span>
1502
+ <span class="cline-any cline-yes">1×</span>
1503
+ <span class="cline-any cline-neutral">&nbsp;</span>
1504
+ <span class="cline-any cline-yes">1×</span>
1505
+ <span class="cline-any cline-no">&nbsp;</span>
1506
+ <span class="cline-any cline-neutral">&nbsp;</span>
1507
+ <span class="cline-any cline-yes">1×</span>
1508
+ <span class="cline-any cline-yes">1×</span>
1509
+ <span class="cline-any cline-neutral">&nbsp;</span>
1510
+ <span class="cline-any cline-yes">1×</span>
1511
+ <span class="cline-any cline-neutral">&nbsp;</span>
1512
+ <span class="cline-any cline-neutral">&nbsp;</span>
1513
+ <span class="cline-any cline-yes">1×</span>
1514
+ <span class="cline-any cline-yes">1×</span>
1515
+ <span class="cline-any cline-yes">1×</span>
1516
+ <span class="cline-any cline-yes">1×</span>
1517
+ <span class="cline-any cline-neutral">&nbsp;</span>
1518
+ <span class="cline-any cline-no">&nbsp;</span>
1519
+ <span class="cline-any cline-neutral">&nbsp;</span>
1520
+ <span class="cline-any cline-neutral">&nbsp;</span>
1521
+ <span class="cline-any cline-neutral">&nbsp;</span>
1522
+ <span class="cline-any cline-neutral">&nbsp;</span>
1523
+ <span class="cline-any cline-neutral">&nbsp;</span>
1524
+ <span class="cline-any cline-neutral">&nbsp;</span>
1525
+ <span class="cline-any cline-neutral">&nbsp;</span>
1526
+ <span class="cline-any cline-yes">1×</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-no">&nbsp;</span>
1529
+ <span class="cline-any cline-no">&nbsp;</span>
1530
+ <span class="cline-any cline-no">&nbsp;</span>
1531
+ <span class="cline-any cline-neutral">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1533
+ <span class="cline-any cline-no">&nbsp;</span>
1534
+ <span class="cline-any cline-neutral">&nbsp;</span>
1535
+ <span class="cline-any cline-no">&nbsp;</span>
1536
+ <span class="cline-any cline-neutral">&nbsp;</span>
1537
+ <span class="cline-any cline-neutral">&nbsp;</span>
1538
+ <span class="cline-any cline-neutral">&nbsp;</span>
1539
+ <span class="cline-any cline-neutral">&nbsp;</span>
1540
+ <span class="cline-any cline-neutral">&nbsp;</span>
1541
+ <span class="cline-any cline-neutral">&nbsp;</span>
1542
+ <span class="cline-any cline-neutral">&nbsp;</span>
1543
+ <span class="cline-any cline-neutral">&nbsp;</span>
1544
+ <span class="cline-any cline-neutral">&nbsp;</span>
1545
+ <span class="cline-any cline-yes">1×</span>
1546
+ <span class="cline-any cline-no">&nbsp;</span>
1547
+ <span class="cline-any cline-neutral">&nbsp;</span>
1548
+ <span class="cline-any cline-neutral">&nbsp;</span>
1549
+ <span class="cline-any cline-no">&nbsp;</span>
1550
+ <span class="cline-any cline-no">&nbsp;</span>
1551
+ <span class="cline-any cline-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-neutral">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-neutral">&nbsp;</span>
1555
+ <span class="cline-any cline-neutral">&nbsp;</span>
1556
+ <span class="cline-any cline-neutral">&nbsp;</span>
1557
+ <span class="cline-any cline-neutral">&nbsp;</span>
1558
+ <span class="cline-any cline-neutral">&nbsp;</span>
1559
+ <span class="cline-any cline-neutral">&nbsp;</span>
1560
+ <span class="cline-any cline-neutral">&nbsp;</span>
1561
+ <span class="cline-any cline-yes">1×</span>
1562
+ <span class="cline-any cline-no">&nbsp;</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-neutral">&nbsp;</span>
1565
+ <span class="cline-any cline-no">&nbsp;</span>
1566
+ <span class="cline-any cline-no">&nbsp;</span>
1567
+ <span class="cline-any cline-neutral">&nbsp;</span>
1568
+ <span class="cline-any cline-neutral">&nbsp;</span>
1569
+ <span class="cline-any cline-no">&nbsp;</span>
1570
+ <span class="cline-any cline-neutral">&nbsp;</span>
1571
+ <span class="cline-any cline-neutral">&nbsp;</span>
1572
+ <span class="cline-any cline-yes">1×</span>
1573
+ <span class="cline-any cline-neutral">&nbsp;</span>
1574
+ <span class="cline-any cline-yes">4×</span>
1575
+ <span class="cline-any cline-yes">4×</span>
1576
+ <span class="cline-any cline-neutral">&nbsp;</span>
1577
+ <span class="cline-any cline-neutral">&nbsp;</span>
1578
+ <span class="cline-any cline-yes">4×</span>
1579
+ <span class="cline-any cline-yes">1×</span>
1580
+ <span class="cline-any cline-yes">1×</span>
1581
+ <span class="cline-any cline-yes">1×</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-yes">1×</span>
1584
+ <span class="cline-any cline-yes">1×</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-neutral">&nbsp;</span>
1588
+ <span class="cline-any cline-neutral">&nbsp;</span>
1589
+ <span class="cline-any cline-yes">1×</span>
1590
+ <span class="cline-any cline-no">&nbsp;</span>
1591
+ <span class="cline-any cline-neutral">&nbsp;</span>
1592
+ <span class="cline-any cline-neutral">&nbsp;</span>
1593
+ <span class="cline-any cline-yes">1×</span>
1594
+ <span class="cline-any cline-yes">1×</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-yes">1×</span>
1597
+ <span class="cline-any cline-yes">1×</span>
1598
+ <span class="cline-any cline-yes">1×</span>
1599
+ <span class="cline-any cline-neutral">&nbsp;</span>
1600
+ <span class="cline-any cline-neutral">&nbsp;</span>
1601
+ <span class="cline-any cline-neutral">&nbsp;</span>
1602
+ <span class="cline-any cline-yes">1×</span>
1603
+ <span class="cline-any cline-yes">1×</span>
1604
+ <span class="cline-any cline-yes">1×</span>
1605
+ <span class="cline-any cline-yes">1×</span>
1606
+ <span class="cline-any cline-yes">1×</span>
1607
+ <span class="cline-any cline-yes">1×</span>
1608
+ <span class="cline-any cline-neutral">&nbsp;</span>
1609
+ <span class="cline-any cline-neutral">&nbsp;</span>
1610
+ <span class="cline-any cline-neutral">&nbsp;</span>
1611
+ <span class="cline-any cline-neutral">&nbsp;</span>
1612
+ <span class="cline-any cline-neutral">&nbsp;</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&nbsp;</span>
1616
+ <span class="cline-any cline-neutral">&nbsp;</span>
1617
+ <span class="cline-any cline-neutral">&nbsp;</span>
1618
+ <span class="cline-any cline-yes">1×</span>
1619
+ <span class="cline-any cline-no">&nbsp;</span>
1620
+ <span class="cline-any cline-no">&nbsp;</span>
1621
+ <span class="cline-any cline-no">&nbsp;</span>
1622
+ <span class="cline-any cline-no">&nbsp;</span>
1623
+ <span class="cline-any cline-no">&nbsp;</span>
1624
+ <span class="cline-any cline-neutral">&nbsp;</span>
1625
+ <span class="cline-any cline-no">&nbsp;</span>
1626
+ <span class="cline-any cline-no">&nbsp;</span>
1627
+ <span class="cline-any cline-no">&nbsp;</span>
1628
+ <span class="cline-any cline-neutral">&nbsp;</span>
1629
+ <span class="cline-any cline-neutral">&nbsp;</span>
1630
+ <span class="cline-any cline-neutral">&nbsp;</span>
1631
+ <span class="cline-any cline-neutral">&nbsp;</span>
1632
+ <span class="cline-any cline-neutral">&nbsp;</span>
1633
+ <span class="cline-any cline-neutral">&nbsp;</span>
1634
+ <span class="cline-any cline-neutral">&nbsp;</span>
1635
+ <span class="cline-any cline-neutral">&nbsp;</span>
1636
+ <span class="cline-any cline-neutral">&nbsp;</span>
1637
+ <span class="cline-any cline-neutral">&nbsp;</span>
1638
+ <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-neutral">&nbsp;</span>
1640
+ <span class="cline-any cline-yes">1×</span>
1641
+ <span class="cline-any cline-no">&nbsp;</span>
1642
+ <span class="cline-any cline-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-neutral">&nbsp;</span>
1644
+ <span class="cline-any cline-no">&nbsp;</span>
1645
+ <span class="cline-any cline-no">&nbsp;</span>
1646
+ <span class="cline-any cline-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-neutral">&nbsp;</span>
1648
+ <span class="cline-any cline-neutral">&nbsp;</span>
1649
+ <span class="cline-any cline-neutral">&nbsp;</span>
1650
+ <span class="cline-any cline-neutral">&nbsp;</span>
1651
+ <span class="cline-any cline-neutral">&nbsp;</span>
1652
+ <span class="cline-any cline-no">&nbsp;</span>
1653
+ <span class="cline-any cline-no">&nbsp;</span>
1654
+ <span class="cline-any cline-neutral">&nbsp;</span>
1655
+ <span class="cline-any cline-neutral">&nbsp;</span>
1656
+ <span class="cline-any cline-no">&nbsp;</span>
1657
+ <span class="cline-any cline-neutral">&nbsp;</span>
1658
+ <span class="cline-any cline-neutral">&nbsp;</span>
1659
+ <span class="cline-any cline-yes">1×</span>
1660
+ <span class="cline-any cline-no">&nbsp;</span>
1661
+ <span class="cline-any cline-no">&nbsp;</span>
1662
+ <span class="cline-any cline-no">&nbsp;</span>
1663
+ <span class="cline-any cline-no">&nbsp;</span>
1664
+ <span class="cline-any cline-no">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-yes">1×</span>
1669
+ <span class="cline-any cline-no">&nbsp;</span>
1670
+ <span class="cline-any cline-no">&nbsp;</span>
1671
+ <span class="cline-any cline-no">&nbsp;</span>
1672
+ <span class="cline-any cline-no">&nbsp;</span>
1673
+ <span class="cline-any cline-no">&nbsp;</span>
1674
+ <span class="cline-any cline-neutral">&nbsp;</span>
1675
+ <span class="cline-any cline-neutral">&nbsp;</span>
1676
+ <span class="cline-any cline-neutral">&nbsp;</span>
1677
+ <span class="cline-any cline-yes">1×</span>
1678
+ <span class="cline-any cline-no">&nbsp;</span>
1679
+ <span class="cline-any cline-no">&nbsp;</span>
1680
+ <span class="cline-any cline-no">&nbsp;</span>
1681
+ <span class="cline-any cline-no">&nbsp;</span>
1682
+ <span class="cline-any cline-no">&nbsp;</span>
1683
+ <span class="cline-any cline-neutral">&nbsp;</span>
1684
+ <span class="cline-any cline-neutral">&nbsp;</span>
1685
+ <span class="cline-any cline-neutral">&nbsp;</span>
1686
+ <span class="cline-any cline-yes">1×</span>
1687
+ <span class="cline-any cline-no">&nbsp;</span>
1688
+ <span class="cline-any cline-no">&nbsp;</span>
1689
+ <span class="cline-any cline-no">&nbsp;</span>
1690
+ <span class="cline-any cline-no">&nbsp;</span>
1691
+ <span class="cline-any cline-no">&nbsp;</span>
1692
+ <span class="cline-any cline-neutral">&nbsp;</span>
1693
+ <span class="cline-any cline-neutral">&nbsp;</span>
1694
+ <span class="cline-any cline-neutral">&nbsp;</span>
1695
+ <span class="cline-any cline-yes">1×</span>
1696
+ <span class="cline-any cline-no">&nbsp;</span>
1697
+ <span class="cline-any cline-no">&nbsp;</span>
1698
+ <span class="cline-any cline-no">&nbsp;</span>
1699
+ <span class="cline-any cline-no">&nbsp;</span>
1700
+ <span class="cline-any cline-no">&nbsp;</span>
1701
+ <span class="cline-any cline-neutral">&nbsp;</span>
1702
+ <span class="cline-any cline-neutral">&nbsp;</span>
1703
+ <span class="cline-any cline-neutral">&nbsp;</span>
1704
+ <span class="cline-any cline-neutral">&nbsp;</span>
1705
+ <span class="cline-any cline-neutral">&nbsp;</span>
1706
+ <span class="cline-any cline-neutral">&nbsp;</span>
1707
+ <span class="cline-any cline-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-yes">1×</span>
1710
+ <span class="cline-any cline-no">&nbsp;</span>
1711
+ <span class="cline-any cline-no">&nbsp;</span>
1712
+ <span class="cline-any cline-no">&nbsp;</span>
1713
+ <span class="cline-any cline-no">&nbsp;</span>
1714
+ <span class="cline-any cline-no">&nbsp;</span>
1715
+ <span class="cline-any cline-neutral">&nbsp;</span>
1716
+ <span class="cline-any cline-neutral">&nbsp;</span>
1717
+ <span class="cline-any cline-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-neutral">&nbsp;</span>
1719
+ <span class="cline-any cline-no">&nbsp;</span>
1720
+ <span class="cline-any cline-neutral">&nbsp;</span>
1721
+ <span class="cline-any cline-neutral">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&nbsp;</span>
1723
+ <span class="cline-any cline-neutral">&nbsp;</span>
1724
+ <span class="cline-any cline-neutral">&nbsp;</span>
1725
+ <span class="cline-any cline-no">&nbsp;</span>
1726
+ <span class="cline-any cline-neutral">&nbsp;</span>
1727
+ <span class="cline-any cline-neutral">&nbsp;</span>
1728
+ <span class="cline-any cline-neutral">&nbsp;</span>
1729
+ <span class="cline-any cline-neutral">&nbsp;</span>
1730
+ <span class="cline-any cline-neutral">&nbsp;</span>
1731
+ <span class="cline-any cline-yes">1×</span>
1732
+ <span class="cline-any cline-yes">115×</span>
1733
+ <span class="cline-any cline-neutral">&nbsp;</span>
1734
+ <span class="cline-any cline-neutral">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-yes">1×</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-yes">62×</span>
1742
+ <span class="cline-any cline-yes">62×</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-neutral">&nbsp;</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-yes">1×</span>
1751
+ <span class="cline-any cline-yes">1×</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-yes">1×</span>
1758
+ <span class="cline-any cline-yes">1×</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-neutral">&nbsp;</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-neutral">&nbsp;</span>
1764
+ <span class="cline-any cline-yes">1×</span>
1765
+ <span class="cline-any cline-yes">49×</span>
1766
+ <span class="cline-any cline-neutral">&nbsp;</span>
1767
+ <span class="cline-any cline-yes">1×</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import $ from 'jquery';
1769
+ import env from '../core/env';
1770
+ import key from '../core/key';
1771
+ import func from '../core/func';
1772
+ import lists from '../core/lists';
1773
+ import dom from '../core/dom';
1774
+ import range from '../core/range';
1775
+ import { readFileAsDataURL, createImage } from '../core/async';
1776
+ import History from '../editing/History';
1777
+ import Style from '../editing/Style';
1778
+ import Typing from '../editing/Typing';
1779
+ import Table from '../editing/Table';
1780
+ import Bullet from '../editing/Bullet';
1781
+ &nbsp;
1782
+ const KEY_BOGUS = 'bogus';
1783
+ &nbsp;
1784
+ /**
1785
+ * @class Editor
1786
+ */
1787
+ export default class Editor {
1788
+ constructor(context) {
1789
+ this.context = context;
1790
+ &nbsp;
1791
+ this.$note = context.layoutInfo.note;
1792
+ this.$editor = context.layoutInfo.editor;
1793
+ this.$editable = context.layoutInfo.editable;
1794
+ this.options = context.options;
1795
+ this.lang = this.options.langInfo;
1796
+ &nbsp;
1797
+ this.editable = this.$editable[0];
1798
+ this.lastRange = null;
1799
+ &nbsp;
1800
+ this.style = new Style();
1801
+ this.table = new Table();
1802
+ this.typing = new Typing();
1803
+ this.bullet = new Bullet();
1804
+ this.history = new History(this.$editable);
1805
+ &nbsp;
1806
+ this.context.memo('help.undo', this.lang.help.undo);
1807
+ this.context.memo('help.redo', this.lang.help.redo);
1808
+ this.context.memo('help.tab', this.lang.help.tab);
1809
+ this.context.memo('help.untab', this.lang.help.untab);
1810
+ this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);
1811
+ this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);
1812
+ this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);
1813
+ this.context.memo('help.indent', this.lang.help.indent);
1814
+ this.context.memo('help.outdent', this.lang.help.outdent);
1815
+ this.context.memo('help.formatPara', this.lang.help.formatPara);
1816
+ this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);
1817
+ this.context.memo('help.fontName', this.lang.help.fontName);
1818
+ &nbsp;
1819
+ // native commands(with execCommand), generate function for execCommand
1820
+ const commands = [
1821
+ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',
1822
+ 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',
1823
+ 'formatBlock', 'removeFormat', 'backColor'
1824
+ ];
1825
+ &nbsp;
1826
+ for (let idx = 0, len = commands.length; idx &lt; len; idx++) {
1827
+ this[commands[idx]] = ((sCmd) =&gt; {
1828
+ return (value) =&gt; {
1829
+ this.beforeCommand();
1830
+ document.execCommand(sCmd, false, value);
1831
+ this.afterCommand(true);
1832
+ };
1833
+ })(commands[idx]);
1834
+ this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);
1835
+ }
1836
+ &nbsp;
1837
+ this.fontName = this.wrapCommand(<span class="fstat-no" title="function not covered" >(value)</span> =&gt; {
1838
+ <span class="cstat-no" title="statement not covered" > return this.fontStyling('font-family', "\'" + value + "\'");</span>
1839
+ });
1840
+ &nbsp;
1841
+ this.fontSize = this.wrapCommand((value) =&gt; {
1842
+ return this.fontStyling('font-size', value + 'px');
1843
+ });
1844
+ &nbsp;
1845
+ for (let idx = 1; idx &lt;= 6; idx++) {
1846
+ this['formatH' + idx] = ((idx) =&gt; {
1847
+ return <span class="fstat-no" title="function not covered" >() =&gt; {</span>
1848
+ <span class="cstat-no" title="statement not covered" > this.formatBlock('H' + idx);</span>
1849
+ };
1850
+ })(idx);
1851
+ this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);
1852
+ };
1853
+ &nbsp;
1854
+ this.insertParagraph = this.wrapCommand(() =&gt; {
1855
+ this.typing.insertParagraph(this.editable);
1856
+ });
1857
+ &nbsp;
1858
+ this.insertOrderedList = this.wrapCommand(() =&gt; {
1859
+ this.bullet.insertOrderedList(this.editable);
1860
+ });
1861
+ &nbsp;
1862
+ this.insertUnorderedList = this.wrapCommand(() =&gt; {
1863
+ this.bullet.insertUnorderedList(this.editable);
1864
+ });
1865
+ &nbsp;
1866
+ this.indent = this.wrapCommand(() =&gt; {
1867
+ this.bullet.indent(this.editable);
1868
+ });
1869
+ &nbsp;
1870
+ this.outdent = this.wrapCommand(() =&gt; {
1871
+ this.bullet.outdent(this.editable);
1872
+ });
1873
+ &nbsp;
1874
+ /**
1875
+ * insertNode
1876
+ * insert node
1877
+ * @param {Node} node
1878
+ */
1879
+ this.insertNode = this.wrapCommand((node) =&gt; {
1880
+ if (this.isLimited($(node).text().length)) {
1881
+ return;
1882
+ }
1883
+ const rng = this.createRange();
1884
+ rng.insertNode(node);
1885
+ range.createFromNodeAfter(node).select();
1886
+ });
1887
+ &nbsp;
1888
+ /**
1889
+ * insert text
1890
+ * @param {String} text
1891
+ */
1892
+ this.insertText = this.wrapCommand((text) =&gt; {
1893
+ if (this.isLimited(text.length)) {
1894
+ return;
1895
+ }
1896
+ const rng = this.createRange();
1897
+ const textNode = rng.insertNode(dom.createText(text));
1898
+ range.create(textNode, dom.nodeLength(textNode)).select();
1899
+ });
1900
+ /**
1901
+ * paste HTML
1902
+ * @param {String} markup
1903
+ */
1904
+ this.pasteHTML = this.wrapCommand((markup) =&gt; {
1905
+ if (this.isLimited(markup.length)) {
1906
+ return;
1907
+ }
1908
+ const contents = this.createRange().pasteHTML(markup);
1909
+ range.createFromNodeAfter(lists.last(contents)).select();
1910
+ });
1911
+ &nbsp;
1912
+ /**
1913
+ * formatBlock
1914
+ *
1915
+ * @param {String} tagName
1916
+ */
1917
+ this.formatBlock = this.wrapCommand((tagName, $target) =&gt; {
1918
+ const onApplyCustomStyle = this.options.callbacks.onApplyCustomStyle;
1919
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (onApplyCustomStyle) {
1920
+ <span class="cstat-no" title="statement not covered" > onApplyCustomStyle.call(this, $target, this.context, this.onFormatBlock);</span>
1921
+ } else {
1922
+ this.onFormatBlock(tagName, $target);
1923
+ }
1924
+ });
1925
+ &nbsp;
1926
+ /**
1927
+ * insert horizontal rule
1928
+ */
1929
+ this.insertHorizontalRule = this.wrapCommand(() =&gt; {
1930
+ const hrNode = this.createRange().insertNode(dom.create('HR'));
1931
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (hrNode.nextSibling) {
1932
+ range.create(hrNode.nextSibling, 0).normalize().select();
1933
+ }
1934
+ });
1935
+ &nbsp;
1936
+ /**
1937
+ * lineHeight
1938
+ * @param {String} value
1939
+ */
1940
+ this.lineHeight = this.wrapCommand(<span class="fstat-no" title="function not covered" >(value)</span> =&gt; {
1941
+ <span class="cstat-no" title="statement not covered" > this.style.stylePara(this.createRange(), {</span>
1942
+ lineHeight: value
1943
+ });
1944
+ });
1945
+ &nbsp;
1946
+ /**
1947
+ * create link (command)
1948
+ *
1949
+ * @param {Object} linkInfo
1950
+ */
1951
+ this.createLink = this.wrapCommand((linkInfo) =&gt; {
1952
+ let linkUrl = linkInfo.url;
1953
+ const linkText = linkInfo.text;
1954
+ const isNewWindow = linkInfo.isNewWindow;
1955
+ let rng = linkInfo.range || this.createRange();
1956
+ const isTextChanged = rng.toString() !== linkText;
1957
+ &nbsp;
1958
+ // handle spaced urls from input
1959
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof linkUrl === 'string') {
1960
+ linkUrl = linkUrl.trim();
1961
+ }
1962
+ &nbsp;
1963
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.onCreateLink) {
1964
+ <span class="cstat-no" title="statement not covered" > linkUrl = this.options.onCreateLink(linkUrl);</span>
1965
+ } else {
1966
+ // if url doesn't match an URL schema, set http:// as default
1967
+ linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(linkUrl)
1968
+ ? linkUrl : <span class="branch-1 cbranch-no" title="branch not covered" >'http://' + linkUrl;</span>
1969
+ }
1970
+ &nbsp;
1971
+ let anchors = [];
1972
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (isTextChanged) {
1973
+ rng = rng.deleteContents();
1974
+ const anchor = rng.insertNode($('&lt;A&gt;' + linkText + '&lt;/A&gt;')[0]);
1975
+ anchors.push(anchor);
1976
+ } else {
1977
+ <span class="cstat-no" title="statement not covered" > anchors = this.style.styleNodes(rng, {</span>
1978
+ nodeName: 'A',
1979
+ expandClosestSibling: true,
1980
+ onlyPartialContains: true
1981
+ });
1982
+ }
1983
+ &nbsp;
1984
+ $.each(anchors, (idx, anchor) =&gt; {
1985
+ $(anchor).attr('href', linkUrl);
1986
+ if (isNewWindow) {
1987
+ $(anchor).attr('target', '_blank');
1988
+ } else {
1989
+ $(anchor).removeAttr('target');
1990
+ }
1991
+ });
1992
+ &nbsp;
1993
+ const startRange = range.createFromNodeBefore(lists.head(anchors));
1994
+ const startPoint = startRange.getStartPoint();
1995
+ const endRange = range.createFromNodeAfter(lists.last(anchors));
1996
+ const endPoint = endRange.getEndPoint();
1997
+ &nbsp;
1998
+ range.create(
1999
+ startPoint.node,
2000
+ startPoint.offset,
2001
+ endPoint.node,
2002
+ endPoint.offset
2003
+ ).select();
2004
+ });
2005
+ &nbsp;
2006
+ /**
2007
+ * setting color
2008
+ *
2009
+ * @param {Object} sObjColor color code
2010
+ * @param {String} sObjColor.foreColor foreground color
2011
+ * @param {String} sObjColor.backColor background color
2012
+ */
2013
+ this.color = this.wrapCommand((colorInfo) =&gt; {
2014
+ const foreColor = colorInfo.foreColor;
2015
+ const backColor = colorInfo.backColor;
2016
+ &nbsp;
2017
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (foreColor) { <span class="cstat-no" title="statement not covered" >document.execCommand('foreColor', false, foreColor); </span>}
2018
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (backColor) { document.execCommand('backColor', false, backColor); }
2019
+ });
2020
+ &nbsp;
2021
+ /**
2022
+ * Set foreground color
2023
+ *
2024
+ * @param {String} colorCode foreground color code
2025
+ */
2026
+ this.foreColor = this.wrapCommand((colorInfo) =&gt; {
2027
+ document.execCommand('styleWithCSS', false, true);
2028
+ document.execCommand('foreColor', false, colorInfo);
2029
+ });
2030
+ &nbsp;
2031
+ /**
2032
+ * insert Table
2033
+ *
2034
+ * @param {String} dimension of table (ex : "5x5")
2035
+ */
2036
+ this.insertTable = this.wrapCommand((dim) =&gt; {
2037
+ const dimension = dim.split('x');
2038
+ &nbsp;
2039
+ const rng = this.createRange().deleteContents();
2040
+ rng.insertNode(this.table.createTable(dimension[0], dimension[1], this.options));
2041
+ });
2042
+ &nbsp;
2043
+ /**
2044
+ * remove media object and Figure Elements if media object is img with Figure.
2045
+ */
2046
+ this.removeMedia = this.wrapCommand(<span class="fstat-no" title="function not covered" >() =&gt; {</span>
2047
+ <span class="cstat-no" title="statement not covered" > let $target = $(this.restoreTarget()).parent();</span>
2048
+ <span class="cstat-no" title="statement not covered" > if ($target.parent('figure').length) {</span>
2049
+ <span class="cstat-no" title="statement not covered" > $target.parent('figure').remove();</span>
2050
+ } else {
2051
+ <span class="cstat-no" title="statement not covered" > $target = $(this.restoreTarget()).detach();</span>
2052
+ }
2053
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('media.delete', $target, this.$editable);</span>
2054
+ });
2055
+ &nbsp;
2056
+ /**
2057
+ * float me
2058
+ *
2059
+ * @param {String} value
2060
+ */
2061
+ this.floatMe = this.wrapCommand(<span class="fstat-no" title="function not covered" >(value)</span> =&gt; {
2062
+ <span class="cstat-no" title="statement not covered" > const $target = $(this.restoreTarget());</span>
2063
+ <span class="cstat-no" title="statement not covered" > $target.toggleClass('note-float-left', value === 'left');</span>
2064
+ <span class="cstat-no" title="statement not covered" > $target.toggleClass('note-float-right', value === 'right');</span>
2065
+ <span class="cstat-no" title="statement not covered" > $target.css('float', value);</span>
2066
+ });
2067
+ &nbsp;
2068
+ /**
2069
+ * resize overlay element
2070
+ * @param {String} value
2071
+ */
2072
+ this.resize = this.wrapCommand(<span class="fstat-no" title="function not covered" >(value)</span> =&gt; {
2073
+ <span class="cstat-no" title="statement not covered" > const $target = $(this.restoreTarget());</span>
2074
+ <span class="cstat-no" title="statement not covered" > $target.css({</span>
2075
+ width: value * 100 + '%',
2076
+ height: ''
2077
+ });
2078
+ });
2079
+ }
2080
+ &nbsp;
2081
+ initialize() {
2082
+ // bind custom events
2083
+ this.$editable.on('keydown', (event) =&gt; {
2084
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (event.keyCode === key.code.ENTER) {
2085
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('enter', event);</span>
2086
+ }
2087
+ this.context.triggerEvent('keydown', event);
2088
+ &nbsp;
2089
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!event.isDefaultPrevented()) {
2090
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.options.shortcuts) {
2091
+ this.handleKeyMap(event);
2092
+ } else {
2093
+ <span class="cstat-no" title="statement not covered" > this.preventDefaultEditableShortCuts(event);</span>
2094
+ }
2095
+ }
2096
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isLimited(1, event)) {
2097
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2098
+ }
2099
+ }).on('keyup', (event) =&gt; {
2100
+ this.context.triggerEvent('keyup', event);
2101
+ }).on('focus', (event) =&gt; {
2102
+ this.context.triggerEvent('focus', event);
2103
+ }).on('blur', (event) =&gt; {
2104
+ this.context.triggerEvent('blur', event);
2105
+ }).on('mousedown', (event) =&gt; {
2106
+ this.context.triggerEvent('mousedown', event);
2107
+ }).on('mouseup', (event) =&gt; {
2108
+ this.context.triggerEvent('mouseup', event);
2109
+ }).on('scroll', (event) =&gt; {
2110
+ this.context.triggerEvent('scroll', event);
2111
+ }).on('paste', <span class="fstat-no" title="function not covered" >(event)</span> =&gt; {
2112
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('paste', event);</span>
2113
+ });
2114
+ &nbsp;
2115
+ // init content before set event
2116
+ this.$editable.html(dom.html(this.$note) || dom.emptyPara);
2117
+ &nbsp;
2118
+ this.$editable.on(env.inputEventName, func.debounce(() =&gt; {
2119
+ this.context.triggerEvent('change', this.$editable.html());
2120
+ }, 100));
2121
+ &nbsp;
2122
+ this.$editor.on('focusin', (event) =&gt; {
2123
+ this.context.triggerEvent('focusin', event);
2124
+ }).on('focusout', (event) =&gt; {
2125
+ this.context.triggerEvent('focusout', event);
2126
+ });
2127
+ &nbsp;
2128
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this.options.airMode) {
2129
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.width) {
2130
+ <span class="cstat-no" title="statement not covered" > this.$editor.outerWidth(this.options.width);</span>
2131
+ }
2132
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.height) {
2133
+ <span class="cstat-no" title="statement not covered" > this.$editable.outerHeight(this.options.height);</span>
2134
+ }
2135
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.maxHeight) {
2136
+ <span class="cstat-no" title="statement not covered" > this.$editable.css('max-height', this.options.maxHeight);</span>
2137
+ }
2138
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.minHeight) {
2139
+ <span class="cstat-no" title="statement not covered" > this.$editable.css('min-height', this.options.minHeight);</span>
2140
+ }
2141
+ }
2142
+ &nbsp;
2143
+ this.history.recordUndo();
2144
+ }
2145
+ &nbsp;
2146
+ destroy() {
2147
+ this.$editable.off();
2148
+ }
2149
+ &nbsp;
2150
+ handleKeyMap(event) {
2151
+ const keyMap = this.options.keyMap[env.isMac ? 'mac' : <span class="branch-1 cbranch-no" title="branch not covered" >'pc']</span>;
2152
+ const keys = [];
2153
+ &nbsp;
2154
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (event.metaKey) { <span class="cstat-no" title="statement not covered" >keys.push('CMD'); </span>}
2155
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (event.ctrlKey &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!event.altKey)</span> { <span class="cstat-no" title="statement not covered" >keys.push('CTRL'); </span>}
2156
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (event.shiftKey) { <span class="cstat-no" title="statement not covered" >keys.push('SHIFT'); </span>}
2157
+ &nbsp;
2158
+ const keyName = key.nameFromCode[event.keyCode];
2159
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (keyName) {
2160
+ <span class="cstat-no" title="statement not covered" > keys.push(keyName);</span>
2161
+ }
2162
+ &nbsp;
2163
+ const eventName = keyMap[keys.join('+')];
2164
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (eventName) {
2165
+ <span class="cstat-no" title="statement not covered" > if (this.context.invoke(eventName) !== false) {</span>
2166
+ <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
2167
+ }
2168
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (key.isEdit(event.keyCode)) {
2169
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2170
+ }
2171
+ }
2172
+ &nbsp;
2173
+ <span class="fstat-no" title="function not covered" > preventDefaultEditableShortCuts(event)</span> {
2174
+ // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)
2175
+ <span class="cstat-no" title="statement not covered" > if ((event.ctrlKey || event.metaKey) &amp;&amp;</span>
2176
+ lists.contains([66, 73, 85], event.keyCode)) {
2177
+ <span class="cstat-no" title="statement not covered" > event.preventDefault();</span>
2178
+ }
2179
+ }
2180
+ &nbsp;
2181
+ isLimited(pad, event) {
2182
+ pad = pad || <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
2183
+ &nbsp;
2184
+ if (typeof event !== 'undefined') {
2185
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (key.isMove(event.keyCode) ||
2186
+ (event.ctrlKey || event.metaKey) ||
2187
+ lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {
2188
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2189
+ }
2190
+ }
2191
+ &nbsp;
2192
+ if (this.options.maxTextLength &gt; 0) {
2193
+ <span class="missing-if-branch" title="else path not taken" >E</span>if ((this.$editable.text().length + pad) &gt;= this.options.maxTextLength) {
2194
+ return true;
2195
+ }
2196
+ }
2197
+ return false;
2198
+ }
2199
+ /**
2200
+ * create range
2201
+ * @return {WrappedRange}
2202
+ */
2203
+ createRange() {
2204
+ this.focus();
2205
+ return range.create(this.editable);
2206
+ }
2207
+ &nbsp;
2208
+ /**
2209
+ * saveRange
2210
+ *
2211
+ * save current range
2212
+ *
2213
+ * @param {Boolean} [thenCollapse=false]
2214
+ */
2215
+ <span class="fstat-no" title="function not covered" > saveRange(thenCollapse)</span> {
2216
+ <span class="cstat-no" title="statement not covered" > this.lastRange = this.createRange();</span>
2217
+ <span class="cstat-no" title="statement not covered" > if (thenCollapse) {</span>
2218
+ <span class="cstat-no" title="statement not covered" > this.lastRange.collapse().select();</span>
2219
+ }
2220
+ }
2221
+ &nbsp;
2222
+ /**
2223
+ * restoreRange
2224
+ *
2225
+ * restore lately range
2226
+ */
2227
+ <span class="fstat-no" title="function not covered" > restoreRange() {</span>
2228
+ <span class="cstat-no" title="statement not covered" > if (this.lastRange) {</span>
2229
+ <span class="cstat-no" title="statement not covered" > this.lastRange.select();</span>
2230
+ <span class="cstat-no" title="statement not covered" > this.focus();</span>
2231
+ }
2232
+ }
2233
+ &nbsp;
2234
+ <span class="fstat-no" title="function not covered" > saveTarget(node)</span> {
2235
+ <span class="cstat-no" title="statement not covered" > this.$editable.data('target', node);</span>
2236
+ }
2237
+ &nbsp;
2238
+ clearTarget() {
2239
+ this.$editable.removeData('target');
2240
+ }
2241
+ &nbsp;
2242
+ <span class="fstat-no" title="function not covered" > restoreTarget() {</span>
2243
+ <span class="cstat-no" title="statement not covered" > return this.$editable.data('target');</span>
2244
+ }
2245
+ &nbsp;
2246
+ /**
2247
+ * currentStyle
2248
+ *
2249
+ * current style
2250
+ * @return {Object|Boolean} unfocus
2251
+ */
2252
+ currentStyle() {
2253
+ let rng = range.create();
2254
+ if (rng) {
2255
+ rng = rng.normalize();
2256
+ }
2257
+ return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);
2258
+ }
2259
+ &nbsp;
2260
+ /**
2261
+ * style from node
2262
+ *
2263
+ * @param {jQuery} $node
2264
+ * @return {Object}
2265
+ */
2266
+ <span class="fstat-no" title="function not covered" > styleFromNode($node)</span> {
2267
+ <span class="cstat-no" title="statement not covered" > return this.style.fromNode($node);</span>
2268
+ }
2269
+ &nbsp;
2270
+ /**
2271
+ * undo
2272
+ */
2273
+ undo() {
2274
+ this.context.triggerEvent('before.command', this.$editable.html());
2275
+ this.history.undo();
2276
+ this.context.triggerEvent('change', this.$editable.html());
2277
+ }
2278
+ &nbsp;
2279
+ /**
2280
+ * redo
2281
+ */
2282
+ redo() {
2283
+ this.context.triggerEvent('before.command', this.$editable.html());
2284
+ this.history.redo();
2285
+ this.context.triggerEvent('change', this.$editable.html());
2286
+ }
2287
+ &nbsp;
2288
+ /**
2289
+ * before command
2290
+ */
2291
+ beforeCommand() {
2292
+ this.context.triggerEvent('before.command', this.$editable.html());
2293
+ // keep focus on editable before command execution
2294
+ this.focus();
2295
+ }
2296
+ &nbsp;
2297
+ /**
2298
+ * after command
2299
+ * @param {Boolean} isPreventTrigger
2300
+ */
2301
+ afterCommand(isPreventTrigger) {
2302
+ this.normalizeContent();
2303
+ this.history.recordUndo();
2304
+ if (!isPreventTrigger) {
2305
+ this.context.triggerEvent('change', this.$editable.html());
2306
+ }
2307
+ }
2308
+ &nbsp;
2309
+ /**
2310
+ * handle tab key
2311
+ */
2312
+ tab() {
2313
+ const rng = this.createRange();
2314
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {
2315
+ <span class="cstat-no" title="statement not covered" > this.table.tab(rng);</span>
2316
+ } else {
2317
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.tabSize === 0) {
2318
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2319
+ }
2320
+ &nbsp;
2321
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this.isLimited(this.options.tabSize)) {
2322
+ this.beforeCommand();
2323
+ this.typing.insertTab(rng, this.options.tabSize);
2324
+ this.afterCommand();
2325
+ }
2326
+ }
2327
+ }
2328
+ &nbsp;
2329
+ /**
2330
+ * handle shift+tab key
2331
+ */
2332
+ <span class="fstat-no" title="function not covered" > untab() {</span>
2333
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange();</span>
2334
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2335
+ <span class="cstat-no" title="statement not covered" > this.table.tab(rng, true);</span>
2336
+ } else {
2337
+ <span class="cstat-no" title="statement not covered" > if (this.options.tabSize === 0) {</span>
2338
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2339
+ }
2340
+ }
2341
+ }
2342
+ &nbsp;
2343
+ /**
2344
+ * run given function between beforeCommand and afterCommand
2345
+ */
2346
+ wrapCommand(fn) {
2347
+ return () =&gt; {
2348
+ this.beforeCommand();
2349
+ fn.apply(this, arguments);
2350
+ this.afterCommand();
2351
+ };
2352
+ }
2353
+ &nbsp;
2354
+ /**
2355
+ * insert image
2356
+ *
2357
+ * @param {String} src
2358
+ * @param {String|Function} param
2359
+ * @return {Promise}
2360
+ */
2361
+ insertImage(src, param) {
2362
+ return createImage(src, param).then(($image) =&gt; {
2363
+ this.beforeCommand();
2364
+ &nbsp;
2365
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof param === 'function') {
2366
+ <span class="cstat-no" title="statement not covered" > param($image);</span>
2367
+ } else {
2368
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof param === 'string') {
2369
+ $image.attr('data-filename', param);
2370
+ }
2371
+ $image.css('width', Math.min(this.$editable.width(), $image.width()));
2372
+ }
2373
+ &nbsp;
2374
+ $image.show();
2375
+ range.create(this.editable).insertNode($image[0]);
2376
+ range.createFromNodeAfter($image[0]).select();
2377
+ this.afterCommand();
2378
+ }).fail(<span class="fstat-no" title="function not covered" >(e)</span> =&gt; {
2379
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('image.upload.error', e);</span>
2380
+ });
2381
+ }
2382
+ &nbsp;
2383
+ /**
2384
+ * insertImages
2385
+ * @param {File[]} files
2386
+ */
2387
+ <span class="fstat-no" title="function not covered" > insertImages(files)</span> {
2388
+ <span class="cstat-no" title="statement not covered" > $.each(files, <span class="fstat-no" title="function not covered" >(idx, file)</span> =&gt; {</span>
2389
+ <span class="cstat-no" title="statement not covered" > const filename = file.name;</span>
2390
+ <span class="cstat-no" title="statement not covered" > if (this.options.maximumImageFileSize &amp;&amp; this.options.maximumImageFileSize &lt; file.size) {</span>
2391
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('image.upload.error', this.lang.image.maximumFileSizeError);</span>
2392
+ } else {
2393
+ <span class="cstat-no" title="statement not covered" > readFileAsDataURL(file).then(<span class="fstat-no" title="function not covered" >(dataURL)</span> =&gt; {</span>
2394
+ <span class="cstat-no" title="statement not covered" > return this.insertImage(dataURL, filename);</span>
2395
+ }).fail(<span class="fstat-no" title="function not covered" >() =&gt; {</span>
2396
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('image.upload.error');</span>
2397
+ });
2398
+ }
2399
+ });
2400
+ }
2401
+ &nbsp;
2402
+ /**
2403
+ * insertImagesOrCallback
2404
+ * @param {File[]} files
2405
+ */
2406
+ <span class="fstat-no" title="function not covered" > insertImagesOrCallback(files)</span> {
2407
+ <span class="cstat-no" title="statement not covered" > const callbacks = this.options.callbacks;</span>
2408
+ &nbsp;
2409
+ // If onImageUpload this.options setted
2410
+ <span class="cstat-no" title="statement not covered" > if (callbacks.onImageUpload) {</span>
2411
+ <span class="cstat-no" title="statement not covered" > this.context.triggerEvent('image.upload', files);</span>
2412
+ // else insert Image as dataURL
2413
+ } else {
2414
+ <span class="cstat-no" title="statement not covered" > this.insertImages(files);</span>
2415
+ }
2416
+ }
2417
+ &nbsp;
2418
+ /**
2419
+ * return selected plain text
2420
+ * @return {String} text
2421
+ */
2422
+ <span class="fstat-no" title="function not covered" > getSelectedText() {</span>
2423
+ <span class="cstat-no" title="statement not covered" > let rng = this.createRange();</span>
2424
+ &nbsp;
2425
+ // if range on anchor, expand range with anchor
2426
+ <span class="cstat-no" title="statement not covered" > if (rng.isOnAnchor()) {</span>
2427
+ <span class="cstat-no" title="statement not covered" > rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));</span>
2428
+ }
2429
+ &nbsp;
2430
+ <span class="cstat-no" title="statement not covered" > return rng.toString();</span>
2431
+ }
2432
+ &nbsp;
2433
+ onFormatBlock(tagName, $target) {
2434
+ // [workaround] for MSIE, IE need `&lt;`
2435
+ tagName = env.isMSIE ? <span class="branch-0 cbranch-no" title="branch not covered" >'&lt;' + tagName + '&gt;' </span>: tagName;
2436
+ document.execCommand('FormatBlock', false, tagName);
2437
+ &nbsp;
2438
+ // support custom class
2439
+ if ($target &amp;&amp; $target.length) {
2440
+ const className = $target[0].className || <span class="branch-1 cbranch-no" title="branch not covered" >'';</span>
2441
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (className) {
2442
+ const currentRange = this.createRange();
2443
+ &nbsp;
2444
+ const $parent = $([currentRange.sc, currentRange.ec]).closest(tagName);
2445
+ $parent.addClass(className);
2446
+ }
2447
+ }
2448
+ }
2449
+ &nbsp;
2450
+ <span class="fstat-no" title="function not covered" > formatPara() {</span>
2451
+ <span class="cstat-no" title="statement not covered" > this.formatBlock('P');</span>
2452
+ }
2453
+ &nbsp;
2454
+ fontStyling(target, value) {
2455
+ const rng = this.createRange();
2456
+ &nbsp;
2457
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (rng) {
2458
+ const spans = this.style.styleNodes(rng);
2459
+ $(spans).css(target, value);
2460
+ &nbsp;
2461
+ // [workaround] added styled bogus span for style
2462
+ // - also bogus character needed for cursor position
2463
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (rng.isCollapsed()) {
2464
+ const firstSpan = lists.head(spans);
2465
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (firstSpan &amp;&amp; !dom.nodeLength(firstSpan)) {
2466
+ firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;
2467
+ range.createFromNodeAfter(firstSpan.firstChild).select();
2468
+ this.$editable.data(KEY_BOGUS, firstSpan);
2469
+ }
2470
+ }
2471
+ }
2472
+ }
2473
+ &nbsp;
2474
+ /**
2475
+ * unlink
2476
+ *
2477
+ * @type command
2478
+ */
2479
+ <span class="fstat-no" title="function not covered" > unlink() {</span>
2480
+ <span class="cstat-no" title="statement not covered" > let rng = this.createRange();</span>
2481
+ <span class="cstat-no" title="statement not covered" > if (rng.isOnAnchor()) {</span>
2482
+ <span class="cstat-no" title="statement not covered" > const anchor = dom.ancestor(rng.sc, dom.isAnchor);</span>
2483
+ <span class="cstat-no" title="statement not covered" > rng = range.createFromNode(anchor);</span>
2484
+ <span class="cstat-no" title="statement not covered" > rng.select();</span>
2485
+ &nbsp;
2486
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2487
+ <span class="cstat-no" title="statement not covered" > document.execCommand('unlink');</span>
2488
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2489
+ }
2490
+ }
2491
+ &nbsp;
2492
+ /**
2493
+ * returns link info
2494
+ *
2495
+ * @return {Object}
2496
+ * @return {WrappedRange} return.range
2497
+ * @return {String} return.text
2498
+ * @return {Boolean} [return.isNewWindow=true]
2499
+ * @return {String} [return.url=""]
2500
+ */
2501
+ <span class="fstat-no" title="function not covered" > getLinkInfo() {</span>
2502
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange().expand(dom.isAnchor);</span>
2503
+ &nbsp;
2504
+ // Get the first anchor on range(for edit).
2505
+ <span class="cstat-no" title="statement not covered" > const $anchor = $(lists.head(rng.nodes(dom.isAnchor)));</span>
2506
+ <span class="cstat-no" title="statement not covered" > const linkInfo = {</span>
2507
+ range: rng,
2508
+ text: rng.toString(),
2509
+ url: $anchor.length ? $anchor.attr('href') : ''
2510
+ };
2511
+ &nbsp;
2512
+ // Define isNewWindow when anchor exists.
2513
+ <span class="cstat-no" title="statement not covered" > if ($anchor.length) {</span>
2514
+ <span class="cstat-no" title="statement not covered" > linkInfo.isNewWindow = $anchor.attr('target') === '_blank';</span>
2515
+ }
2516
+ &nbsp;
2517
+ <span class="cstat-no" title="statement not covered" > return linkInfo;</span>
2518
+ }
2519
+ &nbsp;
2520
+ <span class="fstat-no" title="function not covered" > addRow(position)</span> {
2521
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange(this.$editable);</span>
2522
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2523
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2524
+ <span class="cstat-no" title="statement not covered" > this.table.addRow(rng, position);</span>
2525
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2526
+ }
2527
+ }
2528
+ &nbsp;
2529
+ <span class="fstat-no" title="function not covered" > addCol(position)</span> {
2530
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange(this.$editable);</span>
2531
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2532
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2533
+ <span class="cstat-no" title="statement not covered" > this.table.addCol(rng, position);</span>
2534
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2535
+ }
2536
+ }
2537
+ &nbsp;
2538
+ <span class="fstat-no" title="function not covered" > deleteRow() {</span>
2539
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange(this.$editable);</span>
2540
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2541
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2542
+ <span class="cstat-no" title="statement not covered" > this.table.deleteRow(rng);</span>
2543
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2544
+ }
2545
+ }
2546
+ &nbsp;
2547
+ <span class="fstat-no" title="function not covered" > deleteCol() {</span>
2548
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange(this.$editable);</span>
2549
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2550
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2551
+ <span class="cstat-no" title="statement not covered" > this.table.deleteCol(rng);</span>
2552
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2553
+ }
2554
+ }
2555
+ &nbsp;
2556
+ <span class="fstat-no" title="function not covered" > deleteTable() {</span>
2557
+ <span class="cstat-no" title="statement not covered" > const rng = this.createRange(this.$editable);</span>
2558
+ <span class="cstat-no" title="statement not covered" > if (rng.isCollapsed() &amp;&amp; rng.isOnCell()) {</span>
2559
+ <span class="cstat-no" title="statement not covered" > this.beforeCommand();</span>
2560
+ <span class="cstat-no" title="statement not covered" > this.table.deleteTable(rng);</span>
2561
+ <span class="cstat-no" title="statement not covered" > this.afterCommand();</span>
2562
+ }
2563
+ }
2564
+ &nbsp;
2565
+ /**
2566
+ * @param {Position} pos
2567
+ * @param {jQuery} $target - target element
2568
+ * @param {Boolean} [bKeepRatio] - keep ratio
2569
+ */
2570
+ <span class="fstat-no" title="function not covered" > resizeTo(pos, $target, bKeepRatio)</span> {
2571
+ <span class="cstat-no" title="statement not covered" > let imageSize;</span>
2572
+ <span class="cstat-no" title="statement not covered" > if (bKeepRatio) {</span>
2573
+ <span class="cstat-no" title="statement not covered" > const newRatio = pos.y / pos.x;</span>
2574
+ <span class="cstat-no" title="statement not covered" > const ratio = $target.data('ratio');</span>
2575
+ <span class="cstat-no" title="statement not covered" > imageSize = {</span>
2576
+ width: ratio &gt; newRatio ? pos.x : pos.y / ratio,
2577
+ height: ratio &gt; newRatio ? pos.x * ratio : pos.y
2578
+ };
2579
+ } else {
2580
+ <span class="cstat-no" title="statement not covered" > imageSize = {</span>
2581
+ width: pos.x,
2582
+ height: pos.y
2583
+ };
2584
+ }
2585
+ &nbsp;
2586
+ <span class="cstat-no" title="statement not covered" > $target.css(imageSize);</span>
2587
+ }
2588
+ &nbsp;
2589
+ /**
2590
+ * returns whether editable area has focus or not.
2591
+ */
2592
+ hasFocus() {
2593
+ return this.$editable.is(':focus');
2594
+ }
2595
+ &nbsp;
2596
+ /**
2597
+ * set focus
2598
+ */
2599
+ focus() {
2600
+ // [workaround] Screen will move when page is scolled in IE.
2601
+ // - do focus when not focused
2602
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this.hasFocus()) {
2603
+ this.$editable.focus();
2604
+ }
2605
+ }
2606
+ &nbsp;
2607
+ /**
2608
+ * returns whether contents is empty or not.
2609
+ * @return {Boolean}
2610
+ */
2611
+ isEmpty() {
2612
+ return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();
2613
+ }
2614
+ &nbsp;
2615
+ /**
2616
+ * Removes all contents and restores the editable instance to an _emptyPara_.
2617
+ */
2618
+ empty() {
2619
+ this.context.invoke('code', dom.emptyPara);
2620
+ }
2621
+ &nbsp;
2622
+ /**
2623
+ * normalize content
2624
+ */
2625
+ normalizeContent() {
2626
+ this.$editable[0].normalize();
2627
+ }
2628
+ }
2629
+ &nbsp;</pre></td></tr>
2630
+ </table></pre>
2631
+ <div class='push'></div><!-- for sticky footer -->
2632
+ </div><!-- /wrapper -->
2633
+ <div class='footer quiet pad2 space-top1 center small'>
2634
+ Code coverage
2635
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Feb 20 2018 09:36:40 GMT+0900 (KST)
2636
+ </div>
2637
+ </div>
2638
+ <script src="../../../../prettify.js"></script>
2639
+ <script>
2640
+ window.onload = function () {
2641
+ if (typeof prettyPrint === 'function') {
2642
+ prettyPrint();
2643
+ }
2644
+ };
2645
+ </script>
2646
+ <script src="../../../../sorter.js"></script>
2647
+ </body>
2648
+ </html>