kokopu-react 3.0.2 → 3.1.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 (120) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/lib/chessboard/BoardProperties.d.ts +91 -0
  3. package/dist/lib/chessboard/BoardProperties.js +43 -0
  4. package/dist/lib/chessboard/BoardProperties.js.map +1 -0
  5. package/dist/lib/chessboard/Chessboard.d.ts +14 -58
  6. package/dist/lib/chessboard/Chessboard.js +26 -92
  7. package/dist/lib/chessboard/Chessboard.js.map +1 -1
  8. package/dist/lib/errorbox/parsing.d.ts +57 -0
  9. package/dist/lib/errorbox/parsing.js +140 -0
  10. package/dist/lib/errorbox/parsing.js.map +1 -0
  11. package/dist/lib/i18n.d.ts +5 -0
  12. package/dist/lib/i18n.js +6 -0
  13. package/dist/lib/i18n.js.map +1 -1
  14. package/dist/lib/index.d.ts +4 -1
  15. package/dist/lib/index.js +2 -0
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/movetext/Movetext.css +0 -13
  18. package/dist/lib/movetext/Movetext.d.ts +9 -43
  19. package/dist/lib/movetext/Movetext.js +15 -67
  20. package/dist/lib/movetext/Movetext.js.map +1 -1
  21. package/dist/lib/movetext/MovetextImpl.d.ts +7 -28
  22. package/dist/lib/movetext/MovetextImpl.js +15 -94
  23. package/dist/lib/movetext/MovetextImpl.js.map +1 -1
  24. package/dist/lib/navigationboard/NavigationBoard.d.ts +118 -0
  25. package/dist/lib/navigationboard/NavigationBoard.js +112 -0
  26. package/dist/lib/navigationboard/NavigationBoard.js.map +1 -0
  27. package/dist/lib/navigationboard/NavigationField.css +36 -0
  28. package/dist/lib/navigationboard/NavigationField.d.ts +81 -0
  29. package/dist/lib/navigationboard/NavigationField.js +154 -0
  30. package/dist/lib/navigationboard/NavigationField.js.map +1 -0
  31. package/dist/lib/navigationboard/NavigationToolbar.css +51 -0
  32. package/dist/lib/navigationboard/NavigationToolbar.d.ts +41 -0
  33. package/dist/lib/navigationboard/NavigationToolbar.js +124 -0
  34. package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -0
  35. package/doc_src/demo/PageChessboardMove.tsx +17 -0
  36. package/doc_src/demo/PageNavigationBoardBase.tsx +194 -0
  37. package/doc_src/demo/PageNavigationBoardUncontrolledVsControlled.tsx +114 -0
  38. package/doc_src/demo/game-3.pgn +10 -0
  39. package/doc_src/examples/Movetext.md +1 -1
  40. package/doc_src/examples/NavigationBoard.md +15 -0
  41. package/package.json +16 -16
  42. package/scripts/doc.styleguide.config.js +12 -2
  43. package/scripts/docker-compose.yml +1 -1
  44. package/src/chessboard/BoardProperties.ts +131 -0
  45. package/src/chessboard/Chessboard.tsx +41 -170
  46. package/src/errorbox/parsing.tsx +158 -0
  47. package/src/i18n.ts +7 -0
  48. package/src/index.ts +5 -1
  49. package/src/movetext/Movetext.css +0 -13
  50. package/src/movetext/Movetext.tsx +20 -85
  51. package/src/movetext/MovetextImpl.tsx +28 -115
  52. package/src/navigationboard/NavigationBoard.tsx +231 -0
  53. package/src/navigationboard/NavigationField.css +36 -0
  54. package/src/navigationboard/NavigationField.tsx +185 -0
  55. package/src/navigationboard/NavigationToolbar.css +51 -0
  56. package/src/navigationboard/NavigationToolbar.tsx +174 -0
  57. package/test/05_chessboard_graphic.js +2 -0
  58. package/test/09_chessboard_small_screens.js +21 -0
  59. package/test/10_movetext_graphic.js +5 -0
  60. package/test/11_movetext_interaction.js +12 -8
  61. package/test/12_navigation_board.js +168 -0
  62. package/test/graphic_references/05_chessboard_graphic/move/illegal_null-move.png +0 -0
  63. package/test/graphic_references/05_chessboard_graphic/move/null-move.png +0 -0
  64. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_bottom_component.png +0 -0
  65. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/default_top_component.png +0 -0
  66. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_bottom_component.png +0 -0
  67. package/test/graphic_references/09_chessboard_small_screens/top_bottom_components/reduced_top_component.png +0 -0
  68. package/test/graphic_references/10_movetext_graphic/format_move/format_text.png +0 -0
  69. package/test/graphic_references/10_movetext_graphic/options/wrong_piece_symbol_value.png +0 -0
  70. package/test/graphic_references/11_movetext_interaction/select_moves/click_on_unselected_without_callback.png +0 -0
  71. package/test/graphic_references/12_navigation_board/controlled/default.png +0 -0
  72. package/test/graphic_references/12_navigation_board/controlled/forbidden_navigation_0.png +0 -0
  73. package/test/graphic_references/12_navigation_board/controlled/forbidden_navigation_1.png +0 -0
  74. package/test/graphic_references/12_navigation_board/controlled/invalid_node_id.png +0 -0
  75. package/test/graphic_references/12_navigation_board/controlled/no_callback_defined_0.png +0 -0
  76. package/test/graphic_references/12_navigation_board/controlled/no_callback_defined_1.png +0 -0
  77. package/test/graphic_references/12_navigation_board/controlled/overriding_initial_node_id.png +0 -0
  78. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_0.png +0 -0
  79. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_1.png +0 -0
  80. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_2.png +0 -0
  81. package/test/graphic_references/12_navigation_board/controlled/regular_navigation_3.png +0 -0
  82. package/test/graphic_references/12_navigation_board/error/pgn_parsing_error.png +0 -0
  83. package/test/graphic_references/12_navigation_board/error/wrong_game_type.png +0 -0
  84. package/test/graphic_references/12_navigation_board/theme/custom_1.png +0 -0
  85. package/test/graphic_references/12_navigation_board/theme/custom_2.png +0 -0
  86. package/test/graphic_references/12_navigation_board/theme/large.png +0 -0
  87. package/test/graphic_references/12_navigation_board/theme/small.png +0 -0
  88. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_0.png +0 -0
  89. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_1.png +0 -0
  90. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_beginning_2.png +0 -0
  91. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_0.png +0 -0
  92. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_1.png +0 -0
  93. package/test/graphic_references/12_navigation_board/uncontrolled/forbidden_navigation_at_end_2.png +0 -0
  94. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_at_end.png +0 -0
  95. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_at_specific_id.png +0 -0
  96. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_default.png +0 -0
  97. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_default_with_game_index.png +0 -0
  98. package/test/graphic_references/12_navigation_board/uncontrolled/initial_state_on_null-move.png +0 -0
  99. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_0.png +0 -0
  100. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_1.png +0 -0
  101. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_2.png +0 -0
  102. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_3.png +0 -0
  103. package/test/graphic_references/12_navigation_board/uncontrolled/navigation_with_keys_4.png +0 -0
  104. package/test/graphic_references/12_navigation_board/uncontrolled/regular_flipping_0.png +0 -0
  105. package/test/graphic_references/12_navigation_board/uncontrolled/regular_flipping_1.png +0 -0
  106. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_0.png +0 -0
  107. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_1.png +0 -0
  108. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_2.png +0 -0
  109. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_3.png +0 -0
  110. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_4.png +0 -0
  111. package/test/graphic_references/12_navigation_board/uncontrolled/regular_navigation_5.png +0 -0
  112. package/test/graphic_test_app/05_chessboard_graphic/move.tsx +2 -0
  113. package/test/graphic_test_app/09_chessboard_small_screens/top_bottom_components.tsx +48 -0
  114. package/test/graphic_test_app/10_movetext_graphic/format_move.tsx +31 -0
  115. package/test/graphic_test_app/10_movetext_graphic/options.tsx +1 -0
  116. package/test/graphic_test_app/11_movetext_interaction/select_moves.tsx +1 -0
  117. package/test/graphic_test_app/12_navigation_board/controlled.tsx +43 -0
  118. package/test/graphic_test_app/12_navigation_board/error.tsx +34 -0
  119. package/test/graphic_test_app/12_navigation_board/theme.tsx +38 -0
  120. package/test/graphic_test_app/12_navigation_board/uncontrolled.tsx +56 -0
@@ -25,6 +25,7 @@ import { Variation, nagSymbol } from 'kokopu';
25
25
  import { i18n } from '../i18n';
26
26
  import { fillPlaceholder } from '../util';
27
27
  import { Chessboard } from '../chessboard/Chessboard';
28
+ import { NavigationField, firstNodeId, previousNodeId, nextNodeId, lastNodeId } from '../navigationboard/NavigationField';
28
29
  import { htmlFilter } from './htmlFilter';
29
30
  import './Movetext.css';
30
31
  /**
@@ -35,13 +36,13 @@ import './Movetext.css';
35
36
  export class MovetextImpl extends React.Component {
36
37
  constructor() {
37
38
  super(...arguments);
38
- this.focusFieldRef = React.createRef();
39
+ this.navigationFieldRef = React.createRef();
39
40
  }
40
41
  render() {
41
42
  return (React.createElement("div", { className: "kokopu-movetext" },
42
43
  this.renderHeaders(),
43
44
  this.renderBody(),
44
- this.renderFocusField()));
45
+ this.renderNavigationField()));
45
46
  }
46
47
  renderHeaders() {
47
48
  if (!this.props.headerVisible) {
@@ -124,12 +125,11 @@ export class MovetextImpl extends React.Component {
124
125
  }
125
126
  return React.createElement("div", { className: "kokopu-header-annotator", key: "annotator" }, filter(fillPlaceholder(i18n.ANNOTATED_BY, annotator)));
126
127
  }
127
- renderFocusField() {
128
+ renderNavigationField() {
128
129
  if (this.props.interactionMode !== 'selectMove') {
129
130
  return undefined;
130
131
  }
131
- return (React.createElement("div", { className: "kokopu-focusFieldContainer" },
132
- React.createElement("a", { className: "kokopu-focusField", href: "#", ref: this.focusFieldRef, onKeyDown: evt => this.handleKeyDownInFocusField(evt) })));
132
+ return React.createElement(NavigationField, { ref: this.navigationFieldRef, onFirstPressed: () => this.handleNavigationPressed(firstNodeId, 'key-first'), onPreviousPressed: () => this.handleNavigationPressed(previousNodeId, 'key-previous'), onNextPressed: () => this.handleNavigationPressed(nextNodeId, 'key-next'), onLastPressed: () => this.handleNavigationPressed(lastNodeId, 'key-last'), onExitPressed: () => this.handleExitPressed() });
133
133
  }
134
134
  renderBody() {
135
135
  const filter = htmlFilter('comment');
@@ -258,7 +258,7 @@ export class MovetextImpl extends React.Component {
258
258
  for (let textSegment of comment.split('[#]')) {
259
259
  if (!isFirstTextSegment) {
260
260
  const position = node instanceof Variation ? node.initialPosition() : node.position();
261
- const diagram = React.createElement(Chessboard, { position: position, squareMarkers: node.tag('csl'), arrowMarkers: node.tag('cal'), textMarkers: node.tag('ctl'), flipped: this.props.diagramOptions.flipped, squareSize: this.props.diagramOptions.squareSize, coordinateVisible: this.props.diagramOptions.coordinateVisible, turnVisible: this.props.diagramOptions.turnVisible, smallScreenLimits: this.props.diagramOptions.smallScreenLimits, colorset: this.props.diagramOptions.colorset, pieceset: this.props.diagramOptions.pieceset });
261
+ const diagram = React.createElement(Chessboard, { position: position, squareMarkers: node.tag('csl'), arrowMarkers: node.tag('cal'), textMarkers: node.tag('ctl'), flipped: this.props.diagramOptions.flipped, squareSize: this.props.diagramOptions.squareSize, coordinateVisible: this.props.diagramOptions.coordinateVisible, turnVisible: this.props.diagramOptions.turnVisible, colorset: this.props.diagramOptions.colorset, pieceset: this.props.diagramOptions.pieceset, smallScreenLimits: this.props.diagramOptions.smallScreenLimits });
262
262
  segmentElements.push(React.createElement("div", { className: "kokopu-diagram", key: 'diagram-' + (diagramIndex++) }, diagram));
263
263
  }
264
264
  isFirstTextSegment = false;
@@ -287,30 +287,14 @@ export class MovetextImpl extends React.Component {
287
287
  }
288
288
  return comment ? comment : undefined;
289
289
  }
290
- handleKeyDownInFocusField(evt) {
291
- if (evt.key !== 'Home' && evt.key !== 'ArrowLeft' && evt.key !== 'ArrowRight' && evt.key !== 'End' && evt.key !== 'Escape') {
292
- return;
290
+ handleNavigationPressed(transition, evtOrigin) {
291
+ if (this.props.selection) {
292
+ this.fireMoveSelected(transition(this.props.game, this.props.selection), evtOrigin);
293
293
  }
294
- evt.preventDefault();
295
- if (!this.props.selection) {
296
- return;
297
- }
298
- if (evt.key === 'Home') {
299
- this.fireMoveSelected(firstNodeIdImpl(this.props.game, this.props.selection), 'key-first');
300
- }
301
- else if (evt.key === 'ArrowLeft') {
302
- this.fireMoveSelected(previousNodeIdImpl(this.props.game, this.props.selection), 'key-previous');
303
- }
304
- else if (evt.key === 'ArrowRight') {
305
- this.fireMoveSelected(nextNodeIdImpl(this.props.game, this.props.selection), 'key-next');
306
- }
307
- else if (evt.key === 'End') {
308
- this.fireMoveSelected(lastNodeIdImpl(this.props.game, this.props.selection), 'key-last');
309
- }
310
- else { // evt.key === 'Escape'
311
- if (this.props.game.findById(this.props.selection)) {
312
- this.fireMoveSelected(undefined, 'key-exit');
313
- }
294
+ }
295
+ handleExitPressed() {
296
+ if (this.props.selection && this.props.game.findById(this.props.selection)) {
297
+ this.fireMoveSelected(undefined, 'key-exit');
314
298
  }
315
299
  }
316
300
  fireMoveSelected(nodeId, evtOrigin) {
@@ -328,76 +312,13 @@ export class MovetextImpl extends React.Component {
328
312
  * Set the focus to the current component.
329
313
  */
330
314
  focus() {
331
- const target = this.focusFieldRef.current;
315
+ const target = this.navigationFieldRef.current;
316
+ // istanbul ignore else
332
317
  if (target) {
333
318
  target.focus();
334
319
  }
335
320
  }
336
321
  }
337
- /**
338
- * See {@link Movetext.firstNodeId}.
339
- */
340
- export function firstNodeIdImpl(game, selection) {
341
- if (!game.findById(selection)) {
342
- return undefined;
343
- }
344
- return selection === 'start' ? undefined : 'start';
345
- }
346
- /**
347
- * See {@link Movetext.previousNodeId}.
348
- */
349
- export function previousNodeIdImpl(game, selection) {
350
- let currentNode = game.findById(selection);
351
- if (!currentNode) {
352
- return undefined;
353
- }
354
- if (currentNode instanceof Variation) {
355
- currentNode = currentNode.parentNode();
356
- if (!currentNode) {
357
- return undefined; // This case corresponds to the first variation being selected initially.
358
- }
359
- }
360
- while (currentNode) {
361
- const previousNode = currentNode.previous();
362
- if (previousNode) {
363
- return previousNode.id();
364
- }
365
- currentNode = currentNode.parentVariation().parentNode();
366
- }
367
- return 'start';
368
- }
369
- /**
370
- * See {@link Movetext.nextNodeId}.
371
- */
372
- export function nextNodeIdImpl(game, selection) {
373
- const currentNode = game.findById(selection);
374
- if (!currentNode) {
375
- return undefined;
376
- }
377
- const nextNode = currentNode instanceof Variation ? currentNode.first() : currentNode.next();
378
- return nextNode ? nextNode.id() : undefined;
379
- }
380
- /**
381
- * See {@link Movetext.lastNodeId}.
382
- */
383
- export function lastNodeIdImpl(game, selection) {
384
- let currentNode = game.findById(selection);
385
- if (!currentNode) {
386
- return undefined;
387
- }
388
- currentNode = currentNode instanceof Variation ? currentNode.first() : currentNode.next();
389
- if (!currentNode) { // Ensure that the input node is not already the last one.
390
- return undefined;
391
- }
392
- let currentNodeNotNull = currentNode;
393
- while (true) {
394
- const nextNode = currentNodeNotNull.next();
395
- if (!nextNode) {
396
- return currentNodeNotNull.id();
397
- }
398
- currentNodeNotNull = nextNode;
399
- }
400
- }
401
322
  /**
402
323
  * Example: `'hello world'` is turned into `'Hello world'`.
403
324
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MovetextImpl.js","sourceRoot":"","sources":["../../../src/movetext/MovetextImpl.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAGhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAA6C,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,gBAAgB,CAAC;AA2BxB;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK,CAAC,SAA4B;IAApE;;QAES,kBAAa,GAAuC,KAAK,CAAC,SAAS,EAAE,CAAC;IAqV/E,CAAC;IAnVA,MAAM;QACL,OAAO,CACN,6BAAK,SAAS,EAAC,iBAAiB;YAC9B,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE,CACnB,CACN,CAAC;IACH,CAAC;IAEO,aAAa;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,gBAAgB,IAAE,OAAO,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,MAAyC,EAAE,KAAY;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,CAAE,2BAA2B,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,gCAAgC,CAAE,CAAC;QACxI,MAAM,QAAQ,GAAG,8BAAM,SAAS,EAAC,iBAAiB,GAAQ,CAAC;QAC3D,MAAM,iBAAiB,GAAG,8BAAM,SAAS,EAAC,0BAA0B,IAAE,MAAM,CAAC,UAAU,CAAC,CAAQ,CAAC;QACjG,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,2BAA2B,IAAE,MAAM,CAAC,KAAK,CAAC,CAAQ,CAAC;QAC1H,MAAM,aAAa,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,4BAA4B,IAAE,MAAM,CAAQ,CAAC;QACtH,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,mBAAmB;QACzG,MAAM,gBAAgB,GAAG,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjF,8BAAM,SAAS,EAAC,gCAAgC;gBAAE,YAAY;gBAAE,SAAS;gBAAE,aAAa,CAAQ,CAAC;QAClG,OAAO,6BAAK,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,KAAK;YAAG,QAAQ;YAAE,iBAAiB;YAAE,gBAAgB,CAAO,CAAC;IAC5H,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,MAAyC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,qBAAqB,IAAE,SAAS,CAAQ,CAAC;QACpH,MAAM,UAAU,GAAG,8BAAM,SAAS,EAAC,qBAAqB,IAAE,MAAM,CAAC,GAAG,CAAC,CAAQ,CAAC;QAC9E,OAAO,6BAAK,SAAS,EAAC,+BAA+B,EAAC,GAAG,EAAC,aAAa;YAAE,UAAU;YAAE,YAAY,CAAO,CAAC;IAC1G,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAyC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,oBAAoB,IAAE,mBAAmB,CAAC,IAAI,CAAC,CAAQ,CAAC;QAC7H,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,oBAAoB,IAAE,MAAM,CAAC,IAAI,CAAC,CAAQ,CAAC;QAChH,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,uCAAuC;QACtI,OAAO,6BAAK,SAAS,EAAC,6BAA6B,EAAC,GAAG,EAAC,WAAW;YAAE,WAAW;YAAE,SAAS;YAAE,WAAW,CAAO,CAAC;IACjH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAyC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,6BAAK,SAAS,EAAC,yBAAyB,EAAC,GAAG,EAAC,WAAW,IAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAO,CAAC;IAC/H,CAAC;IAEO,gBAAgB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,CACN,6BAAK,SAAS,EAAC,4BAA4B;YAC1C,2BAAG,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAM,CACzH,CACN,CAAC;IACH,CAAC;IAEO,UAAU;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAyC,EAAE,SAAoB,EAAE,eAAwB,EAAE,UAAuB;QAEzI,MAAM,UAAU,GAAsB,EAAE,CAAC,CAAC,qDAAqD;QAC/F,IAAI,wBAAwB,GAAsB,EAAE,CAAC;QAErD,wCAAwC;QACxC,SAAS,cAAc;YACtB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,OAAO;YACR,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,6BAAK,SAAS,EAAC,kBAAkB,EAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAG,wBAAwB,CAAO,CAAC,CAAC;YACvH,wBAAwB,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC/B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC1E,CAAC;iBACI,CAAC;gBACL,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxF,CAAC;QACF,CAAC;QAED,oEAAoE;QACpE,IAAI,oBAAoB,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;YAE3B,oFAAoF;YACpF,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAE3E,8BAA8B;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC1B,cAAc,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBAChE,CAAC;qBACI,CAAC;oBACL,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACF,CAAC;YAED,4BAA4B;YAC5B,IAAI,wBAAwB,GAAG,KAAK,CAAC;YACrC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC9C,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC9E,IAAI,mBAAmB,EAAE,CAAC;oBACzB,IAAI,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;wBACpC,cAAc,EAAE,CAAC;wBACjB,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACtC,CAAC;yBACI,CAAC;wBACL,wBAAwB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACpD,CAAC;oBACD,wBAAwB,GAAG,IAAI,CAAC;gBACjC,CAAC;YACF,CAAC;YAED,sDAAsD;YACtD,oBAAoB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,wBAAwB,CAAC,CAAC;YAC/E,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,2DAA2D;QAC3D,IAAI,eAAe,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3C,wBAAwB,CAAC,IAAI,CAAC,8BAAM,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAC,aAAa,IAAE,YAAY,CAAC,UAAW,CAAC,CAAQ,CAAC,CAAC;QACzH,CAAC;QAED,oDAAoD;QACpD,cAAc,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,6BAAK,SAAS,EAAC,uCAAuC,EAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAG,QAAQ,CAAO,CAAC;QACrG,CAAC;aACI,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;YACtC,OAAO,6BAAK,SAAS,EAAC,sCAAsC,EAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAG,QAAQ,CAAO,CAAC;QACpG,CAAC;aACI,CAAC;YACL,OAAO,8BAAM,SAAS,EAAC,sCAAsC,EAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAG,QAAQ,CAAQ,CAAC;QACtG,CAAC;IACF,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,IAAc,EAAE,oBAA6B;QAE/D,cAAc;QACd,IAAI,UAAU,GAAoB,SAAS,CAAC;QAC5C,IAAI,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,EAAE,CAAC;YACtD,MAAM,cAAc,GAAI,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5F,UAAU,GAAG,8BAAM,SAAS,EAAC,mBAAmB,IAAE,cAAc,CAAQ,CAAC;QAC1E,CAAC;QAED,gBAAgB;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/D,OAAO;QACP,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,8BAAM,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,GAAG,IAAG,SAAS,CAAC,GAAG,CAAC,CAAQ,CAAC,CAAC;QAE3G,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,CAAE,aAAa,CAAE,CAAC;QACzC,IAAI,OAAO,GAA6B,SAAS,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC7D,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;YACjD,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC5C,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CACN,8BAAM,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YACxD,8BAAM,SAAS,EAAC,oBAAoB,EAAC,OAAO,EAAE,OAAO;gBACnD,UAAU;gBACX,8BAAM,SAAS,EAAC,qBAAqB,IAAE,YAAY,CAAQ;gBAC1D,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAC7C,CACD,CACP,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAyC,EAAE,IAA0B,EAAE,OAAe;QAC3G,IAAI,OAAwB,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,eAAe,GAAsB,EAAE,CAAC;YAC9C,IAAI,kBAAkB,GAAG,IAAI,CAAC;YAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,KAAK,IAAI,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,IAAI,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtF,MAAM,OAAO,GAAG,oBAAC,UAAU,IAAC,QAAQ,EAAE,QAAQ,EAC7C,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAC3F,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAChD,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,EAC9D,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAClD,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,EAC9D,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAC5C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,GAC3C,CAAC;oBACH,eAAe,CAAC,IAAI,CAAC,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC,IAAG,OAAO,CAAO,CAAC,CAAC;gBAC3G,CAAC;gBACD,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;YACD,OAAO,GAAG,eAAe,CAAC;QAC3B,CAAC;aACI,CAAC;YACL,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC;QACnC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,GAAG,IAAG,OAAO,CAAO,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,GAAG,IAAG,OAAO,CAAQ,CAAC;IACvJ,CAAC;IAEO,cAAc,CAAC,IAA0B;QAChD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YAEb,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,0CAA0C;YAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IAEO,yBAAyB,CAAC,GAA2C;QAC5E,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5H,OAAO;QACR,CAAC;QACD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;aACI,IAAI,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;QAClG,CAAC;aACI,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1F,CAAC;aACI,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1F,CAAC;aACI,CAAC,CAAC,uBAAuB;YAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;IACF,CAAC;IAEO,gBAAgB,CAAC,MAA0B,EAAE,SAA8E;QAClI,IAAI,CAAC,MAAM,IAAI,SAAS,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;CAED;AAGD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU,EAAE,SAAiB;IAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAU,EAAE,SAAiB;IAC/D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,WAAW,YAAY,SAAS,EAAE,CAAC;QACtC,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC,CAAC,yEAAyE;QAC5F,CAAC;IACF,CAAC;IACD,OAAO,WAAW,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,YAAY,CAAC,EAAE,EAAE,CAAC;QAC1B,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,SAAiB;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,YAAY,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7F,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,SAAiB;IAC3D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,WAAW,GAAG,WAAW,YAAY,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1F,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,0DAA0D;QAC7E,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,kBAAkB,GAAG,WAAW,CAAC;IACrC,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,kBAAkB,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC;QACD,kBAAkB,GAAG,QAAQ,CAAC;IAC/B,CAAC;AACF,CAAC;AAGD;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAGD,SAAS,YAAY,CAAC,MAAkB;IACvC,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,OAAO,oBAAoB,CAAC;QAC5C,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC;QAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC;IAC/B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"MovetextImpl.js","sourceRoot":"","sources":["../../../src/movetext/MovetextImpl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
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 * as React from 'react';
24
+ import { Database, Game } from 'kokopu';
25
+ import { DynamicBoardGraphicProps } from '../chessboard/BoardProperties';
26
+ export interface NavigationBoardProps extends DynamicBoardGraphicProps {
27
+ /**
28
+ * Displayed game. Can be a [kokopu.Game](https://kokopu.yo35.org/docs/current/classes/Game.html) object,
29
+ * a [kokopu.Database](https://kokopu.yo35.org/docs/current/classes/Database.html) object,
30
+ * or a [PGN string](https://en.wikipedia.org/wiki/Portable_Game_Notation).
31
+ */
32
+ game: Game | Database | string;
33
+ /**
34
+ * Index of the game to display (only if attribute `game` is a [kokopu.Database](https://kokopu.yo35.org/docs/current/classes/Database.html)
35
+ * 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.
36
+ * If omitted, the first game of the database/PGN is displayed.
37
+ */
38
+ gameIndex: number;
39
+ /**
40
+ * ID of the move initially selected (or `'start'`/`'end'` for the beginning/end of the main variation) when the component is uncontrolled.
41
+ * Use [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id) to get the ID of a game move.
42
+ * Ignored if the `nodeId` attribute is provided.
43
+ */
44
+ initialNodeId: string;
45
+ /**
46
+ * ID of the selected move (or `'start'`/`'end'` for the beginning/end of the main variation).
47
+ * Use [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id) to get the ID of a game move.
48
+ * If provided (i.e. if the component is controlled), the attribute `onNodeIdChanged` must be provided as well.
49
+ */
50
+ nodeId?: string;
51
+ /**
52
+ * Callback invoked in controlled-component mode, when the user changes the selected move.
53
+ *
54
+ * @param nodeId - ID of the selected move (as returned by [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id)),
55
+ * or `'start'` for the beginning of the main variation.
56
+ */
57
+ onNodeIdChanged?: (nodeId: string) => void;
58
+ /**
59
+ * Whether the board is initially flipped (i.e. seen from Black's point of view) or not, when the flip state is uncontrolled.
60
+ * Ignored if the `flipped` attribute is provided.
61
+ */
62
+ initialFlipped: boolean;
63
+ /**
64
+ * Whether the board is flipped (i.e. seen from Black's point of view) or not.
65
+ * If provided (i.e. if the flip state is controlled), the attribute `onFlippedChanged` must be provided as well.
66
+ */
67
+ flipped?: boolean;
68
+ /**
69
+ * Callback invoked in controlled-flip-state mode, when the user flips the board.
70
+ *
71
+ * @param flipped - New flip state.
72
+ */
73
+ onFlippedChanged?: (flipped: boolean) => void;
74
+ /**
75
+ * Whether the flip button is visible or not in the toolbar.
76
+ */
77
+ flipButtonVisible: boolean;
78
+ }
79
+ interface NavigationBoardState {
80
+ nodeIdAsUncontrolled: string;
81
+ flippedAsUncontrolled: boolean;
82
+ }
83
+ /**
84
+ * Component displaying the positions occurring in a chess game, with navigation buttons to browse these positions.
85
+ */
86
+ export declare class NavigationBoard extends React.Component<NavigationBoardProps, NavigationBoardState> {
87
+ static defaultProps: {
88
+ game: Game;
89
+ gameIndex: number;
90
+ initialNodeId: string;
91
+ initialFlipped: boolean;
92
+ flipButtonVisible: boolean;
93
+ moveArrowVisible: boolean;
94
+ moveArrowColor: import("..").AnnotationColor;
95
+ animated: boolean;
96
+ squareSize: number;
97
+ coordinateVisible: boolean;
98
+ turnVisible: boolean;
99
+ colorset: string;
100
+ pieceset: string;
101
+ smallScreenLimits?: import("../chessboard/BoardProperties").SmallScreenLimit[] | undefined;
102
+ };
103
+ private navigationFieldRef;
104
+ constructor(props: NavigationBoardProps);
105
+ render(): React.JSX.Element;
106
+ private renderBoard;
107
+ private renderNavigationField;
108
+ private renderToolbar;
109
+ private handleNavigationButtonClicked;
110
+ private handleFlipButtonClicked;
111
+ /**
112
+ * Set the focus to the current component.
113
+ *
114
+ * @public
115
+ */
116
+ focus(): void;
117
+ }
118
+ export {};
@@ -0,0 +1,112 @@
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 * as React from 'react';
24
+ import { Game, Node as GameNode } from 'kokopu';
25
+ import { sanitizeBoolean, sanitizeOptional, sanitizeString } from '../sanitization';
26
+ import { defaultDynamicBoardProps } from '../chessboard/BoardProperties';
27
+ import { Chessboard } from '../chessboard/Chessboard';
28
+ import { parseGame } from '../errorbox/parsing';
29
+ import { NavigationField, firstNodeId, previousNodeId, nextNodeId, lastNodeId } from '../navigationboard/NavigationField';
30
+ import { NavigationToolbar } from './NavigationToolbar';
31
+ /**
32
+ * Component displaying the positions occurring in a chess game, with navigation buttons to browse these positions.
33
+ */
34
+ export class NavigationBoard extends React.Component {
35
+ constructor(props) {
36
+ super(props);
37
+ this.navigationFieldRef = React.createRef();
38
+ this.state = {
39
+ nodeIdAsUncontrolled: sanitizeString(props.initialNodeId),
40
+ flippedAsUncontrolled: sanitizeBoolean(props.initialFlipped),
41
+ };
42
+ }
43
+ render() {
44
+ // Validate the game and game-index attributes.
45
+ const info = parseGame(this.props.game, this.props.gameIndex, 'NavigationBoard');
46
+ if (info.error) {
47
+ return info.errorBox;
48
+ }
49
+ // Fetch the current node/variation.
50
+ const currentNodeId = sanitizeOptional(this.props.nodeId, sanitizeString) ?? this.state.nodeIdAsUncontrolled;
51
+ const currentNode = info.game.findById(currentNodeId) ?? info.game.mainVariation();
52
+ // Flip state.
53
+ const flipped = sanitizeOptional(this.props.flipped, sanitizeBoolean) ?? this.state.flippedAsUncontrolled;
54
+ return (React.createElement("div", { className: "kokopu-navigationBoard" },
55
+ this.renderBoard(info.game, currentNode, flipped),
56
+ this.renderNavigationField(info.game, currentNode.id())));
57
+ }
58
+ renderBoard(game, node, flipped) {
59
+ const position = node instanceof GameNode ? node.positionBefore() : node.initialPosition();
60
+ const move = node instanceof GameNode ? node.notation() : undefined;
61
+ return React.createElement(Chessboard, { position: position, move: move, flipped: flipped, squareMarkers: node.tag('csl'), arrowMarkers: node.tag('cal'), textMarkers: node.tag('ctl'), squareSize: this.props.squareSize, coordinateVisible: this.props.coordinateVisible, turnVisible: this.props.turnVisible, colorset: this.props.colorset, pieceset: this.props.pieceset, smallScreenLimits: this.props.smallScreenLimits, moveArrowVisible: this.props.moveArrowVisible, moveArrowColor: this.props.moveArrowColor, animated: this.props.animated, bottomComponent: ({ squareSize }) => this.renderToolbar(game, node.id(), squareSize) });
62
+ }
63
+ renderNavigationField(game, currentNodeId) {
64
+ return React.createElement(NavigationField, { ref: this.navigationFieldRef, onFirstPressed: () => this.handleNavigationButtonClicked(firstNodeId(game, currentNodeId)), onPreviousPressed: () => this.handleNavigationButtonClicked(previousNodeId(game, currentNodeId)), onNextPressed: () => this.handleNavigationButtonClicked(nextNodeId(game, currentNodeId)), onLastPressed: () => this.handleNavigationButtonClicked(lastNodeId(game, currentNodeId)) });
65
+ }
66
+ renderToolbar(game, currentNodeId, squareSize) {
67
+ const flipButtonVisible = sanitizeBoolean(this.props.flipButtonVisible);
68
+ return React.createElement(NavigationToolbar, { flipButtonVisible: flipButtonVisible, squareSize: squareSize, onFirstClicked: () => this.handleNavigationButtonClicked(firstNodeId(game, currentNodeId)), onPreviousClicked: () => this.handleNavigationButtonClicked(previousNodeId(game, currentNodeId)), onNextClicked: () => this.handleNavigationButtonClicked(nextNodeId(game, currentNodeId)), onLastClicked: () => this.handleNavigationButtonClicked(lastNodeId(game, currentNodeId)), onFlipClicked: () => this.handleFlipButtonClicked() });
69
+ }
70
+ handleNavigationButtonClicked(targetNodeId) {
71
+ this.focus();
72
+ if (targetNodeId === undefined) {
73
+ return;
74
+ }
75
+ if (this.props.nodeId === undefined) { // uncontrolled-component behavior
76
+ this.setState({ nodeIdAsUncontrolled: targetNodeId });
77
+ }
78
+ else if (this.props.onNodeIdChanged) { // controlled-component behavior
79
+ this.props.onNodeIdChanged(targetNodeId);
80
+ }
81
+ }
82
+ handleFlipButtonClicked() {
83
+ this.focus();
84
+ if (this.props.flipped === undefined) { // uncontrolled flip state
85
+ this.setState({ flippedAsUncontrolled: !this.state.flippedAsUncontrolled });
86
+ }
87
+ else if (this.props.onFlippedChanged) { // controlled flip state
88
+ this.props.onFlippedChanged(!this.props.flipped);
89
+ }
90
+ }
91
+ /**
92
+ * Set the focus to the current component.
93
+ *
94
+ * @public
95
+ */
96
+ focus() {
97
+ const target = this.navigationFieldRef.current;
98
+ // istanbul ignore else
99
+ if (target) {
100
+ target.focus();
101
+ }
102
+ }
103
+ }
104
+ NavigationBoard.defaultProps = {
105
+ ...defaultDynamicBoardProps(),
106
+ game: new Game(),
107
+ gameIndex: 0,
108
+ initialNodeId: 'start',
109
+ initialFlipped: false,
110
+ flipButtonVisible: true,
111
+ };
112
+ //# sourceMappingURL=NavigationBoard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationBoard.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationBoard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
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
+
24
+
25
+ .kokopu-focusFieldContainer {
26
+ position: fixed;
27
+ bottom: 0px;
28
+ right: 0px;
29
+ width: 0px;
30
+ height: 0px;
31
+ overflow: hidden;
32
+ }
33
+
34
+ .kokopu-focusField {
35
+ position: absolute; /* see #1 */
36
+ }
@@ -0,0 +1,81 @@
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 * as React from 'react';
24
+ import { Game } from 'kokopu';
25
+ import './NavigationField.css';
26
+ interface NavigationFieldProps {
27
+ onFirstPressed?: () => void;
28
+ onPreviousPressed?: () => void;
29
+ onNextPressed?: () => void;
30
+ onLastPressed?: () => void;
31
+ onExitPressed?: () => void;
32
+ }
33
+ /**
34
+ * Invisible field, to capture keyboard events.
35
+ */
36
+ export declare class NavigationField extends React.Component<NavigationFieldProps> {
37
+ private focusFieldRef;
38
+ render(): React.JSX.Element;
39
+ private handleKeyDown;
40
+ /**
41
+ * Set the focus to the component.
42
+ */
43
+ focus(): void;
44
+ }
45
+ /**
46
+ * Return the ID of the main variation in the given chess game.
47
+ * If the given selection corresponds already at the main variation, `undefined` is returned.
48
+ *
49
+ * @param game - Considered chess game.
50
+ * @param selection - ID of the selected move (or `'start'` for the beginning of the main variation).
51
+ * @public
52
+ */
53
+ export declare function firstNodeId(game: Game, selection: string): string | undefined;
54
+ /**
55
+ * Return the ID of the node immediately preceding the given selection in the given chess game.
56
+ * If no such node exists, `undefined` is returned.
57
+ *
58
+ * @param game - Considered chess game.
59
+ * @param selection - ID of the selected move (or `'start'` for the beginning of the main variation).
60
+ * @public
61
+ */
62
+ export declare function previousNodeId(game: Game, selection: string): string | undefined;
63
+ /**
64
+ * Return the ID of the node immediately following the given selection in the given chess game.
65
+ * If no such node exists, `undefined` is returned.
66
+ *
67
+ * @param game - Considered chess game.
68
+ * @param selection - ID of the selected move (or `'start'` for the beginning of the main variation).
69
+ * @public
70
+ */
71
+ export declare function nextNodeId(game: Game, selection: string): string | undefined;
72
+ /**
73
+ * Return the ID of the node at then end of the variation in which lies the given selection in the given chess game.
74
+ * If the selection is already at the end its variation, `undefined` is returned.
75
+ *
76
+ * @param game - Considered chess game.
77
+ * @param selection - ID of the selected move (or `'start'` for the beginning of the main variation).
78
+ * @public
79
+ */
80
+ export declare function lastNodeId(game: Game, selection: string): string | undefined;
81
+ export {};