{"version":3,"sources":["webpack://ssp-dthermx/./src/components/fluidSelector/FluidInputType.ts","webpack://ssp-dthermx/./src/utils/connectionMaterials.ts","webpack://ssp-dthermx/./src/utils/connectionTypes.ts","webpack://ssp-dthermx/./src/components/calculation/result/DimensionDataRow.js","webpack://ssp-dthermx/./src/components/calculation/result/DimensionalData.js","webpack://ssp-dthermx/./src/components/calculation/result/TechnicalData/createDisplayObject.js","webpack://ssp-dthermx/./src/components/calculation/result/TechnicalDataUni.js","webpack://ssp-dthermx/./src/components/calculation/result/TotalsDataRow.js","webpack://ssp-dthermx/./src/components/calculation/result/Totals.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/Port.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/PortInfoBox.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/HeatExchangerSide1.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/HeatExchangerSide2.js","webpack://ssp-dthermx/./src/components/productSelector/PortInfo/index.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/PortFlowConfiguration.js","webpack://ssp-dthermx/./src/components/itemDetails/ItemDetails.js","webpack://ssp-dthermx/./src/components/plugins/injectProductBasketArticlesPlugin.js","webpack://ssp-dthermx/./src/actions/productSelectorActions.js","webpack://ssp-dthermx/./src/api/articlesApi.js","webpack://ssp-dthermx/./src/api/connectionsApi.js","webpack://ssp-dthermx/./src/api/connectionsApiDataMapping.js","webpack://ssp-dthermx/./src/sagas/productSelectorSaga.js","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/styles.scss","webpack://ssp-dthermx/./src/components/productSelector/articles/portFlowConfiguration/styles.scss?e0b4"],"names":["FluidInputType","key","value","rowData","minValue","val","maxValue","unitGroup","unitType","unit","optionalVal","minValueOptional","maxValueOptional","tolerance","totalPositiveMm","percentSign","name","totalNegativeMm","sspValue","connect","state","sketches","loadItems","data","t","useTranslation","sketch","passes","calcResult","find","i","siValue","xpc","execution","className","src","alt","dimensionInfo","map","item","GetFluidDescription","fluid","selectedFluid","fluidInputType","tf","category","toUpperCase","isGas","inputValue","amount","concentrationProperties","concentrationType","includes","createDisplayFluid","availableFluidsSide1","selectedFluidSide1","fluidInputTypeSide1","availableFluidsSide2","selectedFluidSide2","fluidInputTypeSide2","fluidSide1","x","id","fluidId","isLeaf","fluidSide2","side1","middle","side2","createDisplayFlowTypeObject","createDisplayObject","translationName","createExtraDutyRequirements","bpheType","alias","portSwitched","toLowerCase","regEx","RegExp","isNw","isWn","isAsOrLas","isLh","isHl","isDual","startsWith","test","isMultiPass","result","push","Wrapper","children","Value","isUserInputValue","get","clsx","formattedValue","convert","unitGroupName","siAmount","targetUnitName","densities","UnitGroups","targetUnit","getUnit","convertFromSI","PropTypes","UnitSystemAwareValue","defaultMetricUnit","defaultUSUnit","useUnitSystem","format","unitSystem","defaultUserSelectedUnit","UnitSystem","title","Number","interactive","UnitSystemAwareUnit","getDefaultUnit","propTypes","UnitSystemAwareValue1","f","overrideDefaultMetricUnit","overrideDefaultUSUnit","convertToSI","UnitSystemAwareUnits","unitSide1","unitSide2","sspValue1","sspValue2","TDSinglePhase","Loadable","loader","loading","LoadingIndicator","TDSinglePhaseDual","TDEvaporator","TDEvaporatorDual","TDCondenser","TDCondenserDual","TDCascade","TDTwoStageHxDisplay","calculationType","inputs","SinglePhase","SinglePhaseDual","Evaporator","LiquidEvaporator","EvaporatorDual","EvaporatorHeatPump","Condenser","CondenserDual","CondenserHeatPump","v","Cascade","AirDryer","DistrictEnergy","dataRow","Math","max","dataRows","calculation","filter","sortNumber","sort","a","b","props","colorClassName","portData","liquidTemperatureLevel","classId","flowDirection","side","liquidTemperature","f1","portConfigurations","f2","f3","f4","f5","f6","p1","p2","p3","p4","p5","p6","PortInfo","portInfo","Object","entries","Tooltip","denomination","shortDescription","height","material","connectionMaterial","connectionMaterials","connType","connectionType","type","connectionTypes","defaultProps","PortFlowConfiguration","portConfiguration","memo","ItemDetails","availablePlugins","allowedPlugins","customer","useCustomer","useSelector","makeSelectSelectedArticlePorts","selectedItem","makeSelectSelectedItem","LoadingPanel","isLoading","pluginTypes","pluginType","getPluginComponent","Plugin","pluginConfiguration","executionCombination","Typography","variant","React","loadArticle","selectedItemId","numberOfPlates","ARTICLE_LOAD","loadPortInfo","selectedProduct","articleNumber","ARTICLES_PORT_CONFIGUATION_LOAD","loadPortInfoSuccess","ARTICLES_PORT_CONFIGUATION_LOAD_SUCCESS","userId","articleId","axios","method","url","process","Promise","resolve","reject","request","links","getPortFlowValuesRequestMap","connections","connectionCollection","connectionName","inDiameter","nnd","connectionXpc","mapConnection","searchValue","searchUnit","flowValues","counterCurrent","crossConnect","ciData","PortSwitched","dualTypes","getPortFlowValuesResponseMap","response","mapPortImageTypeToFlowDirection","portImageType","mapPortImageTypeLiquidTemperatureLevel","values","portName","imageType","temp","connectionArticleNumber","artNo","getPortInfo","getArticle","loadSelectedItem","productSelectorSaga","action","call","connectionsApi","getPortFlowValues","put","error","message","ARTICLES_PORT_CONFIGUATION_LOAD_ERROR","select","makeSelectUserId","articlesApi","searchArticle","article","ARTICLE_LOAD_SUCCESS","ARTICLE_LOAD_ERROR","selectedHeatExchanger","isNil","all","takeLatest","takeEvery","SELECT_ITEM","___CSS_LOADER_EXPORT___","module","api","content","__esModule","default","exported","locals","exports"],"mappings":"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","file":"313.d5bf779dda52e62fa680.js","sourcesContent":["enum FluidInputType {\n SinglePhase = \"SinglePhase\",\n TwoPhase = \"TwoPhase\",\n FluidProperties = \"FluidProperties\"\n}\n\nexport default FluidInputType;\n","const connectionMaterials = [\n { key: \"S4\", value: \"304\" },\n { key: \"SS\", value: \"316\" },\n { key: \"CS\", value: \"Carbon Steel\" },\n { key: \"NA\", value: \"\" },\n];\n\nexport default connectionMaterials;\n","const connectionTypes = [\n { key: \"AD\", value: \"Adapter\" },\n { key: \"C\", value: \"Connection plate\" },\n { key: \"CB\", value: \"Combination connection\" },\n { key: \"FL\", value: \"Flange connection\" },\n { key: \"OR\", value: \"Connection O-ring\" },\n { key: \"SD\", value: \"Solder\" },\n { key: \"SDC\", value: \"Solder (coned)\" },\n { key: \"TH\", value: \"Thread\" },\n { key: \"THU\", value: \"Thread UHP approved\" },\n { key: \"VC\", value: \"Victaulic\" },\n { key: \"WD\", value: \"Weld, Counter connection with welding neck\" },\n { key: \"NA\", value: \"\" },\n];\n\nexport default connectionTypes;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {\n Wrapper as Wrap,\n UnitSystemAwareValue1 as Usav,\n UnitSystemAwareUnit as Usau\n} from \"./TechnicalData/createDisplayObject\";\n\nconst DimensionDataRow = ({ rowData }) => {\n if(!rowData.minValue){\n return null;\n }\n\n let val = rowData.minValue === rowData.maxValue\n ? \n : to ;\n let optionalVal = '';\n if(rowData.minValueOptional !== null){\n optionalVal = rowData.minValueOptional === rowData.maxValueOptional\n ? \n : to ;\n val = {val} (opt. {optionalVal});\n }\n\n let tolerance = '';\n if(rowData.totalPositiveMm){\n\t\t\t\tlet percentSign = rowData.name === \"F\" ? \"%\" : \"\";\n if(rowData.totalPositiveMm === rowData.totalNegativeMm){\n\t\t\t\ttolerance = +/- {percentSign};\n } else {\n tolerance = + {percentSign} /- {percentSign};\n }\n\t\t}\n\n return (\n \n {rowData.name}\n \n {val}\n {tolerance}\n \n );\n};\n\nDimensionDataRow.propTypes = {\n rowData: PropTypes.object.isRequired\n};\n\nexport default DimensionDataRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport DimensionDataRow from \"./DimensionDataRow\";\nimport { useTranslation } from 'react-i18next';\n\nfunction DimensionalData({data, sketches}) {\n const { t } = useTranslation();\n\n if (!data) {\n return No data available;\n }\n\n let sketch = null;\n if (data.sketch) {\n let passes = data.calcResult.find(i => i.name === 'Passes').siValue;\n switch (data.sketch) {\n case \"200_sketch\":\n case \"400_sketch\":\n case \"30L2_sketch\":\n case \"B30L0x50_1P-SC-H_sketch\":\n case \"B60_sketch\":\n case \"E_sketch\":\n case \"F10T_sketch\":\n case \"F80_sketch\":\n case \"M_sketch_Tpressure\":\n case \"U_sketch\":\n if (data.xpc.execution === \"D\") {\n sketch = sketches[`${data.sketch}_${data.xpc.execution}.png`];\n } else {\n sketch = sketches[`${data.sketch}_${passes}P.png`];\n }\n break;\n case \"B_sketch\":\n if (data.xpc.execution === \"D\" || data.xpc.execution === \"2S\") {\n sketch = sketches[`${data.sketch}_${data.xpc.execution}.png`];\n } else if (data.xpc.execution === \"SP\") {\n sketch = sketches[`B_sketch_1P.png`];\n } else {\n sketch = sketches[`B_sketch_${passes}P.png`];\n }\n break;\n case \"B35TM2_sketch_190\":\n break;\n default:\n break;\n }\n if (!sketch) {\n sketch = sketches[`${data.sketch}.png`];\n }\n }\n\n return (\n
\n
\n
\n \"sketch\"/\n
\n
\n \n \n \n \n \n \n \n \n {data.dimensionInfo.map(item => {\n return ;\n })}\n
\n {t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")}{t(\"SWEP.SSP.Calculation_Dimensions.DataValue\")}{t(\"SWEP.SSP.Calculation_Dimensions.DataTolerance\")}
\n
\n
\n
\n
\n * Dimensions depend on the selected product.\n
\n * This is a schematic sketch.\n
\n
\n
\n );\n}\n\nDimensionalData.propTypes = {\n data: PropTypes.object,\n sketches: PropTypes.object\n};\n\nfunction mapStateToProps(state){\n return {\n sketches: state.loadItems.sketches,\n };\n}\n\nexport default connect(mapStateToProps)(DimensionalData);\n\n","import {convertToSI, useUnitSystem } from \"./useUnitConversion\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport AllUnitsTooltip from \"../AllUnitsTooltip\";\nimport React from \"react\";\nimport PropTypes from 'prop-types';\nimport {UnitGroups, UnitSystem} from \"utils/unitGroups.ts\";\nimport FluidInputType from \"../../../fluidSelector/FluidInputType.ts\";\nimport clsx from \"clsx\";\nimport get from 'lodash/get';\nimport {useTranslation} from \"react-i18next\";\n\n\nconst GetFluidDescription = (fluid, selectedFluid, fluidInputType) => {\n const { t: tf } = useTranslation('fluids');\n\n switch (fluidInputType) {\n case FluidInputType.TwoPhase:\n return tf(fluid.name);\n case FluidInputType.SinglePhase: {\n switch (fluid.category.toUpperCase()) {\n case \"LIQ\":\n case \"LIQ2\":\n return tf(fluid.name);\n case \"LIQVAP\": {\n if (selectedFluid.isGas === false) {\n return `${tf(fluid.name)} (liquid)`;\n } else {\n return `${tf(fluid.name)} (${selectedFluid.inputValue.amount} ${selectedFluid.inputValue.unit})`;\n }\n }\n case \"CONC\":\n if (fluid.concentrationProperties.concentrationType.includes(\"volume\")) {\n return `${tf(fluid.name)} ${selectedFluid.inputValue.amount} ${selectedFluid.inputValue.unit} vol`;\n } else {\n return `${tf(fluid.name)} ${selectedFluid.inputValue.amount} ${selectedFluid.inputValue.unit} mass`;\n }\n case \"VAP\":\n return `${tf(fluid.name)} (${selectedFluid.inputValue.amount} ${selectedFluid.inputValue.unit})`;\n }\n\n break;\n }\n default:\n throw `getFluidDescription for ${fluid.fluidInputType}`;\n }\n};\n\nconst createDisplayFluid = (name, availableFluidsSide1, selectedFluidSide1, fluidInputTypeSide1, availableFluidsSide2, selectedFluidSide2, fluidInputTypeSide2) => {\n const fluidSide1 = availableFluidsSide1.find(x => x.id === selectedFluidSide1.fluidId && x.isLeaf === true);\n const fluidSide2 = availableFluidsSide2.find(x => x.id === selectedFluidSide2.fluidId && x.isLeaf === true);\n\n return {\n name: name,\n unit: \"\",\n side1: GetFluidDescription(fluidSide1, selectedFluidSide1, fluidInputTypeSide1),\n middle: \"\",\n side2: GetFluidDescription(fluidSide2, selectedFluidSide2, fluidInputTypeSide2),\n };\n};\n\nconst createDisplayFlowTypeObject = (name, value) => {\n return {\n name: name,\n unit: \"\",\n side1: \"\",\n middle: value,\n side2: \"\"\n };\n};\n\nconst createDisplayObject = (item, side1, middle, side2, translationName, unit) => {\n return {\n name: translationName ? translationName: item.name,\n unit: unit ? unit : item.unit,\n side1,\n middle,\n side2\n };\n};\n\nconst createExtraDutyRequirements = (bpheType, alias, portSwitched, execution) => {\n bpheType = bpheType.toLowerCase();\n alias = alias.toLowerCase();\n const regEx = new RegExp(\"/d\");\n\n const isNw = bpheType.includes(\"n-w\") || alias.includes(\"n-w\");\n const isWn = bpheType.includes(\"w-n\") || alias.includes(\"w-n\");\n const isAsOrLas = bpheType.includes(\"las\") || bpheType.includes(\"as\") || alias.includes(\"las\") || alias.includes(\"as\");\n const isLh = bpheType.includes(\"l-h\") || alias.includes(\"l-h\");\n const isHl = bpheType.includes(\"h-l\") || alias.includes(\"h-l\");\n const isDual = bpheType.startsWith(\"db\") || bpheType.startsWith(\"dfx\") || bpheType.startsWith(\"dp\") || bpheType.startsWith(\"ds\") || bpheType.startsWith(\"dv\") || regEx.test(bpheType) || alias.startsWith(\"db\") || alias.startsWith(\"dfx\") || alias.startsWith(\"dp\") || alias.startsWith(\"ds\") || alias.startsWith(\"dv\") || regEx.test(alias);\n const isMultiPass = execution !== \"1P\";\n\n const result = [];\n\n if (isNw || isWn || isAsOrLas)\n {\n result.push({ name: \"Circuit\", unit: \"\", side1: isWn ? \"Outer\" : \"Inner\", middle: \"\", side2: !isWn ? \"Outer\" : \"Inner\" });\n result.push({ name: \"Channel\", unit: \"\", side1: isWn ? \"Wide\" : \"Narrow\", middle: \"\", side2: !isWn ? \"Wide\" : \"Narrow\" });\n }\n else if (isLh || isHl)\n {\n result.push({ name: \"Circuit\", unit: \"\", side1: isHl ? \"Inner\" : \"Outer\", middle: \"\", side2: isLh ? \"Inner\" : \"Outer\" });\n result.push({ name: \"Theta\", unit: \"\", side1: isHl ? \"High\" : \"Low\", middle: \"\", side2: isLh ? \"High\" : \"Low\" });\n }\n else if (isDual)\n {\n result.push({ name: \"Circuit\", unit: \"\", side1: \"Inner\", middle: \"\", side2: \"Outer\" });\n }\n else if (isMultiPass)\n {\n result.push({ name: \"Circuit\", unit: \"\", side1: \"Primary\", middle: \"\", side2: \"Secondary\" });\n }\n else\n {\n result.push({ name: \"Circuit\", unit: \"\", side1: !portSwitched ? \"Inner\" : \"Outer\", middle: \"\", side2: portSwitched ? \"Inner\" : \"Outer\" });\n }\n\n return result;\n};\n\nconst Wrapper = ({ children }) => {\n return (\n \n {children}\n \n );\n};\nWrapper.propTypes = {\n children: PropTypes.array\n};\n\n// eslint-disable-next-line react/no-multi-comp\nconst Value = ({ sspValue }) => {\n const isUserInputValue = get(sspValue, 'isUserInputValue', false);\n\n return (\n {sspValue.formattedValue}\n );\n};\nValue.propTypes = {\n sspValue: PropTypes.object.isRequired\n};\n\nconst convert = (unitGroupName, siAmount, targetUnitName, densities = null) => {\n const unitGroup = UnitGroups.getUnitGroup(unitGroupName);\n const targetUnit = unitGroup.getUnit(targetUnitName);\n return targetUnit.convertFromSI(siAmount, densities);\n};\n\n// eslint-disable-next-line react/no-multi-comp\nconst UnitSystemAwareQuantityInputValue = ({ quantityInput, densities }) => {\n const { convertFromSI, format, unitSystem } = useUnitSystem();\n\n const unitGroup = UnitGroups.getUnitGroup(quantityInput.unitGroup);\n const quantityUnit = unitGroup.getUnit(quantityInput.quantity.unit);\n const siValue = quantityUnit.convertToSI(quantityInput.quantity.amount, densities);\n\n let value = null;\n if (quantityInput.defaultUserSelectedUnit) {\n value = convert(quantityInput.unitGroup, siValue, quantityInput.defaultUserSelectedUnit, densities);\n } else if (quantityInput.defaultMetricUnit && unitSystem === UnitSystem.Metric) {\n value = convert(quantityInput.unitGroup, siValue, quantityInput.defaultMetricUnit, densities);\n } else if (quantityInput.defaultUSUnit && unitSystem === UnitSystem.US) {\n value = convert(quantityInput.unitGroup, siValue, quantityInput.defaultUSUnit, densities);\n } else {\n value = convertFromSI(quantityInput.unitGroup, siValue, densities);\n }\n\n const formattedValue = format(quantityInput.unitGroup, value);\n\n return (\n } interactive={true} >\n {formattedValue}\n \n );\n};\n\nUnitSystemAwareQuantityInputValue.propTypes = {\n quantityInput: PropTypes.object.isRequired,\n densities: PropTypes.object\n};\n\nconst UnitSystemAwareQuantityInputUnit = ({ quantityInput }) => {// eslint-disable-line react/no-multi-comp\n const { getDefaultUnit, unitSystem } = useUnitSystem();\n\n if (quantityInput.defaultUserSelectedUnit) {\n return quantityInput.defaultUserSelectedUnit;\n } if (quantityInput.defaultMetricUnit && unitSystem === UnitSystem.Metric) {\n return quantityInput.defaultMetricUnit;\n } else if (quantityInput.defaultUSUnit && unitSystem === UnitSystem.US) {\n return quantityInput.defaultUSUnit;\n } else {\n return getDefaultUnit(quantityInput.unitGroup);\n }\n};\n\nUnitSystemAwareQuantityInputUnit.propTypes = {\n quantityInput: PropTypes.object.isRequired\n};\n\n\nconst UnitSystemAwareValue = ({ sspValue, defaultMetricUnit, defaultUSUnit }) => {// eslint-disable-line react/no-multi-comp\n const { convertFromSI, format, unitSystem } = useUnitSystem();\n\n let value = null;\n if (sspValue.defaultUserSelectedUnit) {\n value = convert(sspValue.unitGroup, sspValue.siValue, sspValue.defaultUserSelectedUnit, sspValue.densities);\n } else if (defaultMetricUnit && unitSystem === UnitSystem.Metric) {\n value = convert(sspValue.unitGroup, sspValue.siValue, defaultMetricUnit, sspValue.densities);\n } else if (defaultUSUnit && unitSystem === UnitSystem.US) {\n value = convert(sspValue.unitGroup, sspValue.siValue, defaultUSUnit, sspValue.densities);\n } else {\n value = convertFromSI(sspValue.unitGroup, sspValue.siValue, sspValue.densities);\n }\n\n const formattedValue = format(sspValue.unitGroup, value);\n const isUserInputValue = get(sspValue, 'isUserInputValue', false);\n\n return (\n } interactive={true} >\n {formattedValue}\n \n );\n};\nUnitSystemAwareValue.propTypes = {\n sspValue: PropTypes.object.isRequired,\n defaultMetricUnit: PropTypes.string,\n defaultUSUnit: PropTypes.string\n};\n\nconst UnitSystemAwareUnit = ({ sspValue, defaultMetricUnit, defaultUSUnit }) => {// eslint-disable-line react/no-multi-comp\n const { getDefaultUnit, unitSystem } = useUnitSystem();\n\n if (sspValue.defaultUserSelectedUnit) {\n return sspValue.defaultUserSelectedUnit;\n } if (defaultMetricUnit && unitSystem === UnitSystem.Metric) {\n return defaultMetricUnit;\n } else if (defaultUSUnit && unitSystem === UnitSystem.US) {\n return defaultUSUnit;\n } else {\n return getDefaultUnit(sspValue.unitGroup);\n }\n};\n\nUnitSystemAwareUnit.propTypes = {\n sspValue: PropTypes.object.isRequired,\n defaultMetricUnit: PropTypes.string,\n defaultUSUnit: PropTypes.string\n};\n\nconst UnitSystemAwareValue1 = ({ unitGroup, value, unit, densities = null, overrideDefaultMetricUnit = null, overrideDefaultUSUnit = null }) => {// eslint-disable-line react/no-multi-comp\n const { convertFromSI, format, unitSystem } = useUnitSystem();\n\n let v;\n let f;\n\n const siValue = convertToSI(unitGroup, value, unit, densities);\n\n if (overrideDefaultMetricUnit && unitSystem === UnitSystem.Metric) {\n v = convert(unitGroup, siValue, overrideDefaultMetricUnit, densities);\n } else if (overrideDefaultUSUnit && unitSystem === UnitSystem.US) {\n v = convert(unitGroup, siValue, overrideDefaultUSUnit, densities);\n } else {\n v = convertFromSI(unitGroup, siValue, densities);\n }\n\n f = format(unitGroup, v);\n\n return (\n }>\n {f}\n \n );\n};\nUnitSystemAwareValue1.propTypes = {\n unitGroup: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n unit: PropTypes.string.isRequired,\n densities: PropTypes.object,\n overrideDefaultMetricUnit: PropTypes.string,\n overrideDefaultUSUnit: PropTypes.string\n};\n\nconst UnitSystemAwareUnits = ({ sspValue1, sspValue2 }) => {// eslint-disable-line react/no-multi-comp\n const { getDefaultUnit } = useUnitSystem();\n\n let unitSide1 = '';\n let unitSide2 = '';\n if (sspValue1.defaultUserSelectedUnit) {\n unitSide1 = sspValue1.defaultUserSelectedUnit;\n } else {\n unitSide1 = getDefaultUnit(sspValue1.unitGroup);\n }\n\n if (sspValue2.defaultUserSelectedUnit) {\n unitSide2 = sspValue2.defaultUserSelectedUnit;\n } else {\n unitSide2 = getDefaultUnit(sspValue2.unitGroup);\n }\n\n if (unitSide1 === unitSide2) {\n return unitSide1;\n } else {\n return `${unitSide1} | ${unitSide2}`;\n }\n};\n\nUnitSystemAwareUnits.propTypes = {\n sspValue1: PropTypes.object.isRequired,\n sspValue2: PropTypes.object.isRequired\n};\n\nexport {\n createExtraDutyRequirements,\n createDisplayFlowTypeObject,\n createDisplayObject,\n createDisplayFluid,\n UnitSystemAwareQuantityInputValue,\n UnitSystemAwareQuantityInputUnit,\n UnitSystemAwareValue,\n UnitSystemAwareValue1,\n UnitSystemAwareUnit,\n UnitSystemAwareUnits,\n Wrapper,\n Value\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Loadable from 'react-loadable';\nimport LoadingIndicator from 'components/LoadingIndicator';\n\nconst TDSinglePhase = Loadable({\n loader: () => import(\"./TechnicalData/TDSinglePhase\"),\n loading: LoadingIndicator\n});\nconst TDSinglePhaseDual = Loadable({\n loader: () => import(\"./TechnicalData/TDSinglePhaseDual\"),\n loading: LoadingIndicator\n});\nconst TDEvaporator = Loadable({\n loader: () => import(\"./TechnicalData/TDEvaporator\"),\n loading: LoadingIndicator\n});\nconst TDEvaporatorDual = Loadable({\n loader: () => import(\"./TechnicalData/TDEvaporatorDual\"),\n loading: LoadingIndicator\n});\nconst TDCondenser = Loadable({\n loader: () => import(\"./TechnicalData/TDCondenser\"),\n loading: LoadingIndicator\n});\nconst TDCondenserDual = Loadable({\n loader: () => import(\"./TechnicalData/TDCondenserDual\"),\n loading: LoadingIndicator\n});\nconst TDCascade = Loadable({\n loader: () => import(\"./TechnicalData/TDCascade\"),\n loading: LoadingIndicator\n});\nconst TDTwoStageHxDisplay = Loadable({\n loader: () => import(\"./TechnicalData/TDTwoStageHxDisplay\"),\n loading: LoadingIndicator\n});\n\n//import TDSinglePhase from \"./TechnicalData/TDSinglePhase\";\n//import TDSinglePhaseDual from \"./TechnicalData/TDSinglePhaseDual\";\n//import TDEvaporator from \"./TechnicalData/TDEvaporator\";\n//import TDEvaporatorDual from \"./TechnicalData/TDEvaporatorDual\";\n//import TDCondenser from \"./TechnicalData/TDCondenser\";\n//import TDCondenserDual from \"./TechnicalData/TDCondenserDual\";\n//import TDCascade from \"./TechnicalData/TDCascade\";\n//import TDTwoStageHxDisplay from \"./TechnicalData/TDTwoStageHxDisplay\";\n\nimport {\n SinglePhase,\n SinglePhaseDual,\n Condenser,\n CondenserDual,\n CondenserHeatPump,\n Evaporator,\n EvaporatorDual,\n EvaporatorHeatPump,\n LiquidEvaporator,\n Cascade,\n AirDryer,\n DistrictEnergy\n} from 'constants/calculationTypes';\n\n\nconst TechnicalDataUni = ({ calculationType, data, inputs }) => {\n if(!data || !inputs){\n return null;\n }\n\n switch (calculationType.toLowerCase()) {\n case SinglePhase:\n return ;\n case SinglePhaseDual:\n return ;\n case Evaporator:\n case LiquidEvaporator:\n return ;\n case EvaporatorDual:\n return ;\n case EvaporatorHeatPump:\n return ;\n case Condenser:\n return ;\n case CondenserDual:\n return ;\n case CondenserHeatPump:\n return ;\n case Cascade:\n return ;\n case \"singlephasetwostage\": // todo: improve infrastructure\n return ;\n case AirDryer:\n return null; // todo: to be implemented\n case DistrictEnergy:\n return null; // todo: to be implemented\n default:\n return null;\n }\n};\n\nTechnicalDataUni.propTypes = {\n data: PropTypes.object,\n inputs: PropTypes.object,\n calculationType: PropTypes.string.isRequired\n};\n\nexport default TechnicalDataUni;\n","import React from 'react';\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from 'react-i18next';\nimport {\n Wrapper as Wrap,\n UnitSystemAwareValue1 as Usav,\n UnitSystemAwareUnit as Usau\n} from \"./TechnicalData/createDisplayObject\";\n\n\nconst TotalsDataRow = ({dataRow}) => {\n const { t } = useTranslation(\"printouts\");\n\n return (\n \n {t(dataRow.name)}\n \n {dataRow.minValue !== dataRow.maxValue\n ? - \n : {}\n }\n \n );\n};\n\nTotalsDataRow.propTypes = {\n dataRow: PropTypes.object.isRequired\n};\n\nexport default TotalsDataRow;\n","import React from 'react';\nimport PropTypes from \"prop-types\";\nimport TotalsDataRow from './TotalsDataRow';\nimport { useTranslation } from 'react-i18next';\n\nconst Totals = (data) => {\n const { t } = useTranslation();\n const d = [\"singlephase\", \"singlephasedual\", \"twostacks\"].includes(data.calculation) ? data.data.filter(x => x.name !== \"Totalweight\") : data.data.filter(x => x.name !== \"Totalweightempty\" && x.name !== \"Totalweightfilled\");\n //const dataRows = d.filter(x => x.name !== \"Totalweight\" && (x.minValue || x.maxValue)).map(x => {\n const dataRows = d\n .filter(x => !x.name.startsWith(\"NND\") && !x.name.startsWith(\"PortSize\"))\n .filter(x => x.minValue || x.maxValue).map(x => {\n let sortNumber = 100;\n if(x.name.startsWith('Total')){\n sortNumber = 1;\n } else if(x.name.startsWith('Hold')) {\n sortNumber = 2;\n } else if (x.name.startsWith('Carbon')){\n sortNumber = 101;\n }\n return {\n ...x,\n sortNumber\n };\n })\n .sort((a,b) => a.sortNumber - b.sortNumber)\n .map(x => );\n\n // console.log(data)\n\n return (\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n {dataRows}\n \n
{t(\"SWEP.SSP.Calculation_Dimensions.TOTALS\")}{t(\"SWEP.SSP.Calculation_Dimensions.DataUnit\")}{t(\"SWEP.SSP.Calculation_Dimensions.DataValue\")}
\n
\n
\n
\n
\n
\n *{t(\"WeightSelectedProduct\")}\n
\n
\n
\n );\n};\n\nTotals.propTypes = {\n data: PropTypes.array.isRequired,\n calculation: PropTypes.string.isRequired\n};\n\nexport default Totals;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './styles.scss';\n\nconst Port = (props) => {\n let colorClassName = null;\n switch(props.portData.liquidTemperatureLevel) {\n case \"VERY HOT\":\n colorClassName = \"veryHotLiquid\";\n break;\n case \"LESS HOT\":\n colorClassName = \"lessHotLiquid\";\n break;\n case \"VERY COLD\":\n colorClassName = \"veryColdLiquid\";\n break;\n case \"LESS COLD\":\n colorClassName = \"lessColdLiquid\";\n break;\n }\n \n return (\n \n {props.portData.flowDirection}\n \n );\n };\n\n Port.propTypes = {\n classId: PropTypes.string.isRequired,\n portData: PropTypes.shape({\n name: PropTypes.string,\n side: PropTypes.string,\n flowDirection: PropTypes.oneOf(['IN', 'OUT']),\n liquidTemperature: PropTypes.string,\n liquidTemperatureLevel: PropTypes.string,\n connectionArticleNumber: PropTypes.string\n })\n };\n\n export default Port;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport './styles.scss';\n\nconst PortInfoBox = (props) => {\n return (\n \n {props.portData.side}: {props.portData.liquidTemperature}\n {/*
*/}\n {/*{props.portData.name}: {props.portData.connectionArticleNumber}*/}\n
\n );\n };\n\n let portDataShape = PropTypes.shape({\n name: PropTypes.string.isRequired,\n side: PropTypes.string.isRequired,\n flowDirection: PropTypes.oneOf(['IN', 'OUT']).isRequired,\n liquidTemperature: PropTypes.string.isRequired,\n liquidTemperatureLevel: PropTypes.string.isRequired,\n connectionArticleNumber: PropTypes.string.isRequired\n });\n\n PortInfoBox.propTypes = {\n classId: PropTypes.string.isRequired,\n portData: portDataShape\n };\n\n export default PortInfoBox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Port from './Port';\nimport PortInfoBox from './PortInfoBox';\nimport './styles.scss';\n\nconst HeatExchangerSide1 = (props) => {\n let f1 = props.portConfigurations.find(x => x.name === \"F1\");\n let f2 = props.portConfigurations.find(x => x.name === \"F2\");\n let f3 = props.portConfigurations.find(x => x.name === \"F3\");\n let f4 = props.portConfigurations.find(x => x.name === \"F4\");\n let f5 = props.portConfigurations.find(x => x.name === \"F5\");\n let f6 = props.portConfigurations.find(x => x.name === \"F6\");\n return (\n
\n
\n {f1 &&\n \n \n \n \n }\n \n {f2 &&\n \n \n \n \n }\n \n {f3 &&\n \n \n \n \n }\n \n {f4 &&\n \n \n \n \n }\n \n {f5 &&\n \n \n \n \n }\n \n {f6 &&\n \n \n \n \n }\n \n Front side\n
\n
\n );\n };\n \n let portDataShape = PropTypes.shape({\n name: PropTypes.string.isRequired,\n side: PropTypes.string.isRequired,\n flowDirection: PropTypes.oneOf(['IN', 'OUT']).isRequired,\n liquidTemperature: PropTypes.string.isRequired,\n liquidTemperatureLevel: PropTypes.string.isRequired,\n connectionArticleNumber: PropTypes.string.isRequired\n });\n\n HeatExchangerSide1.propTypes = {\n portConfigurations: PropTypes.arrayOf(portDataShape).isRequired\n };\n\n export default HeatExchangerSide1;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Port from './Port';\nimport PortInfoBox from './PortInfoBox';\nimport './styles.scss';\n\nconst HeatExchangerSide2 = (props) => {\n let p1 = props.portConfigurations.find(x => x.name === \"P1\");\n let p2 = props.portConfigurations.find(x => x.name === \"P2\");\n let p3 = props.portConfigurations.find(x => x.name === \"P3\");\n let p4 = props.portConfigurations.find(x => x.name === \"P4\");\n let p5 = props.portConfigurations.find(x => x.name === \"P5\");\n let p6 = props.portConfigurations.find(x => x.name === \"P6\");\n\n return (\n
\n
\n {p1 &&\n \n \n \n \n }\n \n {p2 &&\n \n \n \n \n }\n\n {p3 &&\n \n \n \n \n }\n \n {p4 &&\n \n \n \n \n } \n \n {p5 && \n \n \n \n \n }\n \n {p6 &&\n \n \n \n \n }\n\n Back side\n
\n
\n );\n};\n\n let portDataShape = PropTypes.shape({\n name: PropTypes.string.isRequired,\n side: PropTypes.string.isRequired,\n flowDirection: PropTypes.oneOf(['IN', 'OUT']).isRequired,\n liquidTemperature: PropTypes.string.isRequired,\n liquidTemperatureLevel: PropTypes.string.isRequired,\n connectionArticleNumber: PropTypes.string.isRequired\n });\n\n HeatExchangerSide2.propTypes = {\n portConfigurations: PropTypes.arrayOf(portDataShape).isRequired\n };\n\n export default HeatExchangerSide2;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport connectionTypes from \"utils/connectionTypes.ts\";\nimport connectionMaterials from \"utils/connectionMaterials.ts\";\n\nconst mapMaterial = (material) => {\n const connectionMaterial = connectionMaterials.find(x => x.key === material.toUpperCase());\n if (connectionMaterial) {\n return connectionMaterial.value;\n } else {\n return material;\n }\n};\n\nconst mapConnectionType = (connType) => {\n const connectionType = connectionTypes.find(x => x.key === connType.toUpperCase());\n if (connectionType) {\n return connectionType.value;\n } else {\n return connType;\n }\n};\n\nconst PortInfo = ({portInfo}) => {\n return (\n \n \n \n \n {Object.entries(portInfo).map(([x,v]) => v && )}\n \n \n \n {/**/}\n {/* */}\n {/* {Object.entries(portInfo).map(([key, value]) => value && ())}*/}\n {/**/}\n \n \n \n \n \n {Object.entries(portInfo).map(([key, value]) => value && ())}\n \n \n \n {Object.entries(portInfo).map(([key, value]) => value && ())}\n \n \n \n {Object.entries(portInfo).map(([key, value]) => value && ())}\n \n {/**/}\n {/* */}\n {/* {Object.entries(portInfo).map(([key, value]) => value && ())}*/}\n {/**/}\n {/**/}\n {/* */}\n {/* {Object.entries(portInfo).map(([key, value]) => value && ())}*/}\n {/**/}\n \n \n {Object.entries(portInfo).map(([key, value]) => value && ())}\n \n {/**/}\n {/* */}\n {/* {Object.entries(portInfo).map(([key, value]) => value && ())}*/}\n {/**/}\n \n
Port info{x.toUpperCase()}
Art. No.{value.articleNumber}
Connection info
Denomination{value.shortDescription}
Height (mm){value.height}
Material{mapMaterial(value.material)}
In-Diameter{value.inDiameter}
NND (mm){value.nnd}
Type{value.type}
Subtype{value.subtype}
\n );\n};\n\nPortInfo.defaultProps = {\n portInfo: {}\n};\n\nPortInfo.propTypes = {\n portInfo: PropTypes.object.isRequired\n};\n\nexport default PortInfo;\n","import React, {memo} from 'react';\nimport PropTypes from 'prop-types';\nimport HeatExchangerSide1 from './HeatExchangerSide1';\nimport HeatExchangerSide2 from './HeatExchangerSide2';\nimport PortInfo from \"../../PortInfo/index\";\nimport './styles.scss';\n\nconst PortFlowConfiguration = ({\n portConfiguration,\n portInfo\n}) => {\n\n return (\n
\n
\n \n \n
\n
\n \n
\n
\n );\n};\n\nPortFlowConfiguration.propTypes = {\n portConfiguration: PropTypes.object.isRequired,\n portInfo: PropTypes.object.isRequired\n};\n\nexport default memo(PortFlowConfiguration);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport PortFlowConfiguration from \"../productSelector/articles/portFlowConfiguration/PortFlowConfiguration\";\nimport useCustomer from \"../common/Customization/CustomerContext/useCustomer\";\nimport injectProductBasketArticlesPlugin from \"../plugins/injectProductBasketArticlesPlugin\";\nimport {useSelector} from \"react-redux\";\nimport {\n makeSelectSelectedArticlePorts,\n makeSelectSelectedItem\n} from \"../../selectors/calculationSelectors\";\nimport LoadingPanel from \"../LoadingPanel\";\nimport {Typography} from \"@material-ui/core\";\n\nconst ItemDetails = ({ calculationType }) => {\n const [customer] = useCustomer();\n\n const {loading, portInfo, portConfiguration} = useSelector(makeSelectSelectedArticlePorts(calculationType));\n const selectedItem = useSelector(makeSelectSelectedItem(calculationType));\n\n const renderCustomizedPlugins = () => {\n if (selectedItem && customer.availablePlugins) {\n const plugins = injectProductBasketArticlesPlugin(customer.availablePlugins);\n return plugins.map((Plugin, i) => );\n } else {\n return (\n Please select item to see details\n );\n }\n };\n\n return (\n \n
\n {portConfiguration && portInfo && }\n {renderCustomizedPlugins()}\n
\n
\n );\n};\n\nItemDetails.propTypes = {\n calculationType: PropTypes.string.isRequired\n};\n\n\nexport default React.memo(ItemDetails);\n","import pluginTypes from \"./pluginTypes\";\nimport getPluginComponent from \"./pluginRegister\";\n\nconst injectProductBasketArticlesPlugin = (availablePlugins) => {\n const allowedPlugins = [pluginTypes.TacoCustomProperties];\n\n return availablePlugins\n .filter(x => allowedPlugins.includes(x.pluginType))\n .map(x => getPluginComponent(x.pluginType)) || null;\n};\n\nexport default injectProductBasketArticlesPlugin;\n","import {\n ARTICLE_LOAD,\n ARTICLE_LOAD_SUCCESS,\n ARTICLE_LOAD_ERROR,\n ARTICLES_PORT_CONFIGUATION_LOAD,\n ARTICLES_PORT_CONFIGUATION_LOAD_SUCCESS,\n ARTICLES_PORT_CONFIGUATION_LOAD_ERROR,\n ARTICLES_CHANGE_SELECTION\n} from 'constants/actionTypes';\n\n\nexport function loadArticle(calculationType, selectedItemId, numberOfPlates) {\n return {\n type: ARTICLE_LOAD,\n calculationType: calculationType,\n selectedItemId: selectedItemId,\n numberOfPlates: numberOfPlates,\n };\n}\n\nexport function loadArticleSuccess(calculationType, article) {\n return {\n type: ARTICLE_LOAD_SUCCESS,\n calculationType: calculationType,\n article: article\n };\n}\n\nexport function loadArticleError(error) {\n return {\n type: ARTICLE_LOAD_ERROR,\n error: error\n };\n}\n\nexport function loadPortInfo(calculationType, selectedProduct, articleNumber) {\n return {\n type: ARTICLES_PORT_CONFIGUATION_LOAD,\n calculationType: calculationType,\n selectedProduct: selectedProduct,\n articleNumber: articleNumber\n };\n}\n\nexport function loadPortInfoSuccess(calculationType, articleNumber, portInfo, portConfiguration) {\n return {\n type: ARTICLES_PORT_CONFIGUATION_LOAD_SUCCESS,\n calculationType: calculationType,\n articleNumber: articleNumber,\n portInfo: portInfo,\n portConfiguration: portConfiguration\n };\n}\n\nexport function loadPortInfoError(error) {\n return {\n type: ARTICLES_PORT_CONFIGUATION_LOAD_ERROR,\n error: error\n };\n}\n\nexport function changeSelectedArticle(article) {\n return {\n type: ARTICLES_CHANGE_SELECTION,\n article: article\n };\n}\n","import axios from 'axios';\n\nclass ArticlesApi {\n static searchArticle(userId, articleId, numberOfPlates) {\n if(!userId || !articleId || !numberOfPlates){\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n\n return axios({\n method: 'POST',\n url: `${process.env.API}/articles/searchOne`,\n data: {\n userId: userId,\n articleId: articleId,\n numberOfPlates: numberOfPlates\n }\n });\n }\n}\n\nexport default ArticlesApi;\n","import axios from 'axios';\nimport * as links from 'constants/links';\n\nclass ConnectionsApi {\n static getPortInfo(request){\n if(!request){\n return new Promise((resolve, reject) => {\n reject('ECA03: Request validation error');\n });\n }\n return axios({ method: 'POST',\n url: `${process.env.API}${links.CONNECTIONS_GETPORTINFO}${request}`\n });\n }\n\n static getPortFlowValues(request) {\n if(!request){\n return new Promise((resolve, reject) => {\n reject('ECA04: Request validation error');\n });\n }\n return axios({ method: 'POST',\n url: `${process.env.API}/connections/portFlowValues`,\n data: request\n });\n }\n\n}\n\nexport default ConnectionsApi;\n","export function getPortFlowValuesRequestMap(connections, selectedProduct, calculationType) {\n let mapConnection = (x) => {\n return {\n connectionName: x.connectionName,\n articleNumber: x.articleNumber,\n material: x.material,\n shortDescription: x.shortDescription,\n height: x.height,\n denomination: x.denomination,\n inDiameter: x.inDiameter,\n nnd: x.nnd,\n connectionXpc: x.connectionXpc\n };\n };\n\n let mapConnectionOrDefault = (x) => {\n let key = x[0];\n let value = x[1];\n\n if (value) {\n return mapConnection(value);\n } else {\n return {\n connectionName: key.toUpperCase(),\n articleNumber: \"\",\n material: \"\",\n shortDescription: \"\",\n height: \"\",\n denomination: \"\",\n inDiameter: \"\",\n nnd: \"\",\n connectionXpc: \"\"\n };\n }\n };\n\n let connectionCollection = Object.entries(connections).map(mapConnectionOrDefault);\n\n\n let searchValue = (name) => {\n let sspValue = selectedProduct.calcResult.find(x => x.name === name);\n if (sspValue) {\n return sspValue.formattedValue;\n } else {\n return null;\n }\n };\n\n let searchUnit = (name) => {\n let sspValue = selectedProduct.calcResult.find(x => x.name === name);\n if (sspValue) {\n return sspValue.unit;\n } else {\n return null;\n }\n };\n\n let flowValues = {\n \"side1InletTemp_1A\": searchValue(\"InTemp1_1a\"),\n \"side1InletTemp_1B\": searchValue(\"InTemp1_1b\"),\n \"side1OutletTemp_1A\": searchValue(\"OutTemp1_1a\"),\n \"side1OutletTemp_1B\": searchValue(\"OutTemp1_1b\"),\n \"side1InletTemp\": searchValue(\"InTemp1\"),\n \"side2InletTemp\": searchValue(\"InTemp2\"),\n \"side1OutletTemp\": searchValue(\"OutTemp1\"),\n \"side2OutletTemp\": searchValue(\"OutTemp2\"),\n \"side1InletUnit_1A\": searchUnit(\"InTemp1_1a\"),\n \"side1InletUnit_1B\": searchUnit(\"InTemp1_1b\"),\n \"side1OutletUnit_1A\": searchUnit(\"OutTemp1_1a\"),\n \"side1OutletUnit_1B\": searchUnit(\"OutTemp1_1b\"),\n \"side1InletUnit\": searchUnit(\"InTemp1\"),\n \"side2InletUnit\": searchUnit(\"InTemp2\"),\n \"side1OutletUnit\": searchUnit(\"OutTemp1\"),\n \"side2OutletUnit\": searchUnit(\"OutTemp2\")\n };\n\n let data = {\n \"portConfig\": {\n \"connections\": connectionCollection,\n \"bpheName\": selectedProduct.name,\n \"calculationType\": calculationType,\n \"execution\": selectedProduct.xpc.execution,\n \"counterCurrent\": selectedProduct.counterCurrent,\n \"crossConnected\": selectedProduct.crossConnect,\n \"portSwitch\": selectedProduct.ciData.PortSwitched,\n \"dualType\": selectedProduct.dualTypes ? \"TrueDual\" : \"None\"\n },\n \"flowValues\": flowValues\n };\n return data;\n}\n\nexport function getPortFlowValuesResponseMap(response) {\n let mapPortImageTypeToFlowDirection = (portImageType) => {\n switch (portImageType) {\n case \"notApplicable\":\n return;\n case \"portNone\":\n return;\n case \"portRedIn\":\n return \"IN\";\n case \"portRedOut\":\n return \"OUT\";\n case \"portBlueIn\":\n return \"IN\";\n case \"portBlueOut\":\n return \"OUT\";\n }\n };\n\n let mapPortImageTypeLiquidTemperatureLevel = (portImageType) => {\n switch (portImageType) {\n case \"notApplicable\":\n return;\n case \"portNone\":\n return;\n case \"portRedIn\":\n return \"VERY HOT\";\n case \"portRedOut\":\n return \"LESS HOT\";\n case \"portBlueIn\":\n return \"VERY COLD\";\n case \"portBlueOut\":\n return \"LESS COLD\";\n }\n };\n\n let mapToConnection = (value) => {\n return {\n name: value.portName,\n side: value.side,\n flowDirection: mapPortImageTypeToFlowDirection(value.imageType),\n liquidTemperature: value.temp + \" \" + value.unit,\n liquidTemperatureLevel: mapPortImageTypeLiquidTemperatureLevel(value.imageType),\n connectionArticleNumber: value.artNo,\n };\n };\n\n if (response) {\n return Object.values(response.portConfiguration).filter(x => x).map(mapToConnection);\n }\n}\n","import { all, put, call, takeLatest, takeEvery, select } from 'redux-saga/effects';\nimport {\n loadArticleSuccess,\n loadArticleError,\n loadPortInfoSuccess,\n loadPortInfoError,\n} from 'actions/productSelectorActions';\nimport {\n ARTICLE_LOAD,\n ARTICLES_PORT_CONFIGUATION_LOAD,\n SELECT_ITEM\n} from 'constants/actionTypes';\n\nimport articlesApi from 'api/articlesApi';\nimport connectionsApi from 'api/connectionsApi';\nimport { getPortFlowValuesRequestMap, getPortFlowValuesResponseMap } from 'api/connectionsApiDataMapping';\nimport {makeSelectUserId} from \"../selectors/userProfileSelectors\";\nimport isNil from 'lodash/isNil';\nimport {loadArticle, loadPortInfo} from \"../actions/productSelectorActions\";\n\nexport function* getPortInfo(action) {\n try {\n const portInfo = yield call(connectionsApi.getPortInfo, action.articleNumber);\n const request = yield call(getPortFlowValuesRequestMap, portInfo.data, action.selectedProduct, action.calculationType);\n const response = yield call(connectionsApi.getPortFlowValues, request);\n const portConfiguration = yield call(getPortFlowValuesResponseMap, response.data);\n yield put(loadPortInfoSuccess(action.calculationType, action.articleNumber, portInfo.data, portConfiguration));\n } catch (e) {\n yield put(loadPortInfoError(e.message));\n }\n}\n\nexport function* getArticle(action) {\n try {\n const userId = yield select(makeSelectUserId());\n const response = yield call(articlesApi.searchArticle, userId, action.selectedItemId, action.numberOfPlates);\n yield put(loadArticleSuccess(action.calculationType, response.data));\n } catch (e) {\n yield put(loadArticleError(e.message));\n }\n}\n\nexport function* loadSelectedItem(action) {\n const calculationType = action.calculationType;\n const selectedHeatExchanger = action.selectedHeatExchanger;\n const selectedItem = action.selectedItem;\n if (!isNil(selectedHeatExchanger) && !isNil(selectedItem)) {\n yield put(loadArticle(calculationType, selectedItem.id, selectedItem.numberOfPlates));\n yield put(loadPortInfo(calculationType, selectedHeatExchanger, selectedItem.id+\"-\"));\n }\n}\n\nexport default function* productSelectorSaga() {\n yield all([\n takeLatest(ARTICLE_LOAD, getArticle),\n takeEvery(ARTICLES_PORT_CONFIGUATION_LOAD, getPortInfo),\n takeLatest(SELECT_ITEM, loadSelectedItem)\n ]);\n}\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, \".circle{display:inline-block;background:black;width:35px;height:35px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;border:3px solid #5f5f64}@-webkit-keyframes example{from{border-color:#5f5f64}to{border-color:black}}@keyframes example{from{border-color:#5f5f64}to{border-color:black}}.circle:hover{-webkit-animation-name:example;animation-name:example;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.veryHotLiquid{background-color:red}.lessHotLiquid{background-color:lightcoral}.veryColdLiquid{background-color:blue}.lessColdLiquid{background-color:lightblue}.sideText{position:absolute;bottom:0%;left:50%;margin-right:-50%;transform:translate(-50%, -100%);font-family:Arial, Helvetica, sans-serif, cursive;font-weight:bolder;font-size:14px}.portText{position:absolute;top:50%;left:50%;margin-right:-50%;transform:translate(-50%, -50%);color:white;font-family:Arial, Helvetica, sans-serif, cursive;font-weight:bolder;font-size:12px}.heatExchanger{position:relative;display:inline-block;margin-right:5px;border-radius:10%;border:2px solid #5f5f64;width:175px;height:240px;background-color:lightgray;background-image:linear-gradient(0 0, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.2) 37%, rgba(255,255,255,0.8) 45%, rgba(255,255,255,0) 50%);background-size:250% 250%, 100% 100%;transition:background-position 0s ease;background-repeat:no-repeat;background-position:-50% -50%, 0 0}.heatExchanger:hover{background-position:0 0, 0 0;transition-duration:0.5s}#f1{position:absolute;top:3%;left:3%}#f2{position:absolute;top:3%;right:3%}#f3{position:absolute;bottom:3%;left:3%}#f4{position:absolute;bottom:3%;right:3%}#f5{position:absolute;bottom:0%;right:50%;left:50%;transform:translate(-50%, -100%)}#f6{position:absolute;top:3%;left:50%;right:50%;transform:translate(-50%, 100%)}#p1{position:absolute;top:3%;right:3%}#p2{position:absolute;top:3%;left:3%}#p3{position:absolute;bottom:3%;right:3%}#p4{position:absolute;bottom:3%;left:3%}#p5{position:absolute;bottom:0%;right:50%;left:50%;transform:translate(-50%, -100%)}#p6{position:absolute;top:3%;left:50%;right:50%;transform:translate(-50%, 100%)}.portInfoBox{display:inline-block;white-space:nowrap;font-size:12px;font-family:Arial, Helvetica, sans-serif, cursive}#f1Info{position:absolute;top:18%;left:3%}#f2Info{position:absolute;top:18%;right:3%}#f3Info{position:absolute;bottom:18%;left:3%}#f4Info{position:absolute;bottom:18%;right:3%}#f5Info{position:absolute;top:65%;left:50%;margin-right:50%;transform:translate(-50%, 0%)}#f6Info{position:absolute;bottom:70%;left:50%;margin-right:50%;transform:translate(-50%, 100%)}#p1Info{position:absolute;top:18%;right:3%}#p2Info{position:absolute;top:18%;left:3%}#p3Info{position:absolute;bottom:18%;right:3%}#p4Info{position:absolute;bottom:18%;left:3%}#p5Info{position:absolute;top:65%;left:50%;margin-right:50%;transform:translate(-50%, 0%)}#p6Info{position:absolute;bottom:70%;left:50%;margin-right:50%;transform:translate(-50%, 100%)}.ci-title{padding-right:3px;font-size:17px;font-weight:600}.ci-table tr{pointer-events:none}.ci-table th{font-style:normal}.ci-table td{border-top:0px;font-size:12px}.ci-table .even-row{background-color:#d7d7d7}.ci-table .ci-alert{margin-bottom:1px;padding:0}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/productSelector/articles/portFlowConfiguration/styles.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".circle {\\n display: inline-block;\\n background: black;\\n width: 35px;\\n height: 35px;\\n border-radius: 50%;\\n -moz-border-radius: 50%;\\n -webkit-border-radius: 50%;\\n border: 3px solid #5f5f64;\\n}\\n\\n@keyframes example {\\n from { border-color: #5f5f64; }\\n to { border-color: black }\\n}\\n.circle:hover {\\n animation-name: example;\\n animation-duration: 2s;\\n animation-direction: alternate;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n}\\n\\n.veryHotLiquid { background-color: red; }\\n\\n.lessHotLiquid { background-color: lightcoral; }\\n\\n.veryColdLiquid { background-color: blue; }\\n\\n.lessColdLiquid { background-color: lightblue; }\\n\\n.sideText {\\n position: absolute;\\n bottom: 0%;\\n left: 50%;\\n margin-right: -50%;\\n transform: translate(-50%, -100%);\\n font-family: Arial, Helvetica, sans-serif, cursive;\\n font-weight: bolder;\\n font-size: 14px;\\n}\\n\\n.portText {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-right: -50%;\\n transform: translate(-50%, -50%);\\n color: white;\\n font-family: Arial, Helvetica, sans-serif, cursive;\\n font-weight: bolder;\\n font-size: 12px;\\n}\\n\\n.heatExchanger {\\n position: relative;\\n display: inline-block;\\n margin-right: 5px;\\n\\n border-radius: 10%;\\n border: 2px solid #5f5f64;\\n width: 175px;\\n height: 240px;\\n\\n background-color: lightgray;\\n background-image: -webkit-linear-gradient(\\n top left,\\n rgba(255, 255, 255, 0.2) 0%,\\n rgba(255, 255, 255, 0.2) 37%,\\n rgba(255, 255, 255, 0.8) 45%,\\n rgba(255, 255, 255, 0.0) 50%\\n );\\n background-image: -moz-linear-gradient(\\n 0 0,\\n rgba(255, 255, 255, 0.2) 0%,\\n rgba(255, 255, 255, 0.2) 37%,\\n rgba(255, 255, 255, 0.8) 45%,\\n rgba(255, 255, 255, 0.0) 50%\\n );\\n background-image: -o-linear-gradient(\\n 0 0,\\n rgba(255, 255, 255, 0.2) 0%,\\n rgba(255, 255, 255, 0.2) 37%,\\n rgba(255, 255, 255, 0.8) 45%,\\n rgba(255, 255, 255, 0.0) 50%\\n );\\n background-image: linear-gradient(\\n 0 0,\\n rgba(255, 255, 255, 0.2) 0%,\\n rgba(255, 255, 255, 0.2) 37%,\\n rgba(255, 255, 255, 0.8) 45%,\\n rgba(255, 255, 255, 0.0) 50%\\n );\\n\\n -moz-background-size: 250% 250%, 100% 100%;\\n background-size: 250% 250%, 100% 100%;\\n\\n -webkit-transition: background-position 0s ease;\\n -moz-transition: background-position 0s ease;\\n -o-transition: background-position 0s ease;\\n transition: background-position 0s ease;\\n\\n background-repeat: no-repeat;\\n background-position: -50% -50%, 0 0;\\n}\\n\\n.heatExchanger:hover {\\n background-position: 0 0, 0 0;\\n\\n -webkit-transition-duration: 0.5s;\\n -moz-transition-duration: 0.5s;\\n transition-duration: 0.5s;\\n}\\n\\n\\n#f1 {\\n position: absolute;\\n top: 3%;\\n left: 3%;\\n}\\n\\n#f2 {\\n position: absolute;\\n top: 3%;\\n right: 3%;\\n}\\n\\n#f3 {\\n position: absolute;\\n bottom: 3%;\\n left: 3%;\\n}\\n\\n#f4 {\\n position: absolute;\\n bottom: 3%;\\n right: 3%;\\n}\\n\\n#f5 {\\n position: absolute;\\n bottom: 0%;\\n right: 50%;\\n left: 50%;\\n transform: translate(-50%, -100%);\\n}\\n\\n#f6 {\\n position: absolute;\\n top: 3%;\\n left: 50%;\\n right: 50%;\\n transform: translate(-50%, 100%);\\n}\\n\\n#p1 {\\n position: absolute;\\n top: 3%;\\n right: 3%;\\n}\\n\\n#p2 {\\n position: absolute;\\n top: 3%;\\n left: 3%;\\n}\\n\\n#p3 {\\n position: absolute;\\n bottom: 3%;\\n right: 3%;\\n}\\n\\n#p4 {\\n position: absolute;\\n bottom: 3%;\\n left: 3%;\\n}\\n\\n#p5 {\\n position: absolute;\\n bottom: 0%;\\n right: 50%;\\n left: 50%;\\n transform: translate(-50%, -100%);\\n}\\n\\n#p6 {\\n position: absolute;\\n top: 3%;\\n left: 50%;\\n right: 50%;\\n transform: translate(-50%, 100%);\\n}\\n\\n.portInfoBox {\\n display: inline-block;\\n white-space: nowrap;\\n font-size: 12px;\\n font-family: Arial, Helvetica, sans-serif, cursive;\\n}\\n\\n#f1Info {\\n position: absolute;\\n top: 18%;\\n left: 3%;\\n}\\n\\n#f2Info {\\n position: absolute;\\n top: 18%;\\n right: 3%;\\n}\\n\\n#f3Info {\\n position: absolute;\\n bottom: 18%;\\n left: 3%;\\n}\\n\\n#f4Info {\\n position: absolute;\\n bottom: 18%;\\n right: 3%;\\n}\\n\\n#f5Info {\\n position: absolute;\\n top: 65%;\\n left: 50%;\\n margin-right: 50%;\\n transform: translate(-50%, 0%);\\n}\\n\\n#f6Info {\\n position: absolute;\\n bottom: 70%;\\n left: 50%;\\n margin-right: 50%;\\n transform: translate(-50%, 100%);\\n}\\n\\n#p1Info {\\n position: absolute;\\n top: 18%;\\n right: 3%;\\n}\\n\\n#p2Info {\\n position: absolute;\\n top: 18%;\\n left: 3%;\\n}\\n\\n#p3Info {\\n position: absolute;\\n bottom: 18%;\\n right: 3%;\\n}\\n\\n#p4Info {\\n position: absolute;\\n bottom: 18%;\\n left: 3%;\\n}\\n\\n#p5Info {\\n position: absolute;\\n top: 65%;\\n left: 50%;\\n margin-right: 50%;\\n transform: translate(-50%, 0%);\\n}\\n\\n#p6Info {\\n position: absolute;\\n bottom: 70%;\\n left: 50%;\\n margin-right: 50%;\\n transform: translate(-50%, 100%);\\n}\\n\\n.ci-title{\\n padding-right: 3px;\\n font-size: 17px;\\n font-weight: 600;\\n}\\n.ci-table{\\n tr{\\n pointer-events: none;\\n }\\n th{\\n font-style: normal;\\n }\\n td{\\n border-top: 0px;\\n font-size: 12px;\\n }\\n .even-row{\\n background-color: #d7d7d7;\\n }\\n .ci-alert{\\n margin-bottom: 1px;\\n padding: 0;\\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]!./styles.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":""}