@cornerstonejs/tools 0.49.1 → 0.50.1

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.
@@ -113,12 +113,16 @@ class WindowLevelTool extends base_1.BaseTool {
113
113
  return core_1.utilities.windowLevel.toLowHighRange(windowWidth, windowCenter);
114
114
  }
115
115
  _getMultiplierFromDynamicRange(viewport, volumeId) {
116
+ var _a;
116
117
  let imageDynamicRange;
117
118
  if (volumeId) {
118
119
  const imageVolume = core_1.cache.getVolume(volumeId);
119
120
  const { dimensions } = imageVolume;
120
121
  const scalarData = imageVolume.getScalarData();
121
- imageDynamicRange = this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
122
+ const calculatedDynamicRange = this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
123
+ const BitsStored = (_a = imageVolume === null || imageVolume === void 0 ? void 0 : imageVolume.metadata) === null || _a === void 0 ? void 0 : _a.BitsStored;
124
+ const metadataDynamicRange = BitsStored ? Math.pow(2, BitsStored) : Infinity;
125
+ imageDynamicRange = Math.min(calculatedDynamicRange, metadataDynamicRange);
122
126
  }
123
127
  else {
124
128
  imageDynamicRange = this._getImageDynamicRangeFromViewport(viewport);
@@ -1 +1 @@
1
- {"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Types } from '@cornerstonejs/core';
2
+ declare function getDataInTime(dynamicVolume: Types.IDynamicImageVolume, options: {
3
+ frameNumbers?: any;
4
+ maskVolumeId?: any;
5
+ imageCoordinate?: any;
6
+ }): number[] | number[][];
7
+ export default getDataInTime;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@cornerstonejs/core");
4
+ function getDataInTime(dynamicVolume, options) {
5
+ let dataInTime;
6
+ const frames = options.frameNumbers || [
7
+ ...Array(dynamicVolume.numTimePoints).keys(),
8
+ ];
9
+ if (!options.maskVolumeId && !options.imageCoordinate) {
10
+ throw new Error('No ROI provided');
11
+ }
12
+ if (options.maskVolumeId && options.imageCoordinate) {
13
+ throw new Error('Please provide only one ROI');
14
+ }
15
+ if (options.maskVolumeId) {
16
+ const segmentationVolume = core_1.cache.getVolume(options.maskVolumeId);
17
+ const indexArray = segmentationVolume
18
+ .getScalarData()
19
+ .map((_, i) => i)
20
+ .filter((i) => segmentationVolume.getScalarData()[i] !== 0);
21
+ const dataInTime = _getTimePointDataMask(frames, indexArray, dynamicVolume);
22
+ return dataInTime;
23
+ }
24
+ if (options.imageCoordinate) {
25
+ const dataInTime = _getTimePointDataCoordinate(frames, options.imageCoordinate, dynamicVolume);
26
+ return dataInTime;
27
+ }
28
+ return dataInTime;
29
+ }
30
+ function _getTimePointDataCoordinate(frames, coordinate, volume) {
31
+ const { dimensions, imageData } = volume;
32
+ const index = imageData.worldToIndex(coordinate);
33
+ index[0] = Math.floor(index[0]);
34
+ index[1] = Math.floor(index[1]);
35
+ index[2] = Math.floor(index[2]);
36
+ if (!core_1.utilities.indexWithinDimensions(index, dimensions)) {
37
+ throw new Error('outside bounds');
38
+ }
39
+ const yMultiple = dimensions[0];
40
+ const zMultiple = dimensions[0] * dimensions[1];
41
+ const allScalarData = volume.getScalarDataArrays();
42
+ const value = [];
43
+ for (let i = frames[0]; i < frames[0] + frames.length; i++) {
44
+ const activeScalarData = allScalarData[i];
45
+ const scalarIndex = index[2] * zMultiple + index[1] * yMultiple + index[0];
46
+ value.push(activeScalarData[scalarIndex]);
47
+ }
48
+ return value;
49
+ }
50
+ function _getTimePointDataMask(frames, indexArray, volume) {
51
+ const allScalarData = volume.getScalarDataArrays();
52
+ const value = [];
53
+ for (let i = 0; i < indexArray.length; i++) {
54
+ const indexValues = [];
55
+ for (let j = frames[0]; j < frames[0] + frames.length; j++) {
56
+ const activeScalarData = allScalarData[j];
57
+ indexValues.push(activeScalarData[indexArray[i]]);
58
+ }
59
+ value.push(indexValues);
60
+ }
61
+ return value;
62
+ }
63
+ exports.default = getDataInTime;
64
+ //# sourceMappingURL=getDataInTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDataInTime.js","sourceRoot":"","sources":["../../../../src/utilities/dynamicVolume/getDataInTime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import getDataInTime from './getDataInTime';
2
+ export { getDataInTime };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDataInTime = void 0;
7
+ const getDataInTime_1 = __importDefault(require("./getDataInTime"));
8
+ exports.getDataInTime = getDataInTime_1.default;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/dynamicVolume/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AACnC,wBADF,uBAAa,CACE"}
@@ -24,5 +24,6 @@ import * as rectangleROITool from './rectangleROITool';
24
24
  import * as stackPrefetch from './stackPrefetch';
25
25
  import * as viewport from './viewport';
26
26
  import * as touch from './touch';
27
+ import * as dynamicVolume from './dynamicVolume';
27
28
  import { triggerEvent } from '@cornerstonejs/core';
28
- export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
29
+ export { math, planar, viewportFilters, drawing, debounce, deepMerge, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.viewport = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.touch = exports.isObject = exports.orientation = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
29
+ exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.viewport = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.touch = exports.isObject = exports.orientation = exports.throttle = exports.dynamicVolume = exports.deepMerge = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
30
30
  const getAnnotationNearPoint_1 = require("./getAnnotationNearPoint");
31
31
  Object.defineProperty(exports, "getAnnotationNearPoint", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPoint; } });
32
32
  Object.defineProperty(exports, "getAnnotationNearPointOnEnabledElement", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPointOnEnabledElement; } });
@@ -80,6 +80,8 @@ const viewport = __importStar(require("./viewport"));
80
80
  exports.viewport = viewport;
81
81
  const touch = __importStar(require("./touch"));
82
82
  exports.touch = touch;
83
+ const dynamicVolume = __importStar(require("./dynamicVolume"));
84
+ exports.dynamicVolume = dynamicVolume;
83
85
  const core_1 = require("@cornerstonejs/core");
84
86
  Object.defineProperty(exports, "triggerEvent", { enumerable: true, get: function () { return core_1.triggerEvent; } });
85
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAqDhC,uGAvDA,+CAAsB,OAuDA;AACtB,uHAvDA,+DAAsC,OAuDA;AAnDxC,0DAAkC;AAqChC,mBArCK,kBAAQ,CAqCL;AApCV,4DAAoC;AAqClC,oBArCK,mBAAS,CAqCL;AApCX,0DAAkC;AAqChC,mBArCK,kBAAQ,CAqCL;AApCV,0DAAkC;AAsChC,mBAtCK,kBAAQ,CAsCL;AArCV,kDAA0B;AAmDxB,eAnDK,cAAI,CAmDL;AAlDN,oFAA4D;AAuC1D,gCAvCK,+BAAqB,CAuCL;AAtCvB,oHAA4F;AAwC1F,gDAxCK,+CAAqC,CAwCL;AAvCvC,wFAAgE;AAwC9D,kCAxCK,iCAAuB,CAwCL;AAvCzB,yEAAiD;AA4C/C,sBA5CK,qBAAW,CA4CL;AA1Cb,kFAA0D;AAsCxD,+BAtCK,8BAAoB,CAsCL;AArCtB,0GAAkF;AAsChF,2CAtCK,0CAAgC,CAsCL;AArClC,sDAA8B;AAgD5B,iBAhDK,gBAAM,CAgDL;AA7CR,6DAA+C;AA8B7C,oCAAY;AA7Bd,mDAAqC;AAoBnC,0BAAO;AAnBT,6CAA+B;AAgB7B,oBAAI;AAfN,iDAAmC;AAgBjC,wBAAM;AAfR,mEAAqD;AAgBnD,0CAAe;AAfjB,2DAA6C;AAoB3C,kCAAW;AAnBb,6CAA+B;AAiC7B,oBAAI;AAhCN,2DAA6C;AAkC3C,kCAAW;AAjCb,+EAAiE;AAmC/D,sDAAqB;AAlCvB,qEAAuD;AAiCrD,4CAAgB;AAhClB,+DAAiD;AAkC/C,sCAAa;AAjCf,qDAAuC;AA2BrC,4BAAQ;AA1BV,+CAAiC;AAe/B,sBAAK;AAZP,8CAAmD;AAajD,6FAbO,mBAAY,OAaP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAuDhC,uGAzDA,+CAAsB,OAyDA;AACtB,uHAzDA,+DAAsC,OAyDA;AArDxC,0DAAkC;AAsChC,mBAtCK,kBAAQ,CAsCL;AArCV,4DAAoC;AAsClC,oBAtCK,mBAAS,CAsCL;AArCX,0DAAkC;AAuChC,mBAvCK,kBAAQ,CAuCL;AAtCV,0DAAkC;AAwChC,mBAxCK,kBAAQ,CAwCL;AAvCV,kDAA0B;AAqDxB,eArDK,cAAI,CAqDL;AApDN,oFAA4D;AAyC1D,gCAzCK,+BAAqB,CAyCL;AAxCvB,oHAA4F;AA0C1F,gDA1CK,+CAAqC,CA0CL;AAzCvC,wFAAgE;AA0C9D,kCA1CK,iCAAuB,CA0CL;AAzCzB,yEAAiD;AA8C/C,sBA9CK,qBAAW,CA8CL;AA5Cb,kFAA0D;AAwCxD,+BAxCK,8BAAoB,CAwCL;AAvCtB,0GAAkF;AAwChF,2CAxCK,0CAAgC,CAwCL;AAvClC,sDAA8B;AAkD5B,iBAlDK,gBAAM,CAkDL;AA/CR,6DAA+C;AAgC7C,oCAAY;AA/Bd,mDAAqC;AAqBnC,0BAAO;AApBT,6CAA+B;AAiB7B,oBAAI;AAhBN,iDAAmC;AAiBjC,wBAAM;AAhBR,mEAAqD;AAiBnD,0CAAe;AAhBjB,2DAA6C;AAsB3C,kCAAW;AArBb,6CAA+B;AAmC7B,oBAAI;AAlCN,2DAA6C;AAoC3C,kCAAW;AAnCb,+EAAiE;AAqC/D,sDAAqB;AApCvB,qEAAuD;AAmCrD,4CAAgB;AAlClB,+DAAiD;AAoC/C,sCAAa;AAnCf,qDAAuC;AA6BrC,4BAAQ;AA5BV,+CAAiC;AAiB/B,sBAAK;AAhBP,+DAAiD;AAY/C,sCAAa;AATf,8CAAmD;AAcjD,6FAdO,mBAAY,OAcP"}
@@ -116,7 +116,10 @@ class WindowLevelTool extends BaseTool {
116
116
  const imageVolume = cache.getVolume(volumeId);
117
117
  const { dimensions } = imageVolume;
118
118
  const scalarData = imageVolume.getScalarData();
119
- imageDynamicRange = this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
119
+ const calculatedDynamicRange = this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
120
+ const BitsStored = imageVolume?.metadata?.BitsStored;
121
+ const metadataDynamicRange = BitsStored ? 2 ** BitsStored : Infinity;
122
+ imageDynamicRange = Math.min(calculatedDynamicRange, metadataDynamicRange);
120
123
  }
121
124
  else {
122
125
  imageDynamicRange = this._getImageDynamicRangeFromViewport(viewport);
@@ -1 +1 @@
1
- {"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WindowLevelTool.js","sourceRoot":"","sources":["../../../src/tools/WindowLevelTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Types } from '@cornerstonejs/core';
2
+ declare function getDataInTime(dynamicVolume: Types.IDynamicImageVolume, options: {
3
+ frameNumbers?: any;
4
+ maskVolumeId?: any;
5
+ imageCoordinate?: any;
6
+ }): number[] | number[][];
7
+ export default getDataInTime;
@@ -0,0 +1,62 @@
1
+ import { utilities, cache } from '@cornerstonejs/core';
2
+ function getDataInTime(dynamicVolume, options) {
3
+ let dataInTime;
4
+ const frames = options.frameNumbers || [
5
+ ...Array(dynamicVolume.numTimePoints).keys(),
6
+ ];
7
+ if (!options.maskVolumeId && !options.imageCoordinate) {
8
+ throw new Error('No ROI provided');
9
+ }
10
+ if (options.maskVolumeId && options.imageCoordinate) {
11
+ throw new Error('Please provide only one ROI');
12
+ }
13
+ if (options.maskVolumeId) {
14
+ const segmentationVolume = cache.getVolume(options.maskVolumeId);
15
+ const indexArray = segmentationVolume
16
+ .getScalarData()
17
+ .map((_, i) => i)
18
+ .filter((i) => segmentationVolume.getScalarData()[i] !== 0);
19
+ const dataInTime = _getTimePointDataMask(frames, indexArray, dynamicVolume);
20
+ return dataInTime;
21
+ }
22
+ if (options.imageCoordinate) {
23
+ const dataInTime = _getTimePointDataCoordinate(frames, options.imageCoordinate, dynamicVolume);
24
+ return dataInTime;
25
+ }
26
+ return dataInTime;
27
+ }
28
+ function _getTimePointDataCoordinate(frames, coordinate, volume) {
29
+ const { dimensions, imageData } = volume;
30
+ const index = imageData.worldToIndex(coordinate);
31
+ index[0] = Math.floor(index[0]);
32
+ index[1] = Math.floor(index[1]);
33
+ index[2] = Math.floor(index[2]);
34
+ if (!utilities.indexWithinDimensions(index, dimensions)) {
35
+ throw new Error('outside bounds');
36
+ }
37
+ const yMultiple = dimensions[0];
38
+ const zMultiple = dimensions[0] * dimensions[1];
39
+ const allScalarData = volume.getScalarDataArrays();
40
+ const value = [];
41
+ for (let i = frames[0]; i < frames[0] + frames.length; i++) {
42
+ const activeScalarData = allScalarData[i];
43
+ const scalarIndex = index[2] * zMultiple + index[1] * yMultiple + index[0];
44
+ value.push(activeScalarData[scalarIndex]);
45
+ }
46
+ return value;
47
+ }
48
+ function _getTimePointDataMask(frames, indexArray, volume) {
49
+ const allScalarData = volume.getScalarDataArrays();
50
+ const value = [];
51
+ for (let i = 0; i < indexArray.length; i++) {
52
+ const indexValues = [];
53
+ for (let j = frames[0]; j < frames[0] + frames.length; j++) {
54
+ const activeScalarData = allScalarData[j];
55
+ indexValues.push(activeScalarData[indexArray[i]]);
56
+ }
57
+ value.push(indexValues);
58
+ }
59
+ return value;
60
+ }
61
+ export default getDataInTime;
62
+ //# sourceMappingURL=getDataInTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDataInTime.js","sourceRoot":"","sources":["../../../../src/utilities/dynamicVolume/getDataInTime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import getDataInTime from './getDataInTime';
2
+ export { getDataInTime };
@@ -0,0 +1,3 @@
1
+ import getDataInTime from './getDataInTime';
2
+ export { getDataInTime };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/dynamicVolume/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -24,5 +24,6 @@ import * as rectangleROITool from './rectangleROITool';
24
24
  import * as stackPrefetch from './stackPrefetch';
25
25
  import * as viewport from './viewport';
26
26
  import * as touch from './touch';
27
+ import * as dynamicVolume from './dynamicVolume';
27
28
  import { triggerEvent } from '@cornerstonejs/core';
28
- export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
29
+ export { math, planar, viewportFilters, drawing, debounce, deepMerge, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
@@ -24,6 +24,7 @@ import * as rectangleROITool from './rectangleROITool';
24
24
  import * as stackPrefetch from './stackPrefetch';
25
25
  import * as viewport from './viewport';
26
26
  import * as touch from './touch';
27
+ import * as dynamicVolume from './dynamicVolume';
27
28
  import { triggerEvent } from '@cornerstonejs/core';
28
- export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
29
+ export { math, planar, viewportFilters, drawing, debounce, deepMerge, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
29
30
  //# 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,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,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,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,MAAM,GACP,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,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,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,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,MAAM,GACP,CAAC"}