{"version":3,"sources":["webpack://ssp-dthermx/./src/utils/parseMultipart.ts","webpack://ssp-dthermx/./src/components/LoadingPanel/index.js","webpack://ssp-dthermx/./src/components/ProgressBar/index.js","webpack://ssp-dthermx/./src/components/common/ButtonLink.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/CalculationNextButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/CalculationBackButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/AccessoriesBackButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/AccessoriesNextButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/SummaryBackButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/Buttons/SummaryNextButton.js","webpack://ssp-dthermx/./src/components/applicationWizard/ApplicationNavigation.js","webpack://ssp-dthermx/./src/components/applicationWizard/ApplicationStepper.js","webpack://ssp-dthermx/./src/components/calculation/inputForms/unitSystem/UnitSystemStateContext.js","webpack://ssp-dthermx/./src/components/calculation/result/AllUnitsTooltipContent.js","webpack://ssp-dthermx/./src/components/calculation/result/AllUnitsTooltip.js","webpack://ssp-dthermx/./src/components/calculation/result/TechnicalData/useUnitConversion.js","webpack://ssp-dthermx/./src/components/common/BottomActionsBar.js","webpack://ssp-dthermx/./src/components/common/Customization/CustomerContext/useCustomerState.js","webpack://ssp-dthermx/./src/components/common/Customization/CustomerContext/useCustomerDispatch.js","webpack://ssp-dthermx/./src/components/common/Customization/CustomerContext/useCustomer.js","webpack://ssp-dthermx/./src/components/common/LanguageSelect.js","webpack://ssp-dthermx/./src/styles/images/flags/bg.svg","webpack://ssp-dthermx/./src/styles/images/flags/cz.svg","webpack://ssp-dthermx/./src/styles/images/flags/dk.svg","webpack://ssp-dthermx/./src/styles/images/flags/de.svg","webpack://ssp-dthermx/./src/styles/images/flags/gb.svg","webpack://ssp-dthermx/./src/styles/images/flags/es.svg","webpack://ssp-dthermx/./src/styles/images/flags/ee.svg","webpack://ssp-dthermx/./src/styles/images/flags/fi.svg","webpack://ssp-dthermx/./src/styles/images/flags/fr.svg","webpack://ssp-dthermx/./src/styles/images/flags/hu.svg","webpack://ssp-dthermx/./src/styles/images/flags/it.svg","webpack://ssp-dthermx/./src/styles/images/flags/jp.svg","webpack://ssp-dthermx/./src/styles/images/flags/nl.svg","webpack://ssp-dthermx/./src/styles/images/flags/no.svg","webpack://ssp-dthermx/./src/styles/images/flags/pl.svg","webpack://ssp-dthermx/./src/styles/images/flags/pt.svg","webpack://ssp-dthermx/./src/styles/images/flags/ro.svg","webpack://ssp-dthermx/./src/styles/images/flags/ru.svg","webpack://ssp-dthermx/./src/styles/images/flags/sk.svg","webpack://ssp-dthermx/./src/styles/images/flags/se.svg","webpack://ssp-dthermx/./src/styles/images/flags/cn.svg","webpack://ssp-dthermx/./src/components/common/Settings/SettingsButton.js","webpack://ssp-dthermx/./src/components/calculation/inputForms/unitSystem/UnitSystemInput.js","webpack://ssp-dthermx/./src/components/common/Settings/UnitSystemInputWithContext.js","webpack://ssp-dthermx/./src/components/plugins/injectCustomLogo.js","webpack://ssp-dthermx/./src/components/plugins/customTacoResultsColumnsDefinitions/ProductionLocationCellRenderer.js","webpack://ssp-dthermx/./src/components/plugins/customTacoResultsColumnsDefinitions/index.js","webpack://ssp-dthermx/./src/components/plugins/customParkerResultsColumnDefinitionPWO/ProceedButton.js","webpack://ssp-dthermx/./src/components/plugins/customParkerResultsColumnDefinitionPWO/index.js","webpack://ssp-dthermx/./src/components/plugins/customParkerResultsColumnDefinitionOAW/ProceedButton.js","webpack://ssp-dthermx/./src/components/plugins/customParkerResultsColumnDefinitionOAW/index.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/PriceFactorCellRenderer.js","webpack://ssp-dthermx/./src/components/plugins/customPriceFactorResultsColumnDefinition/PriceFactorCellRenderer.js","webpack://ssp-dthermx/./src/components/calculation/result/Renderers/getPriceFactorCellRenderer.js","webpack://ssp-dthermx/./src/components/plugins/customPriceFactorResultsColumnDefinition/index.js","webpack://ssp-dthermx/./src/components/plugins/customTacoResultsExpanderContent/index.js","webpack://ssp-dthermx/./src/components/plugins/customTacoAccessories/AccessoriesGrid.js","webpack://ssp-dthermx/./src/components/plugins/customTacoAccessories/Accessories.js","webpack://ssp-dthermx/./src/components/plugins/customTacoAccessories/index.js","webpack://ssp-dthermx/./src/components/plugins/customTacoSummaryAccessories/SelectedAccessoriesGrid.js","webpack://ssp-dthermx/./src/components/plugins/customTacoSummaryAccessories/SelectedAccessories.js","webpack://ssp-dthermx/./src/components/plugins/customTacoSummaryAccessories/index.js","webpack://ssp-dthermx/./src/components/plugins/customTacoSummaryTotals/index.js","webpack://ssp-dthermx/./src/components/plugins/customVZHOstravaResultsContent/index.js","webpack://ssp-dthermx/./src/components/common/BoolOutput.js","webpack://ssp-dthermx/./src/components/common/QuantityOutput.js","webpack://ssp-dthermx/./src/components/plugins/customProperties/index.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/constants.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/reducer.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/api.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/actions.js","webpack://ssp-dthermx/./src/utils/buffer.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/saga.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/selectors.js","webpack://ssp-dthermx/./src/components/plugins/customPrintouts/index.js","webpack://ssp-dthermx/./src/components/plugins/customDrawings/api.js","webpack://ssp-dthermx/./src/components/plugins/customDrawings/links.js","webpack://ssp-dthermx/./src/components/plugins/customDrawings/index.js","webpack://ssp-dthermx/./src/components/fluidProperties/OpenFluidProperiesButton.js","webpack://ssp-dthermx/./src/components/plugins/fluidProperties/index.js","webpack://ssp-dthermx/./src/components/plugins/customParkerLogo/parker_logo.jpg","webpack://ssp-dthermx/./src/components/plugins/customParkerPrintoutPWO/index.js","webpack://ssp-dthermx/./src/components/plugins/customParkerPrintoutPWO/createPrintoutPWO.js","webpack://ssp-dthermx/./src/components/plugins/customParkerPrintoutOAW/index.js","webpack://ssp-dthermx/./src/components/plugins/customParkerPrintoutOAW/createPrintoutOAW.js","webpack://ssp-dthermx/./src/components/plugins/pluginRegister.js","webpack://ssp-dthermx/./src/components/plugins/customVZHOstravaCustomResultsRowFilter/VZHOstravaCustomResultsRowFilter.js","webpack://ssp-dthermx/./src/components/plugins/customParkerLogo/index.js","webpack://ssp-dthermx/./src/components/plugins/customProductSelectorColumns/index.js","webpack://ssp-dthermx/./src/components/plugins/pluginTypes.js","webpack://ssp-dthermx/./src/containers/accessories/selectors.js","webpack://ssp-dthermx/./src/actions/applicationActions.js","webpack://ssp-dthermx/./src/api/calculationsApi.js","webpack://ssp-dthermx/./src/api/exchangersApi.js","webpack://ssp-dthermx/./src/sagas/calculationSaga.js","webpack://ssp-dthermx/./src/selectors/calculationSelectors.js","webpack://ssp-dthermx/./src/selectors/userProfileSelectors.js","webpack://ssp-dthermx/./src/components/calculation/inputForms/unitSystem/unitSystemInput.scss","webpack://ssp-dthermx/./src/components/fluidProperties/OpenFluidPropertiesButton.scss","webpack://ssp-dthermx/./src/components/calculation/inputForms/unitSystem/unitSystemInput.scss?df37","webpack://ssp-dthermx/./src/components/fluidProperties/OpenFluidPropertiesButton.scss?21eb"],"names":["Buffer","process","part","header","split","filenameData","input","str","k","a","trim","b","JSON","parse","o","Object","defineProperty","value","writable","enumerable","configurable","obj","contentType","info","replace","multipartBodyBuffer","boundary","lastline","state","buffer","allParts","i","length","oneByte","prevByte","newLineDetected","String","fromCharCode","indexOf","j","p","slice","push","items","item","isLoading","loaderType","children","properties","type","ProgressBar","progressValue","style","width","backgroundColor","className","role","aria-valuenow","aria-valuemin","aria-valuemax","defaultProps","useStyles","makeStyles","theme","root","margin","padding","button","spacing","ButtonLink","to","active","classes","history","useHistory","handleClick","useCallback","Fab","variant","color","disabled","onClick","React","url","t","useTranslation","selectedItem","useSelector","makeSelectSelectedItem","SinglePhase","id","isNil","ApplicationNavigation","currentIndex","localization","useLocation","customer","useCustomer","pairs","useMemo","accessoriesPlugin","availablePlugins","find","x","pluginType","pluginTypes","label","optional","route","RouterPaths","backButton","CalculationBackButton","nextButton","CalculationNextButton","enabled","AccessoriesBackButton","AccessoriesNextButton","SummaryBackButton","SummaryNextButton","filter","activeStep","findIndex","r","matchPath","pathname","path","exact","strict","BackButton","NextButton","getNextUrl","instructions","marginTop","marginBottom","connectorActive","borderColor","palette","secondary","main","connectorCompleted","primary","connectorDisabled","grey","connectorLine","transition","transitions","create","ApplicationStepper","connector","completed","line","map","key","quantities","scope","q","unit","format","unitGroup","amount","siValue","densities","convertFromSIToAllUnits","convertFromSI","unitSystem","unitGroupName","siAmount","toUnit","UnitGroups","convert","name","convertToSI","unitName","getUnit","units","u","RoundToSignificantDigitsWithOffset","signDigits","offset","significantDigits","exp10","sci","Math","abs","floor","log10","rounded","round","pow","toFixed","useUnitSystem","useContext","UnitSystemContext","getDefaultUnit","appBar","top","bottom","position","zIndex","context","CustomerContext","undefined","Error","CustomerDispatchContext","useCustomerState","useCustomerDispatch","supportedLanguages","languageCode","flagSVG","nativeName","englishName","LanguageSelect","languages","onChange","languagesToDisplay","includes","mapToFlags","Select","e","target","l","MenuItem","src","typography","settingsButtonId","SettingsButton","useState","isOpen","setIsOpen","ref","useRef","dispatch","useDispatch","workingLanguage","selectWorkingLanguage","availableLanguages","makeSelectCustomerLanguages","handleLanguageChange","language","changeApplicationLanguage","IconButton","aria-label","component","Settings","Popover","open","anchorEl","current","onClose","anchorOrigin","vertical","horizontal","transformOrigin","Typography","UnitSystemInputWithContext","toUpperCase","UnitSystemInput","data-toggle","autoComplete","checked","UnitSystem","htmlFor","selectUserProfileUnits","handleUnitSystemChange","changeUnitSystem","allowedPlugins","getPluginComponent","ProductionLocationCellRenderer","rowData","productionLocations","get","combination","rawValue","filterTags","filterKey","optionKey","uniq","ProceedButton","ProductURL","useQuery","customName","toLowerCase","encodeURIComponent","productUrl","Link","href","Button","size","PriceFactorCellRenderer","pf","propTypes","PropTypes","selectedRow","borderLeftColor","borderLeftStyle","borderLeftWidth","fade","CustomTacoResultExpandPlugin","onSelectedItemChange","c","connection","material","pressure","productionLocation","clsx","isInsulationProperty","property","isAccessoryInsulation","accessory","some","getMaxPlatesValue","maxPlatesProperty","AccessoriesGrid","accessories","selected","onSelectedChange","handleCheckedChange","produce","draft","indexToBeRemoved","itemNumber","splice","processedAccessories","insulations","insulationOrdered","orderBy","others","firstInsulation","filterOutInsulations","index","isChecked","price","Checkbox","description","Accessories","align","CustomTacoAccessories","SelectedAccessoriesGrid","SelectedAccessories","CustomTacoSummaryAccessories","selectedHeatExchanger","selectedAccessories","total","selectedHe","priceProperty","getHePrice","sumBy","getAccessoriesPrice","CustomVZHOstravaResultExpandPlugin","BoolOutput","Check","fontSize","Clear","QuantityOutput","quantityOutput","quantity","defaultUserSelectedUnit","defaultMetricUnit","defaultUsUnit","formattedValue","Tooltip","title","AllUnitsTooltip","Number","interactive","CustomPropertiesPlugin","executionCombination","certUL","certPED","certASME","certCRN","pressurePED","pressureUL","temperatureMax","temperatureMin","plateMaterial","brazingMaterial","connectionMaterial","componentsToRender","Grid","container","Chip","SAGA_ITEM_CREATE_RESULT_PRINTOUT","SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS","SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR","SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT","SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS","SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR","initialState","loading","error","filename","action","userId","selectedPrintoutLanguage","selectedPrintoutFormat","basketItem","isQuote","quoteInfo","portInfo","axios","method","data","responseType","calculationType","calculationMethod","calculationRequest","selectedApplicationResult","selectedApplicationResultComponent","createCalculationResultPrintoutSuccess","printoutId","createApplicationResultPrintoutSuccess","createCalculationResultPrintout","createApplicationPrintout","productBasketSaga","select","makeSelectUserProfile","userProfile","makeSelectCalculation","calculation","makeSelectSelectedArticle","article","makeSelectAccessories","accessoriesState","inputParams","userCalculationInputs","printoutItem","createRequest","selectedProduct","selectedExchanger","ORIG","selectedArticle","selectedXpc","call","printoutsApi","settings","printouts","languagePrimary","response","headers","getBoundary","parsed","toString","extension","blob","Blob","URL","createObjectURL","element","document","createElement","setAttribute","display","body","appendChild","click","removeChild","revokeObjectURL","put","message","all","takeEvery","selectPrintouts","marginRight","CustomPrintout","useInjectReducer","reducer","useInjectSaga","saga","createSelector","acticle","handlePrintoutClick","CircularProgress","params","Promise","resolve","reject","CustomDrawingPlugin","isDownloading","setIsDownloading","drawingPropertyValue","drawingProperty","handleDownload","BlobApi","file","File","window","SideIconContainer","withBaseIcon","IconLab","props","icon","lab","OpenFluidPropertiesButton","selectedFluid","handleOpen","inputValue","encodeURI","fluidId","isGas","FluidPropertiesPlugin","fluid","PrintoutButton","customHeatExchanger","calculationResultHeatExchangerBasicInfo","heatExchangerDutyRequirements","getElementById","outerHTML","heatExchangerBasicInfo","heatExchangerPhysicalProperties","link","download","createPrintoutPWO","createPrintoutOAW","matrix","Map","set","CustomDrawings","CustomPrintouts","CustomProperties","CustomTacoSummaryTotals","CustomTacoResultsExpanderContent","CustomVZHOstravaResultsContent","row","numberOfParallelUnits","headerRenderer","cellRenderer","order","image","CustomParkerPrintoutPWO","CustomParkerPrintoutOAW","dataField","text","sort","formatter","cell","FluidProperties","TacoAccessories","TacoSummaryAccessories","TacoSummaryTotals","TacoDrawings","TacoPrintouts","TacoCustomProperties","TacoCustomResultsExpanderContent","VZHOstravaCustomResultsExpanderContent","VZHOstravaCustomResultsRowFilter","TacoCustomResultsColumnDefinitions","PARKERCustomResultsColumnDefinitionsPWO","PARKERCustomResultsColumnDefinitionsOAW","ParkerLogo","ParkerResultTechnicalDataHeaderActionsPrintoutPWO","ParkerResultTechnicalDataHeaderActionsPrintoutOAW","PriceFactorResultsColumnDefinition","ProductSelectorColumns","selectAccessories","getErrorMessage","errorCode","handleError","errorMessages","errors","Array","isArray","msg","join","calculationInputId","CALCULATIONS_INPUTS","request","CALCULATIONS_CALCULATE","CALCULATION_OUTPUT_COLUMN_SETTINGS","userDefaultCalculationOutputColumns","calculationOutputColumns","modelRestrictions","isCoCurrent","fluid1","fluid2","HEATEXCHANGERS_LOAD","getCalculationInputs","getCalculationHeatExchangers","processCalculation","calculationsData","calculationsApi","calculationInputsResposse","calcActions","exchangersApi","getExchangers","calculationHeatExchangersResponse","calculate","calcResponse","processedResponse","processCalculationResponse","formData","inputs","calculationData","applicationName","inputValues","userDetails","strLang","applicationLanguage","nosResults","bCulture","userSetfilter","factoriesFilterSelection","filterSettings","factorySelections","materialsFilterSelection","materialSelections","pressuresFilterSelection","pressureSelections","warehousesFilterSelection","warehouseSelections","customFilterSelections","prototype","hasOwnProperty","warningMessage","transformCalculationResponse","exchangers","calcResultsCollection","guid","modelId","bphe","alias","pureType","carbonFootPrint","maxPlates","xpc","xpcString","dualTypes","counterCurrent","crossConnect","isOnStock","portSwitched","messages","extraLabels","productSheetName","calcMethod","channels","getAdditionalInfoValue","getFirstValue","val","additionalInfo","ciData","connectionImpactData","reduce","acc","cur","strval","charAt","sketch","calcResult","outputValues","accumulator","currentValue","dimensionInfo","totalsInfo","calculationResponseType","takeLatest","Calculation","selectCalculations","calculations","makeSelectCalculations","calculationsState","makeSelectCalculationInputParams","makeSelectCalculationResponse","makeSelectInputParamsValidity","isValid","makeSelectCalculationProps","makeSelectIsCalculating","isCalculating","makeSelectIsCalcLoaded","makeSelectSelectedProduct","makeSelectSelectedArticlePorts","selectUserProfile","userProfileState","makeSelectUserId","___CSS_LOADER_EXPORT___","module","api","content","__esModule","default","exported","locals","exports"],"mappings":"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","file":"630.581c0f0c6f60163f5721.js","sourcesContent":["/**\n * Multipart Parser (Finite State Machine)\n * usage:\n * const multipart = require('./multipart.js');\n * const body = multipart.DemoData(); \t\t\t\t\t\t\t // raw body\n * const body = new Buffer(event['body-json'].toString(),'base64'); // AWS case\n * const boundary = multipart.getBoundary(event.params.header['content-type']);\n * const parts = multipart.Parse(body,boundary);\n * each part is:\n * { filename: 'A.txt', type: 'text/plain', data: }\n * or { name: 'key', data: }\n */\n\nconst Buffer = require('buffer/').Buffer;\n\ntype Part = {\n header: string\n info: string\n part: number[]\n}\n\ntype Input = {\n filename?: string\n name?: string\n type: string\n data: Buffer\n}\n\nexport function parse(multipartBodyBuffer: Buffer, boundary: string): Input[] {\n let lastline = ''\n let header = ''\n let info = ''\n let state = 0\n let buffer: number[] = []\n const allParts: Input[] = []\n\n for (let i = 0; i < multipartBodyBuffer.length; i++) {\n const oneByte: number = multipartBodyBuffer[i]\n const prevByte: number | null = i > 0 ? multipartBodyBuffer[i - 1] : null\n const newLineDetected: boolean = oneByte === 0x0a && prevByte === 0x0d ? true : false\n const newLineChar: boolean = oneByte === 0x0a || oneByte === 0x0d ? true : false\n\n if (!newLineChar) lastline += String.fromCharCode(oneByte)\n\n if (0 === state && newLineDetected) {\n if ('--' + boundary === lastline) {\n state = 1\n }\n lastline = ''\n } else if (1 === state && newLineDetected) {\n header = lastline\n state = 2\n if (header.indexOf('filename') === -1) {\n state = 3\n }\n lastline = ''\n } else if (2 === state && newLineDetected) {\n info = lastline\n state = 3\n lastline = ''\n } else if (3 === state && newLineDetected) {\n state = 4\n buffer = []\n lastline = ''\n } else if (4 === state) {\n if (lastline.length > boundary.length + 4) lastline = '' // mem save\n if ('--' + boundary === lastline) {\n const j = buffer.length - lastline.length\n const part = buffer.slice(0, j - 1)\n const p: Part = { header: header, info: info, part: part }\n\n allParts.push(process(p))\n buffer = []\n lastline = ''\n state = 5\n header = ''\n info = ''\n } else {\n buffer.push(oneByte)\n }\n if (newLineDetected) lastline = ''\n } else if (5 === state) {\n if (newLineDetected) state = 1\n }\n }\n return allParts\n}\n\n// read the boundary from the content-type header sent by the http client\n// this value may be similar to:\n// 'multipart/form-data; boundary=----WebKitFormBoundaryvm5A9tzU1ONaGP5B',\nexport function getBoundary(header: string): string {\n const items = header.split(';')\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i].trim()\n if (item.indexOf('boundary') >= 0) {\n const k = item.split('=')\n return String(k[1].trim()).replace(/\"/g, \"\");\n }\n }\n }\n return ''\n}\n\nexport function DemoData(): { body: Buffer; boundary: string } {\n let body = 'trash1\\r\\n'\n body += '------WebKitFormBoundaryvef1fLxmoUdYZWXp\\r\\n'\n body +=\n 'Content-Disposition: form-data; name=\"uploads[]\"; filename=\"A.txt\"\\r\\n'\n body += 'Content-Type: text/plain\\r\\n'\n body += '\\r\\n'\n body += '@11X'\n body += '111Y\\r\\n'\n body += '111Z\\rCCCC\\nCCCC\\r\\nCCCCC@\\r\\n\\r\\n'\n body += '------WebKitFormBoundaryvef1fLxmoUdYZWXp\\r\\n'\n body +=\n 'Content-Disposition: form-data; name=\"uploads[]\"; filename=\"B.txt\"\\r\\n'\n body += 'Content-Type: text/plain\\r\\n'\n body += '\\r\\n'\n body += '@22X'\n body += '222Y\\r\\n'\n body += '222Z\\r222W\\n2220\\r\\n666@\\r\\n'\n body += '------WebKitFormBoundaryvef1fLxmoUdYZWXp\\r\\n'\n body += 'Content-Disposition: form-data; name=\"input1\"\\r\\n'\n body += '\\r\\n'\n body += 'value1\\r\\n'\n body += '------WebKitFormBoundaryvef1fLxmoUdYZWXp--\\r\\n'\n return {\n body: Buffer.from(body),\n boundary: '----WebKitFormBoundaryvef1fLxmoUdYZWXp'\n }\n}\n\nfunction process(part: Part): Input {\n // will transform this object:\n // { header: 'Content-Disposition: form-data; name=\"uploads[]\"; filename=\"A.txt\"',\n // info: 'Content-Type: text/plain',\n // part: 'AAAABBBB' }\n // into this one:\n // { filename: 'A.txt', type: 'text/plain', data: }\n const obj = function(str: string) {\n const k = str.split('=')\n const a = k[0].trim()\n\n const b = JSON.parse(k[1].trim())\n const o = {}\n Object.defineProperty(o, a, {\n value: b,\n writable: true,\n enumerable: true,\n configurable: true\n })\n return o\n }\n const header = part.header.split(';')\n\n const filenameData = header[2]\n let input = {}\n if (filenameData) {\n input = obj(filenameData)\n const contentType = part.info.split(':')[1].trim()\n Object.defineProperty(input, 'type', {\n value: contentType,\n writable: true,\n enumerable: true,\n configurable: true\n })\n } else {\n Object.defineProperty(input, 'name', {\n value: header[1].split('=')[1].replace(/\"/g, ''),\n writable: true,\n enumerable: true,\n configurable: true\n })\n }\n\n Object.defineProperty(input, 'data', {\n value: new Buffer(part.part),\n writable: true,\n enumerable: true,\n configurable: true\n })\n return input as Input\n}\n\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LoadingIndicator from '../LoadingIndicator/index';\n\nconst LoadingPanel = ({isLoading, loaderType, children, properties}) => {\n if (isLoading) {\n return ();\n } else {\n return (
{children}
);\n }\n};\n\nLoadingPanel.propTypes = {\n isLoading: PropTypes.bool.isRequired,\n loaderType: PropTypes.string,\n properties: PropTypes.object\n};\n\nexport default LoadingPanel;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ProgressBar = ({progressValue}) => {\n const style = {\n width: `${progressValue}%`,\n backgroundColor: `hsl(${progressValue}, 70%, 40%)`\n };\n\n return (\n
\n
\n
\n );\n};\n\nProgressBar.defaultProps = {\n progressValue: 0\n};\n\nProgressBar.propTypes = {\n progressValue: PropTypes.number.isRequired\n};\n\nexport default ProgressBar;\n\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {useHistory} from \"react-router-dom\";\nimport {Fab} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: \"5px\",\n padding: \"5px\"\n },\n button: {\n margin: theme.spacing(1)\n },\n}));\n\nconst ButtonLink = ({\n children,\n to,\n active = true,\n}) => {\n const classes = useStyles();\n const history = useHistory();\n\n const handleClick = useCallback(() => {\n history.push(to);\n }, [history, to]);\n\n return (\n \n {children}\n \n );\n};\n\nButtonLink.propTypes = {\n children: PropTypes.array,\n to: PropTypes.string.isRequired,\n active: PropTypes.bool,\n};\n\nexport default React.memo(ButtonLink);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {useTranslation} from \"react-i18next\";\nimport {useSelector} from \"react-redux\";\nimport {makeSelectSelectedItem} from \"../../../selectors/calculationSelectors\";\nimport {SinglePhase} from \"../../../constants/calculationTypes\";\nimport ButtonLink from \"../../common/ButtonLink\";\nimport isNil from \"lodash/isNil\";\nimport NextIcon from \"@material-ui/icons/ArrowForwardIos\";\n\nconst CalculationNextButton = ({url}) => {\n const {t} = useTranslation();\n const selectedItem = useSelector(makeSelectSelectedItem(SinglePhase));\n return (\n \n \n {t(\"Next\")} \n \n \n );\n};\n\nCalculationNextButton.propTypes = {\n url: PropTypes.string.isRequired\n};\n\nexport default CalculationNextButton;\n","const CalculationBackButton = () => null;\n\nexport default CalculationBackButton;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {useTranslation} from \"react-i18next\";\nimport ButtonLink from \"../../common/ButtonLink\";\nimport BackIcon from \"@material-ui/icons/ArrowBackIos\";\n\nconst AccessoriesBackButton = ({ url }) => {\n const {t} = useTranslation();\n\n return (\n \n \n {t(\"Back\")}\n \n \n );\n};\n\nAccessoriesBackButton.propTypes = {\n url: PropTypes.string.isRequired\n};\n\nexport default AccessoriesBackButton;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {useTranslation} from \"react-i18next\";\nimport ButtonLink from \"../../common/ButtonLink\";\nimport NextIcon from \"@material-ui/icons/ArrowForwardIos\";\n\nconst AccessoriesNextButton = ({ url} ) => {\n const {t} = useTranslation();\n return (\n \n \n {t(\"Next\")} \n \n \n );\n};\n\nAccessoriesNextButton.propTypes = {\n url: PropTypes.string.isRequired\n};\n\nexport default AccessoriesNextButton;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {useTranslation} from \"react-i18next\";\nimport ButtonLink from \"../../common/ButtonLink\";\nimport BackIcon from \"@material-ui/icons/ArrowBackIos\";\n\nconst SummaryBackButton = ({url}) => {\n const {t} = useTranslation();\n return (\n \n \n {t(\"Back\")}\n \n \n );\n};\n\nSummaryBackButton.propTypes = {\n url: PropTypes.string.isRequired\n};\n\nexport default SummaryBackButton;\n","const SummaryNextButton = () => null;\n\nexport default SummaryNextButton;\n","import React, {useMemo} from 'react';\nimport {RouterPaths} from \"../../containers/App/Routes\";\nimport {matchPath, useLocation} from \"react-router-dom\";\nimport {SinglePhase} from \"../../constants/calculationTypes\";\nimport CalculationNextButton from \"./Buttons/CalculationNextButton\";\nimport CalculationBackButton from \"./Buttons/CalculationBackButton\";\nimport AccessoriesBackButton from \"./Buttons/AccessoriesBackButton\";\nimport AccessoriesNextButton from \"./Buttons/AccessoriesNextButton\";\nimport SummaryBackButton from \"./Buttons/SummaryBackButton\";\nimport SummaryNextButton from \"./Buttons/SummaryNextButton\";\nimport useCustomer from \"../common/Customization/CustomerContext/useCustomer\";\nimport pluginTypes from \"../plugins/pluginTypes\";\nimport isNil from 'lodash/isNil';\n\nconst ApplicationNavigation = () => {\n const localization = useLocation();\n const [customer] = useCustomer();\n\n const pairs = useMemo(() => {\n const accessoriesPlugin = customer.availablePlugins.find(x => x.pluginType === pluginTypes.Accessories);\n\n const steps = [\n {\n label: 'Calculate',\n optional: null,\n route: RouterPaths.SINGLEPHASE,\n url: `/${SinglePhase}`,\n backButton: CalculationBackButton,\n nextButton: CalculationNextButton,\n enabled: true\n },\n {\n label: 'Accessories',\n optional: null,\n route: RouterPaths.ACCESSORIES,\n url: `/${SinglePhase}/accessories`,\n backButton: AccessoriesBackButton,\n nextButton: AccessoriesNextButton,\n enabled: !isNil(accessoriesPlugin)\n },\n {\n label: 'Summary',\n optional: null,\n route: RouterPaths.SUMMARY,\n url: `/${SinglePhase}/summary`,\n backButton: SummaryBackButton,\n nextButton: SummaryNextButton,\n enabled: true\n },\n ];\n\n return steps.filter(x => x.enabled === true);\n }, [customer.availablePlugins]);\n\n const getPrevUrl = (currentIndex) => {\n if (currentIndex > 0) {\n return pairs[currentIndex-1].url;\n } else {\n return null;\n }\n };\n\n const getNextUrl = (currentIndex) => {\n if (currentIndex < pairs.length-1) {\n return pairs[currentIndex+1].url;\n } else {\n return null;\n }\n };\n\n const activeStep = pairs.findIndex(r => {\n const match = matchPath(localization.pathname, {\n path: r.route,\n exact: true,\n strict: true\n });\n if (match) return true;\n\n return false;\n });\n const BackButton = pairs[activeStep].backButton;\n const NextButton = pairs[activeStep].nextButton;\n\n return (\n
\n \n \n
\n );\n};\n\n\nexport default React.memo(ApplicationNavigation);\n","import React, {useMemo} from 'react';\nimport Step from \"@material-ui/core/Step\";\nimport StepLabel from \"@material-ui/core/StepLabel\";\nimport Stepper from \"@material-ui/core/Stepper\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport StepConnector from \"@material-ui/core/StepConnector\";\nimport {matchPath, useLocation} from 'react-router-dom';\nimport {RouterPaths} from \"../../containers/App/Routes\";\nimport useCustomer from \"../common/Customization/CustomerContext/useCustomer\";\nimport pluginTypes from \"../plugins/pluginTypes\";\nimport isNil from 'lodash/isNil';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n },\n instructions: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n connectorActive: {\n '& $connectorLine': {\n borderColor: theme.palette.secondary.main,\n },\n },\n connectorCompleted: {\n '& $connectorLine': {\n borderColor: theme.palette.primary.main,\n },\n },\n connectorDisabled: {\n '& $connectorLine': {\n borderColor: theme.palette.grey[100],\n },\n },\n connectorLine: {\n transition: theme.transitions.create('border-color'),\n },\n}));\n\nconst ApplicationStepper = () => {\n const classes = useStyles();\n const localization = useLocation();\n const [customer] = useCustomer();\n\n const pairs = useMemo(() => {\n const accessoriesPlugin = customer.availablePlugins.find(x => x.pluginType === pluginTypes.Accessories);\n const steps = [\n { label: 'Calculate', optional: null, route: RouterPaths.SINGLEPHASE, enabled: true },\n { label: 'Accessories', optional: null, route: RouterPaths.ACCESSORIES, enabled: !isNil(accessoriesPlugin) },\n { label: 'Summary', optional: null, route: RouterPaths.SUMMARY, enabled: true },\n ];\n\n return steps.filter(x => x.enabled === true);\n }, [customer.availablePlugins]);\n\n\n const activeStep = pairs.findIndex(r => {\n const match = matchPath(localization.pathname, {\n path: r.route,\n exact: true,\n strict: true\n });\n\n if (match) return true;\n\n return false;\n });\n\n const connector = useMemo(() => {\n return ();\n }, [classes.connectorActive, classes.connectorCompleted, classes.connectorDisabled, classes.connectorLine]);\n\n return (\n \n {pairs.map(x => (\n \n {x.label}\n \n ))}\n \n );\n};\n\nexport default React.memo(ApplicationStepper);\n","import React from 'react';\n\nconst UnitSystemStateContext = React.createContext(\"Metric\");\n\nexport default UnitSystemStateContext;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {format} from \"./TechnicalData/useUnitConversion\";\n\nconst AllUnitsTooltipContent = ({ quantities }) => {\n return (\n \n \n \n \n \n \n \n \n {quantities.map(q =>\n (\n \n \n )\n )}\n \n
UnitAmount
{q.unit}{format(q.unitGroup, q.amount)}
\n );\n};\n\nAllUnitsTooltipContent.propTypes = {\n quantities: PropTypes.array.isRequired\n};\n\nexport default AllUnitsTooltipContent;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport AllUnitsTooltipContent from \"./AllUnitsTooltipContent\";\nimport { convertFromSIToAllUnits } from \"./TechnicalData/useUnitConversion\";\n\nconst AllUnitsTooltip = ({unitGroup, siValue, densities}) => {\n const quantities = convertFromSIToAllUnits(unitGroup, siValue, densities);\n\n return (\n \n );\n};\n\nAllUnitsTooltip.propTypes = {\n unitGroup: PropTypes.string.isRequired,\n siValue: PropTypes.number.isRequired,\n densities: PropTypes.object\n};\n\nexport default AllUnitsTooltip;\n","import { useContext, useMemo } from 'react';\nimport UnitSystemContext from 'components/common/UnitSystems/UnitSystemContext';\nimport UnitSystemStateContext from 'components/calculation/inputForms/unitSystem/UnitSystemStateContext';\nimport { UnitGroups } from 'utils/unitGroups.ts';\nimport round from 'lodash/round';\n\nconst convertFromSI = (unitSystem, unitGroupName, siAmount, densities = null) => {\n let toUnit = UnitGroups.GetDefaultUnitForMeasuringSystem(unitGroupName, unitSystem);\n return toUnit.convertFromSI(siAmount, densities);\n};\n\nconst convert = (unitSystem, unitGroupName, amount, unit, densities = null) => {\n let toUnit = UnitGroups.GetDefaultUnitForMeasuringSystem(unitGroupName, unitSystem);\n return UnitGroups.Convert(unitGroupName, amount, unit, toUnit.name, densities);\n};\n\nconst convertToSI = (unitGroupName, value, unitName, densities) => {\n const unitGroup = UnitGroups.getUnitGroup(unitGroupName);\n const unit = unitGroup.getUnit(unitName);\n return unit.convertToSI(value, densities);\n};\n\nconst convertFromSIToAllUnits = (unitGroupName, siAmount, densities = null) => {\n return UnitGroups.getUnitGroup(unitGroupName).units.map(u => {\n return {\n amount: u.convertFromSI(siAmount, densities),\n unit: u.name,\n unitGroup: unitGroupName\n };\n });\n};\n\nconst getDefaultUnit = (unitSystem, unitGroupName) => {\n let toUnit = UnitGroups.GetDefaultUnitForMeasuringSystem(unitGroupName, unitSystem);\n return toUnit.name;\n};\n\nconst format = (unitGroupName, amount) => {\n let unitGroup = UnitGroups.getUnitGroup(unitGroupName);\n return RoundToSignificantDigitsWithOffset(amount, unitGroup.signDigits, unitGroup.offset);\n};\n\nconst RoundToSignificantDigitsWithOffset = (x, significantDigits, offset) => {\n let exp10;\n let sci = 0;\n if ((Math.abs(x) + offset) === 0) exp10 = 0;\n else exp10 = Math.floor(Math.log10(Math.abs(x) + offset)) + 1;\n if ((exp10 <= -2) || (exp10 > 6)) sci = Math.floor((exp10 - 1) / 3) * 3;\n //else if (exp10 > 6) sci = Math.Floor(exp10 / 3) * 3;\n let rounded = round(x / Math.pow(10, exp10), significantDigits) * Math.pow(10, exp10 - sci);\n\n if (significantDigits < (exp10 - sci)) {\n return rounded.toFixed(0);\n }\n else\n {\n if (sci === 0) {\n return rounded.toFixed(significantDigits - exp10);\n } else {\n return rounded.toFixed(significantDigits - exp10 + sci)+ \"e\" + sci;\n }\n }\n};\n\nconst useUnitSystem = () => {\n const unitSystem = useContext(UnitSystemContext);\n\n return useMemo(() => {\n return {\n unitSystem: unitSystem,\n convertFromSI: (unitGroupName, siAmount, densities = null) => convertFromSI(unitSystem, unitGroupName, siAmount, densities),\n convert: (unitGroupName, amount, unit, densities = null) => convert(unitSystem, unitGroupName, amount, unit, densities),\n getDefaultUnit: (unitGroupName) => getDefaultUnit(unitSystem, unitGroupName),\n format: (unitGroupName, amount) => format(unitGroupName, amount)\n };\n }, [unitSystem]);\n};\n\nconst useLocalUnitSystem = () => {\n const unitSystem = useContext(UnitSystemStateContext);\n\n return useMemo(() => {\n return {\n unitSystem: unitSystem,\n convertFromSI: (unitGroupName, siAmount, densities = null) => convertFromSI(unitSystem, unitGroupName, siAmount, densities),\n convert: (unitGroupName, amount, unit, densities = null) => convert(unitSystem, unitGroupName, amount, unit, densities),\n getDefaultUnit: (unitGroupName) => getDefaultUnit(unitSystem, unitGroupName),\n format: (unitGroupName, amount) => format(unitGroupName, amount)\n };\n }, [unitSystem]);\n};\n\nexport {\n useUnitSystem,\n useLocalUnitSystem,\n convertFromSIToAllUnits,\n convertToSI,\n format,\n RoundToSignificantDigitsWithOffset,\n getDefaultUnit\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {Toolbar} from \"@material-ui/core\";\n\nconst useStyles = makeStyles(() => ({\n appBar: {\n top: 'auto',\n bottom: 0,\n backgroundColor: \"transparent\",\n position: \"sticky\",\n zIndex: 2,\n },\n}));\n\nconst BottomActionsBar = ({\n children\n}) => {\n const classes = useStyles();\n\n return (\n
\n \n {children}\n \n
\n );\n};\n\nBottomActionsBar.propTypes = {\n children: PropTypes.node.isRequired\n};\n\nexport default BottomActionsBar;\n","import React from 'react';\nimport CustomerContext from './CustomerStateContext';\n\nconst useCustomerState = () => {\n const context = React.useContext(CustomerContext);\n if (context === undefined) {\n throw new Error('useCustomerState must be used within a CustomerProvider');\n }\n return context;\n};\n\nexport default useCustomerState;\n","import React from \"react\";\nimport CustomerDispatchContext from './CustomerDispatchContext';\n\nconst useCustomerDispatch = () => {\n const context = React.useContext(CustomerDispatchContext);\n if (context === undefined) {\n throw new Error('useUnitSystemDispatch must be used within a CustomerProvider');\n }\n return context;\n};\n\nexport default useCustomerDispatch;\n","import useCustomerState from './useCustomerState';\nimport useCustomerDispatch from './useCustomerDispatch';\n\nconst useCustomer = () => {\n const customer = useCustomerState();\n const setCustomer = useCustomerDispatch();\n\n return [customer, setCustomer];\n};\n\nexport default useCustomer;\n","import React from 'react';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport PropTypes from 'prop-types';\n\nimport BulgarianFlag from 'styles/images/flags/bg.svg';\nimport VzechFlag from 'styles/images/flags/cz.svg';\nimport DenmarkFlag from 'styles/images/flags/dk.svg';\nimport GermanFlag from 'styles/images/flags/de.svg';\nimport UKFlag from 'styles/images/flags/gb.svg';\nimport SpainFlag from 'styles/images/flags/es.svg';\nimport EstioniaFlag from 'styles/images/flags/ee.svg';\nimport FinlandFlag from 'styles/images/flags/fi.svg';\nimport FrenchFlag from 'styles/images/flags/fr.svg';\nimport HungaryFlag from 'styles/images/flags/hu.svg';\nimport ItalyFlag from 'styles/images/flags/it.svg';\nimport JapanFlag from 'styles/images/flags/jp.svg';\nimport NetherlandsFlag from 'styles/images/flags/nl.svg';\nimport NorwegianFlag from 'styles/images/flags/no.svg';\nimport PolandFlag from 'styles/images/flags/pl.svg';\nimport PortugueseFlog from 'styles/images/flags/pt.svg';\nimport RomaniaFlag from 'styles/images/flags/ro.svg';\nimport RussianFlag from 'styles/images/flags/ru.svg';\nimport SlovakFlag from 'styles/images/flags/sk.svg';\nimport SwedishFlag from 'styles/images/flags/se.svg';\nimport ChinaFlag from 'styles/images/flags/cn.svg';\n\nconst supportedApplicationLanguages = [\"EN\", \"DE\", \"FR\", \"IT\", \"ES\", \"RU\", \"PL\", \"RO\"];\nconst supportedPrintoutsLanguages = [\"CS\", \"DA\", \"DE\", \"ET\", \"EN\", \"ES\", \"FR\", \"IT\", \"HU\", \"NL\", \"NO\", \"PL\", \"PT\", \"RO\", \"SK\", \"FI\", \"SV\", \"BG\", \"RU\", \"ZH\", \"JA\"];\n\n\nlet supportedLanguages = [\n { languageCode: \"BG\", flagSVG: BulgarianFlag, nativeName: \"Български\", englishName: \"Bulgarian\" },\n { languageCode: \"CS\", flagSVG: VzechFlag, nativeName: \"Čeština\", englishName: \"Czech\" },\n { languageCode: \"DA\", flagSVG: DenmarkFlag, nativeName: \"Dansk\", englishName: \"Danish\" },\n { languageCode: \"DE\", flagSVG: GermanFlag, nativeName: \"Deutsch\", englishName: \"German\" },\n { languageCode: \"EN\", flagSVG: UKFlag, nativeName: \"English\", englishName: \"English\" },\n { languageCode: \"ES\", flagSVG: SpainFlag, nativeName: \"Español\", englishName: \"Spanish\" },\n { languageCode: \"ET\", flagSVG: EstioniaFlag, nativeName: \"Eesti\", englishName: \"Estonian\" },\n { languageCode: \"FI\", flagSVG: FinlandFlag, nativeName: \"Suomi\", englishName: \"Finnish\" },\n { languageCode: \"FR\", flagSVG: FrenchFlag, nativeName: \"Français\", englishName: \"French\" },\n { languageCode: \"HU\", flagSVG: HungaryFlag, nativeName: \"Magyar\", englishName: \"Hungarian\" },\n { languageCode: \"IT\", flagSVG: ItalyFlag, nativeName: \"Italiano\", englishName: \"Italian\" },\n { languageCode: \"JA\", flagSVG: JapanFlag, nativeName: \"日本語 (日本)\", englishName: \"Japanese (Japan)\" },\n { languageCode: \"NL\", flagSVG: NetherlandsFlag, nativeName: \"Nederlands\", englishName: \"Dutch\" },\n { languageCode: \"NO\", flagSVG: NorwegianFlag, nativeName: \"Norsk\", englishName: \"Norwegian\" },\n { languageCode: \"PL\", flagSVG: PolandFlag, nativeName: \"Polski\", englishName: \"Polish\" },\n { languageCode: \"PT\", flagSVG: PortugueseFlog, nativeName: \"Português (Brasil)\", englishName: \"Portuguese (Brazil)\" },\n { languageCode: \"RO\", flagSVG: RomaniaFlag, nativeName: \"Română\", englishName: \"Romanian\" },\n { languageCode: \"RU\", flagSVG: RussianFlag, nativeName: \"Русский\", englishName: \"Russian\" },\n { languageCode: \"SK\", flagSVG: SlovakFlag, nativeName: \"Slovenčina\", englishName: \"Slovak\" },\n { languageCode: \"SV\", flagSVG: SwedishFlag, nativeName: \"Svenska\", englishName: \"Swedish\" },\n { languageCode: \"ZH\", flagSVG: ChinaFlag, nativeName: \"中文(简体)\", englishName: \"Chinese (Simplified)\" }\n];\n\nconst mapToFlags = (languages) => {\n return supportedLanguages.filter(x => languages.includes(x.languageCode));\n};\n\nconst LanguageSelect = ({languages, value, onChange}) => {\n const languagesToDisplay = mapToFlags(languages);\n\n const handleChange = (e) => {\n if (onChange) {\n onChange(e.target.value);\n }\n };\n\n return (\n \n {languagesToDisplay.map(l => ( {l.nativeName}))}\n \n );\n};\n\nLanguageSelect.propTypes = {\n languages: PropTypes.array.isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport { LanguageSelect as default,\n supportedApplicationLanguages,\n supportedPrintoutsLanguages\n };\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzYyNiIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhMzAwOCI+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICA8L2NjOldvcms+CiAgPC9yZGY6UkRGPgogPC9tZXRhZGF0YT4KIDxnIGlkPSJmbGFnIj4KICA8ZyBpZD0iZzMyNTkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIxcHQiIHRyYW5zZm9ybT0ic2NhbGUoMS4yNSAuOTM3NTApIj4KICAgPHJlY3QgaWQ9InJlY3Q2MjkiIGhlaWdodD0iMTcwLjY3IiB3aWR0aD0iNTEyIiB5PSIzNDEuMzMiIHg9IjAiIGZpbGw9IiNkZTIxMTAiLz4KICAgPHJlY3QgaWQ9InJlY3Q2MzEiIGhlaWdodD0iMTcwLjY3IiB3aWR0aD0iNTEyIiB5PSIwIiB4PSIwIiBmaWxsPSIjZmZmIi8+CiAgIDxyZWN0IGlkPSJyZWN0NjMyIiBoZWlnaHQ9IjE3MC42NyIgd2lkdGg9IjUxMiIgeT0iMTcwLjY3IiB4PSIwIiBmaWxsPSIjMzE5NDAwIi8+CiAgPC9nPgogPC9nPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTMwNjUiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZGVmcyBpZD0iZGVmczM4MCI+CiAgPGNsaXBQYXRoIGlkPSJjbGlwUGF0aDMwNTgiIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgPHJlY3QgaWQ9InJlY3QzMDYwIiBmaWxsLW9wYWNpdHk9IjAuNjciIGhlaWdodD0iNTEyIiB3aWR0aD0iNjgyLjY3IiB5PSItLjAwMDAwMTg3MTUiIHg9Ii03NCIvPgogIDwvY2xpcFBhdGg+CiA8L2RlZnM+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgzMDU4KSIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzUwIDAgMCAuOTM3NTAgNjkuMzc1IC4wMDAwMDE3NTQ2KSIgc3Ryb2tlLXdpZHRoPSIxcHQiPgogIDxyZWN0IGlkPSJyZWN0MTQ5IiBoZWlnaHQ9IjUxMiIgd2lkdGg9Ijc2OCIgeT0iLjAwMDAxNjU4NSIgeD0iLTc0IiBmaWxsPSIjZTgwMDAwIi8+CiAgPHJlY3QgaWQ9InJlY3QyODAiIGhlaWdodD0iMjU2IiB3aWR0aD0iNzY4IiB5PSIuMDAwMDE2NTg1IiB4PSItNzQiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBpZD0icGF0aDI3OSIgZD0ibS03NC03LjMyOTdlLTcgMzgyLjczIDI1NS42Ny0zODIuNzMgMjU1LjM0di01MTEuMDF6IiBmaWxsPSIjMDAwMDZmIi8+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzU0OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhMjk5MyI+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICA8L2NjOldvcms+CiAgPC9yZGY6UkRGPgogPC9tZXRhZGF0YT4KIDxkZWZzIGlkPSJkZWZzNTUwIj4KICA8Y2xpcFBhdGggaWQ9ImNsaXBQYXRoNDEzMCIgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICA8cmVjdCBpZD0icmVjdDQxMzIiIGZpbGwtb3BhY2l0eT0iMC42NyIgaGVpZ2h0PSI1MTIiIHdpZHRoPSI2ODIuNjciIHk9Ii0uMDAwMDAzOTA1OCIgeD0iLTY0Ii8+CiAgPC9jbGlwUGF0aD4KIDwvZGVmcz4KIDxnIGlkPSJmbGFnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcGF0aD0idXJsKCNjbGlwUGF0aDQxMzApIiB0cmFuc2Zvcm09Im1hdHJpeCguOTM3NSAwIDAgLjkzNzUgNjAgLjAwMDAwMzY2MTcpIiBzdHJva2Utd2lkdGg9IjFwdCI+CiAgPHJlY3QgaWQ9InJlY3Q1NTEiIGhlaWdodD0iNTEyIiB3aWR0aD0iNjc2LjU3IiB5PSItLjAwMDAwMzkwNTgiIHg9Ii02NCIgZmlsbD0iI2ZiMWIyMiIvPgogIDxyZWN0IGlkPSJyZWN0NTUyIiBoZWlnaHQ9IjczLjE0MyIgd2lkdGg9IjY3Ni41NyIgeT0iMjE5LjQzIiB4PSItNjQiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDU1MyIgaGVpZ2h0PSI1MTIiIHdpZHRoPSI3My4xNDMiIHk9Ii0uMDAwMDAzOTA1OCIgeD0iMTU1LjQzIiBmaWxsPSIjZmZmIi8+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQo8cmRmOlJERiB4bWxucz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPFdvcmsgcmRmOmFib3V0PSIiPgogICA8ZGM6dGl0bGU+U1ZHIGdyYXBoaWMgb2YgR2VybWFuIGZsYWdzPC9kYzp0aXRsZT4KICAgPGRjOnJpZ2h0cz48QWdlbnQ+CiAgICAgIDxkYzp0aXRsZT5QaGlsaXBwIFNhZGxlZGVyPC9kYzp0aXRsZT4KICAgPC9BZ2VudD48L2RjOnJpZ2h0cz4KICAgPGxpY2Vuc2UgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9QdWJsaWNEb21haW4iIC8+CjwvV29yaz4KCjxMaWNlbnNlIHJkZjphYm91dD0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUHVibGljRG9tYWluIj4KICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGlzdHJpYnV0aW9uIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgo8c3ZnIGlkPSJzdmczNzgiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjQ4MCIgd2lkdGg9IjY0MCIgdmVyc2lvbj0iMS4wIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTMwNzQiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2Utd2lkdGg9IjFwdCIgdHJhbnNmb3JtPSJtYXRyaXgoLjYwMjA3IDAgMCAuNzUyNTkgMCAtLjAwMDAyODE1NykiPgogIDxyZWN0IGlkPSJyZWN0MTcxIiBoZWlnaHQ9IjIxMi42IiB3aWR0aD0iMTA2MyIgeT0iNDI1LjIiIHg9IjAiIGZpbGw9IiNmZmU2MDAiLz4KICA8cmVjdCBpZD0icmVjdDI1NiIgaGVpZ2h0PSIyMTIuNiIgd2lkdGg9IjEwNjMiIHk9IjAuMDAwMDM4IiB4PSIwIi8+CiAgPHJlY3QgaWQ9InJlY3QyNTUiIGhlaWdodD0iMjEyLjYiIHdpZHRoPSIxMDYzIiB5PSIyMTIuNiIgeD0iMCIgZmlsbD0iI2YwMCIvPgogPC9nPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQoKPHJkZjpSREYgeG1sbnM9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjLyIKICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPFdvcmsgcmRmOmFib3V0PSIiPgogICAgPGRjOnRpdGxlPk5ldyBaZWFsYW5kLCBBdXN0cmFsaWEsIFVuaXRlZCBLaW5nZG9tLCBVbml0ZWQgU3RhdGVzLCAKQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSwgQXplcmJhaWphbiwgQXJtZW5pYSwgQmFoYW1hcywgQmVsZ2l1bSwgQmVuaW4sIApCdWxnYXJpYSwgRXN0b25pYSwgRmlubGFuZCwgR2Fib24sIEdhbWJpYSwgR2VybWFueSwgR3JlZWNlLCBHcmVlbmxhbmQsIApHdWluZWEsIEhvbmR1cmFzLCBJc3JhZWwsIEphbWFpY2EsIEpvcmRhbiwgYW5kIFJvbWFuaWEgRmxhZ3M8L2RjOnRpdGxlPgogICAgPGRjOnJpZ2h0cz48QWdlbnQ+CiAgICAgICA8ZGM6dGl0bGU+RGFuaWVsIE1jUmFlPC9kYzp0aXRsZT4KICAgIDwvQWdlbnQ+PC9kYzpyaWdodHM+CiAgICA8bGljZW5zZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1B1YmxpY0RvbWFpbiIgLz4KPC9Xb3JrPgoKPExpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9QdWJsaWNEb21haW4iPgogICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlvbiIgLz4KICAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGVyaXZhdGl2ZVdvcmtzIiAvPgo8L0xpY2Vuc2U+CjwvcmRmOlJERj4KLS0+CjxzdmcgaWQ9InN2ZzEiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjQ4MCIgd2lkdGg9IjY0MCIgdmVyc2lvbj0iMS4xIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTI5OTUiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZGVmcyBpZD0iZGVmczMiPgogIDxjbGlwUGF0aCBpZD0iY2xpcFBhdGg4NjczIiBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgIDxyZWN0IGlkPSJyZWN0ODY3NSIgZmlsbC1vcGFjaXR5PSIwLjY3IiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjY4Mi42NyIgeT0iLS4wMDAwMDI4NjEzIiB4PSItODUuMzMzIi8+CiAgPC9jbGlwUGF0aD4KIDwvZGVmcz4KIDxnIGlkPSJmbGFnIiBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGg4NjczKSIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzUwIDAgMCAuOTM3NTAgODAgLjAwMDAwMjY4MjUpIj4KICA8ZyBpZD0iZzU3OCIgc3Ryb2tlLXdpZHRoPSIxcHQiIHRyYW5zZm9ybT0ibWF0cml4KDE3LjA2NyAwIDAgMTcuMDY3IC0yNTYgLTAuMDAwMDAyNCkiPgogICA8cmVjdCBpZD0icmVjdDEyNCIgaGVpZ2h0PSIzMCIgd2lkdGg9IjYwIiB5PSIwIiB4PSIwIiBmaWxsPSIjMDA2Ii8+CiAgIDxnIGlkPSJnNTg0Ij4KICAgIDxwYXRoIGlkPSJwYXRoMTQ2IiBkPSJtMCAwdjMuMzU0MWw1My4yOTIgMjYuNjQ2aDYuNzA4di0zLjM1NGwtNTMuMjkyLTI2LjY0NmgtNi43MDh6bTYwIDB2My4zNTRsLTUzLjI5MiAyNi42NDZoLTYuNzA4di0zLjM1NGw1My4yOTItMjYuNjQ2aDYuNzA4eiIgZmlsbD0iI2ZmZiIvPgogICAgPHBhdGggaWQ9InBhdGgxMzYiIGQ9Im0yNSAwdjMwaDEwdi0zMGgtMTB6bS0yNSAxMHYxMGg2MHYtMTBoLTYweiIgZmlsbD0iI2ZmZiIvPgogICAgPHBhdGggaWQ9InBhdGgxNDEiIGQ9Im0wIDEydjZoNjB2LTZoLTYwem0yNy0xMnYzMGg2di0zMGgtNnoiIGZpbGw9IiNjMDAiLz4KICAgIDxwYXRoIGlkPSJwYXRoMTUwIiBkPSJtMCAzMCAyMC0xMGg0LjQ3MmwtMjAgMTBoLTQuNDcyem0wLTMwIDIwIDEwaC00LjQ3MmwtMTUuNTI4LTcuNzYzOXYtMi4yMzYxem0zNS41MjggMTAgMjAtMTBoNC40NzJsLTIwIDEwaC00LjQ3MnptMjQuNDcyIDIwLTIwLTEwaDQuNDcybDE1LjUyOCA3Ljc2NHYyLjIzNnoiIGZpbGw9IiNjMDAiLz4KICAgPC9nPgogIDwvZz4KIDwvZz4KPC9zdmc+Cg==\"","export default __webpack_public_path__ + \"1b922552371d3513bd8a1754f9c38eea.svg\";","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQo8cmRmOlJERiB4bWxucz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgogICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6dGl0bGU+TmV3IFplYWxhbmQsIEF1c3RyYWxpYSwgVW5pdGVkIEtpbmdkb20sIFVuaXRlZCBTdGF0ZXMsIApCb3NuaWEgYW5kIEhlcnplZ292aW5hLCBBemVyYmFpamFuLCBBcm1lbmlhLCBCYWhhbWFzLCBCZWxnaXVtLCBCZW5pbiwgCkJ1bGdhcmlhLCBFc3RvbmlhLCBGaW5sYW5kLCBHYWJvbiwgR2FtYmlhLCBHZXJtYW55LCBHcmVlY2UsIEdyZWVubGFuZCwgCkd1aW5lYSwgSG9uZHVyYXMsIElzcmFlbCwgSmFtYWljYSwgSm9yZGFuLCBhbmQgUm9tYW5pYSBGbGFnczwvZGM6dGl0bGU+CiAgICA8ZGM6cmlnaHRzPjxBZ2VudD4KICAgICAgIDxkYzp0aXRsZT5EYW5pZWwgTWNSYWU8L2RjOnRpdGxlPgogICAgPC9BZ2VudD48L2RjOnJpZ2h0cz4KICAgIDxsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUHVibGljRG9tYWluIiAvPgo8L1dvcms+Cgo8TGljZW5zZSByZGY6YWJvdXQ9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1B1YmxpY0RvbWFpbiI+CiAgICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1JlcHJvZHVjdGlvbiIgLz4KICAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGlzdHJpYnV0aW9uIiAvPgogICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CjwvTGljZW5zZT4KPC9yZGY6UkRGPgotLT4KPHN2ZyBpZD0ic3ZnMzc4IiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI2NDAiIHZlcnNpb249IjEiIHk9IjAiIHg9IjAiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhOCI+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICA8L2NjOldvcms+CiAgPC9yZGY6UkRGPgogPC9tZXRhZGF0YT4KIDxnIGlkPSJmbGFnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMXB0Ij4KICA8cmVjdCBpZD0icmVjdDE3MSIgcng9IjAiIHJ5PSIwIiBoZWlnaHQ9IjQ3Ny45IiB3aWR0aD0iNjQwIiB5PSIyLjg0MjJlLTE0IiB4PSIwIi8+CiAgPHJlY3QgaWQ9InJlY3QyNTYiIHJ4PSIwIiByeT0iMCIgaGVpZ2h0PSIxNTkuMyIgd2lkdGg9IjY0MCIgeT0iMzIwLjciIHg9IjAiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDI1NSIgaGVpZ2h0PSIxNTkuMyIgd2lkdGg9IjY0MCIgeT0iMi44NDIyZS0xNCIgeD0iMCIgZmlsbD0iIzAwZiIvPgogPC9nPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQo8cmRmOlJERiB4bWxucz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgogICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6dGl0bGU+TmV3IFplYWxhbmQsIEF1c3RyYWxpYSwgVW5pdGVkIEtpbmdkb20sIFVuaXRlZCBTdGF0ZXMsIApCb3NuaWEgYW5kIEhlcnplZ292aW5hLCBBemVyYmFpamFuLCBBcm1lbmlhLCBCYWhhbWFzLCBCZWxnaXVtLCBCZW5pbiwgCkJ1bGdhcmlhLCBFc3RvbmlhLCBGaW5sYW5kLCBHYWJvbiwgR2FtYmlhLCBHZXJtYW55LCBHcmVlY2UsIEdyZWVubGFuZCwgCkd1aW5lYSwgSG9uZHVyYXMsIElzcmFlbCwgSmFtYWljYSwgSm9yZGFuLCBhbmQgUm9tYW5pYSBGbGFnczwvZGM6dGl0bGU+CiAgICA8ZGM6cmlnaHRzPjxBZ2VudD4KICAgICAgIDxkYzp0aXRsZT5EYW5pZWwgTWNSYWU8L2RjOnRpdGxlPgogICAgPC9BZ2VudD48L2RjOnJpZ2h0cz4KICAgIDxsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUHVibGljRG9tYWluIiAvPgo8L1dvcms+Cgo8TGljZW5zZSByZGY6YWJvdXQ9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1B1YmxpY0RvbWFpbiI+CiAgICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1JlcHJvZHVjdGlvbiIgLz4KICAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGlzdHJpYnV0aW9uIiAvPgogICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CjwvTGljZW5zZT4KPC9yZGY6UkRGPgotLT4KPHN2ZyBpZD0ic3ZnNTU1IiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI2NDAiIHZlcnNpb249IjEuMCIgeT0iMCIgeD0iMCIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KIDxtZXRhZGF0YSBpZD0ibWV0YWRhdGEzMDEzIj4KICA8cmRmOlJERj4KICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgogICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+CiAgIDwvY2M6V29yaz4KICA8L3JkZjpSREY+CiA8L21ldGFkYXRhPgogPGRlZnMgaWQ9ImRlZnM1NTciPgogIDxjbGlwUGF0aCBpZD0iY2xpcFBhdGgzNjA1IiBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgIDxyZWN0IGlkPSJyZWN0MzYwNyIgZmlsbC1vcGFjaXR5PSIwLjY3IiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjY4Mi42NyIgeT0iLS4wMDAwMDE5MTM4IiB4PSItMTkuNDUxIi8+CiAgPC9jbGlwUGF0aD4KIDwvZGVmcz4KIDxnIGlkPSJmbGFnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcGF0aD0idXJsKCNjbGlwUGF0aDM2MDUpIiB0cmFuc2Zvcm09Im1hdHJpeCguOTM3NTAgMCAwIC45Mzc1MCAxOC4yMzUgLjAwMDAwMTc5NDIpIiBzdHJva2Utd2lkdGg9IjFwdCI+CiAgPHJlY3QgaWQ9InJlY3Q1NjUiIGhlaWdodD0iMTg2LjM0IiB3aWR0aD0iMjQ5LjM1IiB5PSIzMjUuNjYiIHg9Ii0xMDUuNjIiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDU2NiIgaGVpZ2h0PSI1MTIiIHdpZHRoPSIxNDkuOTQiIHk9Ii0uMDAwMDAyNzAyNCIgeD0iMTQzLjU3IiBmaWxsPSIjMDA2MmRhIi8+CiAgPHJlY3QgaWQ9InJlY3Q1NjciIGhlaWdodD0iMTM5LjY0IiB3aWR0aD0iODk3LjY3IiB5PSIxODYuMTgiIHg9Ii0xMDUuNjIiIGZpbGw9IiMwMDYyZGEiLz4KICA8cmVjdCBpZD0icmVjdDU2OCIgaGVpZ2h0PSIxODYuMzQiIHdpZHRoPSIyNDkuMzUiIHk9Ii4wMDMwMjQ3IiB4PSItMTA1LjYyIiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q1NzAiIGhlaWdodD0iMTg2LjM0IiB3aWR0aD0iNDk4LjciIHk9IjMyNS42NiIgeD0iMjkzLjM1IiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q1NzQiIGhlaWdodD0iMTg2LjM0IiB3aWR0aD0iNDk4LjciIHk9Ii4wMDE1MTczIiB4PSIyOTMuMzUiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDU2NCIgaGVpZ2h0PSIxODYuMzQiIHdpZHRoPSIyNDkuMzUiIHk9IjMyNS42NiIgeD0iLTEwNS42MiIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IGlkPSJyZWN0NTY5IiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjE0OS45NCIgeT0iLS4wMDAwMDI3MDI0IiB4PSIxNDMuNTciIGZpbGw9IiMwMDYyZGEiLz4KICA8cmVjdCBpZD0icmVjdDU3MiIgaGVpZ2h0PSIxODYuMzQiIHdpZHRoPSIyNDkuMzUiIHk9Ii4wMDMwMjQ3IiB4PSItMTA1LjYyIiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q1NzMiIGhlaWdodD0iMTg2LjM0IiB3aWR0aD0iNDk4LjciIHk9IjMyNS42NiIgeD0iMjkzLjM1IiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q1NzUiIGhlaWdodD0iMTg2LjM0IiB3aWR0aD0iNDk4LjciIHk9Ii4wMDE1MTczIiB4PSIyOTMuMzUiIGZpbGw9IiNmZmYiLz4KIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTMxNzYiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZzM2MjciIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIxcHQiIHRyYW5zZm9ybT0ic2NhbGUoMS4yNSAuOTM3NSkiPgogIDxyZWN0IGlkPSJyZWN0MTcxIiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjUxMiIgeT0iNy40MjE5ZS03IiB4PSIwIiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q0MDMiIGhlaWdodD0iNTEyIiB3aWR0aD0iMTcwLjY3IiB5PSI3LjQyMTllLTciIHg9IjAiIGZpbGw9IiMwMDI2N2YiLz4KICA8cmVjdCBpZD0icmVjdDEzNSIgaGVpZ2h0PSI1MTIiIHdpZHRoPSIxNzAuNjciIHk9IjcuNDIxOWUtNyIgeD0iMzQxLjMzIiBmaWxsPSIjZjMxODMwIi8+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTM4MDAiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZmxhZyIgdHJhbnNmb3JtPSJzY2FsZSgxLjI1IC45Mzc1MCkiPgogIDxnIGlkPSJnNTU0IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0ibWF0cml4KC40ODE2NiAwIDAgLjY4ODA4IC4wMDAzNTI3OCAtLjAwMDA0MTUyNSkiPgogICA8cmVjdCBpZD0icmVjdDE0OSIgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIGhlaWdodD0iNzQ0LjA5IiB3aWR0aD0iMTA2MyIgeT0iLTc0NC4wOSIgeD0iLTEwNjMiIGZpbGw9IiNmZmYiLz4KICAgPHJlY3QgaWQ9InJlY3QxNDgiIHRyYW5zZm9ybT0ic2NhbGUoLTEpIiBoZWlnaHQ9IjI0OC4wMyIgd2lkdGg9IjEwNjMiIHk9Ii03NDQuMDkiIHg9Ii0xMDYzIiBmaWxsPSIjMzg4ZDAwIi8+CiAgIDxyZWN0IGlkPSJyZWN0NTg1IiB0cmFuc2Zvcm09InNjYWxlKC0xKSIgaGVpZ2h0PSIyNDguMDMiIHdpZHRoPSIxMDYzIiB5PSItMjQ4LjIzIiB4PSItMTA2MyIgZmlsbD0iI2Q0MzUxNiIvPgogIDwvZz4KIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTQ2MDQiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2Utd2lkdGg9IjFwdCIgdHJhbnNmb3JtPSJzY2FsZSguNjAyMDcgLjY3NzMzKSI+CiAgPHJlY3QgaWQ9InJlY3QxNzEiIGhlaWdodD0iNzA4LjY2IiB3aWR0aD0iMTA2MyIgeT0iMCIgeD0iMCIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IGlkPSJyZWN0NDAzIiBoZWlnaHQ9IjcwOC42NiIgd2lkdGg9IjM1NC4zMyIgeT0iMCIgeD0iMCIgZmlsbD0iIzAwNTcwMCIvPgogIDxyZWN0IGlkPSJyZWN0MTM1IiBoZWlnaHQ9IjcwOC42NiIgd2lkdGg9IjM1NC4zMyIgeT0iMCIgeD0iNzA4LjY2IiBmaWxsPSIjZmMwMDAwIi8+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTQ2MzciPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZGVmcyBpZD0iZGVmczM4MCI+CiAgPGNsaXBQYXRoIGlkPSJjbGlwUGF0aDMxMjEiIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgPHJlY3QgaWQ9InJlY3QzMTIzIiBmaWxsLW9wYWNpdHk9IjAuNjciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB5PSIzMiIgeD0iLTg4LjAwMSIvPgogIDwvY2xpcFBhdGg+CiA8L2RlZnM+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgzMTIxKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODguMDAxIC0zMikiIHN0cm9rZS13aWR0aD0iMXB0Ij4KICA8cmVjdCBpZD0icmVjdDE0OSIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI3MjAiIHk9IjMyIiB4PSItMTI4IiBmaWxsPSIjZmZmIi8+CiAgPGVsbGlwc2UgaWQ9InBhdGgxOTQiIGQ9Im0gNzE4LjAxMDQ4LDM0NC4wNDY2NiBjIDAsMTA3LjY1NjExIC04Ny4yNzI1MiwxOTQuOTI4NjIgLTE5NC45Mjg2MywxOTQuOTI4NjIgLTEwNy42NTYxMSwwIC0xOTQuOTI4NjQsLTg3LjI3MjUxIC0xOTQuOTI4NjQsLTE5NC45Mjg2MiAwLC0xMDcuNjU2MSA4Ny4yNzI1MywtMTk0LjkyODYyIDE5NC45Mjg2NCwtMTk0LjkyODYyIDEwNy42NTYxMSwwIDE5NC45Mjg2Myw4Ny4yNzI1MiAxOTQuOTI4NjMsMTk0LjkyODYyIHoiIHJ4PSIxOTQuOTMiIHJ5PSIxOTQuOTMiIHRyYW5zZm9ybT0ibWF0cml4KC43NjU1NCAwIDAgLjc2NTU0IC0xNjguNDQgOC42MTc2KSIgY3k9IjM0NC4wNSIgY3g9IjUyMy4wOCIgZmlsbD0iI2QzMDAwMCIvPgogPC9nPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQo8cmRmOlJERiB4bWxucz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPFdvcmsgcmRmOmFib3V0PSIiPgogICA8ZGM6dGl0bGU+U1ZHIEdyYXBoaWMgb2YgdGhlIER1dGNoIGZsYWc8L2RjOnRpdGxlPgogICA8ZGM6cmlnaHRzPjxBZ2VudD4KICAgICAgPGRjOnRpdGxlPk1hcmMgTWF1cmVyPC9kYzp0aXRsZT4KICAgPC9BZ2VudD48L2RjOnJpZ2h0cz4KICAgPGxpY2Vuc2UgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9QdWJsaWNEb21haW4iIC8+CjwvV29yaz4KCjxMaWNlbnNlIHJkZjphYm91dD0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUHVibGljRG9tYWluIj4KICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGlzdHJpYnV0aW9uIiAvPgogICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rlcml2YXRpdmVXb3JrcyIgLz4KPC9MaWNlbnNlPgo8L3JkZjpSREY+Ci0tPgo8c3ZnIGlkPSJzdmczNzgiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjQ4MCIgd2lkdGg9IjY0MCIgdmVyc2lvbj0iMSIgeT0iMCIgeD0iMCIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KIDxtZXRhZGF0YSBpZD0ibWV0YWRhdGEzMTUxIj4KICA8cmRmOlJERj4KICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgogICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+CiAgIDwvY2M6V29yaz4KICA8L3JkZjpSREY+CiA8L21ldGFkYXRhPgogPGcgaWQ9ImZsYWciIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIxcHQiIHRyYW5zZm9ybT0ic2NhbGUoMS4yNSAuOTM3NSkiPgogIDxyZWN0IGlkPSJyZWN0MTcxIiByeD0iMCIgcnk9IjAiIGhlaWdodD0iNTA5Ljc2IiB3aWR0aD0iNTEyIiB5PSItLjAwMDAwMTk5MDciIHg9IjAiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDI1NiIgcng9IjAiIHJ5PSIwIiBoZWlnaHQ9IjE2OS45MiIgd2lkdGg9IjUxMiIgeT0iMzQyLjA4IiB4PSIwIiBmaWxsPSIjMjE0NjhiIi8+CiAgPHJlY3QgaWQ9InJlY3QyNTUiIGhlaWdodD0iMTY5LjkyIiB3aWR0aD0iNTEyIiB5PSItLjAwMDAwMTk5MDciIHg9IjAiIGZpbGw9IiNhZTFjMjgiLz4KIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9ImlzbGVuc2tpZmFuaW5uIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI2NDAiIHZlcnNpb249IjEiIHk9IjAiIHg9IjAiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhMzE2MyI+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICA8L2NjOldvcms+CiAgPC9yZGY6UkRGPgogPC9tZXRhZGF0YT4KIDxkZWZzIGlkPSJkZWZzMzgwIj4KICA8Y2xpcFBhdGggaWQ9ImNsaXBQYXRoMzczOCIgY2xpcFBhdGhVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICA8cmVjdCBpZD0icmVjdDM3NDAiIGZpbGwtb3BhY2l0eT0iMC42NyIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI2NDAiIHk9IjYiIHg9Ii0zMiIvPgogIDwvY2xpcFBhdGg+CiA8L2RlZnM+CiA8ZyBpZD0iZmxhZyIgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoMzczOCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMyLC02KSI+CiAgPHJlY3QgaWQ9InJlY3Q4MTUzIiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjUxMiIgeT0iLTIwIiB4PSIwIiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3Q1ODMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaGVpZ2h0PSI1MTEuODQiIHdpZHRoPSI2OTkuNzQiIHk9Ii0xOS44NDIiIHg9Ii03MCIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDU2MSIgZmlsbC1ydWxlPSJldmVub2RkIiBoZWlnaHQ9IjIyMS40NyIgd2lkdGg9IjIyMi45NCIgeT0iLTQzLjAzOSIgeD0iLTk5LjIxMyIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiNkNzI4MjgiLz4KICA8cmVjdCBpZD0icmVjdDU2MiIgZmlsbC1ydWxlPSJldmVub2RkIiBoZWlnaHQ9IjIyMS40NyIgd2lkdGg9IjQzMS4zNiIgeT0iLTQzLjAzOSIgeD0iMjQ3LjQyIiBzdHJva2Utd2lkdGg9IjFwdCIgZmlsbD0iI2Q3MjgyOCIvPgogIDxyZWN0IGlkPSJyZWN0NTYzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMjI1Ljc2IiB3aWR0aD0iMjIwIiB5PSIzMDEuNjciIHg9Ii05OS4yMTMiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjZDcyODI4Ii8+CiAgPHJlY3QgaWQ9InJlY3Q1NjQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaGVpZ2h0PSIyMjMuNjUiIHdpZHRoPSI0MTkuNjgiIHk9IjMwMy43OSIgeD0iMjUwIiBzdHJva2Utd2lkdGg9IjFwdCIgZmlsbD0iI2Q3MjgyOCIvPgogIDxyZWN0IGlkPSJyZWN0NTY1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iNTQ1LjY3IiB3aWR0aD0iNjQuNDI1IiB5PSItNDMuMDM5IiB4PSIxNTQuNjUiIHN0cm9rZS13aWR0aD0iMXB0IiBmaWxsPSIjMDAzODk3Ii8+CiAgPHJlY3QgaWQ9InJlY3Q1NjYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaGVpZ2h0PSI2My40NDQiIHdpZHRoPSI3NjMuMDEiIHk9IjIwNC44NCIgeD0iLTk5LjIxMyIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiMwMDM4OTciLz4KIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTM2ODMiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InNjYWxlKDEuMjUgLjkzNzUpIj4KICA8cmVjdCBpZD0icmVjdDE0OSIgdHJhbnNmb3JtPSJzY2FsZSgtMSkiIGhlaWdodD0iNTEyIiB3aWR0aD0iNTEyIiB5PSItNTEyIiB4PSItNTEyIiBmaWxsPSIjZmZmIi8+CiAgPHJlY3QgaWQ9InJlY3QxNDgiIHRyYW5zZm9ybT0ic2NhbGUoLTEpIiBoZWlnaHQ9IjI1NiIgd2lkdGg9IjUxMiIgeT0iLTUxMiIgeD0iLTUxMiIgc3Ryb2tlLXdpZHRoPSIxcHQiIGZpbGw9IiNkYzE0M2MiLz4KIDwvZz4KPC9zdmc+Cg==\"","export default __webpack_public_path__ + \"85b03fa348f502e020c4b5712358e46b.svg\";","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjwhLS0gL0NyZWF0aXZlIENvbW1vbnMgUHVibGljIERvbWFpbiAtLT4KPCEtLQo8cmRmOlJERiB4bWxucz0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvIgogICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6dGl0bGU+TmV3IFplYWxhbmQsIEF1c3RyYWxpYSwgVW5pdGVkIEtpbmdkb20sIFVuaXRlZCBTdGF0ZXMsIApCb3NuaWEgYW5kIEhlcnplZ292aW5hLCBBemVyYmFpamFuLCBBcm1lbmlhLCBCYWhhbWFzLCBCZWxnaXVtLCBCZW5pbiwgCkJ1bGdhcmlhLCBFc3RvbmlhLCBGaW5sYW5kLCBHYWJvbiwgR2FtYmlhLCBHZXJtYW55LCBHcmVlY2UsIEdyZWVubGFuZCwgCkd1aW5lYSwgSG9uZHVyYXMsIElzcmFlbCwgSmFtYWljYSwgSm9yZGFuLCBhbmQgUm9tYW5pYSBGbGFnczwvZGM6dGl0bGU+CiAgICA8ZGM6cmlnaHRzPjxBZ2VudD4KICAgICAgIDxkYzp0aXRsZT5EYW5pZWwgTWNSYWU8L2RjOnRpdGxlPgogICAgPC9BZ2VudD48L2RjOnJpZ2h0cz4KICAgIDxsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUHVibGljRG9tYWluIiAvPgo8L1dvcms+Cgo8TGljZW5zZSByZGY6YWJvdXQ9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1B1YmxpY0RvbWFpbiI+CiAgICA8cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL1JlcHJvZHVjdGlvbiIgLz4KICAgIDxwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGlzdHJpYnV0aW9uIiAvPgogICAgPHBlcm1pdHMgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CjwvTGljZW5zZT4KPC9yZGY6UkRGPgotLT4KPHN2ZyBpZD0ic3ZnNTQ4IiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI0ODAiIHdpZHRoPSI2NDAiIHZlcnNpb249IjEuMSIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KIDxtZXRhZGF0YSBpZD0ibWV0YWRhdGE0MzM3Ij4KICA8cmRmOlJERj4KICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgogICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+CiAgIDwvY2M6V29yaz4KICA8L3JkZjpSREY+CiA8L21ldGFkYXRhPgogPGcgaWQ9ImZsYWciIHRyYW5zZm9ybT0ic2NhbGUoLjY0MDY0IC43MjA3MikiPgogIDxnIGlkPSJnNTU1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMXB0IiB0cmFuc2Zvcm09InNjYWxlKDguMzI1KSI+CiAgIDxyZWN0IGlkPSJyZWN0NTUxIiBoZWlnaHQ9IjgwIiB3aWR0aD0iNDAiIHk9IjAiIHg9IjAiIGZpbGw9IiMwMDMxOWMiLz4KICAgPHJlY3QgaWQ9InJlY3Q1NTIiIGhlaWdodD0iODAiIHdpZHRoPSI0MCIgeT0iMCIgeD0iNDAiIGZpbGw9IiNmZmRlMDAiLz4KICAgPHJlY3QgaWQ9InJlY3Q1NTMiIGhlaWdodD0iODAiIHdpZHRoPSI0MCIgeT0iMCIgeD0iODAiIGZpbGw9IiNkZTIxMTAiLz4KICA8L2c+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTQzNDYiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2Utd2lkdGg9IjFwdCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4yNSAwIDAgLjkzNzUwIDAgLS4wMDAwMDIwMDIxKSI+CiAgPHJlY3QgaWQ9InJlY3QxNzEiIGhlaWdodD0iNTEyIiB3aWR0aD0iNTEyIiB5PSIuMDAwMDAyNDExNiIgeD0iMCIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IGlkPSJyZWN0NDAzIiBoZWlnaHQ9IjM0MS4zMyIgd2lkdGg9IjUxMiIgeT0iMTcwLjY3IiB4PSIwIiBmaWxsPSIjMDEwMTdlIi8+CiAgPHJlY3QgaWQ9InJlY3QxMzUiIGhlaWdodD0iMTcwLjY3IiB3aWR0aD0iNTEyIiB5PSIzNDEuMzMiIHg9IjAiIGZpbGw9IiNmZTAxMDEiLz4KIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzM3OCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxIiB5PSIwIiB4PSIwIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTMxMjAiPgogIDxyZGY6UkRGPgogICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwvcmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZGVmcyBpZD0iZGVmczM4MCI+CiAgPGNsaXBQYXRoIGlkPSJjbGlwUGF0aDk2MjgiIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgPHJlY3QgaWQ9InJlY3Q5NjMwIiBmaWxsLW9wYWNpdHk9IjAuNjciIGhlaWdodD0iNTEyIiB3aWR0aD0iNjgyLjY3IiB5PSIuMDAwMDAzMzczOSIgeD0iLTI2LjMzNCIvPgogIDwvY2xpcFBhdGg+CiA8L2RlZnM+CiA8ZyBpZD0iZmxhZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGg5NjI4KSIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzUwIDAgMCAuOTM3NTAgMjQuNjg4IC0uMDAwMDAzMTYzMCkiIHN0cm9rZS13aWR0aD0iMXB0Ij4KICA8cmVjdCBpZD0icmVjdDE3MSIgaGVpZ2h0PSI1MTIiIHdpZHRoPSI3NjgiIHk9Ii4wMDAwMDI0MTE2IiB4PSItNjkiIGZpbGw9IiNmZmYiLz4KICA8cmVjdCBpZD0icmVjdDQwMyIgaGVpZ2h0PSIzNDEuMzMiIHdpZHRoPSI3NjgiIHk9IjE3MC42NyIgeD0iLTY5IiBmaWxsPSIjMDEwMTdlIi8+CiAgPHJlY3QgaWQ9InJlY3QxMzUiIGhlaWdodD0iMTcwLjY3IiB3aWR0aD0iNzY4IiB5PSIzNDEuMzMiIHg9Ii02OSIgZmlsbD0iI2ZlMDEwMSIvPgogIDxwYXRoIGlkPSJwYXRoMTUwIiBkPSJtNjQuNzM2IDExNi4ydjE0My41N2M5LjgzMzEgNTYuMDUxIDM1Ljg5MyAxMTMuMDkgMTIzLjkgMTQyLjA5IDg3LjUxOS0yOS4wMDkgMTE1LjU0LTgzLjU4NiAxMjUuODctMTQzLjA4di0xNDIuNTloLTI0OS43N3oiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBpZD0icGF0aDE0MCIgZD0ibTc0LjU2OSAxMjcuNTF2MTI1LjM4YzguODQ5OCA0NS43MjYgMjYuMDU5IDEwOC4xNyAxMTQuMDcgMTM3LjE4IDg3LjUxOS0yOS4wMDkgMTA3LjY4LTkxLjQ1MiAxMTUuNTQtMTM3LjE4di0xMjUuMzhoLTIyOS42MXoiIGZpbGw9IiNmZTAxMDEiLz4KICA8cGF0aCBpZD0icGF0aDE1MyIgZD0ibTIwMi40MSAyMDMuMjN2MjAuMTU5aDQwLjMxOGM1LjQwNTcgMCAxMC40ODktMi42MjI2IDE1LjczNC0zLjkzNHYzNy44NTljLTUuNDA4Ni0xLjE0NzMtMTAuNjk2LTMuNDQxMi0xNi4yMjYtMy40NDEyaC0zOS4zMzR2NDYuMjE4bC0yNy4wNDMtMC45ODMzMXYtNDUuMjM0aC0zOC4zNWMtNS43NjQgMC0xMS4xNDQgMi45NDk5LTE2LjcxNyA0LjQyNDV2LTQwLjMxN2M1LjI0NDYgMS42Mzg2IDEwLjIzOSA0LjkxNjUgMTUuNzM0IDQuOTE2NWgzOS4zMzR2LTIwLjE1OWgtMjkuMDA5Yy01LjA4MzQgMC05LjUwNTggMy42MDYtMTQuMjU5IDUuNDA4NnYtMzguMzVjNS40MDg2IDIuMjk0NiAxMC4zNSA2Ljg4MzIgMTYuMjI2IDYuODgzMmgyNy41MzR2LTE3LjIwOWMwLTguMDM3Ny00LjU4OTItMTUuNDA2LTYuODgzOS0yMy4xMDloMzguODQyYy0xLjk2NjYgNy44NjcyLTUuODk5OCAxNS40OTItNS44OTk4IDIzLjYwMXYxNi43MTdoMjYuMDU5YzYuNzk5NCAwIDEzLjExMi0zLjYwNTIgMTkuNjY4LTUuNDA3OHYzNy44NTljLTUuOTAwNi0xLjk2NjYtMTEuNDgyLTUuOTAwNi0xNy43MDEtNS45MDA2aC0yOC4wMjV6IiBmaWxsPSIjZmZmIi8+CiAgPHBhdGggaWQ9InBhdGgxNTIiIGQ9Im0xNTIuNzUgMzA1LjVjLTIzLjExLTExLjU1NS00NS4xODQtNS4xMDIyLTU1Ljc0NCAxMy4zOTggMTYuNDEgMzEuMzQ0IDQ3LjYzMiA1Ni42NjYgOTEuNjM3IDcxLjE3IDQzLjc2LTE0LjUwNSA3NS41OTYtMzkuODI2IDkzLjA1LTY5LjY5NS0xMy41OTctMjUuOTQtMzkuNDU3LTIyLjQ5NS01Ni4xNzQtMTQuMzgxLTExLjgtMjkuMDA5LTU5Ljk4NS0yNy41MzQtNzIuNzY4LTAuNDkyMDJ6IiBmaWxsPSIjMDEwMTdlIi8+CiA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIFNvZGlwb2RpICgiaHR0cDovL3d3dy5zb2RpcG9kaS5jb20vIikgLS0+CjxzdmcgaWQ9InN2ZzU4OSIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB3aWR0aD0iNjQwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhMzA2NSI+CiAgPHJkZjpSREY+CiAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPgogICA8L2NjOldvcms+CiAgPC9yZGY6UkRGPgogPC9tZXRhZGF0YT4KIDxkZWZzIGlkPSJkZWZzNTkxIj4KICA8Y2xpcFBhdGggaWQ9ImNsaXBQYXRoMTUzMzMiIGNsaXBQYXRoVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgPHJlY3QgaWQ9InJlY3QxNTMzNSIgZmlsbC1vcGFjaXR5PSIwLjY3IiBoZWlnaHQ9IjUxMiIgd2lkdGg9IjY4Mi42NyIgeT0iLjAwMDAwOTA2MjEiIHg9Ii01My40MjEiLz4KICA8L2NsaXBQYXRoPgogPC9kZWZzPgogPGcgaWQ9ImZsYWciIGNsaXAtcGF0aD0idXJsKCNjbGlwUGF0aDE1MzMzKSIgdHJhbnNmb3JtPSJtYXRyaXgoLjkzNzUgMCAwIC45Mzc1IDUwLjA4MiAtLjAwMDAwODQ5NTgpIj4KICA8ZyBpZD0iZzU1OCIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2Utd2lkdGg9IjFwdCIgdHJhbnNmb3JtPSJtYXRyaXgoMi45MjU3IDAgMCAyLjkyNTcgLTc0NS4zMyAtOTY5LjQ4KSI+CiAgIDxyZWN0IGlkPSJyZWN0NTUyIiBoZWlnaHQ9IjcwIiB3aWR0aD0iODcuNSIgeT0iMzMxLjQ3IiB4PSIyMTMuMzYiIGZpbGw9IiMwMDZhYTciLz4KICAgPHJlY3QgaWQ9InJlY3Q1NTMiIGhlaWdodD0iNzAiIHdpZHRoPSI4Ny41IiB5PSI0MzYuMzYiIHg9IjIxMy4zNiIgZmlsbD0iIzAwNmFhNyIvPgogICA8cmVjdCBpZD0icmVjdDU1NCIgaGVpZ2h0PSIzNSIgd2lkdGg9Ijg3LjUiIHk9IjQwMS40MyIgeD0iMjEzLjM2IiBmaWxsPSIjZmVjYzAwIi8+CiAgIDxyZWN0IGlkPSJyZWN0NTU2IiBoZWlnaHQ9IjE3NSIgd2lkdGg9IjM1IiB5PSIzMzEuMzciIHg9IjMwMC41IiBmaWxsPSIjZmVjYzAwIi8+CiAgIDxyZWN0IGlkPSJyZWN0NTU3IiBoZWlnaHQ9IjM1IiB3aWR0aD0iMTU3LjUiIHk9IjQwMS40NCIgeD0iMzM0LjM5IiBmaWxsPSIjZmVjYzAwIi8+CiAgIDxyZWN0IGlkPSJyZWN0NTU4IiBoZWlnaHQ9IjcwIiB3aWR0aD0iMTU3LjUiIHk9IjQzNi4zNyIgeD0iMzM1LjQ3IiBmaWxsPSIjMDA2YWE3Ii8+CiAgIDxyZWN0IGlkPSJyZWN0NTU5IiBoZWlnaHQ9IjcwIiB3aWR0aD0iMTU3LjUiIHk9IjMzMS40NyIgeD0iMzM1LjQ3IiBmaWxsPSIjMDA2YWE3Ii8+CiAgPC9nPgogPC9nPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiIHZpZXdCb3g9Ii01IC01IDEyLjggOS42Ij4KICA8dGl0bGU+CiAgICBGbGFnIG9mIHRoZSBQZW9wbGUmYXBvcztzIFJlcHVibGljIG9mIENoaW5hCiAgPC90aXRsZT4KICA8ZGVmcz4KICAgIDxwYXRoIGlkPSJiIiBmaWxsPSIjZmZkZTAwIiBkPSJNLS41ODguODFMMC0xIC41ODguODEtLjk1Mi0uMzFILjk1MnoiLz4KICAgIDxjbGlwUGF0aCBpZD0iYSI+CiAgICAgIDxwYXRoIGQ9Ik0tNS0xNS40aDI2LjY2N3YyMEgtNXoiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KC40OCAwIDAgLjQ4IC0yLjYgMi4zOTIpIiBjbGlwLXBhdGg9InVybCgjYSkiPgogICAgPHBhdGggZmlsbD0iI2RlMjkxMCIgZD0iTS01LTE1LjRoMzB2MjBILTV6Ii8+CiAgICA8dXNlIGhlaWdodD0iMjAiIHdpZHRoPSIzMCIgdHJhbnNmb3JtPSJtYXRyaXgoMyAwIDAgMyAwIC0xMC40KSIgeGxpbms6aHJlZj0iI2IiLz4KICAgIDx1c2UgaGVpZ2h0PSIyMCIgd2lkdGg9IjMwIiB0cmFuc2Zvcm09Im1hdHJpeCgtLjUxNCAtLjg1NyAuODU3IC0uNTE0IDUgLTEzLjQpIiB4bGluazpocmVmPSIjYiIvPgogICAgPHVzZSBoZWlnaHQ9IjIwIiB3aWR0aD0iMzAiIHRyYW5zZm9ybT0ibWF0cml4KC0uMTQxIC0uOTkgLjk5IC0uMTQxIDcgLTExLjQpIiB4bGluazpocmVmPSIjYiIvPgogICAgPHVzZSBoZWlnaHQ9IjIwIiB3aWR0aD0iMzAiIHRyYW5zZm9ybT0ibWF0cml4KC4yNzUgLS45NjIgLjk2MiAuMjc1IDcgLTguNCkiIHhsaW5rOmhyZWY9IiNiIi8+CiAgICA8dXNlIGhlaWdodD0iMjAiIHdpZHRoPSIzMCIgdHJhbnNmb3JtPSJtYXRyaXgoLjYyNSAtLjc4MSAuNzgxIC42MjUgNSAtNi40KSIgeGxpbms6aHJlZj0iI2IiLz4KICA8L2c+Cjwvc3ZnPgo=\"","import React, {useCallback, useRef, useState} from \"react\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Popover from \"@material-ui/core/Popover\";\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport UnitSystemInputWithContext from \"./UnitSystemInputWithContext\";\nimport LanguageSelect from \"../LanguageSelect\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {selectWorkingLanguage} from \"../../../containers/App/selectors\";\nimport {makeSelectCustomerLanguages} from \"../../../selectors/customerSelectors\";\nimport {changeApplicationLanguage} from \"../../../actions/userProfileActions\";\n\nconst useStyles = makeStyles((theme) => ({\n typography: {\n padding: theme.spacing(2),\n },\n}));\n\nconst settingsButtonId = 'settingsButtonId';\nconst SettingsButton = () => {\n const classes = useStyles();\n const [isOpen, setIsOpen] = useState(false);\n const ref = useRef();\n const dispatch = useDispatch();\n const workingLanguage = useSelector(selectWorkingLanguage());\n const availableLanguages = useSelector(makeSelectCustomerLanguages());\n\n const handleLanguageChange = useCallback((language) => {\n dispatch(changeApplicationLanguage(language));\n }, [dispatch]);\n\n return (\n
\n setIsOpen(true)}>\n \n \n setIsOpen(false)}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'center',\n }}>\n \n
\n
\n
\n
\n Unit system\n
\n
\n \n
\n
\n
\n
\n Language\n
\n
\n x.languageCode.toUpperCase())} onChange={handleLanguageChange} value={workingLanguage}/>\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default React.memo(SettingsButton);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {UnitSystem} from \"utils/unitGroups.ts\";\nimport \"./unitSystemInput.scss\";\n\nconst UnitSystemInput = ({ value, onChange }) => {\n return (\n
\n onChange(UnitSystem.Metric)} value={UnitSystem.Metric} />\n \n onChange(UnitSystem.US)} value={UnitSystem.US} />\n \n
\n );\n};\n\nUnitSystemInput.propTypes = {\n value: PropTypes.oneOf([UnitSystem.Metric, UnitSystem.US]).isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport default React.memo(UnitSystemInput);\n","import React, {useCallback} from 'react';\nimport UnitSystemInput from \"../../calculation/inputForms/unitSystem/UnitSystemInput\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {selectUserProfileUnits} from \"../../../containers/App/selectors\";\nimport {changeUnitSystem} from \"../../../actions/userProfileActions\";\n\nconst UnitSystemInputWithContext = () => {\n const dispatch = useDispatch();\n\n const units = useSelector(selectUserProfileUnits());\n\n const handleUnitSystemChange = useCallback((value) => {\n dispatch(changeUnitSystem(value));\n }, [dispatch]);\n\n return (\n \n );\n};\n\nexport default React.memo(UnitSystemInputWithContext);\n","import getPluginComponent from \"./pluginRegister\";\nimport pluginTypes from \"./pluginTypes\";\n\nconst injectCustomLogo = (availablePlugins) => {\n const allowedPlugins = [pluginTypes.ParkerLogo];\n\n return availablePlugins\n .filter(x => allowedPlugins.includes(x.pluginType))\n .map(x => getPluginComponent(x.pluginType));\n};\n\nexport default injectCustomLogo;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport uniq from 'lodash/uniq';\nimport {useTranslation} from \"react-i18next\";\n\nconst ProductionLocationCellRenderer = ({ rowData }) => {\n const {t} = useTranslation();\n\n const availableCombinations = get(rowData, 'customHeatExchanger.availableCombinations', []);\n let productionLocations = availableCombinations.map(combination => {\n const rawValue = combination.filterTags.find(x => x.filterKey === \"PROD_SITE_FILTER\").optionKey;\n return t(rawValue);\n });\n productionLocations = uniq(productionLocations);\n\n return (\n
\n {productionLocations.map(p => {p})}\n
\n );\n};\n\nProductionLocationCellRenderer.propTypes = {\n rowData: PropTypes.object\n};\n\nexport default React.memo(ProductionLocationCellRenderer);\n","import React from \"react\";\nimport ProductionLocationCellRenderer from \"./ProductionLocationCellRenderer\";\n\nconst getCustomTacoResultsColumnsDefinitions = () => {\n return [{\n key: \"productionLocation\",\n headerRenderer: () => \"Production location\",\n // eslint-disable-next-line react/display-name\n cellRenderer: (rowData) => \n }];\n};\n\nexport {\n getCustomTacoResultsColumnsDefinitions\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Button, Link} from \"@material-ui/core\";\nimport useQuery from \"../../common/hooks/useQuery\";\nimport get from 'lodash/get';\nimport {useTranslation} from 'react-i18next';\n\nconst ProceedButton = ({ rowData }) => {\n const { ProductURL } = useQuery();\n const {t} = useTranslation();\n let customName = get(rowData, \"customHeatExchanger.availableCombinations[0].customName\", \"\");\n customName = customName.toLowerCase().replace(\" \", \"-\");\n customName = encodeURIComponent(customName);\n const productUrl = `${ProductURL}/${customName}`;\n\n return (\n \n \n \n );\n};\n\nProceedButton.propTypes = {\n rowData: PropTypes.shape({\n customHeatExchanger: PropTypes.shape({\n customName: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default React.memo(ProceedButton);\n","import React from \"react\";\nimport ProceedButton from \"./ProceedButton\";\nimport get from 'lodash/get';\n\nconst getCustomParkerResultColumnDefinitionPWO = () => {\n return [{\n key: \"CUSTOM_ROW_PART_NUMBER\",\n order: 2.1,\n headerRenderer: () => \"Part number\",\n cellRenderer: (rowData) => get(rowData, 'customHeatExchanger.availableCombinations[0].customName')\n },\n {\n key: \"CUSTOM_ROW_ACTION\",\n order: 9,\n headerRenderer: () => null,\n // eslint-disable-next-line react/display-name\n cellRenderer: (rowData) => {\n return (\n \n );\n }\n }];\n};\n\nexport {\n getCustomParkerResultColumnDefinitionPWO\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Button, Link} from \"@material-ui/core\";\nimport useQuery from \"../../common/hooks/useQuery\";\nimport get from 'lodash/get';\nimport {useTranslation} from 'react-i18next';\n\nconst ProceedButton = ({ rowData }) => {\n const { ProductURL } = useQuery();\n const {t} = useTranslation();\n\n let customName = get(rowData, \"customHeatExchanger.availableCombinations[0].customName\", \"\");\n customName = customName.toLowerCase().replace(\" \", \"-\");\n customName = encodeURIComponent(customName);\n const productUrl = `${ProductURL}/${customName}`;\n\n return (\n \n \n \n );\n};\n\nProceedButton.propTypes = {\n rowData: PropTypes.shape({\n customHeatExchanger: PropTypes.shape({\n customName: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default React.memo(ProceedButton);\n","import React from \"react\";\nimport ProceedButton from \"./ProceedButton\";\n\nconst getCustomParkerResultColumnDefinitionOAW = () => {\n return [\n {\n key: \"CUSTOM_ROW_ACTION\",\n order: 9,\n headerRenderer: () => null,\n // eslint-disable-next-line react/display-name\n cellRenderer: (rowData) => {\n return (\n \n );\n }\n }];\n};\n\nexport {\n getCustomParkerResultColumnDefinitionOAW\n};\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport ProgressBar from \"../../../ProgressBar\";\n\nconst PriceFactorCellRenderer = ({ pf }) => {\n if (pf !== undefined && pf !== null) {\n return ;\n }\n return null;\n};\n\nPriceFactorCellRenderer.propTypes = {\n pf: PropTypes.number,\n};\n\nexport default React.memo(PriceFactorCellRenderer);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport {getPriceFactorCellRenderer} from \"../../calculation/result/Renderers/getPriceFactorCellRenderer\";\n\nconst PriceFactorCellRenderer = ({ rowData }) => {\n return getPriceFactorCellRenderer(rowData.pf);\n};\n\nPriceFactorCellRenderer.propTypes = {\n rowData: PropTypes.object\n};\n\nexport default React.memo(PriceFactorCellRenderer);\n","import React from \"react\";\nimport PriceFactorCellRenderer from \"./PriceFactorCellRenderer\";\n\nexport function getPriceFactorCellRenderer(pf) {\n return ;\n}\n","import React from \"react\";\nimport PriceFactorCellRenderer from \"./PriceFactorCellRenderer\";\n\nconst getCustomPriceFactorResultsColumnDefinition = () => {\n return [{\n key: \"CUSTOM_PRICE_FACTOR\",\n headerRenderer: () => \"PF rating\",\n // eslint-disable-next-line react/display-name\n cellRenderer: (rowData) => \n }];\n};\n\nexport {\n getCustomPriceFactorResultsColumnDefinition\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from \"clsx\";\nimport get from 'lodash/get';\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {fade} from \"@material-ui/core/styles/colorManipulator\";\nimport {useTranslation} from \"react-i18next\";\n\nconst useStyles = makeStyles((theme) => ({\n selectedRow: {\n borderLeftColor: theme.palette.primary.main,\n borderLeftStyle: \"solid\",\n borderLeftWidth: \"4px\",\n backgroundColor: fade(theme.palette.primary.main, 0.05)\n },\n}));\n\nconst CustomTacoResultExpandPlugin = ({\n items,\n selectedItem,\n onSelectedItemChange\n}) => {\n const classes = useStyles();\n const {t} = useTranslation();\n\n if (items && items.length > 0) {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n {items.map((c) => {\n const connection = c.properties.find(x =>x.key === \"CONNECTIONS_DENOMINATION\");\n const material = c.properties.find(x =>x.key === \"MATERIAL\");\n const pressure = c.properties.find(x =>x.key === \"PRESSURE\");\n const productionLocation = c.properties.find(x =>x.key === \"PROD_SITE\");\n return (\n {\n onSelectedItemChange(c);\n }}>\n \n \n \n \n \n \n );\n })\n }\n \n
Part numberConnectionsMaterialPressureProduction location
{c.customName}{get(connection, \"value.value\")}{get(material, \"value.value\")}{get(pressure, \"value.value\")}{get(productionLocation, \"value.value\")}
\n
\n );\n } else {\n return (\n

\n {t(\"There is no part number for the specified number of plates, please change number of plates or do a design calculation to get a match.\")}\n

\n );\n }\n\n\n\n};\n\nconst itemShape = PropTypes.shape({\n id: PropTypes.number.isRequired\n});\n\nCustomTacoResultExpandPlugin.propTypes = {\n items: PropTypes.arrayOf(itemShape).isRequired,\n selectedItem: itemShape,\n onSelectedItemChange: PropTypes.func.isRequired\n};\n\n\nexport default React.memo(CustomTacoResultExpandPlugin);\n","import React, {useCallback, useMemo} from \"react\";\nimport PropTypes from 'prop-types';\nimport {Checkbox} from \"@material-ui/core\";\nimport { produce } from \"immer\";\nimport get from 'lodash/get';\nimport orderBy from 'lodash/orderBy';\n\nconst isInsulationProperty = property => {\n const key = get(property, 'key', null);\n if (key === 'TYPE') {\n const value = get(property, 'value.value', null);\n if (value === 'INSULATION') {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nconst isAccessoryInsulation = accessory => {\n const properties = get(accessory, 'properties', []);\n return properties.some(isInsulationProperty);\n};\n\nconst getMaxPlatesValue = accessory => {\n const properties = get(accessory, 'properties', []);\n const maxPlatesProperty = properties.find(x => x.key === 'MAX_PLATES');\n return get(maxPlatesProperty, 'value.value', null);\n};\n\nconst filterOutInsulations = accessories => {\n const insulations = accessories.filter(isAccessoryInsulation);\n const insulationOrdered = orderBy(insulations, getMaxPlatesValue, 'asc');\n const others = accessories.filter(x => !isAccessoryInsulation(x));\n\n const firstInsulation = get(insulationOrdered, '[0]', null);\n\n if (firstInsulation) {\n return [firstInsulation, ...others];\n } else {\n return others;\n }\n};\n\nconst AccessoriesGrid = ({ accessories, selected, onSelectedChange }) => {\n\n const handleCheckedChange = useCallback((accessory, e) => {\n onSelectedChange(\n produce(selected, draft => {\n const checked = e.target.checked;\n if (checked) {\n draft.push(accessory);\n } else {\n const indexToBeRemoved = selected.findIndex(x => x.itemNumber === accessories.itemNumber);\n draft.splice(indexToBeRemoved, 1);\n }\n })\n );\n }, [accessories, onSelectedChange, selected]);\n\n const processedAccessories = useMemo(() => {\n return filterOutInsulations(accessories);\n }, [accessories]);\n\n return (\n \n \n \n \n \n \n \n \n \n {processedAccessories.map((accessory, index) => {\n\n const isChecked = selected.some(x => accessory.itemNumber === x.itemNumber);\n const price = accessory.properties.find(x => x.key === \"PRICE\");\n return (\n \n \n \n \n \n \n );\n })}\n \n
\n Item numberDescriptionList Price Adder
\n handleCheckedChange(accessory, e)}\n size=\"small\"\n />\n {accessory.itemNumber}{accessory.description}${price && price.value && price.value.value} (USD)
\n );\n};\n\nAccessoriesGrid.propTypes = {\n accessories: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n onSelectedChange: PropTypes.func.isRequired\n};\n\nexport default React.memo(AccessoriesGrid);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport AccessoriesGrid from \"./AccessoriesGrid\";\nimport {Typography} from \"@material-ui/core\";\n\nconst Accessories = ({ accessories, selected, onSelectedChange }) => {\n\n if (accessories && accessories.length === 0) {\n return (\n No accessory available\n );\n } else {\n return (\n \n );\n }\n};\n\nAccessories.propTypes = {\n accessories: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n onSelectedChange: PropTypes.func.isRequired\n};\n\nexport default React.memo(Accessories);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport Accessories from \"./Accessories\";\n\nconst CustomTacoAccessories = ({ accessories, selected, onSelectedChange }) => {\n\n return (\n \n );\n};\n\nCustomTacoAccessories.propTypes = {\n accessories: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n })),\n onSelectedChange: PropTypes.func.isRequired\n};\n\nexport default React.memo(CustomTacoAccessories);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\n// import sumBy from 'lodash/sumBy';\n// import get from 'lodash/get';\n\nconst SelectedAccessoriesGrid = ({ selected }) => {\n\n if (!selected) return null;\n\n return (\n \n \n \n \n \n \n \n \n \n {selected.map((accessory, index) => {\n const price = accessory.properties.find(x => x.key === \"PRICE\");\n return (\n \n \n \n \n \n );\n })}\n \n {/**/}\n {/**/}\n {/* */}\n {/**/}\n {/**/}\n
Item numberDescriptionPrice
{accessory.itemNumber}{accessory.description}${price && price.value && price.value.value} (USD)
*/}\n {/* */}\n {/* */}\n {/* ${sumBy(selected, accessory => {*/}\n {/* const priceProperty = accessory.properties.find(x => x.key === \"PRICE\");*/}\n {/* return get(priceProperty, 'value.value', 0);*/}\n {/* })} (USD)
\n );\n};\n\nSelectedAccessoriesGrid.propTypes = {\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n }))\n};\n\nexport default React.memo(SelectedAccessoriesGrid);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport SelectedAccessoriesGrid from \"./SelectedAccessoriesGrid\";\n\nconst SelectedAccessories = ({ selected }) => {\n\n if (selected && selected.length === 0) {\n return null;\n } else {\n return (\n \n );\n }\n};\n\nSelectedAccessories.propTypes = {\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n }))\n};\n\nexport default React.memo(SelectedAccessories);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport SelectedAccessories from \"./SelectedAccessories\";\n\nconst CustomTacoSummaryAccessories = ({ selected }) => {\n\n return (\n \n );\n};\n\nCustomTacoSummaryAccessories.propTypes = {\n selected: PropTypes.arrayOf(PropTypes.shape({\n itemNumber: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired\n }))\n};\n\nexport default React.memo(CustomTacoSummaryAccessories);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport sumBy from 'lodash/sumBy';\nimport {Typography} from \"@material-ui/core\";\n\nconst getHePrice = (selectedHe) => {\n if (selectedHe && selectedHe.properties) {\n const priceProperty = selectedHe.properties.find(x => x.key === \"PRICE\");\n return get(priceProperty, 'value.value', null);\n } else {\n return 0;\n }\n};\n\nconst getAccessoriesPrice = (selectedAccessories) => {\n if (selectedAccessories) {\n return sumBy(selectedAccessories, accessory => {\n const priceProperty = accessory.properties.find(x => x.key === \"PRICE\");\n return get(priceProperty, 'value.value', 0);\n });\n }\n else {\n return 0;\n }\n};\n\nconst CustomTacoSummaryAccessories = ({ selectedHeatExchanger, selectedItem, selectedAccessories }) => {\n const numberOfParallelUnits = get(selectedHeatExchanger, 'outputValues.ParallelUnits.value', 1);\n const heatExchangerPrice = getHePrice(selectedItem);\n const accessoriesPrice = getAccessoriesPrice(selectedAccessories);\n const total = (numberOfParallelUnits * heatExchangerPrice) + accessoriesPrice;\n\n return (\n Total ${total} (USD)\n );\n};\n\nCustomTacoSummaryAccessories.propTypes = {\n selectedHeatExchanger: PropTypes.shape({\n outputValues: PropTypes.shape({\n ParallelUnits: PropTypes.shape({\n value: PropTypes.number.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n selectedItem: PropTypes.arrayOf({\n properties: PropTypes.array.isRequired\n }).isRequired,\n selectedAccessories: PropTypes.arrayOf(PropTypes.shape({\n properties: PropTypes.number.isRequired,\n }))\n};\n\nexport default React.memo(CustomTacoSummaryAccessories);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from \"clsx\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {fade} from \"@material-ui/core/styles/colorManipulator\";\nimport {useTranslation} from \"react-i18next\";\nimport get from 'lodash/get';\n\nconst useStyles = makeStyles((theme) => ({\n selectedRow: {\n borderLeftColor: theme.palette.primary.main,\n borderLeftStyle: \"solid\",\n borderLeftWidth: \"4px\",\n backgroundColor: fade(theme.palette.primary.main, 0.05)\n },\n}));\n\nconst CustomVZHOstravaResultExpandPlugin = ({\n items,\n selectedItem,\n onSelectedItemChange\n}) => {\n const classes = useStyles();\n const {t} = useTranslation(\"custom\");\n\n if (items && items.length > 0) {\n return (\n
\n \n \n \n \n \n \n \n \n {items.map((c) => {\n const connection = c.properties.find(x =>x.key === \"CONNECTION\");\n return (\n {\n onSelectedItemChange(c);\n }}>\n \n \n \n );\n })\n }\n \n
{t(\"RESULTS_CONTENT_ITEM_NO\")}{t(\"RESULTS_CONTENT_CONNECTIONS\")}
{c.customName}{get(connection, \"value.value\")}
\n
\n );\n } else {\n return (\n

\n {t(\"There is no item number for the specified number of plates, please change number of plates or do a design calculation to get a match.\")}\n

\n );\n }\n};\n\nconst itemShape = PropTypes.shape({\n id: PropTypes.number.isRequired\n});\n\nCustomVZHOstravaResultExpandPlugin.propTypes = {\n items: PropTypes.arrayOf(itemShape).isRequired,\n selectedItem: itemShape,\n onSelectedItemChange: PropTypes.func.isRequired\n};\n\nexport default React.memo(CustomVZHOstravaResultExpandPlugin);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CheckIcon from '@material-ui/icons/Check';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nconst BoolOutput = ({ value }) => {\n if (value === true) {\n return ;\n } else {\n return ;\n }\n // return (\n // \n // );\n};\n\nBoolOutput.propTypes = {\n value: PropTypes.bool.isRequired\n};\n\nexport default React.memo(BoolOutput);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {convertToSI, useUnitSystem} from \"../calculation/result/TechnicalData/useUnitConversion\";\nimport {UnitGroups} from \"../../utils/unitGroups.ts\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport AllUnitsTooltip from \"../calculation/result/AllUnitsTooltip\";\n\nconst QuantityOutput = ({ quantityOutput }) => {\n const { convert, format, unitSystem, getDefaultUnit } = useUnitSystem();\n\n if (quantityOutput.quantity) {\n let value = null;\n let unit = null;\n if (quantityOutput.defaultUserSelectedUnit) {\n value = UnitGroups.Convert(quantityOutput.unitGroup, quantityOutput.quantity.amount, quantityOutput.quantity.unit, quantityOutput.defaultUserSelectedUnit);\n unit = quantityOutput.defaultUserSelectedUnit;\n } else if (quantityOutput.defaultMetricUnit && unitSystem === 'Metric') {\n value = UnitGroups.Convert(quantityOutput.unitGroup, quantityOutput.quantity.amount, quantityOutput.quantity.unit, quantityOutput.defaultMetricUnit);\n unit = quantityOutput.defaultMetricUnit;\n } else if (quantityOutput.defaultUsUnit && unitSystem === 'US') {\n value = UnitGroups.Convert(quantityOutput.unitGroup, quantityOutput.quantity.amount, quantityOutput.quantity.unit, quantityOutput.defaultUsUnit);\n unit = quantityOutput.defaultUsUnit;\n } else {\n value = convert(quantityOutput.unitGroup, quantityOutput.quantity.amount, quantityOutput.quantity.unit);\n unit = getDefaultUnit(quantityOutput.unitGroup);\n }\n\n const formattedValue = format(quantityOutput.unitGroup, value);\n const siValue = convertToSI(quantityOutput.unitGroup, quantityOutput.quantity.amount, quantityOutput.quantity.unit);\n\n return (\n } interactive={true} >\n {formattedValue} {unit}\n \n );\n } else {\n return null;\n }\n};\n\nQuantityOutput.propTypes = {\n quantityOutput: PropTypes.object.isRequired,\n};\n\nexport default React.memo(QuantityOutput);\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport { useTranslation } from \"react-i18next\";\nimport BoolOutput from \"../../common/BoolOutput\";\nimport QuantityOutput from \"../../common/QuantityOutput\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Chip from \"@material-ui/core/Chip\";\nimport {Typography} from \"@material-ui/core\";\nimport get from 'lodash/get';\n\nconst CustomPropertiesPlugin = ({\n //pluginConfiguration,\n executionCombination\n}) => {\n const { t } = useTranslation();\n\n if (executionCombination.properties) {\n const certUL = executionCombination.properties.find(x => x.key === \"CERT_UL\");\n const certPED = executionCombination.properties.find(x => x.key === \"CERT_PED\");\n const certASME = executionCombination.properties.find(x => x.key === \"CERT_ASME\");\n const certCRN = executionCombination.properties.find(x => x.key === \"CERT_CRN\");\n const pressurePED = executionCombination.properties.find(x => x.key === \"PRESSURE_PED\");\n const pressureUL = executionCombination.properties.find(x => x.key === \"PRESSURE_UL\");\n const temperatureMax = executionCombination.properties.find(x => x.key === \"TEMPERATURE_MAX\");\n const temperatureMin = executionCombination.properties.find(x => x.key === \"TEMPERATURE_MIN\");\n const plateMaterial = executionCombination.properties.find(x => x.key === \"MATERIAL_PLATE\");\n const brazingMaterial = executionCombination.properties.find(x => x.key === \"MATERIAL_BRAZING\");\n const connectionMaterial = executionCombination.properties.find(x => x.key === \"MATERIAL_CONNECTIONS\");\n const price = executionCombination.properties.find(x => x.key === \"PRICE\");\n\n const componentsToRender = [];\n if (certUL) {\n const component = {t(certUL.key)} ;\n componentsToRender.push(component);\n }\n if (certPED) {\n const component = {t(certPED.key)} ;\n componentsToRender.push(component);\n }\n if (certASME) {\n const component = {t(certASME.key)} ;\n componentsToRender.push(component);\n }\n if (certCRN) {\n const component = {t(certCRN.key)} ;\n componentsToRender.push(component);\n }\n if (pressurePED) {\n const component = {t(pressurePED.key)}: ;\n componentsToRender.push(component);\n }\n if (pressureUL) {\n const component = {t(pressureUL.key)}: ;\n componentsToRender.push(component);\n }\n if (temperatureMax) {\n const component = {t(temperatureMax.key)}: ;\n componentsToRender.push(component);\n }\n if (temperatureMin) {\n const component = {t(temperatureMin.key)}: ;\n componentsToRender.push(component);\n }\n if (plateMaterial) {\n const component = {t(plateMaterial.key)}: {plateMaterial.value.value};\n componentsToRender.push(component);\n }\n if (brazingMaterial) {\n const component = {t(brazingMaterial.key)}: {brazingMaterial.value.value};\n componentsToRender.push(component);\n }\n if (connectionMaterial) {\n const component = {t(connectionMaterial.key)}: {connectionMaterial.value.value};\n componentsToRender.push(component);\n }\n\n return (\n
\n \n {componentsToRender.map((component, index) => {\n return (\n \n \n \n );\n })}\n \n List Price / unit ${get(price, \"value.value\", \"\")} (USD)\n
\n );\n }\n\n return null;\n};\n\nCustomPropertiesPlugin.propTypes = {\n pluginConfiguration: PropTypes.object,\n executionCombination: PropTypes.object\n};\n\nexport default React.memo(CustomPropertiesPlugin);\n","//Printouts\nexport const SAGA_ITEM_CREATE_RESULT_PRINTOUT = 'SAGA_ITEM_CREATE_RESULT_PRINTOUT';\nexport const SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS = 'SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS';\nexport const SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR = 'SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR';\n\nexport const SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT = 'SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT';\nexport const SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS = 'SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS';\nexport const SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR = 'SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR';\n\nexport const SAGA_ITEM_REVOKE_OBJECT = 'SAGA_ITEM_REVOKE_OBJECT';\n","import { produce } from 'immer';\nimport {\n SAGA_ITEM_CREATE_RESULT_PRINTOUT,\n SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS,\n SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR,\n} from './constants';\n\n// The initial state of the App\nexport const initialState = {\n loading:false,\n error: false,\n url: null,\n filename: null\n};\n\nconst printoutReducer = (state = initialState, action) =>\n produce(state, draft => {\n switch (action.type) {\n case SAGA_ITEM_CREATE_RESULT_PRINTOUT:\n case SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT: {\n draft.loading = true;\n draft.error = false;\n draft.url = null;\n draft.filename = null;\n }\n break;\n case SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS:\n case SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS: {\n draft.loading = false;\n draft.error = false;\n draft.url = action.url;\n draft.filename = action.filename;\n }\n break;\n case SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR:\n case SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR: {\n draft.loading = false;\n draft.error = action.error;\n draft.url = null;\n draft.filename = null;\n }\n break;\n }\n});\n\nexport default printoutReducer;\n","import axios from 'axios';\n\nclass PrintoutsApi {\n static createCalculationResultPrintout(userId, selectedPrintoutLanguage, selectedPrintoutFormat, basketItem, isQuote, quoteInfo, portInfo, selectedAccessories) {\n return axios({\n method: 'POST',\n url: `${process.env.API}/printouts/calculationResultPrintout`,\n data: {\n userId: userId,\n selectedPrintoutLanguage: selectedPrintoutLanguage,\n selectedPrintoutFormat: selectedPrintoutFormat,\n basketItem: basketItem,\n isQuote: isQuote,\n quoteInfo: quoteInfo,\n portInfo: portInfo,\n selectedAccessories: selectedAccessories\n },\n responseType: 'arraybuffer', // important\n // headers: {\n // 'Accept': 'application/pdf',\n // },\n });\n }\n\n static createApplicationResultPrintout(userId, selectedPrintoutLanguage, selectedPrintoutFormat, calculationType, calculationMethod, calculationRequest, selectedApplicationResult, isQuote, quoteInfo, portInfo, selectedApplicationResultComponent) {\n return axios({\n method: 'POST',\n url: `${process.env.API}/printouts/applicationResultPrintout`,\n data: {\n userId: userId,\n selectedPrintoutLanguage: selectedPrintoutLanguage,\n selectedPrintoutFormat: selectedPrintoutFormat,\n calculationType: calculationType,\n calculationMethod: calculationMethod,\n calculationRequest: calculationRequest,\n selectedApplicationResult: selectedApplicationResult,\n isQuote: isQuote,\n quoteInfo: quoteInfo,\n portInfo: portInfo,\n selectedApplicationResultComponent: selectedApplicationResultComponent\n },\n responseType: 'arraybuffer', // important\n // headers: {\n // 'Accept': 'application/pdf',\n // },\n });\n }\n}\n\nexport default PrintoutsApi;\n","import {\n SAGA_ITEM_CREATE_RESULT_PRINTOUT,\n SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS,\n SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR,\n SAGA_ITEM_REVOKE_OBJECT,\n} from './constants';\nimport { Math } from 'core-js';\n\nexport function createCalculationResultPrintout(calculationType, selectedArticle, selectedAccessories, selectedXpc, selectedPrintoutFormat, isQuote, quoteInfo, portInfo) {\n return {\n type: SAGA_ITEM_CREATE_RESULT_PRINTOUT,\n calculationType: calculationType,\n selectedArticle: selectedArticle,\n selectedAccessories: selectedAccessories,\n selectedXpc: selectedXpc,\n selectedPrintoutFormat: selectedPrintoutFormat,\n printoutId: Math.random(),\n isQuote: isQuote,\n quoteInfo: quoteInfo,\n portInfo: portInfo,\n };\n}\n\nexport function createCalculationResultPrintoutSuccess(printoutId, url, filename, contentType) {\n return {\n type: SAGA_ITEM_CREATE_RESULT_PRINTOUT_SUCCESS,\n printoutId: printoutId,\n url: url,\n filename:filename,\n contentType: contentType\n };\n}\n\nexport function createCalculationResultPrintoutError(printoutId, error) {\n return {\n type: SAGA_ITEM_CREATE_RESULT_PRINTOUT_ERROR,\n error: error,\n printoutId: printoutId\n };\n}\n\nexport function createApplicationResultPrintout(calculationType, selectedPrintoutFormat, isQuote, quoteInfo, portInfo, selectedApplicationResultComponent) {\n return {\n type: SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT,\n calculationType: calculationType,\n printoutId: Math.random(),\n selectedPrintoutFormat: selectedPrintoutFormat,\n isQuote: isQuote,\n quoteInfo: quoteInfo,\n portInfo: portInfo,\n selectedApplicationResultComponent: selectedApplicationResultComponent\n };\n}\n\nexport function createApplicationResultPrintoutSuccess(printoutId, url, filename, contentType) {\n return {\n type: SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_SUCCESS,\n printoutId: printoutId,\n url: url,\n filename: filename,\n contentType: contentType\n };\n}\n\nexport function createApplicationResultPrintoutError(printoutId, error) {\n return {\n type: SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT_ERROR,\n error: error,\n printoutId: printoutId\n };\n}\n\nexport function revokeObject(url) {\n return {\n type: SAGA_ITEM_REVOKE_OBJECT,\n url: url\n };\n}\n","import buf from 'buffer/';\n\nexport default buf.Buffer;\n","import printoutsApi from './api';\nimport {\n SAGA_ITEM_CREATE_RESULT_PRINTOUT,\n SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT,\n} from './constants';\nimport {\n createCalculationResultPrintoutSuccess,\n createCalculationResultPrintoutError,\n createApplicationResultPrintoutSuccess,\n createApplicationResultPrintoutError\n} from './actions';\nimport { makeSelectUserProfile } from 'selectors/userProfileSelectors';\nimport { select, call, put, takeEvery , all } from 'redux-saga/effects';\nimport { createRequest } from 'sagas/calculationSaga';\nimport {makeSelectCalculation} from \"selectors/calculationSelectors\";\nimport {getBoundary, parse} from \"utils/parseMultipart.ts\";\nimport {makeSelectSelectedArticle} from \"../../../selectors/calculationSelectors\";\nimport buffer from 'utils/buffer';\nimport {makeSelectAccessories} from \"../../../containers/accessories/selectors\";\n\nexport function* createCalculationResultPrintout(action) {\n try {\n const userProfile = yield select(makeSelectUserProfile());\n const calculation = yield select(makeSelectCalculation(action.calculationType));\n const { article } = yield select(makeSelectSelectedArticle(action.calculationType));\n const accessoriesState = yield select(makeSelectAccessories());\n\n const calculationType = calculation.inputParams.userCalculationInputs.calculationType;\n const calculationMethod = calculation.inputParams.userCalculationInputs.calculationMethod;\n const printoutItem = {\n calculationType: calculationType,\n calculationMethod: calculationMethod,\n calculationRequest: createRequest(calculation, calculationType, userProfile),\n //calculationResult: calculation.response.exchangers.map(m => { return m.ORIG; }),\n selectedProduct: calculation.selectedExchanger.ORIG,\n selectedArticle: article,\n selectedAccessories: action.selectedAccessories,\n selectedXpc: action.selectedXpc\n };\n\n const response = yield call(printoutsApi.createCalculationResultPrintout, userProfile.userId, userProfile.settings.printouts.languagePrimary, action.selectedPrintoutFormat, printoutItem, action.isQuote, action.quoteInfo, action.portInfo, accessoriesState && accessoriesState.selected || []);\n\n const contentType = response.headers['content-type'];\n let boundary = getBoundary(contentType);\n let parsed = parse(buffer.from(response.data), boundary);\n const { name, extension } = JSON.parse(parsed[0].data.toString());\n const filename = `${name}${extension}`;\n const { type, data } = parsed[1];\n\n const blob = new Blob([data], { type: type });\n const url = URL.createObjectURL(blob);\n const element = document.createElement('a');\n element.setAttribute('href', url);\n element.setAttribute('download', filename);\n\n element.style.display = 'none';\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n URL.revokeObjectURL(url);\n\n yield put(createCalculationResultPrintoutSuccess(action.printoutId, url, filename, type));\n } catch(e) {\n yield put(createCalculationResultPrintoutError(action.printoutId, e.message));\n }\n}\n\nexport function* createApplicationPrintout(action) {\n try {\n const userProfile = yield select(makeSelectUserProfile());\n const calculation = yield select(makeSelectCalculation(action.calculationType));\n const calculationType = calculation.inputParams.userCalculationInputs.calculationType;\n const calculationMethod = calculation.inputParams.userCalculationInputs.calculationMethod;\n const selectedApplicationResult = calculation.selectedExchanger;\n const calculationRequest = createRequest(calculation, calculationType, calculationMethod, userProfile);\n const response = yield call(printoutsApi.createApplicationResultPrintout,userProfile.userId, userProfile.settings.printouts.languagePrimary, action.selectedPrintoutFormat, calculationType, calculationMethod, calculationRequest, selectedApplicationResult, action.isQuote, action.quoteInfo, action.portInfo, action.selectedApplicationResultComponent);\n\n const contentType = response.headers['content-type'];\n const name = response.headers['printout-name'];\n const extension = response.headers['printout-extension'];\n const filename = `${name}${extension}`;\n\n\n\n yield put(createApplicationResultPrintoutSuccess(action.printoutId, response.data, filename, contentType));\n } catch (e) {\n yield put(createApplicationResultPrintoutError(action.printoutId, e.message));\n }\n}\n\nexport default function* productBasketSaga() {\n yield all([\n takeEvery(SAGA_ITEM_CREATE_RESULT_PRINTOUT, createCalculationResultPrintout),\n takeEvery(SAGA_ITEM_CREATE_APPLICATION_RESULT_PRINTOUT, createApplicationPrintout)\n ]);\n}\n","import { createSelector } from 'reselect';\nimport { initialState } from './reducer';\n\nconst selectPrintouts = state => state.printouts || initialState;\n\nconst makeSelectLoading = () =>\n createSelector(\n selectPrintouts,\n state => state.loading\n );\n\nexport {\n makeSelectLoading\n};\n","import React, {useCallback} from \"react\";\nimport {makeStyles} from \"@material-ui/core/styles\";\nimport {Button} from \"@material-ui/core\";\nimport PropTypes from \"prop-types\";\nimport { useInjectReducer } from 'utils/injectReducer';\nimport { useInjectSaga } from 'utils/injectSaga';\nimport reducer from './reducer';\nimport saga from './saga';\nimport { createCalculationResultPrintout } from './actions';\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {SinglePhase} from \"../../../constants/calculationTypes\";\n\nimport {makeSelectLoading} from \"./selectors\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport {makeSelectSelectedArticle} from \"../../../selectors/calculationSelectors\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n },\n button: {\n marginRight: theme.spacing(1)\n },\n}));\n\nconst key = 'printouts';\n\n// eslint-disable-next-line no-empty-pattern\nconst CustomPrintout = ({\n // pluginConfiguration,\n // executionCombination\n}) => {\n useInjectReducer({ key: key, reducer: reducer });\n useInjectSaga({ key: key, saga: saga });\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const isLoading = useSelector(makeSelectLoading());\n const {acticle} = useSelector(makeSelectSelectedArticle(\"singlephase\"));\n\n const handlePrintoutClick = useCallback(() => {\n dispatch(createCalculationResultPrintout(\n SinglePhase,\n acticle,\n [],\n null,\n \"PDF\",\n false,\n null,\n null\n ));\n }, [dispatch, acticle]);\n\n return (\n \n );\n};\n\nCustomPrintout.propTypes = {\n pluginConfiguration: PropTypes.object,\n executionCombination: PropTypes.object\n};\n\nexport default React.memo(CustomPrintout);\n","import axios from 'axios';\nimport { BLOBS_BLOB } from \"./links\";\n\nclass BlobApi {\n static Download(id) {\n if (!id) {\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n\n return axios({\n method: 'GET',\n url: `${process.env.API}${BLOBS_BLOB}/`,\n params: {\n id: id\n },\n responseType: 'blob', // important\n headers: {\n 'Accept': 'application/octet-stream',\n },\n });\n }\n}\n\nexport default BlobApi;\n","export const BLOBS_BLOB = '/blobs/blob';\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {Button} from \"@material-ui/core\";\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport BlobApi from \"./api\";\nimport {makeStyles} from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n },\n button: {\n marginRight: theme.spacing(1)\n },\n}));\n\nconst CustomDrawingPlugin = ({\n // pluginConfiguration,\n executionCombination\n}) => {\n const classes = useStyles();\n const [isDownloading, setIsDownloading] = useState(false);\n\n\n const drawingPropertyValue = useMemo(() => {\n if (executionCombination.properties) {\n const drawingProperty = executionCombination.properties.find(x => x.key === \"DRAWING_URL\");\n if (drawingProperty) {\n return drawingProperty.value;\n }\n }\n }, [executionCombination.properties]);\n\n const handleDownload = async () => {\n try {\n setIsDownloading(true);\n const response = await BlobApi.Download(drawingPropertyValue.id);\n const blob = new Blob([response.data]);\n const file = new File([blob], \"drawing.zip\", { type: 'application/zip'});\n const url = URL.createObjectURL(file);\n window.open(url, '_blank');\n URL.revokeObjectURL(url);\n setIsDownloading(false);\n } catch (e) {\n setIsDownloading(false);\n }\n };\n\n if (drawingPropertyValue) {\n return (\n \n );\n } else {\n return null;\n }\n};\n\nCustomDrawingPlugin.propTypes = {\n pluginConfiguration: PropTypes.object,\n executionCombination: PropTypes.object\n};\n\nexport default React.memo(CustomDrawingPlugin);\n\n","import React, {useCallback} from \"react\";\nimport PropTypes from 'prop-types';\nimport useCustomer from \"../common/Customization/CustomerContext/useCustomer\";\nimport './OpenFluidPropertiesButton.scss';\nimport {lab} from 'react-icons-kit/icomoon/lab';\nimport {withBaseIcon} from \"react-icons-kit\";\nimport {useTranslation} from \"react-i18next\";\nconst SideIconContainer = withBaseIcon();\nexport const IconLab = (props) => ; // eslint-disable-line\n\n// eslint-disable-next-line react/no-multi-comp\nconst OpenFluidPropertiesButton = ({ selectedFluid }) => {\n const [customer] = useCustomer();\n const {t} = useTranslation();\n\n const handleOpen = useCallback(() => {\n const amount = selectedFluid.inputValue ? selectedFluid.inputValue.amount: 0;\n const unit = selectedFluid.inputValue ? encodeURI(selectedFluid.inputValue.unit): '';\n window.open(`/fluidProperties/${selectedFluid.fluidId}/${amount}/${unit}/${selectedFluid.isGas}/?c=${customer.userId}`, \"_blank\");\n }, [customer.userId, selectedFluid.fluidId, selectedFluid.inputValue, selectedFluid.isGas]);\n\n return (\n \n );\n};\n\nOpenFluidPropertiesButton.propTypes = {\n selectedFluid: PropTypes.shape({\n inputValue: PropTypes.shape({\n amount: PropTypes.number.isRequired,\n unit: PropTypes.string.isRequired,\n }),\n fluidId: PropTypes.number.isRequired,\n isGas: PropTypes.bool\n })\n};\n\nexport default React.memo(OpenFluidPropertiesButton);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport OpenFluidPropertiesButton from \"../../fluidProperties/OpenFluidProperiesButton\";\n\nconst FluidPropertiesPlugin = ({ fluid }) => {\n return (\n \n );\n};\n\nFluidPropertiesPlugin.propTypes = {\n fluid: PropTypes.object\n};\n\nexport default React.memo(FluidPropertiesPlugin);\n","export default __webpack_public_path__ + \"src/components/plugins/customParkerLogo/parker_logo.jpg\";","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Button} from \"@material-ui/core\";\nimport createPrintoutPWO from './createPrintoutPWO';\nimport {useTranslation} from 'react-i18next';\n\nconst PrintoutButton = ({ customHeatExchanger }) => {\n const {t} = useTranslation();\n return (\n \n );\n};\n\nPrintoutButton.propTypes = {\n customHeatExchanger: PropTypes.object.isRequired\n};\n\nexport default React.memo(PrintoutButton);\n","import get from 'lodash/get';\n\nconst style = `\n `;\n\nconst header = `\n \n \n \n \n \n
\n \n \n \n
\n
`;\n\nconst disclaimer = `\n
\n
\n
\n Disclaimer: This software and the generated calculations provided herein are estimates only and should be treated as such. PARKER HANNIFIN CORP always strives to give complete and accurate information, but cannot provide any guarantees. This software and its output are provided as is and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall PARKER HANNIFIN CORP be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.\n
\n
`;\n\nconst createPrintoutPWO = (customHeatExchanger) => {\n const calculationResultHeatExchangerBasicInfo = `

Heat exchanger: ${get(customHeatExchanger, 'availableCombinations[0].customName')}


`;\n const heatExchangerDutyRequirements = document.getElementById(\"exchangerResultsDutyRequirements\").outerHTML + '
';\n const heatExchangerBasicInfo = document.getElementById(\"exchangerResultsInfo\").outerHTML + '
';\n const heatExchangerPhysicalProperties = document.getElementById(\"exchangerResultsPhysicalProperties\").outerHTML + '
';\n\n const report =\n '' +\n style +\n ''+\n header +\n calculationResultHeatExchangerBasicInfo +\n heatExchangerDutyRequirements +\n heatExchangerBasicInfo +\n heatExchangerPhysicalProperties +\n disclaimer +\n ''+\n '';\n\n const data = new Blob([\"\\ufeff\", report], { type: 'text/html' });\n const url = window.URL.createObjectURL(data);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = \"print.doc\";\n link.click();\n\n URL.revokeObjectURL(url);\n};\n\nexport default createPrintoutPWO;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Button} from \"@material-ui/core\";\nimport createPrintoutOAW from './createPrintoutOAW';\nimport {useTranslation} from 'react-i18next';\n\nconst PrintoutButton = ({ customHeatExchanger }) => {\n const {t} = useTranslation();\n\n return (\n \n );\n};\n\nPrintoutButton.propTypes = {\n customHeatExchanger: PropTypes.object.isRequired\n};\n\nexport default React.memo(PrintoutButton);\n","const style = `\n `;\n\nconst header =`\n \n \n \n \n \n
\n \n \n \n
\n
`;\nconst disclaimer = `\n
\n
\n
\n Disclaimer: This software and the generated calculations provided herein are estimates only and should be treated as such. PARKER HANNIFIN CORP always strives to give complete and accurate information, but cannot provide any guarantees. This software and its output are provided as is and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall PARKER HANNIFIN CORP be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.\n
\n
`;\n\nconst createPrintoutOAW = (customHeatExchanger) => {\n const calculationResultHeatExchangerBasicInfo = `

Heat exchanger: ${customHeatExchanger.customName}


`;\n const heatExchangerDutyRequirements = document.getElementById(\"exchangerResultsDutyRequirements\").outerHTML + '
';\n const heatExchangerBasicInfo = document.getElementById(\"exchangerResultsInfo\").outerHTML + '
';\n const heatExchangerPhysicalProperties = document.getElementById(\"exchangerResultsPhysicalProperties\").outerHTML + '
';\n\n const report =\n '' +\n style +\n '' +\n header +\n calculationResultHeatExchangerBasicInfo +\n heatExchangerDutyRequirements +\n heatExchangerBasicInfo +\n heatExchangerPhysicalProperties +\n disclaimer +\n '' +\n '';\n\n const data = new Blob([\"\\ufeff\", report], { type: 'text/html' });\n const url = window.URL.createObjectURL(data);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = \"print.doc\";\n link.click();\n\n URL.revokeObjectURL(url);\n};\n\nexport default createPrintoutOAW;\n","//import React from \"react\";\nimport pluginTypes from \"./pluginTypes\";\nimport { getProductSelectorColumns } from './customProductSelectorColumns/index';\nimport { getCustomTacoResultsColumnsDefinitions } from \"./customTacoResultsColumnsDefinitions\";\nimport { getCustomParkerResultColumnDefinitionPWO } from \"./customParkerResultsColumnDefinitionPWO\";\nimport { getCustomParkerResultColumnDefinitionOAW } from \"./customParkerResultsColumnDefinitionOAW\";\nimport { getCustomPriceFactorResultsColumnDefinition } from \"./customPriceFactorResultsColumnDefinition\";\nimport CustomTacoResultsExpanderContent from './customTacoResultsExpanderContent/index';\nimport CustomTacoAccessories from \"./customTacoAccessories\";\nimport CustomTacoSummaryAccessories from \"./customTacoSummaryAccessories\";\nimport CustomTacoSummaryTotals from './customTacoSummaryTotals';\nimport CustomVZHOstravaResultsContent from './customVZHOstravaResultsContent/index';\nimport VZHOstravaCustomResultsRowFilter from './customVZHOstravaCustomResultsRowFilter/VZHOstravaCustomResultsRowFilter';\nimport CustomProperties from './customProperties/index';\nimport CustomPrintouts from './customPrintouts/index';\nimport CustomDrawings from './customDrawings/index';\nimport FluidProperties from './fluidProperties/index';\nimport ParkerLogo from './customParkerLogo';\nimport CustomParkerPrintoutPWO from './customParkerPrintoutPWO';\nimport CustomParkerPrintoutOAW from './customParkerPrintoutOAW';\n\nconst matrix = new Map();\n//matrix.set(pluginTypes.TacoDrawings, React.lazy(() => import(\"./customDrawings/Loadable\")));\nmatrix.set(pluginTypes.TacoDrawings, CustomDrawings);\n// matrix.set(pluginTypes.TacoPrintouts, React.lazy(() => import(\"./customPrintouts\")));\nmatrix.set(pluginTypes.TacoPrintouts, CustomPrintouts);\n// matrix.set(pluginTypes.TacoCustomProperties, React.lazy(() => import(\"./customProperties/Loadable\")));\nmatrix.set(pluginTypes.TacoCustomProperties, CustomProperties);\nmatrix.set(pluginTypes.TacoAccessories, CustomTacoAccessories);\nmatrix.set(pluginTypes.TacoSummaryAccessories, CustomTacoSummaryAccessories);\nmatrix.set(pluginTypes.TacoSummaryTotals, CustomTacoSummaryTotals);\n\n//matrix.set(pluginTypes.TacoCustomResultsExpanderContent, React.lazy(() => import(\"./customTacoResultsExpanderContent/Loadable\")));\nmatrix.set(pluginTypes.TacoCustomResultsExpanderContent, CustomTacoResultsExpanderContent);\nmatrix.set(pluginTypes.VZHOstravaCustomResultsExpanderContent, CustomVZHOstravaResultsContent);\nmatrix.set(pluginTypes.VZHOstravaCustomResultsRowFilter, VZHOstravaCustomResultsRowFilter);\nmatrix.set(pluginTypes.TacoCustomResultsColumnDefinitions, getCustomTacoResultsColumnsDefinitions);\nmatrix.set(pluginTypes.PARKERCustomResultsColumnDefinitionsPWO, getCustomParkerResultColumnDefinitionPWO);\nmatrix.set(pluginTypes.PARKERCustomResultsColumnDefinitionsOAW, getCustomParkerResultColumnDefinitionOAW);\nmatrix.set(pluginTypes.ParkerLogo, ParkerLogo);\nmatrix.set(pluginTypes.ParkerResultTechnicalDataHeaderActionsPrintoutPWO, CustomParkerPrintoutPWO);\nmatrix.set(pluginTypes.ParkerResultTechnicalDataHeaderActionsPrintoutOAW, CustomParkerPrintoutOAW);\nmatrix.set(pluginTypes.PriceFactorResultsColumnDefinition, getCustomPriceFactorResultsColumnDefinition);\nmatrix.set(pluginTypes.ProductSelectorColumns, getProductSelectorColumns);\nmatrix.set(pluginTypes.FluidProperties, FluidProperties);\n\nconst getPluginComponent = (pluginType) => {\n return matrix.get(pluginType);\n};\n\nexport default getPluginComponent;\n","const VZHOstravaCustomResultsRowFilter = (row) => {\n return row.numberOfParallelUnits <= 1;\n};\n\nexport default VZHOstravaCustomResultsRowFilter;\n","import React from 'react';\nimport image from './parker_logo.jpg';\nconst ParkerLogo = () => {\n\n return (\n \n );\n};\n\nexport default ParkerLogo;\n","const getProductSelectorColumns = () => {\n return [\n {\n dataField: \"CONNECTIONS_DENOMINATION\",\n text: \"Connections\",\n sort: true,\n formatter: (cell, row) => {\n return row['CONNECTIONS_DENOMINATION'].value;\n },\n },\n {\n dataField: \"PROD_SITE\",\n text: \"Production location\",\n sort: true,\n formatter: (cell, row) => {\n return row['PROD_SITE'].value;\n },\n },\n ];\n};\n\nexport {\n getProductSelectorColumns\n};\n","const pluginTypes = {\n Accessories: 'Accessories',\n TacoAccessories: 'TacoAccessories',\n TacoSummaryAccessories: 'TacoSummaryAccessories',\n TacoSummaryTotals: 'TacoSummaryTotals',\n TacoDrawings: 'TacoDrawings',\n TacoPrintouts: 'TacoPrintouts',\n TacoCustomProperties: 'TacoCustomProperties',\n TacoCustomResultsExpanderContent: 'TacoCustomResultsExpanderContent',\n VZHOstravaCustomResultsExpanderContent: 'VZHOstravaCustomResultsExpanderContent',\n VZHOstravaCustomResultsRowFilter: 'VZHOstravaCustomResultsRowFilter',\n TacoCustomResultsColumnDefinitions: 'TacoCustomResultsColumnDefinitions',\n PARKERCustomResultsColumnDefinitionsPWO: 'PARKERCustomResultsColumnDefinitionsPWO',\n PARKERCustomResultsColumnDefinitionsOAW: 'PARKERCustomResultsColumnDefinitionsOAW',\n ParkerLogo: 'ParkerLogo',\n ParkerResultTechnicalDataHeaderActionsPrintoutPWO: 'ParkerResultTechnicalDataHeaderActionsPrintoutPWO',\n ParkerResultTechnicalDataHeaderActionsPrintoutOAW: 'ParkerResultTechnicalDataHeaderActionsPrintoutOAW',\n PriceFactorResultsColumnDefinition: 'PriceFactorResultsColumnDefinition',\n ProductSelectorColumns: 'ProductSelectorColumns',\n FluidProperties: 'FluidProperties',\n};\n\nexport default pluginTypes;\n","import { createSelector } from 'reselect';\n\nconst selectAccessories = state => state.accessories || {};\n\nconst makeSelectAccessories = () =>\n createSelector(\n selectAccessories,state => state\n );\n\nexport {\n makeSelectAccessories\n};\n","import * as type from 'constants/actionTypes';\n\nexport function errorResponse(response){\n const {data} = response;\n if(data && data.errors){\n if(Array.isArray(data.errors.msg)){\n return data.errors.msg.map(e => getErrorMessage(e.msg));\n } else {\n return [getErrorMessage(data.errors.msg)];\n }\n }\n return null;\n}\n\nconst getErrorMessage = errorCode => {\n switch(errorCode){\n case 'WRONG_PASSWORD':\n return 'Username or password is invalid';\n case 'USER_NOT_VERIFIED':\n return 'User is not verified.';\n case 'BLOCKED_USER':\n return 'User account has been blocked.';\n case 'PASSWORD_TOO_SHORT_MIN_5':\n return 'Password is too short (min 5 characters)';\n case 'EMAIL_IS_NOT_VALID':\n return 'Email is not valid!';\n case 'EMAIL_ALREADY_EXISTS':\n return 'Email is already registered!';\n case 'NOT_FOUND_OR_ALREADY_VERIFIED':\n return 'Email was not found or is already registered';\n default:\n return `Error code: ${errorCode}`;\n }\n};\n\nexport function handleError(title, error) {\n if(error.response){\n let errorMessages = errorResponse(error.response);\n const message = errorMessages ? errorMessages.join('\\n') :error.response.data;\n return {\n type: type.Application.ERROR_WEBAPI,\n value: {\n title: title,\n message: message,\n error: error\n }};\n } else {\n return {\n type: type.Application.ERROR_USERMADE,\n value: {\n title: title,\n message: error,\n error: error\n }};\n }\n}\n\nexport function infoMsg(title, msg){\n return {\n type: type.Application.INFO_MSG,\n value: {\n title: title,\n message: msg,\n }\n };\n}\n\n","import axios from 'axios';\nimport {\n CALCULATIONS_CALCULATE,\n CALCULATIONS_INPUTS,\n CALCULATION_OUTPUT_COLUMN_SETTINGS\n} from 'constants/links';\n\nclass CalculationsApi {\n\n\n static getCalculationInputs(userId, calculationType, calculationInputId = null) {\n if (!userId || !calculationType) {\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n return axios({\n method: 'GET',\n url: `${process.env.API}${CALCULATIONS_INPUTS}`,\n params: {\n userId: userId,\n calculationType: calculationType,\n calculationInputId: calculationInputId\n }\n });\n }\n\n static calculate(request){\n if(!request){\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n return axios({ method: 'POST',\n url: `${process.env.API}${CALCULATIONS_CALCULATE}`,\n data: request\n });\n }\n\n static getCalculationColumnSettings(userId, calculationType) {\n if(!userId || !calculationType){\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n return axios({ method: 'GET',\n url: `${process.env.API}${CALCULATION_OUTPUT_COLUMN_SETTINGS}`,\n params: {\n userId: userId,\n calculationType: calculationType\n }\n });\n }\n\n static saveCalculationColumnSettings(userId, calculationType, userDefaultCalculationOutputColumns) {\n if(!userId ||!calculationType || !userDefaultCalculationOutputColumns){\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n return axios({ method: 'POST',\n url: `${process.env.API}${CALCULATION_OUTPUT_COLUMN_SETTINGS}`,\n data: {\n userId: userId,\n calculationType: calculationType,\n calculationOutputColumns: userDefaultCalculationOutputColumns\n }\n });\n }\n\n static resetCalculationColumnSettings(userId, calculationType) {\n if(!userId ||!calculationType){\n return new Promise((resolve, reject) => {\n reject('Request validation error');\n });\n }\n return axios({ method: 'DELETE',\n url: `${process.env.API}${CALCULATION_OUTPUT_COLUMN_SETTINGS}`,\n data: {\n userId: userId,\n calculationType: calculationType\n }\n });\n }\n}\n\nexport default CalculationsApi;\n","import axios from 'axios';\nimport {HEATEXCHANGERS_LOAD} from 'constants/links';\n\nclass ExchangersApi {\n\n static getExchangers(userId, modelRestrictions, isCoCurrent, fluid1, fluid2){\n if(!userId || !modelRestrictions){\n return new Promise((resolve, reject) => {\n reject('Input parameters validation error');\n });\n }\n return axios({ method: 'POST',\n url: `${process.env.API}${HEATEXCHANGERS_LOAD}`,\n data: {\n userId, modelRestrictions, isCoCurrent, fluid1, fluid2\n }\n });\n }\n}\n\nexport default ExchangersApi;\n","import { all, put, call, takeLatest, select } from 'redux-saga/effects';\nimport {Calculation} from 'constants/actionTypes';\nimport * as calcActions from 'actions/calculationActions';\nimport { makeSelectCalculation } from 'selectors/calculationSelectors';\nimport { makeSelectUserProfile } from 'selectors/userProfileSelectors';\nimport { infoMsg, handleError } from 'actions/applicationActions';\nimport calculationsApi from 'api/calculationsApi';\nimport exchangersApi from 'api/exchangersApi';\n\nexport function* getCalculationInputs(action) {\n try {\n const calculationInputsResposse = yield call(calculationsApi.getCalculationInputs, action.userId, action.calculationType, action.calculationInputId);\n yield put(calcActions.loadCalculationInputsSuccess(action.calculationType, action.calculationInputId, calculationInputsResposse.data));\n } catch (e) {\n yield put(calcActions.loadCalculationInputsError(e.message));\n yield put(handleError('Loading calculation inputs error', e));\n }\n}\n\nexport function* getCalculationHeatExchangers(action) {\n try {\n const calculationHeatExchangersResponse = yield call(exchangersApi.getExchangers, action.userId, action.modelRestrictions, action.isCoCurrent, action.fluid1, action.fluid2);\n yield put(calcActions.loadCalculationInputsHeatExchangersSuccess(action.calculationType, calculationHeatExchangersResponse.data));\n } catch (e) {\n yield put(calcActions.loadCalculationInputsHeatExchangersError(e.message));\n }\n}\n\nexport function* notifySaveCalculationSuccess() {\n yield put(infoMsg(\"Saved!\"));\n}\n\nexport function* notifySaveCalculationError(action) {\n yield put(handleError(\"An error occured during delete!\", action.error));\n}\n\nexport function* processCalculation(action) {\n try {\n const calculation = yield select(makeSelectCalculation(action.calculationType));\n const userProfile = yield select(makeSelectUserProfile());\n\n yield put(calcActions.calculateBegin(action.calculationType));\n const calculationRequest = createRequest(calculation, action.calculationType, userProfile);\n const calcResponse = yield call(calculationsApi.calculate, calculationRequest);\n\t\t\t\tconst processedResponse = processCalculationResponse(calcResponse.data);\n yield put(calcActions.calculateSuccess(action.calculationType, processedResponse));\n } catch(e){\n yield put(handleError('Calculation was not succesfull!', e));\n }\n}\n\nexport function createRequest(formData, calculationType, userProfile) {\n let inputs = formData.inputs;\n let request = {\n calculationData: {\n applicationName: calculationType,\n calculationType: formData.inputParams.userCalculationInputs.calculationMethod,\n inputValues: [],\n userCalculationInputs: formData.inputParams.userCalculationInputs\n },\n userDetails: {\n userId: userProfile.userId,\n unit: userProfile.units\n },\n strLang: userProfile.applicationLanguage,\n nosResults: \"7\",\n bCulture: \"false\",\n unitSystem: userProfile.settings.units\n };\n //set filters\n request.userSetfilter = {\n factoriesFilterSelection: formData.inputParams.filterSettings.factorySelections,\n materialsFilterSelection: formData.inputParams.filterSettings.materialSelections,\n pressuresFilterSelection: formData.inputParams.filterSettings.pressureSelections,\n warehousesFilterSelection: formData.inputParams.filterSettings.warehouseSelections,\n customFilterSelections: formData.inputParams.filterSettings.customFilterSelections,\n };\n\n for (let property in inputs) {\n if (Object.prototype.hasOwnProperty.call(inputs, property)) {\n request.calculationData.inputValues.push({\n name: inputs[property].name,\n unit: inputs[property].unit,\n siValue: inputs[property].siValue,\n value: inputs[property].value,\n warningMessage: null\n });\n }\n }\n return request;\n}\n\nfunction transformCalculationResponse(data) {\n const lowerize = function (strval) {\n return strval.charAt(0).toLowerCase() + strval.slice(1);\n\t};\n let exchangers = data.calcResultsCollection.map((value) => {\n let response = {\n guid: value.guid,\n modelId: value.modelId,\n name: value.bphe,\n alias: value.alias,\n pureType: value.pureType,\n carbonFootPrint: value.carbonFootPrint,\n maxPlates: value.maxPlates,\n pf: value.pf,\n xpc: value.xpc,\n xpcString: value.xpcString,\n description: [],\n dualTypes: false,\n counterCurrent: false,\n crossConnect: false,\n isOnStock: null,\n portSwitched: value.portSwitched,\n messages: value.messages,\n\t\t\textraLabels: value.extraLabels,\n\t\t\tproductSheetName: value.productSheetName,\n calcMethod: value.calcMethod || '',\n channels: value.channels || []\n };\n\n const getAdditionalInfoValue = (property, getFirstValue) => {\n let val = value.additionalInfo.find((item) => { return item.key === property; });\n if (val) {\n if (getFirstValue) {\n return val.value[0] === \"True\";\n }\n return val.value;\n }\n return null;\n };\n\n response.counterCurrent = getAdditionalInfoValue('CounterCurrent', true);\n response.dualTypes = getAdditionalInfoValue('DualTypes', true);\n response.crossConnect = getAdditionalInfoValue('CrossConnect', true);\n response.isOnStock = value.isOnStock;\n\n response.ciData = value.connectionImpactData.reduce(function (acc, cur) {\n acc[lowerize(cur.key)] = cur.value;\n return acc;\n }, {});\n response.sketch = value.sketch;\n response.calcResult = value.calcResult;\n response.outputValues = value.calcResult.reduce((accumulator, currentValue) => {\n accumulator[currentValue.name] = currentValue;\n return accumulator;\n }, {});\n response.dimensionInfo = value.dimensionInfo;\n response.totalsInfo = value.totalsInfo;\n response.customHeatExchanger = value.customHeatExchanger;\n\n response.ORIG = value;\n return response;\n });\n\n const outputs = {\n exchangers: exchangers,\n messages: data.messages,\n calculationOutputColumns: data.calculationOutputColumns,\n error: data.error,\n calculationType: data.calculationType,\n calculationResponseType: data.calculationResponseType,\n };\n\n return outputs;\n}\n\nfunction transformApplicationResponse(data) {\n return data;\n}\n\nexport function processCalculationResponse(data) {\n switch (data.calculationResponseType) {\n case \"Calculation\":\n return transformCalculationResponse(data);\n case \"Application\":\n return transformApplicationResponse(data);\n default:\n return transformCalculationResponse(data);\n //throw \"Unknown calculation response type!\";\n }\n}\n\nexport default function* calculationsData() {\n yield all([\n takeLatest(Calculation.INPUTS_LOAD, getCalculationInputs),\n takeLatest(Calculation.INPUTS_HEATEXCHANGERS_LOAD, getCalculationHeatExchangers),\n takeLatest(Calculation.CALCULATE, processCalculation),\n ]);\n}\n","import { createSelector } from 'reselect';\nimport get from 'lodash/get';\n\nconst selectFilters = state => state.filters;\nconst selectCalculations = state => state.calculations || {};\n\nconst makeSelectCalculations = () =>\n createSelector(\n selectCalculations,\n calculationsState => calculationsState\n );\n\nconst makeSelectCalculation = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => calculationsState[calculationType]\n );\n};\n\nconst makeSelectCalculationInputParams = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => get(calculationsState, `[${calculationType}].inputParams`, null)\n );\n};\n\nconst makeSelectCalculationInputParamsFilterSettings = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => get(calculationsState, `[${calculationType}].inputParams.filterSettings`, null)\n );\n};\n\nconst makeSelectCalculationResponse = (calculationType) =>\n createSelector(\n selectCalculations,\n calculationsState => get(calculationsState, `[${calculationType}].response`, null)\n );\n\nconst makeSelectInputParamsValidity = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => calculationsState[calculationType] ? (calculationsState[calculationType].inputParams ? calculationsState[calculationType].inputParams.isValid: false ) : false\n );\n};\n\nconst makeSelectCalculationFilters = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => {\n return calculationsState[calculationType].inputParams.filterSettings;\n }\n );\n};\n\nconst makeSelectCalculationProps = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => calculationsState[calculationType] ? calculationsState[calculationType].calculation : null\n );\n};\n\nconst makeSelectIsCalculating = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => calculationsState[calculationType] ? calculationsState[calculationType].isCalculating || false : false\n );\n};\n\nconst makeSelectIsCalcLoaded = (calculationType) => {\n return createSelector(\n selectCalculations,\n calculationsState => {\n const isLoading = calculationsState[calculationType] ? calculationsState[calculationType].loading || false : false;\n return !isLoading && calculationsState[calculationType] ? true: false;\n }\n );\n};\n\nconst makeSelectSelectedProduct = (calculationType) =>\n createSelector(\n selectCalculations,\n calculation => { return calculation[calculationType] ? calculation[calculationType].selectedExchanger : null;}\n );\n\nconst makeSelectSelectedItem = (calculationType) =>\n createSelector(\n selectCalculations,\n calculation => { return calculation[calculationType] ? calculation[calculationType].selectedItem : null;}\n );\n\nconst makeSelectSelectedArticlePorts = (calculationType) =>\n createSelector(\n makeSelectCalculation(calculationType),\n calculation => get(calculation, \"selectedArticlePorts\", null)\n );\n\nconst makeSelectSelectedArticle = (calculationType) =>\n createSelector(\n makeSelectCalculation(calculationType),\n calculation => get(calculation, \"selectedArticle\", null)\n );\n\nconst makeSelectSelectedFilters = (calculationType) =>\n createSelector(\n selectCalculations,\n calculation => { return calculation[calculationType] ? calculation[calculationType].filters : null;}\n );\n\nconst makeSelectFilters = () =>\n createSelector(\n selectFilters,\n filtersState => filtersState\n );\n\nexport {\n selectCalculations,\n makeSelectCalculations,\n makeSelectFilters,\n makeSelectCalculation,\n makeSelectCalculationInputParams,\n makeSelectCalculationInputParamsFilterSettings,\n makeSelectCalculationResponse,\n makeSelectCalculationFilters,\n makeSelectSelectedProduct,\n makeSelectSelectedItem,\n makeSelectSelectedArticlePorts,\n makeSelectSelectedArticle,\n makeSelectSelectedFilters,\n makeSelectCalculationProps,\n makeSelectIsCalculating,\n makeSelectIsCalcLoaded,\n makeSelectInputParamsValidity\n};\n","import { createSelector } from 'reselect';\nimport get from 'lodash/get';\n\nconst selectUserProfile = state => state.userProfile;\n\nconst makeSelectUserProfile = () =>\n createSelector(\n selectUserProfile,\n userProfileState => userProfileState\n );\n\nconst makeSelectUserName = () =>\n createSelector(\n selectUserProfile,\n userProfileState => {\n return {\n firstname: userProfileState.firstName,\n lastname: userProfileState.lastName\n };\n }\n );\n\nconst makeSelectUserId = () =>\n createSelector(\n selectUserProfile,\n userProfileState => userProfileState.userId\n );\n\nconst makeSelectUserAllowedCalculations = () =>\n createSelector(\n selectUserProfile,\n userProfileState => userProfileState.allowedCalculationTypes\n );\n\nconst makeSelectFilters = (calculationType) =>\n createSelector(\n selectUserProfile,\n userProfileState => {\n const calculationTypeFilterSetting = get(userProfileState, 'settings.filterSettings.calculationTypeFilterSettings', []).find(x => x.calculationType === calculationType);\n if (calculationTypeFilterSetting) return calculationTypeFilterSetting.calculationFilterSettingsData;\n\n const defaultCalculationFilterSettings = get(userProfileState, 'settings.filterSettings.defaultCalculationFilterSettings', null);\n if (defaultCalculationFilterSettings) return defaultCalculationFilterSettings;\n\n return null;\n }\n );\n\nexport {\n makeSelectUserProfile,\n makeSelectUserId,\n makeSelectUserAllowedCalculations,\n makeSelectFilters,\n makeSelectUserName,\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, \".inputs-border{border:none !important;border-radius:0px !important;border-bottom:1px solid #ced4da !important}.unit-btn{color:#000 !important}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/variables.scss\",\"webpack://./src/components/calculation/inputForms/unitSystem/unitSystemInput.scss\"],\"names\":[],\"mappings\":\"AAOA,eACE,sBAAuB,CACvB,4BAA6B,CAC7B,0CAA2C,CCR7C,UACE,qBAAkC\",\"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\\\";\\n\\n.unit-btn {\\n color: $swep-font-color !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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}.btn-fluid-props{float:right;color:lightgrey}.btn-fluid-props:hover{color:gray;cursor:pointer}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/variables.scss\",\"webpack://./src/components/fluidProperties/OpenFluidPropertiesButton.scss\"],\"names\":[],\"mappings\":\"AAOA,eACE,sBAAuB,CACvB,4BAA6B,CAC7B,0CAA2C,CCR7C,iBACE,WAAY,CACZ,eAAe,CAFjB,uBAII,UAAU,CACV,cAAe\",\"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\\\";\\n\\n.btn-fluid-props {\\n float: right;\\n color:lightgrey;\\n &:hover{\\n color:gray;\\n cursor: pointer;\\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]!./unitSystemInput.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;","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]!./OpenFluidPropertiesButton.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":""}