{"version":3,"sources":["webpack://ssp-dthermx/./src/components/calculation/result/DetailTableData.js","webpack://ssp-dthermx/./src/components/calculation/result/TechnicalData/SingleHxDisplay.js","webpack://ssp-dthermx/./src/components/calculation/filters/FilterSelectDropDown.js","webpack://ssp-dthermx/./src/components/calculation/filters/FilterCollectionPanel.js","webpack://ssp-dthermx/./src/components/calculation/inputForms/CalculationInputs.js","webpack://ssp-dthermx/./src/components/calculation/result/CalculationResultDetails.js","webpack://ssp-dthermx/./src/components/plugins/injectResultTechnicalDataHeaderAcrions.js","webpack://ssp-dthermx/./src/components/common/ExpanderButton/ExpanderButton.js","webpack://ssp-dthermx/./src/components/common/DataGrid/DataGridRow.js","webpack://ssp-dthermx/./src/components/common/DataGrid/DataGrid.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/UserDefinedColumnHeaderRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/UserDefinedColumnCellRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/ResultMessagesColumnRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/PortSwitchAndMessagesCellRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/DisplayNameCellRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/getDisplayNameCellRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/CalculationResult.js","webpack://ssp-dthermx/./src/components/plugins/injectCalculationResultRowFilter.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/getUserColumnHeaderRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/getUserColumnCellRenderer.js","webpack://ssp-dthermx/./src/components/plugins/injectCalculationResultsColumnsDefinitionsPlugin.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/getPortSwitchCellRenderer.js","webpack://ssp-dthermx/./src/components/plugins/injectCalculationResultsExpanderContent.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/infoMessagesFormatter.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/SSPValueRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/sspValueFormatter.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/SSPValueHeaderRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/sspValueHeaderFormatter.js","webpack://ssp-dthermx/./src/components/calculation/result/ApplicationResultSubtable.js","webpack://ssp-dthermx/./src/components/calculation/result/TechnicalData/TDTwoStage.js","webpack://ssp-dthermx/./src/components/calculation/result/ApplicationResultDetails.js","webpack://ssp-dthermx/./src/components/calculation/result/TableColumnFormatter/priceFactorFormatter.js","webpack://ssp-dthermx/./src/components/calculation/result/ApplicationResult.js","webpack://ssp-dthermx/./src/utils/uuid.js","webpack://ssp-dthermx/./src/components/calculation/result/ResultDispather.js","webpack://ssp-dthermx/./src/containers/calculations/index.js","webpack://ssp-dthermx/./src/components/calculation/result/calculation-result.scss","webpack://ssp-dthermx/./src/components/calculation/result/calculation-result.scss?b198"],"names":["DetailTableData","rowData","name","unit","side1","middle","side2","React","displayData","t","useTranslation","tp","displayInfo","data","map","x","i","rowDataConfig","key","className","duty","id","hxInfo","physical","physicalPreStage","physicalAfterStage","treeData","value","onChange","useMemo","checked","some","v","isSelected","parentId","label","translationKey","children","TreeSelect","placeholder","mode","selected","selection","s","showPartiallySelected","FilterCollectionPanel","availableFilters","filterSelections","handleChange","useCallback","selections","nextState","produce","draft","index","findIndex","filterItem","find","y","get","options","SinglePhaseInputs","EvaporatorInputs","EvaporatorDualInputs","CondenserInputs","CondenserDualInputs","SinglePhaseDualInputs","CascadeInputs","AirDryerInputs","TwoStageInputs","DistrictEnergyInputs","withConnect","connect","createStructuredSelector","calculation","makeSelectCalculations","dispatch","calcActions","bindActionCreators","calculationActions","compose","memo","calculationType","userId","calculationData","loadingInputs","values","changeCalculationInputFields","setFormValidity","isValid","setInputFormValidity","handleReloadHeatExchangers","modelRestrictions","coCurrent","selectedFluidSide1","selectedFluidSide2","loadCalculationInputsHeatExchangers","handleCustomFiltersChange","changeCustomFilters","LoadingIndicator","type","filterComponent","filterSettings","customFilterSelections","calculationInputsFormComponent","SinglePhase","filtersComponent","onReloadHeatExchangers","SinglePhaseDual","Evaporator","LiquidEvaporator","EvaporatorHeatPump","EvaporatorDual","Condenser","CondenserHeatPump","CondenserDual","Cascade","AirDryer","TwoStage","DistrictEnergy","UnitSystemProvider","Suspense","fallback","CalculationResultDetail","inputs","setValue","customer","useCustomer","a11yProps","TabWrapper","props","hidden","aria-labelledby","hxName","customHeatExchanger","customName","calcMethod","toLowerCase","channels","length","psVal1","outputValues","formattedValue","psVal2","channelName","availablePlugins","allowedPlugins","technicalDataHeaderActions","pluginTypes","filter","includes","pluginType","getPluginComponent","Paper","elevation","extraLabels","side1Name","side1Value","side2Name","side2Value","Tabs","data-component-name","event","newValue","variant","scrollButtons","indicatorColor","textColor","aria-label","Tab","Grid","container","direction","justify","alignItems","Plugin","item","TechnicalDataUni","DimensionalData","Totals","totalsInfo","ItemDetails","ExpanderButton","isExpanded","onExpand","IconButton","size","onClick","ExpandLess","ExpandMore","useStyles","makeStyles","theme","selectedRow","borderLeftColor","palette","primary","main","borderLeftStyle","borderLeftWidth","backgroundColor","fade","unselectedRow","row","columnsDefinitions","subTableRenderer","onSelect","onCollapse","classes","handleSelect","handleOnExpandToggle","data-row-name","clsx","data-col-key","columnDefinition","scope","cellRenderer","rowId","colSpan","root","fontSize","fontWeight","DataGrid","columnData","onSelectedRowChange","expandedRows","headerRenderer","isNil","guid","UserDefinedColumnHeaderRenderer","unitGroup","shortText","longText","defaultMetricUnit","defaultUSUnit","useUnitSystem","unitSystem","getDefaultUnit","columnText","unitText","MeasuringSystem","Tooltip","title","UserDefinedColumnCellRenderer","sspValue","button","margin","spacing","customWidth","maxWidth","noMaxWidth","portSwitchIcon","color","infoIcon","info","warningIcon","warning","errorIcon","error","ResultMessagesColumnRenderer","portSwitched","messages","portSwitchElement","Typography","Replay","PortSwitchAndMessagesCellRenderer","DisplayNameCellRenderer","alias","numberOfPlates","numberOfPasses","displayPasses","data-display-alias","data-display-numberofplates","CalculationResult","response","selectedExchanger","selectedItem","onItemChange","mapPredefinedColumns","exchangerResult","numberOfParallelUnits","pf","mapUserOutputColumns","userColumnsData","calculationOutputColumns","forEach","rows","exchangers","modelId","calcResult","dimensionInfo","sketch","xpc","ciData","plugin","userColumnDefinitions","m","order","userPluginColumnDefinitions","flat","predefinedColumnDefinitions","allColumns","getDisplayNameCellRenderer","sortBy","Number","MAX_VALUE","useState","setExpandedRows","handleSelectedRowChanged","exchanger","useEffect","firstItem","firstSubItem","plugins","availableCombinations","pluginConfiguration","items","onSelectedItemChange","renderSelectedRow","cell","SSPValueRenderer","column","SSPValueHeaderRenderer","headerUnitGroup","unitText1","headerLongText","headerShortText","applicationResult","selectedComponent","onSelectedComponentChange","sortFunc","a","b","siValue","userColumns","dataField","text","sort","headerAlign","headerFormatter","sspValueHeaderFormatter","formatter","sspValueFormatter","va","columns","headerStyle","width","infoMessagesFormatter","componentCalculationResults","bphe","selectRow","hideSelectColumn","clickToSelect","bgColor","isSelect","rowIndex","bootstrap4","condensed","hover","bordered","headerClasses","keyField","info1","alias1","Plates","info2","alias2","Plates_AfterStage","Plates_PreStage","pInfo1","createDisplayObject","HeatLoad","InTemp1","InTemp2","sspValue1","sspValue2","OutTemp1","OutTemp2","Flow1","Flow2","HeatTransferArea","DP1","DP2","pInfo2","RadiatorFlowRate","TotalFlowRate","DP1_AfterStage","DP1_PreStage","DP2_AfterStage","DP2_PreStage","DP1_After_Winter","DP1_Pre_Winter","DP2_After_Winter","DP2_Pre_Winter","Channels11_AfterStage","Channels11_PreStage","Channels21_AfterStage","Channels21_PreStage","SummerReturnTemperature","WinterReturnTemperature","align","SingleHxDisplay","undefined","ProgressBar","progressValue","ApplicationResult","selectedUUID","setSelectedUUID","selectedCalculationResultComponent","setSelectedCalculationResultComponent","selectedApplicationResultsCollection","setApplicationResultsCollection","priceFactorFormatter","applicationResultsCollection","localId","replace","c","r","Math","random","toString","join","handleSubRowSelect","uuid","calculationResultComponent","expandRow","renderer","calculationResultComponents","showExpandColumn","isTwoStage","ResultDispatcher","useInjectSaga","saga","useSelector","makeSelectCalculationResponse","makeSelectCalculationInputParams","makeSelectSelectedProduct","makeSelectSelectedItem","useDispatch","handleItemChange","selectItem","padding","minWidth","state","ownProps","AllCalculationTypes","matchPath","location","pathname","path","exact","strict","getCalcProps","makeSelectCalculationProps","getIsCalculating","makeSelectIsCalculating","calcProps","isCalculating","isCalcLoaded","makeSelectIsCalcLoaded","isFormValid","makeSelectInputParamsValidity","selectedProduct","actions","withSaga","injectSaga","makeSelectUserId","loadCalculationInputs","handleCalculate","processCalculation","customLogo","injectCustomLogo","Logo","ApplicationStepper","SettingsButton","LoadingPanel","isLoading","loaderType","BottomActionsBar","Fab","tabIndex","disabled","ApplicationNavigation","___CSS_LOADER_EXPORT___","push","module","api","content","__esModule","default","exported","locals","exports"],"mappings":"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","file":"78.2f66e61b10e10083f4be.js","sourcesContent":["import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst DetailTableData = ({rowData}) => {\n return (\n
\n {rowData.name} | \n {rowData.unit} | \n {rowData.side1} | \n {rowData.middle} | \n {rowData.side2} | \n
\n );\n};\n\nDetailTableData.propTypes = {\n rowData: PropTypes.object.isRequired\n};\n\nexport default React.memo(DetailTableData);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DetailTableData from \"../DetailTableData\";\nimport { useTranslation } from 'react-i18next';\n\nconst SingleHxDisplay = ({ displayData }) => {\n const { t } = useTranslation();\n const { t : tp } = useTranslation(\"printouts\");\n\n const displayInfo = data => {\n return data.map((x, i) => {\n const rowDataConfig = {\n name: tp(x.name),\n unit: x.unit,\n side1: x.side1,\n middle: x.middle,\n side2: x.side2\n };\n return ;\n });\n };\n\n return (\n \n {displayData.duty &&\n
\n \n \n {tp(\"DutyRequirements\")} | \n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")} | \n {tp(\"Side1\")} | \n | \n {tp(\"Side2\")} | \n
\n \n \n { displayInfo(displayData.duty) }\n \n
}\n
\n {displayData.hxInfo &&\n
\n \n \n {tp(\"PlateHeatExchanger\")} | \n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")} | \n {tp(\"Side1\")} | \n | \n {tp(\"Side2\")} | \n
\n \n \n {displayInfo(displayData.hxInfo)}\n \n
\n }\n
\n {displayData.physical &&\n
\n \n \n {tp(\"PhysicalProperties\")} | \n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")} | \n {tp(\"Side1\")} | \n | \n {tp(\"Side2\")} | \n
\n \n \n {displayInfo(displayData.physical)}\n \n
\n }\n {displayData.physicalPreStage &&\n
\n \n \n {tp(\"PHYSICAL PROPERTIES- PRE STAGE\")} | \n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")} | \n {tp(\"Side1\")} | \n | \n {tp(\"Side2\")} | \n
\n \n \n {displayInfo(displayData.physicalPreStage)}\n \n
\n }\n {displayData.physicalAfterStage &&\n
\n \n \n {tp(\"PHYSICAL PROPERTIES- AFTER STAGE\")} | \n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")} | \n {tp(\"Side1\")} | \n | \n {tp(\"Side2\")} | \n
\n \n \n {displayInfo(displayData.physicalAfterStage)}\n \n
\n }\n
\n );\n};\n\nSingleHxDisplay.propTypes = {\n displayData: PropTypes.object.isRequired\n};\n\nexport default SingleHxDisplay;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport TreeSelect from 'components/common/TreeSelect/TreeSelect';\nimport { useTranslation } from 'react-i18next';\n\n\nconst FilterSelectDropDown = ({ treeData, value, onChange }) => {\n const { t } = useTranslation();\n\n const data = useMemo(() => {\n return treeData.map(x => {\n const checked = value.some(v => v.key === x.id && v.isSelected === true);\n return {\n id: x.id,\n parentId: x.parentId,\n label: t(x.translationKey),\n checked: checked,\n children: []\n };\n });\n }, [t, treeData, value]);\n\n\n const handleChange = (selected) => {\n const selection = treeData.map(x => {\n return {\n key: x.id,\n isSelected: selected.some(s => s.id === x.id)\n };\n });\n onChange(selection);\n };\n\n return (\n \n );\n};\n\nFilterSelectDropDown.propTypes = {\n treeData: PropTypes.array.isRequired,\n value: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport default FilterSelectDropDown;\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport FilterSelectDropDown from \"./FilterSelectDropDown\";\nimport get from 'lodash/get';\nimport { produce } from \"immer\";\n\nconst FilterCollectionPanel = ({\n availableFilters,\n filterSelections,\n onChange,\n}) => {\n const { t } = useTranslation();\n\n const handleChange = useCallback((id, selections) => {\n const nextState = produce(filterSelections, draft => {\n const index = filterSelections.findIndex(x => x.id === id);\n if (index !== -1) {\n draft[index].selections = selections;\n }\n });\n onChange(nextState);\n }, [filterSelections, onChange]);\n\n\n return (\n availableFilters.map(x => {\n const filterItem = filterSelections.find(y => y.id === x.id);\n const selections = get(filterItem, 'selections', []);\n\n return (\n \n
\n {t(x.translationKey)}\n
\n
\n
\n handleChange(x.id, selection)} treeData={x.options} value={selections}/>\n
\n
\n
);\n })\n );\n};\n\nFilterCollectionPanel.propTypes = {\n availableFilters: PropTypes.arrayOf(PropTypes.shape({\n\n })).isRequired,\n filterSelections: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default React.memo(FilterCollectionPanel);\n","import React, {memo, Suspense, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { bindActionCreators, compose} from 'redux';\nimport { createStructuredSelector } from 'reselect';\nimport { makeSelectCalculations } from 'selectors/calculationSelectors';\nimport * as calculationActions from 'actions/calculationActions';\nimport LoadingIndicator from 'components/LoadingIndicator';\nimport './inputs.scss';\nimport UnitSystemProvider from \"./unitSystem/UnitSystemProvider\";\nimport get from 'lodash/get';\n\nconst SinglePhaseInputs = React.lazy(() => import('./SinglePhaseInputs'));\nconst EvaporatorInputs = React.lazy(() => import('./EvaporatorInputs'));\nconst EvaporatorDualInputs = React.lazy(() => import('./EvaporatorDualInputs'));\nconst CondenserInputs = React.lazy(() => import('./CondenserInputs'));\nconst CondenserDualInputs = React.lazy(() => import('./CondenserDualInputs'));\nconst SinglePhaseDualInputs = React.lazy(() => import('./SinglePhaseDualInputs'));\nconst CascadeInputs = React.lazy(() => import('./CascadeInputs'));\nconst AirDryerInputs = React.lazy(() => import('./AirDryerInputs'));\nconst TwoStageInputs = React.lazy(() => import('./TwoStageInputs'));\nconst DistrictEnergyInputs = React.lazy(() => import('./DistrictEnergyInputs'));\n\n// const SinglePhaseInputs = Loadable({ loader: () => import('./SinglePhaseInputs'), loading: LoadingIndicator});\n// const EvaporatorInputs = Loadable({ loader: () => import('./EvaporatorInputs'), loading: LoadingIndicator});\n// const EvaporatorDualInputs = Loadable({ loader: () => import('./EvaporatorDualInputs'), loading: LoadingIndicator});\n// const CondenserInputs = Loadable({ loader: () => import('./CondenserInputs'), loading: LoadingIndicator});\n// const CondenserDualInputs = Loadable({ loader: () => import('./CondenserDualInputs'), LoadingIndicator});\n// const SinglePhaseDualInputs = Loadable({ loader: () => import('./SinglePhaseDualInputs'), loading: LoadingIndicator});\n// const CascadeInputs = Loadable({ loader: () => import('./CascadeInputs'), loading: LoadingIndicator});\n// const AirDryerInputs = Loadable({ loader: () => import('./AirDryerInputs'), loading: LoadingIndicator});\n// const TwoStageInputs = Loadable({ loader: () => import('./TwoStageInputs'), loading: LoadingIndicator});\n// const DistrictEnergyInputs = Loadable({ loader: () => import('./DistrictEnergyInputs'), loading: LoadingIndicator});\n\nimport {\n SinglePhase,\n SinglePhaseDual,\n Condenser,\n CondenserDual,\n CondenserHeatPump,\n Evaporator,\n EvaporatorDual,\n EvaporatorHeatPump,\n LiquidEvaporator,\n Cascade,\n TwoStage,\n AirDryer,\n DistrictEnergy\n} from 'constants/calculationTypes';\nimport FilterCollectionPanel from \"../filters/FilterCollectionPanel\";\n\nconst CalculationInputs = ({calculationType, calculation, calcActions, userId}) => {\n const calculationData = get(calculation, `[${calculationType}].inputParams`, null);\n const loadingInputs = get(calculation, `[${calculationType}].loading`, true);\n\n const handleChange = useCallback((values) => calcActions.changeCalculationInputFields(calculationType, values), [calculationType, calcActions]);\n const setFormValidity = useCallback((isValid) => calcActions.setInputFormValidity(calculationType, isValid), [calculationType, calcActions]);\n const handleReloadHeatExchangers = useCallback((modelRestrictions, coCurrent, selectedFluidSide1, selectedFluidSide2) => calcActions.loadCalculationInputsHeatExchangers(userId, modelRestrictions, coCurrent, selectedFluidSide1, selectedFluidSide2), [calcActions, userId]);\n const handleCustomFiltersChange = useCallback((selections) => calcActions.changeCustomFilters(calculationType, selections), [calcActions, calculationType]);\n\n if(loadingInputs){\n return ;\n }\n\n const filterComponent = ();\n\n let calculationInputsFormComponent = null;\n switch(calculationType)\n {\n case SinglePhase:\n calculationInputsFormComponent = ;\n break;\n case SinglePhaseDual:\n calculationInputsFormComponent = ();\n break;\n case Evaporator:\n case LiquidEvaporator:\n case EvaporatorHeatPump:\n calculationInputsFormComponent = ();\n break;\n case EvaporatorDual:\n calculationInputsFormComponent = ();\n break;\n case Condenser:\n case CondenserHeatPump:\n calculationInputsFormComponent = ();\n break;\n case CondenserDual:\n calculationInputsFormComponent = ();\n break;\n case Cascade:\n calculationInputsFormComponent = ();\n break;\n case AirDryer:\n calculationInputsFormComponent = ();\n break;\n case TwoStage:\n calculationInputsFormComponent = ();\n break;\n case DistrictEnergy:\n calculationInputsFormComponent = ();\n break;\n default:\n calculationInputsFormComponent = null;\n break;\n }\n return (\n \n }>\n {calculationInputsFormComponent}\n \n \n );\n};\n\nCalculationInputs.propTypes = {\n calculationType: PropTypes.string.isRequired,\n calcActions: PropTypes.object.isRequired,\n userId: PropTypes.string.isRequired,\n calculation: PropTypes.object\n};\n\nconst mapStateToProps = () => {\n return createStructuredSelector({\n calculation: makeSelectCalculations(),\n });\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n calcActions: bindActionCreators(calculationActions, dispatch),\n };\n};\n\nconst withConnect = connect(mapStateToProps, mapDispatchToProps);\n\nexport default compose(\n withConnect,\n memo\n)(CalculationInputs);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport TechnicalDataUni from './TechnicalDataUni';\nimport Totals from './Totals';\nimport DimensionalData from './DimensionalData';\nimport { useTranslation } from 'react-i18next';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport ItemDetails from \"../../itemDetails/ItemDetails\";\nimport Paper from \"@material-ui/core/Paper\";\nimport useCustomer from '../../common/Customization/CustomerContext/useCustomer';\nimport injectResultTechnicalDataHeaderActions from '../../plugins/injectResultTechnicalDataHeaderAcrions';\nimport Grid from '@material-ui/core/Grid';\n\nconst CalculationResultDetail = ({data, inputs, calculationType }) => {\n const [value, setValue] = React.useState(0);\n const { t } = useTranslation();\n const [customer] = useCustomer();\n\n if(!data || !inputs){\n return null;\n }\n\n function handleChange(event, newValue) {\n setValue(newValue);\n }\n\n function a11yProps(index) {\n return {\n id: `scrollable-force-tab-${index}`,\n 'aria-controls': `scrollable-force-tabpanel-${index}`,\n };\n }\n\n const TabWrapper = (props) => { // eslint-disable-line\n const { children, value, index } = props; // eslint-disable-line\n return (\n \n {children}\n
\n );\n };\n\n let hxName = data.customHeatExchanger.customName || data.name;\n if(data.calcMethod.toLowerCase() === 'singlemix' && data.channels.length > 1){\n const psVal1 = data.outputValues['PlatesStack1'] ? data.outputValues['PlatesStack1'].formattedValue: '';\n const psVal2 = data.outputValues['PlatesStack2'] ? data.outputValues['PlatesStack2'].formattedValue: '';\n hxName = `${data.name} (${psVal1}${data.channels[0].channelName} + ${psVal2}${data.channels[1].channelName})`;\n }\n\n const technicalDataHeaderActions = injectResultTechnicalDataHeaderActions(customer.availablePlugins) || [];\n\n return (\n \n \n
\n
\n
{t(\"HeatExchanger\")} {hxName}
\n
{data.extraLabels.side1Name}: {data.extraLabels.side1Value}
\n
{data.extraLabels.side2Name}: {data.extraLabels.side2Value}
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n {value === 0 && }\n \n \n {value === 1 && }\n \n \n {value === 2 && }\n \n \n {value === 3 && }\n \n
\n
\n \n\n );\n};\n\nCalculationResultDetail.propTypes = {\n data: PropTypes.object,\n calculationType: PropTypes.string,\n inputs: PropTypes.object,\n};\n\nexport default React.memo(CalculationResultDetail);\n","import getPluginComponent from \"./pluginRegister\";\nimport pluginTypes from \"./pluginTypes\";\n\nconst injectResultTechnicalDataHeaderActions = (availablePlugins) => {\n const allowedPlugins = [\n pluginTypes.ParkerResultTechnicalDataHeaderActionsPrintoutPWO,\n pluginTypes.ParkerResultTechnicalDataHeaderActionsPrintoutOAW\n ];\n\n const accessoryPlugin = availablePlugins\n .filter(x => allowedPlugins.includes(x.pluginType))\n .map(x => getPluginComponent(x.pluginType));\n\n return accessoryPlugin;\n};\n\nexport default injectResultTechnicalDataHeaderActions;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {IconButton} from \"@material-ui/core\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\n\nconst ExpanderButton = ({ isExpanded, onExpand }) => {\n return (\n \n {isExpanded ? : }\n \n );\n};\n\nExpanderButton.propTypes = {\n isExpanded: PropTypes.bool.isRequired,\n onExpand: PropTypes.func.isRequired\n};\n\nexport default React.memo(ExpanderButton);\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport ExpanderButton from \"../ExpanderButton/ExpanderButton\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport clsx from \"clsx\";\nimport { fade } from '@material-ui/core/styles/colorManipulator';\n\nconst useStyles = makeStyles((theme) => ({\n selectedRow: {\n borderLeftColor: theme.palette.primary.main,\n borderLeftStyle: \"solid\",\n borderLeftWidth: \"6px\",\n backgroundColor: fade(theme.palette.primary.main, 0.05)\n },\n unselectedRow: {\n borderLeftColor: \"transparent\",\n borderLeftStyle: \"solid\",\n borderLeftWidth: \"6px\",\n }\n}));\n\nconst DataGridRow = ({\n row,\n columnsDefinitions,\n subTableRenderer,\n isSelected,\n onSelect,\n isExpanded,\n onExpand,\n onCollapse\n}) => {\n const classes = useStyles();\n\n const handleSelect = useCallback(() => {\n onSelect(row);\n }, [onSelect, row]);\n\n const handleOnExpandToggle = useCallback(() => {\n if (isExpanded === true) {\n if (onCollapse) onCollapse(row);\n } else {\n if (onExpand) onExpand(row);\n }\n }, [isExpanded, onCollapse, onExpand, row]);\n\n return (\n <>\n \n \n \n | \n {columnsDefinitions.map(columnDefinition => {\n return (\n \n {columnDefinition.cellRenderer(row)}\n | \n );\n })}\n
\n {isExpanded && subTableRenderer && \n \n {subTableRenderer(row)}\n | \n
}\n >\n );\n};\n\nDataGridRow.propTypes = {\n row: PropTypes.object.isRequired,\n columnsDefinitions: PropTypes.array.isRequired,\n isSelected: PropTypes.bool,\n onSelect: PropTypes.func,\n subTableRenderer: PropTypes.func,\n isExpanded: PropTypes.bool,\n onExpand: PropTypes.func,\n onCollapse: PropTypes.func\n};\n\nexport default DataGridRow;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport DataGridRow from \"./DataGridRow\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport isNil from 'lodash/isNil';\n\nconst useStyles = makeStyles(() => ({\n root: {\n fontSize: \"0.87rem\",\n fontWeight: 400\n },\n}));\n\nconst DataGrid = ({\n columnsDefinitions,\n columnData,\n rowData,\n subTableRenderer,\n selectedRow,\n onSelectedRowChange,\n expandedRows,\n onExpand,\n onCollapse\n}) => {\n const classes = useStyles();\n\n return (\n \n
\n \n \n \n {columnsDefinitions.map(columnDefinition => {\n return ( | {columnDefinition.headerRenderer(columnData)} | );\n })}\n
\n \n \n {rowData.map(row => {\n const isSelected = !isNil(selectedRow) && selectedRow.guid === row.guid;\n const isExpanded = expandedRows.some(x => x.guid === row.guid);\n return (\n \n );\n })}\n \n
\n
\n );\n};\n\nDataGrid.propTypes = {\n columnsDefinitions: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n headerRenderer: PropTypes.func.isRequired,\n cellRenderer: PropTypes.func.isRequired\n })),\n subTableRenderer: PropTypes.func,\n rowData: PropTypes.arrayOf(PropTypes.shape({\n guid: PropTypes.string.isRequired,\n })),\n columnData: PropTypes.object,\n selectedRow: PropTypes.shape({\n guid: PropTypes.string.isRequired\n }),\n onSelectedRowChange: PropTypes.func.isRequired,\n expandedRows: PropTypes.array,\n onExpand: PropTypes.func,\n onCollapse: PropTypes.func\n};\n\nexport default React.memo(DataGrid);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {Tooltip} from \"@material-ui/core\";\nimport isNil from 'lodash/isNil';\nimport {useUnitSystem} from \"../TechnicalData/useUnitConversion\";\nimport {MeasuringSystem} from \"../../../../utils/unitGroups.ts\";\n\nconst UserDefinedColumnHeaderRenderer = ({ unitGroup, shortText, longText, defaultMetricUnit, defaultUSUnit }) => {\n const { unitSystem, getDefaultUnit } = useUnitSystem();\n\n let columnText = {shortText};\n let unitText = null;\n if (!isNil(unitGroup)) {\n if (!isNil(defaultMetricUnit) && unitSystem === MeasuringSystem.Metric) {\n unitText = [{defaultMetricUnit}];\n } else if (!isNil(defaultUSUnit) && unitSystem === MeasuringSystem.US) {\n unitText = [{defaultUSUnit}];\n } else {\n const unit = getDefaultUnit(unitGroup);\n unitText = [{unit}];\n }\n }\n\n return (\n \n {columnText}{unitText}\n \n );\n};\n\nUserDefinedColumnHeaderRenderer.propTypes = {\n unitGroup: PropTypes.string,\n shortText: PropTypes.string,\n longText: PropTypes.string,\n tooltip: PropTypes.string,\n defaultMetricUnit: PropTypes.string,\n defaultUSUnit: PropTypes.string,\n};\n\nexport default React.memo(UserDefinedColumnHeaderRenderer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {UnitSystemAwareValue} from \"../TechnicalData/createDisplayObject\";\n\nconst UserDefinedColumnCellRenderer = ({ sspValue, defaultMetricUnit, defaultUSUnit }) => {\n if (sspValue) {\n if (sspValue.unitGroup) {\n return ;\n } else {\n return sspValue.formattedValue;\n }\n } else {\n return null;\n }\n};\n\nUserDefinedColumnCellRenderer.propTypes = {\n sspValue: PropTypes.object,\n defaultMetricUnit: PropTypes.string,\n defaultUSUnit: PropTypes.string,\n};\n\nexport default React.memo(UserDefinedColumnCellRenderer);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n//import groupBy from 'lodash/groupBy';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport ReplayIcon from '@material-ui/icons/Replay';\n//import InfoIcon from '@material-ui/icons/Info';\n//import WarningIcon from '@material-ui/icons/Warning';\n//import RemoveCircleIcon from '@material-ui/icons/RemoveCircle';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n margin: theme.spacing(1),\n },\n customWidth: {\n maxWidth: 500,\n },\n noMaxWidth: {\n maxWidth: 'none',\n },\n portSwitchIcon: {\n color: \"green\",\n },\n infoIcon: {\n color: theme.palette.info.main,\n },\n warningIcon: {\n color: theme.palette.warning.main,\n },\n errorIcon: {\n color: theme.palette.error.main,\n }\n }));\n\n// eslint-disable-next-line no-unused-vars\nconst ResultMessagesColumnRenderer = ({ portSwitched, messages }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n let portSwitchElement = null;\n if (portSwitched && portSwitched === true) {\n const title = ({t(\"SWEP.SSP.Calculation_Result.ToolTip.Switch\")});\n portSwitchElement = ();\n }\n\n let infoElement = null;\n let warningElement = null;\n let errorElement = null;\n // if (messages && messages.length > 0) {\n // const messageGroups = groupBy(messages, m => m.messageType);\n // if (messageGroups[\"Information\"]) {\n // const r = messageGroups[\"Information\"].map(m => {m.text});\n // infoElement = ;\n // }\n // if (messageGroups[\"Warning\"]) {\n // const r = messageGroups[\"Warning\"].map(m => {m.text});\n // warningElement= ;\n // }\n // if (messageGroups[\"Error\"]) {\n // const r = messageGroups[\"Error\"].map(m => {m.text});\n // errorElement = ;\n // }\n // }\n\n return ({errorElement}{warningElement}{infoElement}{portSwitchElement});\n};\n\nResultMessagesColumnRenderer.propTypes = {\n portSwitched: PropTypes.bool.isRequired,\n messages: PropTypes.array.isRequired\n};\n\nexport default React.memo(ResultMessagesColumnRenderer);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport ResultMessagesColumnRenderer from \"../TableColumnFormatter/ResultMessagesColumnRenderer\";\n\nconst PortSwitchAndMessagesCellRenderer = ({ portSwitched, messages }) => {\n return ;\n};\n\nPortSwitchAndMessagesCellRenderer.propTypes = {\n portSwitched: PropTypes.bool.isRequired,\n messages: PropTypes.array.isRequired\n};\n\nexport default React.memo(PortSwitchAndMessagesCellRenderer);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst DisplayNameCellRenderer = ({ alias, numberOfPlates, numberOfPasses }) => {\n let displayPasses = '';\n if (numberOfPasses && numberOfPasses !== \"1\") {\n displayPasses = `/${numberOfPasses}P`;\n }\n\n return (\n <>\n {alias}x{numberOfPlates}{displayPasses}\n >\n );\n};\n\nDisplayNameCellRenderer.propTypes = {\n alias: PropTypes.string.isRequired,\n numberOfPlates: PropTypes.string.isRequired,\n numberOfPasses: PropTypes.string.isRequired,\n};\n\nexport default React.memo(DisplayNameCellRenderer);\n","import React from \"react\";\nimport DisplayNameCellRenderer from \"./DisplayNameCellRenderer\";\n\nconst getDisplayNameCellRenderer = (rowData) => {\n return (\n \n );\n};\n\nexport default getDisplayNameCellRenderer;\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport './calculation-result.scss';\nimport CalculationResultDetail from './CalculationResultDetails';\nimport useCustomer from \"../../common/Customization/CustomerContext/useCustomer\";\nimport DataGrid from \"../../common/DataGrid/DataGrid\";\nimport injectCalculationResultsExpanderContent from \"../../plugins/injectCalculationResultsExpanderContent\";\nimport injectCalculationResultsColumnDefinitionsPlugin from \"../../plugins/injectCalculationResultsColumnsDefinitionsPlugin\";\nimport {getUserColumnHeaderRenderer} from \"./Renderers/getUserColumnHeaderRenderer\";\nimport {getUserColumnCellRenderer} from \"./Renderers/getUserColumnCellRenderer\";\nimport {getPortSwitchCellRenderer} from \"./Renderers/getPortSwitchCellRenderer\";\nimport {useTranslation} from \"react-i18next\";\nimport injectCalculationResultRowFilter from \"../../plugins/injectCalculationResultRowFilter\";\nimport getDisplayNameCellRenderer from \"./Renderers/getDisplayNameCellRenderer\";\n// import {getPriceFactorCellRenderer} from \"./Renderers/getPriceFactorCellRenderer\";\n\nconst renderSelectedRow = (selectedExchanger, inputs, calculationType) => {\n let selectedRow = null;\n\n if (selectedExchanger && selectedExchanger.name) {\n selectedRow = ();\n }\n return selectedRow;\n};\n\nconst CalculationResult = ({// eslint-disable-line react/no-multi-comp\n response,\n inputs,\n selectedExchanger,\n calculationType,\n selectedItem,\n onItemChange\n}) => {\n const [customer] = useCustomer();\n const { t } = useTranslation();\n\n const mapPredefinedColumns = useCallback((exchangerResult) => {\n return {\n name: exchangerResult.name,\n customName: get(exchangerResult, \"customHeatExchanger.customName\", null),\n numberOfPlates: exchangerResult.outputValues[\"Plates\"].formattedValue,\n numberOfPasses: exchangerResult.outputValues[\"Passes\"].formattedValue,\n numberOfParallelUnits: exchangerResult.outputValues[\"ParallelUnits\"].formattedValue,\n pf: exchangerResult.pf,\n };\n }, []);\n\n// todo: perform cleanup and optimization\n const mapUserOutputColumns = useCallback((outputValues) => {\n const userColumnsData = {};\n response.calculationOutputColumns.forEach(x => {\n userColumnsData[`info${x.key}`] = outputValues[x.key];\n });\n return userColumnsData;\n }, [response.calculationOutputColumns]);\n\n // todo: perform cleanup and optimization\n const rows = useMemo(() => {\n if (get(response, 'exchangers', null) === null) return [];\n\n return response.exchangers.map(x => {\n return {\n guid: x.guid,\n modelId: x.modelId,\n ...mapPredefinedColumns(x),\n totalsInfo: x.totalsInfo,\n ...mapUserOutputColumns(x.outputValues),\n calcResult: x.calcResult,\n outputValues: x.outputValues,\n dimensionInfo: x.dimensionInfo,\n sketch: x.sketch,\n xpc: x.xpc,\n ciData: x.ciData,\n portSwitched: x.portSwitched,\n messages: x.messages,\n customHeatExchanger: x.customHeatExchanger\n };\n })\n .filter(injectCalculationResultRowFilter(customer.availablePlugins));\n }, [response, customer.availablePlugins, mapPredefinedColumns, mapUserOutputColumns]);\n\n const userColumnDefinitions = useMemo(() => {\n return (response.calculationOutputColumns || []).map((m, index) => {\n return {\n key: `info${m.key}`,\n order: index + 4,\n headerRenderer: () => getUserColumnHeaderRenderer(m.unitGroup, m.shortText, m.longText, m.defaultMetricUnit, m.defaultUSUnit),\n cellRenderer: (rowData) => getUserColumnCellRenderer(rowData[`info${m.key}`], m.defaultMetricUnit, m.defaultUSUnit),\n };\n });\n }, [response.calculationOutputColumns]);\n\n const userPluginColumnDefinitions = useMemo(() => {\n if (customer.availablePlugins) {\n return injectCalculationResultsColumnDefinitionsPlugin(customer.availablePlugins)\n .map(x => x())\n .flat();\n } else {\n return [];\n }\n },[customer.availablePlugins]);\n\n const predefinedColumnDefinitions = useMemo(() => {\n const allColumns = [\n { key: \"portSwitched\", order: 1, headerRenderer: () => \"\", cellRenderer: (rowData) => getPortSwitchCellRenderer(rowData.portSwitched, rowData.messages) },\n { key: \"numberOfParallelUnits\", order: 2, headerRenderer: () => \"No. Units\", cellRenderer: (rowData) => rowData.numberOfParallelUnits },\n { key: \"displayName\", order: 3, headerRenderer: () => t(\"HeatExchanger\"), cellRenderer: getDisplayNameCellRenderer },\n ...userColumnDefinitions,\n ...userPluginColumnDefinitions,\n // { key: \"pf\", headerRenderer: () => \"PF Rating\", cellRenderer: (rowData) => getPriceFactorCellRenderer(rowData.pf) },\n ];\n return sortBy(allColumns, x => {\n return x.order || Number.MAX_VALUE;\n });\n }, [t, userColumnDefinitions, userPluginColumnDefinitions]);\n\n const [expandedRows, setExpandedRows] = useState([]);\n\n const handleSelectedRowChanged = useCallback((selectedRow) => {\n if (expandedRows.find(x => x.guid === selectedRow.guid)) {\n setExpandedRows([...expandedRows.filter(x => x.guid !== selectedRow.guid)]);\n } else {\n setExpandedRows([...expandedRows, selectedRow]);\n }\n\n const exchanger = response.exchangers.find(x => x.guid === selectedRow.guid);\n onItemChange(calculationType, exchanger, null);\n }, [calculationType, expandedRows, onItemChange, response.exchangers]);\n\n useEffect(() => {\n const firstItem = get(response, \"exchangers[0]\", null);\n setExpandedRows([firstItem]);\n if (firstItem) {\n const firstSubItem = get(firstItem, 'customHeatExchanger.availableCombinations[0]', null);\n if (firstSubItem) {\n onItemChange(calculationType, firstItem, firstSubItem);\n }\n }\n },[calculationType, onItemChange, response]);\n\n const subTableRenderer = (rowData) => {\n if (customer.availablePlugins) {\n //todo make a typescript component to see the interface\n const plugins = injectCalculationResultsExpanderContent(customer.availablePlugins);\n const availableCombinations = get(rowData, \"customHeatExchanger.availableCombinations\", []);\n return plugins.map((Plugin, i) => {\n return (\n {\n const exchanger = response.exchangers.find(x => x.name === rowData.name);\n onItemChange(calculationType,exchanger, selectedItem);\n }} />\n );\n });\n } else {\n return null;\n }\n };\n\n if (get(response, 'exchangers', null) === null) return null;\n return (\n \n
\n \n
\n
\n {renderSelectedRow(selectedExchanger, inputs, calculationType)}\n
\n
\n );\n};\n\nCalculationResult.propTypes = {\n response: PropTypes.object.isRequired,\n inputs: PropTypes.object,\n selectedExchanger: PropTypes.object,\n calculationType: PropTypes.string,\n selectedItem: PropTypes.object,\n onItemChange: PropTypes.func.isRequired,\n};\n\nexport default React.memo(CalculationResult);\n","import getPluginComponent from \"./pluginRegister\";\nimport pluginTypes from \"./pluginTypes\";\n\nconst injectCalculationResultRowFilter = (availablePlugins) => {\n const allowedPlugins = [pluginTypes.VZHOstravaCustomResultsRowFilter];\n\n const plugin = availablePlugins.find(x => allowedPlugins.includes(x.pluginType));\n if (plugin) {\n return getPluginComponent(plugin.pluginType);\n } else {\n return () => true;\n }\n};\n\nexport default injectCalculationResultRowFilter;\n","import React from \"react\";\nimport UserDefinedColumnHeaderRenderer from \"./UserDefinedColumnHeaderRenderer\";\n\nexport function getUserColumnHeaderRenderer(unitGroup, shortText, longText, defaultMetricUnit, defaultUSUnit) {\n return ;\n}\n","import React from \"react\";\nimport UserDefinedColumnCellRenderer from \"./UserDefinedColumnCellRenderer\";\n\nexport function getUserColumnCellRenderer(sspValue, defaultMetricUnit, defaultUSUnit) {\n return ;\n}\n","import pluginTypes from \"./pluginTypes\";\nimport getPluginComponent from \"./pluginRegister\";\n\nconst injectCalculationResultsColumnDefinitionsPlugin = (availablePlugins) => {\n const allowedPlugins = [\n pluginTypes.TacoCustomResultsColumnDefinitions,\n pluginTypes.PriceFactorResultsColumnDefinition,\n pluginTypes.PARKERCustomResultsColumnDefinitionsPWO,\n pluginTypes.PARKERCustomResultsColumnDefinitionsOAW\n ];\n\n return availablePlugins\n .filter(x => allowedPlugins.includes(x.pluginType))\n .map(x => getPluginComponent(x.pluginType)) || null;\n};\n\nexport default injectCalculationResultsColumnDefinitionsPlugin;\n","import React from \"react\";\nimport PortSwitchAndMessagesCellRenderer from \"./PortSwitchAndMessagesCellRenderer\";\n\nexport function getPortSwitchCellRenderer(portSwitched, messages) {\n return ;\n}\n","import pluginTypes from \"./pluginTypes\";\nimport getPluginComponent from \"./pluginRegister\";\n\nconst injectCalculationResultsExpanderContent = (availablePlugins) => {\n const allowedPlugins = [pluginTypes.TacoCustomResultsExpanderContent, pluginTypes.VZHOstravaCustomResultsExpanderContent];\n\n return availablePlugins\n .filter(x => allowedPlugins.includes(x.pluginType))\n .map(x => getPluginComponent(x.pluginType)) || null;\n};\n\nexport default injectCalculationResultsExpanderContent;\n","import ResultMessagesColumnRenderer from \"./ResultMessagesColumnRenderer\";\nimport React from \"react\";\n\nconst infoMessagesFormatter = (cell, row) => {\n return ;\n};\n\nexport default infoMessagesFormatter;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport { UnitSystemAwareValue } from \"../TechnicalData/createDisplayObject\";\n\nconst SSPValueRenderer = ({ sspValue }) => {\n if (sspValue) {\n if (sspValue.unitGroup) {\n return ;\n } else {\n return sspValue.formattedValue;\n }\n } else {\n return null;\n }\n};\n\nSSPValueRenderer.propTypes = {\n sspValue: PropTypes.object\n};\n\nexport default React.memo(SSPValueRenderer);\n","import React from \"react\";\nimport SSPValueRenderer from \"./SSPValueRenderer\";\n\nconst sspValueFormatter = (column) => {\n if (column) {\n return ;\n } else {\n return null;\n }\n};\n\nexport default sspValueFormatter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Tooltip} from \"@material-ui/core\";\nimport {useUnitSystem} from \"../TechnicalData/useUnitConversion\";\n\nconst SSPValueHeaderRenderer = ({column}) => {\n const { getDefaultUnit } = useUnitSystem();\n\n const unitText = column.headerUnitGroup && getDefaultUnit(column.headerUnitGroup);\n const unitText1 = unitText && `[${unitText}]`;\n\n return (\n \n {`${column.headerShortText} ${unitText1}`}\n \n );\n};\n\nSSPValueHeaderRenderer.propTypes = {\n column: PropTypes.object\n};\n\nexport default React.memo(SSPValueHeaderRenderer);\n","import React from \"react\";\nimport SSPValueHeaderRenderer from \"./SSPValueHeaderRenderer\";\n\nconst sspValueHeaderFormatter = (column) => {\n return ;\n};\n\nexport default sspValueHeaderFormatter;\n","import React, {useCallback, useMemo } from \"react\";\nimport PropTypes from 'prop-types';\nimport BootstrapTable from 'react-bootstrap-table-next';\nimport {useUnitSystem} from \"./TechnicalData/useUnitConversion\";\nimport './calculation-result.scss';\nimport get from 'lodash/get';\nimport infoMessagesFormatter from './TableColumnFormatter/infoMessagesFormatter';\nimport sspValueFormatter from \"./TableColumnFormatter/sspValueFormatter\";\nimport sspValueHeaderFormatter from \"./TableColumnFormatter/sspValueHeaderFormatter\";\n\n// eslint-disable-next-line react/no-multi-comp\nconst ApplicationResultSubtable = ({\n applicationResult,\n calculationOutputColumns,\n selectedComponent,\n onSelectedComponentChange\n}) => {\n const { getDefaultUnit } = useUnitSystem();\n\n const sortFunc = useCallback((a, b, order) => {\n if (order === 'asc') return a.siValue - b.siValue;\n else return b.siValue - a.siValue;\n }, []);\n\n // todo: perform cleanup and optimization\n const userColumns = useMemo(() =>(calculationOutputColumns || []).map(m => {\n const unitText = m.unitGroup && getDefaultUnit(m.unitGroup);\n let columnText = null;\n if (unitText) {\n columnText = `${m.shortText} [${unitText}]`;\n } else {\n columnText = m.shortText;\n }\n\n return {\n dataField: `info${m.key}`,\n text: columnText,\n headerShortText: m.shortText,\n headerLongText: m.longText,\n headerUnitGroup: m.unitGroup,\n sort: true,\n sortFunc: sortFunc,\n headerAlign: \"left\",\n headerFormatter: sspValueHeaderFormatter,\n formatter: sspValueFormatter\n };\n }), [getDefaultUnit, calculationOutputColumns, sortFunc]);\n\n const mapUserOutputColumns = useCallback((info) => {\n const userColumnsData = {};\n calculationOutputColumns.forEach(x => {\n const va = info.find(y => y.name === x.key);\n userColumnsData[`info${x.key}`] = va;\n });\n return userColumnsData;\n }, [calculationOutputColumns]);\n\n const columns = [\n { dataField: \"portSwitched\", text: \"\", sort: false, headerAlign: \"left\", headerStyle: { width: \"75px\" }, formatter: infoMessagesFormatter },\n { dataField: \"name\", text: \"BPHE\" },\n ...userColumns\n ];\n\n const data = useMemo(() => {\n if (applicationResult) {\n return applicationResult.componentCalculationResults.map(x => {\n return {\n modelId: x.modelId,\n name: x.bphe,\n portSwitched: x.portSwitched,\n messages: x.messages,\n ...mapUserOutputColumns(x.calcResult),\n };\n });\n }\n return [];\n }, [applicationResult, mapUserOutputColumns]);\n\n const selectRow = {\n mode: 'radio',\n hideSelectColumn: true,\n clickToSelect: true,\n bgColor: 'lightGray',\n selected: [get(selectedComponent, 'modelId', null)],\n onSelect: (row, isSelect, rowIndex) => {\n onSelectedComponentChange(row.modelId, applicationResult.componentCalculationResults[rowIndex], applicationResult);\n }\n };\n\n\n return (\n \n \n
\n );\n};\n\nApplicationResultSubtable.propTypes = {\n applicationResult: PropTypes.object.isRequired,\n calculationOutputColumns: PropTypes.array.isRequired,\n selectedComponent: PropTypes.object,\n onSelectedComponentChange: PropTypes.func.isRequired\n};\n\nexport default ApplicationResultSubtable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n createDisplayObject,\n Wrapper as Wrap,\n UnitSystemAwareValue as Usav,\n UnitSystemAwareUnit as Usau,\n UnitSystemAwareUnits as Usaus\n} from './createDisplayObject';\nimport SingleHxDisplay from \"./SingleHxDisplay\";\nimport {useTranslation} from \"react-i18next\";\nimport Typography from \"@material-ui/core/Typography\";\n\nconst TDTwoStage = ({ applicationResult }) => {\n const { t } = useTranslation();\n const { t : tp } = useTranslation(\"printouts\");\n\n if (!applicationResult) {\n return null;\n }\n\n const info1 = {};\n applicationResult.componentCalculationResults[0].calcResult.forEach(item => { info1[item.name] = item; });\n const alias1 = `${applicationResult.componentCalculationResults[0].alias}x${info1.Plates.formattedValue}`;\n\n const info2 = {};\n applicationResult.componentCalculationResults[1].calcResult.forEach(item => { info2[item.name] = item; });\n const alias2 = `${applicationResult.componentCalculationResults[1].alias}x${info2.Plates_AfterStage.formattedValue}x${info2.Plates_PreStage.formattedValue}`;\n\n const pInfo1 = {\n duty: [\n createDisplayObject(info1.HeatLoad, null, , null, \"HeatLoad_2S\", ),\n createDisplayObject(info1.InTemp1, , null, , \"InTemp1\", ),\n createDisplayObject(info1.OutTemp1, , null, , \"OutTemp2\", ),\n createDisplayObject(info1.Flow1, , null, , \"Flow1\", ),\n ],\n hxInfo: [\n createDisplayObject(info1.HeatTransferArea, null, , null, \"HeatTransferArea_2S\", ),\n createDisplayObject(info1.DP1, , null, , \"DP1\", ),\n createDisplayObject(info1.Plates, null, info1.Plates.formattedValue, null, \"Plates\"),\n ]\n };\n const pInfo2 = {\n duty: [\n createDisplayObject(info2.HeatLoad, null, , null, null, ),\n createDisplayObject(info2.InTemp1, , null, , \"InTemp1\", ),\n createDisplayObject(info2.OutTemp1, , null, , \"OutTemp1\", ),\n createDisplayObject(info2.Flow1, , null, , \"Flow1\", ),\n createDisplayObject(info2.RadiatorFlowRate, , null, null, \"RadiatorFlowRate_2S\", ),\n createDisplayObject(info2.TotalFlowRate, , null, null, \"TotalFlowRate_2S\", ),\n ],\n hxInfo: [\n createDisplayObject(info2.HeatTransferArea, null, , null, \"HeatTransferArea_2S\", ),\n createDisplayObject(info2.DP1_AfterStage, /, null, /, \"DP1_2S_new\" ,,),\n createDisplayObject(info2.DP1_After_Winter, /, null, /, \"DP1_2S_Winter\", ),\n createDisplayObject(info2.Channels11_AfterStage, {info2.Channels11_AfterStage.formattedValue} + {info2.Channels11_PreStage.formattedValue}, null, {info2.Channels21_AfterStage.formattedValue} + {info2.Channels21_PreStage.formattedValue}, \"Channels11_2S\", null),\n createDisplayObject(info2.SummerReturnTemperature, null, , null, \"SummerReturnTemp_2S\", ),\n createDisplayObject(info2.WinterReturnTemperature, null, , null, \"WinterReturnTemp_2S\", ),\n ]\n };\n\n return (\n \n {`${t(\"SWEP.SSP.TwoStageApplication.Radiator.HeatExchangerCaption\")}: ${alias1}`}\n \n
\n {`${t(\"SWEP.SSP.TwoStageApplication.Two-Stage.HeatExchangerCaption\")}: ${alias2}`}\n \n {tp(\"Note2\")}
\n {tp(\"TwoStageFootNote2\")}\n
\n );\n};\n\nTDTwoStage.propTypes = {\n applicationResult: PropTypes.shape({\n componentCalculationResults: PropTypes.array\n }).isRequired\n};\n\nexport default TDTwoStage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport TDTwoStage from \"./TechnicalData/TDTwoStage\";\n\nconst ApplicationResultDetails = ({ applicationResult }) => {\n\n function a11yProps(index) {\n return {\n id: `scrollable-force-tab-${index}`,\n 'aria-controls': `scrollable-force-tabpanel-${index}`,\n };\n }\n\n const TabWrapper = (props) => { // eslint-disable-line\n const { children, value, index } = props; // eslint-disable-line\n return (\n \n {children}\n
\n );\n };\n\n return (\n \n \n \n \n \n \n \n
\n );\n};\n\nApplicationResultDetails.propTypes = {\n applicationResult: PropTypes.object.isRequired\n};\n\nexport default ApplicationResultDetails;\n","import React from \"react\";\nimport ProgressBar from 'components/ProgressBar/index';\n\nconst priceFactorFormatter = (cell, row) => {\n if (row.pf !== undefined && row.pf !== null) {\n return ;\n }\n};\n\nexport default priceFactorFormatter;\n","import React, { useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport BootstrapTable from 'react-bootstrap-table-next';\nimport ApplicationResultSubtable from \"./ApplicationResultSubtable\";\nimport {uuidv4} from \"../../../utils/uuid\";\nimport CalculationResultDetail from \"./CalculationResultDetails\";\nimport ApplicationResultDetails from \"./ApplicationResultDetails\";\nimport priceFactorFormatter from './TableColumnFormatter/priceFactorFormatter';\n\nconst renderSelectedRow = (inputs, selectedApplicationResultsCollection, selectedCalculationResultComponent) => {\n\n if (selectedCalculationResultComponent !== null) {\n const isTwoStage = selectedCalculationResultComponent.alias.includes(\"/2S\") ? \"TwoStage\" : \"\";\n return (\n \n \n
\n );\n } else if (selectedApplicationResultsCollection !== null) {\n return (\n \n );\n } else {\n return null;\n }\n};\n\n\n// eslint-disable-next-line react/no-multi-comp\nconst ApplicationResult = ({\n calculationType,\n inputs,\n response,\n onItemChange\n}) => {\n const [selectedUUID, setSelectedUUID] = useState(null);\n const [selectedCalculationResultComponent, setSelectedCalculationResultComponent] = useState(null);\n const [selectedApplicationResultsCollection, setApplicationResultsCollection] = useState(null);\n\n const columns = useMemo(() => {\n return [\n { dataField: \"bphe\", text: \"BPHE\" },\n { dataField: 'pf', text: \"PF\", sort: true, formatter: priceFactorFormatter }\n ];\n }, []);\n const data = useMemo(() => {\n if (response && response.applicationResultsCollection) {\n return response.applicationResultsCollection.map(x => {\n return {\n localId: uuidv4(),\n bphe: x.componentCalculationResults.map(y => `[${y.bphe}]`).join(\" - \"),\n pf: x.pf,\n };\n });\n }\n\n return [];\n }, [response]);\n\n const handleParentRowSelect = (row, isSelect, rowIndex) => {\n setSelectedUUID(row.localId);\n setSelectedCalculationResultComponent(null);\n setApplicationResultsCollection(response.applicationResultsCollection[rowIndex]);\n onItemChange(calculationType, response.applicationResultsCollection[rowIndex], null);\n };\n\n const handleSubRowSelect = useCallback((uuid, calculationResultComponent, applicationResult) => {\n setApplicationResultsCollection(applicationResult);\n setSelectedCalculationResultComponent(calculationResultComponent);\n onItemChange(calculationType, applicationResult, null);\n }, [calculationType, onItemChange]);\n\n const expandRow = useMemo(() => {\n return {\n // eslint-disable-next-line react/display-name,react/no-multi-comp\n renderer: (row, rowIndex) => {\n const data = response.applicationResultsCollection[rowIndex].componentCalculationResults;\n return ();\n },\n showExpandColumn: true,\n };\n }, [calculationType, handleSubRowSelect, response.applicationResultsCollection, response.calculationOutputColumns, selectedCalculationResultComponent]);\n\n const selectRow = {\n mode: 'radio',\n hideSelectColumn: true,\n clickToSelect: true,\n bgColor: 'lightGray',\n selected: [selectedUUID],\n onSelect: handleParentRowSelect\n };\n\n return (\n \n
\n \n
\n
\n {renderSelectedRow(inputs, selectedApplicationResultsCollection, selectedCalculationResultComponent, calculationType)}\n
\n
\n );\n};\n\nApplicationResult.propTypes = {\n calculationType: PropTypes.string.isRequired,\n inputs: PropTypes.object,\n response: PropTypes.shape({\n applicationResultsCollection: PropTypes.array.isRequired,\n calculationOutputColumns: PropTypes.array.isRequired,\n }).isRequired,\n selectedExchanger: PropTypes.object,\n selectedItem: PropTypes.object,\n onItemChange: PropTypes.func.isRequired,\n};\n\nexport default React.memo(ApplicationResult);\n","export function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {selectItem} from \"../../../actions/calculationActions\";\nimport {makeSelectCalculationResponse, makeSelectSelectedProduct} from \"selectors/calculationSelectors\";\nimport get from 'lodash/get';\nimport CalculationResult from \"./CalculationResult\";\nimport ApplicationResult from \"./ApplicationResult\";\nimport {\n makeSelectCalculationInputParams,\n makeSelectSelectedItem\n} from \"../../../selectors/calculationSelectors\";\nimport {useInjectSaga} from \"../../../utils/injectSaga\";\nimport saga from 'sagas/productSelectorSaga';\n\nconst ResultDispatcher = ({\n calculationType,\n}) => {\n useInjectSaga({ key: \"productSelector\", saga: saga });\n const response = useSelector(makeSelectCalculationResponse(calculationType));\n const inputs = useSelector(makeSelectCalculationInputParams(calculationType));\n const selectedExchanger = useSelector(makeSelectSelectedProduct(calculationType));\n const selectedItem = useSelector(makeSelectSelectedItem(calculationType));\n const dispatch = useDispatch();\n\n const handleItemChange = useCallback((calculationType, selectedExchanger, selectedItem) => {\n dispatch(selectItem(calculationType, selectedExchanger, selectedItem));\n }, [dispatch]);\n\n const calculationResponseType = get(response, 'calculationResponseType', null);\n switch (calculationResponseType) {\n case \"Calculation\":\n return ();\n case \"Application\":\n return ();\n default:\n return null;\n }\n};\n\nResultDispatcher.propTypes = {\n calculationType: PropTypes.string.isRequired,\n};\n\nexport default React.memo(ResultDispatcher);\n","import React, {useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport { matchPath} from 'react-router-dom';\nimport {connect, useSelector} from 'react-redux';\nimport {bindActionCreators, compose} from 'redux';\nimport LoadingPanel from 'components/LoadingPanel/index';\nimport LoadingIndicator from 'components/LoadingIndicator';\nimport CalculationInputs from 'components/calculation/inputForms/CalculationInputs';\nimport * as calculationActions from 'actions/calculationActions';\nimport { makeSelectCalculationProps, makeSelectIsCalculating, makeSelectIsCalcLoaded, makeSelectInputParamsValidity, makeSelectSelectedProduct } from 'selectors/calculationSelectors';\nimport injectSaga from 'utils/injectSaga';\nimport saga from 'sagas/calculationSaga';\nimport './calculations.scss';\nimport { AllCalculationTypes } from 'constants/calculationTypes';\nimport ResultDispatcher from \"../../components/calculation/result/ResultDispather\";\nimport get from 'lodash/get';\nimport useCustomer from \"../../components/common/Customization/CustomerContext/useCustomer\";\nimport BottomActionsBar from \"../../components/common/BottomActionsBar\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {useTranslation} from \"react-i18next\";\nimport {Fab} from \"@material-ui/core\";\nimport {makeSelectUserId} from \"../../selectors/userProfileSelectors\";\nimport ApplicationStepper from \"../../components/applicationWizard/ApplicationStepper\";\nimport SettingsButton from \"../../components/common/Settings/SettingsButton\";\nimport ApplicationNavigation from \"../../components/applicationWizard/ApplicationNavigation\";\nimport injectCustomLogo from '../../components/plugins/injectCustomLogo';\n\nconst useStyles = makeStyles(() => ({\n root: {\n margin: \"5px\",\n padding: \"5px\"\n },\n button: {\n //width: '100%'\n minWidth: \"250px\"\n },\n}));\n\nconst Calculation = ({\n calculationType,\n calcProps,\n actions,\n isCalculating,\n isFormValid,\n isCalcLoaded\n}) => {\n const userId = useSelector(makeSelectUserId());\n const [customer] = useCustomer();\n const { t } = useTranslation();\n const classes = useStyles();\n\n useEffect(() => {\n if(calculationType && userId && !calcProps) {\n actions.loadCalculationInputs(userId, calculationType, null);\n }\n }, [userId, calculationType, calcProps, actions]);\n\n const handleCalculate = useCallback(() => {\n actions.processCalculation(calculationType);\n }, [actions, calculationType]);\n\n if(!calculationType || !userId || !get(customer, 'userId', null)) {\n return ;\n }\n\n const customLogo = injectCustomLogo(customer.availablePlugins);\n\n return (\n <>\n \n \n \n \n
\n \n
\n
\n \n {calcProps && }\n \n
\n
\n\n \n \n {t(\"CalcForm_Calculate\")}\n \n \n \n >);\n};\n\nCalculation.propTypes = {\n location: PropTypes.object.isRequired,\n match: PropTypes.object.isRequired,\n actions: PropTypes.object.isRequired,\n calcProps: PropTypes.object,\n calculationType: PropTypes.string,\n isCalculating: PropTypes.bool,\n isFormValid: PropTypes.bool,\n isCalcLoaded: PropTypes.bool\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n actions: bindActionCreators(calculationActions, dispatch),\n };\n};\n\nconst mapStateToProps = (state, ownProps) => {\n let calculationType = '';\n AllCalculationTypes.forEach(item => {\n if(matchPath(ownProps.location.pathname, {path: `/${item}`, exact: false, strict: false})){\n calculationType = item;\n return;\n }\n });\n const getCalcProps = makeSelectCalculationProps(calculationType);\n const getIsCalculating = makeSelectIsCalculating(calculationType);\n return {\n calcProps: getCalcProps(state),\n isCalculating: getIsCalculating(state),\n calculationType: calculationType,\n isCalcLoaded: makeSelectIsCalcLoaded(calculationType)(state),\n isFormValid: makeSelectInputParamsValidity(calculationType)(state),\n selectedProduct: makeSelectSelectedProduct(calculationType)(state)\n };\n};\n\nconst withConnect = connect(mapStateToProps, mapDispatchToProps);\nconst withSaga = injectSaga({ key: \"calculations\", saga: saga });\n\nexport default compose(\n withSaga,\n withConnect\n)(Calculation);\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".inputs-border{border:none !important;border-radius:0px !important;border-bottom:1px solid #ced4da !important}.result-tbl-content{padding:0.3rem}.result-tbl-content .result-tbl{min-width:500px}.result-tbl-content .result-tbl .hx-name-col{word-wrap:break-word}.result-tbl-content .tbl-header-row{background-color:#B91D23 !important;color:#fff}.result-tbl-content .tbl-header-row th{font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-weight:400;line-height:1.5;text-align:center}.result-tbl-content .tbl-selected-row{background-color:#ff8489 !important;color:white;font-weight:600}.result-tbl-content .result-btns{float:left}.result-tbl-content .result-btns button{margin:4px}.result-tbl-content .product-btns{text-align:right;display:inline-block}.result-tbl-content .product-btns button{margin-left:4px;margin-bottom:4px}.result-tbl-content .dimensional-img-wrapper{min-width:260px;text-align:center}.result-tbl-content .dimensional-img-wrapper .dimensional-img{width:260px}.result-top{margin-bottom:10px}.he-label{color:#4e5152;font-weight:600;font-family:\\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif;margin:0px}.he-label.name{font-size:16px;font-weight:700;text-decoration:underline}.calc-result-data table{min-width:500px}.calc-result-data table th{padding:5px}.calc-result-data table td{padding:4px}.calc-result-data .td-tbl th{width:18%}.calc-result-data .td-tbl th:nth-child(1){width:30%}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/variables.scss\",\"webpack://./src/components/calculation/result/calculation-result.scss\"],\"names\":[],\"mappings\":\"AAOA,eACE,sBAAuB,CACvB,4BAA6B,CAC7B,0CAA2C,CCR7C,oBACI,cAAe,CADnB,gCAKQ,eAAgB,CALxB,6CAQU,oBAAqB,CAR/B,oCAaQ,mCAAwC,CACxC,UAAW,CAdnB,uCAgBY,sLAAuL,CACvL,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAnB9B,sCAuBQ,mCAAiD,CACjD,WAAW,CACX,eAAgB,CAzBxB,iCA6BQ,UAAU,CA7BlB,wCAgCY,UAAW,CAhCvB,kCAoCQ,gBAAiB,CACjB,oBAAqB,CArC7B,yCAuCY,eAAgB,CAChB,iBAAkB,CAxC9B,6CA4CI,eAAe,CACf,iBAAkB,CA7CtB,8DAgDM,WAAW,CACZ,YAKH,kBAAmB,CACpB,UAGG,aAAc,CACd,eAAgB,CAChB,uDAAwD,CAExD,UAAW,CACd,eAEC,cAAe,CACf,eAAgB,CAChB,yBAA0B,CAC3B,wBAIO,eAAgB,CAFxB,2BAKY,WAAY,CALxB,2BAQY,WAAY,CARxB,6BAcM,SAAS,CAdf,0CAgBQ,SAAU\",\"sourcesContent\":[\"$swep-color: #B91D23;\\n$tbl-selection-color: #ff8489;\\n$swep-font-family: \\\"Roboto\\\", \\\"Helvetica\\\", \\\"Arial\\\", sans-serif;\\n$swep-font-size: 14px;\\n$swep-font-color: black;\\n\\n$border: 1px solid #ced4da;\\n.inputs-border{\\n border: none !important;\\n border-radius: 0px !important;\\n border-bottom: 1px solid #ced4da !important;\\n}\\n\",\"@import \\\"styles/variables.scss\\\";\\n\\n.result-tbl-content{\\n padding: 0.3rem;\\n //overflow-x: auto;\\n\\n .result-tbl{\\n min-width: 500px;\\n\\n .hx-name-col{\\n word-wrap: break-word;\\n }\\n }\\n\\n .tbl-header-row{\\n background-color: $swep-color !important;\\n color: #fff;\\n th{\\n font-family: -apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";\\n font-weight: 400;\\n line-height: 1.5;\\n text-align: center;\\n }\\n }\\n .tbl-selected-row{\\n background-color: $tbl-selection-color !important;\\n color:white;\\n font-weight: 600;\\n }\\n\\n .result-btns {\\n float:left;\\n\\n button{\\n margin: 4px;\\n }\\n }\\n .product-btns{\\n text-align: right;\\n display: inline-block;\\n button{\\n margin-left: 4px;\\n margin-bottom: 4px;\\n }\\n }\\n .dimensional-img-wrapper{\\n min-width:260px;\\n text-align: center;\\n\\n .dimensional-img{\\n width:260px;\\n }\\n }\\n}\\n\\n.result-top{\\n margin-bottom: 10px;\\n}\\n\\n.he-label{\\n color: #4e5152;\\n font-weight: 600;\\n font-family: \\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif;\\n //font-size: 12px;\\n margin: 0px;\\n}\\n.he-label.name {\\n font-size: 16px;\\n font-weight: 700;\\n text-decoration: underline;\\n}\\n\\n.calc-result-data{\\n table {\\n min-width: 500px;\\n\\n th {\\n padding: 5px;\\n }\\n td {\\n padding: 4px;\\n }\\n }\\n\\n .td-tbl{\\n th {\\n width:18%;\\n &:nth-child(1) {\\n width: 30%;\\n }\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[9].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[9].use[2]!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[9].use[3]!./calculation-result.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;"],"sourceRoot":""}