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,2441 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for src/js/base/core/range.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/core/</a> range.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">74.28% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>231/311</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">69.89% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>123/176</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">86.67% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>39/45</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">74.28% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>231/311</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</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
839
+ <span class="cline-any cline-yes">1×</span>
840
+ <span class="cline-any cline-yes">1×</span>
841
+ <span class="cline-any cline-yes">1×</span>
842
+ <span class="cline-any cline-yes">1×</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-neutral">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-yes">1×</span>
854
+ <span class="cline-any cline-no">&nbsp;</span>
855
+ <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-no">&nbsp;</span>
858
+ <span class="cline-any cline-no">&nbsp;</span>
859
+ <span class="cline-any cline-no">&nbsp;</span>
860
+ <span class="cline-any cline-no">&nbsp;</span>
861
+ <span class="cline-any cline-no">&nbsp;</span>
862
+ <span class="cline-any cline-no">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-no">&nbsp;</span>
865
+ <span class="cline-any cline-no">&nbsp;</span>
866
+ <span class="cline-any cline-no">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-no">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-no">&nbsp;</span>
872
+ <span class="cline-any cline-no">&nbsp;</span>
873
+ <span class="cline-any cline-no">&nbsp;</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-no">&nbsp;</span>
876
+ <span class="cline-any cline-no">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-no">&nbsp;</span>
879
+ <span class="cline-any cline-no">&nbsp;</span>
880
+ <span class="cline-any cline-no">&nbsp;</span>
881
+ <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-no">&nbsp;</span>
883
+ <span class="cline-any cline-no">&nbsp;</span>
884
+ <span class="cline-any cline-no">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-no">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-no">&nbsp;</span>
891
+ <span class="cline-any cline-neutral">&nbsp;</span>
892
+ <span class="cline-any cline-no">&nbsp;</span>
893
+ <span class="cline-any cline-no">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-neutral">&nbsp;</span>
896
+ <span class="cline-any cline-no">&nbsp;</span>
897
+ <span class="cline-any cline-no">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-no">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-neutral">&nbsp;</span>
903
+ <span class="cline-any cline-neutral">&nbsp;</span>
904
+ <span class="cline-any cline-neutral">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span>
911
+ <span class="cline-any cline-yes">1×</span>
912
+ <span class="cline-any cline-no">&nbsp;</span>
913
+ <span class="cline-any cline-no">&nbsp;</span>
914
+ <span class="cline-any cline-neutral">&nbsp;</span>
915
+ <span class="cline-any cline-no">&nbsp;</span>
916
+ <span class="cline-any cline-no">&nbsp;</span>
917
+ <span class="cline-any cline-no">&nbsp;</span>
918
+ <span class="cline-any cline-no">&nbsp;</span>
919
+ <span class="cline-any cline-no">&nbsp;</span>
920
+ <span class="cline-any cline-no">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-no">&nbsp;</span>
923
+ <span class="cline-any cline-no">&nbsp;</span>
924
+ <span class="cline-any cline-no">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-no">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-neutral">&nbsp;</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-neutral">&nbsp;</span>
935
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <span class="cline-any cline-neutral">&nbsp;</span>
937
+ <span class="cline-any cline-neutral">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
940
+ <span class="cline-any cline-neutral">&nbsp;</span>
941
+ <span class="cline-any cline-no">&nbsp;</span>
942
+ <span class="cline-any cline-no">&nbsp;</span>
943
+ <span class="cline-any cline-no">&nbsp;</span>
944
+ <span class="cline-any cline-no">&nbsp;</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-neutral">&nbsp;</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
951
+ <span class="cline-any cline-neutral">&nbsp;</span>
952
+ <span class="cline-any cline-neutral">&nbsp;</span>
953
+ <span class="cline-any cline-neutral">&nbsp;</span>
954
+ <span class="cline-any cline-neutral">&nbsp;</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-yes">1×</span>
957
+ <span class="cline-any cline-yes">1×</span>
958
+ <span class="cline-any cline-yes">596×</span>
959
+ <span class="cline-any cline-yes">596×</span>
960
+ <span class="cline-any cline-yes">596×</span>
961
+ <span class="cline-any cline-yes">596×</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-yes">596×</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-yes">596×</span>
967
+ <span class="cline-any cline-neutral">&nbsp;</span>
968
+ <span class="cline-any cline-yes">596×</span>
969
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
+ <span class="cline-any cline-yes">596×</span>
971
+ <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-yes">596×</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</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">1×</span>
977
+ <span class="cline-any cline-yes">42×</span>
978
+ <span class="cline-any cline-yes">42×</span>
979
+ <span class="cline-any cline-yes">42×</span>
980
+ <span class="cline-any cline-yes">42×</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-yes">42×</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-neutral">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-no">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-yes">1×</span>
999
+ <span class="cline-any cline-yes">15×</span>
1000
+ <span class="cline-any cline-neutral">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
1002
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-neutral">&nbsp;</span>
1007
+ <span class="cline-any cline-yes">1×</span>
1008
+ <span class="cline-any cline-yes">102×</span>
1009
+ <span class="cline-any cline-neutral">&nbsp;</span>
1010
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">1×</span>
1015
+ <span class="cline-any cline-yes">187×</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-neutral">&nbsp;</span>
1019
+ <span class="cline-any cline-neutral">&nbsp;</span>
1020
+ <span class="cline-any cline-neutral">&nbsp;</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-neutral">&nbsp;</span>
1023
+ <span class="cline-any cline-neutral">&nbsp;</span>
1024
+ <span class="cline-any cline-yes">1×</span>
1025
+ <span class="cline-any cline-yes">38×</span>
1026
+ <span class="cline-any cline-yes">38×</span>
1027
+ <span class="cline-any cline-yes">38×</span>
1028
+ <span class="cline-any cline-yes">38×</span>
1029
+ <span class="cline-any cline-yes">11×</span>
1030
+ <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-yes">38×</span>
1032
+ <span class="cline-any cline-neutral">&nbsp;</span>
1033
+ <span class="cline-any cline-no">&nbsp;</span>
1034
+ <span class="cline-any cline-neutral">&nbsp;</span>
1035
+ <span class="cline-any cline-neutral">&nbsp;</span>
1036
+ <span class="cline-any cline-yes">38×</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1044
+ <span class="cline-any cline-yes">1×</span>
1045
+ <span class="cline-any cline-yes">2×</span>
1046
+ <span class="cline-any cline-yes">2×</span>
1047
+ <span class="cline-any cline-no">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-neutral">&nbsp;</span>
1050
+ <span class="cline-any cline-yes">2×</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">1×</span>
1057
+ <span class="cline-any cline-neutral">&nbsp;</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-neutral">&nbsp;</span>
1062
+ <span class="cline-any cline-yes">138×</span>
1063
+ <span class="cline-any cline-yes">162×</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-yes">61×</span>
1068
+ <span class="cline-any cline-neutral">&nbsp;</span>
1069
+ <span class="cline-any cline-neutral">&nbsp;</span>
1070
+ <span class="cline-any cline-neutral">&nbsp;</span>
1071
+ <span class="cline-any cline-yes">101×</span>
1072
+ <span class="cline-any cline-yes">101×</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-yes">23×</span>
1076
+ <span class="cline-any cline-yes">18×</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">5×</span>
1080
+ <span class="cline-any cline-neutral">&nbsp;</span>
1081
+ <span class="cline-any cline-neutral">&nbsp;</span>
1082
+ <span class="cline-any cline-yes">83×</span>
1083
+ <span class="cline-any cline-neutral">&nbsp;</span>
1084
+ <span class="cline-any cline-yes">83×</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-yes">138×</span>
1088
+ <span class="cline-any cline-yes">138×</span>
1089
+ <span class="cline-any cline-neutral">&nbsp;</span>
1090
+ <span class="cline-any cline-yes">138×</span>
1091
+ <span class="cline-any cline-neutral">&nbsp;</span>
1092
+ <span class="cline-any cline-neutral">&nbsp;</span>
1093
+ <span class="cline-any cline-neutral">&nbsp;</span>
1094
+ <span class="cline-any cline-neutral">&nbsp;</span>
1095
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1099
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1103
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1107
+ <span class="cline-any cline-yes">1×</span>
1108
+ <span class="cline-any cline-yes">28×</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-yes">28×</span>
1111
+ <span class="cline-any cline-yes">28×</span>
1112
+ <span class="cline-any cline-neutral">&nbsp;</span>
1113
+ <span class="cline-any cline-neutral">&nbsp;</span>
1114
+ <span class="cline-any cline-yes">28×</span>
1115
+ <span class="cline-any cline-yes">28×</span>
1116
+ <span class="cline-any cline-neutral">&nbsp;</span>
1117
+ <span class="cline-any cline-yes">28×</span>
1118
+ <span class="cline-any cline-yes">28×</span>
1119
+ <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-yes">28×</span>
1121
+ <span class="cline-any cline-yes">120×</span>
1122
+ <span class="cline-any cline-yes">2×</span>
1123
+ <span class="cline-any cline-neutral">&nbsp;</span>
1124
+ <span class="cline-any cline-neutral">&nbsp;</span>
1125
+ <span class="cline-any cline-yes">118×</span>
1126
+ <span class="cline-any cline-yes">118×</span>
1127
+ <span class="cline-any cline-yes">67×</span>
1128
+ <span class="cline-any cline-yes">17×</span>
1129
+ <span class="cline-any cline-neutral">&nbsp;</span>
1130
+ <span class="cline-any cline-yes">67×</span>
1131
+ <span class="cline-any cline-yes">15×</span>
1132
+ <span class="cline-any cline-neutral">&nbsp;</span>
1133
+ <span class="cline-any cline-yes">51×</span>
1134
+ <span class="cline-any cline-yes">46×</span>
1135
+ <span class="cline-any cline-neutral">&nbsp;</span>
1136
+ <span class="cline-any cline-yes">5×</span>
1137
+ <span class="cline-any cline-neutral">&nbsp;</span>
1138
+ <span class="cline-any cline-neutral">&nbsp;</span>
1139
+ <span class="cline-any cline-yes">118×</span>
1140
+ <span class="cline-any cline-yes">65×</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-yes">28×</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-yes">1×</span>
1152
+ <span class="cline-any cline-yes">27×</span>
1153
+ <span class="cline-any cline-neutral">&nbsp;</span>
1154
+ <span class="cline-any cline-neutral">&nbsp;</span>
1155
+ <span class="cline-any cline-neutral">&nbsp;</span>
1156
+ <span class="cline-any cline-neutral">&nbsp;</span>
1157
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">1×</span>
1162
+ <span class="cline-any cline-yes">1×</span>
1163
+ <span class="cline-any cline-yes">1×</span>
1164
+ <span class="cline-any cline-neutral">&nbsp;</span>
1165
+ <span class="cline-any cline-yes">1×</span>
1166
+ <span class="cline-any cline-no">&nbsp;</span>
1167
+ <span class="cline-any cline-neutral">&nbsp;</span>
1168
+ <span class="cline-any cline-neutral">&nbsp;</span>
1169
+ <span class="cline-any cline-yes">1×</span>
1170
+ <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-yes">1×</span>
1172
+ <span class="cline-any cline-yes">1×</span>
1173
+ <span class="cline-any cline-yes">1×</span>
1174
+ <span class="cline-any cline-neutral">&nbsp;</span>
1175
+ <span class="cline-any cline-neutral">&nbsp;</span>
1176
+ <span class="cline-any cline-yes">1×</span>
1177
+ <span class="cline-any cline-yes">1×</span>
1178
+ <span class="cline-any cline-yes">1×</span>
1179
+ <span class="cline-any cline-neutral">&nbsp;</span>
1180
+ <span class="cline-any cline-neutral">&nbsp;</span>
1181
+ <span class="cline-any cline-yes">1×</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-neutral">&nbsp;</span>
1186
+ <span class="cline-any cline-neutral">&nbsp;</span>
1187
+ <span class="cline-any cline-neutral">&nbsp;</span>
1188
+ <span class="cline-any cline-neutral">&nbsp;</span>
1189
+ <span class="cline-any cline-neutral">&nbsp;</span>
1190
+ <span class="cline-any cline-neutral">&nbsp;</span>
1191
+ <span class="cline-any cline-neutral">&nbsp;</span>
1192
+ <span class="cline-any cline-neutral">&nbsp;</span>
1193
+ <span class="cline-any cline-yes">1×</span>
1194
+ <span class="cline-any cline-yes">133×</span>
1195
+ <span class="cline-any cline-yes">4×</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-yes">129×</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-neutral">&nbsp;</span>
1201
+ <span class="cline-any cline-neutral">&nbsp;</span>
1202
+ <span class="cline-any cline-neutral">&nbsp;</span>
1203
+ <span class="cline-any cline-neutral">&nbsp;</span>
1204
+ <span class="cline-any cline-yes">1×</span>
1205
+ <span class="cline-any cline-yes">14×</span>
1206
+ <span class="cline-any cline-yes">14×</span>
1207
+ <span class="cline-any cline-neutral">&nbsp;</span>
1208
+ <span class="cline-any cline-yes">14×</span>
1209
+ <span class="cline-any cline-yes">4×</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-neutral">&nbsp;</span>
1212
+ <span class="cline-any cline-yes">14×</span>
1213
+ <span class="cline-any cline-yes">4×</span>
1214
+ <span class="cline-any cline-yes">4×</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-yes">4×</span>
1217
+ <span class="cline-any cline-yes">2×</span>
1218
+ <span class="cline-any cline-yes">2×</span>
1219
+ <span class="cline-any cline-neutral">&nbsp;</span>
1220
+ <span class="cline-any cline-neutral">&nbsp;</span>
1221
+ <span class="cline-any cline-neutral">&nbsp;</span>
1222
+ <span class="cline-any cline-yes">14×</span>
1223
+ <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-neutral">&nbsp;</span>
1225
+ <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-neutral">&nbsp;</span>
1227
+ <span class="cline-any cline-neutral">&nbsp;</span>
1228
+ <span class="cline-any cline-neutral">&nbsp;</span>
1229
+ <span class="cline-any cline-neutral">&nbsp;</span>
1230
+ <span class="cline-any cline-neutral">&nbsp;</span>
1231
+ <span class="cline-any cline-neutral">&nbsp;</span>
1232
+ <span class="cline-any cline-neutral">&nbsp;</span>
1233
+ <span class="cline-any cline-neutral">&nbsp;</span>
1234
+ <span class="cline-any cline-yes">1×</span>
1235
+ <span class="cline-any cline-yes">41×</span>
1236
+ <span class="cline-any cline-yes">36×</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">5×</span>
1240
+ <span class="cline-any cline-yes">5×</span>
1241
+ <span class="cline-any cline-neutral">&nbsp;</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-neutral">&nbsp;</span>
1244
+ <span class="cline-any cline-neutral">&nbsp;</span>
1245
+ <span class="cline-any cline-yes">5×</span>
1246
+ <span class="cline-any cline-yes">10×</span>
1247
+ <span class="cline-any cline-neutral">&nbsp;</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-yes">5×</span>
1250
+ <span class="cline-any cline-yes">5×</span>
1251
+ <span class="cline-any cline-neutral">&nbsp;</span>
1252
+ <span class="cline-any cline-yes">6×</span>
1253
+ <span class="cline-any cline-yes">6×</span>
1254
+ <span class="cline-any cline-yes">1×</span>
1255
+ <span class="cline-any cline-neutral">&nbsp;</span>
1256
+ <span class="cline-any cline-yes">6×</span>
1257
+ <span class="cline-any cline-neutral">&nbsp;</span>
1258
+ <span class="cline-any cline-neutral">&nbsp;</span>
1259
+ <span class="cline-any cline-neutral">&nbsp;</span>
1260
+ <span class="cline-any cline-yes">5×</span>
1261
+ <span class="cline-any cline-yes">1×</span>
1262
+ <span class="cline-any cline-neutral">&nbsp;</span>
1263
+ <span class="cline-any cline-neutral">&nbsp;</span>
1264
+ <span class="cline-any cline-yes">5×</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-neutral">&nbsp;</span>
1268
+ <span class="cline-any cline-neutral">&nbsp;</span>
1269
+ <span class="cline-any cline-neutral">&nbsp;</span>
1270
+ <span class="cline-any cline-neutral">&nbsp;</span>
1271
+ <span class="cline-any cline-neutral">&nbsp;</span>
1272
+ <span class="cline-any cline-neutral">&nbsp;</span>
1273
+ <span class="cline-any cline-neutral">&nbsp;</span>
1274
+ <span class="cline-any cline-neutral">&nbsp;</span>
1275
+ <span class="cline-any cline-yes">1×</span>
1276
+ <span class="cline-any cline-yes">2980×</span>
1277
+ <span class="cline-any cline-yes">77×</span>
1278
+ <span class="cline-any cline-yes">77×</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
1286
+ <span class="cline-any cline-yes">1×</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-neutral">&nbsp;</span>
1290
+ <span class="cline-any cline-neutral">&nbsp;</span>
1291
+ <span class="cline-any cline-no">&nbsp;</span>
1292
+ <span class="cline-any cline-no">&nbsp;</span>
1293
+ <span class="cline-any cline-neutral">&nbsp;</span>
1294
+ <span class="cline-any cline-neutral">&nbsp;</span>
1295
+ <span class="cline-any cline-neutral">&nbsp;</span>
1296
+ <span class="cline-any cline-neutral">&nbsp;</span>
1297
+ <span class="cline-any cline-neutral">&nbsp;</span>
1298
+ <span class="cline-any cline-yes">1×</span>
1299
+ <span class="cline-any cline-yes">190×</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-neutral">&nbsp;</span>
1303
+ <span class="cline-any cline-neutral">&nbsp;</span>
1304
+ <span class="cline-any cline-neutral">&nbsp;</span>
1305
+ <span class="cline-any cline-neutral">&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-yes">47×</span>
1309
+ <span class="cline-any cline-yes">1×</span>
1310
+ <span class="cline-any cline-yes">1×</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-neutral">&nbsp;</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-neutral">&nbsp;</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-neutral">&nbsp;</span>
1317
+ <span class="cline-any cline-neutral">&nbsp;</span>
1318
+ <span class="cline-any cline-yes">46×</span>
1319
+ <span class="cline-any cline-yes">46×</span>
1320
+ <span class="cline-any cline-yes">19×</span>
1321
+ <span class="cline-any cline-neutral">&nbsp;</span>
1322
+ <span class="cline-any cline-neutral">&nbsp;</span>
1323
+ <span class="cline-any cline-neutral">&nbsp;</span>
1324
+ <span class="cline-any cline-yes">27×</span>
1325
+ <span class="cline-any cline-yes">27×</span>
1326
+ <span class="cline-any cline-yes">26×</span>
1327
+ <span class="cline-any cline-yes">26×</span>
1328
+ <span class="cline-any cline-yes">26×</span>
1329
+ <span class="cline-any cline-yes">21×</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-neutral">&nbsp;</span>
1332
+ <span class="cline-any cline-yes">1×</span>
1333
+ <span class="cline-any cline-neutral">&nbsp;</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">27×</span>
1337
+ <span class="cline-any cline-yes">27×</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-yes">27×</span>
1341
+ <span class="cline-any cline-yes">5×</span>
1342
+ <span class="cline-any cline-yes">5×</span>
1343
+ <span class="cline-any cline-neutral">&nbsp;</span>
1344
+ <span class="cline-any cline-neutral">&nbsp;</span>
1345
+ <span class="cline-any cline-yes">27×</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-yes">26×</span>
1356
+ <span class="cline-any cline-yes">26×</span>
1357
+ <span class="cline-any cline-neutral">&nbsp;</span>
1358
+ <span class="cline-any cline-yes">26×</span>
1359
+ <span class="cline-any cline-yes">13×</span>
1360
+ <span class="cline-any cline-neutral">&nbsp;</span>
1361
+ <span class="cline-any cline-yes">13×</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-yes">26×</span>
1365
+ <span class="cline-any cline-neutral">&nbsp;</span>
1366
+ <span class="cline-any cline-neutral">&nbsp;</span>
1367
+ <span class="cline-any cline-neutral">&nbsp;</span>
1368
+ <span class="cline-any cline-neutral">&nbsp;</span>
1369
+ <span class="cline-any cline-neutral">&nbsp;</span>
1370
+ <span class="cline-any cline-yes">1×</span>
1371
+ <span class="cline-any cline-yes">5×</span>
1372
+ <span class="cline-any cline-yes">5×</span>
1373
+ <span class="cline-any cline-neutral">&nbsp;</span>
1374
+ <span class="cline-any cline-yes">5×</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-yes">5×</span>
1377
+ <span class="cline-any cline-yes">8×</span>
1378
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1382
+ <span class="cline-any cline-neutral">&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-yes">1×</span>
1387
+ <span class="cline-any cline-yes">4×</span>
1388
+ <span class="cline-any cline-yes">4×</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-neutral">&nbsp;</span>
1392
+ <span class="cline-any cline-neutral">&nbsp;</span>
1393
+ <span class="cline-any cline-neutral">&nbsp;</span>
1394
+ <span class="cline-any cline-neutral">&nbsp;</span>
1395
+ <span class="cline-any cline-neutral">&nbsp;</span>
1396
+ <span class="cline-any cline-neutral">&nbsp;</span>
1397
+ <span class="cline-any cline-yes">1×</span>
1398
+ <span class="cline-any cline-yes">4×</span>
1399
+ <span class="cline-any cline-neutral">&nbsp;</span>
1400
+ <span class="cline-any cline-yes">4×</span>
1401
+ <span class="cline-any cline-yes">1×</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-yes">3×</span>
1405
+ <span class="cline-any cline-yes">17×</span>
1406
+ <span class="cline-any cline-neutral">&nbsp;</span>
1407
+ <span class="cline-any cline-neutral">&nbsp;</span>
1408
+ <span class="cline-any cline-yes">3×</span>
1409
+ <span class="cline-any cline-no">&nbsp;</span>
1410
+ <span class="cline-any cline-no">&nbsp;</span>
1411
+ <span class="cline-any cline-neutral">&nbsp;</span>
1412
+ <span class="cline-any cline-neutral">&nbsp;</span>
1413
+ <span class="cline-any cline-neutral">&nbsp;</span>
1414
+ <span class="cline-any cline-yes">3×</span>
1415
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1422
+ <span class="cline-any cline-neutral">&nbsp;</span>
1423
+ <span class="cline-any cline-neutral">&nbsp;</span>
1424
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">1×</span>
1428
+ <span class="cline-any cline-yes">126×</span>
1429
+ <span class="cline-any cline-neutral">&nbsp;</span>
1430
+ <span class="cline-any cline-neutral">&nbsp;</span>
1431
+ <span class="cline-any cline-neutral">&nbsp;</span>
1432
+ <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1441
+ <span class="cline-any cline-neutral">&nbsp;</span>
1442
+ <span class="cline-any cline-neutral">&nbsp;</span>
1443
+ <span class="cline-any cline-neutral">&nbsp;</span>
1444
+ <span class="cline-any cline-neutral">&nbsp;</span>
1445
+ <span class="cline-any cline-yes">1×</span>
1446
+ <span class="cline-any cline-yes">4×</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-neutral">&nbsp;</span>
1452
+ <span class="cline-any cline-neutral">&nbsp;</span>
1453
+ <span class="cline-any cline-neutral">&nbsp;</span>
1454
+ <span class="cline-any cline-neutral">&nbsp;</span>
1455
+ <span class="cline-any cline-neutral">&nbsp;</span>
1456
+ <span class="cline-any cline-neutral">&nbsp;</span>
1457
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1461
+ <span class="cline-any cline-neutral">&nbsp;</span>
1462
+ <span class="cline-any cline-yes">1×</span>
1463
+ <span class="cline-any cline-no">&nbsp;</span>
1464
+ <span class="cline-any cline-no">&nbsp;</span>
1465
+ <span class="cline-any cline-neutral">&nbsp;</span>
1466
+ <span class="cline-any cline-yes">1×</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-neutral">&nbsp;</span>
1472
+ <span class="cline-any cline-neutral">&nbsp;</span>
1473
+ <span class="cline-any cline-neutral">&nbsp;</span>
1474
+ <span class="cline-any cline-neutral">&nbsp;</span>
1475
+ <span class="cline-any cline-yes">1×</span>
1476
+ <span class="cline-any cline-neutral">&nbsp;</span>
1477
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1486
+ <span class="cline-any cline-yes">591×</span>
1487
+ <span class="cline-any cline-yes">180×</span>
1488
+ <span class="cline-any cline-yes">411×</span>
1489
+ <span class="cline-any cline-yes">46×</span>
1490
+ <span class="cline-any cline-yes">46×</span>
1491
+ <span class="cline-any cline-yes">46×</span>
1492
+ <span class="cline-any cline-neutral">&nbsp;</span>
1493
+ <span class="cline-any cline-yes">365×</span>
1494
+ <span class="cline-any cline-yes">365×</span>
1495
+ <span class="cline-any cline-yes">119×</span>
1496
+ <span class="cline-any cline-yes">119×</span>
1497
+ <span class="cline-any cline-neutral">&nbsp;</span>
1498
+ <span class="cline-any cline-yes">246×</span>
1499
+ <span class="cline-any cline-neutral">&nbsp;</span>
1500
+ <span class="cline-any cline-neutral">&nbsp;</span>
1501
+ <span class="cline-any cline-neutral">&nbsp;</span>
1502
+ <span class="cline-any cline-neutral">&nbsp;</span>
1503
+ <span class="cline-any cline-yes">365×</span>
1504
+ <span class="cline-any cline-yes">365×</span>
1505
+ <span class="cline-any cline-yes">365×</span>
1506
+ <span class="cline-any cline-yes">365×</span>
1507
+ <span class="cline-any cline-yes">194×</span>
1508
+ <span class="cline-any cline-yes">171×</span>
1509
+ <span class="cline-any cline-neutral">&nbsp;</span>
1510
+ <span class="cline-any cline-neutral">&nbsp;</span>
1511
+ <span class="cline-any cline-yes">102×</span>
1512
+ <span class="cline-any cline-neutral">&nbsp;</span>
1513
+ <span class="cline-any cline-neutral">&nbsp;</span>
1514
+ <span class="cline-any cline-yes">69×</span>
1515
+ <span class="cline-any cline-yes">69×</span>
1516
+ <span class="cline-any cline-yes">69×</span>
1517
+ <span class="cline-any cline-yes">69×</span>
1518
+ <span class="cline-any cline-yes">69×</span>
1519
+ <span class="cline-any cline-neutral">&nbsp;</span>
1520
+ <span class="cline-any cline-no">&nbsp;</span>
1521
+ <span class="cline-any cline-no">&nbsp;</span>
1522
+ <span class="cline-any cline-no">&nbsp;</span>
1523
+ <span class="cline-any cline-no">&nbsp;</span>
1524
+ <span class="cline-any cline-no">&nbsp;</span>
1525
+ <span class="cline-any cline-neutral">&nbsp;</span>
1526
+ <span class="cline-any cline-no">&nbsp;</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-neutral">&nbsp;</span>
1529
+ <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
1536
+ <span class="cline-any cline-no">&nbsp;</span>
1537
+ <span class="cline-any cline-no">&nbsp;</span>
1538
+ <span class="cline-any cline-no">&nbsp;</span>
1539
+ <span class="cline-any cline-no">&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-yes">69×</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-neutral">&nbsp;</span>
1546
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1550
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1554
+ <span class="cline-any cline-yes">142×</span>
1555
+ <span class="cline-any cline-yes">142×</span>
1556
+ <span class="cline-any cline-yes">142×</span>
1557
+ <span class="cline-any cline-yes">142×</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-yes">142×</span>
1561
+ <span class="cline-any cline-yes">1×</span>
1562
+ <span class="cline-any cline-yes">1×</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-yes">142×</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-yes">142×</span>
1568
+ <span class="cline-any cline-yes">1×</span>
1569
+ <span class="cline-any cline-yes">1×</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">142×</span>
1573
+ <span class="cline-any cline-neutral">&nbsp;</span>
1574
+ <span class="cline-any cline-neutral">&nbsp;</span>
1575
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1579
+ <span class="cline-any cline-neutral">&nbsp;</span>
1580
+ <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-yes">4×</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-neutral">&nbsp;</span>
1592
+ <span class="cline-any cline-yes">9×</span>
1593
+ <span class="cline-any cline-neutral">&nbsp;</span>
1594
+ <span class="cline-any cline-neutral">&nbsp;</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-neutral">&nbsp;</span>
1597
+ <span class="cline-any cline-neutral">&nbsp;</span>
1598
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1603
+ <span class="cline-any cline-neutral">&nbsp;</span>
1604
+ <span class="cline-any cline-neutral">&nbsp;</span>
1605
+ <span class="cline-any cline-yes">2×</span>
1606
+ <span class="cline-any cline-yes">2×</span>
1607
+ <span class="cline-any cline-yes">2×</span>
1608
+ <span class="cline-any cline-yes">2×</span>
1609
+ <span class="cline-any cline-yes">2×</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-neutral">&nbsp;</span>
1619
+ <span class="cline-any cline-neutral">&nbsp;</span>
1620
+ <span class="cline-any cline-neutral">&nbsp;</span>
1621
+ <span class="cline-any cline-neutral">&nbsp;</span>
1622
+ <span class="cline-any cline-yes">4×</span>
1623
+ <span class="cline-any cline-yes">4×</span>
1624
+ <span class="cline-any cline-yes">4×</span>
1625
+ <span class="cline-any cline-yes">4×</span>
1626
+ <span class="cline-any cline-neutral">&nbsp;</span>
1627
+ <span class="cline-any cline-yes">4×</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></td><td class="text"><pre class="prettyprint lang-js">import $ from 'jquery';
1631
+ import env from './env';
1632
+ import func from './func';
1633
+ import lists from './lists';
1634
+ import dom from './dom';
1635
+ &nbsp;
1636
+ /**
1637
+ * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js
1638
+ *
1639
+ * @param {TextRange} textRange
1640
+ * @param {Boolean} isStart
1641
+ * @return {BoundaryPoint}
1642
+ *
1643
+ * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx
1644
+ */
1645
+ <span class="fstat-no" title="function not covered" >function textRangeToPoint(textRange, isStart)</span> {
1646
+ <span class="cstat-no" title="statement not covered" > let container = textRange.parentElement();</span>
1647
+ <span class="cstat-no" title="statement not covered" > let offset;</span>
1648
+ &nbsp;
1649
+ <span class="cstat-no" title="statement not covered" > const tester = document.body.createTextRange();</span>
1650
+ <span class="cstat-no" title="statement not covered" > let prevContainer;</span>
1651
+ <span class="cstat-no" title="statement not covered" > const childNodes = lists.from(container.childNodes);</span>
1652
+ <span class="cstat-no" title="statement not covered" > for (offset = 0; offset &lt; childNodes.length; offset++) {</span>
1653
+ <span class="cstat-no" title="statement not covered" > if (dom.isText(childNodes[offset])) {</span>
1654
+ <span class="cstat-no" title="statement not covered" > continue;</span>
1655
+ }
1656
+ <span class="cstat-no" title="statement not covered" > tester.moveToElementText(childNodes[offset]);</span>
1657
+ <span class="cstat-no" title="statement not covered" > if (tester.compareEndPoints('StartToStart', textRange) &gt;= 0) {</span>
1658
+ <span class="cstat-no" title="statement not covered" > break;</span>
1659
+ }
1660
+ <span class="cstat-no" title="statement not covered" > prevContainer = childNodes[offset];</span>
1661
+ }
1662
+ &nbsp;
1663
+ <span class="cstat-no" title="statement not covered" > if (offset !== 0 &amp;&amp; dom.isText(childNodes[offset - 1])) {</span>
1664
+ <span class="cstat-no" title="statement not covered" > const textRangeStart = document.body.createTextRange();</span>
1665
+ <span class="cstat-no" title="statement not covered" > let curTextNode = null;</span>
1666
+ <span class="cstat-no" title="statement not covered" > textRangeStart.moveToElementText(prevContainer || container);</span>
1667
+ <span class="cstat-no" title="statement not covered" > textRangeStart.collapse(!prevContainer);</span>
1668
+ <span class="cstat-no" title="statement not covered" > curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;</span>
1669
+ &nbsp;
1670
+ <span class="cstat-no" title="statement not covered" > const pointTester = textRange.duplicate();</span>
1671
+ <span class="cstat-no" title="statement not covered" > pointTester.setEndPoint('StartToStart', textRangeStart);</span>
1672
+ <span class="cstat-no" title="statement not covered" > let textCount = pointTester.text.replace(/[\r\n]/g, '').length;</span>
1673
+ &nbsp;
1674
+ <span class="cstat-no" title="statement not covered" > while (textCount &gt; curTextNode.nodeValue.length &amp;&amp; curTextNode.nextSibling) {</span>
1675
+ <span class="cstat-no" title="statement not covered" > textCount -= curTextNode.nodeValue.length;</span>
1676
+ <span class="cstat-no" title="statement not covered" > curTextNode = curTextNode.nextSibling;</span>
1677
+ }
1678
+ &nbsp;
1679
+ // [workaround] enforce IE to re-reference curTextNode, hack
1680
+ <span class="cstat-no" title="statement not covered" > const dummy = curTextNode.nodeValue; </span>// eslint-disable-line
1681
+ &nbsp;
1682
+ <span class="cstat-no" title="statement not covered" > if (isStart &amp;&amp; curTextNode.nextSibling &amp;&amp; dom.isText(curTextNode.nextSibling) &amp;&amp;</span>
1683
+ textCount === curTextNode.nodeValue.length) {
1684
+ <span class="cstat-no" title="statement not covered" > textCount -= curTextNode.nodeValue.length;</span>
1685
+ <span class="cstat-no" title="statement not covered" > curTextNode = curTextNode.nextSibling;</span>
1686
+ }
1687
+ &nbsp;
1688
+ <span class="cstat-no" title="statement not covered" > container = curTextNode;</span>
1689
+ <span class="cstat-no" title="statement not covered" > offset = textCount;</span>
1690
+ }
1691
+ &nbsp;
1692
+ <span class="cstat-no" title="statement not covered" > return {</span>
1693
+ cont: container,
1694
+ offset: offset
1695
+ };
1696
+ }
1697
+ &nbsp;
1698
+ /**
1699
+ * return TextRange from boundary point (inspired by google closure-library)
1700
+ * @param {BoundaryPoint} point
1701
+ * @return {TextRange}
1702
+ */
1703
+ <span class="fstat-no" title="function not covered" >function pointToTextRange(point)</span> {
1704
+ <span class="cstat-no" title="statement not covered" > const textRangeInfo = <span class="fstat-no" title="function not covered" >function(container, offset)</span> {</span>
1705
+ <span class="cstat-no" title="statement not covered" > let node, isCollapseToStart;</span>
1706
+ &nbsp;
1707
+ <span class="cstat-no" title="statement not covered" > if (dom.isText(container)) {</span>
1708
+ <span class="cstat-no" title="statement not covered" > const prevTextNodes = dom.listPrev(container, func.not(dom.isText));</span>
1709
+ <span class="cstat-no" title="statement not covered" > const prevContainer = lists.last(prevTextNodes).previousSibling;</span>
1710
+ <span class="cstat-no" title="statement not covered" > node = prevContainer || container.parentNode;</span>
1711
+ <span class="cstat-no" title="statement not covered" > offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);</span>
1712
+ <span class="cstat-no" title="statement not covered" > isCollapseToStart = !prevContainer;</span>
1713
+ } else {
1714
+ <span class="cstat-no" title="statement not covered" > node = container.childNodes[offset] || container;</span>
1715
+ <span class="cstat-no" title="statement not covered" > if (dom.isText(node)) {</span>
1716
+ <span class="cstat-no" title="statement not covered" > return textRangeInfo(node, 0);</span>
1717
+ }
1718
+ &nbsp;
1719
+ <span class="cstat-no" title="statement not covered" > offset = 0;</span>
1720
+ <span class="cstat-no" title="statement not covered" > isCollapseToStart = false;</span>
1721
+ }
1722
+ &nbsp;
1723
+ <span class="cstat-no" title="statement not covered" > return {</span>
1724
+ node: node,
1725
+ collapseToStart: isCollapseToStart,
1726
+ offset: offset
1727
+ };
1728
+ };
1729
+ &nbsp;
1730
+ <span class="cstat-no" title="statement not covered" > const textRange = document.body.createTextRange();</span>
1731
+ <span class="cstat-no" title="statement not covered" > const info = textRangeInfo(point.node, point.offset);</span>
1732
+ &nbsp;
1733
+ <span class="cstat-no" title="statement not covered" > textRange.moveToElementText(info.node);</span>
1734
+ <span class="cstat-no" title="statement not covered" > textRange.collapse(info.collapseToStart);</span>
1735
+ <span class="cstat-no" title="statement not covered" > textRange.moveStart('character', info.offset);</span>
1736
+ <span class="cstat-no" title="statement not covered" > return textRange;</span>
1737
+ }
1738
+ &nbsp;
1739
+ /**
1740
+ * Wrapped Range
1741
+ *
1742
+ * @constructor
1743
+ * @param {Node} sc - start container
1744
+ * @param {Number} so - start offset
1745
+ * @param {Node} ec - end container
1746
+ * @param {Number} eo - end offset
1747
+ */
1748
+ class WrappedRange {
1749
+ constructor(sc, so, ec, eo) {
1750
+ this.sc = sc;
1751
+ this.so = so;
1752
+ this.ec = ec;
1753
+ this.eo = eo;
1754
+ &nbsp;
1755
+ // isOnEditable: judge whether range is on editable or not
1756
+ this.isOnEditable = this.makeIsOn(dom.isEditable);
1757
+ // isOnList: judge whether range is on list node or not
1758
+ this.isOnList = this.makeIsOn(dom.isList);
1759
+ // isOnAnchor: judge whether range is on anchor node or not
1760
+ this.isOnAnchor = this.makeIsOn(dom.isAnchor);
1761
+ // isOnCell: judge whether range is on cell node or not
1762
+ this.isOnCell = this.makeIsOn(dom.isCell);
1763
+ // isOnData: judge whether range is on data node or not
1764
+ this.isOnData = this.makeIsOn(dom.isData);
1765
+ }
1766
+ &nbsp;
1767
+ // nativeRange: get nativeRange from sc, so, ec, eo
1768
+ nativeRange() {
1769
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (env.isW3CRangeSupport) {
1770
+ const w3cRange = document.createRange();
1771
+ w3cRange.setStart(this.sc, this.so);
1772
+ w3cRange.setEnd(this.ec, this.eo);
1773
+ &nbsp;
1774
+ return w3cRange;
1775
+ } else {
1776
+ <span class="cstat-no" title="statement not covered" > const textRange = pointToTextRange({</span>
1777
+ node: this.sc,
1778
+ offset: this.so
1779
+ });
1780
+ &nbsp;
1781
+ <span class="cstat-no" title="statement not covered" > textRange.setEndPoint('EndToEnd', pointToTextRange({</span>
1782
+ node: this.ec,
1783
+ offset: this.eo
1784
+ }));
1785
+ &nbsp;
1786
+ <span class="cstat-no" title="statement not covered" > return textRange;</span>
1787
+ }
1788
+ }
1789
+ &nbsp;
1790
+ getPoints() {
1791
+ return {
1792
+ sc: this.sc,
1793
+ so: this.so,
1794
+ ec: this.ec,
1795
+ eo: this.eo
1796
+ };
1797
+ }
1798
+ &nbsp;
1799
+ getStartPoint() {
1800
+ return {
1801
+ node: this.sc,
1802
+ offset: this.so
1803
+ };
1804
+ }
1805
+ &nbsp;
1806
+ getEndPoint() {
1807
+ return {
1808
+ node: this.ec,
1809
+ offset: this.eo
1810
+ };
1811
+ }
1812
+ &nbsp;
1813
+ /**
1814
+ * select update visible range
1815
+ */
1816
+ select() {
1817
+ const nativeRng = this.nativeRange();
1818
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (env.isW3CRangeSupport) {
1819
+ const selection = document.getSelection();
1820
+ if (selection.rangeCount &gt; 0) {
1821
+ selection.removeAllRanges();
1822
+ }
1823
+ selection.addRange(nativeRng);
1824
+ } else {
1825
+ <span class="cstat-no" title="statement not covered" > nativeRng.select();</span>
1826
+ }
1827
+ &nbsp;
1828
+ return this;
1829
+ }
1830
+ &nbsp;
1831
+ /**
1832
+ * Moves the scrollbar to start container(sc) of current range
1833
+ *
1834
+ * @return {WrappedRange}
1835
+ */
1836
+ scrollIntoView(container) {
1837
+ const height = $(container).height();
1838
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (container.scrollTop + height &lt; this.sc.offsetTop) {
1839
+ <span class="cstat-no" title="statement not covered" > container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);</span>
1840
+ }
1841
+ &nbsp;
1842
+ return this;
1843
+ }
1844
+ &nbsp;
1845
+ /**
1846
+ * @return {WrappedRange}
1847
+ */
1848
+ normalize() {
1849
+ /**
1850
+ * @param {BoundaryPoint} point
1851
+ * @param {Boolean} isLeftToRight
1852
+ * @return {BoundaryPoint}
1853
+ */
1854
+ const getVisiblePoint = function(point, isLeftToRight) {
1855
+ if ((dom.isVisiblePoint(point) &amp;&amp; !dom.isEdgePoint(point)) ||
1856
+ (dom.isVisiblePoint(point) &amp;&amp; dom.isRightEdgePoint(point) &amp;&amp; !isLeftToRight) ||
1857
+ (dom.isVisiblePoint(point) &amp;&amp; dom.isLeftEdgePoint(point) &amp;&amp; isLeftToRight) ||
1858
+ (dom.isVisiblePoint(point) &amp;&amp; dom.isBlock(point.node) &amp;&amp; dom.isEmpty(point.node))) {
1859
+ return point;
1860
+ }
1861
+ &nbsp;
1862
+ // point on block's edge
1863
+ const block = dom.ancestor(point.node, dom.isBlock);
1864
+ if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) &amp;&amp; !isLeftToRight) ||
1865
+ ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) &amp;&amp; isLeftToRight)) {
1866
+ // returns point already on visible point
1867
+ if (dom.isVisiblePoint(point)) {
1868
+ return point;
1869
+ }
1870
+ // reverse direction
1871
+ isLeftToRight = !isLeftToRight;
1872
+ }
1873
+ &nbsp;
1874
+ const nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)
1875
+ : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);
1876
+ return nextPoint || <span class="branch-1 cbranch-no" title="branch not covered" >point;</span>
1877
+ };
1878
+ &nbsp;
1879
+ const endPoint = getVisiblePoint(this.getEndPoint(), false);
1880
+ const startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);
1881
+ &nbsp;
1882
+ return new WrappedRange(
1883
+ startPoint.node,
1884
+ startPoint.offset,
1885
+ endPoint.node,
1886
+ endPoint.offset
1887
+ );
1888
+ }
1889
+ &nbsp;
1890
+ /**
1891
+ * returns matched nodes on range
1892
+ *
1893
+ * @param {Function} [pred] - predicate function
1894
+ * @param {Object} [options]
1895
+ * @param {Boolean} [options.includeAncestor]
1896
+ * @param {Boolean} [options.fullyContains]
1897
+ * @return {Node[]}
1898
+ */
1899
+ nodes(pred, options) {
1900
+ pred = pred || func.ok;
1901
+ &nbsp;
1902
+ const includeAncestor = options &amp;&amp; options.includeAncestor;
1903
+ const fullyContains = options &amp;&amp; options.fullyContains;
1904
+ &nbsp;
1905
+ // TODO compare points and sort
1906
+ const startPoint = this.getStartPoint();
1907
+ const endPoint = this.getEndPoint();
1908
+ &nbsp;
1909
+ const nodes = [];
1910
+ const leftEdgeNodes = [];
1911
+ &nbsp;
1912
+ dom.walkPoint(startPoint, endPoint, function(point) {
1913
+ if (dom.isEditable(point.node)) {
1914
+ return;
1915
+ }
1916
+ &nbsp;
1917
+ let node;
1918
+ if (fullyContains) {
1919
+ if (dom.isLeftEdgePoint(point)) {
1920
+ leftEdgeNodes.push(point.node);
1921
+ }
1922
+ if (dom.isRightEdgePoint(point) &amp;&amp; lists.contains(leftEdgeNodes, point.node)) {
1923
+ node = point.node;
1924
+ }
1925
+ } else if (includeAncestor) {
1926
+ node = dom.ancestor(point.node, pred);
1927
+ } else {
1928
+ node = point.node;
1929
+ }
1930
+ &nbsp;
1931
+ if (node &amp;&amp; pred(node)) {
1932
+ nodes.push(node);
1933
+ }
1934
+ }, true);
1935
+ &nbsp;
1936
+ return lists.unique(nodes);
1937
+ }
1938
+ &nbsp;
1939
+ /**
1940
+ * returns commonAncestor of range
1941
+ * @return {Element} - commonAncestor
1942
+ */
1943
+ commonAncestor() {
1944
+ return dom.commonAncestor(this.sc, this.ec);
1945
+ }
1946
+ &nbsp;
1947
+ /**
1948
+ * returns expanded range by pred
1949
+ *
1950
+ * @param {Function} pred - predicate function
1951
+ * @return {WrappedRange}
1952
+ */
1953
+ expand(pred) {
1954
+ const startAncestor = dom.ancestor(this.sc, pred);
1955
+ const endAncestor = dom.ancestor(this.ec, pred);
1956
+ &nbsp;
1957
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!startAncestor &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!endAncestor)</span> {
1958
+ <span class="cstat-no" title="statement not covered" > return new WrappedRange(this.sc, this.so, this.ec, this.eo);</span>
1959
+ }
1960
+ &nbsp;
1961
+ const boundaryPoints = this.getPoints();
1962
+ &nbsp;
1963
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (startAncestor) {
1964
+ boundaryPoints.sc = startAncestor;
1965
+ boundaryPoints.so = 0;
1966
+ }
1967
+ &nbsp;
1968
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (endAncestor) {
1969
+ boundaryPoints.ec = endAncestor;
1970
+ boundaryPoints.eo = dom.nodeLength(endAncestor);
1971
+ }
1972
+ &nbsp;
1973
+ return new WrappedRange(
1974
+ boundaryPoints.sc,
1975
+ boundaryPoints.so,
1976
+ boundaryPoints.ec,
1977
+ boundaryPoints.eo
1978
+ );
1979
+ }
1980
+ &nbsp;
1981
+ /**
1982
+ * @param {Boolean} isCollapseToStart
1983
+ * @return {WrappedRange}
1984
+ */
1985
+ collapse(isCollapseToStart) {
1986
+ if (isCollapseToStart) {
1987
+ return new WrappedRange(this.sc, this.so, this.sc, this.so);
1988
+ } else {
1989
+ return new WrappedRange(this.ec, this.eo, this.ec, this.eo);
1990
+ }
1991
+ }
1992
+ &nbsp;
1993
+ /**
1994
+ * splitText on range
1995
+ */
1996
+ splitText() {
1997
+ const isSameContainer = this.sc === this.ec;
1998
+ const boundaryPoints = this.getPoints();
1999
+ &nbsp;
2000
+ if (dom.isText(this.ec) &amp;&amp; !dom.isEdgePoint(this.getEndPoint())) {
2001
+ this.ec.splitText(this.eo);
2002
+ }
2003
+ &nbsp;
2004
+ if (dom.isText(this.sc) &amp;&amp; !dom.isEdgePoint(this.getStartPoint())) {
2005
+ boundaryPoints.sc = this.sc.splitText(this.so);
2006
+ boundaryPoints.so = 0;
2007
+ &nbsp;
2008
+ if (isSameContainer) {
2009
+ boundaryPoints.ec = boundaryPoints.sc;
2010
+ boundaryPoints.eo = this.eo - this.so;
2011
+ }
2012
+ }
2013
+ &nbsp;
2014
+ return new WrappedRange(
2015
+ boundaryPoints.sc,
2016
+ boundaryPoints.so,
2017
+ boundaryPoints.ec,
2018
+ boundaryPoints.eo
2019
+ );
2020
+ }
2021
+ &nbsp;
2022
+ /**
2023
+ * delete contents on range
2024
+ * @return {WrappedRange}
2025
+ */
2026
+ deleteContents() {
2027
+ if (this.isCollapsed()) {
2028
+ return this;
2029
+ }
2030
+ &nbsp;
2031
+ const rng = this.splitText();
2032
+ const nodes = rng.nodes(null, {
2033
+ fullyContains: true
2034
+ });
2035
+ &nbsp;
2036
+ // find new cursor point
2037
+ const point = dom.prevPointUntil(rng.getStartPoint(), function(point) {
2038
+ return !lists.contains(nodes, point.node);
2039
+ });
2040
+ &nbsp;
2041
+ const emptyParents = [];
2042
+ $.each(nodes, function(idx, node) {
2043
+ // find empty parents
2044
+ const parent = node.parentNode;
2045
+ if (point.node !== parent &amp;&amp; dom.nodeLength(parent) === 1) {
2046
+ emptyParents.push(parent);
2047
+ }
2048
+ dom.remove(node, false);
2049
+ });
2050
+ &nbsp;
2051
+ // remove empty parents
2052
+ $.each(emptyParents, function(idx, node) {
2053
+ dom.remove(node, false);
2054
+ });
2055
+ &nbsp;
2056
+ return new WrappedRange(
2057
+ point.node,
2058
+ point.offset,
2059
+ point.node,
2060
+ point.offset
2061
+ ).normalize();
2062
+ }
2063
+ &nbsp;
2064
+ /**
2065
+ * makeIsOn: return isOn(pred) function
2066
+ */
2067
+ makeIsOn(pred) {
2068
+ return function() {
2069
+ const ancestor = dom.ancestor(this.sc, pred);
2070
+ return !!ancestor &amp;&amp; (ancestor === dom.ancestor(this.ec, pred));
2071
+ };
2072
+ }
2073
+ &nbsp;
2074
+ /**
2075
+ * @param {Function} pred
2076
+ * @return {Boolean}
2077
+ */
2078
+ <span class="fstat-no" title="function not covered" > isLeftEdgeOf(pred)</span> {
2079
+ <span class="cstat-no" title="statement not covered" > if (!dom.isLeftEdgePoint(this.getStartPoint())) {</span>
2080
+ <span class="cstat-no" title="statement not covered" > return false;</span>
2081
+ }
2082
+ &nbsp;
2083
+ <span class="cstat-no" title="statement not covered" > const node = dom.ancestor(this.sc, pred);</span>
2084
+ <span class="cstat-no" title="statement not covered" > return node &amp;&amp; dom.isLeftEdgeOf(this.sc, node);</span>
2085
+ }
2086
+ &nbsp;
2087
+ /**
2088
+ * returns whether range was collapsed or not
2089
+ */
2090
+ isCollapsed() {
2091
+ return this.sc === this.ec &amp;&amp; this.so === this.eo;
2092
+ }
2093
+ &nbsp;
2094
+ /**
2095
+ * wrap inline nodes which children of body with paragraph
2096
+ *
2097
+ * @return {WrappedRange}
2098
+ */
2099
+ wrapBodyInlineWithPara() {
2100
+ if (dom.isBodyContainer(this.sc) &amp;&amp; dom.isEmpty(this.sc)) {
2101
+ this.sc.innerHTML = dom.emptyPara;
2102
+ return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);
2103
+ }
2104
+ &nbsp;
2105
+ /**
2106
+ * [workaround] firefox often create range on not visible point. so normalize here.
2107
+ * - firefox: |&lt;p&gt;text&lt;/p&gt;|
2108
+ * - chrome: &lt;p&gt;|text|&lt;/p&gt;
2109
+ */
2110
+ const rng = this.normalize();
2111
+ if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {
2112
+ return rng;
2113
+ }
2114
+ &nbsp;
2115
+ // find inline top ancestor
2116
+ let topAncestor;
2117
+ if (dom.isInline(rng.sc)) {
2118
+ const ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));
2119
+ topAncestor = lists.last(ancestors);
2120
+ if (!dom.isInline(topAncestor)) {
2121
+ topAncestor = ancestors[ancestors.length - 2] || <span class="branch-1 cbranch-no" title="branch not covered" >rng.sc.childNodes[rng.so];</span>
2122
+ }
2123
+ } else {
2124
+ topAncestor = rng.sc.childNodes[rng.so &gt; 0 ? rng.so - 1 : <span class="branch-1 cbranch-no" title="branch not covered" >0]</span>;
2125
+ }
2126
+ &nbsp;
2127
+ // siblings not in paragraph
2128
+ let inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();
2129
+ inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));
2130
+ &nbsp;
2131
+ // wrap with paragraph
2132
+ if (inlineSiblings.length) {
2133
+ const para = dom.wrap(lists.head(inlineSiblings), 'p');
2134
+ dom.appendChildNodes(para, lists.tail(inlineSiblings));
2135
+ }
2136
+ &nbsp;
2137
+ return this.normalize();
2138
+ }
2139
+ &nbsp;
2140
+ /**
2141
+ * insert node at current cursor
2142
+ *
2143
+ * @param {Node} node
2144
+ * @return {Node}
2145
+ */
2146
+ insertNode(node) {
2147
+ const rng = this.wrapBodyInlineWithPara().deleteContents();
2148
+ const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));
2149
+ &nbsp;
2150
+ if (info.rightNode) {
2151
+ info.rightNode.parentNode.insertBefore(node, info.rightNode);
2152
+ } else {
2153
+ info.container.appendChild(node);
2154
+ }
2155
+ &nbsp;
2156
+ return node;
2157
+ }
2158
+ &nbsp;
2159
+ /**
2160
+ * insert html at current cursor
2161
+ */
2162
+ pasteHTML(markup) {
2163
+ const contentsContainer = $('&lt;div&gt;&lt;/div&gt;').html(markup)[0];
2164
+ const childNodes = lists.from(contentsContainer.childNodes);
2165
+ &nbsp;
2166
+ const rng = this.wrapBodyInlineWithPara().deleteContents();
2167
+ &nbsp;
2168
+ return childNodes.reverse().map(function(childNode) {
2169
+ return rng.insertNode(childNode);
2170
+ }).reverse();
2171
+ }
2172
+ &nbsp;
2173
+ /**
2174
+ * returns text in range
2175
+ *
2176
+ * @return {String}
2177
+ */
2178
+ toString() {
2179
+ const nativeRng = this.nativeRange();
2180
+ return env.isW3CRangeSupport ? nativeRng.toString() : <span class="branch-1 cbranch-no" title="branch not covered" >nativeRng.text;</span>
2181
+ }
2182
+ &nbsp;
2183
+ /**
2184
+ * returns range for word before cursor
2185
+ *
2186
+ * @param {Boolean} [findAfter] - find after cursor, default: false
2187
+ * @return {WrappedRange}
2188
+ */
2189
+ getWordRange(findAfter) {
2190
+ let endPoint = this.getEndPoint();
2191
+ &nbsp;
2192
+ if (!dom.isCharPoint(endPoint)) {
2193
+ return this;
2194
+ }
2195
+ &nbsp;
2196
+ const startPoint = dom.prevPointUntil(endPoint, function(point) {
2197
+ return !dom.isCharPoint(point);
2198
+ });
2199
+ &nbsp;
2200
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (findAfter) {
2201
+ <span class="cstat-no" title="statement not covered" > endPoint = dom.nextPointUntil(endPoint, <span class="fstat-no" title="function not covered" >function(point)</span> {</span>
2202
+ <span class="cstat-no" title="statement not covered" > return !dom.isCharPoint(point);</span>
2203
+ });
2204
+ }
2205
+ &nbsp;
2206
+ return new WrappedRange(
2207
+ startPoint.node,
2208
+ startPoint.offset,
2209
+ endPoint.node,
2210
+ endPoint.offset
2211
+ );
2212
+ }
2213
+ &nbsp;
2214
+ /**
2215
+ * create offsetPath bookmark
2216
+ *
2217
+ * @param {Node} editable
2218
+ */
2219
+ bookmark(editable) {
2220
+ return {
2221
+ s: {
2222
+ path: dom.makeOffsetPath(editable, this.sc),
2223
+ offset: this.so
2224
+ },
2225
+ e: {
2226
+ path: dom.makeOffsetPath(editable, this.ec),
2227
+ offset: this.eo
2228
+ }
2229
+ };
2230
+ }
2231
+ &nbsp;
2232
+ /**
2233
+ * create offsetPath bookmark base on paragraph
2234
+ *
2235
+ * @param {Node[]} paras
2236
+ */
2237
+ paraBookmark(paras) {
2238
+ return {
2239
+ s: {
2240
+ path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),
2241
+ offset: this.so
2242
+ },
2243
+ e: {
2244
+ path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),
2245
+ offset: this.eo
2246
+ }
2247
+ };
2248
+ }
2249
+ &nbsp;
2250
+ /**
2251
+ * getClientRects
2252
+ * @return {Rect[]}
2253
+ */
2254
+ <span class="fstat-no" title="function not covered" > getClientRects() {</span>
2255
+ <span class="cstat-no" title="statement not covered" > const nativeRng = this.nativeRange();</span>
2256
+ <span class="cstat-no" title="statement not covered" > return nativeRng.getClientRects();</span>
2257
+ }
2258
+ }
2259
+ &nbsp;
2260
+ /**
2261
+ * Data structure
2262
+ * * BoundaryPoint: a point of dom tree
2263
+ * * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range
2264
+ *
2265
+ * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position
2266
+ */
2267
+ export default {
2268
+ /**
2269
+ * create Range Object From arguments or Browser Selection
2270
+ *
2271
+ * @param {Node} sc - start container
2272
+ * @param {Number} so - start offset
2273
+ * @param {Node} ec - end container
2274
+ * @param {Number} eo - end offset
2275
+ * @return {WrappedRange}
2276
+ */
2277
+ create: function(sc, so, ec, eo) {
2278
+ if (arguments.length === 4) {
2279
+ return new WrappedRange(sc, so, ec, eo);
2280
+ } else if (arguments.length === 2) { // collapsed
2281
+ ec = sc;
2282
+ eo = so;
2283
+ return new WrappedRange(sc, so, ec, eo);
2284
+ } else {
2285
+ let wrappedRange = this.createFromSelection();
2286
+ if (!wrappedRange &amp;&amp; arguments.length === 1) {
2287
+ wrappedRange = this.createFromNode(arguments[0]);
2288
+ return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);
2289
+ }
2290
+ return wrappedRange;
2291
+ }
2292
+ },
2293
+ &nbsp;
2294
+ createFromSelection: function() {
2295
+ let sc, so, ec, eo;
2296
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (env.isW3CRangeSupport) {
2297
+ const selection = document.getSelection();
2298
+ if (!selection || selection.rangeCount === 0) {
2299
+ return null;
2300
+ } else if (dom.isBody(selection.anchorNode)) {
2301
+ // Firefox: returns entire body as range on initialization.
2302
+ // We won't never need it.
2303
+ return null;
2304
+ }
2305
+ &nbsp;
2306
+ const nativeRng = selection.getRangeAt(0);
2307
+ sc = nativeRng.startContainer;
2308
+ so = nativeRng.startOffset;
2309
+ ec = nativeRng.endContainer;
2310
+ eo = nativeRng.endOffset;
2311
+ } else { // IE8: TextRange
2312
+ <span class="cstat-no" title="statement not covered" > const textRange = document.selection.createRange();</span>
2313
+ <span class="cstat-no" title="statement not covered" > const textRangeEnd = textRange.duplicate();</span>
2314
+ <span class="cstat-no" title="statement not covered" > textRangeEnd.collapse(false);</span>
2315
+ <span class="cstat-no" title="statement not covered" > const textRangeStart = textRange;</span>
2316
+ <span class="cstat-no" title="statement not covered" > textRangeStart.collapse(true);</span>
2317
+ &nbsp;
2318
+ <span class="cstat-no" title="statement not covered" > let startPoint = textRangeToPoint(textRangeStart, true);</span>
2319
+ <span class="cstat-no" title="statement not covered" > let endPoint = textRangeToPoint(textRangeEnd, false);</span>
2320
+ &nbsp;
2321
+ // same visible point case: range was collapsed.
2322
+ <span class="cstat-no" title="statement not covered" > if (dom.isText(startPoint.node) &amp;&amp; dom.isLeftEdgePoint(startPoint) &amp;&amp;</span>
2323
+ dom.isTextNode(endPoint.node) &amp;&amp; dom.isRightEdgePoint(endPoint) &amp;&amp;
2324
+ endPoint.node.nextSibling === startPoint.node) {
2325
+ <span class="cstat-no" title="statement not covered" > startPoint = endPoint;</span>
2326
+ }
2327
+ &nbsp;
2328
+ <span class="cstat-no" title="statement not covered" > sc = startPoint.cont;</span>
2329
+ <span class="cstat-no" title="statement not covered" > so = startPoint.offset;</span>
2330
+ <span class="cstat-no" title="statement not covered" > ec = endPoint.cont;</span>
2331
+ <span class="cstat-no" title="statement not covered" > eo = endPoint.offset;</span>
2332
+ }
2333
+ &nbsp;
2334
+ return new WrappedRange(sc, so, ec, eo);
2335
+ },
2336
+ &nbsp;
2337
+ /**
2338
+ * @method
2339
+ *
2340
+ * create WrappedRange from node
2341
+ *
2342
+ * @param {Node} node
2343
+ * @return {WrappedRange}
2344
+ */
2345
+ createFromNode: function(node) {
2346
+ let sc = node;
2347
+ let so = 0;
2348
+ let ec = node;
2349
+ let eo = dom.nodeLength(ec);
2350
+ &nbsp;
2351
+ // browsers can't target a picture or void node
2352
+ if (dom.isVoid(sc)) {
2353
+ so = dom.listPrev(sc).length - 1;
2354
+ sc = sc.parentNode;
2355
+ }
2356
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (dom.isBR(ec)) {
2357
+ <span class="cstat-no" title="statement not covered" > eo = dom.listPrev(ec).length - 1;</span>
2358
+ <span class="cstat-no" title="statement not covered" > ec = ec.parentNode;</span>
2359
+ } else if (dom.isVoid(ec)) {
2360
+ eo = dom.listPrev(ec).length;
2361
+ ec = ec.parentNode;
2362
+ }
2363
+ &nbsp;
2364
+ return this.create(sc, so, ec, eo);
2365
+ },
2366
+ &nbsp;
2367
+ /**
2368
+ * create WrappedRange from node after position
2369
+ *
2370
+ * @param {Node} node
2371
+ * @return {WrappedRange}
2372
+ */
2373
+ createFromNodeBefore: function(node) {
2374
+ return this.createFromNode(node).collapse(true);
2375
+ },
2376
+ &nbsp;
2377
+ /**
2378
+ * create WrappedRange from node after position
2379
+ *
2380
+ * @param {Node} node
2381
+ * @return {WrappedRange}
2382
+ */
2383
+ createFromNodeAfter: function(node) {
2384
+ return this.createFromNode(node).collapse();
2385
+ },
2386
+ &nbsp;
2387
+ /**
2388
+ * @method
2389
+ *
2390
+ * create WrappedRange from bookmark
2391
+ *
2392
+ * @param {Node} editable
2393
+ * @param {Object} bookmark
2394
+ * @return {WrappedRange}
2395
+ */
2396
+ createFromBookmark: function(editable, bookmark) {
2397
+ const sc = dom.fromOffsetPath(editable, bookmark.s.path);
2398
+ const so = bookmark.s.offset;
2399
+ const ec = dom.fromOffsetPath(editable, bookmark.e.path);
2400
+ const eo = bookmark.e.offset;
2401
+ return new WrappedRange(sc, so, ec, eo);
2402
+ },
2403
+ &nbsp;
2404
+ /**
2405
+ * @method
2406
+ *
2407
+ * create WrappedRange from paraBookmark
2408
+ *
2409
+ * @param {Object} bookmark
2410
+ * @param {Node[]} paras
2411
+ * @return {WrappedRange}
2412
+ */
2413
+ createFromParaBookmark: function(bookmark, paras) {
2414
+ const so = bookmark.s.offset;
2415
+ const eo = bookmark.e.offset;
2416
+ const sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);
2417
+ const ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);
2418
+ &nbsp;
2419
+ return new WrappedRange(sc, so, ec, eo);
2420
+ }
2421
+ };
2422
+ &nbsp;</pre></td></tr>
2423
+ </table></pre>
2424
+ <div class='push'></div><!-- for sticky footer -->
2425
+ </div><!-- /wrapper -->
2426
+ <div class='footer quiet pad2 space-top1 center small'>
2427
+ Code coverage
2428
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Feb 20 2018 09:36:40 GMT+0900 (KST)
2429
+ </div>
2430
+ </div>
2431
+ <script src="../../../../prettify.js"></script>
2432
+ <script>
2433
+ window.onload = function () {
2434
+ if (typeof prettyPrint === 'function') {
2435
+ prettyPrint();
2436
+ }
2437
+ };
2438
+ </script>
2439
+ <script src="../../../../sorter.js"></script>
2440
+ </body>
2441
+ </html>