@cornerstonejs/tools 0.8.0 → 0.9.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.
@@ -0,0 +1,4 @@
1
+ declare type JumpToSliceOptions = {
2
+ imageIdIndex?: number;
3
+ };
4
+ export default JumpToSliceOptions;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=JumpToSliceOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JumpToSliceOptions.js","sourceRoot":"","sources":["../../../src/types/JumpToSliceOptions.ts"],"names":[],"mappings":""}
@@ -11,5 +11,6 @@ import type { AnnotationHandle, TextBoxHandle } from './ToolHandle';
11
11
  import type InteractionTypes from './InteractionTypes';
12
12
  import type { ToolProps, PublicToolProps } from './ToolProps';
13
13
  import type { SVGCursorDescriptor, SVGPoint } from './CursorTypes';
14
+ import type JumpToSliceOptions from './JumpToSliceOptions';
14
15
  import type { Color, ColorLUT, RepresentationConfig, SegmentationRepresentationConfig, SegmentationRepresentationData, Segmentation, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, SegmentationState, RepresentationPublicInput } from './SegmentationStateTypes';
15
- export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
16
+ export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
@@ -5,6 +5,7 @@ import throttle from './throttle';
5
5
  import isObject from './isObject';
6
6
  import calibrateImageSpacing from './calibrateImageSpacing';
7
7
  import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
8
+ import jumpToSlice from './viewport/jumpToSlice';
8
9
  import pointInShapeCallback from './pointInShapeCallback';
9
10
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
10
11
  import * as segmentation from './segmentation';
@@ -14,4 +15,4 @@ import * as planar from './planar';
14
15
  import * as stackScrollTool from './stackScrollTool';
15
16
  import * as viewportFilters from './viewportFilters';
16
17
  import { triggerEvent } from '@cornerstonejs/core';
17
- export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
18
+ export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, };
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.stackScrollTool = exports.viewportFilters = exports.planar = exports.math = void 0;
25
+ exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.stackScrollTool = exports.viewportFilters = exports.planar = exports.math = void 0;
26
26
  const getAnnotationNearPoint_1 = require("./getAnnotationNearPoint");
27
27
  Object.defineProperty(exports, "getAnnotationNearPoint", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPoint; } });
28
28
  Object.defineProperty(exports, "getAnnotationNearPointOnEnabledElement", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPointOnEnabledElement; } });
@@ -38,6 +38,8 @@ const calibrateImageSpacing_1 = __importDefault(require("./calibrateImageSpacing
38
38
  exports.calibrateImageSpacing = calibrateImageSpacing_1.default;
39
39
  const triggerAnnotationRenderForViewportIds_1 = __importDefault(require("./triggerAnnotationRenderForViewportIds"));
40
40
  exports.triggerAnnotationRenderForViewportIds = triggerAnnotationRenderForViewportIds_1.default;
41
+ const jumpToSlice_1 = __importDefault(require("./viewport/jumpToSlice"));
42
+ exports.jumpToSlice = jumpToSlice_1.default;
41
43
  const pointInShapeCallback_1 = __importDefault(require("./pointInShapeCallback"));
42
44
  exports.pointInShapeCallback = pointInShapeCallback_1.default;
43
45
  const pointInSurroundingSphereCallback_1 = __importDefault(require("./pointInSurroundingSphereCallback"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAwChC,uGA1CA,+CAAsB,OA0CA;AACtB,uHA1CA,+DAAsC,OA0CA;AAtCxC,0DAAkC;AA2BhC,mBA3BK,kBAAQ,CA2BL;AA1BV,4DAAoC;AA2BlC,oBA3BK,mBAAS,CA2BL;AA1BX,0DAAkC;AA2BhC,mBA3BK,kBAAQ,CA2BL;AA1BV,0DAAkC;AA2BhC,mBA3BK,kBAAQ,CA2BL;AA1BV,oFAA4D;AA4B1D,gCA5BK,+BAAqB,CA4BL;AA3BvB,oHAA4F;AA6B1F,gDA7BK,+CAAqC,CA6BL;AA3BvC,kFAA0D;AA4BxD,+BA5BK,8BAAoB,CA4BL;AA3BtB,0GAAkF;AA4BhF,2CA5BK,0CAAgC,CA4BL;AAzBlC,6DAA+C;AAsB7C,oCAAY;AArBd,mDAAqC;AAcnC,0BAAO;AAbT,6CAA+B;AAS7B,oBAAI;AARN,iDAAmC;AASjC,wBAAM;AARR,mEAAqD;AAUnD,0CAAe;AATjB,mEAAqD;AAQnD,0CAAe;AALjB,8CAAmD;AAYjD,6FAZO,mBAAY,OAYP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAyChC,uGA3CA,+CAAsB,OA2CA;AACtB,uHA3CA,+DAAsC,OA2CA;AAvCxC,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,4DAAoC;AA4BlC,oBA5BK,mBAAS,CA4BL;AA3BX,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,0DAAkC;AA4BhC,mBA5BK,kBAAQ,CA4BL;AA3BV,oFAA4D;AA6B1D,gCA7BK,+BAAqB,CA6BL;AA5BvB,oHAA4F;AA8B1F,gDA9BK,+CAAqC,CA8BL;AA7BvC,yEAAiD;AAkC/C,sBAlCK,qBAAW,CAkCL;AAhCb,kFAA0D;AA4BxD,+BA5BK,8BAAoB,CA4BL;AA3BtB,0GAAkF;AA4BhF,2CA5BK,0CAAgC,CA4BL;AAzBlC,6DAA+C;AAsB7C,oCAAY;AArBd,mDAAqC;AAcnC,0BAAO;AAbT,6CAA+B;AAS7B,oBAAI;AARN,iDAAmC;AASjC,wBAAM;AARR,mEAAqD;AAUnD,0CAAe;AATjB,mEAAqD;AAQnD,0CAAe;AALjB,8CAAmD;AAYjD,6FAZO,mBAAY,OAYP"}
@@ -0,0 +1,3 @@
1
+ import JumpToSliceOptions from '../../types/JumpToSliceOptions';
2
+ declare function jumpToSlice(element: HTMLDivElement, options: JumpToSliceOptions): Promise<string>;
3
+ export default jumpToSlice;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@cornerstonejs/core");
4
+ function jumpToSlice(element, options) {
5
+ const { imageIdIndex } = options;
6
+ if (imageIdIndex === undefined) {
7
+ throw new Error('Cannot jump to slice without an imageIdIndex yet');
8
+ }
9
+ const enabledElement = (0, core_1.getEnabledElement)(element);
10
+ if (!enabledElement) {
11
+ throw new Error('Element has been disabled');
12
+ }
13
+ const { viewport } = enabledElement;
14
+ if (!(viewport instanceof core_1.StackViewport)) {
15
+ throw new Error('Cannot scroll to slice on a non-stack viewport yet');
16
+ }
17
+ return viewport.setImageIdIndex(imageIdIndex);
18
+ }
19
+ exports.default = jumpToSlice;
20
+ //# sourceMappingURL=jumpToSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jumpToSlice.js","sourceRoot":"","sources":["../../../../src/utilities/viewport/jumpToSlice.ts"],"names":[],"mappings":";;AAAA,8CAAuE;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,IAAA,wBAAiB,EAAC,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,oBAAa,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare type JumpToSliceOptions = {
2
+ imageIdIndex?: number;
3
+ };
4
+ export default JumpToSliceOptions;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=JumpToSliceOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JumpToSliceOptions.js","sourceRoot":"","sources":["../../../src/types/JumpToSliceOptions.ts"],"names":[],"mappings":""}
@@ -11,5 +11,6 @@ import type { AnnotationHandle, TextBoxHandle } from './ToolHandle';
11
11
  import type InteractionTypes from './InteractionTypes';
12
12
  import type { ToolProps, PublicToolProps } from './ToolProps';
13
13
  import type { SVGCursorDescriptor, SVGPoint } from './CursorTypes';
14
+ import type JumpToSliceOptions from './JumpToSliceOptions';
14
15
  import type { Color, ColorLUT, RepresentationConfig, SegmentationRepresentationConfig, SegmentationRepresentationData, Segmentation, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, SegmentationState, RepresentationPublicInput } from './SegmentationStateTypes';
15
- export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
16
+ export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, };
@@ -5,6 +5,7 @@ import throttle from './throttle';
5
5
  import isObject from './isObject';
6
6
  import calibrateImageSpacing from './calibrateImageSpacing';
7
7
  import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
8
+ import jumpToSlice from './viewport/jumpToSlice';
8
9
  import pointInShapeCallback from './pointInShapeCallback';
9
10
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
10
11
  import * as segmentation from './segmentation';
@@ -14,4 +15,4 @@ import * as planar from './planar';
14
15
  import * as stackScrollTool from './stackScrollTool';
15
16
  import * as viewportFilters from './viewportFilters';
16
17
  import { triggerEvent } from '@cornerstonejs/core';
17
- export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
18
+ export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, };
@@ -5,6 +5,7 @@ import throttle from './throttle';
5
5
  import isObject from './isObject';
6
6
  import calibrateImageSpacing from './calibrateImageSpacing';
7
7
  import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
8
+ import jumpToSlice from './viewport/jumpToSlice';
8
9
  import pointInShapeCallback from './pointInShapeCallback';
9
10
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
10
11
  import * as segmentation from './segmentation';
@@ -14,5 +15,5 @@ import * as planar from './planar';
14
15
  import * as stackScrollTool from './stackScrollTool';
15
16
  import * as viewportFilters from './viewportFilters';
16
17
  import { triggerEvent } from '@cornerstonejs/core';
17
- export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
18
+ export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, };
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAE5F,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAGlF,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,GACvC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAGlF,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,GACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import JumpToSliceOptions from '../../types/JumpToSliceOptions';
2
+ declare function jumpToSlice(element: HTMLDivElement, options: JumpToSliceOptions): Promise<string>;
3
+ export default jumpToSlice;
@@ -0,0 +1,18 @@
1
+ import { getEnabledElement, StackViewport } from '@cornerstonejs/core';
2
+ function jumpToSlice(element, options) {
3
+ const { imageIdIndex } = options;
4
+ if (imageIdIndex === undefined) {
5
+ throw new Error('Cannot jump to slice without an imageIdIndex yet');
6
+ }
7
+ const enabledElement = getEnabledElement(element);
8
+ if (!enabledElement) {
9
+ throw new Error('Element has been disabled');
10
+ }
11
+ const { viewport } = enabledElement;
12
+ if (!(viewport instanceof StackViewport)) {
13
+ throw new Error('Cannot scroll to slice on a non-stack viewport yet');
14
+ }
15
+ return viewport.setImageIdIndex(imageIdIndex);
16
+ }
17
+ export default jumpToSlice;
18
+ //# sourceMappingURL=jumpToSlice.js.map
@@ -0,0 +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"}