{"version":3,"file":"281.bundle.a4d23fa72d5b531b6969.js","mappings":"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","sources":["webpack:///../../../modes/microscopy/src/id.js","webpack:///../../../modes/microscopy/src/toolbarButtons.js","webpack:///../../../modes/microscopy/src/index.tsx"],"sourcesContent":["import packageJson from '../package.json';\n\nconst id = packageJson.name;\n\nexport { id };\n","// TODO: torn, can either bake this here; or have to create a whole new button type\n/**\n *\n * @param {*} type - 'tool' | 'action' | 'toggle'\n * @param {*} id\n * @param {*} icon\n * @param {*} label\n */\nfunction _createButton(type, id, icon, label, commands, tooltip) {\n return {\n id,\n icon,\n label,\n type,\n commands,\n tooltip,\n };\n}\n\nconst _createActionButton = _createButton.bind(null, 'action');\nconst _createToggleButton = _createButton.bind(null, 'toggle');\nconst _createToolButton = _createButton.bind(null, 'tool');\n\nconst toolbarButtons = [\n // Measurement\n {\n id: 'MeasurementTools',\n type: 'ohif.splitButton',\n props: {\n groupId: 'MeasurementTools',\n isRadio: true, // ?\n // Switch?\n primary: _createToolButton(\n 'line',\n 'tool-length',\n 'Line',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'line',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Line'\n ),\n secondary: {\n icon: 'chevron-down',\n label: '',\n isActive: true,\n tooltip: 'More Measure Tools',\n },\n items: [\n _createToolButton(\n 'line',\n 'tool-length',\n 'Line',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'line',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Line Tool'\n ),\n _createToolButton(\n 'point',\n 'tool-point',\n 'Point',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'point',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Point Tool'\n ),\n _createToolButton(\n 'polygon',\n 'tool-polygon',\n 'Polygon',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'polygon',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Polygon Tool'\n ),\n _createToolButton(\n 'circle',\n 'tool-circle',\n 'Circle',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'circle',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Circle Tool'\n ),\n _createToolButton(\n 'box',\n 'tool-rectangle',\n 'Box',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'box',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Box Tool'\n ),\n _createToolButton(\n 'freehandpolygon',\n 'tool-freehand-polygon',\n 'Freehand Polygon',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'freehandpolygon',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Freehand Polygon Tool'\n ),\n _createToolButton(\n 'freehandline',\n 'tool-freehand-line',\n 'Freehand Line',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'freehandline',\n },\n context: 'MICROSCOPY',\n },\n ],\n 'Freehand Line Tool'\n ),\n ],\n },\n },\n // Pan...\n {\n id: 'dragPan',\n type: 'ohif.radioGroup',\n props: {\n type: 'tool',\n icon: 'tool-move',\n label: 'Pan',\n commands: [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'dragPan',\n },\n context: 'MICROSCOPY',\n },\n ],\n },\n },\n];\n\nexport default toolbarButtons;\n","import { hotkeys } from '@ohif/core';\n\nimport { id } from './id';\nimport toolbarButtons from './toolbarButtons';\n\nconst ohif = {\n layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',\n sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',\n hangingProtocols: '@ohif/extension-default.hangingProtocolModule.default',\n leftPanel: '@ohif/extension-default.panelModule.seriesList',\n rightPanel: '@ohif/extension-default.panelModule.measure',\n};\n\nexport const cornerstone = {\n viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone',\n};\n\nconst dicomvideo = {\n sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',\n viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',\n};\n\nconst dicompdf = {\n sopClassHandler: '@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf',\n viewport: '@ohif/extension-dicom-pdf.viewportModule.dicom-pdf',\n};\n\nconst extensionDependencies = {\n // Can derive the versions at least process.env.from npm_package_version\n '@ohif/extension-default': '^3.0.0',\n '@ohif/extension-cornerstone': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-sr': '^3.0.0',\n '@ohif/extension-dicom-pdf': '^3.0.1',\n '@ohif/extension-dicom-video': '^3.0.1',\n '@ohif/extension-dicom-microscopy': '^3.0.0',\n};\n\nfunction modeFactory({ modeConfiguration }) {\n return {\n // TODO: We're using this as a route segment\n // We should not be.\n id,\n routeName: 'microscopy',\n displayName: 'Microscopy',\n\n /**\n * Lifecycle hooks\n */\n onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => {\n const { toolbarService } = servicesManager.services;\n\n toolbarService.init(extensionManager);\n toolbarService.addButtons(toolbarButtons);\n toolbarService.createButtonSection('primary', ['MeasurementTools', 'dragPan']);\n },\n\n onModeExit: ({ servicesManager }) => {\n const { toolbarService } = servicesManager.services;\n\n toolbarService.reset();\n },\n\n validationTags: {\n study: [],\n series: [],\n },\n\n isValidMode: ({ modalities }) => {\n const modalities_list = modalities.split('\\\\');\n\n // Slide Microscopy and ECG modality not supported by basic mode yet\n return modalities_list.includes('SM');\n },\n\n routes: [\n {\n path: 'microscopy',\n /*init: ({ servicesManager, extensionManager }) => {\n //defaultViewerRouteInit\n },*/\n layoutTemplate: ({ location, servicesManager }) => {\n return {\n id: ohif.layout,\n props: {\n leftPanels: [ohif.leftPanel],\n leftPanelDefaultClosed: true, // we have problem with rendering thumbnails for microscopy images\n rightPanelDefaultClosed: true, // we do not have the save microscopy measurements yet\n rightPanels: ['@ohif/extension-dicom-microscopy.panelModule.measure'],\n viewports: [\n {\n namespace: '@ohif/extension-dicom-microscopy.viewportModule.microscopy-dicom',\n displaySetsToDisplay: [\n '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySopClassHandler',\n '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySRSopClassHandler',\n ],\n },\n {\n namespace: dicomvideo.viewport,\n displaySetsToDisplay: [dicomvideo.sopClassHandler],\n },\n {\n namespace: dicompdf.viewport,\n displaySetsToDisplay: [dicompdf.sopClassHandler],\n },\n ],\n },\n };\n },\n },\n ],\n extensions: extensionDependencies,\n hangingProtocols: [ohif.hangingProtocols],\n hangingProtocol: ['default'],\n\n // Order is important in sop class handlers when two handlers both use\n // the same sop class under different situations. In that case, the more\n // general handler needs to come last. For this case, the dicomvideo must\n // come first to remove video transfer syntax before ohif uses images\n sopClassHandlers: [\n '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySopClassHandler',\n '@ohif/extension-dicom-microscopy.sopClassHandlerModule.DicomMicroscopySRSopClassHandler',\n dicomvideo.sopClassHandler,\n dicompdf.sopClassHandler,\n ],\n hotkeys: [...hotkeys.defaults.hotkeyBindings],\n ...modeConfiguration,\n };\n}\n\nconst mode = {\n id,\n modeFactory,\n extensionDependencies,\n};\n\nexport default mode;\n"],"names":["id","packageJson","_createButton","type","icon","label","commands","tooltip","bind","_createToolButton","props","groupId","isRadio","primary","commandName","commandOptions","toolName","context","secondary","isActive","items","ohif","cornerstone","viewport","dicomvideo","dicompdf","extensionDependencies","modeFactory","_ref","modeConfiguration","routeName","displayName","onModeEnter","_ref2","servicesManager","extensionManager","commandsManager","toolbarService","services","init","addButtons","toolbarButtons","createButtonSection","onModeExit","_ref3","reset","validationTags","study","series","isValidMode","_ref4","modalities","split","includes","routes","path","layoutTemplate","_ref5","location","leftPanels","leftPanelDefaultClosed","rightPanelDefaultClosed","rightPanels","viewports","namespace","displaySetsToDisplay","extensions","hangingProtocols","hangingProtocol","sopClassHandlers","hotkeys","defaults","hotkeyBindings"],"sourceRoot":""}