@ohif/app 3.8.0-beta.3 → 3.8.0-beta.31
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/{12.bundle.9b2ef667aa885a578371.js → 12.bundle.baf03be6fd41c521f9b0.js} +9 -11
- package/dist/{125.bundle.253395f320b72180da63.js → 125.bundle.df666cb677e5a8982157.js} +4 -5
- package/dist/{663.bundle.81cfb1c981897d109629.js → 170.bundle.5fffe3391db9fff495bf.js} +97 -89
- package/dist/{181.bundle.2ddc6f90740895a3949c.js → 181.bundle.ae92b8a551d041d06e90.js} +60 -72
- package/dist/181.css +1 -1
- package/dist/{370.bundle.4e319ff9104d8a89220d.js → 185.bundle.ff107942daab25638397.js} +338 -209
- package/dist/{19.bundle.bbad00adaeb0c0f2da83.js → 19.bundle.7d9970e947c15913acbd.js} +119 -134
- package/dist/{99.bundle.4ab1ada642b321733689.js → 199.bundle.44fef191037021697850.js} +215 -162
- package/dist/{202.bundle.d3490836f71e001dd30f.js → 202.bundle.0ca2f2479d2578f539b0.js} +349 -332
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 223.bundle.d4ac6ef2cfe47a9c4afc.js} +4422 -3671
- package/dist/{23.bundle.e008ad788170f2ed5569.js → 23.bundle.9d989522a6e4fdcb9c72.js} +1 -1
- package/dist/{250.bundle.8084960e3318cda37317.js → 250.bundle.09c69d348a5d965debc8.js} +21 -26
- package/dist/{281.bundle.6f09a55f6fb6a0c6aa4e.js → 281.bundle.c00c85eedfe6a4e89e27.js} +23 -25
- package/dist/{359.bundle.7d24077b9b48c59ec571.js → 359.bundle.157822292564ce6034e7.js} +26 -29
- package/dist/{410.bundle.7b96f751af0c666c9567.js → 410.bundle.d861967ec73f5ee5033c.js} +24 -28
- package/dist/{417.bundle.af0a207c29b109f84159.js → 417.bundle.5c66801d23d0e98c00e6.js} +2 -2
- package/dist/{451.bundle.9fd36f52ff69594f0669.js → 451.bundle.68a551a7d1746cf904cb.js} +28 -34
- package/dist/{82.bundle.5c4f2b25b65ae87c70e1.js → 456.bundle.0c3e54242e727edd91c3.js} +1207 -662
- package/dist/{221.bundle.fd479ac26e9dc30d8314.js → 466.bundle.4c795d4bbc7235bf310b.js} +108 -144
- package/dist/{471.bundle.b3d77b83b1593c09a504.js → 471.bundle.5809b10f75c8fc2f7167.js} +29 -35
- package/dist/{788.bundle.ee6d5e927bb494147ada.js → 483.bundle.806d836bd789ba8a6236.js} +131 -180
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 485.bundle.5b6c33cc43d8f3470642.js} +9 -98
- package/dist/{506.bundle.b6e2450f9614b551fc99.js → 506.bundle.b2fa58f80b714f8f382e.js} +13 -18
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 530.bundle.f904325ef4195d69ac0e.js} +10 -3
- package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 566.bundle.4840518afd323372c70f.js} +24751 -13727
- package/dist/{613.bundle.5f4a22d23c9091878e44.js → 613.bundle.a094d7efc970b305ac9f.js} +29 -27
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 661.bundle.28ef6d8cd035876bd8e2.js} +1772 -8939
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 686.bundle.62c827fe4f0d054c164e.js} +4 -5
- package/dist/{687.bundle.2292faaee50cc4421488.js → 687.bundle.8e4c026d8d4deabc2cc7.js} +19 -35
- package/dist/{342.bundle.ce0adc6253fcc6e2a0e7.js → 738.bundle.80d0ba2a72cbb0f1541c.js} +742 -503
- package/dist/{814.bundle.1debc907ccf495d4b4ca.js → 814.bundle.33bf94ad755d30cbfce5.js} +9 -11
- package/dist/{822.bundle.891f2e57b1b7bc2f4cb4.js → 822.bundle.55759fd8e9b0b489cc6b.js} +14 -16
- package/dist/{886.bundle.4b3a7f2079d085fdbcb3.js → 886.bundle.4496fc7fb83b8c897d20.js} +20 -24
- package/dist/95.bundle.d7a9f450bed3b770504d.js +9002 -0
- package/dist/{236.bundle.0dac31b7539315606135.js → 965.bundle.00bfca7bd5d4088c86a3.js} +104 -126
- package/dist/{app.bundle.abd0d9594a8e043568d4.js → app.bundle.cdb4c8a99ddcd8736c5e.js} +139810 -58799
- package/dist/app.bundle.css +11 -11
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
- package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +20 -20
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{82.css → 456.css} +0 -0
- /package/dist/{221.css → 466.css} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[185],{
|
|
2
3
|
|
|
3
|
-
/***/
|
|
4
|
+
/***/ 59185:
|
|
4
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5
6
|
|
|
6
|
-
"use strict";
|
|
7
7
|
// ESM COMPAT FLAG
|
|
8
8
|
__webpack_require__.r(__webpack_exports__);
|
|
9
9
|
|
|
@@ -16,22 +16,16 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
16
16
|
|
|
17
17
|
// EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
|
|
18
18
|
var src = __webpack_require__(71771);
|
|
19
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
20
|
-
var ui_src = __webpack_require__(
|
|
21
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 331 modules
|
|
22
|
-
var esm = __webpack_require__(3743);
|
|
19
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
|
|
20
|
+
var ui_src = __webpack_require__(22582);
|
|
23
21
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/toolbarButtons.ts
|
|
24
22
|
// TODO: torn, can either bake this here; or have to create a whole new button type
|
|
25
23
|
// Only ways that you can pass in a custom React component for render :l
|
|
26
24
|
|
|
27
25
|
|
|
28
|
-
|
|
29
26
|
const {
|
|
30
27
|
windowLevelPresets
|
|
31
28
|
} = src.defaults;
|
|
32
|
-
const _createActionButton = src/* ToolbarService */.Ok._createButton.bind(null, 'action');
|
|
33
|
-
const _createToggleButton = src/* ToolbarService */.Ok._createButton.bind(null, 'toggle');
|
|
34
|
-
const _createToolButton = src/* ToolbarService */.Ok._createButton.bind(null, 'tool');
|
|
35
29
|
|
|
36
30
|
/**
|
|
37
31
|
*
|
|
@@ -73,16 +67,6 @@ function _createSetToolActiveCommands(toolName) {
|
|
|
73
67
|
}));
|
|
74
68
|
return temp;
|
|
75
69
|
}
|
|
76
|
-
const ReferenceLinesCommands = [{
|
|
77
|
-
commandName: 'setSourceViewportForReferenceLinesTool',
|
|
78
|
-
context: 'CORNERSTONE'
|
|
79
|
-
}, {
|
|
80
|
-
commandName: 'setToolActive',
|
|
81
|
-
commandOptions: {
|
|
82
|
-
toolName: 'ReferenceLines'
|
|
83
|
-
},
|
|
84
|
-
context: 'CORNERSTONE'
|
|
85
|
-
}];
|
|
86
70
|
const toolbarButtons = [
|
|
87
71
|
// Measurement
|
|
88
72
|
{
|
|
@@ -93,7 +77,7 @@ const toolbarButtons = [
|
|
|
93
77
|
isRadio: true,
|
|
94
78
|
// ?
|
|
95
79
|
// Switch?
|
|
96
|
-
primary: _createToolButton('Length', 'tool-length', 'Length', [{
|
|
80
|
+
primary: src/* ToolbarService */.Ok._createToolButton('Length', 'tool-length', 'Length', [{
|
|
97
81
|
commandName: 'setToolActive',
|
|
98
82
|
commandOptions: {
|
|
99
83
|
toolName: 'Length'
|
|
@@ -114,7 +98,7 @@ const toolbarButtons = [
|
|
|
114
98
|
isActive: true,
|
|
115
99
|
tooltip: 'More Measure Tools'
|
|
116
100
|
},
|
|
117
|
-
items: [_createToolButton('Length', 'tool-length', 'Length', [{
|
|
101
|
+
items: [src/* ToolbarService */.Ok._createToolButton('Length', 'tool-length', 'Length', [{
|
|
118
102
|
commandName: 'setToolActive',
|
|
119
103
|
commandOptions: {
|
|
120
104
|
toolName: 'Length'
|
|
@@ -128,7 +112,7 @@ const toolbarButtons = [
|
|
|
128
112
|
},
|
|
129
113
|
// we can use the setToolActive command for this from Cornerstone commandsModule
|
|
130
114
|
context: 'CORNERSTONE'
|
|
131
|
-
}], 'Length Tool'), _createToolButton('Bidirectional', 'tool-bidirectional', 'Bidirectional', [{
|
|
115
|
+
}], 'Length Tool'), src/* ToolbarService */.Ok._createToolButton('Bidirectional', 'tool-bidirectional', 'Bidirectional', [{
|
|
132
116
|
commandName: 'setToolActive',
|
|
133
117
|
commandOptions: {
|
|
134
118
|
toolName: 'Bidirectional'
|
|
@@ -141,7 +125,7 @@ const toolbarButtons = [
|
|
|
141
125
|
toolGroupId: 'SRToolGroup'
|
|
142
126
|
},
|
|
143
127
|
context: 'CORNERSTONE'
|
|
144
|
-
}], 'Bidirectional Tool'), _createToolButton('ArrowAnnotate', 'tool-annotate', 'Annotation', [{
|
|
128
|
+
}], 'Bidirectional Tool'), src/* ToolbarService */.Ok._createToolButton('ArrowAnnotate', 'tool-annotate', 'Annotation', [{
|
|
145
129
|
commandName: 'setToolActive',
|
|
146
130
|
commandOptions: {
|
|
147
131
|
toolName: 'ArrowAnnotate'
|
|
@@ -154,7 +138,7 @@ const toolbarButtons = [
|
|
|
154
138
|
toolGroupId: 'SRToolGroup'
|
|
155
139
|
},
|
|
156
140
|
context: 'CORNERSTONE'
|
|
157
|
-
}], 'Arrow Annotate'), _createToolButton('EllipticalROI', 'tool-elipse', 'Ellipse', [{
|
|
141
|
+
}], 'Arrow Annotate'), src/* ToolbarService */.Ok._createToolButton('EllipticalROI', 'tool-elipse', 'Ellipse', [{
|
|
158
142
|
commandName: 'setToolActive',
|
|
159
143
|
commandOptions: {
|
|
160
144
|
toolName: 'EllipticalROI'
|
|
@@ -167,7 +151,7 @@ const toolbarButtons = [
|
|
|
167
151
|
toolGroupId: 'SRToolGroup'
|
|
168
152
|
},
|
|
169
153
|
context: 'CORNERSTONE'
|
|
170
|
-
}], 'Ellipse Tool'), _createToolButton('CircleROI', 'tool-circle', 'Circle', [{
|
|
154
|
+
}], 'Ellipse Tool'), src/* ToolbarService */.Ok._createToolButton('CircleROI', 'tool-circle', 'Circle', [{
|
|
171
155
|
commandName: 'setToolActive',
|
|
172
156
|
commandOptions: {
|
|
173
157
|
toolName: 'CircleROI'
|
|
@@ -200,7 +184,7 @@ const toolbarButtons = [
|
|
|
200
184
|
type: 'ohif.splitButton',
|
|
201
185
|
props: {
|
|
202
186
|
groupId: 'WindowLevel',
|
|
203
|
-
primary: _createToolButton('WindowLevel', 'tool-window-level', 'Window Level', [{
|
|
187
|
+
primary: src/* ToolbarService */.Ok._createToolButton('WindowLevel', 'tool-window-level', 'Window Level', [{
|
|
204
188
|
commandName: 'setToolActive',
|
|
205
189
|
commandOptions: {
|
|
206
190
|
toolName: 'WindowLevel'
|
|
@@ -280,146 +264,9 @@ const toolbarButtons = [
|
|
|
280
264
|
context: 'CORNERSTONE'
|
|
281
265
|
}]
|
|
282
266
|
}
|
|
283
|
-
}
|
|
267
|
+
}
|
|
284
268
|
// More...
|
|
285
|
-
|
|
286
|
-
id: 'MoreTools',
|
|
287
|
-
type: 'ohif.splitButton',
|
|
288
|
-
props: {
|
|
289
|
-
isRadio: true,
|
|
290
|
-
// ?
|
|
291
|
-
groupId: 'MoreTools',
|
|
292
|
-
primary: _createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
293
|
-
commandName: 'resetViewport',
|
|
294
|
-
commandOptions: {},
|
|
295
|
-
context: 'CORNERSTONE'
|
|
296
|
-
}], 'Reset'),
|
|
297
|
-
secondary: {
|
|
298
|
-
icon: 'chevron-down',
|
|
299
|
-
label: '',
|
|
300
|
-
isActive: true,
|
|
301
|
-
tooltip: 'More Tools'
|
|
302
|
-
},
|
|
303
|
-
items: [_createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
304
|
-
commandName: 'resetViewport',
|
|
305
|
-
commandOptions: {},
|
|
306
|
-
context: 'CORNERSTONE'
|
|
307
|
-
}], 'Reset'), _createActionButton('rotate-right', 'tool-rotate-right', 'Rotate Right', [{
|
|
308
|
-
commandName: 'rotateViewportCW',
|
|
309
|
-
commandOptions: {},
|
|
310
|
-
context: 'CORNERSTONE'
|
|
311
|
-
}], 'Rotate +90'), _createActionButton('flip-horizontal', 'tool-flip-horizontal', 'Flip Horizontally', [{
|
|
312
|
-
commandName: 'flipViewportHorizontal',
|
|
313
|
-
commandOptions: {},
|
|
314
|
-
context: 'CORNERSTONE'
|
|
315
|
-
}], 'Flip Horizontal'), _createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [{
|
|
316
|
-
commandName: 'toggleStackImageSync'
|
|
317
|
-
}], 'Enable position synchronization on stack viewports', {
|
|
318
|
-
listeners: {
|
|
319
|
-
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: {
|
|
320
|
-
commandName: 'toggleStackImageSync',
|
|
321
|
-
commandOptions: {
|
|
322
|
-
toggledState: true
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}), _createToggleButton('ReferenceLines', 'tool-referenceLines',
|
|
327
|
-
// change this with the new icon
|
|
328
|
-
'Reference Lines', ReferenceLinesCommands, 'Show Reference Lines', {
|
|
329
|
-
listeners: {
|
|
330
|
-
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands,
|
|
331
|
-
[esm.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands
|
|
332
|
-
}
|
|
333
|
-
}), _createToggleButton('ImageOverlayViewer', 'toggle-dicom-overlay', 'Image Overlay', [{
|
|
334
|
-
commandName: 'setToolActive',
|
|
335
|
-
commandOptions: {
|
|
336
|
-
toolName: 'ImageOverlayViewer'
|
|
337
|
-
},
|
|
338
|
-
context: 'CORNERSTONE'
|
|
339
|
-
}], 'Image Overlay', {
|
|
340
|
-
isActive: true
|
|
341
|
-
}), _createToolButton('StackScroll', 'tool-stack-scroll', 'Stack Scroll', [{
|
|
342
|
-
commandName: 'setToolActive',
|
|
343
|
-
commandOptions: {
|
|
344
|
-
toolName: 'StackScroll'
|
|
345
|
-
},
|
|
346
|
-
context: 'CORNERSTONE'
|
|
347
|
-
}], 'Stack Scroll'), _createActionButton('invert', 'tool-invert', 'Invert', [{
|
|
348
|
-
commandName: 'invertViewport',
|
|
349
|
-
commandOptions: {},
|
|
350
|
-
context: 'CORNERSTONE'
|
|
351
|
-
}], 'Invert Colors'), _createToolButton('Probe', 'tool-probe', 'Probe', [{
|
|
352
|
-
commandName: 'setToolActive',
|
|
353
|
-
commandOptions: {
|
|
354
|
-
toolName: 'DragProbe'
|
|
355
|
-
},
|
|
356
|
-
context: 'CORNERSTONE'
|
|
357
|
-
}], 'Probe'), _createToggleButton('cine', 'tool-cine', 'Cine', [{
|
|
358
|
-
commandName: 'toggleCine',
|
|
359
|
-
context: 'CORNERSTONE'
|
|
360
|
-
}], 'Cine'), _createToolButton('Angle', 'tool-angle', 'Angle', [{
|
|
361
|
-
commandName: 'setToolActive',
|
|
362
|
-
commandOptions: {
|
|
363
|
-
toolName: 'Angle'
|
|
364
|
-
},
|
|
365
|
-
context: 'CORNERSTONE'
|
|
366
|
-
}], 'Angle'),
|
|
367
|
-
// Next two tools can be added once icons are added
|
|
368
|
-
// _createToolButton(
|
|
369
|
-
// 'Cobb Angle',
|
|
370
|
-
// 'tool-cobb-angle',
|
|
371
|
-
// 'Cobb Angle',
|
|
372
|
-
// [
|
|
373
|
-
// {
|
|
374
|
-
// commandName: 'setToolActive',
|
|
375
|
-
// commandOptions: {
|
|
376
|
-
// toolName: 'CobbAngle',
|
|
377
|
-
// },
|
|
378
|
-
// context: 'CORNERSTONE',
|
|
379
|
-
// },
|
|
380
|
-
// ],
|
|
381
|
-
// 'Cobb Angle'
|
|
382
|
-
// ),
|
|
383
|
-
// _createToolButton(
|
|
384
|
-
// 'Planar Freehand ROI',
|
|
385
|
-
// 'tool-freehand',
|
|
386
|
-
// 'PlanarFreehandROI',
|
|
387
|
-
// [
|
|
388
|
-
// {
|
|
389
|
-
// commandName: 'setToolActive',
|
|
390
|
-
// commandOptions: {
|
|
391
|
-
// toolName: 'PlanarFreehandROI',
|
|
392
|
-
// },
|
|
393
|
-
// context: 'CORNERSTONE',
|
|
394
|
-
// },
|
|
395
|
-
// ],
|
|
396
|
-
// 'Planar Freehand ROI'
|
|
397
|
-
// ),
|
|
398
|
-
_createToolButton('Magnify', 'tool-magnify', 'Magnify', [{
|
|
399
|
-
commandName: 'setToolActive',
|
|
400
|
-
commandOptions: {
|
|
401
|
-
toolName: 'Magnify'
|
|
402
|
-
},
|
|
403
|
-
context: 'CORNERSTONE'
|
|
404
|
-
}], 'Magnify'), _createToolButton('Rectangle', 'tool-rectangle', 'Rectangle', [{
|
|
405
|
-
commandName: 'setToolActive',
|
|
406
|
-
commandOptions: {
|
|
407
|
-
toolName: 'RectangleROI'
|
|
408
|
-
},
|
|
409
|
-
context: 'CORNERSTONE'
|
|
410
|
-
}], 'Rectangle'), _createToolButton('CalibrationLine', 'tool-calibration', 'Calibration', [{
|
|
411
|
-
commandName: 'setToolActive',
|
|
412
|
-
commandOptions: {
|
|
413
|
-
toolName: 'CalibrationLine'
|
|
414
|
-
},
|
|
415
|
-
context: 'CORNERSTONE'
|
|
416
|
-
}], 'Calibration Line'), _createActionButton('TagBrowser', 'list-bullets', 'Dicom Tag Browser', [{
|
|
417
|
-
commandName: 'openDICOMTagViewer',
|
|
418
|
-
commandOptions: {},
|
|
419
|
-
context: 'DEFAULT'
|
|
420
|
-
}], 'Dicom Tag Browser')]
|
|
421
|
-
}
|
|
422
|
-
}];
|
|
269
|
+
];
|
|
423
270
|
/* harmony default export */ const src_toolbarButtons = (toolbarButtons);
|
|
424
271
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
|
|
425
272
|
const package_namespaceObject = JSON.parse('{"u2":"@ohif/mode-longitudinal"}');
|
|
@@ -555,7 +402,6 @@ function initSRToolGroup(extensionManager, toolGroupService, commandsManager) {
|
|
|
555
402
|
}]
|
|
556
403
|
// disabled
|
|
557
404
|
};
|
|
558
|
-
|
|
559
405
|
const toolGroupId = 'SRToolGroup';
|
|
560
406
|
toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);
|
|
561
407
|
}
|
|
@@ -637,7 +483,6 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
|
|
|
637
483
|
// enabled
|
|
638
484
|
// disabled
|
|
639
485
|
};
|
|
640
|
-
|
|
641
486
|
toolGroupService.createToolGroupAndAddTools('mpr', tools);
|
|
642
487
|
}
|
|
643
488
|
function initVolume3DToolGroup(extensionManager, toolGroupService) {
|
|
@@ -673,15 +518,308 @@ function initToolGroups(extensionManager, toolGroupService, commandsManager) {
|
|
|
673
518
|
initVolume3DToolGroup(extensionManager, toolGroupService);
|
|
674
519
|
}
|
|
675
520
|
/* harmony default export */ const src_initToolGroups = (initToolGroups);
|
|
521
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 364 modules
|
|
522
|
+
var esm = __webpack_require__(27968);
|
|
523
|
+
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/moreTools.ts
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
const ReferenceLinesCommands = [{
|
|
527
|
+
commandName: 'setSourceViewportForReferenceLinesTool',
|
|
528
|
+
context: 'CORNERSTONE'
|
|
529
|
+
}, {
|
|
530
|
+
commandName: 'setToolActive',
|
|
531
|
+
commandOptions: {
|
|
532
|
+
toolName: 'ReferenceLines'
|
|
533
|
+
},
|
|
534
|
+
context: 'CORNERSTONE'
|
|
535
|
+
}];
|
|
536
|
+
const moreTools = [{
|
|
537
|
+
id: 'MoreTools',
|
|
538
|
+
type: 'ohif.splitButton',
|
|
539
|
+
props: {
|
|
540
|
+
isRadio: true,
|
|
541
|
+
// ?
|
|
542
|
+
groupId: 'MoreTools',
|
|
543
|
+
primary: src/* ToolbarService */.Ok._createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
544
|
+
commandName: 'resetViewport',
|
|
545
|
+
commandOptions: {},
|
|
546
|
+
context: 'CORNERSTONE'
|
|
547
|
+
}], 'Reset'),
|
|
548
|
+
secondary: {
|
|
549
|
+
icon: 'chevron-down',
|
|
550
|
+
label: '',
|
|
551
|
+
isActive: true,
|
|
552
|
+
tooltip: 'More Tools'
|
|
553
|
+
},
|
|
554
|
+
items: [src/* ToolbarService */.Ok._createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
555
|
+
commandName: 'resetViewport',
|
|
556
|
+
commandOptions: {},
|
|
557
|
+
context: 'CORNERSTONE'
|
|
558
|
+
}], 'Reset'), src/* ToolbarService */.Ok._createActionButton('rotate-right', 'tool-rotate-right', 'Rotate Right', [{
|
|
559
|
+
commandName: 'rotateViewportCW',
|
|
560
|
+
commandOptions: {},
|
|
561
|
+
context: 'CORNERSTONE'
|
|
562
|
+
}], 'Rotate +90'), src/* ToolbarService */.Ok._createActionButton('flip-horizontal', 'tool-flip-horizontal', 'Flip Horizontally', [{
|
|
563
|
+
commandName: 'flipViewportHorizontal',
|
|
564
|
+
commandOptions: {},
|
|
565
|
+
context: 'CORNERSTONE'
|
|
566
|
+
}], 'Flip Horizontal'), src/* ToolbarService */.Ok._createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [{
|
|
567
|
+
commandName: 'toggleStackImageSync'
|
|
568
|
+
}], 'Enable position synchronization on stack viewports', {
|
|
569
|
+
listeners: {
|
|
570
|
+
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: {
|
|
571
|
+
commandName: 'toggleStackImageSync',
|
|
572
|
+
commandOptions: {
|
|
573
|
+
toggledState: true
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}), src/* ToolbarService */.Ok._createToggleButton('ReferenceLines', 'tool-referenceLines',
|
|
578
|
+
// change this with the new icon
|
|
579
|
+
'Reference Lines', ReferenceLinesCommands, 'Show Reference Lines', {
|
|
580
|
+
listeners: {
|
|
581
|
+
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: ReferenceLinesCommands,
|
|
582
|
+
[esm.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: ReferenceLinesCommands
|
|
583
|
+
}
|
|
584
|
+
}), src/* ToolbarService */.Ok._createToggleButton('ImageOverlayViewer', 'toggle-dicom-overlay', 'Image Overlay', [{
|
|
585
|
+
commandName: 'setToolActive',
|
|
586
|
+
commandOptions: {
|
|
587
|
+
toolName: 'ImageOverlayViewer'
|
|
588
|
+
},
|
|
589
|
+
context: 'CORNERSTONE'
|
|
590
|
+
}], 'Image Overlay', {
|
|
591
|
+
isActive: true
|
|
592
|
+
}), src/* ToolbarService */.Ok._createToolButton('StackScroll', 'tool-stack-scroll', 'Stack Scroll', [{
|
|
593
|
+
commandName: 'setToolActive',
|
|
594
|
+
commandOptions: {
|
|
595
|
+
toolName: 'StackScroll'
|
|
596
|
+
},
|
|
597
|
+
context: 'CORNERSTONE'
|
|
598
|
+
}], 'Stack Scroll'), src/* ToolbarService */.Ok._createActionButton('invert', 'tool-invert', 'Invert', [{
|
|
599
|
+
commandName: 'invertViewport',
|
|
600
|
+
commandOptions: {},
|
|
601
|
+
context: 'CORNERSTONE'
|
|
602
|
+
}], 'Invert Colors'), src/* ToolbarService */.Ok._createToolButton('Probe', 'tool-probe', 'Probe', [{
|
|
603
|
+
commandName: 'setToolActive',
|
|
604
|
+
commandOptions: {
|
|
605
|
+
toolName: 'DragProbe'
|
|
606
|
+
},
|
|
607
|
+
context: 'CORNERSTONE'
|
|
608
|
+
}], 'Probe'), src/* ToolbarService */.Ok._createToggleButton('cine', 'tool-cine', 'Cine', [{
|
|
609
|
+
commandName: 'toggleCine',
|
|
610
|
+
context: 'CORNERSTONE'
|
|
611
|
+
}], 'Cine'), src/* ToolbarService */.Ok._createToolButton('Angle', 'tool-angle', 'Angle', [{
|
|
612
|
+
commandName: 'setToolActive',
|
|
613
|
+
commandOptions: {
|
|
614
|
+
toolName: 'Angle'
|
|
615
|
+
},
|
|
616
|
+
context: 'CORNERSTONE'
|
|
617
|
+
}], 'Angle'),
|
|
618
|
+
// Next two tools can be added once icons are added
|
|
619
|
+
// ToolbarService._createToolButton(
|
|
620
|
+
// 'Cobb Angle',
|
|
621
|
+
// 'tool-cobb-angle',
|
|
622
|
+
// 'Cobb Angle',
|
|
623
|
+
// [
|
|
624
|
+
// {
|
|
625
|
+
// commandName: 'setToolActive',
|
|
626
|
+
// commandOptions: {
|
|
627
|
+
// toolName: 'CobbAngle',
|
|
628
|
+
// },
|
|
629
|
+
// context: 'CORNERSTONE',
|
|
630
|
+
// },
|
|
631
|
+
// ],
|
|
632
|
+
// 'Cobb Angle'
|
|
633
|
+
// ),
|
|
634
|
+
// ToolbarService._createToolButton(
|
|
635
|
+
// 'Planar Freehand ROI',
|
|
636
|
+
// 'tool-freehand',
|
|
637
|
+
// 'PlanarFreehandROI',
|
|
638
|
+
// [
|
|
639
|
+
// {
|
|
640
|
+
// commandName: 'setToolActive',
|
|
641
|
+
// commandOptions: {
|
|
642
|
+
// toolName: 'PlanarFreehandROI',
|
|
643
|
+
// },
|
|
644
|
+
// context: 'CORNERSTONE',
|
|
645
|
+
// },
|
|
646
|
+
// ],
|
|
647
|
+
// 'Planar Freehand ROI'
|
|
648
|
+
// ),
|
|
649
|
+
src/* ToolbarService */.Ok._createToolButton('Magnify', 'tool-magnify', 'Magnify', [{
|
|
650
|
+
commandName: 'setToolActive',
|
|
651
|
+
commandOptions: {
|
|
652
|
+
toolName: 'Magnify'
|
|
653
|
+
},
|
|
654
|
+
context: 'CORNERSTONE'
|
|
655
|
+
}], 'Magnify'), src/* ToolbarService */.Ok._createToolButton('Rectangle', 'tool-rectangle', 'Rectangle', [{
|
|
656
|
+
commandName: 'setToolActive',
|
|
657
|
+
commandOptions: {
|
|
658
|
+
toolName: 'RectangleROI'
|
|
659
|
+
},
|
|
660
|
+
context: 'CORNERSTONE'
|
|
661
|
+
}], 'Rectangle'), src/* ToolbarService */.Ok._createToolButton('CalibrationLine', 'tool-calibration', 'Calibration', [{
|
|
662
|
+
commandName: 'setToolActive',
|
|
663
|
+
commandOptions: {
|
|
664
|
+
toolName: 'CalibrationLine'
|
|
665
|
+
},
|
|
666
|
+
context: 'CORNERSTONE'
|
|
667
|
+
}], 'Calibration Line'), src/* ToolbarService */.Ok._createActionButton('TagBrowser', 'list-bullets', 'Dicom Tag Browser', [{
|
|
668
|
+
commandName: 'openDICOMTagViewer',
|
|
669
|
+
commandOptions: {},
|
|
670
|
+
context: 'DEFAULT'
|
|
671
|
+
}], 'Dicom Tag Browser')]
|
|
672
|
+
}
|
|
673
|
+
}];
|
|
674
|
+
/* harmony default export */ const src_moreTools = (moreTools);
|
|
675
|
+
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/moreToolsMpr.ts
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
const moreToolsMpr_ReferenceLinesCommands = [{
|
|
679
|
+
commandName: 'setSourceViewportForReferenceLinesTool',
|
|
680
|
+
context: 'CORNERSTONE'
|
|
681
|
+
}, {
|
|
682
|
+
commandName: 'setToolActive',
|
|
683
|
+
commandOptions: {
|
|
684
|
+
toolName: 'ReferenceLines'
|
|
685
|
+
},
|
|
686
|
+
context: 'CORNERSTONE'
|
|
687
|
+
}];
|
|
688
|
+
const moreToolsMpr = [{
|
|
689
|
+
id: 'MoreToolsMpr',
|
|
690
|
+
type: 'ohif.splitButton',
|
|
691
|
+
props: {
|
|
692
|
+
isRadio: true,
|
|
693
|
+
// ?
|
|
694
|
+
groupId: 'MoreTools',
|
|
695
|
+
primary: src/* ToolbarService */.Ok._createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
696
|
+
commandName: 'resetViewport',
|
|
697
|
+
commandOptions: {},
|
|
698
|
+
context: 'CORNERSTONE'
|
|
699
|
+
}], 'Reset'),
|
|
700
|
+
secondary: {
|
|
701
|
+
icon: 'chevron-down',
|
|
702
|
+
label: '',
|
|
703
|
+
isActive: true,
|
|
704
|
+
tooltip: 'More Tools'
|
|
705
|
+
},
|
|
706
|
+
items: [src/* ToolbarService */.Ok._createActionButton('Reset', 'tool-reset', 'Reset View', [{
|
|
707
|
+
commandName: 'resetViewport',
|
|
708
|
+
commandOptions: {},
|
|
709
|
+
context: 'CORNERSTONE'
|
|
710
|
+
}], 'Reset'), src/* ToolbarService */.Ok._createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [{
|
|
711
|
+
commandName: 'toggleStackImageSync'
|
|
712
|
+
}], 'Enable position synchronization on stack viewports', {
|
|
713
|
+
listeners: {
|
|
714
|
+
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: {
|
|
715
|
+
commandName: 'toggleStackImageSync',
|
|
716
|
+
commandOptions: {
|
|
717
|
+
toggledState: true
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}), src/* ToolbarService */.Ok._createToggleButton('ReferenceLines', 'tool-referenceLines',
|
|
722
|
+
// change this with the new icon
|
|
723
|
+
'Reference Lines', moreToolsMpr_ReferenceLinesCommands, 'Show Reference Lines', {
|
|
724
|
+
listeners: {
|
|
725
|
+
[esm.EVENTS.STACK_VIEWPORT_NEW_STACK]: moreToolsMpr_ReferenceLinesCommands,
|
|
726
|
+
[esm.EVENTS.ACTIVE_VIEWPORT_ID_CHANGED]: moreToolsMpr_ReferenceLinesCommands
|
|
727
|
+
}
|
|
728
|
+
}), src/* ToolbarService */.Ok._createToggleButton('ImageOverlayViewer', 'toggle-dicom-overlay', 'Image Overlay', [{
|
|
729
|
+
commandName: 'setToolActive',
|
|
730
|
+
commandOptions: {
|
|
731
|
+
toolName: 'ImageOverlayViewer'
|
|
732
|
+
},
|
|
733
|
+
context: 'CORNERSTONE'
|
|
734
|
+
}], 'Image Overlay', {
|
|
735
|
+
isActive: true
|
|
736
|
+
}), src/* ToolbarService */.Ok._createToolButton('StackScroll', 'tool-stack-scroll', 'Stack Scroll', [{
|
|
737
|
+
commandName: 'setToolActive',
|
|
738
|
+
commandOptions: {
|
|
739
|
+
toolName: 'StackScroll'
|
|
740
|
+
},
|
|
741
|
+
context: 'CORNERSTONE'
|
|
742
|
+
}], 'Stack Scroll'), src/* ToolbarService */.Ok._createActionButton('invert', 'tool-invert', 'Invert', [{
|
|
743
|
+
commandName: 'invertViewport',
|
|
744
|
+
commandOptions: {},
|
|
745
|
+
context: 'CORNERSTONE'
|
|
746
|
+
}], 'Invert Colors'), src/* ToolbarService */.Ok._createToolButton('Probe', 'tool-probe', 'Probe', [{
|
|
747
|
+
commandName: 'setToolActive',
|
|
748
|
+
commandOptions: {
|
|
749
|
+
toolName: 'DragProbe'
|
|
750
|
+
},
|
|
751
|
+
context: 'CORNERSTONE'
|
|
752
|
+
}], 'Probe'), src/* ToolbarService */.Ok._createToggleButton('cine', 'tool-cine', 'Cine', [{
|
|
753
|
+
commandName: 'toggleCine',
|
|
754
|
+
context: 'CORNERSTONE'
|
|
755
|
+
}], 'Cine'), src/* ToolbarService */.Ok._createToolButton('Angle', 'tool-angle', 'Angle', [{
|
|
756
|
+
commandName: 'setToolActive',
|
|
757
|
+
commandOptions: {
|
|
758
|
+
toolName: 'Angle'
|
|
759
|
+
},
|
|
760
|
+
context: 'CORNERSTONE'
|
|
761
|
+
}], 'Angle'),
|
|
762
|
+
// Next two tools can be added once icons are added
|
|
763
|
+
// ToolbarService._createToolButton(
|
|
764
|
+
// 'Cobb Angle',
|
|
765
|
+
// 'tool-cobb-angle',
|
|
766
|
+
// 'Cobb Angle',
|
|
767
|
+
// [
|
|
768
|
+
// {
|
|
769
|
+
// commandName: 'setToolActive',
|
|
770
|
+
// commandOptions: {
|
|
771
|
+
// toolName: 'CobbAngle',
|
|
772
|
+
// },
|
|
773
|
+
// context: 'CORNERSTONE',
|
|
774
|
+
// },
|
|
775
|
+
// ],
|
|
776
|
+
// 'Cobb Angle'
|
|
777
|
+
// ),
|
|
778
|
+
// ToolbarService._createToolButton(
|
|
779
|
+
// 'Planar Freehand ROI',
|
|
780
|
+
// 'tool-freehand',
|
|
781
|
+
// 'PlanarFreehandROI',
|
|
782
|
+
// [
|
|
783
|
+
// {
|
|
784
|
+
// commandName: 'setToolActive',
|
|
785
|
+
// commandOptions: {
|
|
786
|
+
// toolName: 'PlanarFreehandROI',
|
|
787
|
+
// },
|
|
788
|
+
// context: 'CORNERSTONE',
|
|
789
|
+
// },
|
|
790
|
+
// ],
|
|
791
|
+
// 'Planar Freehand ROI'
|
|
792
|
+
// ),
|
|
793
|
+
src/* ToolbarService */.Ok._createToolButton('Rectangle', 'tool-rectangle', 'Rectangle', [{
|
|
794
|
+
commandName: 'setToolActive',
|
|
795
|
+
commandOptions: {
|
|
796
|
+
toolName: 'RectangleROI'
|
|
797
|
+
},
|
|
798
|
+
context: 'CORNERSTONE'
|
|
799
|
+
}], 'Rectangle'), src/* ToolbarService */.Ok._createActionButton('TagBrowser', 'list-bullets', 'Dicom Tag Browser', [{
|
|
800
|
+
commandName: 'openDICOMTagViewer',
|
|
801
|
+
commandOptions: {},
|
|
802
|
+
context: 'DEFAULT'
|
|
803
|
+
}], 'Dicom Tag Browser')]
|
|
804
|
+
}
|
|
805
|
+
}];
|
|
806
|
+
/* harmony default export */ const src_moreToolsMpr = (moreToolsMpr);
|
|
807
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
808
|
+
var i18next = __webpack_require__(73577);
|
|
676
809
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.js
|
|
677
810
|
|
|
678
811
|
|
|
679
812
|
|
|
680
813
|
|
|
681
814
|
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
682
818
|
// Allow this mode by excluding non-imaging modalities such as SR, SEG
|
|
683
819
|
// Also, SM is not a simple imaging modalities, so exclude it.
|
|
684
820
|
const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT'];
|
|
821
|
+
const DEFAULT_TOOL_GROUP_ID = 'default';
|
|
822
|
+
const MPR_TOOL_GROUP_ID = 'mpr';
|
|
685
823
|
const ohif = {
|
|
686
824
|
layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
|
|
687
825
|
sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
|
|
@@ -724,26 +862,24 @@ const extensionDependencies = {
|
|
|
724
862
|
'@ohif/extension-dicom-pdf': '^3.0.1',
|
|
725
863
|
'@ohif/extension-dicom-video': '^3.0.1'
|
|
726
864
|
};
|
|
727
|
-
function modeFactory(
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
} = _ref;
|
|
865
|
+
function modeFactory({
|
|
866
|
+
modeConfiguration
|
|
867
|
+
}) {
|
|
731
868
|
let _activatePanelTriggersSubscriptions = [];
|
|
732
869
|
return {
|
|
733
870
|
// TODO: We're using this as a route segment
|
|
734
871
|
// We should not be.
|
|
735
872
|
id: id,
|
|
736
873
|
routeName: 'viewer',
|
|
737
|
-
displayName: 'Basic Viewer',
|
|
874
|
+
displayName: i18next/* default */.Z.t('Modes:Basic Viewer'),
|
|
738
875
|
/**
|
|
739
876
|
* Lifecycle hooks
|
|
740
877
|
*/
|
|
741
|
-
onModeEnter:
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
} = _ref2;
|
|
878
|
+
onModeEnter: ({
|
|
879
|
+
servicesManager,
|
|
880
|
+
extensionManager,
|
|
881
|
+
commandsManager
|
|
882
|
+
}) => {
|
|
747
883
|
const {
|
|
748
884
|
measurementService,
|
|
749
885
|
toolbarService,
|
|
@@ -756,18 +892,20 @@ function modeFactory(_ref) {
|
|
|
756
892
|
// Init Default and SR ToolGroups
|
|
757
893
|
src_initToolGroups(extensionManager, toolGroupService, commandsManager);
|
|
758
894
|
let unsubscribe;
|
|
895
|
+
toolbarService.setDefaultTool({
|
|
896
|
+
groupId: 'WindowLevel',
|
|
897
|
+
itemId: 'WindowLevel',
|
|
898
|
+
interactionType: 'tool',
|
|
899
|
+
commands: [{
|
|
900
|
+
commandName: 'setToolActive',
|
|
901
|
+
commandOptions: {
|
|
902
|
+
toolName: 'WindowLevel'
|
|
903
|
+
},
|
|
904
|
+
context: 'CORNERSTONE'
|
|
905
|
+
}]
|
|
906
|
+
});
|
|
759
907
|
const activateTool = () => {
|
|
760
|
-
toolbarService.recordInteraction(
|
|
761
|
-
groupId: 'WindowLevel',
|
|
762
|
-
interactionType: 'tool',
|
|
763
|
-
commands: [{
|
|
764
|
-
commandName: 'setToolActive',
|
|
765
|
-
commandOptions: {
|
|
766
|
-
toolName: 'WindowLevel'
|
|
767
|
-
},
|
|
768
|
-
context: 'CORNERSTONE'
|
|
769
|
-
}]
|
|
770
|
-
});
|
|
908
|
+
toolbarService.recordInteraction(toolbarService.getDefaultTool());
|
|
771
909
|
|
|
772
910
|
// We don't need to reset the active tool whenever a viewport is getting
|
|
773
911
|
// added to the toolGroup.
|
|
@@ -780,8 +918,9 @@ function modeFactory(_ref) {
|
|
|
780
918
|
unsubscribe
|
|
781
919
|
} = toolGroupService.subscribe(toolGroupService.EVENTS.VIEWPORT_ADDED, activateTool));
|
|
782
920
|
toolbarService.init(extensionManager);
|
|
783
|
-
toolbarService.addButtons(src_toolbarButtons);
|
|
784
|
-
toolbarService.createButtonSection(
|
|
921
|
+
toolbarService.addButtons([...src_toolbarButtons, ...src_moreTools, ...src_moreToolsMpr]);
|
|
922
|
+
toolbarService.createButtonSection(DEFAULT_TOOL_GROUP_ID, ['MeasurementTools', 'Zoom', 'WindowLevel', 'Pan', 'Capture', 'Layout', 'MPR', 'MoreTools']);
|
|
923
|
+
toolbarService.createButtonSection(MPR_TOOL_GROUP_ID, ['MeasurementTools', 'Zoom', 'WindowLevel', 'Pan', 'Capture', 'Layout', 'MPR', 'Crosshairs', 'MoreToolsMpr']);
|
|
785
924
|
customizationService.addModeCustomizations([{
|
|
786
925
|
id: 'segmentation.disableEditing',
|
|
787
926
|
value: true
|
|
@@ -809,11 +948,9 @@ function modeFactory(_ref) {
|
|
|
809
948
|
// ]),
|
|
810
949
|
// ];
|
|
811
950
|
},
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
servicesManager
|
|
816
|
-
} = _ref3;
|
|
951
|
+
onModeExit: ({
|
|
952
|
+
servicesManager
|
|
953
|
+
}) => {
|
|
817
954
|
const {
|
|
818
955
|
toolGroupService,
|
|
819
956
|
syncGroupService,
|
|
@@ -832,10 +969,9 @@ function modeFactory(_ref) {
|
|
|
832
969
|
study: [],
|
|
833
970
|
series: []
|
|
834
971
|
},
|
|
835
|
-
isValidMode: function (
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
} = _ref4;
|
|
972
|
+
isValidMode: function ({
|
|
973
|
+
modalities
|
|
974
|
+
}) {
|
|
839
975
|
const modalities_list = modalities.split('\\');
|
|
840
976
|
|
|
841
977
|
// Exclude non-image modalities
|
|
@@ -896,13 +1032,6 @@ const mode = {
|
|
|
896
1032
|
/* harmony default export */ const longitudinal_src = (mode);
|
|
897
1033
|
|
|
898
1034
|
|
|
899
|
-
/***/ }),
|
|
900
|
-
|
|
901
|
-
/***/ 78753:
|
|
902
|
-
/***/ (() => {
|
|
903
|
-
|
|
904
|
-
/* (ignored) */
|
|
905
|
-
|
|
906
1035
|
/***/ })
|
|
907
1036
|
|
|
908
1037
|
}]);
|