@cornerstonejs/tools 0.47.0 → 0.49.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.
- package/dist/cjs/init.js +1 -1
- package/dist/cjs/init.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +98 -90
- package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/annotationState.d.ts +11 -10
- package/dist/cjs/stateManagement/annotation/annotationState.js +40 -45
- package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -0
- package/dist/cjs/stateManagement/annotation/helpers/state.js +49 -0
- package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -0
- package/dist/cjs/stateManagement/index.d.ts +4 -3
- package/dist/cjs/stateManagement/index.js +4 -3
- package/dist/cjs/stateManagement/index.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +23 -0
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
- package/dist/cjs/store/ToolGroupManager/index.d.ts +2 -1
- package/dist/cjs/store/ToolGroupManager/index.js +3 -1
- package/dist/cjs/store/ToolGroupManager/index.js.map +1 -1
- package/dist/cjs/store/filterToolsWithAnnotationsForElement.js +2 -2
- package/dist/cjs/store/filterToolsWithAnnotationsForElement.js.map +1 -1
- package/dist/cjs/store/removeEnabledElement.js +1 -1
- package/dist/cjs/store/removeEnabledElement.js.map +1 -1
- package/dist/cjs/tools/CrosshairsTool.d.ts +1 -0
- package/dist/cjs/tools/CrosshairsTool.js +19 -17
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/ReferenceCursors.d.ts +0 -1
- package/dist/cjs/tools/ReferenceCursors.js +10 -12
- package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
- package/dist/cjs/tools/ReferenceLinesTool.js +3 -2
- package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/cjs/tools/ScaleOverlayTool.js +7 -8
- package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/cjs/tools/annotation/AngleTool.js +5 -4
- package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +8 -7
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +5 -4
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/CobbAngleTool.js +5 -4
- package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -4
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +5 -4
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -3
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.js +5 -4
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +5 -4
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationDisplayTool.js +2 -2
- package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +4 -3
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/cjs/types/AnnotationGroupSelector.d.ts +2 -0
- package/dist/cjs/types/AnnotationGroupSelector.js +3 -0
- package/dist/cjs/types/AnnotationGroupSelector.js.map +1 -0
- package/dist/cjs/types/AnnotationTypes.d.ts +4 -4
- package/dist/cjs/types/IAnnotationManager.d.ts +14 -0
- package/dist/cjs/types/IAnnotationManager.js +3 -0
- package/dist/cjs/types/IAnnotationManager.js.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/utilities/getAnnotationNearPoint.js +5 -4
- package/dist/cjs/utilities/getAnnotationNearPoint.js.map +1 -1
- package/dist/esm/init.js +2 -2
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +100 -91
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
- package/dist/esm/stateManagement/annotation/annotationState.d.ts +11 -10
- package/dist/esm/stateManagement/annotation/annotationState.js +38 -44
- package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/esm/stateManagement/annotation/helpers/state.d.ts +4 -0
- package/dist/esm/stateManagement/annotation/helpers/state.js +45 -0
- package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -0
- package/dist/esm/stateManagement/index.d.ts +4 -3
- package/dist/esm/stateManagement/index.js +2 -2
- package/dist/esm/stateManagement/index.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +21 -0
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
- package/dist/esm/store/ToolGroupManager/index.d.ts +2 -1
- package/dist/esm/store/ToolGroupManager/index.js +2 -1
- package/dist/esm/store/ToolGroupManager/index.js.map +1 -1
- package/dist/esm/store/filterToolsWithAnnotationsForElement.js +2 -2
- package/dist/esm/store/filterToolsWithAnnotationsForElement.js.map +1 -1
- package/dist/esm/store/removeEnabledElement.js +1 -1
- package/dist/esm/store/removeEnabledElement.js.map +1 -1
- package/dist/esm/tools/CrosshairsTool.d.ts +1 -0
- package/dist/esm/tools/CrosshairsTool.js +19 -17
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/ReferenceCursors.d.ts +0 -1
- package/dist/esm/tools/ReferenceCursors.js +10 -12
- package/dist/esm/tools/ReferenceCursors.js.map +1 -1
- package/dist/esm/tools/ReferenceLinesTool.js +3 -2
- package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/esm/tools/ScaleOverlayTool.js +7 -8
- package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/esm/tools/annotation/AngleTool.js +5 -4
- package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +8 -7
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +5 -4
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/CobbAngleTool.js +5 -4
- package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +5 -4
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +5 -4
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -3
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +5 -4
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +5 -4
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -3
- package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +4 -3
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/esm/types/AnnotationGroupSelector.d.ts +2 -0
- package/dist/esm/types/AnnotationGroupSelector.js +2 -0
- package/dist/esm/types/AnnotationGroupSelector.js.map +1 -0
- package/dist/esm/types/AnnotationTypes.d.ts +4 -4
- package/dist/esm/types/IAnnotationManager.d.ts +14 -0
- package/dist/esm/types/IAnnotationManager.js +2 -0
- package/dist/esm/types/IAnnotationManager.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -2
- package/dist/esm/utilities/getAnnotationNearPoint.js +3 -2
- package/dist/esm/utilities/getAnnotationNearPoint.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
package/dist/esm/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import { Annotation, Annotations,
|
|
1
|
+
import { Annotation, Annotations, AnnotationState, GroupSpecificAnnotations } from '../../types/AnnotationTypes';
|
|
2
|
+
import { AnnotationGroupSelector, IAnnotationManager } from '../../types';
|
|
2
3
|
import { Types } from '@cornerstonejs/core';
|
|
3
|
-
|
|
4
|
-
FrameOfReferenceUID?: string;
|
|
5
|
-
toolName?: string;
|
|
6
|
-
}
|
|
7
|
-
export default class FrameOfReferenceSpecificAnnotationManager {
|
|
4
|
+
declare class FrameOfReferenceSpecificAnnotationManager implements IAnnotationManager {
|
|
8
5
|
private annotations;
|
|
9
6
|
readonly uid: string;
|
|
10
7
|
constructor(uid?: string);
|
|
8
|
+
getGroupKey: (annotationGroupSelector: AnnotationGroupSelector) => string;
|
|
11
9
|
_imageVolumeModifiedHandler: (evt: Types.EventTypes.ImageVolumeModifiedEvent) => void;
|
|
12
10
|
getFramesOfReference: () => Array<string>;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
getAnnotations: (groupKey: string, toolName?: string) => GroupSpecificAnnotations | Annotations;
|
|
12
|
+
getAnnotation: (annotationUID: string) => Annotation | undefined;
|
|
13
|
+
getNumberOfAnnotations: (groupKey: string, toolName?: string) => number;
|
|
14
|
+
addAnnotation: (annotation: Annotation, groupKey?: string) => void;
|
|
15
|
+
removeAnnotation: (annotationUID: string) => void;
|
|
16
|
+
removeAnnotations: (groupKey: string, toolName?: string) => void;
|
|
17
|
+
saveAnnotations: (groupKey?: string, toolName?: string) => AnnotationState | GroupSpecificAnnotations | Annotations;
|
|
18
|
+
restoreAnnotations: (state: AnnotationState | GroupSpecificAnnotations | Annotations, groupKey?: string, toolName?: string) => void;
|
|
19
|
+
getNumberOfAllAnnotations: () => number;
|
|
22
20
|
removeAllAnnotations: () => void;
|
|
23
|
-
private _getToolSpecificAnnotationsAndIndex;
|
|
24
21
|
}
|
|
25
22
|
declare const defaultFrameOfReferenceSpecificAnnotationManager: FrameOfReferenceSpecificAnnotationManager;
|
|
26
23
|
export { defaultFrameOfReferenceSpecificAnnotationManager };
|
|
24
|
+
export default FrameOfReferenceSpecificAnnotationManager;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import cloneDeep from 'lodash.clonedeep';
|
|
2
|
-
import { Enums, eventTarget, utilities } from '@cornerstonejs/core';
|
|
2
|
+
import { Enums, eventTarget, getEnabledElement, utilities, } from '@cornerstonejs/core';
|
|
3
3
|
import { checkAndDefineIsLockedProperty } from './annotationLocking';
|
|
4
4
|
import { checkAndDefineIsVisibleProperty } from './annotationVisibility';
|
|
5
|
-
|
|
5
|
+
class FrameOfReferenceSpecificAnnotationManager {
|
|
6
6
|
constructor(uid) {
|
|
7
|
+
this.getGroupKey = (annotationGroupSelector) => {
|
|
8
|
+
if (typeof annotationGroupSelector === 'string') {
|
|
9
|
+
return annotationGroupSelector;
|
|
10
|
+
}
|
|
11
|
+
const element = annotationGroupSelector;
|
|
12
|
+
const enabledElement = getEnabledElement(element);
|
|
13
|
+
if (!enabledElement) {
|
|
14
|
+
throw new Error('Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID');
|
|
15
|
+
}
|
|
16
|
+
return enabledElement.FrameOfReferenceUID;
|
|
17
|
+
};
|
|
7
18
|
this._imageVolumeModifiedHandler = (evt) => {
|
|
8
19
|
const eventDetail = evt.detail;
|
|
9
20
|
const { FrameOfReferenceUID } = eventDetail;
|
|
@@ -25,53 +36,53 @@ export default class FrameOfReferenceSpecificAnnotationManager {
|
|
|
25
36
|
this.getFramesOfReference = () => {
|
|
26
37
|
return Object.keys(this.annotations);
|
|
27
38
|
};
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
return;
|
|
39
|
+
this.getAnnotations = (groupKey, toolName) => {
|
|
40
|
+
const annotations = this.annotations;
|
|
41
|
+
if (!annotations[groupKey]) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
if (toolName) {
|
|
45
|
+
return annotations[groupKey][toolName];
|
|
35
46
|
}
|
|
36
|
-
return
|
|
47
|
+
return annotations[groupKey];
|
|
37
48
|
};
|
|
38
|
-
this.getAnnotation = (annotationUID
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
this.getAnnotation = (annotationUID) => {
|
|
50
|
+
const annotations = this.annotations;
|
|
51
|
+
for (const frameOfReferenceUID in annotations) {
|
|
52
|
+
const frameOfReferenceAnnotations = annotations[frameOfReferenceUID];
|
|
53
|
+
for (const toolName in frameOfReferenceAnnotations) {
|
|
54
|
+
const toolSpecificAnnotations = frameOfReferenceAnnotations[toolName];
|
|
55
|
+
for (const annotation of toolSpecificAnnotations) {
|
|
56
|
+
if (annotationUID === annotation.annotationUID) {
|
|
57
|
+
return annotation;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
42
61
|
}
|
|
43
|
-
const { toolSpecificAnnotations, index } = toolSpecificAnnotationsAndIndex;
|
|
44
|
-
return toolSpecificAnnotations[index];
|
|
45
62
|
};
|
|
46
|
-
this.
|
|
47
|
-
const annotations = this.
|
|
48
|
-
if (!annotations) {
|
|
63
|
+
this.getNumberOfAnnotations = (groupKey, toolName) => {
|
|
64
|
+
const annotations = this.getAnnotations(groupKey, toolName);
|
|
65
|
+
if (!annotations.length) {
|
|
49
66
|
return 0;
|
|
50
67
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return 0;
|
|
68
|
+
if (toolName) {
|
|
69
|
+
return annotations.length;
|
|
54
70
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
const framesOfReference = this.getFramesOfReference();
|
|
62
|
-
return framesOfReference.reduce((acc, frameOfReferenceUID) => {
|
|
63
|
-
const numberOfAnnotations = this.getNumberOfAnnotationsInFrameOfReference(toolName, frameOfReferenceUID);
|
|
64
|
-
return acc + numberOfAnnotations;
|
|
65
|
-
}, 0);
|
|
71
|
+
let total = 0;
|
|
72
|
+
for (const toolName in annotations) {
|
|
73
|
+
total += annotations[toolName].length;
|
|
74
|
+
}
|
|
75
|
+
return total;
|
|
66
76
|
};
|
|
67
|
-
this.addAnnotation = (annotation) => {
|
|
77
|
+
this.addAnnotation = (annotation, groupKey) => {
|
|
68
78
|
const { metadata } = annotation;
|
|
69
79
|
const { FrameOfReferenceUID, toolName } = metadata;
|
|
80
|
+
groupKey = groupKey || FrameOfReferenceUID;
|
|
70
81
|
const annotations = this.annotations;
|
|
71
|
-
let frameOfReferenceSpecificAnnotations = annotations[
|
|
82
|
+
let frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
72
83
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
73
|
-
annotations[
|
|
74
|
-
frameOfReferenceSpecificAnnotations = annotations[
|
|
84
|
+
annotations[groupKey] = {};
|
|
85
|
+
frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
75
86
|
}
|
|
76
87
|
let toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
77
88
|
if (!toolSpecificAnnotations) {
|
|
@@ -82,52 +93,81 @@ export default class FrameOfReferenceSpecificAnnotationManager {
|
|
|
82
93
|
checkAndDefineIsLockedProperty(annotation);
|
|
83
94
|
checkAndDefineIsVisibleProperty(annotation);
|
|
84
95
|
};
|
|
85
|
-
this.removeAnnotation = (annotationUID
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
96
|
+
this.removeAnnotation = (annotationUID) => {
|
|
97
|
+
const { annotations } = this;
|
|
98
|
+
for (const groupKey in annotations) {
|
|
99
|
+
const groupAnnotations = annotations[groupKey];
|
|
100
|
+
for (const toolName in groupAnnotations) {
|
|
101
|
+
const toolAnnotations = groupAnnotations[toolName];
|
|
102
|
+
const index = toolAnnotations.findIndex((annotation) => annotation.annotationUID === annotationUID);
|
|
103
|
+
if (index !== -1) {
|
|
104
|
+
toolAnnotations.splice(index, 1);
|
|
105
|
+
if (toolAnnotations.length === 0) {
|
|
106
|
+
delete groupAnnotations[toolName];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (Object.keys(groupAnnotations).length === 0) {
|
|
111
|
+
delete annotations[groupKey];
|
|
112
|
+
}
|
|
89
113
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
114
|
+
};
|
|
115
|
+
this.removeAnnotations = (groupKey, toolName) => {
|
|
116
|
+
const annotations = this.annotations;
|
|
117
|
+
if (annotations[groupKey]) {
|
|
118
|
+
if (toolName) {
|
|
119
|
+
delete annotations[groupKey][toolName];
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
delete annotations[groupKey];
|
|
123
|
+
}
|
|
96
124
|
}
|
|
97
125
|
};
|
|
98
|
-
this.saveAnnotations = (
|
|
126
|
+
this.saveAnnotations = (groupKey, toolName) => {
|
|
99
127
|
const annotations = this.annotations;
|
|
100
|
-
if (
|
|
101
|
-
const frameOfReferenceSpecificAnnotations = annotations[
|
|
128
|
+
if (groupKey && toolName) {
|
|
129
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
102
130
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
103
131
|
return;
|
|
104
132
|
}
|
|
105
133
|
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
106
134
|
return cloneDeep(toolSpecificAnnotations);
|
|
107
135
|
}
|
|
108
|
-
else if (
|
|
109
|
-
const frameOfReferenceSpecificAnnotations = annotations[
|
|
136
|
+
else if (groupKey) {
|
|
137
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
110
138
|
return cloneDeep(frameOfReferenceSpecificAnnotations);
|
|
111
139
|
}
|
|
112
140
|
return cloneDeep(annotations);
|
|
113
141
|
};
|
|
114
|
-
this.restoreAnnotations = (state,
|
|
142
|
+
this.restoreAnnotations = (state, groupKey, toolName) => {
|
|
115
143
|
const annotations = this.annotations;
|
|
116
|
-
if (
|
|
117
|
-
let frameOfReferenceSpecificAnnotations = annotations[
|
|
144
|
+
if (groupKey && toolName) {
|
|
145
|
+
let frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
118
146
|
if (!frameOfReferenceSpecificAnnotations) {
|
|
119
|
-
annotations[
|
|
120
|
-
frameOfReferenceSpecificAnnotations = annotations[
|
|
147
|
+
annotations[groupKey] = {};
|
|
148
|
+
frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
121
149
|
}
|
|
122
150
|
frameOfReferenceSpecificAnnotations[toolName] = state;
|
|
123
151
|
}
|
|
124
|
-
else if (
|
|
125
|
-
annotations[
|
|
152
|
+
else if (groupKey) {
|
|
153
|
+
annotations[groupKey] = state;
|
|
126
154
|
}
|
|
127
155
|
else {
|
|
128
156
|
this.annotations = cloneDeep(state);
|
|
129
157
|
}
|
|
130
158
|
};
|
|
159
|
+
this.getNumberOfAllAnnotations = () => {
|
|
160
|
+
let count = 0;
|
|
161
|
+
const annotations = this.annotations;
|
|
162
|
+
for (const groupKey in annotations) {
|
|
163
|
+
const frameOfReferenceSpecificAnnotations = annotations[groupKey];
|
|
164
|
+
for (const toolName in frameOfReferenceSpecificAnnotations) {
|
|
165
|
+
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
166
|
+
count += toolSpecificAnnotations.length;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return count;
|
|
170
|
+
};
|
|
131
171
|
this.removeAllAnnotations = () => {
|
|
132
172
|
this.annotations = {};
|
|
133
173
|
};
|
|
@@ -138,39 +178,8 @@ export default class FrameOfReferenceSpecificAnnotationManager {
|
|
|
138
178
|
this.uid = uid;
|
|
139
179
|
eventTarget.addEventListener(Enums.Events.IMAGE_VOLUME_MODIFIED, this._imageVolumeModifiedHandler);
|
|
140
180
|
}
|
|
141
|
-
_getToolSpecificAnnotationsAndIndex(annotationUID, filter) {
|
|
142
|
-
const { toolName, FrameOfReferenceUID } = filter;
|
|
143
|
-
const annotations = this.annotations;
|
|
144
|
-
let frameOfReferenceUIDKeys;
|
|
145
|
-
if (FrameOfReferenceUID) {
|
|
146
|
-
frameOfReferenceUIDKeys = [FrameOfReferenceUID];
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
frameOfReferenceUIDKeys = Object.keys(annotations);
|
|
150
|
-
}
|
|
151
|
-
const numFrameOfReferenceUIDKeys = frameOfReferenceUIDKeys.length;
|
|
152
|
-
for (let i = 0; i < numFrameOfReferenceUIDKeys; i++) {
|
|
153
|
-
const frameOfReferenceUID = frameOfReferenceUIDKeys[i];
|
|
154
|
-
const frameOfReferenceSpecificAnnotations = annotations[frameOfReferenceUID];
|
|
155
|
-
let toolNameKeys;
|
|
156
|
-
if (toolName) {
|
|
157
|
-
toolNameKeys = [toolName];
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
toolNameKeys = Object.keys(frameOfReferenceSpecificAnnotations);
|
|
161
|
-
}
|
|
162
|
-
const numToolNameKeys = toolNameKeys.length;
|
|
163
|
-
for (let j = 0; j < numToolNameKeys; j++) {
|
|
164
|
-
const toolName = toolNameKeys[j];
|
|
165
|
-
const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
166
|
-
const index = toolSpecificAnnotations.findIndex((annotation) => annotation.annotationUID === annotationUID);
|
|
167
|
-
if (index !== -1) {
|
|
168
|
-
return { toolSpecificAnnotations, index };
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
181
|
}
|
|
174
182
|
const defaultFrameOfReferenceSpecificAnnotationManager = new FrameOfReferenceSpecificAnnotationManager('DEFAULT');
|
|
175
183
|
export { defaultFrameOfReferenceSpecificAnnotationManager };
|
|
184
|
+
export default FrameOfReferenceSpecificAnnotationManager;
|
|
176
185
|
//# sourceMappingURL=FrameOfReferenceSpecificAnnotationManager.js.map
|
package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameOfReferenceSpecificAnnotationManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FrameOfReferenceSpecificAnnotationManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { Types } from '@cornerstonejs/core';
|
|
2
1
|
import { Annotations, Annotation } from '../../types/AnnotationTypes';
|
|
3
|
-
|
|
4
|
-
declare function
|
|
5
|
-
declare function
|
|
6
|
-
declare function
|
|
7
|
-
declare function
|
|
8
|
-
declare function
|
|
9
|
-
declare function
|
|
10
|
-
declare function
|
|
11
|
-
|
|
2
|
+
import { AnnotationGroupSelector } from '../../types';
|
|
3
|
+
declare function getAnnotationManager(): import("./FrameOfReferenceSpecificAnnotationManager").default;
|
|
4
|
+
declare function setAnnotationManager(annotationManager: any): void;
|
|
5
|
+
declare function resetAnnotationManager(): void;
|
|
6
|
+
declare function getAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): Annotations;
|
|
7
|
+
declare function addAnnotation(annotation: Annotation, annotationGroupSelector: AnnotationGroupSelector): string;
|
|
8
|
+
declare function getNumberOfAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): number;
|
|
9
|
+
declare function removeAnnotation(annotationUID: string): void;
|
|
10
|
+
declare function getAnnotation(annotationUID: string): Annotation;
|
|
11
|
+
declare function removeAllAnnotations(): void;
|
|
12
|
+
export { getAnnotations, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, };
|
|
@@ -1,68 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { triggerEvent, eventTarget, utilities as csUtils, } from '@cornerstonejs/core';
|
|
2
2
|
import { Events } from '../../enums';
|
|
3
3
|
import { defaultFrameOfReferenceSpecificAnnotationManager } from './FrameOfReferenceSpecificAnnotationManager';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, } from './helpers/state';
|
|
5
|
+
let defaultManager = defaultFrameOfReferenceSpecificAnnotationManager;
|
|
6
|
+
function getAnnotationManager() {
|
|
7
|
+
return defaultManager;
|
|
6
8
|
}
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
+
function setAnnotationManager(annotationManager) {
|
|
10
|
+
defaultManager = annotationManager;
|
|
9
11
|
}
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
const annotationManager = getViewportSpecificAnnotationManager(enabledElement);
|
|
13
|
-
const { FrameOfReferenceUID } = enabledElement;
|
|
14
|
-
return annotationManager.get(FrameOfReferenceUID, toolName);
|
|
12
|
+
function resetAnnotationManager() {
|
|
13
|
+
defaultManager = defaultFrameOfReferenceSpecificAnnotationManager;
|
|
15
14
|
}
|
|
16
|
-
function
|
|
17
|
-
const
|
|
15
|
+
function getAnnotations(toolName, annotationGroupSelector) {
|
|
16
|
+
const manager = getAnnotationManager();
|
|
17
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
18
|
+
return manager.getAnnotations(groupKey, toolName);
|
|
19
|
+
}
|
|
20
|
+
function addAnnotation(annotation, annotationGroupSelector) {
|
|
18
21
|
if (annotation.annotationUID === undefined) {
|
|
19
22
|
annotation.annotationUID = csUtils.uuidv4();
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
viewportId,
|
|
29
|
-
renderingEngineId: renderingEngine.id,
|
|
30
|
-
};
|
|
31
|
-
triggerEvent(eventTarget, eventType, eventDetail);
|
|
24
|
+
const manager = getAnnotationManager();
|
|
25
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
26
|
+
manager.addAnnotation(annotation, groupKey);
|
|
27
|
+
if (annotationGroupSelector instanceof HTMLDivElement) {
|
|
28
|
+
triggerAnnotationAddedForElement(annotation, annotationGroupSelector);
|
|
29
|
+
}
|
|
30
|
+
triggerAnnotationAddedForFOR(annotation);
|
|
32
31
|
return annotation.annotationUID;
|
|
33
32
|
}
|
|
34
|
-
function getNumberOfAnnotations(toolName,
|
|
35
|
-
const
|
|
36
|
-
|
|
33
|
+
function getNumberOfAnnotations(toolName, annotationGroupSelector) {
|
|
34
|
+
const manager = getAnnotationManager();
|
|
35
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
36
|
+
return manager.getNumberOfAnnotations(groupKey, toolName);
|
|
37
37
|
}
|
|
38
|
-
function removeAnnotation(annotationUID
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
annotationManager = getViewportSpecificAnnotationManager(element);
|
|
42
|
-
}
|
|
43
|
-
const annotation = annotationManager.getAnnotation(annotationUID);
|
|
38
|
+
function removeAnnotation(annotationUID) {
|
|
39
|
+
const manager = getAnnotationManager();
|
|
40
|
+
const annotation = manager.getAnnotation(annotationUID);
|
|
44
41
|
if (!annotation) {
|
|
45
42
|
return;
|
|
46
43
|
}
|
|
47
|
-
|
|
44
|
+
manager.removeAnnotation(annotationUID);
|
|
48
45
|
const eventType = Events.ANNOTATION_REMOVED;
|
|
49
46
|
const eventDetail = {
|
|
50
47
|
annotation,
|
|
51
|
-
annotationManagerUID:
|
|
48
|
+
annotationManagerUID: manager.uid,
|
|
52
49
|
};
|
|
53
50
|
triggerEvent(eventTarget, eventType, eventDetail);
|
|
54
51
|
}
|
|
55
|
-
function getAnnotation(annotationUID
|
|
56
|
-
const
|
|
57
|
-
const annotation =
|
|
52
|
+
function getAnnotation(annotationUID) {
|
|
53
|
+
const manager = getAnnotationManager();
|
|
54
|
+
const annotation = manager.getAnnotation(annotationUID);
|
|
58
55
|
return annotation;
|
|
59
56
|
}
|
|
60
|
-
function removeAllAnnotations(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
annotationManager = getViewportSpecificAnnotationManager(element);
|
|
64
|
-
}
|
|
65
|
-
annotationManager.removeAllAnnotations();
|
|
57
|
+
function removeAllAnnotations() {
|
|
58
|
+
const manager = getAnnotationManager();
|
|
59
|
+
manager.removeAllAnnotations();
|
|
66
60
|
}
|
|
67
|
-
export { getAnnotations, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations,
|
|
61
|
+
export { getAnnotations, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, };
|
|
68
62
|
//# sourceMappingURL=annotationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Annotation } from '../../../types/AnnotationTypes';
|
|
2
|
+
declare function triggerAnnotationAddedForElement(annotation: Annotation, element: HTMLDivElement): void;
|
|
3
|
+
declare function triggerAnnotationAddedForFOR(annotation: Annotation): void;
|
|
4
|
+
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getEnabledElement, triggerEvent, eventTarget, getEnabledElementByIds, } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
import { getToolGroupsWithToolName } from '../../../store/ToolGroupManager';
|
|
4
|
+
function triggerAnnotationAddedForElement(annotation, element) {
|
|
5
|
+
const enabledElement = getEnabledElement(element);
|
|
6
|
+
const { renderingEngine, viewportId } = enabledElement;
|
|
7
|
+
const eventType = Events.ANNOTATION_ADDED;
|
|
8
|
+
const eventDetail = {
|
|
9
|
+
annotation,
|
|
10
|
+
viewportId,
|
|
11
|
+
renderingEngineId: renderingEngine.id,
|
|
12
|
+
};
|
|
13
|
+
triggerEvent(eventTarget, eventType, eventDetail);
|
|
14
|
+
}
|
|
15
|
+
function triggerAnnotationAddedForFOR(annotation) {
|
|
16
|
+
const { toolName } = annotation.metadata;
|
|
17
|
+
const toolGroups = getToolGroupsWithToolName(toolName);
|
|
18
|
+
if (!toolGroups.length) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const viewportsToRender = [];
|
|
22
|
+
toolGroups.forEach((toolGroup) => {
|
|
23
|
+
toolGroup.viewportsInfo.forEach((viewportInfo) => {
|
|
24
|
+
const { renderingEngineId, viewportId } = viewportInfo;
|
|
25
|
+
const { FrameOfReferenceUID } = getEnabledElementByIds(viewportId, renderingEngineId);
|
|
26
|
+
if (annotation.metadata.FrameOfReferenceUID === FrameOfReferenceUID) {
|
|
27
|
+
viewportsToRender.push(viewportInfo);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
if (!viewportsToRender.length) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const eventType = Events.ANNOTATION_ADDED;
|
|
35
|
+
viewportsToRender.forEach(({ renderingEngineId, viewportId }) => {
|
|
36
|
+
const eventDetail = {
|
|
37
|
+
annotation,
|
|
38
|
+
viewportId,
|
|
39
|
+
renderingEngineId,
|
|
40
|
+
};
|
|
41
|
+
triggerEvent(eventTarget, eventType, eventDetail);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR };
|
|
45
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/stateManagement/annotation/helpers/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQ5E,SAAS,gCAAgC,CACvC,UAAsB,EACtB,OAAuB;IAEvB,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAE1C,MAAM,WAAW,GAA+B;QAC9C,UAAU;QACV,UAAU;QACV,iBAAiB,EAAE,eAAe,CAAC,EAAE;KACtC,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAOD,SAAS,4BAA4B,CAAC,UAAsB;IAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;IAEzC,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,OAAO;KACR;IAGD,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAE7B,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/C,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;YACvD,MAAM,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,CACpD,UAAU,EACV,iBAAiB,CAClB,CAAC;YAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,KAAK,mBAAmB,EAAE;gBACnE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAC7B,OAAO;KACR;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAE1C,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9D,MAAM,WAAW,GAA+B;YAC9C,UAAU;YACV,UAAU;YACV,iBAAiB;SAClB,CAAC;QAEF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -6,9 +6,10 @@ import { getAnnotations } from "./annotation/annotationState";
|
|
|
6
6
|
import { addAnnotation } from "./annotation/annotationState";
|
|
7
7
|
import { getNumberOfAnnotations } from "./annotation/annotationState";
|
|
8
8
|
import { removeAnnotation } from "./annotation/annotationState";
|
|
9
|
-
import { getDefaultAnnotationManager } from "./annotation/annotationState";
|
|
10
|
-
import { getViewportSpecificAnnotationManager } from "./annotation/annotationState";
|
|
11
9
|
import { getAnnotation } from "./annotation/annotationState";
|
|
10
|
+
import { setAnnotationManager } from "./annotation/annotationState";
|
|
11
|
+
import { getAnnotationManager } from "./annotation/annotationState";
|
|
12
|
+
import { resetAnnotationManager } from "./annotation/annotationState";
|
|
12
13
|
import { addSegmentationRepresentations } from "./segmentation";
|
|
13
14
|
import { removeSegmentationsFromToolGroup } from "./segmentation";
|
|
14
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation,
|
|
15
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, addSegmentationRepresentations, removeSegmentationsFromToolGroup };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import FrameOfReferenceSpecificAnnotationManager, { defaultFrameOfReferenceSpecificAnnotationManager, } from './annotation/FrameOfReferenceSpecificAnnotationManager';
|
|
2
2
|
import * as annotationLocking from './annotation/annotationLocking';
|
|
3
3
|
import * as annotationSelection from './annotation/annotationSelection';
|
|
4
|
-
import { getAnnotations, addAnnotation, removeAnnotation,
|
|
4
|
+
import { getAnnotations, addAnnotation, removeAnnotation, getAnnotation, getNumberOfAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, } from './annotation/annotationState';
|
|
5
5
|
import { addSegmentationRepresentations, removeSegmentationsFromToolGroup, } from './segmentation';
|
|
6
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation,
|
|
6
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, addSegmentationRepresentations, removeSegmentationsFromToolGroup, };
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stateManagement/index.js"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,EAAE,EAChD,gDAAgD,GACjD,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAExE,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stateManagement/index.js"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,EAAE,EAChD,gDAAgD,GACjD,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAExE,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,yCAAyC,EACzC,gDAAgD,EAChD,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EAEtB,8BAA8B,EAC9B,gCAAgC,GACjC,CAAC"}
|