@cornerstonejs/tools 0.9.0 → 0.9.3

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 (123) hide show
  1. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +7 -7
  2. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  3. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +1 -1
  4. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownActivate.js.map +1 -1
  5. package/dist/cjs/stateManagement/annotation/annotationSelection.d.ts +6 -8
  6. package/dist/cjs/stateManagement/annotation/annotationSelection.js +24 -28
  7. package/dist/cjs/stateManagement/annotation/annotationSelection.js.map +1 -1
  8. package/dist/cjs/stateManagement/annotation/annotationState.d.ts +1 -1
  9. package/dist/cjs/stateManagement/annotation/annotationState.js +6 -7
  10. package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
  11. package/dist/cjs/stateManagement/annotation/config/getState.js +1 -1
  12. package/dist/cjs/stateManagement/annotation/config/getState.js.map +1 -1
  13. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +2 -0
  14. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  15. package/dist/cjs/store/removeEnabledElement.js +1 -1
  16. package/dist/cjs/store/removeEnabledElement.js.map +1 -1
  17. package/dist/cjs/tools/CrosshairsTool.js +1 -1
  18. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  19. package/dist/cjs/tools/StackScrollTool.d.ts +1 -0
  20. package/dist/cjs/tools/StackScrollTool.js +14 -1
  21. package/dist/cjs/tools/StackScrollTool.js.map +1 -1
  22. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js +6 -2
  23. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  24. package/dist/cjs/tools/WindowLevelTool.js +1 -1
  25. package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
  26. package/dist/cjs/tools/annotation/BidirectionalTool.js +1 -1
  27. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  28. package/dist/cjs/tools/annotation/EllipticalROITool.js +1 -1
  29. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  30. package/dist/cjs/tools/annotation/LengthTool.js +1 -1
  31. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  32. package/dist/cjs/tools/annotation/ProbeTool.js +1 -1
  33. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  34. package/dist/cjs/tools/annotation/RectangleROITool.js +1 -1
  35. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  36. package/dist/cjs/types/EventTypes.d.ts +4 -5
  37. package/dist/cjs/types/ScrollOptions.d.ts +6 -0
  38. package/dist/cjs/types/ScrollOptions.js +3 -0
  39. package/dist/cjs/types/ScrollOptions.js.map +1 -0
  40. package/dist/cjs/types/index.d.ts +2 -1
  41. package/dist/cjs/utilities/index.d.ts +2 -1
  42. package/dist/cjs/utilities/index.js +3 -1
  43. package/dist/cjs/utilities/index.js.map +1 -1
  44. package/dist/cjs/utilities/orientation/getOrientationStringLPS.d.ts +2 -0
  45. package/dist/cjs/utilities/orientation/getOrientationStringLPS.js +45 -0
  46. package/dist/cjs/utilities/orientation/getOrientationStringLPS.js.map +1 -0
  47. package/dist/cjs/utilities/orientation/index.d.ts +3 -0
  48. package/dist/cjs/utilities/orientation/index.js +11 -0
  49. package/dist/cjs/utilities/orientation/index.js.map +1 -0
  50. package/dist/cjs/utilities/orientation/invertOrientationStringLPS.d.ts +1 -0
  51. package/dist/cjs/utilities/orientation/invertOrientationStringLPS.js +14 -0
  52. package/dist/cjs/utilities/orientation/invertOrientationStringLPS.js.map +1 -0
  53. package/dist/cjs/utilities/stackScrollTool/index.d.ts +0 -6
  54. package/dist/cjs/utilities/stackScrollTool/index.js +0 -5
  55. package/dist/cjs/utilities/stackScrollTool/index.js.map +1 -1
  56. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.d.ts +2 -1
  57. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js +5 -8
  58. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js.map +1 -1
  59. package/dist/cjs/utilities/viewport/jumpToSlice.js +7 -1
  60. package/dist/cjs/utilities/viewport/jumpToSlice.js.map +1 -1
  61. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +7 -7
  62. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  63. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +1 -1
  64. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js.map +1 -1
  65. package/dist/esm/stateManagement/annotation/annotationSelection.d.ts +6 -8
  66. package/dist/esm/stateManagement/annotation/annotationSelection.js +24 -27
  67. package/dist/esm/stateManagement/annotation/annotationSelection.js.map +1 -1
  68. package/dist/esm/stateManagement/annotation/annotationState.d.ts +1 -1
  69. package/dist/esm/stateManagement/annotation/annotationState.js +6 -7
  70. package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
  71. package/dist/esm/stateManagement/annotation/config/getState.js +1 -1
  72. package/dist/esm/stateManagement/annotation/config/getState.js.map +1 -1
  73. package/dist/esm/store/ToolGroupManager/ToolGroup.js +2 -0
  74. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  75. package/dist/esm/store/removeEnabledElement.js +1 -1
  76. package/dist/esm/store/removeEnabledElement.js.map +1 -1
  77. package/dist/esm/tools/CrosshairsTool.js +1 -1
  78. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  79. package/dist/esm/tools/StackScrollTool.d.ts +1 -0
  80. package/dist/esm/tools/StackScrollTool.js +15 -2
  81. package/dist/esm/tools/StackScrollTool.js.map +1 -1
  82. package/dist/esm/tools/StackScrollToolMouseWheelTool.js +7 -3
  83. package/dist/esm/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  84. package/dist/esm/tools/WindowLevelTool.js +1 -1
  85. package/dist/esm/tools/WindowLevelTool.js.map +1 -1
  86. package/dist/esm/tools/annotation/BidirectionalTool.js +1 -1
  87. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  88. package/dist/esm/tools/annotation/EllipticalROITool.js +1 -1
  89. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  90. package/dist/esm/tools/annotation/LengthTool.js +1 -1
  91. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  92. package/dist/esm/tools/annotation/ProbeTool.js +1 -1
  93. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  94. package/dist/esm/tools/annotation/RectangleROITool.js +1 -1
  95. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  96. package/dist/esm/types/EventTypes.d.ts +4 -5
  97. package/dist/esm/types/ScrollOptions.d.ts +6 -0
  98. package/dist/esm/types/ScrollOptions.js +2 -0
  99. package/dist/esm/types/ScrollOptions.js.map +1 -0
  100. package/dist/esm/types/index.d.ts +2 -1
  101. package/dist/esm/utilities/index.d.ts +2 -1
  102. package/dist/esm/utilities/index.js +2 -1
  103. package/dist/esm/utilities/index.js.map +1 -1
  104. package/dist/esm/utilities/orientation/getOrientationStringLPS.d.ts +2 -0
  105. package/dist/esm/utilities/orientation/getOrientationStringLPS.js +42 -0
  106. package/dist/esm/utilities/orientation/getOrientationStringLPS.js.map +1 -0
  107. package/dist/esm/utilities/orientation/index.d.ts +3 -0
  108. package/dist/esm/utilities/orientation/index.js +4 -0
  109. package/dist/esm/utilities/orientation/index.js.map +1 -0
  110. package/dist/esm/utilities/orientation/invertOrientationStringLPS.d.ts +1 -0
  111. package/dist/esm/utilities/orientation/invertOrientationStringLPS.js +11 -0
  112. package/dist/esm/utilities/orientation/invertOrientationStringLPS.js.map +1 -0
  113. package/dist/esm/utilities/stackScrollTool/index.d.ts +0 -6
  114. package/dist/esm/utilities/stackScrollTool/index.js +0 -5
  115. package/dist/esm/utilities/stackScrollTool/index.js.map +1 -1
  116. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.d.ts +2 -1
  117. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js +5 -8
  118. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js.map +1 -1
  119. package/dist/esm/utilities/viewport/jumpToSlice.js +4 -1
  120. package/dist/esm/utilities/viewport/jumpToSlice.js.map +1 -1
  121. package/dist/umd/index.js +1 -1
  122. package/dist/umd/index.js.map +1 -1
  123. package/package.json +4 -4
@@ -2,11 +2,10 @@ import { StackViewport, VolumeViewport, utilities as csUtils, } from '@cornersto
2
2
  import clip from '../clip';
3
3
  import getSliceRange from './getSliceRange';
4
4
  import snapFocalPointToSlice from './snapFocalPointToSlice';
5
- export default function scrollThroughStack(viewport, targetId, deltaFrames, invert = false) {
5
+ export default function scrollThroughStack(viewport, options) {
6
6
  const { type: viewportType } = viewport;
7
- const camera = viewport.getCamera();
8
- const { focalPoint, viewPlaneNormal, position } = camera;
9
- const delta = invert ? -deltaFrames : deltaFrames;
7
+ const { volumeId, direction, invert } = options;
8
+ const delta = invert ? -direction : direction;
10
9
  if (viewport instanceof StackViewport) {
11
10
  const currentImageIdIndex = viewport.getCurrentImageIdIndex();
12
11
  const numberOfFrames = viewport.getImageIds().length;
@@ -15,10 +14,8 @@ export default function scrollThroughStack(viewport, targetId, deltaFrames, inve
15
14
  viewport.setImageIdIndex(newImageIdIndex);
16
15
  }
17
16
  else if (viewport instanceof VolumeViewport) {
18
- if (!targetId.startsWith('volumeId')) {
19
- throw new Error(`scrollThroughStack: targetId must start with 'volumeId' if viewport is a VolumeViewport`);
20
- }
21
- const volumeId = targetId.split('volumeId:')[1];
17
+ const camera = viewport.getCamera();
18
+ const { focalPoint, viewPlaneNormal, position } = camera;
22
19
  const { spacingInNormalDirection, imageVolume } = csUtils.getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
23
20
  if (!imageVolume) {
24
21
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,cAAc,EACd,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAc5D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,QAAsD,EACtD,QAAgB,EAChB,WAAmB,EACnB,MAAM,GAAG,KAAK;IAEd,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IAElD,IAAI,QAAQ,YAAY,aAAa,EAAE;QAErC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACrD,IAAI,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAClD,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE/D,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,YAAY,cAAc,EAAE;QAC7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAGhD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,OAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3E;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAE5E,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAC1D,UAAU,EACV,QAAQ,EACR,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;QAEF,QAAQ,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC"}
1
+ {"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,cAAc,EACd,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAY5D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,QAAsD,EACtD,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,IAAI,QAAQ,YAAY,aAAa,EAAE;QAErC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACrD,IAAI,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAClD,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE/D,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,YAAY,cAAc,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACzD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,OAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3E;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAE5E,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAC1D,UAAU,EACV,QAAQ,EACR,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;QAEF,QAAQ,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { getEnabledElement, StackViewport } from '@cornerstonejs/core';
2
+ import clip from '../clip';
2
3
  function jumpToSlice(element, options) {
3
4
  const { imageIdIndex } = options;
4
5
  if (imageIdIndex === undefined) {
@@ -12,7 +13,9 @@ function jumpToSlice(element, options) {
12
13
  if (!(viewport instanceof StackViewport)) {
13
14
  throw new Error('Cannot scroll to slice on a non-stack viewport yet');
14
15
  }
15
- return viewport.setImageIdIndex(imageIdIndex);
16
+ const numberOfFrames = viewport.getImageIds().length;
17
+ const newImageIdIndex = clip(imageIdIndex, 0, numberOfFrames - 1);
18
+ return viewport.setImageIdIndex(newImageIdIndex);
16
19
  }
17
20
  export default jumpToSlice;
18
21
  //# sourceMappingURL=jumpToSlice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAcvE,SAAS,WAAW,CAClB,OAAuB,EACvB,OAA2B;IAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,IAAI,CAAC,CAAC,QAAQ,YAAY,aAAa,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,IAAI,MAAM,SAAS,CAAC;AAa3B,SAAS,WAAW,CAClB,OAAuB,EACvB,OAA2B;IAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,IAAI,CAAC,CAAC,QAAQ,YAAY,aAAa,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AACnD,CAAC;AAED,eAAe,WAAW,CAAC"}