@cornerstonejs/tools 0.46.3 → 0.48.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 (175) hide show
  1. package/dist/cjs/init.js +1 -1
  2. package/dist/cjs/init.js.map +1 -1
  3. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
  4. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +98 -90
  5. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  6. package/dist/cjs/stateManagement/annotation/annotationState.d.ts +11 -10
  7. package/dist/cjs/stateManagement/annotation/annotationState.js +40 -45
  8. package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
  9. package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -0
  10. package/dist/cjs/stateManagement/annotation/helpers/state.js +49 -0
  11. package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -0
  12. package/dist/cjs/stateManagement/index.d.ts +4 -3
  13. package/dist/cjs/stateManagement/index.js +4 -3
  14. package/dist/cjs/stateManagement/index.js.map +1 -1
  15. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
  16. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +23 -0
  17. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
  18. package/dist/cjs/store/ToolGroupManager/index.d.ts +2 -1
  19. package/dist/cjs/store/ToolGroupManager/index.js +3 -1
  20. package/dist/cjs/store/ToolGroupManager/index.js.map +1 -1
  21. package/dist/cjs/store/filterToolsWithAnnotationsForElement.js +2 -2
  22. package/dist/cjs/store/filterToolsWithAnnotationsForElement.js.map +1 -1
  23. package/dist/cjs/store/removeEnabledElement.js +1 -1
  24. package/dist/cjs/store/removeEnabledElement.js.map +1 -1
  25. package/dist/cjs/tools/CrosshairsTool.d.ts +1 -0
  26. package/dist/cjs/tools/CrosshairsTool.js +19 -17
  27. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  28. package/dist/cjs/tools/ReferenceCursors.d.ts +0 -1
  29. package/dist/cjs/tools/ReferenceCursors.js +10 -12
  30. package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
  31. package/dist/cjs/tools/ReferenceLinesTool.js +3 -2
  32. package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
  33. package/dist/cjs/tools/ScaleOverlayTool.js +7 -8
  34. package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
  35. package/dist/cjs/tools/WindowLevelTool.js +2 -1
  36. package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
  37. package/dist/cjs/tools/annotation/AngleTool.js +5 -4
  38. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  39. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +8 -7
  40. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  41. package/dist/cjs/tools/annotation/BidirectionalTool.js +5 -4
  42. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  43. package/dist/cjs/tools/annotation/CobbAngleTool.js +5 -4
  44. package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
  45. package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -4
  46. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  47. package/dist/cjs/tools/annotation/LengthTool.js +5 -4
  48. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  49. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -3
  50. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  51. package/dist/cjs/tools/annotation/ProbeTool.js +7 -5
  52. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  53. package/dist/cjs/tools/annotation/RectangleROITool.js +7 -5
  54. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  55. package/dist/cjs/tools/base/AnnotationDisplayTool.js +2 -2
  56. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  57. package/dist/cjs/tools/segmentation/PaintFillTool.js +2 -1
  58. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
  59. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
  60. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  61. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +4 -3
  62. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  63. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -1
  64. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  65. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +3 -2
  66. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  67. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -1
  68. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  69. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +2 -1
  70. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  71. package/dist/cjs/types/AnnotationGroupSelector.d.ts +2 -0
  72. package/dist/cjs/types/AnnotationGroupSelector.js +3 -0
  73. package/dist/cjs/types/AnnotationGroupSelector.js.map +1 -0
  74. package/dist/cjs/types/AnnotationTypes.d.ts +4 -4
  75. package/dist/cjs/types/IAnnotationManager.d.ts +14 -0
  76. package/dist/cjs/types/IAnnotationManager.js +3 -0
  77. package/dist/cjs/types/IAnnotationManager.js.map +1 -0
  78. package/dist/cjs/types/index.d.ts +4 -2
  79. package/dist/cjs/utilities/getAnnotationNearPoint.js +5 -4
  80. package/dist/cjs/utilities/getAnnotationNearPoint.js.map +1 -1
  81. package/dist/cjs/utilities/segmentation/createMergedLabelmapForIndex.js +3 -3
  82. package/dist/cjs/utilities/segmentation/createMergedLabelmapForIndex.js.map +1 -1
  83. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -2
  84. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -1
  85. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +3 -2
  86. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  87. package/dist/esm/init.js +2 -2
  88. package/dist/esm/init.js.map +1 -1
  89. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
  90. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +100 -91
  91. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  92. package/dist/esm/stateManagement/annotation/annotationState.d.ts +11 -10
  93. package/dist/esm/stateManagement/annotation/annotationState.js +38 -44
  94. package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
  95. package/dist/esm/stateManagement/annotation/helpers/state.d.ts +4 -0
  96. package/dist/esm/stateManagement/annotation/helpers/state.js +45 -0
  97. package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -0
  98. package/dist/esm/stateManagement/index.d.ts +4 -3
  99. package/dist/esm/stateManagement/index.js +2 -2
  100. package/dist/esm/stateManagement/index.js.map +1 -1
  101. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
  102. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +21 -0
  103. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
  104. package/dist/esm/store/ToolGroupManager/index.d.ts +2 -1
  105. package/dist/esm/store/ToolGroupManager/index.js +2 -1
  106. package/dist/esm/store/ToolGroupManager/index.js.map +1 -1
  107. package/dist/esm/store/filterToolsWithAnnotationsForElement.js +2 -2
  108. package/dist/esm/store/filterToolsWithAnnotationsForElement.js.map +1 -1
  109. package/dist/esm/store/removeEnabledElement.js +1 -1
  110. package/dist/esm/store/removeEnabledElement.js.map +1 -1
  111. package/dist/esm/tools/CrosshairsTool.d.ts +1 -0
  112. package/dist/esm/tools/CrosshairsTool.js +19 -17
  113. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  114. package/dist/esm/tools/ReferenceCursors.d.ts +0 -1
  115. package/dist/esm/tools/ReferenceCursors.js +10 -12
  116. package/dist/esm/tools/ReferenceCursors.js.map +1 -1
  117. package/dist/esm/tools/ReferenceLinesTool.js +3 -2
  118. package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
  119. package/dist/esm/tools/ScaleOverlayTool.js +7 -8
  120. package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
  121. package/dist/esm/tools/WindowLevelTool.js +2 -1
  122. package/dist/esm/tools/WindowLevelTool.js.map +1 -1
  123. package/dist/esm/tools/annotation/AngleTool.js +5 -4
  124. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  125. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +8 -7
  126. package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  127. package/dist/esm/tools/annotation/BidirectionalTool.js +5 -4
  128. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  129. package/dist/esm/tools/annotation/CobbAngleTool.js +5 -4
  130. package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
  131. package/dist/esm/tools/annotation/EllipticalROITool.js +5 -4
  132. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  133. package/dist/esm/tools/annotation/LengthTool.js +5 -4
  134. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  135. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -3
  136. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  137. package/dist/esm/tools/annotation/ProbeTool.js +7 -5
  138. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  139. package/dist/esm/tools/annotation/RectangleROITool.js +7 -5
  140. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  141. package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -3
  142. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  143. package/dist/esm/tools/segmentation/PaintFillTool.js +2 -1
  144. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
  145. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
  146. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  147. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +4 -3
  148. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  149. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +2 -1
  150. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  151. package/dist/esm/tools/segmentation/strategies/fillCircle.js +3 -2
  152. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  153. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +2 -1
  154. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  155. package/dist/esm/tools/segmentation/strategies/fillSphere.js +2 -1
  156. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  157. package/dist/esm/types/AnnotationGroupSelector.d.ts +2 -0
  158. package/dist/esm/types/AnnotationGroupSelector.js +2 -0
  159. package/dist/esm/types/AnnotationGroupSelector.js.map +1 -0
  160. package/dist/esm/types/AnnotationTypes.d.ts +4 -4
  161. package/dist/esm/types/IAnnotationManager.d.ts +14 -0
  162. package/dist/esm/types/IAnnotationManager.js +2 -0
  163. package/dist/esm/types/IAnnotationManager.js.map +1 -0
  164. package/dist/esm/types/index.d.ts +4 -2
  165. package/dist/esm/utilities/getAnnotationNearPoint.js +3 -2
  166. package/dist/esm/utilities/getAnnotationNearPoint.js.map +1 -1
  167. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.js +3 -3
  168. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.js.map +1 -1
  169. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -2
  170. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -1
  171. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +3 -2
  172. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  173. package/dist/umd/index.js +1 -1
  174. package/dist/umd/index.js.map +1 -1
  175. package/package.json +3 -3
@@ -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
- export default class FrameOfReferenceSpecificAnnotationManager {
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.getFrameOfReferenceAnnotations = (FrameOfReferenceUID) => {
29
- return this.annotations[FrameOfReferenceUID];
30
- };
31
- this.get = (FrameOfReferenceUID, toolName) => {
32
- const frameOfReferenceSpecificAnnotations = this.annotations[FrameOfReferenceUID];
33
- if (!frameOfReferenceSpecificAnnotations) {
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 frameOfReferenceSpecificAnnotations[toolName];
47
+ return annotations[groupKey];
37
48
  };
38
- this.getAnnotation = (annotationUID, filter = {}) => {
39
- const toolSpecificAnnotationsAndIndex = this._getToolSpecificAnnotationsAndIndex(annotationUID, filter);
40
- if (!toolSpecificAnnotationsAndIndex) {
41
- return;
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.getNumberOfAnnotationsInFrameOfReference = (toolName, frameOfReferenceUID) => {
47
- const annotations = this.getFrameOfReferenceAnnotations(frameOfReferenceUID);
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
- const toolSpecificAnnotations = annotations[toolName];
52
- if (!toolSpecificAnnotations) {
53
- return 0;
68
+ if (toolName) {
69
+ return annotations.length;
54
70
  }
55
- return toolSpecificAnnotations.length;
56
- };
57
- this.getNumberOfAnnotations = (toolName, frameOfReferenceUID) => {
58
- if (frameOfReferenceUID) {
59
- return this.getNumberOfAnnotationsInFrameOfReference(toolName, frameOfReferenceUID);
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[FrameOfReferenceUID];
82
+ let frameOfReferenceSpecificAnnotations = annotations[groupKey];
72
83
  if (!frameOfReferenceSpecificAnnotations) {
73
- annotations[FrameOfReferenceUID] = {};
74
- frameOfReferenceSpecificAnnotations = annotations[FrameOfReferenceUID];
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, filter = {}) => {
86
- const toolSpecificAnnotationsAndIndex = this._getToolSpecificAnnotationsAndIndex(annotationUID, filter);
87
- if (!toolSpecificAnnotationsAndIndex) {
88
- return;
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
- const { toolSpecificAnnotations, index } = toolSpecificAnnotationsAndIndex;
91
- const { metadata } = toolSpecificAnnotations[0];
92
- toolSpecificAnnotations.splice(index, 1);
93
- if (!toolSpecificAnnotations.length) {
94
- const { toolName } = metadata;
95
- delete this.annotations[metadata.FrameOfReferenceUID][toolName];
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 = (FrameOfReferenceUID, toolName) => {
126
+ this.saveAnnotations = (groupKey, toolName) => {
99
127
  const annotations = this.annotations;
100
- if (FrameOfReferenceUID && toolName) {
101
- const frameOfReferenceSpecificAnnotations = annotations[FrameOfReferenceUID];
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 (FrameOfReferenceUID) {
109
- const frameOfReferenceSpecificAnnotations = annotations[FrameOfReferenceUID];
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, FrameOfReferenceUID, toolName) => {
142
+ this.restoreAnnotations = (state, groupKey, toolName) => {
115
143
  const annotations = this.annotations;
116
- if (FrameOfReferenceUID && toolName) {
117
- let frameOfReferenceSpecificAnnotations = annotations[FrameOfReferenceUID];
144
+ if (groupKey && toolName) {
145
+ let frameOfReferenceSpecificAnnotations = annotations[groupKey];
118
146
  if (!frameOfReferenceSpecificAnnotations) {
119
- annotations[FrameOfReferenceUID] = {};
120
- frameOfReferenceSpecificAnnotations = annotations[FrameOfReferenceUID];
147
+ annotations[groupKey] = {};
148
+ frameOfReferenceSpecificAnnotations = annotations[groupKey];
121
149
  }
122
150
  frameOfReferenceSpecificAnnotations[toolName] = state;
123
151
  }
124
- else if (FrameOfReferenceUID) {
125
- annotations[FrameOfReferenceUID] = (state);
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
@@ -1 +1 @@
1
- {"version":3,"file":"FrameOfReferenceSpecificAnnotationManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts"],"names":[],"mappings":"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"}
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
- declare function getDefaultAnnotationManager(): import("./FrameOfReferenceSpecificAnnotationManager").default;
4
- declare function getViewportSpecificAnnotationManager(element?: Types.IEnabledElement | HTMLDivElement): import("./FrameOfReferenceSpecificAnnotationManager").default;
5
- declare function getAnnotations(element: HTMLDivElement, toolName: string): Annotations;
6
- declare function addAnnotation(element: HTMLDivElement, annotation: Annotation): string;
7
- declare function getNumberOfAnnotations(toolName: string, frameOfReferenceUID?: string): number;
8
- declare function removeAnnotation(annotationUID: string, element?: HTMLDivElement): void;
9
- declare function getAnnotation(annotationUID: string, element?: HTMLDivElement): Annotation;
10
- declare function removeAllAnnotations(element?: HTMLDivElement): void;
11
- export { getAnnotations, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations, getViewportSpecificAnnotationManager, getDefaultAnnotationManager, };
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 { getEnabledElement, triggerEvent, eventTarget, utilities as csUtils, } from '@cornerstonejs/core';
1
+ import { triggerEvent, eventTarget, utilities as csUtils, } from '@cornerstonejs/core';
2
2
  import { Events } from '../../enums';
3
3
  import { defaultFrameOfReferenceSpecificAnnotationManager } from './FrameOfReferenceSpecificAnnotationManager';
4
- function getDefaultAnnotationManager() {
5
- return defaultFrameOfReferenceSpecificAnnotationManager;
4
+ import { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, } from './helpers/state';
5
+ let defaultManager = defaultFrameOfReferenceSpecificAnnotationManager;
6
+ function getAnnotationManager() {
7
+ return defaultManager;
6
8
  }
7
- function getViewportSpecificAnnotationManager(element) {
8
- return defaultFrameOfReferenceSpecificAnnotationManager;
9
+ function setAnnotationManager(annotationManager) {
10
+ defaultManager = annotationManager;
9
11
  }
10
- function getAnnotations(element, toolName) {
11
- const enabledElement = getEnabledElement(element);
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 addAnnotation(element, annotation) {
17
- const annotationManager = getViewportSpecificAnnotationManager(element);
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
- annotationManager.addAnnotation(annotation);
22
- const enabledElement = getEnabledElement(element);
23
- const { renderingEngine } = enabledElement;
24
- const { viewportId } = enabledElement;
25
- const eventType = Events.ANNOTATION_ADDED;
26
- const eventDetail = {
27
- annotation,
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, frameOfReferenceUID) {
35
- const annotationManager = getDefaultAnnotationManager();
36
- return annotationManager.getNumberOfAnnotations(toolName, frameOfReferenceUID);
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, element) {
39
- let annotationManager = getDefaultAnnotationManager();
40
- if (element) {
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
- annotationManager.removeAnnotation(annotationUID);
44
+ manager.removeAnnotation(annotationUID);
48
45
  const eventType = Events.ANNOTATION_REMOVED;
49
46
  const eventDetail = {
50
47
  annotation,
51
- annotationManagerUID: annotationManager.uid,
48
+ annotationManagerUID: manager.uid,
52
49
  };
53
50
  triggerEvent(eventTarget, eventType, eventDetail);
54
51
  }
55
- function getAnnotation(annotationUID, element) {
56
- const annotationManager = getViewportSpecificAnnotationManager(element);
57
- const annotation = annotationManager.getAnnotation(annotationUID);
52
+ function getAnnotation(annotationUID) {
53
+ const manager = getAnnotationManager();
54
+ const annotation = manager.getAnnotation(annotationUID);
58
55
  return annotation;
59
56
  }
60
- function removeAllAnnotations(element) {
61
- let annotationManager = getDefaultAnnotationManager();
62
- if (element) {
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, getViewportSpecificAnnotationManager, getDefaultAnnotationManager, };
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":"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"}
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, getDefaultAnnotationManager, getViewportSpecificAnnotationManager, getAnnotation, addSegmentationRepresentations, removeSegmentationsFromToolGroup };
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, getDefaultAnnotationManager, getViewportSpecificAnnotationManager, getAnnotation, getNumberOfAnnotations, } from './annotation/annotationState';
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, getDefaultAnnotationManager, getViewportSpecificAnnotationManager, getAnnotation, addSegmentationRepresentations, removeSegmentationsFromToolGroup, };
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,2BAA2B,EAC3B,oCAAoC,EACpC,aAAa,EACb,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,2BAA2B,EAC3B,oCAAoC,EACpC,aAAa,EAEb,8BAA8B,EAC9B,gCAAgC,GACjC,CAAC"}
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"}
@@ -0,0 +1,3 @@
1
+ import { IToolGroup } from '../../types';
2
+ declare function getToolGroupsWithToolName(toolName: string): IToolGroup[] | [];
3
+ export default getToolGroupsWithToolName;
@@ -0,0 +1,21 @@
1
+ import { state } from '../index';
2
+ import { ToolModes } from '../../enums';
3
+ const MODES = [ToolModes.Active, ToolModes.Passive, ToolModes.Enabled];
4
+ function getToolGroupsWithToolName(toolName) {
5
+ return state.toolGroups.filter(({ toolOptions }) => {
6
+ const toolGroupToolNames = Object.keys(toolOptions);
7
+ for (let i = 0; i < toolGroupToolNames.length; i++) {
8
+ if (toolName !== toolGroupToolNames[i])
9
+ continue;
10
+ if (!toolOptions[toolName]) {
11
+ continue;
12
+ }
13
+ if (MODES.includes(toolOptions[toolName].mode)) {
14
+ return true;
15
+ }
16
+ }
17
+ return false;
18
+ });
19
+ }
20
+ export default getToolGroupsWithToolName;
21
+ //# sourceMappingURL=getToolGroupsWithToolName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getToolGroupsWithToolName.js","sourceRoot":"","sources":["../../../../src/store/ToolGroupManager/getToolGroupsWithToolName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAQvE,SAAS,yBAAyB,CAAC,QAAgB;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;QACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,QAAQ,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBAAE,SAAS;YAGjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBAC1B,SAAS;aACV;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC9C,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -4,4 +4,5 @@ import destroy from './destroy';
4
4
  import getToolGroup from './getToolGroup';
5
5
  import getToolGroupForViewport from './getToolGroupForViewport';
6
6
  import getAllToolGroups from './getAllToolGroups';
7
- export { createToolGroup, destroy, destroyToolGroup, getToolGroup, getToolGroupForViewport, getAllToolGroups, };
7
+ import getToolGroupsWithToolName from './getToolGroupsWithToolName';
8
+ export { createToolGroup, destroy, destroyToolGroup, getToolGroup, getToolGroupForViewport, getAllToolGroups, getToolGroupsWithToolName, };
@@ -4,5 +4,6 @@ import destroy from './destroy';
4
4
  import getToolGroup from './getToolGroup';
5
5
  import getToolGroupForViewport from './getToolGroupForViewport';
6
6
  import getAllToolGroups from './getAllToolGroups';
7
- export { createToolGroup, destroy, destroyToolGroup, getToolGroup, getToolGroupForViewport, getAllToolGroups, };
7
+ import getToolGroupsWithToolName from './getToolGroupsWithToolName';
8
+ export { createToolGroup, destroy, destroyToolGroup, getToolGroup, getToolGroupForViewport, getAllToolGroups, getToolGroupsWithToolName, };
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/store/ToolGroupManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/store/ToolGroupManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EACL,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,GAC1B,CAAC"}
@@ -7,8 +7,8 @@ export default function filterToolsWithAnnotationsForElement(element, tools) {
7
7
  console.warn('undefined tool in filterToolsWithAnnotationsForElement');
8
8
  continue;
9
9
  }
10
- let annotations = getAnnotations(element, tool.constructor.toolName);
11
- if (!annotations) {
10
+ let annotations = getAnnotations(tool.constructor.toolName, element);
11
+ if (!annotations?.length) {
12
12
  continue;
13
13
  }
14
14
  if (typeof tool.filterInteractableAnnotationsForElement === 'function') {