kokopu-react 1.11.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/.eslintrc.yml +83 -0
  2. package/.nycrc.yml +0 -1
  3. package/CHANGELOG.md +178 -0
  4. package/CREDITS.md +18 -0
  5. package/README.md +1 -1
  6. package/{src/css/chessboard.css → dist/lib/chessboard/Chessboard.css} +2 -2
  7. package/dist/lib/chessboard/Chessboard.d.ts +171 -0
  8. package/dist/lib/chessboard/Chessboard.js +366 -0
  9. package/dist/lib/chessboard/Chessboard.js.map +1 -0
  10. package/dist/lib/chessboard/ChessboardImpl.d.ts +119 -0
  11. package/dist/lib/chessboard/ChessboardImpl.js +471 -0
  12. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -0
  13. package/dist/lib/chessboard/Draggable.d.ts +62 -0
  14. package/dist/lib/chessboard/Draggable.js +157 -0
  15. package/dist/lib/chessboard/Draggable.js.map +1 -0
  16. package/dist/lib/chessboard/Motion.d.ts +28 -0
  17. package/dist/lib/chessboard/Motion.js +74 -0
  18. package/dist/lib/chessboard/Motion.js.map +1 -0
  19. package/dist/lib/chessboard/colorsets.d.ts +5 -0
  20. package/dist/lib/{impl → chessboard}/colorsets.js +43 -47
  21. package/dist/lib/chessboard/colorsets.js.map +1 -0
  22. package/dist/lib/chessboard/piecesets.d.ts +5 -0
  23. package/dist/lib/chessboard/piecesets.js +214 -0
  24. package/dist/lib/chessboard/piecesets.js.map +1 -0
  25. package/dist/lib/{css/error_box.css → errorbox/ErrorBox.css} +2 -2
  26. package/dist/lib/errorbox/ErrorBox.d.ts +28 -0
  27. package/dist/lib/errorbox/ErrorBox.js +84 -0
  28. package/dist/lib/errorbox/ErrorBox.js.map +1 -0
  29. package/dist/lib/exception.d.ts +18 -0
  30. package/dist/lib/exception.js +40 -0
  31. package/dist/lib/exception.js.map +1 -0
  32. package/dist/lib/i18n.d.ts +18 -0
  33. package/dist/lib/i18n.js +20 -33
  34. package/dist/lib/i18n.js.map +1 -0
  35. package/{src/css/symbol.css → dist/lib/icons/AnnotationSymbolShape.css} +2 -2
  36. package/dist/lib/icons/AnnotationSymbolShape.d.ts +30 -0
  37. package/dist/lib/{impl/ArrowTip.js → icons/AnnotationSymbolShape.js} +21 -35
  38. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -0
  39. package/dist/lib/icons/ArrowMarkerIcon.d.ts +20 -0
  40. package/dist/lib/icons/ArrowMarkerIcon.js +54 -0
  41. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -0
  42. package/dist/lib/icons/ArrowTip.d.ts +16 -0
  43. package/dist/lib/icons/ArrowTip.js +29 -0
  44. package/dist/lib/icons/ArrowTip.js.map +1 -0
  45. package/dist/lib/icons/SquareMarkerIcon.d.ts +18 -0
  46. package/{src/i18n.js → dist/lib/icons/SquareMarkerIcon.js} +24 -23
  47. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -0
  48. package/dist/lib/icons/TextMarkerIcon.d.ts +23 -0
  49. package/dist/lib/icons/TextMarkerIcon.js +45 -0
  50. package/dist/lib/icons/TextMarkerIcon.js.map +1 -0
  51. package/{src/css → dist/lib/icons}/arrow.css +2 -2
  52. package/dist/lib/index.d.ts +10 -0
  53. package/dist/lib/index.js +31 -105
  54. package/dist/lib/index.js.map +1 -0
  55. package/dist/lib/{css/movetext.css → movetext/Movetext.css} +2 -2
  56. package/dist/lib/movetext/Movetext.d.ts +136 -0
  57. package/dist/lib/movetext/Movetext.js +168 -0
  58. package/dist/lib/movetext/Movetext.js.map +1 -0
  59. package/dist/lib/movetext/MovetextImpl.d.ts +85 -0
  60. package/dist/lib/movetext/MovetextImpl.js +411 -0
  61. package/dist/lib/movetext/MovetextImpl.js.map +1 -0
  62. package/dist/lib/{css → movetext}/fonts.css +4 -4
  63. package/dist/lib/movetext/htmlFilter.d.ts +7 -0
  64. package/dist/lib/movetext/htmlFilter.js +169 -0
  65. package/dist/lib/movetext/htmlFilter.js.map +1 -0
  66. package/dist/lib/movetext/moveFormatter.d.ts +20 -0
  67. package/dist/lib/movetext/moveFormatter.js +93 -0
  68. package/dist/lib/movetext/moveFormatter.js.map +1 -0
  69. package/dist/lib/sanitization.d.ts +6 -0
  70. package/dist/lib/sanitization.js +39 -0
  71. package/dist/lib/sanitization.js.map +1 -0
  72. package/dist/lib/types.d.ts +151 -0
  73. package/dist/lib/types.js +162 -0
  74. package/dist/lib/types.js.map +1 -0
  75. package/dist/lib/util.d.ts +2 -0
  76. package/dist/lib/util.js +36 -0
  77. package/dist/lib/util.js.map +1 -0
  78. package/doc_src/demo/{PageChessboardBase.js → PageChessboardBase.tsx} +30 -24
  79. package/doc_src/demo/{PageChessboardInteraction.js → PageChessboardInteraction.tsx} +95 -66
  80. package/doc_src/demo/{PageChessboardMove.js → PageChessboardMove.tsx} +66 -54
  81. package/doc_src/demo/{PageChessboardSmallScreens.js → PageChessboardSmallScreens.tsx} +23 -14
  82. package/doc_src/demo/{PageMovetextBase.js → PageMovetextBase.tsx} +62 -49
  83. package/doc_src/demo/{PageMovetextInteraction.js → PageMovetextInteraction.tsx} +58 -43
  84. package/doc_src/demo/decs.d.ts +31 -0
  85. package/doc_src/demo/demo.css +2 -2
  86. package/doc_src/demo/{util.js → util.ts} +3 -3
  87. package/doc_src/migrate_to_2.md +26 -0
  88. package/doc_src/theming/LogoRenderer.js +5 -5
  89. package/doc_src/theming/theming.css +8 -2
  90. package/package.json +45 -32
  91. package/scripts/doc.styleguide.config.js +192 -0
  92. package/scripts/doc.tsconfig.json +7 -0
  93. package/scripts/docker-compose.yml +1 -1
  94. package/scripts/test-graphic.tsconfig.json +7 -0
  95. package/scripts/test-graphic.webpack.config.js +33 -17
  96. package/scripts/test-headless.webpack.config.js +6 -10
  97. package/{dist/lib/css/chessboard.css → src/chessboard/Chessboard.css} +2 -2
  98. package/src/chessboard/Chessboard.tsx +575 -0
  99. package/src/chessboard/ChessboardImpl.tsx +632 -0
  100. package/src/chessboard/Draggable.tsx +252 -0
  101. package/src/{impl/Motion.js → chessboard/Motion.tsx} +37 -27
  102. package/src/chessboard/colorsets.ts +134 -0
  103. package/src/chessboard/piecesets.ts +229 -0
  104. package/src/decs.d.ts +26 -0
  105. package/src/{css/error_box.css → errorbox/ErrorBox.css} +2 -2
  106. package/src/errorbox/ErrorBox.tsx +129 -0
  107. package/src/exception.ts +51 -0
  108. package/src/i18n.ts +43 -0
  109. package/{dist/lib/css/symbol.css → src/icons/AnnotationSymbolShape.css} +2 -2
  110. package/src/{impl/TextSymbol.js → icons/AnnotationSymbolShape.tsx} +32 -30
  111. package/src/{ArrowMarkerIcon.js → icons/ArrowMarkerIcon.tsx} +39 -36
  112. package/src/{impl/ArrowTip.js → icons/ArrowTip.tsx} +20 -20
  113. package/src/{SquareMarkerIcon.js → icons/SquareMarkerIcon.tsx} +35 -28
  114. package/src/{TextMarkerIcon.js → icons/TextMarkerIcon.tsx} +40 -32
  115. package/{dist/lib/css → src/icons}/arrow.css +2 -2
  116. package/src/index.ts +38 -0
  117. package/src/{css/movetext.css → movetext/Movetext.css} +2 -2
  118. package/src/movetext/Movetext.tsx +278 -0
  119. package/src/movetext/MovetextImpl.tsx +493 -0
  120. package/src/{css → movetext}/fonts.css +4 -4
  121. package/src/movetext/htmlFilter.tsx +188 -0
  122. package/src/{formatmove.js → movetext/moveFormatter.tsx} +39 -26
  123. package/src/sanitization.ts +51 -0
  124. package/src/types.ts +311 -0
  125. package/src/util.ts +39 -0
  126. package/test/.eslintrc.yml +3 -3
  127. package/test/{1_markers.js → 01_types.js} +89 -4
  128. package/test/{2_chessboard_util.js → 02_chessboard_util.js} +16 -7
  129. package/test/{3_marker_icons_graphic.js → 03_error_box_graphic.js} +20 -14
  130. package/test/04_marker_icons_graphic.js +49 -0
  131. package/test/05_chessboard_graphic.js +92 -0
  132. package/test/06_chessboard_animation.js +71 -0
  133. package/test/07_chessboard_interaction.js +130 -0
  134. package/test/08_chessboard_play_moves.js +98 -0
  135. package/test/{7_movetext_graphic.js → 09_movetext_graphic.js} +32 -16
  136. package/test/{8_movetext_interaction.js → 10_movetext_interaction.js} +18 -23
  137. package/test/common/graphic.js +67 -33
  138. package/test/graphic_references/03_error_box_graphic/base/cut_beginning_of_text.png +0 -0
  139. package/test/graphic_references/03_error_box_graphic/base/cut_end_of_text.png +0 -0
  140. package/test/graphic_references/03_error_box_graphic/base/cut_on_line_breaks.png +0 -0
  141. package/test/graphic_references/03_error_box_graphic/base/error_index_not_integer.png +0 -0
  142. package/test/graphic_references/03_error_box_graphic/base/full.png +0 -0
  143. package/test/graphic_references/03_error_box_graphic/base/minimal.png +0 -0
  144. package/test/graphic_references/03_error_box_graphic/base/missing_error_index.png +0 -0
  145. package/test/graphic_references/03_error_box_graphic/base/missing_error_text.png +0 -0
  146. package/test/graphic_references/03_error_box_graphic/base/negative_error_index.png +0 -0
  147. package/test/graphic_references/03_error_box_graphic/base/single_character_text.png +0 -0
  148. package/test/graphic_references/03_error_box_graphic/base/too_large_error_index.png +0 -0
  149. package/test/graphic_references/03_error_box_graphic/localization/default.png +0 -0
  150. package/test/graphic_references/04_marker_icons_graphic/base/colorized_arrow.png +0 -0
  151. package/test/graphic_references/04_marker_icons_graphic/base/colorized_symbol.png +0 -0
  152. package/test/graphic_references/04_marker_icons_graphic/base/colorized_text.png +0 -0
  153. package/test/graphic_references/04_marker_icons_graphic/base/default_arrow.png +0 -0
  154. package/test/graphic_references/04_marker_icons_graphic/base/default_text.png +0 -0
  155. package/test/graphic_references/04_marker_icons_graphic/base/invalid_arrow_size.png +0 -0
  156. package/test/graphic_references/04_marker_icons_graphic/base/invalid_square_size.png +0 -0
  157. package/test/graphic_references/04_marker_icons_graphic/base/invalid_symbol.png +0 -0
  158. package/test/graphic_references/04_marker_icons_graphic/base/invalid_text_size.png +0 -0
  159. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_arrow.png +0 -0
  160. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_symbol.png +0 -0
  161. package/test/graphic_references/04_marker_icons_graphic/base/wrapped_text.png +0 -0
  162. package/test/graphic_references/05_chessboard_graphic/base/wrong_position_type.png +0 -0
  163. package/test/graphic_references/05_chessboard_graphic/chess_variants/chess960.png +0 -0
  164. package/test/graphic_references/05_chessboard_graphic/chess_variants/chess960_with_move.png +0 -0
  165. package/test/graphic_references/05_chessboard_graphic/chess_variants/invalid_variant.png +0 -0
  166. package/test/graphic_references/05_chessboard_graphic/chess_variants/invalid_variant_with_fen.png +0 -0
  167. package/test/graphic_references/05_chessboard_graphic/chess_variants/special_code.png +0 -0
  168. package/test/graphic_references/05_chessboard_graphic/chess_variants/variant_with_std_initial_position.png +0 -0
  169. package/test/graphic_references/05_chessboard_graphic/flipped/parsing_error.png +0 -0
  170. package/test/graphic_references/05_chessboard_graphic/move/wrong_move_arrow_color_type.png +0 -0
  171. package/test/graphic_references/05_chessboard_graphic/move/wrong_move_type.png +0 -0
  172. package/test/graphic_references/05_chessboard_graphic/theme/wrong_colorset.png +0 -0
  173. package/test/graphic_references/05_chessboard_graphic/theme/wrong_pieceset.png +0 -0
  174. package/test/graphic_references/05_chessboard_graphic/theme/wrong_square_size_type.png +0 -0
  175. package/test/graphic_references/06_chessboard_animation/on_redraw/final_state.png +0 -0
  176. package/test/graphic_references/06_chessboard_animation/on_redraw/initial_state.png +0 -0
  177. package/test/graphic_references/07_chessboard_interaction/error/edit_color_not_set.png +0 -0
  178. package/test/graphic_references/07_chessboard_interaction/error/wrong_interaction_mode.png +0 -0
  179. package/test/graphic_references/09_movetext_graphic/error/wrong_game_index_type.png +0 -0
  180. package/test/graphic_references/09_movetext_graphic/error/wrong_game_type.png +0 -0
  181. package/test/graphic_references/09_movetext_graphic/options/wrong_diagram_options_1.png +0 -0
  182. package/test/graphic_references/09_movetext_graphic/options/wrong_diagram_options_2.png +0 -0
  183. package/test/graphic_references/10_movetext_interaction/error/wrong_interaction_mode.png +0 -0
  184. package/test/graphic_test_app/.eslintrc.yml +3 -0
  185. package/test/graphic_test_app/03_error_box_graphic/base.tsx +46 -0
  186. package/{scripts/clean-graphic-output.js → test/graphic_test_app/03_error_box_graphic/localization.tsx} +10 -7
  187. package/{graphic_test_src/01_marker_icons.js → test/graphic_test_app/04_marker_icons_graphic/base.tsx} +15 -7
  188. package/{graphic_test_src/04_chessboard_annotations.js → test/graphic_test_app/05_chessboard_graphic/annotations.tsx} +23 -14
  189. package/{graphic_test_src/02_chessboard_simple.js → test/graphic_test_app/05_chessboard_graphic/base.tsx} +6 -6
  190. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +35 -0
  191. package/{graphic_test_src/03_chessboard_flipped.js → test/graphic_test_app/05_chessboard_graphic/flipped.tsx} +5 -5
  192. package/{graphic_test_src/05_chessboard_move.js → test/graphic_test_app/05_chessboard_graphic/move.tsx} +9 -8
  193. package/{graphic_test_src/07_chessboard_theme.js → test/graphic_test_app/05_chessboard_graphic/theme.tsx} +14 -11
  194. package/{graphic_test_src/06a_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_1.tsx} +5 -5
  195. package/{graphic_test_src/06b_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_2.tsx} +5 -5
  196. package/{graphic_test_src/06c_chessboard_animated_move.js → test/graphic_test_app/06_chessboard_animation/base_3.tsx} +5 -5
  197. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +49 -0
  198. package/{graphic_test_src/08_chessboard_click_squares.js → test/graphic_test_app/07_chessboard_interaction/click_squares.tsx} +7 -6
  199. package/{graphic_test_src/10_chessboard_edit_arrows.js → test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx} +7 -7
  200. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +30 -0
  201. package/{graphic_test_src/09_chessboard_move_pieces.js → test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx} +7 -6
  202. package/{graphic_test_src/11_chessboard_play_moves.js → test/graphic_test_app/08_chessboard_play_moves/base.tsx} +6 -6
  203. package/{graphic_test_src/12_chessboard_play_promotions.js → test/graphic_test_app/08_chessboard_play_moves/promotions.tsx} +6 -6
  204. package/{graphic_test_src/13_movetext_simple.js → test/graphic_test_app/09_movetext_graphic/base.tsx} +8 -8
  205. package/{graphic_test_src/14_movetext_error.js → test/graphic_test_app/09_movetext_graphic/error.tsx} +10 -9
  206. package/{graphic_test_src/15_movetext_html.js → test/graphic_test_app/09_movetext_graphic/html.tsx} +7 -7
  207. package/{graphic_test_src/16_movetext_options.js → test/graphic_test_app/09_movetext_graphic/options.tsx} +9 -6
  208. package/test/graphic_test_app/10_movetext_interaction/error.tsx +31 -0
  209. package/{graphic_test_src/17_movetext_interaction.js → test/graphic_test_app/10_movetext_interaction/select_moves.tsx} +7 -7
  210. package/test/graphic_test_app/common/decs.d.ts +26 -0
  211. package/{graphic_test_src → test/graphic_test_app}/common/games.pgn +1 -1
  212. package/{graphic_test_src → test/graphic_test_app}/common/test_app.css +11 -2
  213. package/{graphic_test_src/common/test_app.js → test/graphic_test_app/common/test_app.tsx} +62 -14
  214. package/tsconfig.json +15 -0
  215. package/.babelrc +0 -3
  216. package/dist/lib/ArrowMarkerIcon.js +0 -85
  217. package/dist/lib/Chessboard.js +0 -1276
  218. package/dist/lib/ErrorBox.js +0 -125
  219. package/dist/lib/Movetext.js +0 -805
  220. package/dist/lib/SquareMarkerIcon.js +0 -69
  221. package/dist/lib/TextMarkerIcon.js +0 -74
  222. package/dist/lib/formatmove.js +0 -107
  223. package/dist/lib/impl/DraggableHandle.js +0 -277
  224. package/dist/lib/impl/HtmlSanitizer.js +0 -145
  225. package/dist/lib/impl/Motion.js +0 -109
  226. package/dist/lib/impl/TextSymbol.js +0 -89
  227. package/dist/lib/impl/piecesets.js +0 -219
  228. package/dist/lib/impl/util.js +0 -71
  229. package/dist/lib/markers.js +0 -144
  230. package/doc_src/.eslintrc.yml +0 -2
  231. package/src/Chessboard.js +0 -1034
  232. package/src/ErrorBox.js +0 -132
  233. package/src/Movetext.js +0 -671
  234. package/src/impl/DraggableHandle.js +0 -235
  235. package/src/impl/HtmlSanitizer.js +0 -126
  236. package/src/impl/colorsets.js +0 -119
  237. package/src/impl/piecesets.js +0 -218
  238. package/src/impl/util.js +0 -68
  239. package/src/index.js +0 -31
  240. package/src/markers.js +0 -115
  241. package/test/4_chessboard_graphic.js +0 -49
  242. package/test/5_chessboard_interaction.js +0 -135
  243. package/test/6_chessboard_play_moves.js +0 -107
  244. package/test/references/01_marker_icons/10.png +0 -0
  245. package/test/references/01_marker_icons/3.png +0 -0
  246. package/test/references/01_marker_icons/4.png +0 -0
  247. package/test/references/01_marker_icons/5.png +0 -0
  248. package/test/references/01_marker_icons/6.png +0 -0
  249. package/test/references/01_marker_icons/7.png +0 -0
  250. package/test/references/01_marker_icons/8.png +0 -0
  251. package/test/references/01_marker_icons/9.png +0 -0
  252. package/test/references/02_chessboard_simple/5.png +0 -0
  253. package/test/references/05_chessboard_move/8.png +0 -0
  254. package/test/references/11_chessboard_play_moves/wrong_color.png +0 -0
  255. package/test/references/14_movetext_error/4.png +0 -0
  256. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bb.png +0 -0
  257. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bk.png +0 -0
  258. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bn.png +0 -0
  259. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bp.png +0 -0
  260. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bq.png +0 -0
  261. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-br.png +0 -0
  262. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-bx.png +0 -0
  263. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wb.png +0 -0
  264. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wk.png +0 -0
  265. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wn.png +0 -0
  266. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wp.png +0 -0
  267. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wq.png +0 -0
  268. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wr.png +0 -0
  269. /package/dist/lib/{sprites → chessboard/sprites}/cburnett-wx.png +0 -0
  270. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bb.png +0 -0
  271. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bk.png +0 -0
  272. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bn.png +0 -0
  273. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bp.png +0 -0
  274. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bq.png +0 -0
  275. /package/dist/lib/{sprites → chessboard/sprites}/celtic-br.png +0 -0
  276. /package/dist/lib/{sprites → chessboard/sprites}/celtic-bx.png +0 -0
  277. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wb.png +0 -0
  278. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wk.png +0 -0
  279. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wn.png +0 -0
  280. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wp.png +0 -0
  281. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wq.png +0 -0
  282. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wr.png +0 -0
  283. /package/dist/lib/{sprites → chessboard/sprites}/celtic-wx.png +0 -0
  284. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bb.png +0 -0
  285. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bk.png +0 -0
  286. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bn.png +0 -0
  287. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bp.png +0 -0
  288. /package/dist/lib/{sprites → chessboard/sprites}/eyes-bq.png +0 -0
  289. /package/dist/lib/{sprites → chessboard/sprites}/eyes-br.png +0 -0
  290. /package/dist/lib/{sprites → chessboard/sprites}/eyes-spatial-bx.png +0 -0
  291. /package/dist/lib/{sprites → chessboard/sprites}/eyes-spatial-wx.png +0 -0
  292. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wb.png +0 -0
  293. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wk.png +0 -0
  294. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wn.png +0 -0
  295. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wp.png +0 -0
  296. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wq.png +0 -0
  297. /package/dist/lib/{sprites → chessboard/sprites}/eyes-wr.png +0 -0
  298. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bb.png +0 -0
  299. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bk.png +0 -0
  300. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bn.png +0 -0
  301. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bp.png +0 -0
  302. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bq.png +0 -0
  303. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-br.png +0 -0
  304. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-bx.png +0 -0
  305. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wb.png +0 -0
  306. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wk.png +0 -0
  307. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wn.png +0 -0
  308. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wp.png +0 -0
  309. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wq.png +0 -0
  310. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wr.png +0 -0
  311. /package/dist/lib/{sprites → chessboard/sprites}/fantasy-wx.png +0 -0
  312. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bb.png +0 -0
  313. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bk.png +0 -0
  314. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bn.png +0 -0
  315. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bp.png +0 -0
  316. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bq.png +0 -0
  317. /package/dist/lib/{sprites → chessboard/sprites}/skulls-br.png +0 -0
  318. /package/dist/lib/{sprites → chessboard/sprites}/skulls-bx.png +0 -0
  319. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wb.png +0 -0
  320. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wk.png +0 -0
  321. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wn.png +0 -0
  322. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wp.png +0 -0
  323. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wq.png +0 -0
  324. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wr.png +0 -0
  325. /package/dist/lib/{sprites → chessboard/sprites}/skulls-wx.png +0 -0
  326. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bb.png +0 -0
  327. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bk.png +0 -0
  328. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bn.png +0 -0
  329. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bp.png +0 -0
  330. /package/dist/lib/{sprites → chessboard/sprites}/spatial-bq.png +0 -0
  331. /package/dist/lib/{sprites → chessboard/sprites}/spatial-br.png +0 -0
  332. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wb.png +0 -0
  333. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wk.png +0 -0
  334. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wn.png +0 -0
  335. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wp.png +0 -0
  336. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wq.png +0 -0
  337. /package/dist/lib/{sprites → chessboard/sprites}/spatial-wr.png +0 -0
  338. /package/dist/lib/{fonts → movetext/fonts}/chessalpha.woff +0 -0
  339. /package/dist/lib/{fonts → movetext/fonts}/chessalpha.woff2 +0 -0
  340. /package/src/{sprites → chessboard/sprites}/cburnett-bb.png +0 -0
  341. /package/src/{sprites → chessboard/sprites}/cburnett-bk.png +0 -0
  342. /package/src/{sprites → chessboard/sprites}/cburnett-bn.png +0 -0
  343. /package/src/{sprites → chessboard/sprites}/cburnett-bp.png +0 -0
  344. /package/src/{sprites → chessboard/sprites}/cburnett-bq.png +0 -0
  345. /package/src/{sprites → chessboard/sprites}/cburnett-br.png +0 -0
  346. /package/src/{sprites → chessboard/sprites}/cburnett-bx.png +0 -0
  347. /package/src/{sprites → chessboard/sprites}/cburnett-wb.png +0 -0
  348. /package/src/{sprites → chessboard/sprites}/cburnett-wk.png +0 -0
  349. /package/src/{sprites → chessboard/sprites}/cburnett-wn.png +0 -0
  350. /package/src/{sprites → chessboard/sprites}/cburnett-wp.png +0 -0
  351. /package/src/{sprites → chessboard/sprites}/cburnett-wq.png +0 -0
  352. /package/src/{sprites → chessboard/sprites}/cburnett-wr.png +0 -0
  353. /package/src/{sprites → chessboard/sprites}/cburnett-wx.png +0 -0
  354. /package/src/{sprites → chessboard/sprites}/celtic-bb.png +0 -0
  355. /package/src/{sprites → chessboard/sprites}/celtic-bk.png +0 -0
  356. /package/src/{sprites → chessboard/sprites}/celtic-bn.png +0 -0
  357. /package/src/{sprites → chessboard/sprites}/celtic-bp.png +0 -0
  358. /package/src/{sprites → chessboard/sprites}/celtic-bq.png +0 -0
  359. /package/src/{sprites → chessboard/sprites}/celtic-br.png +0 -0
  360. /package/src/{sprites → chessboard/sprites}/celtic-bx.png +0 -0
  361. /package/src/{sprites → chessboard/sprites}/celtic-wb.png +0 -0
  362. /package/src/{sprites → chessboard/sprites}/celtic-wk.png +0 -0
  363. /package/src/{sprites → chessboard/sprites}/celtic-wn.png +0 -0
  364. /package/src/{sprites → chessboard/sprites}/celtic-wp.png +0 -0
  365. /package/src/{sprites → chessboard/sprites}/celtic-wq.png +0 -0
  366. /package/src/{sprites → chessboard/sprites}/celtic-wr.png +0 -0
  367. /package/src/{sprites → chessboard/sprites}/celtic-wx.png +0 -0
  368. /package/src/{sprites → chessboard/sprites}/eyes-bb.png +0 -0
  369. /package/src/{sprites → chessboard/sprites}/eyes-bk.png +0 -0
  370. /package/src/{sprites → chessboard/sprites}/eyes-bn.png +0 -0
  371. /package/src/{sprites → chessboard/sprites}/eyes-bp.png +0 -0
  372. /package/src/{sprites → chessboard/sprites}/eyes-bq.png +0 -0
  373. /package/src/{sprites → chessboard/sprites}/eyes-br.png +0 -0
  374. /package/src/{sprites → chessboard/sprites}/eyes-spatial-bx.png +0 -0
  375. /package/src/{sprites → chessboard/sprites}/eyes-spatial-wx.png +0 -0
  376. /package/src/{sprites → chessboard/sprites}/eyes-wb.png +0 -0
  377. /package/src/{sprites → chessboard/sprites}/eyes-wk.png +0 -0
  378. /package/src/{sprites → chessboard/sprites}/eyes-wn.png +0 -0
  379. /package/src/{sprites → chessboard/sprites}/eyes-wp.png +0 -0
  380. /package/src/{sprites → chessboard/sprites}/eyes-wq.png +0 -0
  381. /package/src/{sprites → chessboard/sprites}/eyes-wr.png +0 -0
  382. /package/src/{sprites → chessboard/sprites}/fantasy-bb.png +0 -0
  383. /package/src/{sprites → chessboard/sprites}/fantasy-bk.png +0 -0
  384. /package/src/{sprites → chessboard/sprites}/fantasy-bn.png +0 -0
  385. /package/src/{sprites → chessboard/sprites}/fantasy-bp.png +0 -0
  386. /package/src/{sprites → chessboard/sprites}/fantasy-bq.png +0 -0
  387. /package/src/{sprites → chessboard/sprites}/fantasy-br.png +0 -0
  388. /package/src/{sprites → chessboard/sprites}/fantasy-bx.png +0 -0
  389. /package/src/{sprites → chessboard/sprites}/fantasy-wb.png +0 -0
  390. /package/src/{sprites → chessboard/sprites}/fantasy-wk.png +0 -0
  391. /package/src/{sprites → chessboard/sprites}/fantasy-wn.png +0 -0
  392. /package/src/{sprites → chessboard/sprites}/fantasy-wp.png +0 -0
  393. /package/src/{sprites → chessboard/sprites}/fantasy-wq.png +0 -0
  394. /package/src/{sprites → chessboard/sprites}/fantasy-wr.png +0 -0
  395. /package/src/{sprites → chessboard/sprites}/fantasy-wx.png +0 -0
  396. /package/src/{sprites → chessboard/sprites}/skulls-bb.png +0 -0
  397. /package/src/{sprites → chessboard/sprites}/skulls-bk.png +0 -0
  398. /package/src/{sprites → chessboard/sprites}/skulls-bn.png +0 -0
  399. /package/src/{sprites → chessboard/sprites}/skulls-bp.png +0 -0
  400. /package/src/{sprites → chessboard/sprites}/skulls-bq.png +0 -0
  401. /package/src/{sprites → chessboard/sprites}/skulls-br.png +0 -0
  402. /package/src/{sprites → chessboard/sprites}/skulls-bx.png +0 -0
  403. /package/src/{sprites → chessboard/sprites}/skulls-wb.png +0 -0
  404. /package/src/{sprites → chessboard/sprites}/skulls-wk.png +0 -0
  405. /package/src/{sprites → chessboard/sprites}/skulls-wn.png +0 -0
  406. /package/src/{sprites → chessboard/sprites}/skulls-wp.png +0 -0
  407. /package/src/{sprites → chessboard/sprites}/skulls-wq.png +0 -0
  408. /package/src/{sprites → chessboard/sprites}/skulls-wr.png +0 -0
  409. /package/src/{sprites → chessboard/sprites}/skulls-wx.png +0 -0
  410. /package/src/{sprites → chessboard/sprites}/spatial-bb.png +0 -0
  411. /package/src/{sprites → chessboard/sprites}/spatial-bk.png +0 -0
  412. /package/src/{sprites → chessboard/sprites}/spatial-bn.png +0 -0
  413. /package/src/{sprites → chessboard/sprites}/spatial-bp.png +0 -0
  414. /package/src/{sprites → chessboard/sprites}/spatial-bq.png +0 -0
  415. /package/src/{sprites → chessboard/sprites}/spatial-br.png +0 -0
  416. /package/src/{sprites → chessboard/sprites}/spatial-wb.png +0 -0
  417. /package/src/{sprites → chessboard/sprites}/spatial-wk.png +0 -0
  418. /package/src/{sprites → chessboard/sprites}/spatial-wn.png +0 -0
  419. /package/src/{sprites → chessboard/sprites}/spatial-wp.png +0 -0
  420. /package/src/{sprites → chessboard/sprites}/spatial-wq.png +0 -0
  421. /package/src/{sprites → chessboard/sprites}/spatial-wr.png +0 -0
  422. /package/src/{fonts → movetext/fonts}/chessalpha.woff +0 -0
  423. /package/src/{fonts → movetext/fonts}/chessalpha.woff2 +0 -0
  424. /package/test/{references/01_marker_icons/1.png → graphic_references/04_marker_icons_graphic/base/colorized_square.png} +0 -0
  425. /package/test/{references/01_marker_icons/0.png → graphic_references/04_marker_icons_graphic/base/default_square.png} +0 -0
  426. /package/test/{references/01_marker_icons/2.png → graphic_references/04_marker_icons_graphic/base/wrapped_square.png} +0 -0
  427. /package/test/{references/04_chessboard_annotations/4.png → graphic_references/05_chessboard_graphic/annotations/overlap.png} +0 -0
  428. /package/test/{references/04_chessboard_annotations/5.png → graphic_references/05_chessboard_graphic/annotations/overlap_and_flip.png} +0 -0
  429. /package/test/{references/04_chessboard_annotations/0.png → graphic_references/05_chessboard_graphic/annotations/with_coordinates.png} +0 -0
  430. /package/test/{references/04_chessboard_annotations/1.png → graphic_references/05_chessboard_graphic/annotations/with_coordinates_and_flip.png} +0 -0
  431. /package/test/{references/04_chessboard_annotations/2.png → graphic_references/05_chessboard_graphic/annotations/without_coordinates.png} +0 -0
  432. /package/test/{references/04_chessboard_annotations/3.png → graphic_references/05_chessboard_graphic/annotations/without_coordinates_and_flip.png} +0 -0
  433. /package/test/{references/02_chessboard_simple/0.png → graphic_references/05_chessboard_graphic/base/default.png} +0 -0
  434. /package/test/{references/02_chessboard_simple/1.png → graphic_references/05_chessboard_graphic/base/empty.png} +0 -0
  435. /package/test/{references/02_chessboard_simple/3.png → graphic_references/05_chessboard_graphic/base/from_fen.png} +0 -0
  436. /package/test/{references/02_chessboard_simple/4.png → graphic_references/05_chessboard_graphic/base/from_kokopu_object.png} +0 -0
  437. /package/test/{references/02_chessboard_simple/2.png → graphic_references/05_chessboard_graphic/base/parsing_error.png} +0 -0
  438. /package/test/{references/03_chessboard_flipped/2.png → graphic_references/05_chessboard_graphic/chess_variants/variant_without_std_initial_position.png} +0 -0
  439. /package/test/{references/03_chessboard_flipped/0.png → graphic_references/05_chessboard_graphic/flipped/default.png} +0 -0
  440. /package/test/{references/03_chessboard_flipped/1.png → graphic_references/05_chessboard_graphic/flipped/empty.png} +0 -0
  441. /package/test/{references/03_chessboard_flipped/3.png → graphic_references/05_chessboard_graphic/flipped/from_fen.png} +0 -0
  442. /package/test/{references/03_chessboard_flipped/4.png → graphic_references/05_chessboard_graphic/flipped/from_kokopu_object.png} +0 -0
  443. /package/test/{references/05_chessboard_move/4.png → graphic_references/05_chessboard_graphic/move/capture.png} +0 -0
  444. /package/test/{references/05_chessboard_move/5.png → graphic_references/05_chessboard_graphic/move/castling_move.png} +0 -0
  445. /package/test/{references/05_chessboard_move/0.png → graphic_references/05_chessboard_graphic/move/default.png} +0 -0
  446. /package/test/{references/05_chessboard_move/6.png → graphic_references/05_chessboard_graphic/move/en-passant.png} +0 -0
  447. /package/test/{references/05_chessboard_move/1.png → graphic_references/05_chessboard_graphic/move/no_move_arrow.png} +0 -0
  448. /package/test/{references/05_chessboard_move/2.png → graphic_references/05_chessboard_graphic/move/parsing_error.png} +0 -0
  449. /package/test/{references/05_chessboard_move/7.png → graphic_references/05_chessboard_graphic/move/promotion.png} +0 -0
  450. /package/test/{references/05_chessboard_move/3.png → graphic_references/05_chessboard_graphic/move/with_forced_move_arrow_and_flip.png} +0 -0
  451. /package/test/{references/07_chessboard_theme/3.png → graphic_references/05_chessboard_graphic/theme/custom_1.png} +0 -0
  452. /package/test/{references/07_chessboard_theme/4.png → graphic_references/05_chessboard_graphic/theme/custom_2.png} +0 -0
  453. /package/test/{references/07_chessboard_theme/5.png → graphic_references/05_chessboard_graphic/theme/custom_3.png} +0 -0
  454. /package/test/{references/07_chessboard_theme/6.png → graphic_references/05_chessboard_graphic/theme/custom_4.png} +0 -0
  455. /package/test/{references/07_chessboard_theme/7.png → graphic_references/05_chessboard_graphic/theme/custom_5.png} +0 -0
  456. /package/test/{references/07_chessboard_theme/8.png → graphic_references/05_chessboard_graphic/theme/custom_6.png} +0 -0
  457. /package/test/{references/07_chessboard_theme/0.png → graphic_references/05_chessboard_graphic/theme/default.png} +0 -0
  458. /package/test/{references/07_chessboard_theme/1.png → graphic_references/05_chessboard_graphic/theme/large.png} +0 -0
  459. /package/test/{references/07_chessboard_theme/2.png → graphic_references/05_chessboard_graphic/theme/small.png} +0 -0
  460. /package/test/{references/06a_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_1/capture.png} +0 -0
  461. /package/test/{references/06a_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_1/castling_move.png} +0 -0
  462. /package/test/{references/06a_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_1/en-passant.png} +0 -0
  463. /package/test/{references/06a_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_1/move_1.png} +0 -0
  464. /package/test/{references/06a_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_1/move_2.png} +0 -0
  465. /package/test/{references/06a_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_1/promotion.png} +0 -0
  466. /package/test/{references/06b_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_2/capture.png} +0 -0
  467. /package/test/{references/06b_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_2/castling_move.png} +0 -0
  468. /package/test/{references/06b_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_2/en-passant.png} +0 -0
  469. /package/test/{references/06b_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_2/move_1.png} +0 -0
  470. /package/test/{references/06b_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_2/move_2.png} +0 -0
  471. /package/test/{references/06b_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_2/promotion.png} +0 -0
  472. /package/test/{references/06c_chessboard_animated_move/2.png → graphic_references/06_chessboard_animation/base_3/capture.png} +0 -0
  473. /package/test/{references/06c_chessboard_animated_move/3.png → graphic_references/06_chessboard_animation/base_3/castling_move.png} +0 -0
  474. /package/test/{references/06c_chessboard_animated_move/4.png → graphic_references/06_chessboard_animation/base_3/en-passant.png} +0 -0
  475. /package/test/{references/06c_chessboard_animated_move/0.png → graphic_references/06_chessboard_animation/base_3/move_1.png} +0 -0
  476. /package/test/{references/06c_chessboard_animated_move/1.png → graphic_references/06_chessboard_animation/base_3/move_2.png} +0 -0
  477. /package/test/{references/06c_chessboard_animated_move/5.png → graphic_references/06_chessboard_animation/base_3/promotion.png} +0 -0
  478. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/base_1.png +0 -0
  479. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/base_2.png +0 -0
  480. /package/test/{references/10_chessboard_edit_arrows/null_vector.png → graphic_references/07_chessboard_interaction/edit_arrows/from_==_to.png} +0 -0
  481. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/out_of_board.png +0 -0
  482. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/over_arrow_marker.png +0 -0
  483. /package/test/{references/10_chessboard_edit_arrows → graphic_references/07_chessboard_interaction/edit_arrows}/over_square_marker.png +0 -0
  484. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/after_move.png +0 -0
  485. /package/test/{references/09_chessboard_move_pieces/null_vector.png → graphic_references/07_chessboard_interaction/move_pieces/from_==_to.png} +0 -0
  486. /package/test/{references/09_chessboard_move_pieces/empty_square.png → graphic_references/07_chessboard_interaction/move_pieces/move_empty_square.png} +0 -0
  487. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/out_of_board.png +0 -0
  488. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_arrow_marker.png +0 -0
  489. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_empty.png +0 -0
  490. /package/test/{references/09_chessboard_move_pieces/over_non_empty_1.png → graphic_references/07_chessboard_interaction/move_pieces/over_non-empty_1.png} +0 -0
  491. /package/test/{references/09_chessboard_move_pieces/over_non_empty_2.png → graphic_references/07_chessboard_interaction/move_pieces/over_non-empty_2.png} +0 -0
  492. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_square_marker.png +0 -0
  493. /package/test/{references/09_chessboard_move_pieces → graphic_references/07_chessboard_interaction/move_pieces}/over_text_marker.png +0 -0
  494. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/castling_move.png +0 -0
  495. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_ambiguous_king_move.png +0 -0
  496. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_castling_move_1.png +0 -0
  497. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/chess960_castling_move_2.png +0 -0
  498. /package/test/{references/11_chessboard_play_moves/chess960_non_kxr_castling.png → graphic_references/08_chessboard_play_moves/base/chess960_non-kxr_castling.png} +0 -0
  499. /package/test/{references/11_chessboard_play_moves/null_vector.png → graphic_references/08_chessboard_play_moves/base/from_==_to.png} +0 -0
  500. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/illegal_move.png +0 -0
  501. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/illegal_position.png +0 -0
  502. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/out_of_board.png +0 -0
  503. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/regular_move_1.png +0 -0
  504. /package/test/{references/11_chessboard_play_moves → graphic_references/08_chessboard_play_moves/base}/regular_move_2.png +0 -0
  505. /package/test/{references/10_chessboard_edit_arrows/edit_color_not_set.png → graphic_references/08_chessboard_play_moves/base/wrong_color_moved.png} +0 -0
  506. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/antichess_promotion.png +0 -0
  507. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/cancel_promotion.png +0 -0
  508. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/regular_promotion_1.png +0 -0
  509. /package/test/{references/12_chessboard_play_promotions → graphic_references/08_chessboard_play_moves/promotions}/regular_promotion_2.png +0 -0
  510. /package/test/{references/13_movetext_simple/0.png → graphic_references/09_movetext_graphic/base/game_1.png} +0 -0
  511. /package/test/{references/13_movetext_simple/1.png → graphic_references/09_movetext_graphic/base/game_2.png} +0 -0
  512. /package/test/{references/13_movetext_simple/2.png → graphic_references/09_movetext_graphic/base/game_3.png} +0 -0
  513. /package/test/{references/13_movetext_simple/3.png → graphic_references/09_movetext_graphic/base/game_4.png} +0 -0
  514. /package/test/{references/14_movetext_error/2.png → graphic_references/09_movetext_graphic/error/pgn_parsing_error_1.png} +0 -0
  515. /package/test/{references/14_movetext_error/3.png → graphic_references/09_movetext_graphic/error/pgn_parsing_error_2.png} +0 -0
  516. /package/test/{references/14_movetext_error/0.png → graphic_references/09_movetext_graphic/error/wrong_game_index_1.png} +0 -0
  517. /package/test/{references/14_movetext_error/1.png → graphic_references/09_movetext_graphic/error/wrong_game_index_2.png} +0 -0
  518. /package/test/{references/15_movetext_html/2.png → graphic_references/09_movetext_graphic/html/filtered_tags_and_attributes.png} +0 -0
  519. /package/test/{references/15_movetext_html/1.png → graphic_references/09_movetext_graphic/html/html_in_comments.png} +0 -0
  520. /package/test/{references/15_movetext_html/0.png → graphic_references/09_movetext_graphic/html/html_in_headers.png} +0 -0
  521. /package/test/{references/16_movetext_options/1.png → graphic_references/09_movetext_graphic/options/custom_piece_symbols.png} +0 -0
  522. /package/test/{references/16_movetext_options/2.png → graphic_references/09_movetext_graphic/options/figurine_piece_symbols_and_diagram_options.png} +0 -0
  523. /package/test/{references/16_movetext_options/3.png → graphic_references/09_movetext_graphic/options/hidden_diagrams.png} +0 -0
  524. /package/test/{references/16_movetext_options/0.png → graphic_references/09_movetext_graphic/options/localized_piece_symbols.png} +0 -0
  525. /package/test/{references/17_movetext_interaction/0.png → graphic_references/10_movetext_interaction/select_moves/click_on_disabled.png} +0 -0
  526. /package/test/{references/17_movetext_interaction/1.png → graphic_references/10_movetext_interaction/select_moves/click_on_unselected.png} +0 -0
  527. /package/test/{references/17_movetext_interaction/2.png → graphic_references/10_movetext_interaction/select_moves/click_on_with_variations.png} +0 -0
  528. /package/{graphic_test_src → test/graphic_test_app}/common/dummy.pgn +0 -0
  529. /package/{graphic_test_src → test/graphic_test_app}/common/heartbeat.txt +0 -0
  530. /package/{graphic_test_src → test/graphic_test_app}/common/smiley.png +0 -0
@@ -1,805 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _kokopu = require("kokopu");
11
- var _HtmlSanitizer = _interopRequireDefault(require("./impl/HtmlSanitizer"));
12
- var _util = require("./impl/util");
13
- var _Chessboard = _interopRequireDefault(require("./Chessboard"));
14
- var _ErrorBox = _interopRequireDefault(require("./ErrorBox"));
15
- var _formatmove = require("./formatmove");
16
- var _i18n = _interopRequireDefault(require("./i18n"));
17
- require("./css/movetext.css");
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
22
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
24
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
28
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
29
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
30
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
32
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
33
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
34
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
35
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
36
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
38
- /**
39
- * Display a chess game, i.e. the headers (name of the players, event, etc.), the moves, and all the related annotations if any (comments, variations, NAGs...).
40
- */
41
- var Movetext = /*#__PURE__*/function (_React$Component) {
42
- _inherits(Movetext, _React$Component);
43
- var _super = _createSuper(Movetext);
44
- function Movetext(props) {
45
- var _this;
46
- _classCallCheck(this, Movetext);
47
- _this = _super.call(this, props);
48
- _this.focusFieldRef = /*#__PURE__*/_react["default"].createRef();
49
- return _this;
50
- }
51
- _createClass(Movetext, [{
52
- key: "render",
53
- value: function render() {
54
- var info = parseGame(this.props.game, this.props.gameIndex);
55
- if (info.error) {
56
- return /*#__PURE__*/_react["default"].createElement(_ErrorBox["default"], {
57
- title: _i18n["default"].INVALID_PGN_ERROR_TITLE,
58
- message: info.message,
59
- text: info.text,
60
- errorIndex: info.errorIndex,
61
- lineNumber: info.lineNumber
62
- });
63
- }
64
- return /*#__PURE__*/_react["default"].createElement("div", {
65
- className: "kokopu-movetext"
66
- }, this.renderHeaders(info.game), this.renderBody(info.game), this.renderFocusField(info.game));
67
- }
68
- }, {
69
- key: "renderHeaders",
70
- value: function renderHeaders(game) {
71
- if (!this.props.headerVisible) {
72
- return undefined;
73
- }
74
- var headers = [];
75
- headers.push(this.renderPlayerHeaders(game, 'w'));
76
- headers.push(this.renderPlayerHeaders(game, 'b'));
77
- headers.push(this.renderEventRoundHeaders(game));
78
- headers.push(this.renderDateSiteHeaders(game));
79
- headers.push(this.renderAnnotatorHeader(game));
80
- return headers.some(function (element) {
81
- return element !== undefined;
82
- }) ? /*#__PURE__*/_react["default"].createElement("div", {
83
- className: "kokopu-headers"
84
- }, headers) : undefined;
85
- }
86
-
87
- /**
88
- * Header containing the player-related information (name, rating, title) corresponding to the given color.
89
- */
90
- }, {
91
- key: "renderPlayerHeaders",
92
- value: function renderPlayerHeaders(game, color) {
93
- var playerName = game.playerName(color);
94
- if (playerName === undefined) {
95
- return undefined;
96
- }
97
- var title = game.playerTitle(color);
98
- var rating = game.playerElo(color);
99
- var classNames = ['kokopu-headerGroup-player', color === 'w' ? 'kokopu-headerGroup-whitePlayer' : 'kokopu-headerGroup-blackPlayer'];
100
- var colorTag = /*#__PURE__*/_react["default"].createElement("span", {
101
- className: "kokopu-colorTag"
102
- });
103
- var playerNameElement = /*#__PURE__*/_react["default"].createElement("span", {
104
- className: "kokopu-header-playerName"
105
- }, sanitizeHtml(playerName));
106
- var titleElement = title === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
107
- className: "kokopu-header-playerTitle"
108
- }, sanitizeHtml(title));
109
- var ratingElement = rating === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
110
- className: "kokopu-header-playerRating"
111
- }, rating);
112
- var separator = title === undefined || rating === undefined ? undefined : "\xA0"; // \u00a0 == &nbsp;
113
- var titleRatingGroup = title === undefined && rating === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
114
- className: "kokopu-headerGroup-titleRating"
115
- }, titleElement, separator, ratingElement);
116
- return /*#__PURE__*/_react["default"].createElement("div", {
117
- className: classNames.join(' '),
118
- key: 'player-' + color
119
- }, colorTag, playerNameElement, titleRatingGroup);
120
- }
121
-
122
- /**
123
- * Header containing the event-related information: event + round.
124
- */
125
- }, {
126
- key: "renderEventRoundHeaders",
127
- value: function renderEventRoundHeaders(game) {
128
- var evt = game.event();
129
- if (evt === undefined) {
130
- return undefined;
131
- }
132
- var fullRound = game.fullRound();
133
- var roundElement = fullRound === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
134
- className: "kokopu-header-round"
135
- }, fullRound);
136
- var evtElement = /*#__PURE__*/_react["default"].createElement("span", {
137
- className: "kokopu-header-event"
138
- }, sanitizeHtml(evt));
139
- return /*#__PURE__*/_react["default"].createElement("div", {
140
- className: "kokopu-headerGroup-eventRound",
141
- key: "event-round"
142
- }, evtElement, roundElement);
143
- }
144
-
145
- /**
146
- * Header containing the date/place information.
147
- */
148
- }, {
149
- key: "renderDateSiteHeaders",
150
- value: function renderDateSiteHeaders(game) {
151
- var date = game.date();
152
- var site = game.site();
153
- if (date === undefined && site === undefined) {
154
- return undefined;
155
- }
156
- var dateElement = date === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
157
- className: "kokopu-header-date"
158
- }, capitalizeFirstWord(game.dateAsString()));
159
- var siteElement = site === undefined ? undefined : /*#__PURE__*/_react["default"].createElement("span", {
160
- className: "kokopu-header-site"
161
- }, sanitizeHtml(site));
162
- var separator = date === undefined || site === undefined ? undefined : "\xA0\u2013\xA0"; // \u00a0 == &nbsp; \u2013 == &ndash;
163
- return /*#__PURE__*/_react["default"].createElement("div", {
164
- className: "kokopu-headerGroup-dateSite",
165
- key: "date-site"
166
- }, dateElement, separator, siteElement);
167
- }
168
-
169
- /**
170
- * Header containing the annotator information.
171
- */
172
- }, {
173
- key: "renderAnnotatorHeader",
174
- value: function renderAnnotatorHeader(game) {
175
- var annotator = game.annotator();
176
- if (annotator === undefined) {
177
- return undefined;
178
- }
179
- annotator = (0, _util.fillPlaceholder)(_i18n["default"].ANNOTATED_BY, annotator);
180
- return /*#__PURE__*/_react["default"].createElement("div", {
181
- className: "kokopu-header-annotator",
182
- key: "annotator"
183
- }, sanitizeHtml(annotator));
184
- }
185
- }, {
186
- key: "renderFocusField",
187
- value: function renderFocusField(game) {
188
- var _this2 = this;
189
- if (this.props.interactionMode !== 'selectMove') {
190
- return undefined;
191
- }
192
- return /*#__PURE__*/_react["default"].createElement("div", {
193
- className: "kokopu-focusFieldContainer"
194
- }, /*#__PURE__*/_react["default"].createElement("a", {
195
- className: "kokopu-focusField",
196
- href: "#",
197
- ref: this.focusFieldRef,
198
- onKeyDown: function onKeyDown(evt) {
199
- return _this2.handleKeyDownInFocusField(evt, game);
200
- }
201
- }));
202
- }
203
- }, {
204
- key: "renderBody",
205
- value: function renderBody(game) {
206
- var notationTextBuilder = (0, _formatmove.moveFormatter)(this.props.pieceSymbols);
207
- return this.renderVariation(notationTextBuilder, game.mainVariation(), 'main-variation', true, game.result());
208
- }
209
-
210
- /**
211
- * Render the given variation and its sub-variations, recursively.
212
- */
213
- }, {
214
- key: "renderVariation",
215
- value: function renderVariation(notationTextBuilder, variation, variationKey, isMainVariation, gameResult) {
216
- var moveGroups = []; // ... and also long comments and long sub-variations
217
- var currentMoveGroupElements = [];
218
-
219
- // Close the current move group, if any.
220
- function closeMoveGroup() {
221
- if (!variation.isLongVariation() || currentMoveGroupElements.length === 0) {
222
- return;
223
- }
224
- moveGroups.push( /*#__PURE__*/_react["default"].createElement("div", {
225
- className: "kokopu-moveGroup",
226
- key: 'group-' + moveGroups.length
227
- }, currentMoveGroupElements));
228
- currentMoveGroupElements = [];
229
- }
230
-
231
- // Write the initial comment, if any.
232
- var variationComment = this.extractComment(variation);
233
- if (variationComment !== undefined) {
234
- if (variation.isLongComment()) {
235
- moveGroups.push(this.renderComment(variation, variationComment, true));
236
- } else {
237
- currentMoveGroupElements.push(this.renderComment(variation, variationComment, true));
238
- }
239
- }
240
-
241
- // Visit all the PGN nodes (one node per move) within the variation.
242
- var forcePrintMoveNumber = true;
243
- var node = variation.first();
244
- while (node !== undefined) {
245
- // Write the move, including directly related information (i.e. move number + NAGs).
246
- currentMoveGroupElements.push(this.renderMove(notationTextBuilder, node, forcePrintMoveNumber));
247
-
248
- // Write the comment (if any).
249
- var nodeComment = this.extractComment(node);
250
- if (nodeComment !== undefined) {
251
- if (node.isLongComment()) {
252
- closeMoveGroup();
253
- moveGroups.push(this.renderComment(node, nodeComment, false));
254
- } else {
255
- currentMoveGroupElements.push(this.renderComment(node, nodeComment, false));
256
- }
257
- }
258
-
259
- // Write the sub-variations.
260
- var hasNonEmptySubVariations = false;
261
- var _iterator = _createForOfIteratorHelper(node.variations().entries()),
262
- _step;
263
- try {
264
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
265
- var _step$value = _slicedToArray(_step.value, 2),
266
- index = _step$value[0],
267
- subVariation = _step$value[1];
268
- var subVariationElement = this.renderVariation(notationTextBuilder, subVariation, node.fullMoveNumber() + node.moveColor() + '-variation-' + index, false);
269
- if (subVariationElement) {
270
- if (subVariation.isLongVariation()) {
271
- closeMoveGroup();
272
- moveGroups.push(subVariationElement);
273
- } else {
274
- currentMoveGroupElements.push(subVariationElement);
275
- }
276
- hasNonEmptySubVariations = true;
277
- }
278
- }
279
-
280
- // Back to the current variation, go to the next move.
281
- } catch (err) {
282
- _iterator.e(err);
283
- } finally {
284
- _iterator.f();
285
- }
286
- forcePrintMoveNumber = nodeComment !== undefined || hasNonEmptySubVariations;
287
- node = node.next();
288
- }
289
-
290
- // Append the game result at the end of the main variation.
291
- if (isMainVariation && gameResult !== '*') {
292
- currentMoveGroupElements.push( /*#__PURE__*/_react["default"].createElement("span", {
293
- className: "kokopu-gameResult",
294
- key: "gameResult"
295
- }, formatResult(gameResult)));
296
- }
297
-
298
- // Close the last move group, and return the result.
299
- closeMoveGroup();
300
- var elements = variation.isLongVariation() ? moveGroups : currentMoveGroupElements;
301
- if (elements.length === 0) {
302
- return undefined;
303
- }
304
- if (isMainVariation) {
305
- return /*#__PURE__*/_react["default"].createElement("div", {
306
- className: "kokopu-variation kokopu-mainVariation",
307
- key: variationKey
308
- }, elements);
309
- } else if (variation.isLongVariation()) {
310
- return /*#__PURE__*/_react["default"].createElement("div", {
311
- className: "kokopu-variation kokopu-subVariation",
312
- key: variationKey
313
- }, elements);
314
- } else {
315
- return /*#__PURE__*/_react["default"].createElement("span", {
316
- className: "kokopu-variation kokopu-subVariation",
317
- key: variationKey
318
- }, elements);
319
- }
320
- }
321
-
322
- /**
323
- * Render the given move, move number, and NAG (if any).
324
- */
325
- }, {
326
- key: "renderMove",
327
- value: function renderMove(notationTextBuilder, node, forcePrintMoveNumber) {
328
- var _this3 = this;
329
- // Move number
330
- var moveNumber = undefined;
331
- if (forcePrintMoveNumber || node.moveColor() === 'w') {
332
- var moveNumberText = node.fullMoveNumber() + (node.moveColor() === 'w' ? '.' : "\u2026");
333
- moveNumber = /*#__PURE__*/_react["default"].createElement("span", {
334
- className: "kokopu-moveNumber"
335
- }, moveNumberText);
336
- }
337
-
338
- // SAN notation.
339
- var notationText = notationTextBuilder(node.notation());
340
-
341
- // NAGs
342
- var nagElements = node.nags().map(function (nag) {
343
- return /*#__PURE__*/_react["default"].createElement("span", {
344
- className: "kokopu-nag",
345
- key: nag
346
- }, (0, _kokopu.nagSymbol)(nag));
347
- });
348
-
349
- // Class
350
- var nodeId = node.id();
351
- var moveClassNames = ['kokopu-move'];
352
- var onClick = undefined;
353
- if (this.props.selection && this.props.selection === nodeId) {
354
- moveClassNames.push('kokopu-selectedMove');
355
- }
356
- if (this.props.interactionMode === 'selectMove') {
357
- moveClassNames.push('kokopu-clickableMove');
358
- onClick = function onClick() {
359
- return _this3.handleNodeClicked(nodeId);
360
- };
361
- }
362
- return /*#__PURE__*/_react["default"].createElement("span", {
363
- className: moveClassNames.join(' '),
364
- key: node.fullMoveNumber() + node.moveColor()
365
- }, /*#__PURE__*/_react["default"].createElement("span", {
366
- className: "kokopu-moveContent",
367
- onClick: onClick
368
- }, moveNumber, /*#__PURE__*/_react["default"].createElement("span", {
369
- className: "kokopu-moveNotation"
370
- }, notationText), nagElements.length === 0 ? undefined : nagElements));
371
- }
372
-
373
- /**
374
- * Render the given text comment with its diagrams, if any.
375
- */
376
- }, {
377
- key: "renderComment",
378
- value: function renderComment(node, comment, isVariation) {
379
- var content;
380
- var sanitizer = createSanitizer(true);
381
- if (this.props.diagramVisible && comment.includes('[#]')) {
382
- content = [];
383
- var isFirstPart = true;
384
- var _iterator2 = _createForOfIteratorHelper(comment.split('[#]').entries()),
385
- _step2;
386
- try {
387
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
388
- var _step2$value = _slicedToArray(_step2.value, 2),
389
- index = _step2$value[0],
390
- part = _step2$value[1];
391
- if (!isFirstPart) {
392
- var position = isVariation ? node.initialPosition() : node.position();
393
- var diagram = /*#__PURE__*/_react["default"].createElement(_Chessboard["default"], {
394
- position: position,
395
- squareMarkers: node.tag('csl'),
396
- arrowMarkers: node.tag('cal'),
397
- textMarkers: node.tag('ctl'),
398
- flipped: this.props.diagramOptions.flipped,
399
- squareSize: this.props.diagramOptions.squareSize,
400
- coordinateVisible: this.props.diagramOptions.coordinateVisible,
401
- smallScreenLimits: this.props.diagramOptions.smallScreenLimits,
402
- colorset: this.props.diagramOptions.colorset,
403
- pieceset: this.props.diagramOptions.pieceset
404
- });
405
- content.push( /*#__PURE__*/_react["default"].createElement("div", {
406
- className: "kokopu-diagram",
407
- key: 'diagram-' + index
408
- }, diagram));
409
- }
410
- isFirstPart = false;
411
- part = part.trim();
412
- if (part.length !== 0) {
413
- content.push(sanitizeHtml(part, sanitizer));
414
- }
415
- }
416
- } catch (err) {
417
- _iterator2.e(err);
418
- } finally {
419
- _iterator2.f();
420
- }
421
- } else {
422
- content = sanitizeHtml(comment, sanitizer);
423
- }
424
- var key = isVariation ? 'initial-comment' : node.fullMoveNumber() + node.moveColor() + '-comment';
425
- return node.isLongComment() ? /*#__PURE__*/_react["default"].createElement("div", {
426
- className: "kokopu-comment",
427
- key: key
428
- }, content) : /*#__PURE__*/_react["default"].createElement("span", {
429
- className: "kokopu-comment",
430
- key: key
431
- }, content);
432
- }
433
- }, {
434
- key: "extractComment",
435
- value: function extractComment(node) {
436
- var comment = node.comment();
437
- if (comment) {
438
- // Remove the diagrams if necessary.
439
- if (!this.props.diagramVisible) {
440
- comment = comment.replace(/\[#\]/g, ' ');
441
- }
442
-
443
- // Trim and sanitize the space characters.
444
- comment = comment.replace(/\s+/g, ' ').trim();
445
- }
446
- return comment ? comment : undefined;
447
- }
448
- }, {
449
- key: "handleKeyDownInFocusField",
450
- value: function handleKeyDownInFocusField(evt, game) {
451
- if (evt.key !== 'Home' && evt.key !== 'ArrowLeft' && evt.key !== 'ArrowRight' && evt.key !== 'End') {
452
- return;
453
- }
454
- evt.preventDefault();
455
- if (!this.props.selection) {
456
- return;
457
- }
458
- var nodeId = undefined;
459
- var evtOrigin = '';
460
- if (evt.key === 'Home') {
461
- nodeId = Movetext.firstNodeId(game, this.props.selection);
462
- evtOrigin = 'key-first';
463
- } else if (evt.key === 'ArrowLeft') {
464
- nodeId = Movetext.previousNodeId(game, this.props.selection);
465
- evtOrigin = 'key-previous';
466
- } else if (evt.key === 'ArrowRight') {
467
- nodeId = Movetext.nextNodeId(game, this.props.selection);
468
- evtOrigin = 'key-next';
469
- } else {
470
- // evt.key === 'End'
471
- nodeId = Movetext.lastNodeId(game, this.props.selection);
472
- evtOrigin = 'key-last';
473
- }
474
- if (nodeId && this.props.onMoveSelected) {
475
- this.props.onMoveSelected(nodeId, evtOrigin);
476
- }
477
- }
478
- }, {
479
- key: "handleNodeClicked",
480
- value: function handleNodeClicked(nodeId) {
481
- this.focus();
482
- if (this.props.onMoveSelected) {
483
- this.props.onMoveSelected(nodeId === this.props.selection ? undefined : nodeId, 'click');
484
- }
485
- }
486
-
487
- /**
488
- * Set the focus to the current component.
489
- *
490
- * @public
491
- */
492
- }, {
493
- key: "focus",
494
- value: function focus() {
495
- this.focusFieldRef.current.focus();
496
- }
497
-
498
- /**
499
- * Return the ID of the main variation in the given chess game.
500
- * If the given selection corresponds already at the main variation, `undefined` is returned.
501
- *
502
- * This corresponds to the operation performed when the user presses key "home" on a `Movetext` component.
503
- *
504
- * @param {kokopu.Game} game Considered chess game.
505
- * @param {string} selection ID of the selected move (or `'start'` for the beginning of the main variation).
506
- * @returns {string?}
507
- * @public
508
- */
509
- }], [{
510
- key: "firstNodeId",
511
- value: function firstNodeId(game, selection) {
512
- if (!game.findById(selection)) {
513
- return undefined;
514
- }
515
- return selection === 'start' ? undefined : 'start';
516
- }
517
-
518
- /**
519
- * Return the ID of the node immediately preceding the given selection in the given chess game.
520
- * If no such node exists, `undefined` is returned.
521
- *
522
- * This corresponds to the operation performed when the user presses key "arrow left" on a `Movetext` component.
523
- *
524
- * @param {kokopu.Game} game Considered chess game.
525
- * @param {string} selection ID of the selected move (or `'start'` for the beginning of the main variation).
526
- * @returns {string?}
527
- * @public
528
- */
529
- }, {
530
- key: "previousNodeId",
531
- value: function previousNodeId(game, selection) {
532
- var currentNode = game.findById(selection);
533
- if (!currentNode) {
534
- return undefined;
535
- }
536
- if (selection === 'start') {
537
- return undefined;
538
- } else if (selection.endsWith('start')) {
539
- currentNode = currentNode.parentNode(); // `.parentNode()` returns always non-null ref here
540
- }
541
-
542
- while (currentNode) {
543
- var previousNode = currentNode.previous();
544
- if (previousNode) {
545
- return previousNode.id();
546
- }
547
- currentNode = currentNode.parentVariation().parentNode();
548
- }
549
- return 'start';
550
- }
551
-
552
- /**
553
- * Return the ID of the node immediately following the given selection in the given chess game.
554
- * If no such node exists, `undefined` is returned.
555
- *
556
- * This corresponds to the operation performed when the user presses key "arrow right" on a `Movetext` component.
557
- *
558
- * @param {kokopu.Game} game Considered chess game.
559
- * @param {string} selection ID of the selected move (or `'start'` for the beginning of the main variation).
560
- * @returns {string?}
561
- * @public
562
- */
563
- }, {
564
- key: "nextNodeId",
565
- value: function nextNodeId(game, selection) {
566
- var currentNode = game.findById(selection);
567
- if (!currentNode) {
568
- return undefined;
569
- }
570
- var nextNode = selection.endsWith('start') ? currentNode.first() : currentNode.next();
571
- return nextNode ? nextNode.id() : undefined;
572
- }
573
-
574
- /**
575
- * Return the ID of the node at then end of the variation in which lies the given selection in the given chess game.
576
- * If the selection is already at the end its variation, `undefined` is returned.
577
- *
578
- * This corresponds to the operation performed when the user presses key "end" on a `Movetext` component.
579
- *
580
- * @param {kokopu.Game} game Considered chess game.
581
- * @param {string} selection ID of the selected move (or `'start'` for the beginning of the main variation).
582
- * @returns {string?}
583
- * @public
584
- */
585
- }, {
586
- key: "lastNodeId",
587
- value: function lastNodeId(game, selection) {
588
- var currentNode = game.findById(selection);
589
- if (!currentNode) {
590
- return undefined;
591
- }
592
- currentNode = selection.endsWith('start') ? currentNode.first() : currentNode.next();
593
- if (!currentNode) {
594
- // Ensure that the input node is not already the last one.
595
- return undefined;
596
- }
597
- while (true) {
598
- var nextNode = currentNode.next();
599
- if (!nextNode) {
600
- return currentNode.id();
601
- }
602
- currentNode = nextNode;
603
- }
604
- }
605
- }]);
606
- return Movetext;
607
- }(_react["default"].Component);
608
- exports["default"] = Movetext;
609
- Movetext.propTypes = {
610
- /**
611
- * Displayed position. Can be a [kokopu.Game](https://kokopu.yo35.org/docs/current/classes/Game.html) object,
612
- * a [kokopu.Database](https://kokopu.yo35.org/docs/current/classes/Database.html) object,
613
- * or a [PGN string](https://en.wikipedia.org/wiki/Portable_Game_Notation).
614
- */
615
- game: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(_kokopu.Game), _propTypes["default"].instanceOf(_kokopu.Database), _propTypes["default"].string]),
616
- /**
617
- * Index of the game to display (only if attribute `game` is a [kokopu.Database](https://kokopu.yo35.org/docs/current/classes/Database.html)
618
- * or a [PGN string](https://en.wikipedia.org/wiki/Portable_Game_Notation)): `0` for the first game of the database/PGN, `1` for the second one, etc.
619
- * If omitted, the first game of the database/PGN is displayed.
620
- */
621
- gameIndex: _propTypes["default"].number,
622
- /**
623
- * Options applicable to the diagrams in the comments. See [Chessboard](#/Components/Chessboard) for more details about each option.
624
- */
625
- diagramOptions: _propTypes["default"].shape({
626
- flipped: _Chessboard["default"].propTypes.flipped,
627
- squareSize: _Chessboard["default"].propTypes.squareSize,
628
- coordinateVisible: _Chessboard["default"].propTypes.coordinateVisible,
629
- smallScreenLimits: _Chessboard["default"].propTypes.smallScreenLimits,
630
- colorset: _Chessboard["default"].propTypes.colorset,
631
- pieceset: _Chessboard["default"].propTypes.pieceset
632
- }),
633
- /**
634
- * Symbols to use for the chess pieces. Can be:
635
- * - `'native'`: use the first letter of the piece names (in English),
636
- * - `'localized'`: use the symbols defined by `i18n.PIECE_SYMBOLS`,
637
- * - `'figurines'`: use the figurines,
638
- * - or an object defining 6 string-valued properties named `K`, `Q`, `R`, `B`, `N` and `P`.
639
- */
640
- pieceSymbols: _propTypes["default"].oneOfType([_propTypes["default"].oneOf(['native', 'localized', 'figurines']), _propTypes["default"].shape({
641
- K: _propTypes["default"].string.isRequired,
642
- Q: _propTypes["default"].string.isRequired,
643
- R: _propTypes["default"].string.isRequired,
644
- B: _propTypes["default"].string.isRequired,
645
- N: _propTypes["default"].string.isRequired,
646
- P: _propTypes["default"].string.isRequired
647
- })]),
648
- /**
649
- * Whether the diagrams within the comments (if any) are displayed or not.
650
- */
651
- diagramVisible: _propTypes["default"].bool,
652
- /**
653
- * Whether the game headers (if any) are displayed or not.
654
- */
655
- headerVisible: _propTypes["default"].bool,
656
- /**
657
- * ID of the selected move (or `'start'` for the beginning of the main variation).
658
- * Use [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id) to get the ID of a game move.
659
- */
660
- selection: _propTypes["default"].string,
661
- /**
662
- * Type of action allowed with the mouse/keys on the component. If undefined, then the user cannot interact with the component.
663
- *
664
- * - `'selectMove'` allows the user to select a move.
665
- */
666
- interactionMode: _propTypes["default"].oneOf(['selectMove']),
667
- /**
668
- * Callback invoked when the user selects a move (only if `interactionMode` is set to `'selectMove'`).
669
- *
670
- * @param {string?} nodeId ID of the selected move (as returned by [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id)),
671
- * `'start'` for the beginning of the main variation, or `undefined` if the user unselects the previously selected move.
672
- * @param {string} evtOrigin Origin of the event. Can be:
673
- * - `'key-first'`: the event has been triggered by the "go-to-first-move" key (aka. the home key),
674
- * - `'key-previous'`: the event has been triggered by the "go-to-previous-move" key (aka. the arrow left key),
675
- * - `'key-next'`: the event has been triggered by the "go-to-next-move" key (aka. the arrow right key),
676
- * - `'key-last'`: the event has been triggered by the "go-to-last-move" key (aka. the end key),
677
- * - `'click'`: the event has been triggered by a mouse click on a move.
678
- */
679
- onMoveSelected: _propTypes["default"].func
680
- };
681
- Movetext.defaultProps = {
682
- game: new _kokopu.Game(),
683
- gameIndex: 0,
684
- diagramOptions: {},
685
- pieceSymbols: 'native',
686
- diagramVisible: true,
687
- headerVisible: true
688
- };
689
-
690
- /**
691
- * Example: `'hello world'` is turned into `'Hello world'`.
692
- */
693
- function capitalizeFirstWord(text) {
694
- return text.length === 0 ? '' : text.charAt(0).toUpperCase() + text.slice(1);
695
- }
696
- function formatResult(result) {
697
- switch (result) {
698
- case '1/2-1/2':
699
- return "\xBD\u2013\xBD";
700
- case '1-0':
701
- return "1\u20130";
702
- case '0-1':
703
- return "0\u20131";
704
- }
705
- }
706
- function createSanitizer(withBlockTags) {
707
- var allowedTags = ['span',
708
- // general purpose
709
- 'a',
710
- // links
711
- 'b', 'strong', 'i', 'em',
712
- // bold, italic
713
- 'del', 'ins', 's', 'u',
714
- // underline, strikethrough
715
- 'sub', 'sup',
716
- // subscript, superscript
717
- 'abbr',
718
- // acronym (typically associated to a title=".." tooltip)
719
- 'q', 'cite',
720
- // quotation and title of a work
721
- 'mark',
722
- // highlighted text
723
- 'small' // smaller text
724
- ];
725
-
726
- var allowedAttributes = {
727
- '*': ['class', 'id', 'title'],
728
- 'a': ['href', 'target']
729
- };
730
- if (withBlockTags) {
731
- allowedTags = allowedTags.concat(['div',
732
- // general purpose
733
- 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
734
- // headings
735
- 'p', 'br',
736
- // paragraph and line break
737
- 'blockquote',
738
- // long quotation
739
- 'img',
740
- // image
741
- 'pre',
742
- // preformatted text
743
- 'ul', 'ol', 'li' // lists
744
- ]);
745
-
746
- Object.assign(allowedAttributes, {
747
- 'img': ['alt', 'src', 'height', 'width']
748
- });
749
- }
750
- return new _HtmlSanitizer["default"]({
751
- allowedTags: allowedTags,
752
- allowedAttributes: allowedAttributes
753
- });
754
- }
755
- function sanitizeHtml(text, sanitizer) {
756
- if (!sanitizer) {
757
- sanitizer = createSanitizer(false);
758
- }
759
- var result = sanitizer.parse(text);
760
- return result !== null && result !== void 0 ? result : text;
761
- }
762
-
763
- /**
764
- * Try to interpret the given object as a chess game.
765
- */
766
- function parseGame(game, gameIndex) {
767
- if (game instanceof _kokopu.Game) {
768
- return {
769
- error: false,
770
- game: game
771
- };
772
- } else if (game instanceof _kokopu.Database || typeof game === 'string') {
773
- if (!Number.isInteger(gameIndex) || gameIndex < 0) {
774
- return {
775
- error: true,
776
- message: _i18n["default"].INVALID_GAME_INDEX_ATTRIBUTE_ERROR_MESSAGE
777
- };
778
- }
779
- try {
780
- var result = game instanceof _kokopu.Database ? game.game(gameIndex) : (0, _kokopu.pgnRead)(game, gameIndex);
781
- return {
782
- error: false,
783
- game: result
784
- };
785
- } catch (e) {
786
- // istanbul ignore else
787
- if (e instanceof _kokopu.exception.InvalidPGN) {
788
- return {
789
- error: true,
790
- message: e.message,
791
- text: e.pgn,
792
- errorIndex: e.index,
793
- lineNumber: e.lineNumber
794
- };
795
- } else {
796
- throw e;
797
- }
798
- }
799
- } else {
800
- return {
801
- error: true,
802
- message: _i18n["default"].INVALID_GAME_ATTRIBUTE_ERROR_MESSAGE
803
- };
804
- }
805
- }