diff --git a/main.js b/main.js index 5e458ade..3ae3d8b1 100644 --- a/main.js +++ b/main.js @@ -3028,9 +3028,10 @@ let CommonService = (_class = class CommonService extends _shared_common_app_com bar.append("rect").attr("x", 1).attr("width", 6).attr("height", d => height - y(d.length)); function updateThreshold() { let xc = d3__WEBPACK_IMPORTED_MODULE_1__.mouse(svg.node())[0]; + let decimalPlaces = ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["default-distance-metric"].toLowerCase() === "tn93" ? 3 : 0; ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["link-threshold"] = xc / width * range * 1.05 + min; - $("#link-threshold").val(parseFloat(ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["link-threshold"].toLocaleString())); - ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.visuals.microbeTrace.SelectedLinkThresholdVariable = parseFloat(ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["link-threshold"].toLocaleString()); + $("#link-threshold").val(parseFloat(ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["link-threshold"].toFixed(decimalPlaces))); + ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.visuals.microbeTrace.SelectedLinkThresholdVariable = parseFloat(ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.session.style.widgets["link-threshold"].toFixed(decimalPlaces)); ngx_bootstrap__WEBPACK_IMPORTED_MODULE_5__.window.context.commonService.visuals.microbeTrace.onLinkThresholdChanged(); } svg.on("click", () => { @@ -11895,8 +11896,9 @@ let TwoDComponent = (_class = class TwoDComponent extends _app_base_component_di } return true; } + // On click of settings button, show/hide settings dialog openSettings() { - this.visuals.twoD.Node2DNetworkExportDialogSettings.setVisibility(true); + this.visuals.twoD.Node2DNetworkExportDialogSettings.isVisible ? this.visuals.twoD.Node2DNetworkExportDialogSettings.setVisibility(false) : this.visuals.twoD.Node2DNetworkExportDialogSettings.setVisibility(true); this.visuals.twoD.ShowStatistics = !this.visuals.twoD.Show2DSettingsPane; } enableSettings() { @@ -17237,7 +17239,7 @@ var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../ var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ 40479); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); // Module -___CSS_LOADER_EXPORT___.push([module.id, ".dialogSize {\n width: 30vw;\n height: 150px;\n min-width: 150px;\n}\n\n:host {\n position: absolute;\n overflow: hidden;\n z-index: 1 !important;\n top: 37px !important;\n left: 1px !important;\n width: 99% !important;\n}\n\n.network {\n margin-top: 0 !important;\n cursor: grab;\n}\n\n.ui-dropdown {\n width: 100% !important;\n}\n\n.display-none {\n display: none;\n}\n\n.bottom-table {\n font-size: 0.5vmax;\n}\n\n#node-max-radius-row, #node-min-radius-row {\n display: none;\n}\n\n.clusters path {\n cursor: grab;\n}\n\n:host ::ng-deep .p-accordion-tab:not(.p-accordion-tab-active) .p-toggleable-content {\n height: 0;\n overflow: hidden;\n}\n:host ::ng-deep .p-accordion-tab.p-accordion-tab-active .p-toggleable-content {\n height: auto !important;\n overflow: auto !important;\n}", ""]); +___CSS_LOADER_EXPORT___.push([module.id, ".dialogSize {\n width: 30vw;\n height: 150px;\n min-width: 150px;\n}\n\n:host {\n position: absolute;\n overflow: hidden;\n z-index: 1 !important;\n top: 37px !important;\n left: 1px !important;\n width: 99% !important;\n}\n\n.network {\n margin-top: 0 !important;\n cursor: grab;\n}\n\n.ui-dropdown {\n width: 100% !important;\n}\n\n.display-none {\n display: none;\n}\n\n.bottom-table {\n font-size: 0.5vmax;\n}\n\n#node-max-radius-row, #node-min-radius-row {\n display: none;\n}\n\n.clusters path {\n cursor: grab;\n}\n\n:host ::ng-deep .p-accordion-tab:not(.p-accordion-tab-active) .p-toggleable-content {\n height: 0;\n overflow: hidden;\n}\n:host ::ng-deep .p-accordion-tab.p-accordion-tab-active .p-toggleable-content {\n height: auto !important;\n overflow: auto !important;\n}\n\n/* Button appearance on hover */\n.btn-icon:hover {\n transform: scale(1.1); /* Slight enlarge on hover */\n background-color: rgba(0, 0, 0, 0.1); /* Subtle background color on hover */\n}\n\n.btn-icon {\n margin-right: 10px;\n box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);\n}\n\n.flaticon-settings:before {\n font-weight: 800 !important;\n}\n\n.flaticon-pin:before {\n font-weight: 800 !important;\n}\n\n.flaticon-download:before {\n font-weight: 800 !important;\n}", ""]); // Exports module.exports = ___CSS_LOADER_EXPORT___.toString(); @@ -17255,7 +17257,7 @@ var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(/*! ../../../ var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ 40479); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); // Module -___CSS_LOADER_EXPORT___.push([module.id, ".example-container {\n width: 400px;\n height: 200px;\n margin: 12px;\n border: 1px solid #555;\n}\n:host {\n position: absolute;\n overflow: hidden;\n}\nmat-drawer-content {\n padding: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.spinner-wrapper {\n position: fixed;\n /* Absolute positioning relative to the viewport */\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(255, 255, 255, 0.8);\n /* Optional background overlay */\n z-index: 9999;\n /* Ensures it appears above all content */\n display: flex;\n /* Utilizes Flexbox */\n align-items: center;\n /* Center vertically */\n justify-content: center;\n /* Center horizontally */\n}\n#file-footer {\n z-index: 1;\n position: relative;\n}\n#file-prompt {\n z-index: 1;\n position: relative;\n}\n#alignment-preview {\n margin: 0 15px;\n padding: 0;\n min-height: 115px;\n max-height: 200px;\n overflow-x: scroll;\n overflow-y: auto;\n}\n#distance-metrics_chosen .chosen-choices {\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n#loading-information {\n font-family: \"Courier New\", Courier, \"Lucida Sans Typewriter\", \"Lucida Typewriter\", monospace;\n font-size: 11px;\n font-style: normal;\n font-variant: normal;\n font-weight: 400;\n line-height: 23px;\n padding: 10px;\n white-space: pre-line;\n}\n.dna {\n margin: 40px auto;\n width: 360px;\n height: 70px;\n perspective: 466px;\n transform-style: preserve-3d;\n}\n.ele {\n width: 1px;\n height: 70px;\n float: left;\n margin: 0 8px;\n border-left: 1px #b0b0b0 dashed;\n position: relative;\n transform: rotateX(-360deg);\n animation: run 2s linear infinite;\n}\n.ele:before,\n.ele:after {\n content: \"\";\n width: 10px;\n height: 10px;\n background: deepskyblue;\n border-radius: 50%;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n}\n.ele:before {\n top: -2px;\n background: #000000;\n}\n.ele:after {\n bottom: -2px;\n}\n.ele:nth-of-type(1) {\n animation-delay: -0.15s;\n}\n.ele:nth-of-type(2) {\n animation-delay: -0.3s;\n}\n.ele:nth-of-type(3) {\n animation-delay: -0.45s;\n}\n.ele:nth-of-type(4) {\n animation-delay: -0.6s;\n}\n.ele:nth-of-type(5) {\n animation-delay: -0.75s;\n}\n.ele:nth-of-type(6) {\n animation-delay: -0.9s;\n}\n.ele:nth-of-type(7) {\n animation-delay: -1.05s;\n}\n.ele:nth-of-type(8) {\n animation-delay: -1.2s;\n}\n.ele:nth-of-type(9) {\n animation-delay: -1.35s;\n}\n.ele:nth-of-type(10) {\n animation-delay: -1.5s;\n}\n.ele:nth-of-type(11) {\n animation-delay: -1.65s;\n}\n.ele:nth-of-type(12) {\n animation-delay: -1.8s;\n}\n.ele:nth-of-type(13) {\n animation-delay: -1.95s;\n}\n.ele:nth-of-type(14) {\n animation-delay: -2.1s;\n}\n.ele:nth-of-type(15) {\n animation-delay: -2.25s;\n}\n.ele:nth-of-type(16) {\n animation-delay: -2.4s;\n}\n.ele:nth-of-type(17) {\n animation-delay: -2.55s;\n}\n.ele:nth-of-type(18) {\n animation-delay: -2.7s;\n}\n.ele:nth-of-type(19) {\n animation-delay: -2.85s;\n}\n.ele:nth-of-type(20) {\n animation-delay: -3s;\n}\n", ""]); +___CSS_LOADER_EXPORT___.push([module.id, ".example-container {\n width: 400px;\n height: 200px;\n margin: 12px;\n border: 1px solid #555;\n}\n:host {\n position: absolute;\n overflow: hidden;\n}\nmat-drawer-content {\n padding: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.spinner-wrapper {\n position: fixed;\n /* Absolute positioning relative to the viewport */\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(255, 255, 255, 0.8);\n /* Optional background overlay */\n z-index: 9999;\n /* Ensures it appears above all content */\n display: flex;\n /* Utilizes Flexbox */\n align-items: center;\n /* Center vertically */\n justify-content: center;\n /* Center horizontally */\n}\n#file-footer {\n z-index: 1;\n position: relative;\n}\n#file-prompt {\n z-index: 1;\n position: relative;\n}\n#alignment-preview {\n margin: 0 15px;\n padding: 0;\n min-height: 115px;\n max-height: 200px;\n overflow-x: scroll;\n overflow-y: auto;\n}\n#distance-metrics_chosen .chosen-choices {\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n#loading-information {\n font-family: \"Courier New\", Courier, \"Lucida Sans Typewriter\", \"Lucida Typewriter\", monospace;\n font-size: 11px;\n font-style: normal;\n font-variant: normal;\n font-weight: 400;\n line-height: 23px;\n padding: 10px;\n white-space: pre-line;\n}\n.dna {\n margin: 40px auto;\n width: 360px;\n height: 70px;\n perspective: 466px;\n transform-style: preserve-3d;\n}\n.ele {\n width: 1px;\n height: 70px;\n float: left;\n margin: 0 8px;\n border-left: 1px #b0b0b0 dashed;\n position: relative;\n transform: rotateX(-360deg);\n animation: run 2s linear infinite;\n}\n.ele:before,\n.ele:after {\n content: \"\";\n width: 10px;\n height: 10px;\n background: deepskyblue;\n border-radius: 50%;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n}\n.ele:before {\n top: -2px;\n background: #000000;\n}\n.ele:after {\n bottom: -2px;\n}\n.ele:nth-of-type(1) {\n animation-delay: -0.15s;\n}\n.ele:nth-of-type(2) {\n animation-delay: -0.3s;\n}\n.ele:nth-of-type(3) {\n animation-delay: -0.45s;\n}\n.ele:nth-of-type(4) {\n animation-delay: -0.6s;\n}\n.ele:nth-of-type(5) {\n animation-delay: -0.75s;\n}\n.ele:nth-of-type(6) {\n animation-delay: -0.9s;\n}\n.ele:nth-of-type(7) {\n animation-delay: -1.05s;\n}\n.ele:nth-of-type(8) {\n animation-delay: -1.2s;\n}\n.ele:nth-of-type(9) {\n animation-delay: -1.35s;\n}\n.ele:nth-of-type(10) {\n animation-delay: -1.5s;\n}\n.ele:nth-of-type(11) {\n animation-delay: -1.65s;\n}\n.ele:nth-of-type(12) {\n animation-delay: -1.8s;\n}\n.ele:nth-of-type(13) {\n animation-delay: -1.95s;\n}\n.ele:nth-of-type(14) {\n animation-delay: -2.1s;\n}\n.ele:nth-of-type(15) {\n animation-delay: -2.25s;\n}\n.ele:nth-of-type(16) {\n animation-delay: -2.4s;\n}\n.ele:nth-of-type(17) {\n animation-delay: -2.55s;\n}\n.ele:nth-of-type(18) {\n animation-delay: -2.7s;\n}\n.ele:nth-of-type(19) {\n animation-delay: -2.85s;\n}\n.ele:nth-of-type(20) {\n animation-delay: -3s;\n}\n.flaticon-settings:before {\n font-weight: 800 !important;\n}\n/* Button appearance on hover */\n.btn-icon:hover {\n transform: scale(1.1);\n /* Slight enlarge on hover */\n background-color: rgba(0, 0, 0, 0.1);\n /* Subtle background color on hover */\n}\n.btn-icon {\n margin-right: 10px;\n box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);\n}\n", ""]); // Exports module.exports = ___CSS_LOADER_EXPORT___.toString(); @@ -17628,7 +17630,7 @@ module.exports = "
\n\n
{ "use strict"; -module.exports = "
\n
\n\n \n \n
\n Microbe\n Trace\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Help\n Report Bug\n \n \n \n
\n \n \n
\n\n
\n
\n \n
\n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n\n\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n Welcome to \n Microbe\n Trace™\n \n \n \n
    \n
    The Visualization Multitool for Molecular Epidemiology and Bioinformatics
    \n
    \n
    \n
    \n Click \n here\n or Drag & Drop files to load data\n
    \n
    \n \n \n \n
    \n
    \n \n
    \n\n\n \n\n
    \n
    \n \n
    \n
    \n\n
    \n 0\" scrollHeight=\"flex\">\n
    \n\n
    \n \n \n
    \n\n
    \n \n\n\n \n
    \n
    \n
    \n \n \n\n
    \n
    \n
    Distance Metric
    \n
    \n \n
    \n
    \n
    \n
    Prune With
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    Statistics
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    Apply Style
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n Welcome to the newest version of MicrobeTrace! If you'd like to open your auspice JSON file in the previous version of MicrobeTrace, please click this link:
    \n https://microbetrace.cdc.gov/MicrobeTrace/?url={{auspiceUrlVal}}\n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n\n \n
    \n
    \n
    \n

    \n {{\"MicrobeTrace\" | localize}} \n v{{version}}\n

    \n

    \n MicrobeTrace is an interactive web application that renders existing data from high-risk contact networks\n in an easy-to-use Graphical User Interface (GUI). The network visualization can be customized according to\n supplemental data sources and mathematical inferences like the most probable transmission pathways.\n MicrobeTrace is a highly responsive, visual sequence analytics tool which can reduce the gap between data\n production and analytics and help you to discover, understand, and display relationships (links) between\n patients (nodes). MicrobeTrace can be deployed on laptops to locations without any Internet access, thereby\n reducing both the startup cost and analysis time and effort.\n

    \n

    \n \n Click Here to Learn More\n \n

    \n

    \n MicrobeTrace was built by the Molecular Epidemiology and Bionformatics Team at the CDC in Atlanta.

    \n \n Click Here to See MEBT's Other Tools\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n \n \n\n
    \n \n
    \n\n\n
    \n
    \n"; +module.exports = "
    \n
    \n\n \n \n
    \n Microbe\n Trace\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Help\n Report Bug\n \n \n \n
    \n \n \n
    \n\n
    \n
    \n \n
    \n \n
      \n
      \n \n \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n\n \n
      \n \n
      \n
      \n\n\n \n
      \n
      \n
      \n
      \n
      \n\n
      \n \n
      \n
      \n Welcome to \n Microbe\n Trace™\n \n \n \n
      \n
      The Visualization Multitool for Molecular Epidemiology and Bioinformatics
      \n
      \n
      \n
      \n Click \n here\n or Drag & Drop files to load data\n
      \n
      \n \n \n \n
      \n
      \n \n
      \n\n\n \n\n
      \n
      \n \n
      \n
      \n\n
      \n 0\" scrollHeight=\"flex\">\n
      \n\n
      \n \n \n
      \n\n
      \n \n\n\n \n
      \n
      \n
      \n \n \n\n
      \n
      \n
      Distance Metric
      \n
      \n \n
      \n
      \n
      \n
      Prune With
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n \n
      \n
      \n
      Statistics
      \n
      \n \n
      \n
      \n
      \n
      \n \n\n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n\n\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n\n \n\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      Apply Style
      \n
      \n \n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n\n
      \n \n \n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n Welcome to the newest version of MicrobeTrace! If you'd like to open your auspice JSON file in the previous version of MicrobeTrace, please click this link:
      \n https://microbetrace.cdc.gov/MicrobeTrace/?url={{auspiceUrlVal}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n\n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n\n\n \n
      \n
      \n
      \n

      \n {{\"MicrobeTrace\" | localize}} \n v{{version}}\n

      \n

      \n MicrobeTrace is an interactive web application that renders existing data from high-risk contact networks\n in an easy-to-use Graphical User Interface (GUI). The network visualization can be customized according to\n supplemental data sources and mathematical inferences like the most probable transmission pathways.\n MicrobeTrace is a highly responsive, visual sequence analytics tool which can reduce the gap between data\n production and analytics and help you to discover, understand, and display relationships (links) between\n patients (nodes). MicrobeTrace can be deployed on laptops to locations without any Internet access, thereby\n reducing both the startup cost and analysis time and effort.\n

      \n

      \n \n Click Here to Learn More\n \n

      \n

      \n MicrobeTrace was built by the Molecular Epidemiology and Bionformatics Team at the CDC in Atlanta.

      \n \n Click Here to See MEBT's Other Tools\n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n\n \n \n\n
      \n \n
      \n\n\n
      \n
      \n"; /***/ }),