kokopu-react 3.0.2 → 3.2.0

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 (253) hide show
  1. package/.eslintrc.yml +1 -1
  2. package/CHANGELOG.md +13 -1
  3. package/dist/lib/chessboard/BoardProperties.d.ts +91 -0
  4. package/dist/lib/chessboard/BoardProperties.js +43 -0
  5. package/dist/lib/chessboard/BoardProperties.js.map +1 -0
  6. package/dist/lib/chessboard/Chessboard.css +13 -13
  7. package/dist/lib/chessboard/Chessboard.d.ts +14 -58
  8. package/dist/lib/chessboard/Chessboard.js +26 -92
  9. package/dist/lib/chessboard/Chessboard.js.map +1 -1
  10. package/dist/lib/chessboard/ChessboardImpl.js.map +1 -1
  11. package/dist/lib/chessboard/Draggable.js.map +1 -1
  12. package/dist/lib/chessboard/Motion.js.map +1 -1
  13. package/dist/lib/chessboard/colorsets.js.map +1 -1
  14. package/dist/lib/chessboard/piecesets.js.map +1 -1
  15. package/dist/lib/errorbox/ErrorBox.css +18 -18
  16. package/dist/lib/errorbox/ErrorBox.js.map +1 -1
  17. package/dist/lib/errorbox/parsing.d.ts +57 -0
  18. package/dist/lib/errorbox/parsing.js +140 -0
  19. package/dist/lib/errorbox/parsing.js.map +1 -0
  20. package/dist/lib/exception.js.map +1 -1
  21. package/dist/lib/i18n.d.ts +6 -0
  22. package/dist/lib/i18n.js +7 -0
  23. package/dist/lib/i18n.js.map +1 -1
  24. package/dist/lib/icons/AnnotationSymbolShape.css +6 -6
  25. package/dist/lib/icons/AnnotationSymbolShape.js.map +1 -1
  26. package/dist/lib/icons/ArrowMarkerIcon.js.map +1 -1
  27. package/dist/lib/icons/ArrowTip.js.map +1 -1
  28. package/dist/lib/icons/ChessPieceIcon.js.map +1 -1
  29. package/dist/lib/icons/SquareMarkerIcon.js.map +1 -1
  30. package/dist/lib/icons/TextMarkerIcon.js.map +1 -1
  31. package/dist/lib/icons/arrow.css +1 -1
  32. package/dist/lib/index.d.ts +5 -1
  33. package/dist/lib/index.js +3 -0
  34. package/dist/lib/index.js.map +1 -1
  35. package/dist/lib/movetext/Movetext.css +27 -40
  36. package/dist/lib/movetext/Movetext.d.ts +9 -43
  37. package/dist/lib/movetext/Movetext.js +15 -67
  38. package/dist/lib/movetext/Movetext.js.map +1 -1
  39. package/dist/lib/movetext/MovetextImpl.d.ts +7 -28
  40. package/dist/lib/movetext/MovetextImpl.js +15 -94
  41. package/dist/lib/movetext/MovetextImpl.js.map +1 -1
  42. package/dist/lib/movetext/fonts.css +7 -7
  43. package/dist/lib/movetext/htmlFilter.js.map +1 -1
  44. package/dist/lib/movetext/moveFormatter.js.map +1 -1
  45. package/dist/lib/navigationboard/NavigationBoard.d.ts +156 -0
  46. package/dist/lib/navigationboard/NavigationBoard.js +195 -0
  47. package/dist/lib/navigationboard/NavigationBoard.js.map +1 -0
  48. package/dist/lib/navigationboard/NavigationButton.d.ts +54 -0
  49. package/dist/lib/navigationboard/NavigationButton.js +35 -0
  50. package/dist/lib/navigationboard/NavigationButton.js.map +1 -0
  51. package/dist/lib/navigationboard/NavigationField.css +36 -0
  52. package/dist/lib/navigationboard/NavigationField.d.ts +81 -0
  53. package/dist/lib/navigationboard/NavigationField.js +154 -0
  54. package/dist/lib/navigationboard/NavigationField.js.map +1 -0
  55. package/dist/lib/navigationboard/NavigationToolbar.css +54 -0
  56. package/dist/lib/navigationboard/NavigationToolbar.d.ts +34 -0
  57. package/dist/lib/navigationboard/NavigationToolbar.js +73 -0
  58. package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -0
  59. package/dist/lib/navigationboard/iconPaths.d.ts +29 -0
  60. package/dist/lib/navigationboard/iconPaths.js +91 -0
  61. package/dist/lib/navigationboard/iconPaths.js.map +1 -0
  62. package/dist/lib/sanitization.js.map +1 -1
  63. package/dist/lib/types.js.map +1 -1
  64. package/dist/lib/util.js.map +1 -1
  65. package/doc_src/demo/PageChessboardBase.tsx +115 -115
  66. package/doc_src/demo/PageChessboardInteraction.tsx +303 -303
  67. package/doc_src/demo/PageChessboardMove.tsx +173 -156
  68. package/doc_src/demo/PageChessboardSmallScreens.tsx +94 -94
  69. package/doc_src/demo/PageMovetextBase.tsx +180 -180
  70. package/doc_src/demo/PageMovetextInteraction.tsx +123 -123
  71. package/doc_src/demo/PageNavigationBoardBase.tsx +201 -0
  72. package/doc_src/demo/PageNavigationBoardUncontrolledVsControlled.tsx +114 -0
  73. package/doc_src/demo/decs.d.ts +4 -4
  74. package/doc_src/demo/demo.css +12 -12
  75. package/doc_src/demo/game-3.pgn +10 -0
  76. package/doc_src/demo/util.ts +1 -1
  77. package/doc_src/examples/Movetext.md +1 -1
  78. package/doc_src/examples/NavigationBoard.md +15 -0
  79. package/doc_src/theming/LogoRenderer.js +13 -13
  80. package/doc_src/theming/theming.css +5 -5
  81. package/package.json +95 -95
  82. package/scripts/doc.styleguide.config.js +133 -123
  83. package/scripts/doc.tsconfig.json +5 -5
  84. package/scripts/docker-compose.yml +1 -1
  85. package/scripts/test-graphic.tsconfig.json +5 -5
  86. package/scripts/test-graphic.webpack.config.js +57 -57
  87. package/scripts/test-headless.webpack.config.js +29 -29
  88. package/src/chessboard/BoardProperties.ts +131 -0
  89. package/src/chessboard/Chessboard.css +13 -13
  90. package/src/chessboard/Chessboard.tsx +389 -518
  91. package/src/chessboard/ChessboardImpl.tsx +557 -557
  92. package/src/chessboard/Draggable.tsx +185 -185
  93. package/src/chessboard/Motion.tsx +67 -67
  94. package/src/chessboard/colorsets.ts +66 -66
  95. package/src/chessboard/piecesets.ts +84 -84
  96. package/src/decs.d.ts +2 -2
  97. package/src/errorbox/ErrorBox.css +18 -18
  98. package/src/errorbox/ErrorBox.tsx +75 -75
  99. package/src/errorbox/parsing.tsx +158 -0
  100. package/src/exception.ts +17 -17
  101. package/src/i18n.ts +8 -0
  102. package/src/icons/AnnotationSymbolShape.css +6 -6
  103. package/src/icons/AnnotationSymbolShape.tsx +31 -31
  104. package/src/icons/ArrowMarkerIcon.tsx +34 -34
  105. package/src/icons/ArrowTip.tsx +14 -14
  106. package/src/icons/ChessPieceIcon.tsx +45 -45
  107. package/src/icons/SquareMarkerIcon.tsx +20 -20
  108. package/src/icons/TextMarkerIcon.tsx +29 -29
  109. package/src/icons/arrow.css +1 -1
  110. package/src/index.ts +8 -3
  111. package/src/movetext/Movetext.css +27 -40
  112. package/src/movetext/Movetext.tsx +163 -228
  113. package/src/movetext/MovetextImpl.tsx +351 -438
  114. package/src/movetext/fonts.css +7 -7
  115. package/src/movetext/htmlFilter.tsx +129 -129
  116. package/src/movetext/moveFormatter.tsx +37 -37
  117. package/src/navigationboard/NavigationBoard.tsx +350 -0
  118. package/src/navigationboard/NavigationButton.ts +72 -0
  119. package/src/navigationboard/NavigationField.css +36 -0
  120. package/src/navigationboard/NavigationField.tsx +185 -0
  121. package/src/navigationboard/NavigationToolbar.css +54 -0
  122. package/src/navigationboard/NavigationToolbar.tsx +117 -0
  123. package/src/navigationboard/iconPaths.ts +98 -0
  124. package/src/sanitization.ts +17 -17
  125. package/src/types.ts +116 -116
  126. package/src/util.ts +11 -11
  127. package/test/01_types.js +167 -167
  128. package/test/02_chessboard_util.js +114 -114
  129. package/test/03_error_box_graphic.js +16 -16
  130. package/test/04_icons_graphic.js +32 -32
  131. package/test/05_chessboard_graphic.js +60 -58
  132. package/test/06_chessboard_animation.js +36 -36
  133. package/test/07_chessboard_interaction.js +101 -101
  134. package/test/08_chessboard_play_moves.js +62 -62
  135. package/test/09_chessboard_small_screens.js +42 -21
  136. package/test/10_movetext_graphic.js +36 -31
  137. package/test/11_movetext_interaction.js +100 -96
  138. package/test/12_navigation_board_base.js +151 -0
  139. package/test/13_navigation_board_graphic.js +68 -0
  140. package/test/14_navigation_board_autoplay.js +100 -0
  141. package/test/common/graphic.js +106 -97
  142. package/test/graphic_references/05_chessboard_graphic/move/illegal_null-move.png +0 -0
  143. package/test/graphic_references/05_chessboard_graphic/move/null-move.png +0 -0
  144. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_bottom_component.png +0 -0
  145. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_top_component.png +0 -0
  146. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_bottom_component.png +0 -0
  147. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_top_component.png +0 -0
  148. package/test/graphic_references/10_movetext_graphic/format_move/format_text.png +0 -0
  149. package/test/graphic_references/10_movetext_graphic/options/wrong_piece_symbol_value.png +0 -0
  150. package/test/graphic_references/11_movetext_interaction/select_moves/click_on_unselected_without_callback.png +0 -0
  151. package/test/graphic_references/12_navigation_board_base/controlled/default.png +0 -0
  152. package/test/graphic_references/12_navigation_board_base/controlled/forbidden_navigation_0.png +0 -0
  153. package/test/graphic_references/12_navigation_board_base/controlled/forbidden_navigation_1.png +0 -0
  154. package/test/graphic_references/12_navigation_board_base/controlled/invalid_node_id.png +0 -0
  155. package/test/graphic_references/12_navigation_board_base/controlled/no_callback_defined_0.png +0 -0
  156. package/test/graphic_references/12_navigation_board_base/controlled/no_callback_defined_1.png +0 -0
  157. package/test/graphic_references/12_navigation_board_base/controlled/overriding_initial_node_id.png +0 -0
  158. package/test/graphic_references/12_navigation_board_base/controlled/regular_navigation_0.png +0 -0
  159. package/test/graphic_references/12_navigation_board_base/controlled/regular_navigation_1.png +0 -0
  160. package/test/graphic_references/12_navigation_board_base/controlled/regular_navigation_2.png +0 -0
  161. package/test/graphic_references/12_navigation_board_base/controlled/regular_navigation_3.png +0 -0
  162. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_0.png +0 -0
  163. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_1.png +0 -0
  164. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_beginning_2.png +0 -0
  165. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_0.png +0 -0
  166. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_1.png +0 -0
  167. package/test/graphic_references/12_navigation_board_base/uncontrolled/forbidden_navigation_at_end_2.png +0 -0
  168. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_at_end.png +0 -0
  169. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_at_specific_id.png +0 -0
  170. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_default.png +0 -0
  171. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_default_with_game_index.png +0 -0
  172. package/test/graphic_references/12_navigation_board_base/uncontrolled/initial_state_on_null-move.png +0 -0
  173. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_0.png +0 -0
  174. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_1.png +0 -0
  175. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_2.png +0 -0
  176. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_3.png +0 -0
  177. package/test/graphic_references/12_navigation_board_base/uncontrolled/navigation_with_keys_4.png +0 -0
  178. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_flipping_0.png +0 -0
  179. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_flipping_1.png +0 -0
  180. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_0.png +0 -0
  181. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_1.png +0 -0
  182. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_2.png +0 -0
  183. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_3.png +0 -0
  184. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_4.png +0 -0
  185. package/test/graphic_references/12_navigation_board_base/uncontrolled/regular_navigation_5.png +0 -0
  186. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_1.png +0 -0
  187. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/error_2.png +0 -0
  188. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/multiple_buttons.png +0 -0
  189. package/test/graphic_references/13_navigation_board_graphic/additional_buttons/single_button.png +0 -0
  190. package/test/graphic_references/13_navigation_board_graphic/error/pgn_parsing_error.png +0 -0
  191. package/test/graphic_references/13_navigation_board_graphic/error/wrong_game_type.png +0 -0
  192. package/test/graphic_references/13_navigation_board_graphic/theme/custom_1.png +0 -0
  193. package/test/graphic_references/13_navigation_board_graphic/theme/custom_2.png +0 -0
  194. package/test/graphic_references/13_navigation_board_graphic/theme/large.png +0 -0
  195. package/test/graphic_references/13_navigation_board_graphic/theme/small.png +0 -0
  196. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_acknowledging_is-playing_changes.png +0 -0
  197. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_1_move_not_acknowledging_is-playing_changes.png +0 -0
  198. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_acknowledging_node_changes.png +0 -0
  199. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_2_moves_not_acknowledging_node_changes.png +0 -0
  200. package/test/graphic_references/14_navigation_board_autoplay/controlled/after_reaching_the_end.png +0 -0
  201. package/test/graphic_references/14_navigation_board_autoplay/controlled/already_at_the_end.png +0 -0
  202. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_is-playing_changes.png +0 -0
  203. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_acknowledging_node_changes.png +0 -0
  204. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_at_the_end.png +0 -0
  205. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_close_to_end.png +0 -0
  206. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_is-playing_changes.png +0 -0
  207. package/test/graphic_references/14_navigation_board_autoplay/controlled/initial_state_not_acknowledging_node_changes.png +0 -0
  208. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_after_stop.png +0 -0
  209. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_2_moves_from_beginning_before_stop.png +0 -0
  210. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_after_stop.png +0 -0
  211. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/after_reaching_the_end_before_stop.png +0 -0
  212. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/initial_state_close_to_end.png +0 -0
  213. package/test/graphic_references/14_navigation_board_autoplay/uncontrolled/initial_state_default.png +0 -0
  214. package/test/graphic_test_app/03_error_box_graphic/base.tsx +14 -14
  215. package/test/graphic_test_app/03_error_box_graphic/localization.tsx +1 -1
  216. package/test/graphic_test_app/04_icons_graphic/chess_piece.tsx +7 -7
  217. package/test/graphic_test_app/04_icons_graphic/marker.tsx +15 -15
  218. package/test/graphic_test_app/05_chessboard_graphic/annotations.tsx +7 -7
  219. package/test/graphic_test_app/05_chessboard_graphic/base.tsx +6 -6
  220. package/test/graphic_test_app/05_chessboard_graphic/chess_variants.tsx +7 -7
  221. package/test/graphic_test_app/05_chessboard_graphic/flipped.tsx +5 -5
  222. package/test/graphic_test_app/05_chessboard_graphic/move.tsx +12 -10
  223. package/test/graphic_test_app/05_chessboard_graphic/theme.tsx +12 -12
  224. package/test/graphic_test_app/06_chessboard_animation/base_1.tsx +6 -6
  225. package/test/graphic_test_app/06_chessboard_animation/base_2.tsx +6 -6
  226. package/test/graphic_test_app/06_chessboard_animation/base_3.tsx +6 -6
  227. package/test/graphic_test_app/06_chessboard_animation/on_redraw.tsx +16 -16
  228. package/test/graphic_test_app/07_chessboard_interaction/click_squares.tsx +5 -5
  229. package/test/graphic_test_app/07_chessboard_interaction/edit_arrows.tsx +4 -4
  230. package/test/graphic_test_app/07_chessboard_interaction/error.tsx +2 -2
  231. package/test/graphic_test_app/07_chessboard_interaction/move_pieces.tsx +5 -5
  232. package/test/graphic_test_app/08_chessboard_play_moves/base.tsx +8 -8
  233. package/test/graphic_test_app/08_chessboard_play_moves/promotions.tsx +4 -4
  234. package/test/graphic_test_app/09_chessboard_small_screens/base.tsx +9 -9
  235. package/test/graphic_test_app/09_chessboard_small_screens/top_bottom_components.tsx +48 -0
  236. package/test/graphic_test_app/10_movetext_graphic/base.tsx +4 -4
  237. package/test/graphic_test_app/10_movetext_graphic/error.tsx +6 -6
  238. package/test/graphic_test_app/10_movetext_graphic/format_move.tsx +31 -0
  239. package/test/graphic_test_app/10_movetext_graphic/html.tsx +5 -5
  240. package/test/graphic_test_app/10_movetext_graphic/options.tsx +10 -9
  241. package/test/graphic_test_app/11_movetext_interaction/error.tsx +1 -1
  242. package/test/graphic_test_app/11_movetext_interaction/select_moves.tsx +11 -10
  243. package/test/graphic_test_app/12_navigation_board_base/controlled.tsx +43 -0
  244. package/test/graphic_test_app/12_navigation_board_base/uncontrolled.tsx +56 -0
  245. package/test/graphic_test_app/13_navigation_board_graphic/additional_buttons.tsx +49 -0
  246. package/test/graphic_test_app/13_navigation_board_graphic/error.tsx +34 -0
  247. package/test/graphic_test_app/13_navigation_board_graphic/theme.tsx +38 -0
  248. package/test/graphic_test_app/14_navigation_board_autoplay/controlled.tsx +73 -0
  249. package/test/graphic_test_app/14_navigation_board_autoplay/uncontrolled.tsx +34 -0
  250. package/test/graphic_test_app/common/decs.d.ts +2 -2
  251. package/test/graphic_test_app/common/test_app.css +15 -15
  252. package/test/graphic_test_app/common/test_app.tsx +48 -48
  253. package/tsconfig.json +13 -13
package/.eslintrc.yml CHANGED
@@ -23,7 +23,7 @@ parserOptions:
23
23
  rules:
24
24
 
25
25
  # Style
26
- indent: [ error, tab, { SwitchCase: 1 }]
26
+ indent: [ error, 4, { SwitchCase: 1 }]
27
27
  linebreak-style: [ error, unix ]
28
28
  quotes: [ error, single ]
29
29
  semi: [ error, always ]
package/CHANGELOG.md CHANGED
@@ -1,7 +1,19 @@
1
1
  ChangeLog
2
2
  =========
3
3
 
4
- 3.0.2 (January 20, 2023)
4
+ 3.2.0 (April 22, 2024)
5
+ ----------------------
6
+ * Add support for additional buttons in the toolbar of `NavigationBoard`.
7
+ * Rework the toolbar look'n feel of `NavigationBoard`.
8
+ * Add auto-play feature in `NavigationBoard` (see [#7](https://github.com/yo35/kokopu-react/issues/7)).
9
+
10
+ 3.1.0 (March 3, 2024)
11
+ ---------------------
12
+ * Add support for null-moves in `Chessboard`.
13
+ * Add top/bottom auxilliary components in `Chessboard`.
14
+ * Add `NavigationBoard` (see [#6](https://github.com/yo35/kokopu-react/issues/6)).
15
+
16
+ 3.0.2 (January 20, 2024)
5
17
  ------------------------
6
18
  * Minor fixes in dependencies.
7
19
 
@@ -0,0 +1,91 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
23
+ import { AnnotationColor } from '../types';
24
+ /**
25
+ * Define a limit applicable to the parameters of a {@link Chessboard} on small-screen devices.
26
+ */
27
+ export interface SmallScreenLimit {
28
+ width: number;
29
+ squareSize?: number;
30
+ coordinateVisible?: boolean;
31
+ turnVisible?: boolean;
32
+ }
33
+ /**
34
+ * Properties in relation to the appearance of a `Chessboard` component (excluding properties related to move display).
35
+ */
36
+ export interface StaticBoardGraphicProps {
37
+ /**
38
+ * Size of the squares (in pixels). Must be an integer between `Chessboard.minSquareSize()` and `Chessboard.maxSquareSize()`.
39
+ */
40
+ squareSize: number;
41
+ /**
42
+ * Whether the row and column coordinates are visible or not.
43
+ */
44
+ coordinateVisible: boolean;
45
+ /**
46
+ * Whether the turn flag is visible or not.
47
+ */
48
+ turnVisible: boolean;
49
+ /**
50
+ * Color theme ID. Must be a property of `Chessboard.colorsets()`.
51
+ */
52
+ colorset: string;
53
+ /**
54
+ * Piece theme ID. Must be a property of `Chessboard.piecesets()`.
55
+ */
56
+ pieceset: string;
57
+ /**
58
+ * Limits applicable on small-screen devices. For instance, if set to
59
+ * ```
60
+ * [
61
+ * { width: 768, squareSize: 40 },
62
+ * { width: 375, squareSize: 24, coordinateVisible: false }
63
+ * ]
64
+ * ```
65
+ * then on screens with resolution ≤768 pixels, the square size will be limited to 40 (whatever the value
66
+ * of the `squareSize` attribute); in addition, on screens with resolution ≤375 pixels, the square size
67
+ * will be limited to 24 and the row and column coordinates will always be hidden (whatever the value of the
68
+ * `coordinateVisible` attribute).
69
+ */
70
+ smallScreenLimits?: SmallScreenLimit[];
71
+ }
72
+ /**
73
+ * Properties in relation to the appearance of a `Chessboard` component (including properties related to move display).
74
+ */
75
+ export interface DynamicBoardGraphicProps extends StaticBoardGraphicProps {
76
+ /**
77
+ * Whether moves are highlighted with an arrow or not.
78
+ */
79
+ moveArrowVisible: boolean;
80
+ /**
81
+ * Color of the move arrow.
82
+ */
83
+ moveArrowColor: AnnotationColor;
84
+ /**
85
+ * Whether moves are animated or not.
86
+ */
87
+ animated: boolean;
88
+ }
89
+ export declare const DEFAULT_SQUARE_SIZE = 40;
90
+ export declare function defaultStaticBoardProps(): StaticBoardGraphicProps;
91
+ export declare function defaultDynamicBoardProps(): DynamicBoardGraphicProps;
@@ -0,0 +1,43 @@
1
+ /*!
2
+ * -------------------------------------------------------------------------- *
3
+ * *
4
+ * Kokopu-React - A React-based library of chess-related components. *
5
+ * <https://www.npmjs.com/package/kokopu-react> *
6
+ * Copyright (C) 2021-2024 Yoann Le Montagner <yo35 -at- melix.net> *
7
+ * *
8
+ * Kokopu-React is free software: you can redistribute it and/or *
9
+ * modify it under the terms of the GNU Lesser General Public License *
10
+ * as published by the Free Software Foundation, either version 3 of *
11
+ * the License, or (at your option) any later version. *
12
+ * *
13
+ * Kokopu-React is distributed in the hope that it will be useful, *
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16
+ * GNU Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General *
19
+ * Public License along with this program. If not, see *
20
+ * <http://www.gnu.org/licenses/>. *
21
+ * *
22
+ * -------------------------------------------------------------------------- */
23
+ import { DEFAULT_COLORSET } from './colorsets';
24
+ import { DEFAULT_PIECESET } from './piecesets';
25
+ export const DEFAULT_SQUARE_SIZE = 40;
26
+ export function defaultStaticBoardProps() {
27
+ return {
28
+ squareSize: DEFAULT_SQUARE_SIZE,
29
+ coordinateVisible: true,
30
+ turnVisible: true,
31
+ colorset: DEFAULT_COLORSET,
32
+ pieceset: DEFAULT_PIECESET,
33
+ };
34
+ }
35
+ export function defaultDynamicBoardProps() {
36
+ return {
37
+ ...defaultStaticBoardProps(),
38
+ moveArrowVisible: true,
39
+ moveArrowColor: 'b',
40
+ animated: false,
41
+ };
42
+ }
43
+ //# sourceMappingURL=BoardProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoardProperties.js","sourceRoot":"","sources":["../../../src/chessboard/BoardProperties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAIhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmF/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAGtC,MAAM,UAAU,uBAAuB;IACnC,OAAO;QACH,UAAU,EAAE,mBAAmB;QAC/B,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;AACN,CAAC;AAGD,MAAM,UAAU,wBAAwB;IACpC,OAAO;QACH,GAAG,uBAAuB,EAAE;QAC5B,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,GAAG;QACnB,QAAQ,EAAE,KAAK;KAClB,CAAC;AACN,CAAC"}
@@ -23,39 +23,39 @@
23
23
 
24
24
 
25
25
  .kokopu-coordinate {
26
- fill: currentcolor;
27
- font-style: normal;
28
- font-family: sans-serif;
29
- text-anchor: middle;
30
- dominant-baseline: central;
31
- letter-spacing: 0px;
26
+ fill: currentcolor;
27
+ font-style: normal;
28
+ font-family: sans-serif;
29
+ text-anchor: middle;
30
+ dominant-baseline: central;
31
+ letter-spacing: 0px;
32
32
  }
33
33
 
34
34
  .kokopu-annotation {
35
- opacity: 0.8;
35
+ opacity: 0.8;
36
36
  }
37
37
 
38
38
  .kokopu-hoveredSquare,
39
39
  .kokopu-handle {
40
- fill: transparent;
40
+ fill: transparent;
41
41
  }
42
42
 
43
43
  .kokopu-clickable {
44
- cursor: pointer;
44
+ cursor: pointer;
45
45
  }
46
46
 
47
47
  .kokopu-pieceDraggable {
48
- cursor: grab;
48
+ cursor: grab;
49
49
  }
50
50
 
51
51
  .kokopu-pieceDraggable.kokopu-dragging {
52
- cursor: grabbing;
52
+ cursor: grabbing;
53
53
  }
54
54
 
55
55
  .kokopu-arrowDraggable {
56
- cursor: crosshair;
56
+ cursor: crosshair;
57
57
  }
58
58
 
59
59
  .kokopu-drawerMask {
60
- opacity: 0.5;
60
+ opacity: 0.5;
61
61
  }
@@ -23,16 +23,8 @@
23
23
  import * as React from 'react';
24
24
  import { MoveDescriptor, Position, Square } from 'kokopu';
25
25
  import { Colorset, Pieceset, AnnotationColor, SquareMarkerSet, TextMarkerSet, ArrowMarkerSet } from '../types';
26
- /**
27
- * Define a limit applicable to the parameters of a {@link Chessboard} on small-screen devices.
28
- */
29
- export interface SmallScreenLimit {
30
- width: number;
31
- squareSize?: number;
32
- coordinateVisible?: boolean;
33
- turnVisible?: boolean;
34
- }
35
- export interface ChessboardProps {
26
+ import { StaticBoardGraphicProps, DynamicBoardGraphicProps } from './BoardProperties';
27
+ export interface ChessboardProps extends DynamicBoardGraphicProps {
36
28
  /**
37
29
  * Displayed position. Can be a [kokopu.Position](https://kokopu.yo35.org/docs/current/classes/Position.html) object,
38
30
  * a [FEN string](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation),
@@ -45,8 +37,8 @@ export interface ChessboardProps {
45
37
  position: Position | string;
46
38
  /**
47
39
  * Displayed move (optional), defined either as a [kokopu.MoveDescriptor](https://kokopu.yo35.org/docs/current/classes/MoveDescriptor.html) object
48
- * or as a [SAN string](https://en.wikipedia.org/wiki/Algebraic_notation_(chess)) (e.g. `'Nf3'`). In both cases, it must represent
49
- * a legal move in position defined in attribute `position`.
40
+ * or as a [SAN string](https://en.wikipedia.org/wiki/Algebraic_notation_(chess)) (e.g. `'Nf3'`). Use `'--'` for a null-move.
41
+ * In all cases, the move must be a legal move in position defined in attribute `position`.
50
42
  */
51
43
  move?: MoveDescriptor | string;
52
44
  /**
@@ -67,52 +59,6 @@ export interface ChessboardProps {
67
59
  * Whether the board is flipped (i.e. seen from Black's point of view) or not.
68
60
  */
69
61
  flipped: boolean;
70
- /**
71
- * Size of the squares (in pixels). Must be an integer between `Chessboard.minSquareSize()` and `Chessboard.maxSquareSize()`.
72
- */
73
- squareSize: number;
74
- /**
75
- * Whether the row and column coordinates are visible or not.
76
- */
77
- coordinateVisible: boolean;
78
- /**
79
- * Whether the turn flag is visible or not.
80
- */
81
- turnVisible: boolean;
82
- /**
83
- * Whether moves are highlighted with an arrow or not.
84
- */
85
- moveArrowVisible: boolean;
86
- /**
87
- * Color of the move arrow.
88
- */
89
- moveArrowColor: AnnotationColor;
90
- /**
91
- * Whether moves are animated or not.
92
- */
93
- animated: boolean;
94
- /**
95
- * Color theme ID. Must be a property of `Chessboard.colorsets()`.
96
- */
97
- colorset: string;
98
- /**
99
- * Piece theme ID. Must be a property of `Chessboard.piecesets()`.
100
- */
101
- pieceset: string;
102
- /**
103
- * Limits applicable on small-screen devices. For instance, if set to
104
- * ```
105
- * [
106
- * { width: 768, squareSize: 40 },
107
- * { width: 375, squareSize: 24, coordinateVisible: false }
108
- * ]
109
- * ```
110
- * then on screens with resolution ≤768 pixels, the square size will be limited to 40 (whatever the value
111
- * of the `squareSize` attribute); in addition, on screens with resolution ≤375 pixels, the square size
112
- * will be limited to 24 and the row and column coordinates will always be hidden (whatever the value of the
113
- * `coordinateVisible` attribute).
114
- */
115
- smallScreenLimits?: SmallScreenLimit[];
116
62
  /**
117
63
  * Type of action allowed with the mouse on the chessboard. If undefined, then the user cannot interact with the component.
118
64
  *
@@ -142,6 +88,16 @@ export interface ChessboardProps {
142
88
  * Callback invoked when a move is played (only if `interactionMode` is set to `'playMoves'`).
143
89
  */
144
90
  onMovePlayed?: (move: string) => void;
91
+ /**
92
+ * Optional component, to be rendered above the chessboard, and customized with the same square-size / coordinate-visible / turn-visible
93
+ * parameter values as actually used for the chessboard (which may be different from what is defined in props because of small-screen limits).
94
+ */
95
+ topComponent?: (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => JSX.Element;
96
+ /**
97
+ * Optional component, to be rendered below the chessboard, and customized with the same square-size / coordinate-visible / turn-visible
98
+ * parameter values as actually used for the chessboard (which may be different from what is defined in props because of small-screen limits).
99
+ */
100
+ bottomComponent?: (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => JSX.Element;
145
101
  }
146
102
  interface ChessboardState {
147
103
  windowWidth: number;
@@ -21,16 +21,15 @@
21
21
  * *
22
22
  * -------------------------------------------------------------------------- */
23
23
  import * as React from 'react';
24
- import { exception as kokopuException, MoveDescriptor, Position, isSquare, isSquareCouple, isGameVariant } from 'kokopu';
24
+ import { Position, isSquare, isSquareCouple } from 'kokopu';
25
25
  import { IllegalArgument } from '../exception';
26
- import { i18n } from '../i18n';
27
26
  import { sanitizeString, sanitizeBoolean, sanitizePartialObject, sanitizeInteger, sanitizeBoundedInteger, sanitizeOptional } from '../sanitization';
28
27
  import { MIN_SQUARE_SIZE, MAX_SQUARE_SIZE, isAnnotationColor, isAnnotationSymbol, parseSquareMarkers, parseTextMarkers, parseArrowMarkers } from '../types';
29
- import { colorsets, DEFAULT_COLORSET } from './colorsets';
30
- import { piecesets, DEFAULT_PIECESET } from './piecesets';
28
+ import { DEFAULT_SQUARE_SIZE, defaultDynamicBoardProps } from './BoardProperties';
29
+ import { colorsets } from './colorsets';
30
+ import { piecesets } from './piecesets';
31
31
  import { ChessboardImpl, chessboardSize } from './ChessboardImpl';
32
- import { ErrorBox } from '../errorbox/ErrorBox';
33
- const DEFAULT_SQUARE_SIZE = 40;
32
+ import { parsePosition, parseMove } from '../errorbox/parsing';
34
33
  /**
35
34
  * SVG image representing a chessboard diagram. Optionally, the user may interact with the board (move pieces, click on squares...).
36
35
  * Annotations such as square markers or arrows can also be added to the board.
@@ -54,16 +53,20 @@ export class Chessboard extends React.Component {
54
53
  }
55
54
  render() {
56
55
  // Validate the position and move attributes.
57
- const positionInfo = parsePosition(this.props.position);
56
+ const positionInfo = parsePosition(this.props.position, 'Chessboard');
58
57
  if (positionInfo.error) {
59
- return React.createElement(ErrorBox, { title: i18n.INVALID_FEN_ERROR_TITLE, message: positionInfo.message });
58
+ return positionInfo.errorBox;
60
59
  }
61
- const position = positionInfo.position;
62
- const moveInfo = parseMove(position, this.props.move);
60
+ let position = positionInfo.position;
61
+ const moveInfo = parseMove(position, this.props.move, 'Chessboard');
63
62
  if (moveInfo.error) {
64
- return React.createElement(ErrorBox, { title: i18n.INVALID_NOTATION_ERROR_TITLE, message: moveInfo.message });
63
+ return moveInfo.errorBox;
64
+ }
65
+ const move = moveInfo.type === 'regular' ? moveInfo.move : undefined;
66
+ if (moveInfo.type === 'null-move') {
67
+ position = new Position(position);
68
+ position.playNullMove();
65
69
  }
66
- const move = moveInfo.move;
67
70
  // Validate the markers
68
71
  const sqm = parseMarkers(this.props.squareMarkers, 'squareMarkers', parseSquareMarkers, isSquare, isAnnotationColor);
69
72
  const txtm = parseMarkers(this.props.textMarkers, 'textMarkers', parseTextMarkers, isSquare, isTextMarkerElement);
@@ -91,13 +94,21 @@ export class Chessboard extends React.Component {
91
94
  const actualSquareSize = computeSquareSizeForSmallScreens(squareSize, smallScreenLimits, this.state.windowWidth);
92
95
  const actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(coordinateVisible, smallScreenLimits, this.state.windowWidth);
93
96
  const actualTurnVisible = computeTurnVisibleForSmallScreens(turnVisible, smallScreenLimits, this.state.windowWidth);
97
+ const auxilliaryComponentAttr = {
98
+ squareSize: actualSquareSize,
99
+ coordinateVisible: actualCoordinateVisible,
100
+ turnVisible: actualTurnVisible,
101
+ };
94
102
  // Validate the interaction attributes and the callbacks.
95
103
  const interactionMode = this.getInteractionModeAndValidateEditedArrowColor();
96
104
  const { onPieceMoved, onSquareClicked, onArrowEdited, onMovePlayed } = this.props;
97
105
  // Build a key so that a new `ChessboardImpl` component is instantiated each time the position or the move changes
98
106
  // (mandatory to ensure that the move animation works properly and that the internal state of the component remains consistent).
99
107
  const key = `${position.variant()}|${position.fen()}|${move ? position.notation(move) : ''}`;
100
- return (React.createElement(ChessboardImpl, { key: key, position: position, move: move, squareMarkers: sqm, textMarkers: txtm, arrowMarkers: arm, flipped: flipped, squareSize: actualSquareSize, coordinateVisible: actualCoordinateVisible, turnVisible: actualTurnVisible, moveArrowVisible: moveArrowVisible, moveArrowColor: this.props.moveArrowColor, animated: animated, colorset: colorset, pieceset: pieceset, interactionMode: interactionMode, editedArrowColor: this.props.editedArrowColor, onPieceMoved: onPieceMoved, onSquareClicked: onSquareClicked, onArrowEdited: onArrowEdited, onMovePlayed: onMovePlayed }));
108
+ return (React.createElement(React.Fragment, null,
109
+ this.props.topComponent ? this.props.topComponent(auxilliaryComponentAttr) : undefined,
110
+ React.createElement(ChessboardImpl, { key: key, position: position, move: move, squareMarkers: sqm, textMarkers: txtm, arrowMarkers: arm, flipped: flipped, squareSize: actualSquareSize, coordinateVisible: actualCoordinateVisible, turnVisible: actualTurnVisible, moveArrowVisible: moveArrowVisible, moveArrowColor: this.props.moveArrowColor, animated: animated, colorset: colorset, pieceset: pieceset, interactionMode: interactionMode, editedArrowColor: this.props.editedArrowColor, onPieceMoved: onPieceMoved, onSquareClicked: onSquareClicked, onArrowEdited: onArrowEdited, onMovePlayed: onMovePlayed }),
111
+ this.props.bottomComponent ? this.props.bottomComponent(auxilliaryComponentAttr) : undefined));
101
112
  }
102
113
  getInteractionModeAndValidateEditedArrowColor() {
103
114
  const interactionMode = sanitizeOptional(this.props.interactionMode, sanitizeString);
@@ -138,7 +149,7 @@ export class Chessboard extends React.Component {
138
149
  * Return the maximum square size that would allow the chessboard to fit in a rectangle of size `width x height`.
139
150
  */
140
151
  static adaptSquareSize(width, height, attr) {
141
- let { coordinateVisible, turnVisible, smallScreenLimits } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.size()', 'attr'));
152
+ let { coordinateVisible, turnVisible, smallScreenLimits } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'attr'));
142
153
  // Sanitize the arguments.
143
154
  width = sanitizeInteger(width, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'width'));
144
155
  height = sanitizeInteger(height, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'height'));
@@ -211,16 +222,9 @@ export class Chessboard extends React.Component {
211
222
  }
212
223
  }
213
224
  Chessboard.defaultProps = {
225
+ ...defaultDynamicBoardProps(),
214
226
  position: 'start',
215
227
  flipped: false,
216
- squareSize: DEFAULT_SQUARE_SIZE,
217
- coordinateVisible: true,
218
- turnVisible: true,
219
- moveArrowVisible: true,
220
- moveArrowColor: 'b',
221
- animated: false,
222
- colorset: DEFAULT_COLORSET,
223
- pieceset: DEFAULT_PIECESET,
224
228
  };
225
229
  /**
226
230
  * Compute the actual square size taking into account the given small-screen limits and window width.
@@ -263,76 +267,6 @@ function computeSmallScreenLimits(smallScreenLimits, windowWidth, getter) {
263
267
  }
264
268
  return bestAttributeValue;
265
269
  }
266
- /**
267
- * Try to interpret the given object as a chess position.
268
- */
269
- function parsePosition(position) {
270
- if (position instanceof Position) {
271
- return { error: false, position: position };
272
- }
273
- else if (position === 'start' || position === 'empty') {
274
- return { error: false, position: new Position(position) };
275
- }
276
- else if (typeof position === 'string') {
277
- try {
278
- const { variant, fen } = splitGameVariantAndFEN(position);
279
- const result = new Position(variant, 'empty');
280
- result.fen(fen);
281
- return { error: false, position: result };
282
- }
283
- catch (e) {
284
- // istanbul ignore else
285
- if (e instanceof kokopuException.InvalidFEN) {
286
- return { error: true, message: e.message };
287
- }
288
- else {
289
- throw e;
290
- }
291
- }
292
- }
293
- else {
294
- throw new IllegalArgument('Chessboard', 'position');
295
- }
296
- }
297
- /**
298
- * Look for an optional 'chess-variant:' prefix in the position attribute.
299
- */
300
- function splitGameVariantAndFEN(position) {
301
- const separatorIndex = position.indexOf(':');
302
- if (separatorIndex < 0) {
303
- return { variant: 'regular', fen: position };
304
- }
305
- const variant = position.substring(0, separatorIndex);
306
- return isGameVariant(variant) ? { variant: variant, fen: position.substring(separatorIndex + 1) } : { variant: 'regular', fen: position };
307
- }
308
- /**
309
- * Try to interpret the given object `move` as a move descriptor based on the given position.
310
- */
311
- function parseMove(position, move) {
312
- if (move === undefined || move === null) {
313
- return { error: false, move: undefined };
314
- }
315
- else if (move instanceof MoveDescriptor) {
316
- return { error: false, move: move };
317
- }
318
- else if (typeof move === 'string') {
319
- try {
320
- return { error: false, move: position.notation(move) };
321
- }
322
- catch (e) {
323
- // istanbul ignore else
324
- if (e instanceof kokopuException.InvalidNotation) {
325
- return { error: true, message: e.message };
326
- }
327
- else {
328
- throw e;
329
- }
330
- }
331
- }
332
- else {
333
- throw new IllegalArgument('Chessboard', 'move');
334
- }
335
- }
336
270
  /**
337
271
  * Try to interpret the given object as a list of markers.
338
272
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAGhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAkB,QAAQ,EAAU,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpJ,OAAO,EAAE,eAAe,EAAE,eAAe,EACrC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErH,OAAO,EAAuE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvJ,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAmG/D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK,CAAC,SAA2C;IAU7E,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAHT,yBAAoB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAI3D,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,MAAM,CAAC,UAAU;SACjC,CAAC;IACN,CAAC;IAED,iBAAiB;QACb,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,oBAAoB;QAChB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpE,CAAC;IAEO,kBAAkB;QACtB,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM;QAEF,6CAA6C;QAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,YAAY,CAAC,QAAQ,CAAC;QACjC,CAAC;QACD,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,QAAQ,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,uBAAuB;QACvB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACrH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAClH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAExH,sCAAsC;QACtC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1J,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,gDAAgD;QAChD,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAChJ,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjH,MAAM,uBAAuB,GAAG,uCAAuC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtI,MAAM,iBAAiB,GAAG,iCAAiC,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpH,MAAM,uBAAuB,GAAG;YAC5B,UAAU,EAAE,gBAAgB;YAC5B,iBAAiB,EAAE,uBAAuB;YAC1C,WAAW,EAAE,iBAAiB;SACjC,CAAC;QAEF,yDAAyD;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,6CAA6C,EAAE,CAAC;QAC7E,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAElF,kHAAkH;QAClH,gIAAgI;QAChI,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE7F,OAAO,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;YACvF,oBAAC,cAAc,IAAC,GAAG,EAAE,GAAG,EACpB,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAC1G,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,WAAW,EAAE,iBAAiB,EACxG,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EACjG,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EACtC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC/E,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,GACxH;YACD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAC9F,CAAC,CAAC;IACT,CAAC;IAEO,6CAA6C;QACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACrF,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,YAAY,IAAI,eAAe,KAAK,cAAc,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;YAC7I,OAAO,eAAe,CAAC;QAC3B,CAAC;aACI,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,eAAe,CAAC;QAC3B,CAAC;aACI,CAAC;YACF,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAA+G;QACvH,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;QAE5J,0BAA0B;QAC1B,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACzD,sBAAsB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;QACvI,iBAAiB,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAChG,WAAW,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC9E,iBAAiB,GAAG,yBAAyB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAEtI,uCAAuC;QACvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,UAAU,GAAG,gCAAgC,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAChG,iBAAiB,GAAG,uCAAuC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACrH,WAAW,GAAG,iCAAiC,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACvG,CAAC;QAED,0BAA0B;QAC1B,OAAO,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAa,EAAE,MAAc,EAAE,IAAgG;QAClJ,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3J,0BAA0B;QAC1B,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC,CAAC;QACnG,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtG,iBAAiB,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAChG,WAAW,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC9E,iBAAiB,GAAG,yBAAyB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAEjJ,uCAAuC;QACvC,IAAI,aAAa,GAAG,eAAe,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,aAAa,GAAG,gCAAgC,CAAC,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACtG,iBAAiB,GAAG,uCAAuC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACrH,WAAW,GAAG,iCAAiC,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACvG,CAAC;QAED,SAAS,SAAS,CAAC,UAAkB;YACjC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,UAAU,EAAE,iBAAkB,EAAE,WAAY,CAAC,CAAC;YAClH,OAAO,WAAW,IAAI,KAAK,IAAI,YAAY,IAAI,MAAM,CAAC;QAC1D,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACzB,CAAC;aACI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC,GAAG,eAAe,CAAC;QACxB,IAAI,CAAC,GAAG,aAAa,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,CAAC,GAAG,GAAG,CAAC;YACZ,CAAC;iBACI,CAAC;gBACF,CAAC,GAAG,GAAG,CAAC;YACZ,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa;QAChB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa;QAChB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;;AAjOM,uBAAY,GAA6B;IAC5C,GAAG,wBAAwB,EAAE;IAC7B,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,KAAK;CACjB,AAJkB,CAIjB;AAiON;;GAEG;AACH,SAAS,gCAAgC,CAAC,UAAkB,EAAE,iBAAqC,EAAE,WAAmB;IACpH,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9G,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAClG,CAAC;AAGD;;GAEG;AACH,SAAS,uCAAuC,CAAC,iBAA0B,EAAE,iBAAqC,EAAE,WAAmB;IACnI,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5H,OAAO,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,IAAI,wBAAwB,CAAC;AACtH,CAAC;AAGD;;GAEG;AACH,SAAS,iCAAiC,CAAC,WAAoB,EAAE,iBAAqC,EAAE,WAAmB;IACvH,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChH,OAAO,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI,kBAAkB,CAAC;AAC9F,CAAC;AAGD;;GAEG;AACH,SAAS,wBAAwB,CAAI,iBAAqC,EAAE,WAAmB,EAAE,MAAkD;IAC/I,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,IAAI,kBAAkB,GAAkB,SAAS,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QAEpC,yGAAyG;QACzG,2DAA2D;QAC3D,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,SAAS;QACb,CAAC;QAED,iEAAiE;QACjE,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YACxB,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AAGD;;GAEG;AACH,SAAS,YAAY,CAAsB,OAAmD,EAAE,YAAoB,EAAE,KAA2C,EAC7J,UAAkC,EAAE,YAAoC;IAExE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACrB,CAAC;SACI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SACI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE;YAC/C,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;SACI,CAAC;QACF,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AAGD,SAAS,mBAAmB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,kBAAkB,CAAE,KAAiC,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAE,KAAiC,CAAC,KAAK,CAAC,CAAC;AACxI,CAAC;AAGD;;GAEG;AACH,SAAS,yBAAyB,CAAC,iBAAiD,EAAE,gBAAuC;IACzH,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAChE,OAAO,EAAE,CAAC;IACd,CAAC;SACI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzC,MAAM,gBAAgB,EAAE,CAAC;IAC7B,CAAC;SACI,CAAC;QACF,OAAO,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACpE,MAAM,gBAAgB,EAAE,CAAC;YAC7B,CAAC;YACD,OAAO;gBACH,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC;gBAChE,UAAU,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBACjJ,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,eAAe,CAAC;gBACxF,WAAW,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC;aAC/E,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}