{"version":3,"sources":["components/CookiesInfo.js","scenes/SignIn/services/api.js","scenes/Administration/services/api.js","scenes/Alarms/services/api.js","components/Refresh.js","AppDataProvider.js","components/Loading.js","components/MainLoading.js","components/Error.js","components/AlarmWarning.js","Routes.js","components/assets/logo.svg","components/assets/logo_white.svg","components/Logo.js","components/AppBar.js","components/Nav.js","components/Layout.js","components/Authentication.js","scenes/SignIn/SignIn.js","scenes/Administration/AdministrationDataProvider.js","components/CRUDs/CrudList.js","scenes/Administration/scenes/Users/UsersList.js","scenes/Administration/scenes/Buildings/BuildingsList.js","scenes/Administration/scenes/Indicators/IndicatorsForm.js","scenes/Administration/scenes/Indicators/formConfig.js","components/CRUDs/CheckboxField.js","components/DisabledInput.js","components/CRUDs/TextField.js","scenes/Administration/scenes/Users/UserForm.js","components/DisabledInputNumber.js","components/CRUDs/NumberField.js","components/CRUDs/SelectField.js","scenes/Administration/scenes/Buildings/labelTypes.js","scenes/Administration/scenes/Buildings/MeterLabels.js","scenes/Administration/scenes/Buildings/BuildingForm.js","scenes/Administration/scenes/CommonModal.js","scenes/Administration/index.js","scenes/Administration/Administration.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/utils/constants.js","components/Charts/utils/chartTypes.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/utils/types.js","scenes/Analysis/components/DataInputForm.js","scenes/Analysis/components/StyledDrawer.js","scenes/Analysis/components/SetupList.js","scenes/Analysis/services/api.js","scenes/Analysis/AnalysisDataProvider.js","utils/formaters.js","components/BuildingSelect.js","components/FormItemWrapper.js","scenes/Analysis/components/StyledForm.js","components/MathParser.js","components/MultiCheckboxGroup.js","scenes/Analysis/components/MeasurementsPicker.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/Dialogs/LoadDataDialog.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/MenuElements/LoadData.js","components/ColorSelect.js","components/VisibilitySwitch.js","scenes/Analysis/components/AxisSelect.js","scenes/Analysis/components/PathSelect.js","utils/Subscriber.js","sleep.js","utils/delayed.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/Dialogs/UseDataDialog.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/MenuElements/UseData.js","scenes/Analysis/components/AxisSideSelect.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/Dialogs/AxisDialog.js","scenes/Analysis/components/SelectxKey.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/Dialogs/XAxisDialog.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/Dialogs/EditSettingsDialog.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/MenuElements/ConfigChart.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/utils/defaults.js","scenes/Analysis/scenes/ChartCreate/ChartSetup/index.js","components/Charts/utils/filters.js","components/Charts/utils/calculate.js","components/Charts/RegresionSummary.js","components/Charts/CustomXAxis.js","components/Charts/CustomYAxis.js","components/Charts/CustomTooltip.js","components/Charts/CustomLegend.js","components/Charts/CustomLimit.js","components/Charts/Common.js","components/Charts/LineChart.js","components/Charts/CustomArea.js","scenes/Analysis/scenes/ChartCreate/NoChartReason.js","scenes/Analysis/components/ConfirmExcel.js","scenes/Analysis/components/DownloadChart.js","scenes/Analysis/scenes/ChartCreate/ChartCreate.js","scenes/Analysis/scenes/ChartCreate/index.js","scenes/Analysis/Analysis.js","scenes/Analysis/index.js","scenes/Dashboard/components/CardValue.js","scenes/Dashboard/components/AnnualData.js","scenes/Dashboard/components/EnergyUseCompare.js","scenes/Dashboard/components/TimeSection.js","scenes/Dashboard/DashboardDataProvider.js","scenes/Dashboard/scenes/BuildingDetails.js","components/Charts/AreaChart.js","components/Charts/BarChart.js","components/Charts/PieChart.js","components/Charts/ScatteredChart.js","components/CustomChart.js","scenes/Dashboard/components/ChartCard.js","scenes/Dashboard/scenes/chartConfig/day.js","scenes/Dashboard/scenes/chartConfig/week.js","utils/dictionaries/energyUsageAreas.js","utils/dictionaries/index.js","scenes/Dashboard/components/GainTip.js","scenes/Dashboard/scenes/chartConfig/month.js","scenes/Dashboard/scenes/chartConfig/year.js","scenes/Dashboard/scenes/chartConfig/index.js","scenes/Dashboard/scenes/Charts.js","scenes/Help/Help.js","scenes/Help/index.js","scenes/Dashboard/scenes/NoBuildings.js","scenes/Dashboard/components/TimeSelect.js","scenes/Dashboard/components/InlineValue.js","scenes/Dashboard/components/CurrentData.js","scenes/Dashboard/services/api.js","scenes/Dashboard/scenes/TopBar.js","scenes/Dashboard/Dashboard.js","scenes/Dashboard/index.js","scenes/Reports/services/api.js","components/PeriodSelect.js","scenes/Reports/scenes/ReportConfig.js","scenes/Reports/scenes/ConfirmLoad.js","scenes/Reports/components/Footer.js","scenes/Reports/components/Page.js","scenes/Reports/components/FrontPage.js","scenes/Reports/components/Header.js","scenes/Reports/components/PdfComponents.js","scenes/Reports/components/PageHeading.js","scenes/Reports/components/List.js","scenes/Reports/components/ReportNavigation.js","scenes/Reports/components/ChartHolder.js","scenes/Reports/scenes/chartsConfig/allBuildings.js","scenes/Reports/scenes/chartsConfig/measuredBuilding.js","scenes/Reports/scenes/chartsConfig/index.js","scenes/Reports/components/BuildingsLegend.js","scenes/Reports/components/Conclusion.js","scenes/Reports/components/Table.js","scenes/Reports/scenes/AllBuildings.js","scenes/Reports/scenes/BuildingReport.js","scenes/Reports/scenes/Introduction.js","scenes/Reports/scenes/ReportGeneration.js","scenes/Reports/components/Section.js","scenes/Reports/components/StickySection.js","scenes/Reports/scenes/ReportDownload.js","scenes/Reports/scenes/Generation.js","scenes/Reports/index.js","scenes/Reports/Reports.js","scenes/Reports/ReportsDataProvider.js","components/ContentWrapper.js","scenes/Alarms/services/const.js","scenes/Alarms/AlarmsDataProvider.js","scenes/Alarms/components/AlarmsTable.js","scenes/Alarms/scenes/AlarmsSettings.js","scenes/Alarms/scenes/AdminAlarms.js","scenes/Alarms/scenes/UserAlarms.js","scenes/Alarms/index.js","scenes/Alarms/Alarms.js","scenes/Db/services/api.js","scenes/Db/DbDataProvider.js","scenes/Db/scenes/Buildings/BuildingsList.js","scenes/Db/scenes/HookUps/HookUpsList.js","scenes/Db/scenes/Invoices/services/services.js","scenes/Db/scenes/Invoices/InvoicesList.js","scenes/Db/scenes/DataExport/DataExport.js","scenes/Db/scenes/Buildings/BuildingForm.js","scenes/Db/scenes/HookUps/HookUpForm.js","scenes/Db/scenes/Invoices/InvoiceForm.js","scenes/Db/scenes/CommonModal.js","scenes/Db/index.js","scenes/Db/Db.js","scenes/Benchmarking/scenes/Database/colorInterpolation.js","scenes/Benchmarking/scenes/Database/Gauge.js","scenes/Benchmarking/scenes/MyBuildings/chartConfig.js","scenes/Benchmarking/services/api.js","scenes/Benchmarking/BenchmarkingDataProvider.js","scenes/Benchmarking/scenes/Database/Database.js","scenes/Benchmarking/scenes/MyBuildings/MyBuildings.js","scenes/Benchmarking/Benchmarking.js","App.js","constants.js","index.js"],"names":["acceptCookies","localStorage","getItem","CookiesInfo","_useState","useState","_useState2","Object","slicedToArray","accepted","setAccepted","react_default","a","createElement","Layer","Container","es_row","gutter","col","span","Info","Link","href","Button","onClick","setItem","styled","div","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","postSignIn","_ref","asyncToGenerator","regenerator_default","mark","_callee","email","password","resp","wrap","_context","prev","next","axios","post","login","sent","abrupt","stop","_x","_x2","apply","this","arguments","postSignInByToken","_ref2","_callee2","_context2","getEnums","_ref3","_callee3","_context3","get","getUsers","postNewUser","user","postUserUpdate","put","concat","id","postUserRemoval","_ref4","_callee4","userId","_context4","delete","_x3","postUserPasswordChange","_ref6","_callee5","_ref5","newPassword","_context5","_x4","_x5","getBuildings","_ref7","_callee6","_context6","postNewBuilding","_ref8","_callee7","building","_context7","_x6","postBuildingUpdate","_ref9","_callee8","_context8","_x7","postBuildingRemoval","_ref10","_callee9","buildingId","_context9","_x8","getIndicators","_ref11","_callee10","_context10","putNewIndicators","_ref12","_callee11","indicators","_context11","_x9","capitalize","str","charAt","toUpperCase","slice","postNewLabelName","_ref13","_callee12","name","labelType","endpoint","_context12","_x10","_x11","_x12","postLabelNameRemoval","_ref14","_callee13","_context13","_x13","_x14","postLabelNameUpdate","_ref15","_callee14","_context14","_x15","_x16","_x17","_x18","getActiveAlarms","getAlarmsHistory","postAlarmDeactivation","alarmId","postNewAlarmSetting","newAlarm","Refresh","es_button","window","location","reload","icon","size","clearStorageOnLogout","removeItem","getDependentUsers","isAdmin","to","data","getBaseData","_ref4$","err","buildings","_ref4$2","enumErr","enums","_ref4$3","userErr","users","_ref4$4","alarmsErr","alarms","result","Promise","all","Error","t0","undefined","AppContext","React","createContext","AppDataProvider","children","isLoading","setIsLoading","startAsyncTask","message","finishAsyncTask","_useState3","_useState4","isSignedIn","setIsSignedIn","_useState5","_useState6","setBuildings","_useState7","_useState8","setEmail","_useState9","_useState10","error","setError","_useState11","_useState12","setUsers","_useState13","_useState14","setUserId","_useState15","_useState16","anyActiveAlarms","setAnyActiveAlarms","_useState17","_useState18","setIsAdmin","_useState19","_useState20","appHeader","setAppHeader","_useState21","_useState22","weatherStationName","setWeatherStationName","_useState23","_useState24","setEnums","wrapRequest","request","_ref7$ignoreError","ignoreError","onError","onSuccess","response","_args3","length","title","footer","Refresh_Refresh","tryLogin","loginData","_isAdmin","token","baseData","notification","status","roleId","defaults","headers","common","Authorization","success","reportEmail","submitLogin","useEffect","_checkAlarms","setInterval","checkAlarms","clearInterval","state","measuredBuildings","filter","e","hasMetersInstalled","standardUsers","clearError","Provider","value","Spinner","Loading_templateObject","CubeMove","keyframes","Loading_templateObject2","CubeCss","css","Loading_templateObject3","CubeOne","Loading_templateObject4","color","CubeTwo","Loading_templateObject5","Message","_templateObject6","Loading","MainLoading_templateObject","MainLoading","useContext","MainLoading_Layer","components_Loading","components_Error","Error_Error","_ref$error","props","objectWithoutProperties","StyledError","Title","Error_Message","Error_Footer","Error_templateObject","Footer","Error_templateObject2","Error_templateObject3","Error_templateObject4","AlarmWarning_templateObject","p","wasClicked","AlarmIcon","es_icon","AlarmWarning_templateObject2","withRouter","history","setWasClicked","pathname","AlarmWarning_Container","type","push","_extends","assign","target","i","source","key","prototype","hasOwnProperty","call","logo_ref","logo_ref2","className","d","logo_ref3","points","logo_ref4","logo_ref5","logo_ref6","x","y","width","height","logo_ref7","logo_ref8","logo_ref9","transform","logo_ref10","logo_SvgLogo","viewBox","style","enableBackground","xmlSpace","gradientUnits","x1","y1","x2","y2","offset","stopColor","__webpack_require__","logo_white_extends","logo_white_ref","logo_white_ref2","logo_white_ref3","logo_white_ref4","logo_white_ref5","logo_white_ref6","logo_white_ref7","logo_white_ref8","logo_white_SvgLogoWhite","gradientTransform","LOGO_SIZES","SMALL","REPORT_FRONT_PAGE","REPORT_HEADER","SIGN_IN","sizes","_sizes","defineProperty","Logo","_ref$size","alt","Bar","AppBar_templateObject","AppBar_templateObject2","LeftGroup","AppBar_templateObject3","MonitorTitle","AppBar_templateObject4","CenterGroup","AppBar_templateObject5","RightGroup","AppBar_templateObject6","AppBar","_useContext","AppBar_Title","components_AlarmWarning","background","StyledMenu","menu","Nav_templateObject","nav","Nav_templateObject2","currentRoute","setCurrentRoute","Nav_Container","mode","selectedKeys","Item","es_Link","Main","Layout_templateObject","AppContent","Layout_templateObject2","View","Layout_templateObject3","minAppHeight","minAppWidth","Layout","components_AppBar","components_Nav","Authentication","react","Redirect","Form","form","SignIn_templateObject","LogoWrapper","SignIn_templateObject2","StyledInput","es_input","SignIn_templateObject3","StyledButton","SignIn_templateObject4","SignIn","setFormEmail","setFormPassword","placeholder","onChange","AdministrationContext","AdministrationDataProvider","indicatorsCategories","setIndicatorsCategories","currentId","setCurrentId","setMode","kind","setKind","isModalVisible","setIsModalVisible","getIndexById","findIndex","entry","fetchUsers","_fetchUsers","_createUser","newUser","es_message","_updateUser","updatedUser","newUsers","toConsumableArray","_deleteUser","userToDelete","_changePassword","passwords","fetchBuildings","_fetchBuildings","_createBuilding","newBuilding","_updateBuilding","updatedBuilding","newBuildings","_deleteBuilding","BuildingToDelete","fetchIndicators","_fetchIndicators","categories","_updateIndicators","indicatorsPostData","createBuilding","updateBuilding","deleteBuilding","createUser","updateUser","deleteUser","changePassword","updateIndicators","currentConfig","currentEntry","find","CrudList","items","addText","onRead","onUpdate","onDelete","onCreate","customAction","list","itemLayout","locale","emptyText","dataSource","renderItem","item","actions","label","Meta","description","float","UsersList","showUsersModal","CRUDs_CrudList","map","objectSpread","contactPerson","contactPhone","BuildingsList","showBuildingsModal","fullName","street","city","uncapitalize","toLowerCase","Indicator","inputs","indicator","isEditing","unit","minMax","rangeType","min","max","minFieldName","maxFieldName","minValue","maxValue","Fragment","input_number","disabled","margin","step","model","fieldName","mapRangeTypeToColor","IndicatorsForm_Row","IndicatorsForm_Cell","Label","Unit","table","IndicatorsForm_templateObject","Row","tr","IndicatorsForm_templateObject2","Cell","td","IndicatorsForm_templateObject3","IndicatorsForm_templateObject4","IndicatorsForm_templateObject5","IndicatorsForm","setIsEditing","setIndicatorsPostData","handleChange","newIndicators","isEmpty","flatMap","category","reduce","acc","curr","handleSave","btnLabel","tabs","defaultActiveKey","categoryName","TabPane","tab","IndicatorsForm_Container","idx","IndicatorsForm_Indicator","marginTop","CrudCheckbox","editable","rest","es_checkbox","checked","DisabledCheckbox","CheckboxField_templateObject","CheckboxField","formData","es_form","CheckboxField_CrudCheckbox","DisabledInput","DisabledInput_DisabledInput","pointerEvents","DisabledInput_templateObject","CrudInput","TextField","customKey","TextField_CrudInput","ROLES","DeleteContainer","UserForm_templateObject","UserForm","initialState","actionLabel","onCancel","onAction","address","passwordRepeat","setFormData","passwordError","setPasswordError","isPasswordValid","setIsPasswordValid","textProps","handlePassword","newValue","handlePasswordRepeat","_validatePassword","pass","isValid","test","validatePassword","passwordInputs","label1","label2","Password","marginLeft","actionDisabled","includes","action","omit","paddingRight","CRUDs_TextField","CRUDs_CheckboxField","DisabledInputNumber","DisabledInputNumber_DisabledInput","DisabledInputNumber_templateObject","CrudInputNumber","NumberField","NumberField_CrudInputNumber","Option","SelectField","v","itemKey","itemDescription","options","_value","es_select","labelTypes","labelTypesIds","Header","textAlign","pushEmptyLabel","closeModal","marginBottom","SingleLabel","isDeleted","setIsDeleted","typeId","setTypeId","setName","setId","isUpdating","setIsUpdating","handleDelete","handleUpdate","handleAdd","labelTypeOptions","typeDisabled","canEditName","lineHeight","spin","marginRight","MeterLabels","currentBuilding","buildingMetersLabels","labelTypeId","localLabels","setLocalLabels","MeterLabels_Header","MeterLabels_SingleLabel","MeterLabels_Footer","emptyLabel","BuildingForm","shortName","postOffice","area","orderedElectricPower","orderedHeatPower","renewableEnergySourcesPower","managerEmail","_useContext2","numberProps","checkboxProps","display","justifyContent","padding","layout","CRUDs_NumberField","CRUDs_SelectField","categoryId","buildingTypes","Buildings_MeterLabels","CommonModal","userModalConfigs","createUsers","header","component","Users_UserForm","readUsers","updateUsers","deleteUsers","removeMode","changePasswordUsers","buildingModalConfigs","createBuildings","Buildings_BuildingForm","readBuildings","updateBuildings","deleteBuildings","currentModalConfig","ModalComponent","modal","visible","cancelText","maxHeight","minWidth","overflowY","Administration","Users_UsersList","Buildings_BuildingsList","Indicators_IndicatorsForm","scenes_CommonModal","MODES","freeze","EDIT","LOAD","extractEntry","path","split","generateDataSource","measurement","generateDataDescription","generateDataSourcesSet","fields","measurements","m","measurementsLabels","NOT_LOADED_DATA_REASONS","AXISKEY","NOAXISDATA","formatReason","reason","_NOT_LOADED_DATA_REAS","formatReasonSymbol","_NOT_LOADED_DATA_REAS2","getDisableReason","loadedData","xKey","_extractEntry","_extractEntry2","usedKey","load","settingsType","PropTypes","string","isRequired","showTitle","bool","showLegend","stopInteractive","stopAnimation","horizontalGrid","verticalGrid","xFormatter","func","yFormatter","limitType","axis","dashSpacing","number","dashLength","lineColor","lineWidth","withDescriptionType","showDescription","withIdType","withXKeyType","defaultAxisType","useDefault","oneOf","xAxisType","withTime","datesNumber","yAxisType","showAxis","side","rangeFrom","oneOfType","rangeTo","rangeSpan","usedDataType","dashed","chartConfigType","settings","shape","limits","arrayOf","xAxis","yAxises","ConfigType","EditDataType","periodType","DataType","time","EditUsedDataType","showRegresion","dotted","UsedDataType","show","DataInputForm_templateObject","StyledDrawer","StyledDrawer_StyledDrawer","bodyStyle","flex","drawer","StyledDrawer_templateObject","SetupList","SetupList_templateObject","SetupAdd","StyledSetupAdd","StyledSetupDescription","SetupList_templateObject2","SetupList_templateObject3","ButtonForList","StyledButtonForList","SetupList_templateObject4","mergeData","_args","resolve","sorted","sortBy","final","last","pop","getLineChartData","from","parsedRequest","merged","filterReadings","lowerBound","upperBound","baseMeasurements","multipleMeasurements","multi","parseInt","index","r","Date","moment","valueOf","multiMeasurements","meterId","getBuildingMeasurements","AnalysisContext","AnalysisDataProvider","buildingsMeasurements","setBuildingMeasurements","_fetchMeasurements","fetchMeasurements","formatDate","timestamp","unix","format","formatHour","formatDateTime","isFilledString","formatNumber","num","_ref$position","position","_ref$addSpace","addSpace","parseFloat","toFixed","Math","round","pow","numberWithSpaces","parts","toString","replace","join","removePolish","formatPeriod","startDate","endDate","period","isSame","isNumberConverted","Number","isNaN","userFormatter","buildingDefaultFilterOption","input","option","isLeaf","child","BuildingSelect","selectedUser","usedUser","StyledCommonSelect","IconHolder","fontSize","SelectHolder","tree_select","showSearch","treeDefaultExpandAll","notFoundContent","empty","image","PRESENTED_IMAGE_SIMPLE","filterTreeNode","treeData","buildingsIds","selectable","selectStyle","BuildingSelect_Option","defaultFilterOption","UserSelect","filterOption","BuildingSelect_templateObject","BuildingSelect_templateObject2","BuildingSelect_templateObject3","validate","showSuccess","required","rules","isNull","isNil","isArray","validateStatus","help","errorMessage","_React$cloneElement","_ref2$valueKey","valueKey","_ref2$rules","triggered","isEdit","disableOnEdit","fetching","disableOnFetching","_triggered","setTrigger","onBlur","Children","only","validateFun","StyledItem","cloneElement","propTypes","FormItemWrapper_templateObject","hasIcon","StyledFrom","StyledForm_templateObject","FormInner","StyledForm_templateObject2","FormFooter","StyledForm_templateObject3","TYPES","NORMAL","UPPER","LOWER","typesConverter","_typesConverter","esm_extends","getBracketExpr","pos","indexOf","start","end","getFirstChart","splitChartConverter","splitter","_str$split","_str$split2","toArray","first","forEach","fun","_fun","startsWith","supConverter","subConverter","MathParser","conv","nResult","_unused","mathTextConverter","defaultRender","MultiCheckboxGroup","_ref$options","_ref$value","allowAll","allowSearch","_ref$renderItem","filterValue","changeFilter","onCheck","event","filteredOptions","filteredEnabled","_filteredEnabled$redu","opt","isIn","checkedAll","checkedAny","reducer","MultiCheckBox","MultiCheckboxGroup_Header","indeterminate","difference","uniq","allowClear","CheckboxGroup","MultiCheckboxGroup_Item","MultiCheckboxGroup_templateObject","MultiCheckboxGroup_templateObject2","MultiCheckboxGroup_templateObject3","MultiCheckboxGroup_templateObject4","measurementsConfig","require","getMultipleLabelFromLoaded","getMeasurementLabel","prefixes","multiLabel","customLabel","getMeasurementUnit","inputValue","mapMultiple","possible","config","passed","MeasurementsPicker","_ref7$disabledValues","disabledValues","HeaderItem","MeasurementsPicker_templateObject","MeasurementsPicker_templateObject2","MeasurementsPicker_templateObject3","transfer","MeasurementsPicker_templateObject4","RangePicker","isDateAfter","date","isBefore","LoadDataForm","editedData","onClose","loadData","updateData","now","setTriggered","setValue","formSettings","updateWithValid","update","getBuildingShortcut","found","c","onReset","genDefaultData","onSubmit","toValidate","preventDefault","periods","element","setupSettings","formatter","hideRequiredMark","FormItemWrapper","BuildingSelect_UserSelect","BuildingSelect_BuildingSelect","default","LoadDataDialog_PeriodSelect","extractPeriodSettings","htmlType","PeriodSelect","keys","LoadDataDialog_Option","day","clone","subtract","days3","week","weeks2","month","months3","year","userDefined","disabledDate","values","startOf","endOf","newData","updateNewData","object","LoadData","openedDialog","getIndex","_this","onCloseDialog","setState","openDialogLoad","openDialogEdit","newIndex","_this$props","updateLoadedData","_this$props2","zipped","zipWith","b","removeData","_this$props3","_this$props4","_this2","_this$props5","DataInputForm","SetupList_ButtonForList","SetupList_SetupAdd","placement","LoadDataDialog","Component","ColorSelect","colors","ColorSelect_Option","ColorSelectColor","ColorSelect_templateObject","multiChartLineColors","VisibilitySwitch","VisibilitySwitch_VisibilitySwitch","VisibilitySwitch_templateObject","AxisSelect_Option","dropdownStyle","overflow","set","Subscriber","classCallCheck","subscribe","callback","unSubCallback","subscribed","unsubscribe","sleep","setTimeout","DelayedRenderer","possibleConstructorReturn","getPrototypeOf","waiting","renderedProps","subscriber","Subscripter","awaitDelay","updateAsyncProps","delay","defaultProps","DelayedExecution","_this3","renderedValue","prevProps","_this4","executeDelayedUpdate","canceled","selfUpdate","_this5","wrappedOnChange","withDelayedUpdate","Element","_ref4$delay","delayed_DelayedExecution","DelayedInput","UseDataForm","axisData","defaultAxisData","handleAxisData","PathSelect","AxisSelect","changedFields","UseData","changeShow","UseData_Details","UseDataDialog","StyledDetails","UseData_templateObject","StyledSwitch","UseData_templateObject2","DetailsTitle","UseData_templateObject3","StyledWaringTip","UseData_templateObject4","_NOT_LOADED_DATA_REAS3","formatReasonColor","Details","tooltip","es_switch","AxisSideSelect","AxisSideSelect_Option","AxisForm","AxisDialog_DelayedInput","editedAxis","SelectxKey","addMeasurements","StyledSelect","SelectxKey_Option","StyledOption","StyledPlaceholder","theme","warning","Warning","SelectxKey_templateObject","SelectxKey_templateObject2","SelectxKey_templateObject3","SelectxKey_templateObject4","XAxisForm","usedData","XAxisDialog_DelayedInput","precision","EditSettingsForm","EditSettingsDialog_DelayedInput","ConfigChart","openedDialogSettings","openedDialogXAxis","openedDialogYAxis","onCloseDialogSettings","onCloseDialogXAxis","onCloseDialogYAxis","openDialogSettings","openDialogXAxis","openDialogYAxis","addAxis","newAxis","ncofig","nAxises","updateAxis","canRemove","used","removeAxis","axisId","updateSettings","newSettings","updateXAxis","_this$props6","ConfigChartSection","EditSettingsDialog","XAxisDialog","AxisDialog","ConfigChart_templateObject","defaultChartConfig","nextColorsPallete","alreadyUsed","counter","pallete","getUsedData","colorPallete","Panel","collapse","DisableLegendAlert","getActiveStatus","isActiveUsedData","isActiveChartConfig","ChartSetup","changeActiveKey","newActiveKey","activeKey","containsDataSource","fid","filteredOld","allNew","loaded","toAdd","newUsedData","chartConfig","canLegend","updateUsedData","updateChartConfig","_getActiveStatus","updateActiveKeys","removeActiveKeys","activeStatus","prevActiveStatus","union","_getActiveStatus2","StyledChartSetup","bordered","MenuElements_LoadData","MenuElements_UseData","MenuElements_ConfigChart","ChartSetup_templateObject","getAllDataFromKey","dataFromAxis","maxMin","dataFromLimits","dataFromAreas","areas","hasLeftAxis","hasRightAxis","dataFromXAxis","isTimeChart","autoRanges","limit","calculateSpan","power","scope","logRange","floor","log10","calculatePower","digit","minTick","maxTick","ceil","formatRange","auto","getRangeFromData","getTicks","range","dateTicks","_getRangeFromData","duration","diff","asHours","asDays","iter","isAfter","add","domainMin","domainMax","ticks","normalizeInput","chartRangesFromConfig","autoRangeSpan","autoRangeFrom","autoRangeTo","_getRangeFromData2","mem","regresion","yKey","R2","_regresionData","n","_data$reduce","sx","sy","rx2","ry2","rxy","regresionData","ss","generateRegresionKey","addRegresionValues","nData","dataSet","k","filterDataByKeys","_used$regresion","regKey","RegresionSummary","ranges","isTime","calculate","nb","begin","StyledRegresionSummary","RegresionValue","RegresionSummary_Title","Value","msInHour","toExponential","formatUnit","yUnit","topUnit","lowerUnit","timeUnit","RegresionSummary_templateObject","RegresionSummary_templateObject2","RegresionSummary_templateObject3","RegresionSummary_templateObject4","defaultPadding","left","right","DefaultAxis","dataKey","es6","tickMargin","stroke","xAxisHeight","CustomXAxis_CustomXLabel","CustomTimeAxis","_ref2$hasLeft","hasLeft","_ref2$hasRight","hasRight","tickFormatter","allowDataOverflow","tick","CustomXAxis_CustomizedTimeTick","interval","domain","defaultTickFormatter","CustomXAxis","CustomXLabel","_props$viewBox","ny","StyledLabel","StyledLabelInner","StyledLabelTransform","CustomizedTimeTick","textAnchor","payload","nx","calculateMiss","dataFormatter","dy","fill","PureComponent","CustomXAxis_templateObject","CustomXAxis_templateObject2","CustomXAxis_templateObject3","CustomYAxis","dataSpread","_chartRangesFromConfi","yAxisId","hide","orientation","calculateAxisWidth","CustomYAxis_CustomYLabel","CustomYLabel","CustomYAxis_StyledLabel","CustomYAxis_StyledLabelInner","StyledLabelInnerRotate","CustomYAxis_templateObject","CustomYAxis_templateObject2","CustomYAxis_templateObject3","CustomTooltip","active","forceDateTooltip","defaultTimeFormatter","mainFormatter","forcedDate","StyledTooltip","MainLabel","CustomTooltip_Table","Property","Feature","FeatureValue","PieTooltip","_ref2$dataFormatter","CustomTooltip_templateObject","Table","CustomTooltip_templateObject2","CustomTooltip_templateObject3","CustomTooltip_templateObject4","CustomTooltip_templateObject5","CustomTooltip_templateObject6","CustomLegend","LegendTick","verticalAlign","CustomLegend_templateObject","CustomLimit","ifOverflow","strokeDasharray","strokeWidth","StyledChart","Common_templateObject","showRegression","Common_templateObject2","legendItems","calculateHeight","ChartTitle","Common_templateObject3","RegresionContainer","Common_templateObject4","regresionPosition","xAxisRanges","dataWithReg","Common_Container","content","opacity","fillOpacity","CustomArea","horizontal","vertical","CustomLine","lineId","legendType","isAnimationActive","regresionSettings","prop","yAxis","any","activeDot","connectNulls","dot","NoChartReason","isOverflow","accept","disableReason","noAxisData","asKey","canShow","canShowData","onlyXkey","NoChartReason_StyledDescription","Tip","NoChartReason_NoChartReason","NoChartReason_templateObject","StyledDescription","count","NoChartReason_templateObject2","ConfirmExcel","onLoad","prepareKeys","loadFalse","obj","makeDataArray","check","prepareData","mergedData","formatted","DownloadChart","_ref10$loadedData","_ref10$usedData","askExcel","setAskExcel","ws","wb","XLSX","utils","aoa_to_sheet","cellDates","book_new","Props","Author","Company","CreatedDate","book_append_sheet","writeFile","some","should","filterLoadedData","usedKeys","ks","array","nKeys","updateKeys","ChartCreate","mapSetupToChart","xAxisMapper","other","_chartConfig","_usedData","_data","acceptOverflow","mapSetupResult","StyledChartCreate","SetupMenu","ChartCreate_ChartSetup","ChartPresentation","ChartContainer","ChartPlacement","LineChart","ChartDowloadContainer","ChartCreate_templateObject","ChartCreate_templateObject2","ChartCreate_templateObject3","ChartCreate_templateObject4","ChartCreate_templateObject5","ChartCreate_templateObject6","Analysis","Analysis_templateObject","Analysis_Analysis","scenes_ChartCreate","CardValue","loading","card","CardValue_CardValue","CardValue_Label","CardValue_Value","CardValue_templateObject","CardValue_templateObject2","CardValue_templateObject3","AnnualData","getValue","getData","valueFormatter","BuildingData","elements","MyRow","shouldHide","renderElement","_ref2$addSpace","formatMoney","AnnualData_templateObject","AnnualData_templateObject2","EnergyUseCompare","_ref$data","_data$minValue","usageInSelectedBuilding","avg","avgUsageInUsersBuilings","factor","EnergyUseCompare_Container","InnerContent","CompareUsageContainer","IndicatorContainer","EnergyUseCompare_Indicator","Arrow","GradientBar","LabelsContainer","EnergyUseCompare_Title","EnergyUseCompare_templateObject","EnergyUseCompare_templateObject2","EnergyUseCompare_templateObject3","EnergyUseCompare_templateObject4","EnergyUseCompare_templateObject5","EnergyUseCompare_templateObject6","_templateObject7","_templateObject8","_templateObject9","TimeSection","TimeSection_TimeSection","firstReadingDate","TimeSection_templateObject","initialDashboardState","currentBuildingId","currentTime","DashboardContext","getBuildingPosition","DashboardDataProvider","field","getBuilding","finished","getCurrentTime","setCurrentTime","setCurrentBuilding","startFetching","nbuildings","endFetching","startFetchingData","endFetchingData","startFetchingTime","timeKey","endFetchingTime","depricateData","depricateHourData","depricateDailyData","BuildingDetails","fetchingData","BuildingDetails_BuildingDetails","BuildingDetails_templateObject","_settings$stackData","stackData","areaId","stackId","extra","CustomBar","isFront","Extra","maxBarSize","BarChart_templateObject","RADIAN","PI","cx","cy","midAngle","outerRadius","percent","sin","cos","mx","my","ex","ey","shortcut","CustomInner","innerContent","innerRadius","percentage","R","FullDiv","InnerDiv","PieChart_templateObject","PieChart_templateObject2","getColor","colorMapper","showEmpty","_ref7$showLabel","showLabel","descriptionMapper","shortcutMapper","showTooltip","_ref7$innerRadius","_ref7$outerRadius","_ref7$descriptionKey","descriptionKey","sum","s","StyledPieChart","CustomTooltip_PieTooltip","startAngle","endAngle","minAngle","PieChart_CustomInner","PieChart_CustomPieLegend","PieChart_templateObject3","CustomPieLegend","StyledLegend","LegendWrapper","LegendItem","PieChart_templateObject4","PieChart_templateObject5","PieChart_templateObject6","descriptionId","radius","CustomDot","_ref4$descriptionPosi","descriptionPosition","CHART_TYPES","AREA_CHART","LINE_CHART","BAR_CHART","PIE_CHART","SCATTERED_CHART","CustomChart","_CHART_TYPES$AREA_CHA","Chart","chartType","AreaChart","BarChart","PieChart","ScatteredChart","ChartCard","spread","ChartCard_ChartCard","StyledCard","StyledTitle","headStyle","border","ChartCard_templateObject","ChartCard_templateObject2","ChartCard_templateObject3","dayConfig","heatPowerConsumption","electricityPowerConsumption","OZEPowerProduction","temperatures","co2","humidity","limitMin","limitMax","barProps","minTickGap","weekConfig","totalConsumption","OZEProduction","energyUsageAreas","mainCooling","mainVentilation","mainLight","cwu","co","dictionaries","GainTip","gain","calculateGain","GainTip_GainTip","IconContainer","Up","Down","DataContainer","GainTip_templateObject","GainTip_templateObject2","GainTip_templateObject3","GainTip_templateObject4","GainTip_templateObject5","mapUsageAreaColor","Dictionaries","mapUsageAreaDescription","mapUsageAreaShortcut","monthConfig","dailyHeatConsumption","dailyElectricityConsumption","comparedConsumption","heatingCurve","addRegresionBoundary","spreadRegresion","dailyOZEProduction","yearConfig","monthlyHeatConsumption","monthlyElectricityConsumption","monthlyOZEProduction","chartDivisions","enableHidden","Charts","fetchingTime","shouldHideChart","currentElements","Charts_Charts","row","Boolean","Charts_Row","idx2","Charts_Cell","passedChartConfig","StyledCell","Charts_templateObject","Charts_templateObject2","Charts_templateObject3","copyEmail","textArea","document","body","appendChild","focus","select","execCommand","removeChild","Help","Help_templateObject","Help_templateObject2","Section","Help_templateObject3","InnerSection","Help_templateObject4","Help_templateObject5","dashboard","Help_Help","Help_StyledCard","Help_Message","Help_Section","download","NoBuildings","scenes_Help","TimeSelect","TimeSelect_TimeSelect","es_radio","Group","buttonStyle","timeTabs","StyledRadioButton","TimeSelect_templateObject","TimeSelect_templateObject2","InlineValue","InlineValue_InlineValue","InlineValue_Label","InlineValue_Value","InlineValue_Unit","InlineValue_templateObject","InlineValue_templateObject2","InlineValue_templateObject3","InlineValue_templateObject4","CurrentData","buildingData","goodPm10","badPm10","goodPm25","badPm25","WrappedCurrentData","WeatherStation","CurrentData_CurrentData","CurrentData_MyRow","pm10","good","PM10","bad","pm25","PM25","renderPMElement","pm","CurrentData_StyledInlineValue","colorPMConfig","medium","StyledInlineValue","isGood","borderRadius","CurrentData_templateObject","CurrentData_templateObject2","CurrentData_templateObject3","CurrentData_templateObject4","getBuildingData","every","mapTime","mapMulti","_ref3$data","mapTimeValues","mapListData","_ref6$data","initialSettings","mapComparedConsumption","previous","current","consumption","getBuildingTime","dataProvider","getDay","getWeek","getMonth","getYear","eletricPowerConsumption","renewableEnergySourcesProduction","carbDiox","carbDioxLimit","totalEnergyConsumption","TopBar","updateTime","fetchBuildingTime","selected","fetchBuildingData","_fetchBuildingData","_fetchBuildingTime","_useContext3","TopBar_TopBar","BuildingSelectContainer","TimeSelectContainer","CurrentDataContainer","TopBar_templateObject","TopBar_templateObject2","TopBar_templateObject3","TopBar_templateObject4","secondsToMidnight","mmt","Dashboard","Dashboard_templateObject","DashboardInner","Dashboard_templateObject2","ChartsContainer","Dashboard_templateObject3","dailyInterval","setDailyInterval","actualInterval","_resetHourData","resetHourData","dailyStart","resetDailyData","clearTimeout","console","warn","Dashboard_Dashboard","_resetDailyData","getReportData","toISOString","substring","buildingsUsages","getBuildingsUsages","pms","climateIndex","hourlyElectricity","hourlyHeat","unitElectricityTotal","electricityTotal","unitHeatTotal","heatTotal","unitWaterTotal","waterTotal","minTempThreshold","maxTempThreshold","cold","hot","MonthPicker","components_PeriodSelect","_ref$formRules","formRules","isSameOrAfter","_onChange","second","PeriodSelect_PeriodSelect","Description","PeriodSelect_templateObject","PeriodSelect_templateObject2","ReportConfig","_ref$config","_userId","_period","setPeriod","community","ReportConfigForm","TopSelectItem","CommunityContainer","per","ButtonContainer","ReportConfig_templateObject","ReportConfig_templateObject2","ReportConfig_templateObject3","ReportConfig_templateObject4","ConfirmLoad","onOk","BottomContainer","Footer_templateObject","Bottom","Footer_templateObject2","components_Footer","Page_templateObject","FrontPage","creationDate","StyledFrontPage","LogoHolder","MainTitle","FrontPage_Title","ReportDate","TableWrapper","FrontPage_Table","cellSpacing","cellPadding","FrontPage_Row","FrontPage_Cell","Month","Page","FrontPage_templateObject","FrontPage_templateObject2","FrontPage_templateObject3","FrontPage_templateObject4","FrontPage_templateObject5","FrontPage_templateObject6","FrontPage_templateObject7","FrontPage_templateObject8","FrontPage_templateObject9","_templateObject10","Top","Header_templateObject","components_Header","PdfContainer","_ref$padding","top","bottom","StyledTable","PdfComponents_TopPlaceHolder","PdfComponents_BottomPlaceHolder","TopPlaceHolder","BottomPlaceHolder","PdfComponents_templateObject","PdfHeader","PdfComponents_templateObject2","PdfFooter","PdfComponents_templateObject3","PageHeading","prefix","PageHeading_PageHeading","Prefix","StyledHref","PageHeading_templateObject","PageHeading_templateObject2","PageHeading_templateObject3","List","StyledList","List_Item","List_templateObject","List_StyledItem","Index","List_templateObject2","List_templateObject3","ReportNavigation","components_List","CustomLink","genReportLink","ReportNavigation_templateObject","ChartHolder_templateObject","CHART_SIZES","MEDIUM","SPREAD","BIG","ChartHolder_sizes","defaultSize","ChartHolderItem","ChartHolder_templateObject2","WrappedChart","chartSize","pieChartConfig","heatToArea","electricityToArea","electricityUsageByBuildings","heatUsageByBuildings","waterUsageByBuildings","buildingColorMapper","allBuildings","measuredBuilding","BuildingsLegend","BuildingsLegend_BuildingsLegend","Legend","BuildingColor","Color","BuildingsLegend_templateObject","BuildingsLegend_templateObject2","BuildingsLegend_templateObject3","BuildingsLegend_templateObject4","Conclusion","_ref$comment","comment","refId","changeValue","StyledConclusion","UsedInput","TextArea","autosize","ResultValue","Conclusion_templateObject","Conclusion_templateObject2","Conclusion_templateObject3","Table_templateObject","Table_templateObject2","CellInner","Table_templateObject3","Table_templateObject4","noBorder","Table_Table","Table_StyledCell","AllBuildings","_ref$comments","comments","AllBuildings_TableWrapper","TableHeader","components_Table","electricityTotalWithInvoices","heatTotallWithInvoices","waterTotallWithInvoices","ChartHolder","ChartHolder_WrappedChart","UsageWrapper","BuildingsLegendWrapper","allBuildingsCharts","AllBuildings_templateObject","AllBuildings_templateObject2","AllBuildings_templateObject3","AllBuildings_templateObject4","BuildingReport","Introduction","IntroductionWrapper","reportObject","reportConclusion","Introduction_templateObject","ReportGeneration","printRef","StyledReportGeneration","ReportInner","ReportContent","ref","PdfComponents_PdfContainer","ReportGeneration_templateObject","ReportGeneration_templateObject2","ReportGeneration_templateObject3","Section_templateObject","StyledSection","Section_templateObject2","Section_Title","StickySection","isSticky","isData","StyledStickySection","StickySection_ButtonContainer","StickySection_templateObject","StickySection_templateObject2","ReportDownload","_date","setDate","ReportDowloadForm","ReportDownload_TopSelectItem","date_picker","ReportDownload_ButtonContainer","react_to_print_lib_default","trigger","ReportDownload_templateObject","ReportDownload_templateObject2","ReportDownload_templateObject3","Generation","reportConfig","setReportConfig","reportData","setReportData","reportComments","setReportComments","reloadAlert","setReloadAlert","useRef","_loadData","groupedData","getGroupedData","StyledGeneration","components_Section","react_sticky_lib","topOffset","zIndex","StickyContainer","Generation_templateObject","Reports","initialReportsState","reports","ReportsContext","ReportsDataProvider","ContentWrapper_templateObject","extendAlarms","alarmTypes","alarm","reading","withUnit","alarmTypeId","threshold","alarmType","getUnit","AlarmsContext","activeAlarms","setActiveAlarms","alarmsHistory","setAlarmsHistory","fetchActiveAlarms","_fetchActiveAlarms","fetchAlarmsHistory","_fetchAlarmsHistory","_changeSetting","setting","_deactivateAlarm","changeSetting","deactivateAlarm","historyColumns","dataIndex","render","AlarmsTable","isHistory","baseColumns","filters","text","onFilter","record","buildingFullName","defaultSortOrder","sorter","sortOrder","activationTime","getTime","sortDirections","columnsWithUsers","userName","activeAlarmsColumns","initial","columns","pagination","pageSize","SettingsList","AlarmsSettings_Table","AlarmsSettings_Row","AlarmsSettings_Cell","AlarmsSettings_SettingActions","tableLayout","SettingActions","settingValue","setSettingValue","isEnabled","isChecked","setIsChecked","AlarmsSettings","selectedUserId","setSelectedUserId","selectedBuildingId","setSelectedBuildingId","userOptions","AlarmsSettings_Option","buildingOptions","selectedBuilding","AlarmsSettings_SettingsList","AdminAlarms","ContentWrapper","components_AlarmsTable","scenes_AlarmsSettings","UserAlarms","Alarms","scenes_AdminAlarms","scenes_UserAlarms","getHookUps","postNewHookUp","hookUp","postHookUpUpdate","postHookUpRemoval","hookUpId","postDatabaseBuildingUpdate","getInvoices","postNewInvoice","invoice","postInvoiceUpdate","postInvoiceRemoval","invoiceId","DbContext","DbDataProvider","hookUps","setHookUps","invoices","setInvoices","fetchHookUps","_fetchHookUps","fetchInvoices","_fetchInvoices","_createHookUp","newHookUp","_updateHookUp","updatedHookUp","newHookUps","_deleteHookUp","hookUpToDelete","_createInvoice","newInvoice","_updateInvoice","updatedInvoice","newInvoicess","_deleteInvoice","invoiceToDelete","createHookUp","updateHookUp","deleteHookUp","createInvoice","updateInvoice","deleteInvoice","HookUpsList","showHookUpsModal","HookUpsList_Option","filteredHookUps","hookUpTypes","getHookUpDetails","h","getBuildingName","getHookUpUnit","InvoicesList","showInvoicesModal","InvoicesList_Option","selectedHookUpId","setSelectedHookUpId","hookUpsgOptions","filteredInvoices","monthlyUsage","BUILDING_FIELDS","DataExport","setBuildingsIds","buildingsFields","setBuildingsFields","hookUpTypesIds","setHookUpTypesIds","DataExport_Option","buildingFieldOptions","invoiceOptions","hookUpType","setStartDate","setEndDate","isFormValid","handleExport","responseType","saveAs","DataExport_MonthPicker","newStartDate","newEndDate","TabWrapper","BuildingForm_templateObject","_ref$removeMode","postalCode","yearOfConstruction","modernisationDescription","hasThermostaticValves","cubature","mainElectricityHookUpPower","mainHeatHookUpPower","coolingType","lightingType","ventilationType","heatingSourceType","heatingEnergyCarrierType","renewableEnergySourceType","domesticHotWaterSourceType","adminProps","onSelect","userProps","coolingTypes","lightingTypes","ventilationTypes","heatingSourceTypes","heatingEnergyCarrierTypes","renewableEnergySourceTypes","domesticHotWaterSourceTypes","HookUpForm","tariff","orderedPower","onChangeValue","InvoiceForm","InvoiceForm_MonthPicker","scenes_Buildings_BuildingForm","hookUpModalConfigs","createHookUps","HookUps_HookUpForm","readHookUps","updateHookUps","deleteHookUps","invoiceModalConfigs","createInvoices","Invoices_InvoiceForm","readInvoices","updateInvoices","deleteInvoices","Db","scenes_Buildings_BuildingsList","HookUps_HookUpsList","Invoices_InvoicesList","scenes_DataExport_DataExport","Db_scenes_CommonModal","hex2rgb","hex","exec","rgb2hsl","g","l","interpolateHSL","color1","color2","hsl1","hsl2","Gauge_templateObject","Gauge_templateObject2","TopLabel","Gauge_templateObject3","RightLabel","Gauge_templateObject4","LeftLabel","Gauge_templateObject5","ValueLabel","Gauge_templateObject6","Needle","Gauge_templateObject7","angle","Gauge","_ref$minValue","_ref$maxValue","_ref$startColor","startColor","_ref$endColor","endColor","segmentColors","_ref$segmentsCount","segmentsCount","_ref$innerRadius","_ref$outerRadius","_ref$needleClassname","needleClassname","canvasRef","ctx","Array","getColors","arcAngle","segmentNo","ringWidth","beginPath","arc","_getLineCords","getLineCords","lineTo","_getLineCords2","endX","endY","alfa","closePath","strokeStyle","fillStyle","drawSegment","drawGauge","getContext","needleAngle","normalizedNeedleAngle","normalizedFactor","valueColor","Gauge_Container","Gauge_Title","getConfig","barColor","dataFieldName","avgValue","preventNaN","getMyBuildingsBenchmark","parseBackendChartData","backendData","avgElectricityUsage","avgEnergyUsage","avgHeatUsage","avgWaterUsage","electricityUsagesPerSqMeter","getBuildingsNames","heatUsagesPerSqMeter","energyUsagesPerSqMeter","waterUsagesPerSqMeter","usages","usage","getDatabaseBenchmark","compareOnlyWithinSameCategory","parseBackendGaugesData","chosenBuildingHeatUsagePerSqMeter","chosenBuildingElectricityUsagePerSqMeter","chosenBuildingEnergyUsagePerSqMeter","chosenBuildingWaterUsagePerSqMeter","BenchmarkingContext","BenchmarkingDataProvider","myBuildingsBenchmark","setMyBuildingsBenchmark","databaseBenchmark","setDatabaseBenchmark","_fetchMyBuildingsBenchmark","_fetchDatabaseBenchmark","params","fetchMyBuildingsBenchmark","fetchDatabaseBenchmark","GaugesContainer","Database_templateObject","GaugeWrapper","Database_templateObject2","Gauges","Database_Gauge","BenchmarkRadio","handleBenchmarkTypeCheck","benchmarkType","buildingCategory","Database","setBenchmarkType","buildingsOptions","buildingType","Database_BenchmarkRadio","es_alert","showIcon","Database_Gauges","MyBuildings_templateObject","AlertWrapper","MyBuildings_templateObject2","MyBuildings_StyledCell","MyBuildings_templateObject3","MyBuildings","chartConfigs","getMyBuildingsChartsConfig","MyBuildings_Container","cfg","MyBuildings_Cell","Benchmarking","scenes_MyBuildings_MyBuildings","scenes_Database_Database","StyledApp","App_templateObject","App","locale_provider","pl_PL","src_AppDataProvider","components_MainLoading","Switch","Route","scenes_SignIn_SignIn","components_Authentication","Dashboard_DashboardDataProvider","Administration_AdministrationDataProvider","components_Layout","exact","scenes_Dashboard","scenes_Administration","Analysis_AnalysisDataProvider","scenes_Analysis","AlarmsDataProvider","scenes_Alarms","Reports_ReportsDataProvider","scenes_Reports","Db_DbDataProvider","scenes_Db","Benchmarking_BenchmarkingDataProvider","scenes_Benchmarking_Benchmarking","baseURL","process","GlobalStyle","createGlobalStyle","src_templateObject","reset","mainApp","BrowserRouter","src_App","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.5549ff7d.chunk.js","sourcesContent":["import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Col, Row } from 'antd';\n\nconst acceptCookies = localStorage.getItem('acceptCookies');\n\nconst cookieLink = \"https://www.kape.gov.pl/page/polityka-prywatnosci-i-cookies\";\n\nexport default () => {\n const [accepted, setAccepted] = useState(acceptCookies);\n\n const onAccept = () => {\n setAccepted(\"true\");\n localStorage.setItem('acceptCookies', \"true\");\n }\n\n return !accepted ? (\n \n \n \n \n \n Korzystanie z witryny oznacza zgodę na wykorzystanie plików cookie z których niektóre mogą być już zapisane w folderze przeglądarki.\n Więcej informacji pod adresem polityki prywatności. W celu ich wyłączenia, skonfiguruj odpowiednio przeglądarkę.\n \n \n \n \n \n \n \n ) : null;\n}\n\nconst Container = styled.div`\n width: 1170px;\n max-width: 100%;\n box-sizing: border-box;\n\n margin-right: auto;\n margin-left: auto;\n padding: 20px 15px;\n\n @media (max-width: 991px) {\n width: 970px;\n }\n @media (max-width: 767px) {\n width: 750px;\n }\n`;\n\nconst Layer = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n background-color: #324465;\n color: #ffffff;\n width: 100%;\n z-index: 1;\n`;\n\nconst Info = styled.div`\n font-size: 16px;\n color: white;\n`;\n\nconst Link = styled.a`\n color: #0099ff;\n text-decoration: none;\n &:hover, &:active {\n color: #0099ff !important;\n text-decoration: underline;\n }\n`;\n\nconst Button = styled.a`\n height: 60px;\n width: 80px;\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n border-radius: 5px;\n border: solid 1px transparent;\n transition: all 0.3s ease-in-out;\n color: #ffffff;\n background-color: #9ea5ab;\n border-color: #90989f;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 16px;\n line-height: 1.3;\n box-sizing: border-box;\n text-decoration: none;\n user-select: none;\n &:hover {\n color: white !important;\n background: #838c93;\n border-color: #838c93;\n }\n}\n`;\n","import axios from 'axios';\n\nexport const postSignIn = async (email, password) => {\n const resp = await axios.post('/Account/login', {\n login: email,\n password,\n });\n return resp;\n};\n\nexport const postSignInByToken = async () => {\n const resp = await axios.post('/Account/credential');\n return resp;\n};\n\nexport const getEnums = async () => {\n const resp = await axios.get('/Enums');\n return resp;\n};\n","import axios from 'axios';\n\nexport const getUsers = async () => {\n const resp = await axios.get('/Users');\n return resp;\n};\nexport const postNewUser = async user => {\n const resp = axios.post('/Account/register', user);\n return resp;\n};\nexport const postUserUpdate = async user => {\n const resp = axios.put(`/Users/${user.id}`, user);\n return resp;\n};\nexport const postUserRemoval = async userId => {\n const resp = await axios.delete(`/Users/${userId}`, {});\n return resp;\n};\nexport const postUserPasswordChange = async (userId, { newPassword }) => {\n const resp = await axios.post('/Account/updatePass', {\n userId,\n newPassword,\n });\n return resp;\n};\n\nexport const getBuildings = async () => {\n const resp = await axios.get('/Buildings');\n return resp;\n};\nexport const postNewBuilding = async building => {\n const resp = await axios.post('/Buildings', building);\n return resp;\n};\nexport const postBuildingUpdate = async building => {\n const resp = await axios.put(`/Buildings/${building.id}`, building);\n return resp;\n};\nexport const postBuildingRemoval = async buildingId => {\n const resp = await axios.delete(`/Buildings/${buildingId}`, {});\n return resp;\n};\n\nexport const getIndicators = async () => {\n const resp = await axios.get('/Rates');\n return resp;\n};\nexport const putNewIndicators = async indicators => {\n const resp = await axios.put('/Rates', indicators);\n return resp;\n};\n\nconst capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);\nexport const postNewLabelName = async (name, buildingId, labelType) => {\n const endpoint = `/${capitalize(labelType)}`;\n const resp = await axios.post(endpoint, { name, buildingId });\n return resp;\n};\nexport const postLabelNameRemoval = async (id, labelType) => {\n const endpoint = `/${capitalize(labelType)}/${id}`;\n const resp = await axios.delete(endpoint, {});\n return resp;\n};\n\nexport const postLabelNameUpdate = async (id, name, buildingId, labelType) => {\n const endpoint = `/${capitalize(labelType)}/${id}`;\n const resp = await axios.put(endpoint, { id, name, buildingId });\n return resp;\n};\n","import axios from 'axios';\n\nexport const getActiveAlarms = async () => {\n const resp = await axios.get('/AlarmsHistory/active');\n return resp;\n};\nexport const getAlarmsHistory = async () => {\n const resp = await axios.get('/AlarmsHistory/inactive');\n return resp;\n};\n\nexport const postAlarmDeactivation = async alarmId => {\n const resp = await axios.post(`/AlarmsHistory/${alarmId}/deactivate`, {});\n return resp;\n};\nexport const postNewAlarmSetting = async newAlarm => {\n const resp = await axios.put(`/Alarms/${newAlarm.id}`, newAlarm);\n return resp;\n};\n","import React from 'react';\nimport { Button } from 'antd';\n\nexport const Refresh = () => (\n \n);\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport to from 'await-to-js';\nimport { notification } from 'antd';\nimport {\n postSignIn,\n postSignInByToken,\n getEnums,\n} from './scenes/SignIn/services/api';\nimport { getBuildings, getUsers } from './scenes/Administration/services/api';\nimport { getActiveAlarms } from './scenes/Alarms/services/api';\n\nimport { Refresh } from './components/Refresh';\n\nexport const clearStorageOnLogout = () => {\n localStorage.removeItem('user-token');\n localStorage.removeItem('is-admin');\n}\n\nconst getDependentUsers = async isAdmin => {\n if (isAdmin) {\n return to(getUsers());\n }\n return [null, { data: [] }];\n};\n\nconst getBaseData = async isAdmin => {\n try {\n const [\n [err, buildings],\n [enumErr, enums],\n [userErr, users],\n [alarmsErr, alarms],\n ] = await Promise.all([\n to(getBuildings()),\n to(getEnums()),\n getDependentUsers(isAdmin),\n to(getActiveAlarms()),\n ]);\n if (err || enumErr || userErr || alarmsErr) {\n throw new Error('Resourses not loaded');\n }\n const result = {\n enums: enums.data,\n buildings: buildings.data,\n users: users.data,\n alarms: alarms.data,\n };\n return result;\n } catch {\n clearStorageOnLogout();\n return undefined;\n }\n};\n\nconst AppContext = React.createContext({});\n\nconst AppDataProvider = ({ children }) => {\n const [isLoading, setIsLoading] = useState(false);\n const startAsyncTask = message => setIsLoading(message || true);\n const finishAsyncTask = () => setIsLoading(false);\n const [isSignedIn, setIsSignedIn] = useState(false);\n const [buildings, setBuildings] = useState([]);\n const [email, setEmail] = useState();\n const [error, setError] = useState();\n const [users, setUsers] = useState([]);\n const [userId, setUserId] = useState();\n const [anyActiveAlarms, setAnyActiveAlarms] = useState(false);\n const [isAdmin, setIsAdmin] = useState(false);\n const [appHeader, setAppHeader] = useState();\n const [weatherStationName, setWeatherStationName] = useState();\n const [enums, setEnums] = useState();\n\n const wrapRequest = async (\n request,\n { ignoreError = false, onError, onSuccess } = {},\n ) => {\n try {\n const response = await request();\n if (onSuccess) {\n await onSuccess(response.data);\n }\n return undefined;\n } catch (error) {\n if (!error.response && error.request && ignoreError) {\n setIsLoading(false);\n setError({\n title: 'Napotkano problem z wykonaniem zapytania',\n message:\n 'Sprawdź połączenie z internetem. Jeśli masz dostęp do sieci, prosimy o skontaktowanie się z administratorem strony.',\n footer: ,\n });\n return undefined;\n }\n if (!ignoreError) {\n if (onError) {\n await onError(error.response);\n return undefined;\n }\n setIsLoading(false);\n setError({\n title: 'Napotkano problem z wykonaniem zapytania',\n message:\n 'Serwis zwrócił nieoczekiwany błąd. Jeśli sytuacja będzie się powtarzać, prosimy o kontakt z administratorem w celu wyeliminowania błędu.',\n footer: ,\n });\n }\n }\n return undefined;\n };\n\n const clearError = () => setError(null);\n\n const tryLogin = async loginData => {\n startAsyncTask();\n const [err, resp] = await to(\n loginData\n ? postSignIn(loginData.email, loginData.password)\n : postSignInByToken(),\n );\n if (err) {\n notification.error({ message: 'Nie udało się zalogować' });\n clearStorageOnLogout();\n finishAsyncTask();\n return;\n }\n const { data, status } = resp;\n if (status === 200) {\n const isAdmin = data.roleId === 1;\n const token = data.token;\n localStorage.setItem('user-token', token);\n localStorage.setItem('is-admin', isAdmin);\n axios.defaults.headers.common.Authorization = `Bearer ${token}`;\n notification.success({ message: 'Pomyślnie zalogowano' });\n const baseData = await getBaseData(isAdmin);\n if (baseData) {\n notification.success({\n message: 'Pomyślnie pobrano dane o użytkowniku',\n });\n setEmail(data.reportEmail);\n setUserId(data.login);\n setIsAdmin(isAdmin);\n setBuildings(baseData.buildings);\n setEnums(baseData.enums);\n setUsers(baseData.users);\n setAnyActiveAlarms(baseData.alarms.length > 0);\n setAppHeader(data.appHeader);\n setWeatherStationName(data.weatherStationName);\n setIsSignedIn(true);\n } else {\n clearStorageOnLogout();\n notification.error({\n message: 'Nie udało się pobrać danych o użytkowniku',\n });\n }\n }\n finishAsyncTask();\n };\n\n const submitLogin = async (email, password) => {\n tryLogin({ email, password });\n };\n\n useEffect(() => {\n if (localStorage.getItem('user-token')) {\n tryLogin();\n }\n }, []);\n\n useEffect(() => {\n async function checkAlarms() {\n const [err, resp] = await to(getActiveAlarms());\n if (err) {\n throw new Error('Resourses not loaded');\n }\n setAnyActiveAlarms(resp.data.length > 0);\n }\n const id = setInterval(() => checkAlarms(), 1000 * 60 * 15);\n return () => clearInterval(id);\n }, []);\n\n const state = {\n isSignedIn,\n isAdmin,\n isLoading,\n email,\n error,\n userId,\n anyActiveAlarms,\n weatherStationName,\n appHeader,\n buildings,\n get measuredBuildings() {\n return buildings.filter(e => e.hasMetersInstalled);\n },\n enums,\n users,\n get standardUsers() {\n return users.filter(e => e.roleId === 2);\n },\n clearError,\n setError,\n startAsyncTask,\n finishAsyncTask,\n setIsSignedIn,\n setEmail,\n setUserId,\n setBuildings,\n setAnyActiveAlarms,\n setIsAdmin,\n setUsers,\n submitLogin,\n wrapRequest,\n };\n\n return {children};\n};\n\nexport { AppContext };\nexport default AppDataProvider;\n","import React from 'react';\nimport styled, { css, keyframes } from 'styled-components';\n\nconst Loading = ({size, message, color}) => (\n \n \n \n {message && (\n {message}\n )}\n \n);\n\nconst Spinner = styled.div`\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 72px;\n height: 72px;\n ${({size}) => size && `\n width: ${42 + size}px;\n height: ${42 + size}px;\n `}\n position: relative;\n`;\n\nconst CubeMove = keyframes`\n 25% { \n transform: translateX(42px) rotate(-90deg) scale(0.5);\n } 50% { \n transform: translateX(42px) translateY(42px) rotate(-179deg);\n } 50.1% { \n transform: translateX(42px) translateY(42px) rotate(-180deg);\n } 75% { \n transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);\n } 100% { \n transform: rotate(-360deg);\n }\n`;\n\nconst CubeCss = css`\n background-color: white;\n width: 30px;\n height: 30px;\n position: absolute;\n top: 0;\n left: 0;\n animation: ${CubeMove} 1.8s infinite ease-in-out;\n`;\n\nconst CubeOne = styled.div`\n ${CubeCss}\n ${({size}) => size && `\n width: ${size}px;\n height: ${size}px;\n `}\n ${({color}) => color && `background-color: ${color}`}\n`;\n\nconst CubeTwo = styled.div`\n ${CubeCss}\n ${({size}) => size && `\n width: ${size}px;\n height: ${size}px;\n `}\n ${({color}) => color && `background-color: ${color}`}\n animation-delay: -0.9s;\n`;\n\nconst Message = styled.div`\n color: white;\n font-size: 16px;\n width: 320px;\n position: absolute;\n top: 88px;\n left: -124px;\n text-align: center;\n`;\n\nexport default Loading;\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { AppContext } from '../AppDataProvider';\nimport Loading from './Loading';\n\nconst MainLoading = () => {\n const { isLoading } = useContext(AppContext);\n return isLoading ? (\n \n 0) ? isLoading : undefined }/>\n \n ) : null;\n};\n\nexport const Layer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n width: 100%;\n height: 100%;\n background: rgb(24, 144, 255, 0.5);\n`;\n\nexport default MainLoading;\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\n\nimport { Layer } from './MainLoading';\nimport { AppContext } from '../AppDataProvider';\n\nexport default () => {\n const { error } = useContext(AppContext);\n return error ? (\n \n \n ) : null;\n}\n\nconst Error = ({error: {message, title, footer, ...props} = {}}) => (\n \n {title && ({title})}\n {message && ({message})}\n {footer && (
{footer}
)}\n
\n);\n\nconst StyledError = styled.div`\n padding: 36px 56px 56px;\n width: 600px;\n background: white;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: relative;\n color: #C13015;\n`;\n\nconst Footer = styled.div`\n margin-top: 40px;\n text-align: center\n`;\n\nconst Title = styled.div`\n text-align: center;\n font-weight: bold;\n font-size: 24px;\n line-height: 32px;\n padding: 0 0 11px;\n border-bottom: 2px solid #C13015;\n`;\n\nconst Message = styled.div`\n text-align: center;\n font-size: 18px;\n line-height: 24px;\n padding: 11px 0 0;\n`;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { Icon, Button } from 'antd';\nimport { withRouter } from 'react-router';\n\nimport { AlarmsRoute } from '../Routes';\n\nconst AlarmWarning = ({ history }) => {\n const [wasClicked, setWasClicked] = useState(false);\n const navigateToAlarms = () => {\n setWasClicked(true);\n history.push(AlarmsRoute);\n };\n\n useEffect(() => {\n if (history.location.pathname === AlarmsRoute) {\n setWasClicked(true);\n }\n }, [history.location.pathname]);\n\n return (\n \n \n \n Idź do alarmów\n \n \n );\n};\n\nconst Container = styled.div`\n padding: ${p => (p.wasClicked ? 12 : 46)}px;\n background: #f5222d;\n display: flex;\n align-items: center;\n border-radius: 10px;\n position: absolute;\n z-index: 3;\n top: 0;\n right: 160px;\n`;\n\nconst AlarmIcon = styled(Icon)`\n color: white !important;\n font-size: ${p => (p.wasClicked ? 30 : 50)}px;\n margin-right: 10px;\n`;\n\nexport default withRouter(AlarmWarning);\n","export const AdministrationRoute = '/administration';\nexport const AlarmsRoute = '/alarms';\nexport const BenchmarkingRoute = '/benchmarks';\nexport const DashboardRoute = '/dashboard';\nexport const DataAnalyticsRoute = '/data-analytics';\nexport const DbRoute = '/data';\nexport const HelpRoute = '/help';\nexport const ReportsRoute = '/reports';\nexport const SignInRoute = '/signin';\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFFFFF;}\\n\\t.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}\\n\\t.st2{fill:#164194;}\\n\\t.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#BDBCBC;}\\n\\t.st4{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:9.3486;stroke-miterlimit:10;}\\n\\t.st5{fill:#E30613;}\\n\\t.st6{fill:url(#SVGID_1_);}\\n\\t.st7{fill:#62B22F;}\\n\\t.st8{font-family:'Exo-Regular';}\\n\\t.st9{font-size:102.5224px;}\\n\\t.st10{fill-rule:evenodd;clip-rule:evenodd;fill:#164194;}\\n\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st0\",\n d: \"M325.27,312.39H105.39c-2.17,0-3.93-1.76-3.93-3.93V157.95c0-2.17,1.76-3.93,3.93-3.93h219.88 c2.17,0,3.93,1.76,3.93,3.93v150.51C329.2,310.63,327.44,312.39,325.27,312.39z\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"polyline\", {\n className: \"st1\",\n points: \"329.2,251 300.73,250.35 272.27,223.16 243.81,232.88 186.88,240.35 158.41,213.98 129.35,227.2 101.46,187.53 \"\n}), React.createElement(\"polygon\", {\n className: \"st2\",\n points: \"329.2,262.5 329.2,255.5 302.17,246.88 273.15,219.16 243,229.46 188.05,236.66 159.08,209.83 130.54,222.81 101.46,181.44 101.46,193.61 128.16,231.59 157.74,218.13 185.7,244.03 244.61,236.31 271.39,227.16 299.3,253.81 \"\n}));\n\nvar _ref4 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st3\",\n d: \"M107.13,312.39h216.4c3.13,0,5.67-2.54,5.67-5.67V271l-28.46-7.06l-28.46-21.67l-28.46,8.08h-56.93l-28.46-8.45 l-29.06,6.54l-27.89-21.23v79.52C101.46,309.85,103.99,312.39,107.13,312.39z\"\n});\n\nvar _ref5 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st4\",\n d: \"M197.68,270.48l-7.55-7.11c-12.16-11.4-8.94-24.87,2.02-38.9l34.83-35.8l15.73,16.35 c14.68,14.72,16.1,26.77,1.45,40.2l-26.34,25.73C212.14,275.22,206.55,276.95,197.68,270.48z\"\n});\n\nvar _ref6 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"polygon\", {\n className: \"st2\",\n points: \"565.5,128.59 511.85,258.6 458.09,196 518.03,128.59 477.05,128.59 425.81,187.03 425.81,206.47 478.88,272.4 540.17,272.4 580.79,169.74 595.26,205.26 572.15,205.26 560.51,235.49 607.53,235.49 622.53,272.4 657.76,272.4 597.15,128.59 \"\n}), React.createElement(\"rect\", {\n x: 387.62,\n y: 128.59,\n className: \"st2\",\n width: 32.61,\n height: 143.81\n}), React.createElement(\"path\", {\n className: \"st2\",\n d: \"M726.68,128.59h-63V272.4h32.61V159.1h28.82c8.6,0.01,12.26,3.78,12.27,12.62 c-0.01,11.64-9.73,19.1-29.74,22.81l-3.97,0.74l4.79,30.59l4.04-0.64c38.89-6.15,58.61-24.4,58.61-54.25 C771.09,143.25,755.73,128.6,726.68,128.59z\"\n}), React.createElement(\"polygon\", {\n className: \"st2\",\n points: \"811.03,242.17 811.03,215.14 874.07,215.14 874.07,184.24 811.31,184.24 811.31,158.63 877.19,158.63 877.19,128.59 778.88,128.59 778.88,272.4 878.49,272.4 878.49,242.17 \"\n}));\n\nvar _ref7 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st5\",\n d: \"M197.68,270.48l-7.55-7.11c-12.16-11.4-8.94-24.87,2.02-38.9l34.83-35.8l15.73,16.35 c14.68,14.72,16.1,26.77,1.45,40.2l-26.34,25.73C212.14,275.22,206.55,276.95,197.68,270.48z\"\n});\n\nvar _ref8 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st6\",\n d: \"M200.84,267.91l-5.67-5.42c-9.13-8.69-6.71-18.96,1.52-29.66l26.14-27.3l11.8,12.47 c11.02,11.22,12.08,20.42,1.09,30.65l-19.77,19.62C211.69,271.52,207.49,272.85,200.84,267.91z\"\n});\n\nvar _ref9 =\n/*#__PURE__*/\nReact.createElement(\"text\", {\n transform: \"matrix(1 0 0 1 381.6251 366.7502)\",\n className: \"st7 st8 st9\"\n}, \"monitoring\");\n\nvar _ref10 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"path\", {\n className: \"st10\",\n d: \"M292.39,316.09c-5.82,0-10.54,4.72-10.54,10.54s4.72,10.54,10.54,10.54s10.54-4.72,10.54-10.54 S298.21,316.09,292.39,316.09L292.39,316.09z M330.22,128.59c6.49,0,12.39,2.65,16.66,6.92l-0.02,0.02 c4.28,4.28,6.94,10.18,6.94,16.64V313.6c0,6.49-2.65,12.39-6.92,16.66c-4.49,4.49-10.78,7.19-17.67,6.9c-3.93,0-7.84,0-11.77,0 c-6.24,0.39-11.41-4.66-11.22-10.85c0.18-5.75,5.16-10.21,10.91-10.21c2.77,0,5.34,0,7.54,0c4.04,0,7.31-3.27,7.31-7.31V157.72 c0-4.04-3.27-7.31-7.31-7.31H105.79c-4.04,0-7.31,3.27-7.31,7.31v151.06c0,4.04,3.27,7.31,7.31,7.31h161.88 c5.8,0,10.78,4.54,10.89,10.34c0.11,5.91-4.65,10.75-10.54,10.75c-45.98,0-121.06,0-167.04,0c-6.46,0-12.35-2.66-16.64-6.94 l-0.02,0.02c-4.27-4.27-6.92-10.17-6.92-16.66V152.17c0-6.45,2.65-12.34,6.92-16.62l0.02-0.02l0.02-0.02 c4.28-4.27,10.17-6.92,16.62-6.92H330.22z\"\n}), React.createElement(\"path\", {\n className: \"st10\",\n d: \"M152.64,356.21L152.64,356.21c0-5.82,4.72-10.54,10.54-10.54h104.84c5.82,0,10.54,4.72,10.54,10.54v0 c0,5.82-4.72,10.54-10.54,10.54H163.18C157.36,366.75,152.64,362.03,152.64,356.21z\"\n})));\n\nvar SvgLogo = function SvgLogo(props) {\n return React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 957.21 489.62\",\n style: {\n enableBackground: \"new 0 0 957.21 489.62\"\n },\n xmlSpace: \"preserve\"\n }, props), _ref, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 216.3898,\n y1: 205.5347,\n x2: 216.3898,\n y2: 271.173\n }, React.createElement(\"stop\", {\n offset: 0.1,\n style: {\n stopColor: \"#E74011\"\n }\n }), React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#FFD500\"\n }\n })), _ref8, _ref9, _ref10);\n};\n\nexport default __webpack_public_path__ + \"static/media/logo.64142393.svg\";\nexport { SvgLogo as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#E30613;}\\n\\t.st3{fill:url(#SVGID_1_);}\\n\\t.st4{enable-background:new ;}\\n\");\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st0\",\n d: \"M300.7,263.9l-28.5-21.7l-26,7.4l-25.5,24.9l-0.2,0.2c-3.2,2.4-7.2,4.7-12.2,4.7c-3.9,0-8.3-1.4-13.5-5.2 l-0.4-0.4l-7.6-7.1c-6.5-6.1-9.1-12.7-9.2-19.1l-19.3-5.7l-29.1,6.5l-27.9-21.2v79.5c0,3.1,2.5,5.7,5.6,5.7h216.4 c3.1,0,5.7-2.5,5.7-5.7V271L300.7,263.9z\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"path\", {\n className: \"st1\",\n d: \"M182.2,231.2l-23.1-21.4l-28.5,13l-29.1-41.4v12.2l26.7,38l29.6-13.5l21.5,19.9 C180,235.7,181,233.4,182.2,231.2z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M302.2,246.9l-29-27.7L259,224c0.1,1,0.2,2,0.1,3.1c0,1.5-0.2,3-0.6,4.5l12.8-4.4l27.9,26.6l29.9,8.7v-7 L302.2,246.9z\"\n}));\n\nvar _ref4 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"565.5,128.6 511.9,258.6 458.1,196 518,128.6 477,128.6 425.8,187 425.8,206.5 478.9,272.4 540.2,272.4 580.8,169.7 595.3,205.3 572.2,205.3 560.5,235.5 607.5,235.5 622.5,272.4 657.8,272.4 597.2,128.6 \"\n}), React.createElement(\"rect\", {\n x: 387.6,\n y: 128.6,\n className: \"st1\",\n width: 32.6,\n height: 143.8\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M726.7,128.6h-63v143.8h32.6V159.1h28.8c8.6,0,12.3,3.8,12.3,12.6c0,11.6-9.7,19.1-29.7,22.8l-4,0.7l4.8,30.6 l4-0.6c38.9-6.1,58.6-24.4,58.6-54.2C771.1,143.3,755.7,128.6,726.7,128.6z\"\n}), React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"811,242.2 811,215.1 874.1,215.1 874.1,184.2 811.3,184.2 811.3,158.6 877.2,158.6 877.2,128.6 778.9,128.6 778.9,272.4 878.5,272.4 878.5,242.2 \"\n}));\n\nvar _ref5 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st2\",\n d: \"M197.7,270.5l-7.6-7.1c-12.2-11.4-8.9-24.9,2-38.9l34.8-35.8l15.7,16.4c14.7,14.7,16.1,26.8,1.4,40.2L217.8,271 C212.1,275.2,206.6,277,197.7,270.5z\"\n});\n\nvar _ref6 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n className: \"st3\",\n d: \"M200.8,267.9l-5.7-5.4c-9.1-8.7-6.7-19,1.5-29.7l26.1-27.3l11.8,12.5c11,11.2,12.1,20.4,1.1,30.6l-19.8,19.6 C211.7,271.5,207.5,272.9,200.8,267.9z\"\n});\n\nvar _ref7 =\n/*#__PURE__*/\nReact.createElement(\"g\", {\n className: \"st4\"\n}, React.createElement(\"path\", {\n className: \"st1\",\n d: \"M387.8,366.8v-54.4h5.3l2.3,6.6c0.4-0.3,1.2-0.8,2.5-1.5c1.3-0.7,2.2-1.2,2.7-1.5s1.3-0.7,2.5-1.3 c1.1-0.5,2.1-0.9,2.8-1.1l2.6-0.9c1.6-0.5,4-0.8,7-0.8c3,0,5.9,0.7,8.6,2.2c2.7,1.4,4.7,3.4,5.8,5.8c6.4-5.3,13.7-8,21.9-8 c4.8,0,8.8,1.6,12,4.9c3.2,3.3,4.8,7.5,4.8,12.6v37.5H461v-37.5c0-3-0.9-5.4-2.6-7.2c-1.7-1.8-3.9-2.7-6.6-2.7 c-4.1,0-7.6,0.4-10.6,1.2s-6.1,2.3-9.5,4.5v41.7h-7.6v-37.5c0-3-0.9-5.4-2.6-7.2c-1.7-1.8-3.9-2.7-6.6-2.7c-2.6,0-5.1,0.3-7.3,0.8 c-2.2,0.5-3.9,1.1-5.2,1.6s-3.6,1.6-7.1,3.3v41.7H387.8z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M501.9,367.3c-9.1,0-15.4-2-18.9-6c-3.5-4-5.2-11.3-5.2-21.7c0-10.5,1.7-17.7,5.2-21.7c3.5-4,9.8-6,18.9-6 c9.1,0,15.3,2,18.8,6.1c3.4,4.1,5.1,11.4,5.1,21.9c0,10.5-1.7,17.7-5.1,21.6C517.2,365.3,511,367.3,501.9,367.3z M487.8,324.5 c-0.7,1.5-1.3,3.5-1.7,6.1c-0.4,2.6-0.7,5.9-0.7,10.1c0,4.2,0.3,7.6,1,10.3c0.6,2.7,1.8,4.6,3.4,5.8c1.6,1.2,3.2,2,4.9,2.4 c1.7,0.3,4.1,0.5,7.2,0.5c3.1,0,5.5-0.2,7.3-0.5c1.7-0.3,3.4-1.1,4.9-2.4c1.5-1.3,2.6-3.2,3.2-5.8c0.6-2.6,0.9-6.3,0.9-10.9 c0-4.6-0.3-8.4-0.8-11.2c-0.5-2.8-1.5-4.9-3-6.3c-1.5-1.4-3.1-2.3-4.9-2.6c-1.7-0.3-4.1-0.5-7.1-0.5c-3,0-5.3,0.1-6.8,0.3 c-1.5,0.2-3,0.7-4.5,1.4C489.6,321.9,488.5,323,487.8,324.5z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M537,366.8v-54.4h5.3l2.3,6.4c0.2-0.1,1-0.5,2.3-1.3c1.3-0.8,2.1-1.2,2.4-1.4c0.3-0.1,1-0.5,2.2-1.2 c1.2-0.6,2-1,2.5-1.2c0.5-0.1,1.3-0.4,2.4-0.8c1.1-0.4,2-0.7,2.7-0.8c2.2-0.4,4.1-0.6,5.7-0.6c5.2,0,9.3,1.7,12.3,5.1 c3,3.4,4.5,7.5,4.5,12.3v37.9H574v-37.9c0-3.2-0.9-5.7-2.6-7.3c-1.7-1.7-3.9-2.5-6.6-2.5c-2.7,0-5.2,0.3-7.5,0.8 c-2.3,0.5-4.2,1.1-5.6,1.7c-1.4,0.6-3.8,1.7-7.1,3.3v41.9H537z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M591.8,303.5V298c0-1.7,0.8-2.6,2.5-2.6h5.1c1.6,0,2.4,0.9,2.4,2.6v5.5c0,1.6-0.8,2.4-2.4,2.4h-5.1 C592.6,305.9,591.8,305.1,591.8,303.5z M592.8,366.8v-54.4h7.6v54.4H592.8z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M608.9,319.8v-5.7l10.1-1.8l1.8-15.2h5.7v15.2h15.9v7.6h-15.9v27.5c0,4.2,0.5,7.1,1.4,8.7 c1,1.6,2.4,2.6,4.4,3.1c5.6,1.4,8.6,2.2,9.1,2.2v5.4h-9c-9,0-13.5-6.5-13.5-19.4v-27.5H608.9z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M674.8,367.3c-9.1,0-15.4-2-18.9-6c-3.5-4-5.2-11.3-5.2-21.7c0-10.5,1.7-17.7,5.2-21.7c3.5-4,9.8-6,18.9-6 c9.1,0,15.3,2,18.8,6.1c3.4,4.1,5.1,11.4,5.1,21.9c0,10.5-1.7,17.7-5.1,21.6C690.2,365.3,683.9,367.3,674.8,367.3z M660.7,324.5 c-0.7,1.5-1.3,3.5-1.7,6.1c-0.4,2.6-0.7,5.9-0.7,10.1c0,4.2,0.3,7.6,1,10.3c0.6,2.7,1.8,4.6,3.4,5.8c1.6,1.2,3.2,2,4.9,2.4 c1.7,0.3,4.1,0.5,7.2,0.5c3.1,0,5.5-0.2,7.3-0.5c1.7-0.3,3.4-1.1,4.9-2.4c1.5-1.3,2.6-3.2,3.2-5.8c0.6-2.6,0.9-6.3,0.9-10.9 c0-4.6-0.3-8.4-0.8-11.2c-0.5-2.8-1.5-4.9-3-6.3c-1.5-1.4-3.1-2.3-4.9-2.6c-1.7-0.3-4.1-0.5-7.1-0.5c-3,0-5.3,0.1-6.8,0.3 c-1.5,0.2-3,0.7-4.5,1.4C662.6,321.9,661.5,323,660.7,324.5z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M710,366.8v-54.4h5.3l2.3,6.9c5.2-3.1,8.5-4.9,9.8-5.4c1.4-0.4,2.6-0.8,3.7-1.2c2-0.6,4.7-0.9,7.9-0.9 c3.2,0,5.4,0.3,6.5,0.8v7.5c-1.6-0.4-4-0.6-7-0.6c-3,0-5.7,0.3-8,0.8c-2.4,0.5-4.2,1.1-5.6,1.7c-1.4,0.6-3.8,1.7-7.2,3.4v41.4H710z \"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M752.6,303.5V298c0-1.7,0.8-2.6,2.5-2.6h5.1c1.6,0,2.4,0.9,2.4,2.6v5.5c0,1.6-0.8,2.4-2.4,2.4h-5.1 C753.5,305.9,752.6,305.1,752.6,303.5z M753.7,366.8v-54.4h7.6v54.4H753.7z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M773.9,366.8v-54.4h5.3l2.3,6.4c0.2-0.1,1-0.5,2.3-1.3c1.3-0.8,2.1-1.2,2.4-1.4c0.3-0.1,1-0.5,2.2-1.2 c1.2-0.6,2-1,2.5-1.2c0.5-0.1,1.3-0.4,2.4-0.8c1.1-0.4,2-0.7,2.7-0.8c2.2-0.4,4.1-0.6,5.7-0.6c5.2,0,9.3,1.7,12.3,5.1 c3,3.4,4.5,7.5,4.5,12.3v37.9h-7.6v-37.9c0-3.2-0.9-5.7-2.6-7.3c-1.7-1.7-3.9-2.5-6.6-2.5c-2.7,0-5.2,0.3-7.5,0.8 c-2.3,0.5-4.2,1.1-5.6,1.7c-1.4,0.6-3.8,1.7-7.1,3.3v41.9H773.9z\"\n}), React.createElement(\"path\", {\n className: \"st1\",\n d: \"M828.4,355c0-1.9,0.5-3.7,1.5-5.4c1-1.7,2.5-2.7,4.5-3.1c-4-2.5-5.9-7.2-5.9-14.1c0-6.9,1.6-12,4.7-15.3 c3.1-3.3,7.5-4.9,13.1-4.9h32v5.7l-8.3,1.8c0.1,0.1,0.3,0.6,0.7,1.3s0.7,1.3,0.9,1.7c0.2,0.4,0.4,1.1,0.7,2c0.5,1.6,0.8,3.7,0.8,6 c0,2.4-0.2,4.6-0.7,6.6c-0.4,2-1.2,4.1-2.3,6.4c-1.1,2.3-2.8,4.2-5.2,5.6c-2.4,1.4-5.3,2.2-8.7,2.2h-16c-2.8,0-4.2,1-4.2,3.1 c0,2.3,1.4,3.5,4.2,3.5H862c4.2,0,7.4,1.3,9.7,3.8c2.3,2.6,3.5,6,3.5,10.3v6.5c0,3.7-0.9,7-2.6,10c-1,1.8-2.6,3.2-4.8,4.2 c-2.2,1-4.9,1.5-8,1.5h-15.4c-5,0-9-1.3-11.9-4c-3-2.7-4.5-6.6-4.5-11.8v-8.7l4.1-6.7C829.7,361.5,828.4,358.7,828.4,355z M840.3,365.6c-1.8,0-3.4-0.3-4.6-0.8v13.8c0,5.5,2.9,8.2,8.8,8.2h15.4c5.2,0,7.8-2.7,7.8-8.2v-5.9c0-2.6-0.5-4.4-1.4-5.5 c-0.9-1.1-2.8-1.6-5.6-1.6H840.3z M836.1,331.5c0,2.9,0.4,5.3,1.3,7.2c1.6,3.5,4.3,5.2,8.1,5.2h10c3.7,0,6.3-1.2,7.7-3.7 c1.5-2.5,2.2-5.1,2.2-7.9c0-4.1-0.7-7.2-2.2-9.3c-1.5-2.1-4.1-3.2-7.8-3.2h-9.2C839.5,319.7,836.1,323.6,836.1,331.5z\"\n}));\n\nvar _ref8 =\n/*#__PURE__*/\nReact.createElement(\"g\", null, React.createElement(\"g\", null, React.createElement(\"path\", {\n className: \"st0\",\n d: \"M292.4,316.1c-5.8,0-10.5,4.7-10.5,10.5s4.7,10.5,10.5,10.5s10.5-4.7,10.5-10.5S298.2,316.1,292.4,316.1 L292.4,316.1z M330.2,128.6c6.5,0,12.4,2.6,16.7,6.9l0,0c4.3,4.3,6.9,10.2,6.9,16.6v161.4c0,6.5-2.6,12.4-6.9,16.7 c-4.5,4.5-10.8,7.2-17.7,6.9c-3.9,0-7.8,0-11.8,0c-6.2,0.4-11.4-4.7-11.2-10.9c0.2-5.8,5.2-10.2,10.9-10.2c2.8,0,5.3,0,7.5,0 c4,0,7.3-3.3,7.3-7.3V157.7c0-4-3.3-7.3-7.3-7.3H105.8c-4,0-7.3,3.3-7.3,7.3v151.1c0,4,3.3,7.3,7.3,7.3h161.9 c5.8,0,10.8,4.5,10.9,10.3c0.1,5.9-4.6,10.8-10.5,10.8c-46,0-121.1,0-167,0c-6.5,0-12.3-2.7-16.6-6.9l0,0 c-4.3-4.3-6.9-10.2-6.9-16.7V152.2c0-6.4,2.7-12.3,6.9-16.6l0,0l0,0c4.3-4.3,10.2-6.9,16.6-6.9H330.2z\"\n}), React.createElement(\"path\", {\n className: \"st0\",\n d: \"M152.6,356.2L152.6,356.2c0-5.8,4.7-10.5,10.5-10.5H268c5.8,0,10.5,4.7,10.5,10.5l0,0 c0,5.8-4.7,10.5-10.5,10.5H163.2C157.4,366.8,152.6,362,152.6,356.2z\"\n})));\n\nvar SvgLogoWhite = function SvgLogoWhite(props) {\n return React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 957.2 489.6\",\n style: {\n enableBackground: \"new 0 0 957.2 489.6\"\n },\n xmlSpace: \"preserve\"\n }, props), _ref, _ref2, _ref3, _ref4, _ref5, React.createElement(\"linearGradient\", {\n id: \"SVGID_1_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 216.3928,\n y1: 284.8637,\n x2: 216.3928,\n y2: 219.2218,\n gradientTransform: \"matrix(1 0 0 -1 0 490.3937)\"\n }, React.createElement(\"stop\", {\n offset: 0.1,\n style: {\n stopColor: \"#E74011\"\n }\n }), React.createElement(\"stop\", {\n offset: 1,\n style: {\n stopColor: \"#FFD500\"\n }\n })), _ref6, _ref7, _ref8);\n};\n\nexport default __webpack_public_path__ + \"static/media/logo_white.4ba59dd8.svg\";\nexport { SvgLogoWhite as ReactComponent };","import React from 'react';\n\nimport { ReactComponent as Logo } from './assets/logo.svg';\nimport { ReactComponent as LogoWhite } from './assets/logo_white.svg';\n\nexport const LOGO_SIZES = Object.assign({\n SMALL: 'small',\n REPORT_FRONT_PAGE: 'report-front-page',\n REPORT_HEADER: 'report-header',\n SIGN_IN: 'sign_in',\n});\n\nconst sizes = {\n [LOGO_SIZES.SMALL]: {\n height: \"56\",\n width: \"112\",\n },\n [LOGO_SIZES.SIGN_IN]: {\n height: \"144\",\n width: \"288\",\n },\n [LOGO_SIZES.REPORT_FRONT_PAGE]: {\n height: \"240\",\n width: \"480\",\n },\n [LOGO_SIZES.REPORT_HEADER]: {\n height: \"100\",\n width: \"200\",\n },\n}\n\nexport default ({size = LOGO_SIZES.SMALL, type, ...props}) => type === 'white' ? (\n \n) : (\n \n);\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { Button } from 'antd';\n\nimport AlarmsWarning from './AlarmWarning';\nimport { AppContext, clearStorageOnLogout } from '../AppDataProvider';\nimport Logo from './Logo';\n\nconst AppBar = () => {\n const { setIsSignedIn, appHeader, anyActiveAlarms } = useContext(AppContext);\n\n return (\n \n \n <Logo size=\"small\" type=\"white\" />\n \n \n {appHeader}\n \n \n {anyActiveAlarms && }\n \n \n \n );\n\n function logOut() {\n setIsSignedIn(false);\n clearStorageOnLogout();\n }\n};\n\nconst Bar = styled.div`\n display: flex;\n background: #0E4194;\n justify-content: space-between;\n height: 56px;\n`;\n\nconst Title = styled.div`\n`;\n\nconst LeftGroup = styled.div`\n text-align: left;\n width: 167px;\n padding-left: 20px;\n`;\n\nconst MonitorTitle = styled.div`\n color: white;\n font-weight: bold;\n font-size: 1.2rem;\n`;\n\nconst CenterGroup = styled.div`\n margin: 0 25px;\n display: flex;\n align-items: center;\n`;\n\nconst RightGroup = styled.div`\n text-align: right;\n width: 167px;\n padding: 12px 20px 12px 0;\n`;\n\nexport default AppBar;\n","import React, { useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Icon, Menu } from 'antd';\nimport { Link } from 'react-router-dom';\nimport { withRouter } from 'react-router';\n\nimport {\n AdministrationRoute,\n AlarmsRoute,\n BenchmarkingRoute,\n DashboardRoute,\n DataAnalyticsRoute,\n DbRoute,\n HelpRoute,\n ReportsRoute,\n} from '../Routes';\n\nimport { AppContext } from '../AppDataProvider';\n\nconst Nav = ({ location }) => {\n const { isAdmin } = useContext(AppContext);\n\n const [currentRoute, setCurrentRoute] = useState(DashboardRoute);\n\n useEffect(\n function reactOnRouteChange() {\n setCurrentRoute(location.pathname);\n },\n [location.pathname],\n );\n\n return (\n \n setCurrentRoute(e.key)}\n >\n \n \n \n Pulpit\n \n \n \n \n \n Alarmy\n \n \n \n \n \n Analiza Danych\n \n \n \n \n \n Porównanie\n \n \n {isAdmin && (\n \n \n \n Raporty\n \n \n )}\n \n \n \n Baza Danych\n \n \n {isAdmin && (\n \n \n \n Administracja\n \n \n )}\n \n \n \n Pomoc\n \n \n \n \n );\n};\n\nconst StyledMenu = styled(Menu)`\n border: none !important;\n .ant-menu-item-active {\n a {\n color: #d7dfed !important;\n }\n }\n .ant-menu-item:hover {\n a {\n color: #0e4194 !important;\n }\n }\n`;\n\nconst Container = styled.nav`\n display: flex;\n flex-direction: column;\n margin-left: -8px;\n flex: 0 0 167px;\n max-width: 167px;\n border-right: 1px solid #eef1f1;\n`;\n\nexport default withRouter(Nav);\n","import React from 'react';\nimport styled from 'styled-components';\nimport AppBar from './AppBar';\n\nimport Nav from './Nav';\nimport { minAppWidth, minAppHeight, navWidth, topBarHeight, scrollWidth } from '../constants';\n\nconst Layout = ({ children }) => {\n return (\n
\n \n \n
\n );\n};\n\nconst Main = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nconst AppContent = styled.div`\n flex: 1;\n display: flex;\n position: relative;\n`;\n\nconst View = styled.div`\n flex: 1;\n width: 0;\n position: relative;\n height: 100%;\n min-height: ${minAppHeight - topBarHeight}px;\n min-width: ${minAppWidth - scrollWidth - navWidth}px;\n`;\n\nexport default Layout;\n","import React, { useContext, Fragment } from 'react';\nimport { Redirect } from 'react-router';\n\nimport { AppContext } from '../AppDataProvider';\nimport { SignInRoute } from '../Routes';\n\nconst Authentication = ({ children }) => {\n const { isSignedIn } = useContext(AppContext);\n return isSignedIn ? (\n {children}\n ) : (\n \n );\n};\n\nexport default Authentication;\n","import React, { useContext, useState } from 'react';\nimport { Redirect } from 'react-router';\nimport styled from 'styled-components';\nimport { Input, Button } from 'antd';\n\nimport { AppContext } from '../../AppDataProvider';\nimport { DashboardRoute } from '../../Routes';\nimport Logo, { LOGO_SIZES } from '../../components/Logo';\n\nconst SignIn = () => {\n const { isSignedIn, submitLogin } = useContext(AppContext);\n const [email, setFormEmail] = useState('');\n const [password, setFormPassword] = useState('');\n\n return isSignedIn ? (\n \n ) : (\n
\n \n \n \n setFormEmail(e.target.value)}\n />\n setFormPassword(e.target.value)}\n />\n submitLogin(email, password)}\n type=\"primary\"\n icon=\"login\"\n size=\"large\"\n >\n Zaloguj\n \n \n );\n};\n\nconst Form = styled.form`\n width: 600px;\n display: flex;\n position: absolute;\n top: 35%;\n left: 50%;\n transform: translate(-50%, -50%);\n flex-direction: column;\n align-items: center;\n padding: 24px 50px 50px;\n box-shadow: 5px 5px 15px 0px rgba(0, 0, 0, 0.2);\n border-radius: 2px;\n`;\n\nconst LogoWrapper = styled.div`\n margin-bottom: 8px;\n`;\n\nconst StyledInput = styled(Input)`\n margin: 10px !important;\n`;\n\nconst StyledButton = styled(Button)`\n margin-top: 15px;\n`;\n\nexport default SignIn;\n","import React, { useState, useContext } from 'react';\nimport { message } from 'antd';\n\nimport { AppContext } from '../../AppDataProvider';\nimport {\n getBuildings,\n postNewBuilding,\n postBuildingUpdate,\n postBuildingRemoval,\n getUsers,\n postNewUser,\n postUserUpdate,\n postUserRemoval,\n postUserPasswordChange,\n getIndicators,\n putNewIndicators,\n} from './services/api';\n\nconst AdministrationContext = React.createContext({});\n\nconst AdministrationDataProvider = ({ children }) => {\n const {\n startAsyncTask,\n finishAsyncTask,\n buildings,\n setBuildings,\n users,\n setUsers,\n wrapRequest,\n } = useContext(AppContext);\n\n const [indicatorsCategories, setIndicatorsCategories] = useState([]);\n const [currentId, setCurrentId] = useState(null);\n const [mode, setMode] = useState(null);\n const [kind, setKind] = useState(null);\n const [isModalVisible, setIsModalVisible] = useState(false);\n\n const getCurrentEntry = () => {\n const data = kind === 'Users' ? users : buildings;\n const currentEntry = data.find(entry => entry.id === currentId);\n return currentEntry;\n };\n const getIndexById = id => {\n const data = kind === 'Users' ? users : buildings;\n const index = data.findIndex(entry => entry.id === id);\n return index;\n };\n\n async function fetchUsers() {\n startAsyncTask();\n await wrapRequest(() => getUsers(), {\n onSuccess: (data) => {\n setUsers(data);\n },\n });\n finishAsyncTask();\n \n }\n async function createUser(newUser) {\n startAsyncTask();\n await wrapRequest(() => postNewUser(newUser),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się dodać użytkownika. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchUsers,\n });\n finishAsyncTask();\n }\n async function updateUser(updatedUser) {\n startAsyncTask();\n await wrapRequest(() => postUserUpdate(updatedUser),\n {\n onError: () => {\n message.error('Nie udało się zaktualizować danych użytkownika. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const newUsers = [...users];\n const updateIndex = getIndexById(data.id);\n newUsers[updateIndex] = data;\n setUsers(newUsers);\n },\n });\n finishAsyncTask();\n }\n async function deleteUser(userToDelete) {\n startAsyncTask();\n await wrapRequest(() => postUserRemoval(userToDelete.id),\n {\n onError: () => {\n message.error('Nie udało się usunąć użytkownika. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchUsers,\n });\n finishAsyncTask();\n }\n async function changePassword(userId, passwords) {\n startAsyncTask();\n await wrapRequest(() => postUserPasswordChange(userId, passwords),\n {\n onError: () => {\n message.error('Nie udało się zaktualizować hasła. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n });\n finishAsyncTask();\n }\n\n async function fetchBuildings() {\n startAsyncTask();\n await wrapRequest(() => getBuildings(),\n {\n onSuccess: (data) => {\n setBuildings(data);\n },\n });\n finishAsyncTask();\n }\n async function createBuilding(newBuilding) {\n startAsyncTask();\n await wrapRequest(() => postNewBuilding(newBuilding),\n {\n onError: () => {\n message.error('Nie udało się utworzyć budynku. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchBuildings,\n });\n finishAsyncTask();\n }\n async function updateBuilding(updatedBuilding) {\n startAsyncTask();\n await wrapRequest(() => postBuildingUpdate(updatedBuilding),\n {\n onError: () => {\n message.error('Nie udało się zaktualizować danych o budynku. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const newBuildings = [...buildings];\n const updateIndex = getIndexById(data.id);\n newBuildings[updateIndex] = data;\n setBuildings(newBuildings);\n },\n });\n finishAsyncTask();\n }\n async function deleteBuilding(BuildingToDelete) {\n startAsyncTask();\n await wrapRequest(() => postBuildingRemoval(BuildingToDelete.id),\n {\n onError: () => {\n message.error('Nie udało się usunąć budynku. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchBuildings,\n });\n finishAsyncTask();\n }\n\n async function fetchIndicators() {\n startAsyncTask();\n await wrapRequest(() => getIndicators(),\n {\n onSuccess: (data) => setIndicatorsCategories(data.categories),\n });\n finishAsyncTask();\n }\n\n async function updateIndicators(indicatorsPostData) {\n startAsyncTask();\n await wrapRequest(() => putNewIndicators(indicatorsPostData),\n {\n onError: () => {\n message.error('Nie udało się zakualizować wskaźników. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchIndicators,\n });\n finishAsyncTask();\n }\n\n const state = {\n buildings,\n fetchBuildings,\n createBuilding,\n updateBuilding,\n deleteBuilding,\n\n users,\n fetchUsers,\n createUser,\n updateUser,\n deleteUser,\n changePassword,\n\n indicatorsCategories,\n fetchIndicators,\n updateIndicators,\n\n mode,\n setMode,\n kind,\n setKind,\n currentConfig: `${mode}${kind}`,\n\n setCurrentId,\n currentEntry: getCurrentEntry(),\n\n isModalVisible,\n setIsModalVisible,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport { AdministrationContext };\nexport default AdministrationDataProvider;\n","import React from 'react';\nimport { List, Button } from 'antd';\n\nconst CrudList = ({\n items,\n addText,\n onRead,\n onUpdate,\n onDelete,\n onCreate,\n customAction,\n}) => {\n return (\n
\n (\n onRead(item.id)}>szczegóły,\n onUpdate(item.id)}>edytuj,\n ...(onDelete ? [( onDelete(item.id)}>usuń)] : []),\n ...(customAction ? [(\n customAction.onClick(item.id)}>\n {customAction.label}\n \n )] : []),\n ]}\n >\n \n \n )}\n />\n {addText && (\n \n {addText}\n \n )}\n
\n );\n};\n\nexport default CrudList;\n","import React, { useContext } from 'react';\n\nimport CrudList from '../../../../components/CRUDs/CrudList';\nimport { AdministrationContext } from '../../AdministrationDataProvider';\n\nconst UsersList = () => {\n const {\n users,\n setCurrentId,\n setMode,\n setKind,\n setIsModalVisible,\n } = useContext(AdministrationContext);\n\n const showUsersModal = id => {\n setIsModalVisible(true);\n setCurrentId(id);\n setKind('Users');\n };\n\n const handleCreateUser = () => {\n showUsersModal();\n setMode('create');\n };\n\n const handleReadUser = id => {\n showUsersModal(id);\n setMode('read');\n };\n\n const handleUpdateUser = id => {\n showUsersModal(id);\n setMode('update');\n };\n\n const handleDeleteUser = id => {\n showUsersModal(id);\n setMode('delete');\n };\n\n const handleChangePasswordUser = id => {\n showUsersModal(id);\n setMode('changePassword');\n };\n\n return (\n ({\n description: `Kontakt: ${user.contactPerson} - ${user.contactPhone}`,\n ...user,\n }))}\n addText=\"Dodaj użytkownika\"\n onCreate={handleCreateUser}\n onRead={handleReadUser}\n onUpdate={handleUpdateUser}\n onDelete={handleDeleteUser}\n customAction={{\n onClick: handleChangePasswordUser,\n label: 'Zmień hasło',\n }}\n />\n );\n};\n\nexport default UsersList;\n","import React, { useContext } from 'react';\n\nimport CrudList from '../../../../components/CRUDs/CrudList';\nimport { AdministrationContext } from '../../AdministrationDataProvider';\n\nconst BuildingsList = () => {\n const {\n buildings,\n setCurrentId,\n setMode,\n setKind,\n setIsModalVisible,\n } = useContext(AdministrationContext);\n\n const showBuildingsModal = id => {\n setIsModalVisible(true);\n setCurrentId(id);\n setKind('Buildings');\n };\n\n const handleCreateBuilding = () => {\n showBuildingsModal();\n setMode('create');\n };\n\n const handleReadBuilding = id => {\n showBuildingsModal(id);\n setMode('read');\n };\n\n const handleUpdateBuilding = id => {\n showBuildingsModal(id);\n setMode('update');\n };\n\n const handleDeleteBuilding = id => {\n showBuildingsModal(id);\n setMode('delete');\n };\n\n return (\n ({\n name: building.fullName,\n description: `${building.street}, ${building.city}`,\n id: building.id,\n }))}\n addText=\"Dodaj obiekt\"\n onCreate={handleCreateBuilding}\n onRead={handleReadBuilding}\n onUpdate={handleUpdateBuilding}\n onDelete={handleDeleteBuilding}\n />\n );\n};\n\nexport default BuildingsList;\n","import React, { useState, useEffect, useContext } from 'react';\nimport { InputNumber, Tabs, Button } from 'antd';\nimport styled from 'styled-components';\nimport { isEmpty } from 'lodash';\n\nimport { AdministrationContext } from '../../AdministrationDataProvider';\n\nimport { mapRangeTypeToColor } from './formConfig';\n\nfunction getInitialPostData(config) {\n const indicatorsList = config\n .flatMap(category => category.indicators)\n .flatMap(indicator =>\n indicator.minMax ? [indicator.min, indicator.max] : indicator.model,\n )\n .map(indicator => ({\n name: uncapitalize(indicator.name),\n value: indicator.value,\n }));\n\n return indicatorsList.reduce(\n (acc, curr) => ({\n [curr.name]: curr.value,\n ...acc,\n }),\n {},\n );\n}\n\nconst IndicatorsForm = () => {\n const [isEditing, setIsEditing] = useState(false);\n const [indicatorsPostData, setIndicatorsPostData] = useState({});\n const { fetchIndicators, updateIndicators, indicatorsCategories } = useContext(\n AdministrationContext,\n );\n\n const handleChange = fieldName => value => {\n const newIndicators = {\n ...indicatorsPostData,\n [fieldName]: value,\n };\n setIndicatorsPostData(newIndicators);\n };\n\n useEffect(() => {\n fetchIndicators();\n }, []);\n\n useEffect(() => {\n if (isEmpty(indicatorsPostData)) {\n const data = getInitialPostData(indicatorsCategories);\n setIndicatorsPostData(data);\n }\n }, [indicatorsCategories]);\n\n const handleSave = async () => {\n setIsEditing(!isEditing);\n if (isEditing) {\n updateIndicators(indicatorsPostData);\n }\n };\n\n const btnLabel = isEditing ? 'Zapisz' : 'Edytuj';\n return indicatorsCategories.length > 0 ? (\n
\n \n {indicatorsCategories.map(category => (\n \n \n \n {category.indicators &&\n category.indicators.map((indicator, idx) => (\n \n ))}\n \n \n \n ))}\n \n \n {btnLabel}\n \n
\n ) : null;\n};\n\nconst uncapitalize = str => str.charAt(0).toLowerCase() + str.slice(1);\n\nconst Indicator = ({ indicator, isEditing, onChange, indicatorsPostData }) => {\n const { label, unit, minMax, rangeType } = indicator;\n let inputs;\n if (minMax) {\n const { min, max } = indicator;\n const minFieldName = uncapitalize(min.name);\n const maxFieldName = uncapitalize(max.name);\n const minValue = indicatorsPostData[minFieldName] || min.value;\n const maxValue = indicatorsPostData[maxFieldName] || max.value;\n inputs = (\n <>\n \n min\n \n max\n \n );\n } else {\n const { model } = indicator;\n const fieldName = uncapitalize(model.name);\n const value = indicatorsPostData[fieldName] || model.value;\n inputs = (\n \n );\n }\n\n const color = mapRangeTypeToColor(rangeType);\n return (\n \n \n \n \n \n {inputs}\n \n \n {unit}\n \n \n );\n};\n\nconst Container = styled.table`\n border-collapse: collapse;\n border: none;\n table-layout: auto;\n max-width: 100%;\n`;\n\nconst Row = styled.tr``;\nconst Cell = styled.td`\n padding: 8px 0;\n`;\n\nconst Label = styled.div`\n padding-right: 30px;\n font-weight: bold;\n color: ${p => p.color || 'black'};\n`;\n\nconst Unit = styled.div`\n padding-left: 20px;\n font-weight: bold;\n`;\n\nexport default IndicatorsForm;\n","export const mapRangeTypeToColor = rangeType => {\n switch (rangeType) {\n case 'Safe':\n return 'green';\n case 'Warning':\n return 'orange';\n case 'Danger':\n return 'red';\n default:\n return 'black';\n }\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Form, Checkbox } from 'antd';\n\nconst CheckboxField = ({value, name, label, formData, onChange, editable, children }) => {\n return (\n \n \n {children}\n \n \n );\n};\n\nconst CrudCheckbox = ({ value, onChange, editable, children, ...rest }) => {\n return editable ? (\n {children}\n ) : (\n {children}\n );\n};\n\nconst DisabledCheckbox = styled(Checkbox)`\n .ant-checkbox-disabled + span {\n color: rgba(0, 0, 0, 0.85);\n cursor: default;\n }\n`;\n\nexport default CheckboxField;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\n\nexport default ({children, ...props}) =>\n \n {children}\n \n\nconst DisabledInput = styled(Input)`\n &.ant-input[disabled] {\n color: rgba(0, 0, 0, 0.85);\n cursor: text;\n }\n`;\n","import React from 'react';\nimport { Input, Form } from 'antd';\nimport DisabledInput from '../DisabledInput';\n\nconst TextField = ({ name, label, formData, onChange, editable, customKey, ...rest }) => {\n return (\n \n onChange(name, e)}\n editable={editable}\n key={customKey}\n />\n \n );\n};\n\nconst CrudInput = ({ value, onChange, editable, ...rest }) => {\n return editable ? (\n \n ) : (\n \n );\n};\n\nexport default TextField;\n","import React, { useState, useContext, useEffect } from 'react';\nimport { Input, Button, Form } from 'antd';\nimport styled from 'styled-components';\nimport { omit } from 'lodash';\n\nimport CheckboxField from '../../../../components/CRUDs/CheckboxField';\nimport TextField from '../../../../components/CRUDs/TextField';\nimport { AdministrationContext } from '../../AdministrationDataProvider';\n\nconst ROLES = {\n USER: 2,\n PROVIDER: 3,\n};\n\nconst UserForm = ({\n editable,\n initialState,\n actionLabel,\n onCancel,\n onAction,\n}) => {\n const data = initialState || {\n login: '',\n name: '',\n reportEmail: '',\n contactPerson: '',\n contactPhone: '',\n address: '',\n appHeader: '',\n weatherStationName: '',\n roleId: ROLES.USER,\n password: '',\n passwordRepeat: '',\n };\n\n const { mode } = useContext(AdministrationContext);\n\n const [formData, setFormData] = useState(data);\n const [passwordError, setPasswordError] = useState(null);\n const [isPasswordValid, setIsPasswordValid] = useState(false);\n\n const onChange = (fieldName, e) => {\n setFormData({\n ...formData,\n [fieldName]: e.target.value,\n });\n };\n\n const handleAction = () => {\n switch (mode) {\n case 'changePassword':\n onAction(data.id, {\n newPassword: formData.password,\n });\n break;\n case 'create':\n if (isPasswordValid) {\n onAction(omit(formData, ['passwordRepeat']));\n }\n break;\n default:\n onAction(omit(formData, ['passwordRepeat']));\n }\n onCancel();\n };\n\n const handleRoleCheck = e => {\n const roleId = e.target.checked ? ROLES.PROVIDER : ROLES.USER;\n setFormData({\n ...formData,\n roleId,\n });\n };\n\n const textProps = {\n editable,\n formData,\n onChange,\n };\n\n const validatePassword = pass => {\n const passwordRegexp = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,}$/;\n let isValid = true;\n let error = null;\n if (pass !== formData.passwordRepeat) {\n isValid = false;\n error = 'Hasła muszą być takie same';\n }\n if (!passwordRegexp.test(pass)) {\n isValid = false;\n error =\n 'Hasło powinno mieć co najmniej: 6 znaków, w tym 1 małą literę , 1 dużą literę i 1 cyfrę';\n }\n\n return { isValid, error };\n };\n\n const handlePassword = e => {\n const newValue = e.target.value;\n setFormData({\n ...formData,\n password: newValue,\n });\n };\n\n const handlePasswordRepeat = e => {\n const newValue = e.target.value;\n setFormData({\n ...formData,\n passwordRepeat: newValue,\n });\n };\n\n useEffect(() => {\n const { isValid, error } = validatePassword(formData.password);\n setIsPasswordValid(isValid);\n setPasswordError(error);\n }, [formData.password, formData.passwordRepeat]);\n\n const passwordInputs = (label1, label2) => (\n <>\n \n \n \n \n \n \n {!isPasswordValid && (\n \n {passwordError}\n \n )}\n \n );\n\n const actionDisabled =\n ['changePassword', 'create'].includes(mode) && !isPasswordValid;\n const action = (\n \n \n \n \n );\n\n if (mode === 'changePassword') {\n return (\n
\n {passwordInputs('Nowe hasło', 'Powtórz nowe hasło')}\n {action}\n
\n );\n }\n\n if (mode === 'delete') {\n return (\n <>\n
Czy na pewno chcesz usunąć użytkownika?
\n {action}\n \n );\n }\n\n return (\n
\n \n {mode === 'create' && passwordInputs('Hasło', 'Powtórz hasło')}\n \n \n \n \n \n \n \n \n Dostawca danych\n \n {action}\n
\n );\n};\n\nconst DeleteContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 20px;\n padding: 0 30px;\n`;\n\nexport default UserForm;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { InputNumber } from 'antd';\n\nexport default ({ children, ...props }) => (\n \n {children}\n \n);\n\nconst DisabledInput = styled(InputNumber)`\n &.ant-input[disabled] {\n color: rgba(0, 0, 0, 0.85);\n cursor: text;\n }\n`;\n","import React from 'react';\nimport { Form, InputNumber } from 'antd';\nimport DisabledInputNumber from '../DisabledInputNumber';\n\nconst NumberField = ({\n name,\n label,\n formData,\n onChange,\n editable,\n ...rest\n}) => {\n return (\n \n onChange(name, e)}\n editable={editable}\n {...rest}\n />\n \n );\n};\n\nconst CrudInputNumber = ({ value, onChange, editable, ...rest }) => {\n return editable ? (\n \n ) : (\n \n );\n};\n\nexport default NumberField;\n","import React from 'react';\nimport { Select, Form } from 'antd';\nimport DisabledInput from '../DisabledInput';\n\nconst { Option } = Select;\n\nconst SelectField = ({\n value,\n disabled,\n items,\n onChange,\n placeholder,\n itemKey,\n label,\n ...rest\n}) => {\n const itemDescription = (item) => itemKey ? item[itemKey] : item.name;\n const options = items.map(item => (\n \n ));\n const _value = disabled && ((v) => v ? itemDescription(v) : 'brak')(items.find(e => e.id === value))\n\n return (\n \n {disabled\n ? ()\n : (\n {options}\n )}\n \n );\n};\n\nexport default SelectField;\n","export const labelTypes = [\n {\n id: 'carbDioxMeters',\n name: 'Dwutlenek węgla',\n },\n {\n id: 'elecAirConMeters',\n name: 'Klimatyzacja',\n },\n {\n id: 'elecHeatPumpMeters',\n name: 'Pompa ciepła',\n },\n {\n id: 'elecSwitchRoomMeters',\n name: 'Włącznik',\n },\n {\n id: 'elecVentilationMeters',\n name: 'Wentylacja elek.',\n },\n {\n id: 'heatmeterVentilationMeters',\n name: 'Wentylacja ciep.',\n },\n {\n id: 'insideLightingMeters',\n name: 'Oświetlenie wew.',\n },\n {\n id: 'temperatureMeters',\n name: 'Temperatura',\n },\n];\n\nexport const labelTypesIds = labelTypes.map(label => label.id);\n","import React, { useContext, useState } from 'react';\nimport { Select, Input, Button, Spin, Row, Col, message } from 'antd';\n\nimport { AppContext } from '../../../../AppDataProvider';\nimport { AdministrationContext } from '../../AdministrationDataProvider';\nimport {\n postNewLabelName,\n postLabelNameRemoval,\n postLabelNameUpdate,\n} from '../../services/api';\n\nimport { labelTypes, labelTypesIds } from './labelTypes';\n\nconst Header = () => (\n \n \n Id\n \n Typ\n Nazwa\n \n \n);\n\nconst Footer = ({ pushEmptyLabel, closeModal }) => (\n <>\n \n \n \n \n Dodaj nowy\n \n \n \n \n \n \n \n \n \n \n);\n\nconst MeterLabels = ({ buildingId, closeModal }) => {\n const { mode, buildings } = useContext(AdministrationContext);\n const currentBuilding = buildings.find(\n building => building.id === buildingId,\n );\n const buildingMetersLabels = currentBuilding\n ? labelTypesIds.flatMap(labelTypeId =>\n currentBuilding[labelTypeId].map(label => ({\n ...label,\n typeId: labelTypeId,\n })),\n )\n : [];\n const [localLabels, setLocalLabels] = useState(buildingMetersLabels);\n const pushEmptyLabel = () => {\n const emptyLabel = {\n typeId: undefined,\n name: '',\n };\n setLocalLabels([...localLabels, emptyLabel]);\n };\n return (\n
\n
\n\n {localLabels.map((label, idx) => (\n \n ))}\n {mode !== 'read' && (\n
\n )}\n
\n );\n};\n\nconst SingleLabel = ({ label, buildingId, disabled, mode }) => {\n const { wrapRequest } = useContext(AppContext);\n\n const [isDeleted, setIsDeleted] = useState();\n const [isLoading, setIsLoading] = useState(false);\n const [typeId, setTypeId] = useState(label.typeId);\n const [name, setName] = useState(label.name);\n const [id, setId] = useState(label.id);\n const [isUpdating, setIsUpdating] = useState(false);\n\n if (isDeleted) {\n return null;\n }\n\n const handleSelect = id => setTypeId(id);\n const handleType = e => setName(e.target.value);\n\n const handleDelete = async () => {\n setIsLoading(true);\n await wrapRequest(() => postLabelNameRemoval(id, typeId), {\n onError: () => {\n message.error(\n 'Nie udało się usunąć etykiety. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: () => {\n setIsDeleted(true);\n },\n });\n setIsLoading(false);\n };\n\n const handleUpdate = async () => {\n setIsLoading(true);\n await wrapRequest(() => postLabelNameUpdate(id, name, buildingId, typeId), {\n onError: () => {\n message.error(\n 'Nie udało się edytować etykiety. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: () => {},\n });\n setIsLoading(false);\n };\n const handleUpdateStart = () => setIsUpdating(true);\n const handleUpdateSave = () => {\n setIsUpdating(false);\n handleUpdate();\n };\n\n const handleAdd = async () => {\n setIsLoading(true);\n await wrapRequest(() => postNewLabelName(name, buildingId, typeId), {\n onError: () => {\n message.error(\n 'Nie udało się dodać etykiety. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: data => {\n setId(data.id);\n },\n });\n setIsLoading(false);\n };\n\n const labelTypeOptions = labelTypes.map(labelType => (\n \n {labelType.name}\n \n ));\n\n const typeDisabled = !!id;\n const canEditName = isUpdating || !id;\n\n return (\n \n \n {id}\n \n \n \n {labelTypeOptions}\n \n \n \n \n \n \n {isLoading && }\n {id && !isLoading && mode !== 'read' && (\n \n Usuń\n \n )}\n {id && !isLoading && mode === 'update' && (\n \n {isUpdating ? 'Zapisz' : 'Edytuj'}\n \n )}\n {!id && !isLoading && mode !== 'read' && (\n \n Dodaj\n \n )}\n \n \n );\n};\n\nexport default MeterLabels;\n","import React, { useState, useContext } from 'react';\nimport { Button, Tabs, Form } from 'antd';\n\nimport CheckboxField from '../../../../components/CRUDs/CheckboxField';\nimport TextField from '../../../../components/CRUDs/TextField';\nimport NumberField from '../../../../components/CRUDs/NumberField';\nimport SelectField from '../../../../components/CRUDs/SelectField';\nimport { AppContext } from '../../../../AppDataProvider';\nimport { AdministrationContext } from '../../AdministrationDataProvider';\n\nimport MeterLabels from './MeterLabels';\n\nconst BuildingForm = ({\n editable,\n initialState,\n actionLabel,\n onCancel,\n onAction,\n}) => {\n const data = initialState || {\n fullName: '',\n shortName: '',\n street: '',\n city: '',\n postOffice: '',\n area: 0,\n orderedElectricPower: 0,\n orderedHeatPower: 0,\n renewableEnergySourcesPower: 0,\n hasMetersInstalled: false,\n managerEmail: '',\n category: 1,\n userId: undefined,\n };\n\n const { enums } = useContext(AppContext);\n const { users, mode } = useContext(AdministrationContext);\n\n const [formData, setFormData] = useState(data);\n\n const onChange = (fieldName, e) => {\n setFormData({\n ...formData,\n [fieldName]: e.target.value,\n });\n };\n\n const onNumberChange = (fieldName, value) => {\n setFormData({\n ...formData,\n [fieldName]: value,\n });\n };\n\n const handleMetersCheck = e =>\n setFormData({\n ...formData,\n hasMetersInstalled: e.target.checked,\n });\n\n const handleAction = () => {\n onAction(formData);\n onCancel();\n };\n\n const handleUserSelect = userId =>\n setFormData({\n ...formData,\n userId,\n });\n\n const handleCategorySelect = categoryId =>\n setFormData({\n ...formData,\n category: categoryId,\n });\n\n const textProps = {\n editable,\n onChange,\n formData,\n };\n\n const numberProps = {\n editable,\n onChange: onNumberChange,\n formData,\n };\n\n const checkboxProps = {\n editable,\n formData,\n }\n\n const actions = (\n \n \n \n \n );\n\n if (mode === 'delete') {\n return (\n <>\n
Czy na pewno chcesz usunąć budynek?
\n {actions}\n \n );\n }\n\n return (\n \n \n
\n
\n {mode !== 'create' && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n Budynek opomiarowany\n \n \n \n user.roleId === 2)}\n />\n \n {actions}\n
\n
\n {mode !== 'create' && (\n \n \n \n )}\n
\n );\n};\n\nexport default BuildingForm;\n","import React, { useContext } from 'react';\nimport { Modal } from 'antd';\n\nimport { AdministrationContext } from '../AdministrationDataProvider';\nimport UserForm from './Users/UserForm';\nimport BuildingForm from './Buildings/BuildingForm';\n\nconst CommonModal = () => {\n const {\n // Buildings\n createBuilding,\n updateBuilding,\n deleteBuilding,\n // Users\n createUser,\n updateUser,\n deleteUser,\n changePassword,\n // Rest\n currentEntry,\n setMode,\n setKind,\n currentConfig,\n setIsModalVisible,\n isModalVisible,\n } = useContext(AdministrationContext);\n\n const closeModal = () => {\n setIsModalVisible(false);\n setMode(undefined);\n setKind(undefined);\n };\n\n const userModalConfigs = {\n createUsers: {\n header: 'Nowy Użytkownik',\n component: () => (\n \n ),\n },\n readUsers: {\n header: 'Szczegóły Użytkownika',\n component: () => (\n \n ),\n },\n updateUsers: {\n header: 'Edytuj Użytkownika',\n component: () => (\n \n ),\n actionLabel: 'Zapisz',\n },\n deleteUsers: {\n header: 'Usuń użytkownika',\n component: () => (\n \n ),\n },\n changePasswordUsers: {\n header: 'Zmień hasło',\n component: () => (\n \n ),\n },\n };\n\n const buildingModalConfigs = {\n createBuildings: {\n header: 'Nowy Obiekt',\n component: () => (\n \n ),\n },\n readBuildings: {\n header: 'Szczegóły Obiektu',\n component: () => (\n \n ),\n },\n updateBuildings: {\n header: 'Edytuj Obiekt',\n component: () => (\n \n ),\n actionLabel: 'Zapisz',\n },\n deleteBuildings: {\n header: 'Usuń Obiket',\n component: () => (\n \n ),\n },\n };\n const modalConfigs = {\n ...userModalConfigs,\n ...buildingModalConfigs,\n };\n\n const currentModalConfig = modalConfigs[currentConfig];\n const ModalComponent = currentModalConfig\n ? currentModalConfig.component\n : null;\n\n return currentModalConfig ? (\n \n
\n \n
\n \n ) : null;\n};\n\nexport default CommonModal;\n","import Administration from './Administration';\n\nexport default Administration;\n","import React, { useContext, useEffect } from 'react';\nimport { Tabs } from 'antd';\n\nimport { AdministrationContext } from './AdministrationDataProvider';\n\nimport UsersList from './scenes/Users/UsersList';\nimport BuildingsList from './scenes/Buildings/BuildingsList';\nimport IndicatorsForm from './scenes/Indicators/IndicatorsForm';\nimport CommonModal from './scenes/CommonModal';\n\nconst Administration = () => {\n const { fetchBuildings, fetchUsers } = useContext(AdministrationContext);\n\n useEffect(() => {\n fetchUsers();\n }, []);\n\n useEffect(() => {\n fetchBuildings();\n }, []);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Administration;\n","export const MODES = Object.freeze({\n EDIT: \"edit\",\n LOAD: \"load\",\n});\n\nexport const extractDataSource = path => {\n const tab = path.split(\"-\");\n return tab[0];\n};\n\n// Zwraca (0)id, (1)measurement\nexport const extractEntry = path => {\n return path.split(\"-\");\n}\n\nexport const generateDataSource = (id, measurement) => `${id}-${measurement}`;\n\nexport const generateDataDescription = (description, measurement) =>\n `${description} - ${measurement}`;\n\nexport const generateDataSourcesSet = ({id, fields}) =>\n fields.measurements.map( (m, idx) => ({\n dataSource: generateDataSource(id, m),\n description: generateDataDescription(fields.description, fields.measurementsLabels[idx]),\n }));\n\nexport const NOT_LOADED_DATA_REASONS = Object.freeze({\n AXISKEY: 'axiskey',\n NOAXISDATA: 'noaxisdata',\n});\n\nexport const formatReason = (reason) => ({\n [NOT_LOADED_DATA_REASONS.AXISKEY]: 'Dane odłożone na osi X',\n [NOT_LOADED_DATA_REASONS.NOAXISDATA]: 'Brak pobranych danych odpowiadających pomiarowi wartości z osi X',\n})[reason];\n\nexport const formatReasonSymbol = (reason) => ({\n [NOT_LOADED_DATA_REASONS.AXISKEY]: 'check',\n [NOT_LOADED_DATA_REASONS.NOAXISDATA]: 'warning',\n})[reason];\n\nexport const formatReasonColor = (reason) => ({\n [NOT_LOADED_DATA_REASONS.AXISKEY]: '#52c41a',\n [NOT_LOADED_DATA_REASONS.NOAXISDATA]: '#faad14',\n})[reason];\n\nexport const getDisableReason = (dataSource, loadedData, xKey) => {\n const [id, usedKey] = extractEntry(dataSource);\n const { fields } = loadedData.find(load => load.id === id);\n if(xKey === usedKey) {\n return NOT_LOADED_DATA_REASONS.AXISKEY;\n }\n if(![...fields.measurements, 'time'].includes(xKey)) {\n return NOT_LOADED_DATA_REASONS.NOAXISDATA;\n }\n return null;\n}\n","import PropTypes from \"prop-types\";\n\nexport const settingsType = {\n title: PropTypes.string.isRequired,\n showTitle: PropTypes.bool.isRequired,\n showLegend: PropTypes.bool.isRequired,\n stopInteractive: PropTypes.bool.isRequired,\n stopAnimation: PropTypes.bool.isRequired,\n horizontalGrid: PropTypes.bool.isRequired,\n verticalGrid: PropTypes.bool.isRequired,\n xFormatter: PropTypes.func,\n yFormatter: PropTypes.func,\n};\nexport const limitType = {\n description: PropTypes.string,\n axis: PropTypes.string.isRequired,\n dashSpacing: PropTypes.number.isRequired,\n dashLength: PropTypes.number.isRequired,\n lineColor: PropTypes.string.isRequired,\n lineWidth: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\nexport const withDescriptionType = {\n description: PropTypes.string.isRequired,\n showDescription: PropTypes.bool.isRequired,\n};\nconst withIdType = {\n id: PropTypes.string.isRequired,\n};\nconst withXKeyType = {\n xKey: PropTypes.string.isRequired,\n};\nconst defaultAxisType = {\n ...withDescriptionType,\n color: PropTypes.string.isRequired,\n useDefault: PropTypes.oneOf([true]),\n}\n\nexport const xAxisType = {\n ...withDescriptionType,\n withTime: PropTypes.bool.isRequired,\n color: PropTypes.string.isRequired,\n datesNumber: PropTypes.number.isRequired,\n};\nexport const yAxisType = {\n ...withDescriptionType,\n ...withIdType,\n color: PropTypes.string.isRequired,\n showAxis: PropTypes.bool.isRequired,\n side: PropTypes.oneOf([\"left\", \"right\"]),\n unit: PropTypes.string.isRequired,\n rangeFrom: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .isRequired,\n rangeTo: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n rangeSpan: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .isRequired,\n};\nexport const usedDataType = {\n description: PropTypes.string.isRequired,\n ...withIdType,\n axis: PropTypes.string.isRequired,\n dashed: PropTypes.bool.isRequired,\n dashSpacing: PropTypes.number,\n dashLength: PropTypes.number,\n dataSource: PropTypes.string.isRequired,\n lineColor: PropTypes.string.isRequired,\n lineWidth: PropTypes.number.isRequired,\n};\nexport const chartConfigType = {\n settings: PropTypes.shape(settingsType).isRequired,\n limits: PropTypes.arrayOf(PropTypes.shape(limitType)),\n xAxis: PropTypes.oneOfType([\n PropTypes.shape({\n ...xAxisType,\n ...withXKeyType,\n }),\n PropTypes.shape({\n ...yAxisType,\n ...withXKeyType,\n }),\n PropTypes.shape({\n ...defaultAxisType,\n ...withXKeyType,\n }),\n ]).isRequired,\n yAxises: PropTypes.arrayOf(PropTypes.shape(yAxisType).isRequired).isRequired,\n};\n","import PropTypes from 'prop-types';\n\nimport { withDescriptionType } from '../../../../../../components/Charts/utils/chartTypes';\n\nexport const xAxisType = Object.freeze({\n ...withDescriptionType,\n color: PropTypes.string.isRequired,\n datesNumber: PropTypes.number,\n withTime: PropTypes.bool,\n xKey: PropTypes.string.isRequired,\n unit: PropTypes.string,\n rangeFrom: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rangeTo: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rangeSpan: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n});\n\nexport const yAxisType = Object.freeze({\n color: PropTypes.string.isRequired,\n showAxis: true,\n side: PropTypes.oneOf([\"left\", \"right\"]),\n ...withDescriptionType,\n unit: PropTypes.string,\n rangeFrom: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rangeTo: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n rangeSpan: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n})\n\nexport const settingsType = Object.freeze({\n title: PropTypes.string.isRequired,\n showTitle: PropTypes.bool.isRequired,\n showLegend: PropTypes.bool.isRequired,\n horizontalGrid: PropTypes.bool.isRequired,\n verticalGrid: PropTypes.bool.isRequired,\n})\n\nexport const ConfigType = Object.freeze({\n settings: PropTypes.shape({...settingsType}).isRequired,\n xAxis: PropTypes.shape({\n ...xAxisType,\n }).isRequired,\n yAxises: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n fields: PropTypes.shape({...yAxisType}).isRequired,\n }).isRequired).isRequired,\n});\n\nexport const EditDataType = Object.freeze({\n building: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n user: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n description: PropTypes.string.isRequired,\n measurements: PropTypes.arrayOf(PropTypes.string).isRequired,\n periodType: PropTypes.string.isRequired,\n});\n\nexport const DataType = Object.freeze({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n fields: PropTypes.shape({...EditDataType}).isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n time: PropTypes.number.isRequired,\n })),\n});\n\nexport const EditUsedDataType = Object.freeze({\n description: PropTypes.string.isRequired,\n axis: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n showRegresion: PropTypes.bool,\n dotted: PropTypes.bool,\n lineWidth: PropTypes.number,\n lineColor: PropTypes.string.isRequired,\n dashed: PropTypes.bool,\n dashLength: PropTypes.number,\n dashSpacing: PropTypes.number,\n});\n\nexport const UsedDataType = Object.freeze({\n dataSource: PropTypes.string.isRequired,\n fields: PropTypes.shape({...EditUsedDataType}).isRequired,\n show: PropTypes.bool.isRequired,\n});\n","import styled from 'styled-components';\n\nexport default styled.div`\n transition: background 1s ease-in;\n & .ant-list-item {\n padding: 8px 0;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { Drawer } from 'antd';\n\nexport default ({children, ...props}) =>\n \n {children}\n \n\nconst StyledDrawer = styled(Drawer)`\n & .ant-drawer-wrapper-body {\n overflow: auto;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Button } from \"antd\";\n\nexport const SetupList = styled.div``;\n\nexport const SetupAdd = ({description, onClick, icon, ...props}) => (\n \n \n \n {description}\n \n \n \n)\n\nconst StyledSetupAdd = styled.div`\n display: flex;\n align-items: baseline;\n margin-top: 4px;\n margin-right: 8px;\n`;\nconst StyledSetupDescription = styled.div`\n font-weight: 500;\n flex: 1;\n`;\n\nexport const ButtonForList = ({onClick, disabled, children, ...props}) =>\n {children}\n\nconst StyledButtonForList = styled.span`\n cursor: ${({disabled}) => disabled ? \"default\" : \"pointer\"}\n color: ${({disabled}) => disabled ? \"#999\" : \"#1890ff\"}\n user-select: none;\n &:hover {\n text-decoration: ${({disabled}) => disabled ? \"none\" : \"underline\"}\n }\n`;\n","import axios from 'axios';\nimport moment from 'moment';\nimport { sortBy } from 'lodash';\n\n\nconst GenerateMultiQuery = (multi) =>\n multi.map(e => (([type, id]) => ({type, id: parseInt(id, 10)}))(e.split('_')))\n .reduce((result, {type, id}) => {\n const index = result.findIndex(r => r.type === type);\n if(index !== -1) {\n result[index].measurements.push({id});\n }\n else {\n result.push({\n type,\n measurements: [{id}],\n });\n }\n return result;\n }, []);\n\nconst parseBaseMeasurements = (baseData) =>\n baseData.map(({Date: time, ...rest}) => ({\n time: moment(time).valueOf(),\n ...rest,\n }));\n\nconst parseMultiMeasurements = (mutliData) =>\n mutliData.reduce((result, {measurements, type}) => [\n ...result,\n ...measurements.map(({meterId, time, value}) =>({\n time: moment(time).valueOf(),\n [`${type}_${meterId}`]: value,\n })),\n ], []);\n\n const mergeData = async (loadedData = []) => {\n return new Promise((resolve) => {\n const sorted = sortBy(loadedData, 'time');\n const final = [];\n let value = null;\n for (let i = 0; i < sorted.length; i += 1) {\n if (sorted[i].time === value) {\n const last = final.pop();\n final.push({ ...last, ...sorted[i] });\n } else {\n final.push(sorted[i]);\n }\n value = sorted[i].time;\n }\n resolve(final);\n });\n };\n\n\nexport const getLineChartData = async ({building, from, to, measurements}) => {\n const parsedRequest = {\n filterReadings: {\n buildingId: building,\n lowerBound: from,\n upperBound: to,\n },\n measurements: {\n baseMeasurements: measurements.filter(e => !e.includes('_')),\n multipleMeasurements: GenerateMultiQuery(measurements.filter(e => e.includes('_'))),\n },\n };\n const resp = await axios.post(`/Analysis/data`, parsedRequest);\n const merged = await mergeData([\n ...parseBaseMeasurements(resp.data.baseMeasurements),\n ...parseMultiMeasurements(resp.data.multiMeasurements),\n ]);\n return {\n ...resp,\n data: merged,\n }\n}\n\nexport const getBuildingMeasurements = async (buildingId) => {\n const resp = await axios.get(`/Analysis/measurements/${buildingId}`);\n return resp;\n}\n","import React, { useContext, useState } from 'react';\n\nimport { getBuildingMeasurements } from './services/api';\n\nimport { AppContext } from '../../AppDataProvider';\n\nconst AnalysisContext = React.createContext({});\n\nconst AnalysisDataProvider = ({children}) => {\n const { startAsyncTask, finishAsyncTask, wrapRequest } = useContext(AppContext);\n\n const [buildingsMeasurements, setBuildingMeasurements] = useState({});\n\n async function fetchMeasurements(buildingId) {\n if(!buildingsMeasurements[buildingId]) {\n startAsyncTask(\"Pobieranie opomiarowanych parametrów. Operacja może trwać do kilkunastu sekund.\");\n await wrapRequest(() => getBuildingMeasurements(buildingId), {\n onSuccess: (data) => {\n setBuildingMeasurements({\n ...buildingsMeasurements,\n [buildingId]: data,\n });\n },\n });\n finishAsyncTask();\n }\n }\n\n const state = {\n buildingsMeasurements,\n fetchMeasurements,\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport { AnalysisContext };\nexport default AnalysisDataProvider;\n","import moment from \"moment\";\n\nexport const formatMonth = timestamp =>\n moment.unix(timestamp / 1000).format(\"MMMM\");\nexport const formatDate = timestamp =>\n moment.unix(timestamp / 1000).format(\"YYYY-MM-DD\");\nexport const formatHour = timestamp => moment.unix(timestamp / 1000).format(\"HH:mm\");\nexport const formatDateTime = timestamp =>\n moment.unix(timestamp / 1000).format(\"YYYY-MM-DD HH:mm\");\n\nexport const isFilledString = str => str && str.length;\n\nexport const formatNumber = (num, {position = 0, addSpace = true} = {}) => (\n (str) => addSpace ? numberWithSpaces(str) : str\n )(position < 0 ? parseFloat(num.toFixed(-position)) : Math.round(num / 10**position) * 10**position);\n\nexport const formatMoney = (num, {addSpace = true} = {}) =>\n ((str) => addSpace ? numberWithSpaces(str) : str)(num.toFixed(2));\n\nconst numberWithSpaces = (x) => {\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \" \");\n return parts.join(\".\");\n}\n\nexport const removePolish = str =>\nstr.replace(/ę/ig,'e').replace(/[żź]/ig,'z').replace(/ó/ig,'o').replace(/ł/ig,'l')\n .replace(/ć/ig,'c').replace(/ś/ig,'s').replace(/ń/ig,'n').replace(/ą/ig,'a')\n .replace(/Ę/ig,'E').replace(/[ŻŹ]/ig,'Z').replace(/Ó/ig,'O').replace(/Ł/ig,'L')\n .replace(/Ć/ig,'C').replace(/Ś/ig,'S').replace(/Ń/ig,'N').replace(/Ą/ig,'A');\n\nexport const formatPeriod = (startDate, endDate) => {\n let period = `${moment(startDate).format('MMMM YYYY')} - ${moment(endDate).format('MMMM YYYY')}`;\n if(moment(startDate).isSame(moment(endDate), 'year')) {\n period = `${moment(startDate).format('MMMM')} - ${moment(endDate).format('MMMM YYYY')}`;\n if(moment(startDate).isSame(moment(endDate), 'month')) {\n period = moment(startDate).format('MMMM');\n }\n }\n return period;\n}\n\nexport const formatDownfall = str =>\n isNumberConverted(str) ? Number.parseFloat(str) : str;\n\nexport const isNumberConverted = str =>\n !Number.isNaN(Number.parseFloat(str));\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { filter } from 'lodash';\n\nimport { Icon, Select, Empty, TreeSelect } from 'antd';\n\nimport { AppContext } from '../AppDataProvider';\nimport { removePolish } from '../utils/formaters';\n\nconst Option = Select.Option;\n\nconst userFormatter = id => `user-${id}`;\n\nconst buildingsByUser = (users, buildings) =>\n users.map(user => ({\n ...user,\n buildings: (user.buildingsIds || []).map(id => buildings.find(e => e.id === id)).filter(e => e),\n }));\n\nconst buildingDefaultFilterOption = (input, option) =>\noption.props.isLeaf ?\n removePolish(option.props.title.toLowerCase()).includes(removePolish(input.toLowerCase()))\n :\n option.props.children.reduce((prev, child) => prev || buildingDefaultFilterOption(input, child), false);\n\nexport const BuildingSelect = ({onChange, selectedUser, ...props}) => {\n const {measuredBuildings, standardUsers, isAdmin} = useContext(AppContext);\n const usedUser = selectedUser ?\n filter(standardUsers, ({id}) => userFormatter(id) === selectedUser)\n :\n standardUsers;\n return (\n \n \n \n \n \n {isAdmin\n ? (\n }\n onChange={onChange}\n filterTreeNode={buildingDefaultFilterOption}\n treeData={buildingsByUser(usedUser, measuredBuildings).map(e => ({\n title: e.name,\n isLeaf: false,\n value: userFormatter(e.id),\n selectable: false,\n key: userFormatter(e.id),\n children: e.buildings.map(({id, fullName}) => ({\n title: fullName,\n value: id,\n key: id,\n isLeaf: true,\n })),\n }))}\n style={selectStyle}\n {...props}\n />)\n : ()}\n \n \n );\n}\n\nconst defaultFilterOption = (input, option) =>\n removePolish(option.props.children.toLowerCase()).includes(removePolish(input.toLowerCase()));\n\nexport const UserSelect = ({\n onChange,\n ...props\n}) => {\n const { standardUsers } = useContext(AppContext);\n return (\n \n \n \n \n \n \n }\n onChange={onChange}\n filterOption={defaultFilterOption}\n style={selectStyle}\n {...props}\n >\n {standardUsers.map(({id, name}) =>\n \n {name}\n ,\n )}\n \n \n \n );\n}\n\nconst selectStyle = {\n width: '100%',\n}\n\nconst IconHolder = styled.div`\n padding: 4px 12px 4px 0;\n flex: 0;\n`;\n\nconst SelectHolder = styled.div`\n flex: 1;\n min-width: 0;\n position: relative;\n`;\n\nconst StyledCommonSelect = styled.div`\n width: 100%;\n display: flex;\n`;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { isNil, isArray } from 'lodash';\nimport { Form } from 'antd';\n\nconst Item = Form.Item;\n\nexport const validate = ({\n showSuccess,\n required,\n rules,\n value,\n}) => {\n const isNull = isNil(value) || value === '';\n const onSuccess = showSuccess ? 'success' : undefined;\n if(!required && isNull) {\n return {};\n }\n if(required && (isNull || (isArray(value) && value.length === 0))) {\n return {\n validateStatus: 'error',\n help: 'Podaj wymaganą wartość',\n }\n }\n let isValid = true;\n let errorMessage;\n for(let i = 0; i < rules.length; i+=1) {\n const result = rules[i].validate(value);\n if(!result) {\n errorMessage = rules[i].errorMessage || errorMessage;\n isValid = false;\n break;\n }\n }\n return {\n validateStatus: isValid ? onSuccess : 'error',\n help: errorMessage,\n };\n}\n\nexport default Object.assign(({\n onChange,\n value,\n valueKey = 'value',\n children,\n rules = [],\n triggered,\n showSuccess,\n required,\n isEdit,\n disableOnEdit,\n fetching,\n disableOnFetching,\n ...props\n}) => {\n const isNull = isNil(value) || value === '';\n const [_triggered, setTrigger] = useState(triggered);\n\n useEffect(() => {\n setTrigger(triggered);\n }, [triggered]);\n\n const { onBlur } = children.props;\n React.Children.only(children);\n const wrappedBlur = (v) => {\n if(onBlur) onBlur(v);\n setTrigger(true);\n }\n const validateFun = (v) => validate({\n showSuccess,\n required,\n rules,\n value: v,\n });\n const wrappedOnChange = (v) => {\n let value = v;\n if(v.target) {\n if(v.target.type === \"checkbox\") {\n value = v.target.checked;\n }\n if(v.target.type === \"text\") {\n value = v.target.value;\n }\n }\n onChange(value, validateFun(value).validateStatus !== 'error');\n }\n return (\n {React.cloneElement(\n children,\n {\n onBlur: wrappedBlur,\n [valueKey]: value,\n onChange: wrappedOnChange,\n disabled: (isEdit && disableOnEdit) || (fetching && disableOnFetching),\n },\n )}\n );\n},\n{\n propTypes: {\n rules: PropTypes.arrayOf(\n PropTypes.shape({\n validate: PropTypes.func.isRequired,\n errorMessage: PropTypes.string,\n }),\n ),\n showSuccess: PropTypes.bool,\n },\n});\n\nconst StyledItem = styled(Item)`\n ${({hasIcon}) => hasIcon ? `.ant-form-explain {\n padding-left: 36px;\n }` : ''}\n`;\n","import styled from 'styled-components';\nimport { Form } from 'antd';\n\nexport const StyledFrom = styled(Form)`\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const FormInner = styled.div`\n flex: 1\n`;\n\nexport const FormFooter = styled.div`\n margin-top: auto;\n border-top: 1px solid #e9e9e9;\n padding: 16px 24px 0 24px;\n text-align: right;\n margin-left: -24px;\n margin-right: -24px;\n`;\n","import React, { Fragment } from \"react\";\n\nconst TYPES = Object.freeze({\n NORMAL: \"normal\",\n UPPER: \"upper\",\n LOWER: \"lower\",\n});\n\nconst typesConverter = {\n [TYPES.NORMAL]: (str, { ...props }) => {str},\n [TYPES.UPPER]: (str, { ...props }) => {str},\n [TYPES.LOWER]: (str, { ...props }) => {str},\n};\n\nconst getBracketExpr = str => {\n const pos = str.indexOf(\"}\");\n return {\n start: str.slice(1, pos),\n end: str.slice(pos + 1),\n };\n};\n\nconst getFirstChart = str => ({\n start: str.slice(0, 1),\n end: str.slice(1),\n});\n\nconst splitChartConverter = (str, splitter, type) => {\n const result = [];\n const [first, ...rest] = str.split(splitter);\n if (first.length) {\n result.push({\n type: TYPES.NORMAL,\n string: first,\n });\n }\n rest.forEach(e =>\n (fun => {\n const { start, end } = fun(e);\n if (start.length) {\n result.push({\n type,\n string: start,\n });\n }\n if (end.length) {\n result.push({\n type: TYPES.NORMAL,\n string: end,\n });\n }\n })(e.startsWith(\"{\") ? getBracketExpr : getFirstChart),\n );\n return result;\n};\n\nconst supConverter = str => splitChartConverter(str, \"^\", TYPES.UPPER);\n\nconst subConverter = str => splitChartConverter(str, \"_\", TYPES.LOWER);\n\nconst mathTextConverter = str => {\n try {\n let result = [\n {\n type: TYPES.NORMAL,\n string: str,\n },\n ];\n const converters = [supConverter, subConverter];\n converters.forEach(conv => {\n let nResult = [];\n result.forEach(({ type, string }) => {\n if (type === TYPES.NORMAL) {\n nResult = [...nResult, ...conv(string)];\n } else {\n nResult.push({\n type,\n string,\n });\n }\n });\n result = nResult;\n });\n return result.map(({ type, string }, key) =>\n typesConverter[type](string, { key }),\n );\n } catch {\n return str;\n }\n};\n\nexport default ({ children, ...props }) => (\n {mathTextConverter(children)}\n);\n","import React, {useState} from 'react'\nimport styled from 'styled-components';\nimport { difference, filter, uniq } from 'lodash';\n\nimport { Checkbox, Input } from 'antd';\n\nconst defaultRender = (e) => e;\n\nconst reducer = (prev, isIn) => ({\n checkedAll: prev.checkedAll && isIn,\n checkedAny: prev.checkedAny || isIn,\n});\n\nexport default ({\n options = [],\n value = [],\n onChange,\n allowAll,\n allowSearch,\n filterOption,\n renderItem = defaultRender,\n}) => {\nconst [filterValue, changeFilter] = useState();\n\nconst onCheck = (event, key) => {\n if(event.target.checked) {\n onChange([...value, key]);\n }\n else {\n onChange(filter(value, e => e !== key));\n }\n}\n\nconst filteredOptions = filter(options,\n e => !filterOption || !filterValue || filterValue === '' || filterOption(filterValue, e));\n\nconst filteredEnabled = filter(filteredOptions, e => !e.disabled);\n\nconst { checkedAll, checkedAny } = filteredEnabled.reduce(\n (prev, opt) => reducer(prev, value.includes(opt.key)),\n {\n checkedAll: true,\n checkedAny: false,\n },\n);\n\nconst onCheckAll = () => {\n const all = filteredEnabled.map(opt => opt.key)\n if(checkedAll) {\n onChange(difference(value, all));\n }\n else {\n onChange(uniq([\n ...all,\n ...value,\n ]));\n }\n}\nreturn (\n \n {allowAll && (\n
\n \n Zaznacz wszystkie\n \n
)}\n {allowSearch && (\n
\n changeFilter(e.target.value)}\n allowClear\n\n />\n
)}\n \n {filteredOptions.map(({key, ...props}) =>\n \n onCheck(event, key)}\n checked={value.includes(key)}\n {...props}\n >\n {renderItem({key, ...props})}\n \n )}\n \n
);\n}\n\nconst MultiCheckBox = styled.div`\n padding: 7px 15px;\n border: 1px solid #E9E9E9;\n border-radius: 4px;\n .has-error & {\n border-color: #f5222d;\n }\n`;\n\nconst Header = styled.div`\n border-bottom: 1px solid #E9E9E9;\n padding: 8px 0 7px 0;\n`;\n\nconst CheckboxGroup = styled.div`\n height: 160px;\n overflow: auto;\n ${Header} + & {\n margin-top: 8px;\n }\n`;\n\nconst Item = styled.div`\n & + & {\n margin-top: 8px;\n }\n`;\n","import React, { useContext, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { filter } from 'lodash';\nimport { Transfer, Empty } from 'antd';\n\nimport { AnalysisContext } from '../AnalysisDataProvider';\n\nimport MathParser from '../../../components/MathParser';\nimport MultiCheckboxGroup from '../../../components/MultiCheckboxGroup';\n\nimport { removePolish } from '../../../utils/formaters';\n\nconst measurementsConfig = require('./measurementsConfig.json');\n\nexport const getMultipleLabelFromLoaded = (key, loadedData) => {\n const fields = loadedData.find(e => e.fields.measurements.includes(key)).fields;\n const index = fields.measurements.findIndex(e => e === key);\n return `${fields.description} - ${fields.measurementsLabels[index]}`;\n}\n\nexport const getMeasurementLabel = (key, measurements) => {\n const prefixes = key.split('_');\n if (prefixes.length > 1) {\n const multiLabel = measurementsConfig.multipleMeasurements.find(e => e.key === prefixes[0]).label;\n const customLabel = measurements.multipleMeasurements\n .find(e => e.type === prefixes[0]).measurements.find(e => e.id.toString() === prefixes[1]).description;\n return `${multiLabel} - ${customLabel}`;\n }\n return measurementsConfig.baseMeasurements.find(e => e.key === prefixes[0]).label;\n}\n \nexport const getMeasurementUnit = (key) => {\n const prefixes = key.split('_');\n return (prefixes.length > 1)\n ? measurementsConfig.multipleMeasurements.find(e => e.key === prefixes[0]).unit\n : measurementsConfig.baseMeasurements.find(e => e.key === prefixes[0]).unit;\n}\n\nconst filterOption = (inputValue, option) =>\n removePolish(option.label.toLowerCase()).includes(removePolish(inputValue.toLowerCase()));\n\nexport const MeasurementsPickerTransfer = ({onChange, building, value, disabledValues = [], ...props}) => {\n const { buildingsMeasurements } = useContext(AnalysisContext);\n const measurements = building && buildingsMeasurements[building];\n const dataSource = measurements && [\n ...(filter(measurementsConfig.baseMeasurements,\n ({key}) => measurements.baseMeasurements.includes(key))),\n ...mapMultiple(measurements.multipleMeasurements, measurementsConfig.multipleMeasurements)\n ];\n\n const [selectedKeys, setSelectedKeys] = useState();\n\n useEffect(() => {\n setSelectedKeys([]);\n }, [building]);\n\n const handleSelectChange = (sourceSelectedKeys, targetSelectedKeys) => {\n setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);\n };\n \n return measurements ?\n (\n
\n Potencjalne dane\n Wybrane dane\n
\n ({\n ...e,\n disabled: disabledValues.includes(e.key),\n }))}\n showSearch\n filterOption={filterOption}\n onChange={onChange}\n onSelectChange={handleSelectChange}\n render={item => {item.label}}\n {...props}\n targetKeys={value}\n selectedKeys={selectedKeys}\n />\n
)\n :\n (\n {building\n ? \"Pobieranie danych o budynku...\"\n : \"Wybierz budynek by zobaczyć oprzyrządowane dane\"}\n \n }\n />);\n}\n\nconst mapMultiple = (possible, config) => {\n const result = [];\n possible.filter(({ measurements}) => measurements && measurements.length > 0)\n .forEach(({type, measurements}) => {\n const passed = config.find(({key}) => key === type);\n if(passed) {\n measurements.forEach(({description, id}) => {\n result.push({\n key: `${passed.key}_${id}`,\n label: `${passed.label} - ${description}`,\n unit: passed.unit,\n });\n });\n }\n });\n return result;\n}\n\nexport default ({onChange, building, value, disabledValues = [], ...props}) => {\n const { buildingsMeasurements } = useContext(AnalysisContext);\n const measurements = building && buildingsMeasurements[building];\n const dataSource = measurements && [\n ...(filter(measurementsConfig.baseMeasurements,\n ({key}) => measurements.baseMeasurements.includes(key))),\n ...mapMultiple(measurements.multipleMeasurements, measurementsConfig.multipleMeasurements)\n ];\n\n return measurements ?\n ( ({\n ...e,\n disabled: disabledValues.includes(e.key),\n }))}\n onChange={onChange}\n allowAll\n allowSearch\n filterOption={filterOption}\n renderItem={item => {item.label}}\n value={value}\n {...props}\n />)\n :\n (\n {building\n ? \"Pobieranie danych o budynku...\"\n : \"Wybierz budynek by zobaczyć oprzyrządowane dane\"}\n \n }\n />);\n}\n\nconst MeasurementsPicker = styled.div``;\n\nconst HeaderItem = styled.div`\n flex: 1;\n text-align: center;\n`;\n\nconst Header = styled.div`\n display: flex;\n & ${HeaderItem}:first-child {\n margin-right: 24px;\n }\n & ${HeaderItem}:last-child {\n margin-left: 24px;\n }\n margin-bottom: 8px;\n font-size: 0.9rem;\n`;\n\nconst StyledTransfer = styled(Transfer)`\n display: flex;\n align-items: center;\n & .ant-transfer-list {\n width: unset;\n flex: 1 0 180px;\n }\n`;\n","import React, { useState, useEffect, useContext } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { filter, isNil } from 'lodash';\nimport { Button, Select, DatePicker, message } from 'antd';\n\nimport { AppContext } from '../../../../../../AppDataProvider';\nimport { AnalysisContext } from '../../../../AnalysisDataProvider';\n\nimport { getLineChartData } from '../../../../services/api';\n\nimport { MODES } from '../utils/constants';\n\nimport DisabledInput from '../../../../../../components/DisabledInput';\nimport {\n BuildingSelect,\n UserSelect,\n} from '../../../../../../components/BuildingSelect';\nimport FormItemWrapper, {\n validate,\n} from '../../../../../../components/FormItemWrapper';\nimport {\n FormFooter,\n FormInner,\n StyledFrom,\n} from '../../../../components/StyledForm';\nimport MeasurementsPicker, {\n getMeasurementLabel,\n} from '../../../../components/MeasurementsPicker';\n\nconst { Option } = Select;\nconst { RangePicker } = DatePicker;\n\nconst isDateAfter = date => moment().isBefore(date);\n\nconst LoadDataForm = Object.assign(\n ({ mode, editedData, onClose, loadData, updateData, now }) => {\n const isEdit = mode === MODES.EDIT;\n\n const {\n buildings,\n users,\n isAdmin,\n startAsyncTask,\n finishAsyncTask,\n wrapRequest,\n } = useContext(AppContext);\n const { buildingsMeasurements, fetchMeasurements } = useContext(\n AnalysisContext,\n );\n\n const [triggered, setTriggered] = useState(false);\n const [_value, setValue] = useState(editedData);\n\n const formSettings = {\n isEdit,\n triggered,\n };\n\n useEffect(() => {\n setValue(editedData);\n }, [editedData]);\n\n const updateWithValid = (data, isValid) =>\n isValid\n ? updateData({ ...editedData, ...data })\n : setValue({ ..._value, ...data });\n\n const update = key => (data, isValid) =>\n updateWithValid({ [key]: data }, isValid);\n\n const changeUser = (user, isValid) =>\n updateWithValid(\n {\n user,\n ...(user !== undefined && {\n building: undefined,\n measurements: undefined,\n }),\n },\n isValid,\n );\n\n const changePeriodType = (periodType, isValid) =>\n updateWithValid(\n {\n periodType,\n ...(!_value[periodType] && {\n [periodType]: periods[periodType].default,\n }),\n },\n isValid,\n );\n\n const getBuildingShortcut = building => {\n const found = buildings.find(e => e.id === building);\n if (!isAdmin) {\n return found && found.shortName;\n }\n const user = users.find(c => c.buildingsIds.includes(building));\n return user && found && `${user.name} - ${found.shortName}`;\n };\n\n const updateMeasurementsOnEdit = value =>\n setValue({ ..._value, measurements: value });\n\n const changeBuilding = (building, isValid) => {\n if (isValid && !isNil(building)) {\n fetchMeasurements(building);\n }\n updateWithValid(\n {\n building,\n measurements: undefined,\n },\n isValid,\n );\n };\n\n const onReset = () => {\n setTriggered(false);\n if (isEdit) {\n setValue(editedData);\n } else {\n updateData(genDefaultData());\n }\n };\n\n const onSubmit = async event => {\n event.preventDefault();\n const toValidate = ['building', 'periodType', 'measurements'];\n if (_value.periodType && periods[_value.periodType].element)\n toValidate.push(_value.periodType);\n const isValid = toValidate\n .map(key =>\n validate({\n required: true,\n value: _value[key],\n rules: setupSettings[key] ? setupSettings[key].rules || [] : [],\n }),\n )\n .reduce(\n (prev, { validateStatus }) => prev && validateStatus !== 'error',\n true,\n );\n if (!isValid) {\n setTriggered(true);\n } else {\n const request = {\n building: _value.building,\n ...periods[_value.periodType].formatter(\n _value[_value.periodType],\n now,\n ),\n measurements: isEdit\n ? filter(\n _value.measurements,\n e => !editedData.measurements.includes(e),\n )\n : _value.measurements,\n };\n if (request.measurements.length) {\n startAsyncTask(\n 'Pobieranie danych z bazy. Operacja zajmuje dużo czasu przy obszernym zapytaniu.',\n );\n await wrapRequest(() => getLineChartData(request), {\n onError: (error = {}) => {\n message.error(\n error.data ||\n 'Nie udało się pobrać danych do wykresów. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: data => {\n loadData({\n fields: {\n ..._value,\n description: getBuildingShortcut(_value.building),\n measurementsLabels: request.measurements.map(m =>\n getMeasurementLabel(\n m,\n buildingsMeasurements[_value.building],\n ),\n ),\n },\n data,\n });\n onClose();\n onReset();\n },\n });\n finishAsyncTask();\n } else {\n onClose();\n onReset();\n }\n }\n };\n\n return (\n \n \n {isAdmin && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n {_value.periodType && periods[_value.periodType].element && (\n \n {periods[_value.periodType].element()}\n \n )}\n \n \n \n \n \n \n \n {isEdit ? 'Aktualizuj' : 'Dodaj dane'}\n \n \n \n );\n },\n {\n propTypes: {\n mode: PropTypes.oneOf([MODES.EDIT, MODES.LOAD]).isRequired,\n editedData: PropTypes.shape({\n building: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n onClose: PropTypes.func,\n loadData: PropTypes.func,\n updateData: PropTypes.func,\n },\n },\n);\n\nconst setupSettings = {\n user: {\n label: 'Wybór gminy',\n disableOnEdit: true,\n hasIcon: true,\n },\n building: {\n label: 'Wybór budynku',\n required: true,\n disableOnEdit: true,\n hasIcon: true,\n },\n periodType: {\n label: 'Wybór zakresu danych',\n required: true,\n disableOnEdit: true,\n },\n measurements: {\n label: 'Wybór możliwych danych',\n required: true,\n rules: [\n {\n validate: v => v.length,\n errorMessage: 'Wybierz min. 1 zestaw danych',\n },\n ],\n },\n};\n\nconst PeriodSelect = ({ ...props }) => (\n \n);\n\nconst extractPeriodSettings = ({ label, rules }) => ({\n label,\n rules,\n required: true,\n disableOnEdit: true,\n});\n\nconst periods = {\n day: {\n description: '1 dzien',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(1, 'days')\n .format(),\n to: now.format(),\n }),\n },\n days3: {\n description: '3 dni',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(3, 'days')\n .format(),\n to: now.format(),\n }),\n },\n week: {\n description: '1 tydzień',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(1, 'weeks')\n .format(),\n to: now.format(),\n }),\n },\n weeks2: {\n description: '2 tygodnie',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(2, 'weeks')\n .format(),\n to: now.format(),\n }),\n },\n month: {\n description: '1 miesiąc',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(1, 'months')\n .format(),\n to: now.format(),\n }),\n },\n months3: {\n description: '3 miesiące',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(3, 'months')\n .format(),\n to: now.format(),\n }),\n },\n year: {\n description: '1 rok',\n formatter: (value, now) => ({\n from: now\n .clone()\n .subtract(1, 'years')\n .format(),\n to: now.format(),\n }),\n },\n userDefined: {\n description: 'Inny zakres',\n default: [moment().subtract(1, 'months'), moment()],\n label: 'Wybór zakresu dni',\n name: 'range-picker',\n element: ({ ...props }) => (\n \n ),\n formatter: values => ({\n from: values[0].startOf('day').format(),\n to: values[1].endOf('day').format(),\n }),\n },\n};\n\nconst genDefaultData = () => ({\n periodType: 'month',\n});\n\nexport default Object.assign(\n ({ mode, editedData, onClose, loadData, updateData, now }) => {\n const isEdit = mode === MODES.EDIT;\n const [newData, updateNewData] = useState(genDefaultData());\n return (\n \n );\n },\n {\n propTypes: {\n mode: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n editedData: PropTypes.object,\n onClose: PropTypes.func,\n loadData: PropTypes.func,\n updateData: PropTypes.func,\n },\n },\n);\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { filter, zipWith } from \"lodash\";\nimport { List } from \"antd\";\n\nimport { MODES } from \"../utils/constants\";\nimport { DataType } from \"../utils/types\";\n\nimport DataInputForm from '../../../../components/DataInputForm';\nimport StyledDrawer from '../../../../components/StyledDrawer';\nimport { ButtonForList, SetupAdd, SetupList} from '../../../../components/SetupList';\n\nimport LoadDataDialog from \"../Dialogs/LoadDataDialog\";\n\n// TODO przerobic na funkcjonalny\nclass LoadData extends Component {\n static propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n update: PropTypes.func.isRequired,\n };\n\n state = {\n openedDialog: false,\n editedData: null,\n };\n\n getIndex = (key) => this.props.data.findIndex(e => e.id === key);\n\n onCloseDialog = () => {\n this.setState({\n openedDialog: false,\n editedData: null,\n });\n };\n\n openDialogLoad = () => {\n this.setState({\n openedDialog: true,\n });\n };\n\n openDialogEdit = key => {\n this.setState({\n openedDialog: true,\n editedData: key,\n });\n };\n\n newIndex = () =>\n this.props.data.reduce(\n (prev, {id}) => Math.max(prev, id),\n -1,\n ) + 1;\n\n loadData = newData => {\n const { data, update } = this.props;\n update([...data, {\n id: this.newIndex().toString(),\n ...newData,\n }]);\n };\n\n updateLoadedData = (key, newData) => {\n const { data, update } = this.props;\n const id = this.getIndex(key);\n if(newData.data.length !== data[id].data.length) {\n throw Error('Fetched data of different length.');\n }\n const zipped = zipWith(newData.data, data[id].data, (a, b) => ({...b, ...a}));\n const result = [...data];\n result[id] = {\n id: key,\n fields: newData.fields,\n data: zipped,\n };\n update(result);\n }\n\n removeData = key => {\n const { data, update } = this.props;\n update(filter(data, e => e.id !== key));\n };\n\n updateData = (key, value) => {\n const { data, update } = this.props;\n const result = [...data];\n result[this.getIndex(key)] = value;\n update(result);\n };\n\n render() {\n const isEdit = this.state.editedData !== null;\n const { data, now } = this.props;\n return (\n \n \n {data.map(({id, fields}) => (\n this.openDialogEdit(id)}>edytuj,\n this.removeData(id)}>usuń,\n ]}\n >\n \n \n ))}\n \n \n \n this.updateLoadedData(this.state.editedData, value)\n : this.loadData}\n updateData={value =>\n this.updateData(this.state.editedData, value)\n }\n />\n \n \n );\n }\n}\n\nexport default LoadData;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Select } from 'antd';\n\nconst { Option } = Select;\n\nexport default ({ ...props }) => (\n \n);\n\nconst ColorSelectColor = styled.div`\n background: ${({ color }) => color};\n display: inline-block;\n vertical-align: text-bottom;\n height: 18px;\n width: 18px;\n border-radius: 50%;\n margin-right: 4px;\n`;\n\nexport const colors = [\n {\n description: 'Ciemnoniebieski',\n color: '#063951',\n },\n {\n description: 'Ciemnoczerwony',\n color: '#C13015',\n },\n {\n description: 'Pomarańczowy',\n color: '#E36F13',\n },\n {\n description: 'Jasnoniebieski',\n color: '#0D95BC',\n },\n {\n description: 'Żółty',\n color: '#E3CB38',\n },\n {\n description: 'Zielonkawy',\n color: '#A2B969',\n },\n {\n description: 'Ciemnoszary',\n color: '#333',\n },\n {\n description: 'Czarny',\n color: 'black',\n },\n {\n description: 'Niebieski',\n color: 'blue',\n },\n {\n description: 'Czerwony',\n color: 'red',\n },\n {\n description: 'Zielony',\n color: '#556B3E',\n },\n];\n\nexport const multiChartLineColors = [\n {\n color: '#0E4194',\n },\n {\n color: '#10C8CA',\n },\n {\n color: '#7FD2BE',\n },\n {\n color: '#4462ba',\n },\n {\n color: '#2490be',\n },\n {\n color: '#03cca7',\n },\n];\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nexport default ({ visible, ...props }) => (\n \n);\n\nconst VisibilitySwitch = styled.div`\n display: ${({visible}) => visible ? 'unset' : 'none'};\n`;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Select } from \"antd\";\n\nconst { Option } = Select;\n\nexport default Object.assign(\n ({data, ...props}) => (\n \n ),\n {\n propTypes: {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n }),\n ),\n },\n },\n );\n\nexport const handleAxisData = ({yAxises}) => {\n const axisData = yAxises.map(({id, fields}) => ({\n id,\n description: fields.description,\n }));\n return {\n axisData,\n defaultAxisData: axisData[0].id,\n };\n };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { TreeSelect } from \"antd\";\n\nimport { generateDataDescription, generateDataSource } from '../scenes/ChartCreate/ChartSetup/utils/constants';\nimport { DataType } from \"../scenes/ChartCreate/ChartSetup/utils/types\";\n\nimport MathParser from \"../../../components/MathParser\";\n\nexport default Object.assign(\n ({loadedData, ...props}) => {\n const genTreeData = () => {\n return loadedData.map(({id, fields}) => ({\n title: fields.description,\n value: `${id}`,\n selectable: false,\n key: `${id}`,\n children: fields.measurements.map(set => ({\n title: {generateDataDescription(fields.description, set)},\n value: generateDataSource(id, set),\n key: generateDataSource(id, set),\n })),\n }));\n };\n return (\n \n );\n },\n {\n propTypes: {\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n },\n },\n );\n","export default class Subscriber {\n constructor() {\n this.subscribed = false;\n }\n\n subscribed;\n\n subscribe = async (func, callback, unSubCallback) => {\n this.subscribed = true;\n const result = await func();\n if(this.subscribed) {\n callback(result);\n }\n else if(unSubCallback) {\n unSubCallback();\n }\n }\n\n unsubscribe = () => {\n this.subscribed = false;\n }\n}\n","function sleep(time) {\n return new Promise(resolve => setTimeout(resolve, time));\n}\n\nexport default sleep;\n","/* eslint-disable react/no-multi-comp */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Subscripter from './Subscriber';\nimport sleep from '../sleep';\n\nclass DelayedRenderer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n waiting: false,\n renderedProps: props.passed,\n }\n this.subscriber = null;\n }\n\n subscriber;\n\n static propTypes = {\n delay: PropTypes.number,\n // eslint-disable-next-line react/forbid-prop-types\n passed: PropTypes.object,\n }\n\n static defaultProps = {\n delay: 3000,\n passed: {},\n }\n\n componentDidUpdate() {\n if(!this.subscriber && !this.state.waiting && this.props.passed !== this.state.renderedProps) {\n this.setState({waiting: true});\n this.subscriber = new Subscripter();\n this.subscriber.subscribe(\n async () => {await this.awaitDelay()},\n () => this.updateAsyncProps(),\n )\n }\n }\n\n async awaitDelay() {\n await sleep(this.props.delay);\n }\n\n updateAsyncProps() {\n this.subscriber.unsubscribe();\n this.subscriber = null;\n this.setState({\n waiting: false,\n renderedProps: this.props.passed, \n });\n }\n\n componentWillUnmount() {\n if(this.subscriber) {\n this.subscriber.unsubscribe();\n }\n }\n\n render() {\n return React.cloneElement(this.props.children, {...this.state.renderedProps});\n }\n}\n\n// Eksperymentalny wrapper do przekazywania propsów do dziecka, redukujący liczbę renderingu\n// przy dynamicznym update danych do długo renderowanych elementów\nexport const withDelayedRender = (Element) => (\n ({delay = 500, ...props}) => (\n \n \n \n ));\n\nclass DelayedExecution extends Component {\n constructor(props) {\n super(props);\n this.state = {\n waiting: false,\n renderedValue: props.value,\n }\n this.subscriber = null;\n }\n\n subscriber;\n\n static propTypes = {\n delay: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n }\n\n static defaultProps = {\n delay: 3000,\n }\n\n componentDidUpdate(prevProps) {\n if(!this.subscriber && !this.state.waiting && this.props.value !== this.state.renderedValue) {\n this.setState({\n waiting: true,\n ...(prevProps.value !== this.props.value && {renderedValue: this.props.value}),\n });\n this.subscriber = new Subscripter();\n this.subscriber.subscribe(\n async () => {await this.awaitDelay()},\n () => this.executeDelayedUpdate(false),\n () => this.executeDelayedUpdate(true),\n );\n }\n }\n\n async awaitDelay() {\n await sleep(this.props.delay);\n }\n\n executeDelayedUpdate(canceled) {\n this.subscriber.unsubscribe();\n this.subscriber = null;\n this.props.onChange(this.state.renderedValue);\n if(!canceled) {\n this.setState({\n waiting: false,\n });\n }\n }\n\n componentWillUnmount() {\n if(this.subscriber) {\n this.subscriber.unsubscribe();\n }\n }\n\n selfUpdate(value) {\n this.setState({\n renderedValue: value,\n })\n }\n\n wrappedOnChange(v) {\n let value = v;\n if(v.target){\n if(v.target.type === \"checkbox\") {\n value = v.target.checked;\n }\n if(v.target.type === \"text\") {\n value = v.target.value;\n }\n }\n this.selfUpdate(value);\n }\n\n render() {\n return React.cloneElement(this.props.children, {\n onChange: (v) => this.wrappedOnChange(v),\n value: this.state.renderedValue,\n });\n }\n}\n\n// Eksperymentalny wrapper do zapobiegania wielokrotnych updatom owrapowanego\n// componentu - jak opóźniony input do tekstu\nexport const withDelayedUpdate = (Element) => (\n({delay = 400, value, onChange, ...props}) => (\n \n \n ));\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n Input,\n Button,\n} from \"antd\";\n\nimport { UsedDataType, DataType, ConfigType, EditUsedDataType } from \"../utils/types\";\nimport { MODES } from \"../utils/constants\";\n\nimport FormItemWrapper, { validate } from \"../../../../../../components/FormItemWrapper\";\nimport ColorSelect from \"../../../../../../components/ColorSelect\";\nimport VisibilitySwitch from \"../../../../../../components/VisibilitySwitch\";\nimport AxisSelect, { handleAxisData } from \"../../../../components/AxisSelect\";\nimport { FormFooter, FormInner, StyledFrom } from \"../../../../components/StyledForm\";\nimport PathSelect from \"../../../../components/PathSelect\";\nimport { withDelayedUpdate } from \"../../../../../../utils/delayed\";\n\nconst DelayedInput = withDelayedUpdate(Input);\n\nconst UseDataForm = Object.assign(\n ({\n dataSource,\n editedData,\n loadedData,\n onClose,\n config,\n updateData,\n }) => {\n const isEdit = true;\n\n const [triggered, setTriggered] = useState(false);\n const [_value, setValue] = useState(editedData);\n\n const formSettings = {\n isEdit,\n triggered,\n };\n \n useEffect(() => {\n setValue(editedData);\n }, [editedData]);\n\n const updateWithValid = ((data, isValid) =>\n isValid ? updateData({...editedData, ...data}): setValue({..._value, ...data}));\n\n const update = (key) => ((data, isValid) => updateWithValid({[key]: data}, isValid));\n\n const changeDotted = (dotted, isValid) =>\n updateWithValid({\n dotted,\n ...(dotted && {\n dashed: false,\n }),\n }, isValid);\n\n const onReset = () => {\n setTriggered(false);\n setValue(editedData);\n }\n\n const onSubmit = async (event) => {\n event.preventDefault();\n const toValidate = [\n 'description',\n 'axis',\n 'lineColor',\n ];\n const isValid = toValidate.map((key) => validate({\n required: true,\n value: _value[key],\n rules: setupSettings[key] ? (setupSettings[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n if(!isValid) {\n setTriggered(true);\n }\n else {\n onClose();\n onReset();\n }\n }\n\n const { axisData } = handleAxisData(config);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Pokaż linię regresji\n \n \n Pokaż jako zbiór punktów\n \n \n \n Użyj przerywanej linii\n \n \n \n \n \n Zresetuj\n \n \n {isEdit ? \"Aktualizuj\" : \"Dodaj dane\"}\n \n \n \n );\n},\n{\n propTypes: {\n dataSource: PropTypes.string.isRequired,\n mode: PropTypes.oneOf([MODES.EDIT, MODES.LOAD]).isRequired,\n editedData: PropTypes.shape(EditUsedDataType).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n onClose: PropTypes.func.isRequired,\n config: PropTypes.shape(ConfigType),\n updateData: PropTypes.func.isRequired,\n },\n});\n\nconst setupSettings = {\n description: {\n label: \"Opis danych\",\n required: true,\n rules: [\n {\n validate: (v) => v.length >= 3,\n errorMessage: 'Wymagane min. 3 znaki',\n },\n {\n validate: (v) => v.length <= 60,\n errorMessage: 'Maksymalnie 60 znaków',\n },\n ],\n },\n axis: {\n label: \"Oś odniesienia\",\n required: true,\n },\n showRegresion: {},\n dotted: {},\n dashed: {},\n lineColor: {\n label: \"Kolor na wykresie\",\n required: true,\n },\n};\n\nexport default Object.assign(\n({mode, editedData, loadedData, config, onClose, updateData}) => {\n\nconst onUpdateFields = changedFields => {\n if (changedFields !== editedData.fields) {\n updateData({\n ...editedData,\n fields: { ...editedData.fields, ...changedFields },\n });\n }\n};\n return (\n \n );\n},\n{\n propTypes: {\n mode: PropTypes.oneOf([MODES.EDIT, MODES.LOAD]).isRequired,\n editedData: PropTypes.shape(UsedDataType).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n onClose: PropTypes.func.isRequired,\n config: PropTypes.shape(ConfigType),\n updateData: PropTypes.func.isRequired,\n },\n});\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { List, Switch, Tooltip, Icon } from 'antd';\n\nimport { ConfigType, DataType, UsedDataType } from '../utils/types'\n\nimport DataInputForm from '../../../../components/DataInputForm';\nimport StyledDrawer from '../../../../components/StyledDrawer';\nimport { ButtonForList, SetupList} from '../../../../components/SetupList';\n\nimport UseDataDialog from '../Dialogs/UseDataDialog';\nimport { MODES, formatReason, getDisableReason, formatReasonColor, formatReasonSymbol } from '../utils/constants';\nimport MathParser from '../../../../../../components/MathParser';\n\n// TODO przerobic na funkcyjny\nclass UseData extends Component {\n static propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape(UsedDataType)).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n config: PropTypes.shape(ConfigType).isRequired,\n update: PropTypes.func.isRequired,\n };\n\n state = {\n openedDialog: false,\n editedData: null,\n };\n\n getIndex = (key) => this.props.data.findIndex(e => e.dataSource === key);\n\n onCloseDialog = () => {\n this.setState({\n openedDialog: false,\n editedData: null,\n });\n };\n\n openDialogEdit = key => {\n this.setState({\n openedDialog: true,\n editedData: key,\n });\n };\n\n changeShow = (key, checked) => {\n const { data, update } = this.props;\n const newValue = [ ...data ];\n newValue[this.getIndex(key)].show = checked;\n update(newValue);\n };\n\n updateData = (key, value) => {\n const { data, update } = this.props;\n const newValue = [ ...data ];\n newValue[this.getIndex(key)] = value;\n update(newValue);\n };\n\n render() {\n const { data, loadedData, config } = this.props;\n return (\n \n \n {data.map(({dataSource, fields, show}) => {\n const reason = getDisableReason(dataSource, loadedData, config.xAxis.xKey);\n return (\n this.openDialogEdit(dataSource)}>edytuj,\n ]}\n >\n this.changeShow(dataSource, checked)}\n />}\n />\n )},\n )}\n \n {this.state.editedData !== null && \n \n this.updateData(this.state.editedData, value)\n }\n />\n }\n \n );\n }\n}\n\nexport default UseData;\n\nconst StyledDetails = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n`;\n\nconst StyledSwitch = styled.div`\n flex: 0;\n padding: 2px 0;\n`;\n\nconst DetailsTitle = styled.div`\n flex: 1;\n margin-right: 16px;\n`;\n\nconst StyledWaringTip = styled.div`\n font-size: 1.2rem;\n padding-right: 16px;\n color: ${({reason}) => formatReasonColor(reason)};\n`;\n\nconst Details = ({description, show, onChange, reason}) =>\n \n {reason &&\n \n \n \n \n \n }\n \n \n {description}\n \n \n \n \n \n \n \n \n","import React from \"react\";\nimport { Select } from \"antd\";\n\nconst { Option } = Select;\n\nexport default ({...props}) => (\n \n);\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Checkbox, Form, Row, Col, Input, Button } from \"antd\";\n\nimport { yAxisType } from \"../utils/types\";\nimport { MODES } from \"../utils/constants\";\n\nimport FormItemWrapper, { validate } from \"../../../../../../components/FormItemWrapper\";\nimport { FormFooter, FormInner, StyledFrom } from \"../../../../components/StyledForm\";\nimport AxisSideSelect from \"../../../../components/AxisSideSelect\";\n\nimport { withDelayedUpdate } from \"../../../../../../utils/delayed\";\n\nconst DelayedInput = withDelayedUpdate(Input);\n\nconst AxisForm = Object.assign(\n({mode, editedData, onClose, loadData, updateData}) => {\n const isEdit = mode === MODES.EDIT;\n\n const [triggered, setTriggered] = useState(false);\n const [_value, setValue] = useState(editedData);\n\n const formSettings = {\n isEdit,\n triggered,\n };\n\n useEffect(() => {\n setValue(editedData);\n }, [editedData]);\n\n const updateWithValid = ((data, isValid) =>\n isValid ? updateData({...editedData, ...data}): setValue({..._value, ...data}));\n\n const update = (key) => ((data, isValid) => updateWithValid({[key]: data}, isValid));\n\n const onReset = () => {\n setTriggered(false);\n if(isEdit) {\n setValue(editedData);\n }\n else {\n updateData(genDefaultData());\n }\n }\n\n const onSubmit = async (event) => {\n event.preventDefault();\n const toValidate = [\n 'description',\n 'side',\n 'unit',\n 'rangeFrom',\n 'rangeTo',\n 'rangeSpan',\n ];\n const isValid = toValidate.map((key) => validate({\n ...setupSettings[key],\n value: _value[key],\n rules: setupSettings[key] ? (setupSettings[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n if(!isValid) {\n setTriggered(true);\n }\n else {\n if(isEdit) {\n updateData(_value);\n } else {\n loadData(_value);\n }\n onClose();\n onReset();\n }\n }\n\n return (\n \n \n \n Pokaż oś na wykresie\n \n \n \n \n \n Pokaż nazwę osi na wykresie\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Zresetuj\n \n \n {isEdit ? \"Aktualizuj\" : \"Dodaj oś\"}\n \n \n \n );\n},\n{\n propTypes: {\n mode: PropTypes.oneOf([MODES.EDIT, MODES.LOAD]).isRequired,\n editedData: PropTypes.shape(yAxisType).isRequired,\n onClose: PropTypes.func.isRequired,\n loadData: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n\nconst setupSettings = {\n showAxis: {},\n description: {\n label: \"Opis osi\",\n required: true,\n rules: [\n {\n validate: (v) => v.length >= 3,\n errorMessage: 'Wymagane min. 3 znaki',\n },\n {\n validate: (v) => v.length <= 20,\n errorMessage: 'Maksymalnie 20 znaków',\n },\n ],\n },\n showDescription: {},\n side: {\n label: \"Miejsce wyświetlania\",\n required: true,\n },\n unit: {\n label: \"Jednostka\",\n required: false,\n rules: [\n {\n validate: (v) => v.length <= 10,\n errorMessage: 'Maksymalnie 10 znaków',\n },\n ],\n },\n rangeFrom: {\n label: \"Od\",\n required: true,\n },\n rangeTo: {\n label: \"Do\",\n required: true,\n },\n rangeSpan: {\n label: \"Krok\",\n required: true,\n },\n};\n\nconst genDefaultData = () => ({\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"\",\n showDescription: false,\n unit: \"\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n});\n\nexport default Object.assign(\n({mode, editedAxis, onClose, loadData, updateData}) => {\n const isEdit = mode === MODES.EDIT;\n const [newData, updateNewData] = useState(genDefaultData());\n\n return (\n \n );\n},\n{\n propTypes: {\n mode: PropTypes.oneOf([\"load\", \"edit\"]).isRequired,\n editedAxis: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fields: PropTypes.shape({...yAxisType}),\n }).isRequired,\n onClose: PropTypes.func.isRequired,\n loadData: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n","import React from 'react';\nimport { Icon, Select } from \"antd\";\nimport styled from 'styled-components';\n\nimport { getMeasurementLabel, getMultipleLabelFromLoaded } from './MeasurementsPicker';\nimport MathParser from '../../../components/MathParser';\n\nconst { Option } = Select;\n\nconst addMeasurements = (prev, {measurements}) => {\n const result = {...prev};\n measurements.forEach(m => {\n if(result[m]) {\n result[m] += 1;\n }\n else {\n result[m] = 1;\n }\n });\n return result;\n}\n\nexport default ({loadedData, ...props}) => {\n const measurements = loadedData.reduce((prev, {fields}) => addMeasurements(prev, fields), {\n time: loadedData.length,\n });\n return (\n \n \n {(props.value && (measurements[props.value] !== loadedData.length)) &&\n \n Część danych nie zostanie ujęta na wykresie.\n }\n \n );\n}\n\nconst StyledOption = styled.div`\n min-width: 360px;\n display: flex;\n`;\n\nconst StyledPlaceholder = styled.div`\n flex: 32px 0 0;\n color: ${({warning}) => warning ? '#faad14' : '#52c41a'};\n`;\n\nconst Warning = styled.div`\n position: absolute;\n bottom: -24px;\n color: #faad14;\n`;\n\nconst StyledSelect = styled.div`\n position: relative;\n`;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Button,\n Checkbox,\n Col,\n Form,\n Input,\n InputNumber,\n Row,\n} from \"antd\";\n\nimport FormItemWrapper, { validate } from \"../../../../../../components/FormItemWrapper\";\nimport SelectxKey from \"../../../../components/SelectxKey\";\nimport { FormFooter, FormInner, StyledFrom } from \"../../../../components/StyledForm\";\nimport ColorSelect from \"../../../../../../components/ColorSelect\";\nimport { xAxisType, DataType, UsedDataType } from \"../utils/types\";\nimport VisibilitySwitch from \"../../../../../../components/VisibilitySwitch\";\nimport { withDelayedUpdate } from \"../../../../../../utils/delayed\";\nimport { getMeasurementLabel, getMeasurementUnit, getMultipleLabelFromLoaded } from \"../../../../components/MeasurementsPicker\";\n\nconst DelayedInput = withDelayedUpdate(Input);\n\n// TODO usuniecie valueKey z formy i przeniesienei do setup\nconst XAxisForm = Object.assign(\n({editedData, loadedData, usedData, onClose, updateData}) => {\n\n const [triggered, setTriggered] = useState(false);\n const [_value, setValue] = useState(editedData);\n\n const formSettings = {\n isEdit: true,\n triggered,\n };\n\n useEffect(() => {\n setValue(editedData);\n }, [editedData]);\n\n const updateWithValid = ((data, isValid) =>\n isValid ? updateData({...editedData, ...data}): setValue({..._value, ...data}));\n\n const update = (key) => ((data, isValid) => updateWithValid({[key]: data}, isValid));\n\n const onReset = () => {\n setTriggered(false);\n setValue(editedData);\n }\n\n const onChangeXKey = (data, isValid) =>\n updateWithValid({\n xKey: data,\n ...(isValid && {\n description: (data.includes('_')\n ? getMultipleLabelFromLoaded(data, loadedData)\n : getMeasurementLabel(data, [])),\n ...(data !== 'time' && {\n unit: getMeasurementUnit(data),\n }),\n }),\n }, isValid);\n\n const onSubmit = async (event) => {\n event.preventDefault();\n const toValidate = [\n 'description',\n 'color',\n 'xKey',\n 'unit',\n ];\n const isValid = toValidate.map((key) => validate({\n ...setupSettings[key],\n value: _value[key],\n rules: setupSettings[key] ? (setupSettings[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n if(!isValid) {\n setTriggered(true);\n }\n else {\n onClose();\n onReset();\n }\n }\n\n return (\n \n \n \n \n \n \n Pokaż nazwę osi na wykresie\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Pokaż godzinę\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Zresetuj\n \n \n Zakończ\n \n \n \n );\n},\n{\n propTypes: {\n editedData: PropTypes.shape(xAxisType).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(UsedDataType)).isRequired,\n onClose: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n\nconst setupSettings = {\n description: {\n label: \"Opis osi\",\n required: true,\n rules: [\n {\n validate: (v) => v.length >= 3,\n errorMessage: 'Wymagane min. 3 znaki',\n },\n {\n validate: (v) => v.length <= 20,\n errorMessage: 'Maksymalnie 20 znaków',\n },\n ],\n },\n showDescription: {},\n color: {\n label: \"Kolor osi\",\n required: true,\n },\n xKey: {\n label: 'Dane na osi X',\n required: true,\n },\n datesNumber: {\n label: \"Minimalna ilość dat na osi\",\n help: \"Wyświetlna liczba może być mniejsza dla krótkich okresów\",\n rules: [\n {\n validate: (v) => v >= 2,\n errorMessage: 'Wymagane min. 2 daty',\n },\n {\n validate: (v) => v <= 8,\n errorMessage: 'Maksymalnie 8 dat',\n },\n ],\n },\n withTime: {},\n unit: {\n label: \"Jednostka\",\n required: false,\n rules: [\n {\n validate: (v) => v.length <= 10,\n errorMessage: 'Maksymalnie 10 znaków',\n },\n ],\n },\n rangeFrom: {\n label: \"Od\",\n required: true,\n },\n rangeTo: {\n label: \"Do\",\n required: true,\n },\n rangeSpan: {\n label: \"Krok\",\n required: true,\n },\n};\n\nexport default Object.assign(\n({editedAxis, loadedData, usedData, onClose, updateData}) => {\n return (\n \n );\n},\n{\n propTypes: {\n editedAxis: PropTypes.shape(xAxisType).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(UsedDataType)).isRequired,\n onClose: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { isNil } from 'lodash';\nimport { Checkbox, Input, Button } from \"antd\";\n\nimport { settingsType } from \"../utils/types\";\n\nimport FormItemWrapper, { validate } from \"../../../../../../components/FormItemWrapper\";\nimport { FormFooter, FormInner, StyledFrom } from \"../../../../components/StyledForm\";\nimport { withDelayedUpdate } from \"../../../../../../utils/delayed\";\n\nconst DelayedInput = withDelayedUpdate(Input);\n\nconst EditSettingsForm = Object.assign(\n({ editedData, onClose, updateData }) => {\n const [triggered, setTriggered] = useState(false);\n const [_value, setValue] = useState(editedData);\n\n const formSettings = {\n isEdit: true,\n triggered,\n };\n\n useEffect(() => {\n setValue(editedData);\n }, [editedData]);\n\n const updateWithValid = ((data, isValid) =>\n isValid ? updateData({...editedData, ...data}): setValue({..._value, ...data}));\n\n const update = (key) => ((data, isValid) => updateWithValid({[key]: data}, isValid));\n\n const changeTitle = ((data, isValid) => updateWithValid({\n title: data,\n ...((isValid && !isNil(data) && data !== '') && {\n showTitle: true,\n }),\n }, isValid));\n\n const onReset = () => {\n setTriggered(false);\n setValue(editedData);\n }\n\n const onSubmit = async (event) => {\n event.preventDefault();\n const toValidate = [\n 'title',\n ];\n const isValid = toValidate.map((key) => validate({\n ...setupSettings[key],\n value: _value[key],\n rules: setupSettings[key] ? (setupSettings[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n if(!isValid) {\n setTriggered(true);\n }\n else {\n onClose();\n onReset();\n }\n }\n\n return (\n \n \n \n \n \n \n Pokaż tytuł na wykresie\n \n \n Pokaż legendę na wykresie\n \n \n Pokaż poziome linie siatki\n \n \n Pokaż pionowe linie siatki\n \n \n \n \n Zresetuj\n \n \n Zakończ\n \n \n \n );\n},\n{\n propTypes: {\n editedData: PropTypes.shape(settingsType).isRequired,\n onClose: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n\nconst setupSettings = {\n title: {\n label: \"Tytuł wykresu\",\n rules: [\n {\n validate: (v) => v.length <= 60,\n errorMessage: 'Maksymalnie 60 znaków',\n },\n ],\n },\n showTitle: {},\n showLegend: {},\n horizontalGrid: {},\n verticalGrid: {},\n};\n\nexport default Object.assign(\n({ settings, onClose, updateData }) => {\n const onUpdateFields = changedFields => {\n if (changedFields !== settings) {\n updateData({\n ...settings,\n ...changedFields,\n });\n }\n };\n\n return (\n \n );\n},\n{\n propTypes: {\n settings: PropTypes.shape(settingsType).isRequired,\n onClose: PropTypes.func.isRequired,\n updateData: PropTypes.func.isRequired,\n },\n});\n","import React, { Component } from \"react\";\nimport styled from \"styled-components\";\nimport PropTypes from \"prop-types\";\nimport { find, filter } from \"lodash\";\nimport { List } from \"antd\";\n\nimport DataInputForm from '../../../../components/DataInputForm';\nimport StyledDrawer from '../../../../components/StyledDrawer';\nimport { ButtonForList, SetupAdd, SetupList} from '../../../../components/SetupList';\n\nimport AxisDialog from \"../Dialogs/AxisDialog\";\nimport XAxisDialog from \"../Dialogs/XAxisDialog\";\nimport EditSettingsDialog from \"../Dialogs/EditSettingsDialog\";\nimport { ConfigType, DataType, UsedDataType } from \"../utils/types\";\nimport { MODES } from \"../utils/constants\";\n\n// TODO przerobic na funkcyjne\nclass ConfigChart extends Component {\n static propTypes = {\n config: PropTypes.shape(ConfigType).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(UsedDataType)).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n update: PropTypes.func.isRequired,\n };\n\n state = {\n openedDialogSettings: false,\n openedDialogXAxis: false,\n openedDialogYAxis: false,\n editedAxis: null,\n };\n\n onCloseDialogSettings = () => {\n this.setState({ openedDialogSettings: false });\n };\n\n onCloseDialogXAxis = () => {\n this.setState({ openedDialogXAxis: false });\n };\n\n onCloseDialogYAxis = () => {\n this.setState({\n openedDialogYAxis: false,\n editedAxis: null,\n });\n };\n\n openDialogSettings = () => {\n this.setState({ openedDialogSettings: true });\n };\n\n openDialogXAxis = () => {\n this.setState({ openedDialogXAxis: true });\n };\n\n openDialogYAxis = axis => {\n this.setState({\n openedDialogYAxis: true,\n editedAxis: axis,\n });\n };\n\n newIndex = () =>\n this.props.config.yAxises.reduce(\n (prev, {id}) => Math.max(prev, id),\n -1,\n ) + 1;\n\n addAxis = newAxis => {\n const { config, update } = this.props;\n const ncofig = { ...config };\n const nAxises = [...config.yAxises, {\n id: this.newIndex().toString(),\n fields: newAxis,\n }];\n ncofig.yAxises = nAxises;\n update(ncofig);\n };\n\n updateAxis = (newAxis, key) => {\n const { config, update } = this.props;\n const ncofig = { ...config };\n const id = config.yAxises.findIndex(e => e.id === key);\n const nAxises = [...config.yAxises];\n nAxises[id] = {...nAxises[id], fields: newAxis};\n ncofig.yAxises = nAxises;\n update(ncofig);\n };\n\n canRemove = key =>\n !find(\n this.props.usedData,\n used => used.fields.axis === key,\n );\n\n removeAxis = axisId => {\n const { config, update } = this.props;\n const ncofig = { ...config };\n const nAxises = filter(ncofig.yAxises,\n e => e.id !== axisId);\n ncofig.yAxises = nAxises;\n update(ncofig);\n };\n\n updateSettings = newSettings => {\n const { config, update } = this.props;\n const ncofig = { ...config };\n ncofig.settings = { ...ncofig.settings, ...newSettings };\n update(ncofig);\n };\n\n updateXAxis = newAxis => {\n const { config, update } = this.props;\n const ncofig = { ...config };\n ncofig.xAxis = { ...ncofig.xAxis, ...newAxis };\n update(ncofig);\n };\n\n render() {\n const { config, loadedData, usedData } = this.props;\n const { editedAxis } = this.state;\n const isEdit = editedAxis !== null;\n return (\n \n \n edytuj,\n ]}\n >\n \n \n \n \n Oś pozioma\n \n \n edytuj,\n ]}\n >\n \n \n \n \n Osie pionowe\n \n \n {config.yAxises.map(({id, fields}) => (\n this.openDialogYAxis(id)}>edytuj,\n this.removeAxis(id)} disabled={!this.canRemove(id)}>usuń,\n ]}\n >\n \n \n ))}\n \n this.openDialogYAxis(null)}\n />\n \n \n \n \n \n \n \n this.updateAxis(newAxis, editedAxis)}\n editedAxis={isEdit ? config.yAxises[editedAxis] : {}}\n />\n \n \n );\n }\n}\n\nexport default ConfigChart;\n\nconst ConfigChartSection = styled.div`\n padding: 8px 0;\n margin-top: 16px;\n font-weight: bold;\n background: linear-gradient(to right, #999 0%, #999 50%, #fff 50%, #fff 100%);\n background-position: top right;\n background-repeat: repeat-x;\n background-size: 10px 1px;\n`;\n","import { sortBy } from 'lodash';\n\nimport { colors } from '../../../../../../components/ColorSelect';\n\nexport const defaultChartConfig = {\n settings: {\n title: \"\",\n showTitle: false,\n showLegend: true,\n horizontalGrid: true,\n verticalGrid: true,\n // dwie poniższe nieedytowalne\n stopInteractive: false,\n stopAnimation: true,\n },\n xAxis: {\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 5,\n withTime: true,\n xKey: \"time\",\n unit: \"\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n yAxises: [\n {\n id: \"0\",\n fields: {\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Oś Y\",\n showDescription: false,\n unit: \"\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n },\n ],\n};\n\nexport const nextColorsPallete = (alreadyUsed) => {\n const possible = colors.reduce((prev, color, id) => ({\n ...prev,\n [color.color]: {\n counter: 0,\n id,\n },\n }), {});\n alreadyUsed.forEach(({fields}) => {\n possible[fields.lineColor].counter += 1;\n });\n const pallete = Object.keys(possible).map(key => ({\n color: key,\n counter: possible[key].counter,\n id: possible[key].id,\n }))\n return sortBy(pallete, ['counter', 'id']);\n}\n\nexport const getUsedData = ({dataSource, description, colorPallete, yAxises}, idx) => ({\n dataSource,\n fields: {\n description,\n axis: yAxises[0].id,\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: colorPallete[idx % colorPallete.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n },\n show: true,\n});\n","import React, { Component } from \"react\";\nimport styled from \"styled-components\";\nimport PropTypes from \"prop-types\";\nimport { union, filter, sortBy } from \"lodash\";\nimport { Collapse, message } from \"antd\";\n\nimport LoadData from \"./MenuElements/LoadData\";\nimport UseData from \"./MenuElements/UseData\";\nimport ConfigChart from \"./MenuElements/ConfigChart\";\n\nimport {\n ConfigType,\n DataType,\n UsedDataType,\n} from './utils/types';\nimport { extractEntry, generateDataSourcesSet } from \"./utils/constants\";\nimport { getUsedData, nextColorsPallete } from \"./utils/defaults\";\n\nconst Panel = Collapse.Panel;\n\nconst DisableLegendAlert = 7;\n\nconst getActiveStatus = ({ loadedData, usedData }) => {\n const isActiveUsedData = loadedData.length !== 0;\n const isActiveChartConfig = usedData.length !== 0;\n return {\n isActiveUsedData,\n isActiveChartConfig,\n };\n};\n\nclass ChartSetup extends Component {\n // TODO przepisac na funkcjonalny\n constructor(props) {\n super(props);\n const { isActiveUsedData, isActiveChartConfig } = getActiveStatus(props);\n const activeKey = [\"loadedData\"];\n if (isActiveUsedData) {\n activeKey.push(\"usedData\");\n }\n if (isActiveChartConfig) {\n activeKey.push(\"chartConfig\");\n }\n this.state = { activeKey };\n }\n\n static propTypes = {\n chartConfig: PropTypes.shape(ConfigType).isRequired,\n loadedData: PropTypes.arrayOf(PropTypes.shape(DataType)).isRequired,\n update: PropTypes.func.isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(UsedDataType)).isRequired,\n };\n\n componentDidUpdate(prevProps) {\n const updateActiveKeys = [];\n const removeActiveKeys = [];\n const activeStatus = getActiveStatus(this.props);\n const prevActiveStatus = getActiveStatus(prevProps);\n if (!prevActiveStatus.isActiveUsedData && activeStatus.isActiveUsedData) {\n updateActiveKeys.push(\"usedData\");\n }\n if (prevActiveStatus.isActiveUsedData && !activeStatus.isActiveUsedData) {\n removeActiveKeys.push(\"usedData\");\n }\n if (\n !prevActiveStatus.isActiveChartConfig &&\n activeStatus.isActiveChartConfig\n ) {\n updateActiveKeys.push(\"chartConfig\");\n }\n if (\n prevActiveStatus.isActiveChartConfig &&\n !activeStatus.isActiveChartConfig\n ) {\n removeActiveKeys.push(\"chartConfig\");\n }\n if (updateActiveKeys.length + removeActiveKeys.length > 0) {\n const result = union([...this.state.activeKey], updateActiveKeys);\n this.setState({\n activeKey: filter(result, e => !removeActiveKeys.includes(e))\n });\n }\n }\n\n changeActiveKey = newActiveKey => {\n this.setState({\n activeKey: newActiveKey,\n });\n };\n\n update = (key, newValue) => {\n this.setState({\n [key]: newValue,\n });\n };\n\n containsDataSource = (dataSource, loadedData) => {\n const [id, measurement] = extractEntry(dataSource);\n const fid = loadedData.findIndex(data => data.id === id);\n if(fid === -1) return false;\n return loadedData[fid].fields.measurements.includes(measurement);\n }\n\n updateLoadedData = newValue => {\n const filteredOld = filter(this.props.usedData,\n used => this.containsDataSource(used.dataSource, newValue));\n const allNew = newValue.reduce((prev, loaded) =>\n [...prev, ...generateDataSourcesSet(loaded)], []);\n const toAdd = filter(allNew,\n path => !filteredOld.find(({dataSource}) => path.dataSource === dataSource));\n const colorPallete = nextColorsPallete(filteredOld);\n const newUsedData = [...filteredOld, ...toAdd.map(\n ({dataSource, description}, idx) => getUsedData({\n dataSource,\n description,\n colorPallete,\n yAxises: this.props.chartConfig.yAxises,\n }, idx))];\n const canLegend = newUsedData.filter(e => e.show).length < DisableLegendAlert;\n if(!canLegend && this.props.chartConfig.settings) {\n message.warning('Ze względu na dużą liczbę danych ukryta została legenda. Można ją przywrócić w \"Konfiguracji ogólnej wykresu\"');\n }\n this.props.update({\n chartConfig: {\n ...this.props.chartConfig,\n settings: {\n ...this.props.chartConfig.settings,\n showLegend: this.props.chartConfig.settings && canLegend,\n },\n },\n loadedData: newValue,\n usedData: sortBy(newUsedData, ['dataSource']),\n });\n } \n\n updateUsedData = newValue => this.props.update({\n usedData: newValue,\n });\n\n updateChartConfig = newValue => this.props.update({\n chartConfig: newValue,\n });\n\n render() {\n const { loadedData, usedData, chartConfig, now } = this.props;\n const { isActiveUsedData, isActiveChartConfig } = getActiveStatus(\n this.props,\n );\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default ChartSetup;\n\nconst StyledChartSetup = styled.div`\n & .ant-collapse-header {\n font-size: 1rem;\n }\n`;\n","import { filter, isNil } from \"lodash\";\n\nconst getAllDataFromKey = (data, key) =>\n filter(data, e => !isNil(e[key])).map(item => item[key]);\n\nexport const filterDataByKeys = (data, keys = []) =>\n filter(data, e => keys.reduce((prev, k) => prev && !isNil(e[k]), true));\n\nexport const dataFromAxis = (data, usedData, axis, maxMin, minMax) =>\n filter(usedData, e => e.axis === axis).reduce(\n (prev, used) => [...prev, ...getAllDataFromKey(data, used.dataSource)],\n [...(maxMin ? [maxMin] : []), ...(minMax ? [minMax] : [])],\n );\n\nexport const dataFromLimits = (limits = [], axis) =>\n filter(limits, e=> e.axis === axis).map(({value}) => value);\n\nexport const dataFromAreas = (areas = [], axis) =>\n filter(areas, e=> e.axis === axis).reduce((prev, {from, to}) => [...prev, from, to], []);\n\nexport const hasLeftAxis = (yAxises) =>\nyAxises.reduce((prev, {side}) => prev || side === \"left\", false);\n\nexport const hasRightAxis = (yAxises) =>\nyAxises.reduce((prev, {side}) => prev || side === \"right\", false);\n\nexport const dataFromXAxis = (data, xKey) => getAllDataFromKey(data, xKey);\n\nexport const isDataFunction = (data, xKey, yKey) => {\n let y = null;\n let x = null;\n for (let i = 0; i < data.length; i += 1) {\n if (data[i][xKey] && data[i][yKey]) {\n if (data[i][xKey] === x && data[i][yKey] !== y) {\n return false;\n }\n x = data[i][xKey];\n y = data[i][yKey];\n }\n }\n return true;\n };\n\n const TIME = \"time\";\n\n export const isTimeChart = xKey => xKey === TIME;\n","import { range } from \"lodash\";\nimport moment from \"moment\";\nimport { filterDataByKeys } from \"./filters\";\n\nconst AUTO = \"auto\";\n\n// TODO - blad, gdy dane na osi są stałe\n// TODO - blad, gdy withTime + za mało jest danych na wymaganą liczbę ticków\n\nconst autoRanges = [\n {\n limit: 2,\n span: 0.5,\n },\n {\n limit: 4,\n span: 1,\n },\n {\n limit: 7.5,\n span: 2,\n },\n {\n limit: 10,\n span: 2.5,\n },\n];\nconst minPower = -1;\nconst maxTickNumber = 16;\n\nconst calculatePower = ({ min, max }) => {\n const scope = max - min;\n const logRange = Math.max(Math.floor(Math.log10(scope)), minPower);\n return 10**logRange;\n};\n\nconst calculateSpan = ({ min, max }) => {\n const power = calculatePower({ min, max });\n const digit = (max - min) / power;\n let i = 0;\n while (digit > autoRanges[i].limit && i + 1 < autoRanges.length) {\n i += 1;\n }\n return power * autoRanges[i].span;\n};\n\nconst minTick = ({ min }, span) => span * Math.floor(min / span);\nconst maxTick = ({ max }, span) => span * Math.ceil(max / span);\nconst minValue = minTick;\nconst maxValue = maxTick;\n\nconst formatRange = (scope, auto) =>\n scope === AUTO ? auto : Number.parseFloat(scope);\n\nconst getRangeFromData = values => ({\n min: Math.min(...values.filter(e => e !== undefined)),\n max: Math.max(...values.filter(e => e !== undefined)),\n});\n\nconst getTicks = ({ min, max }, span) => range(min, max + span / 2, span);\n\nexport const dateTicks = (data, { datesNumber, withTime }) => {\n if(data.length === 0) return {};\n const { min, max } = getRangeFromData(data);\n const start = moment.unix(min / 1000);\n const end = moment.unix(max / 1000);\n const duration = moment.duration(end.diff(start));\n const periods = withTime ? duration.asHours() : duration.asDays();\n const number = Math.min(periods, datesNumber - 1);\n if(Number.isNaN(number)) return {};\n if(number <= 0) return {};\n const span = Math.floor(periods / number);\n const result = [];\n const iter = moment(start);\n while (!iter.isAfter(end)) {\n result.push(iter.format(\"x\"));\n iter.add(span, withTime ? \"hours\" : \"day\");\n }\n return {\n domainMin: min,\n domainMax: max,\n ticks: result,\n };\n};\n\nconst normalizeInput = (input) => {\n if(input !== 'auto' && Number.isNaN(parseFloat(input))) {\n return 'auto';\n }\n return input;\n}\n\nexport const chartRangesFromConfig = (\n data,\n { rangeFrom, rangeTo, rangeSpan },\n) => {\n let autoRangeSpan = normalizeInput(rangeSpan);\n const autoRangeFrom = normalizeInput(rangeFrom);\n const autoRangeTo = normalizeInput(rangeTo);\n if(data.length === 0) return {};\n const { min, max } = getRangeFromData(data);\n let from = formatRange(autoRangeFrom, min);\n let to = formatRange(autoRangeTo, max);\n if( to < from) {\n const mem = from;\n from = to;\n to = mem;\n }\n let scope = {\n min: from,\n max: to,\n };\n if(rangeSpan !== 'auto' && (\n (rangeSpan <= 0) ||\n (rangeSpan * (maxTickNumber - 1) <= (to - from))\n )) {\n autoRangeSpan = 'auto';\n }\n const span = formatRange(autoRangeSpan, calculateSpan(scope));\n if(Number.isNaN(span)) return {};\n if(span <= 0) return {}\n if(to - from < span) {\n to += span;\n from -= span;\n scope = {\n min: from,\n max: to,\n };\n }\n return {\n domainMin: minValue(scope, span),\n domainMax: maxValue(scope, span),\n ticks: getTicks(\n {\n min: minTick(scope, span),\n max: maxTick(scope, span),\n },\n span,\n ),\n };\n};\n\nconst regresionData = (data, xKey, yKey) => {\n const n = data.length;\n let { sx, sy } = data.reduce(\n (prev, d) => ({\n sx: prev.sx + d[xKey],\n sy: prev.sy + d[yKey],\n }),\n {\n sx: 0,\n sy: 0,\n },\n );\n sx /= n;\n sy /= n;\n return {\n sx,\n sy,\n ...data.reduce(\n ({ rx2, ry2, rxy }, d) => ({\n rx2: rx2 + (d[xKey] - sx) * (d[xKey] - sx),\n ry2: ry2 + (d[yKey] - sy) * (d[yKey] - sy),\n rxy: rxy + (d[xKey] - sx) * (d[yKey] - sy),\n }),\n {\n rx2: 0,\n ry2: 0,\n rxy: 0,\n },\n ),\n };\n};\n\nexport const regresion = (data, xKey, yKey) => {\n if(data.length < 2) return {a: 0, b: 0, R2: 0};\n const { sx, sy, rx2, ry2, rxy } = regresionData(data, xKey, yKey);\n const a = rxy / rx2;\n if(Number.isNaN(a)) return {a: 0, b: 0, R2: 0};\n const b = sy - a * sx;\n const ss = data.reduce(\n (prev, d) => prev + (a * d[xKey] + b - sy) * (a * d[xKey] + b - sy),\n 0,\n );\n return {\n a,\n b,\n R2: ss / ry2,\n };\n};\n\nexport const generateRegresionKey = path => `REG_${path}`;\n\n// TODO dodanie Object.assign\nexport const addRegresionValues = (data, usedData, xKey, {domainMin, domainMax}) => {\n let nData = [...data];\n if(Number.isNaN(domainMax) || Number.isNaN(domainMin)) return nData;\n usedData\n .filter(e => e.showRegresion)\n .forEach(used => {\n const { dataSource } = used;\n const dataSet = filterDataByKeys(data, [dataSource, xKey]);\n used.regresion = regresion(dataSet, xKey, dataSource);\n const { a, b } = used.regresion;\n const regKey = generateRegresionKey(dataSource);\n nData = [\n {\n [xKey]: domainMin,\n [regKey]: a * domainMin + b,\n },\n ...nData,\n {\n [xKey]: domainMax,\n [regKey]: a * domainMax + b,\n },\n ];\n });\n return nData;\n};\n","import React, { Fragment } from \"react\";\nimport { filter } from \"lodash\";\nimport styled from 'styled-components';\n\nimport MathParser from \"../MathParser\";\nimport { isTimeChart } from \"./utils/filters\";\nimport { formatDate, formatDateTime, isFilledString } from \"../../utils/formaters\";\n\nexport default ({ usedData, xAxis, ranges }) => {\n const { xKey, withTime } = xAxis;\n const isTime = isTimeChart(xKey);\n const calculate = filter(usedData, e => e.showRegresion).map(\n ({ regresion, ...rest }) => {\n const { a, b } = regresion;\n let nb = b;\n const domainMin = ranges.domainMin || 0;\n let begin = 0;\n if (isTime) {\n nb += a * domainMin;\n begin = domainMin;\n }\n return {\n ...rest,\n regresion: {\n ...regresion,\n b: nb,\n begin,\n },\n };\n },\n );\n const msInHour = 1000 * 60 * 60;\n return calculate.length > 0 ? (\n \n {calculate.map(({ description, regresion, unit, dataSource }) => (\n \n \n <MathParser>\n {description}\n </MathParser>\n \n \n {isTime\n ? `( ${(\n regresion.a * (withTime ? msInHour : msInHour * 24)\n ).toExponential(4)} ) · czas + ${regresion.b.toFixed(2)}`\n : `${regresion.a.toExponential(4)} · x + ${regresion.b.toFixed(2)}`}\n \n {isTime &&\n \n \n {`Początek x=0 dla ${((formatter) => formatter(regresion.begin))(withTime ? formatDateTime : formatDate)}`}\n \n \n \n {`Jednostka przyrostu ${formatUnit(xAxis.unit, unit, isTime, withTime)}`}\n \n \n }\n \n {`R^2 ${regresion.R2.toFixed(4)}`}\n \n \n ))}\n \n ) : null;\n };\n\n const formatUnit = (unit, yUnit, isTime, withTime) => \n ((topUnit, lowerUnit, timeUnit) => `${topUnit}/${isTime ? timeUnit : lowerUnit}`)(\n isFilledString(yUnit) ? yUnit : \"1\",\n isFilledString(unit) ? unit : \"1\",\n withTime ? \"godzinę\" : \"dzień\",\n );\n\nexport const StyledRegresionSummary = styled.div`\n font-size: 0.9em;\n padding: 4px;\n`;\n\nconst RegresionValue = styled.div`\n & + & {\n margin-top: 4px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 0.8em;\n font-weight: bold;\n margin-bottom: 4px;\n`;\n\nconst Value = styled.div``;\n","import React, { PureComponent } from \"react\";\nimport { XAxis } from \"recharts\";\nimport styled from 'styled-components';\n// imports\nimport MathParser from \"../MathParser\";\nimport { formatDate, formatHour } from \"../../utils/formaters\";\n\nconst defaultPadding = {\n left: 0,\n right: 10,\n};\n\nexport const DefaultAxis = ({\n dataKey,\n color,\n showDescription,\n description,\n ...props\n}) => (\n \n : undefined\n }\n {...props}\n />\n)\n\nexport const CustomTimeAxis = ({\n description,\n dataKey,\n showDescription,\n color,\n withTime,\n datesNumber,\n ranges,\n hasLeft = true,\n hasRight = false,\n tickFormatter,\n ...props\n }) => (\n }\n interval={0}\n dataKey={dataKey}\n type=\"number\"\n stroke={color}\n height={xAxisHeight(showDescription, withTime)}\n domain={[\"dataMin\", \"dataMax\"]}\n ticks={ranges.ticks}\n {...(!ranges.ticks && {tick: false})}\n label={\n showDescription\n ? \n : undefined\n }\n {...props}\n />\n );\n \nconst defaultTickFormatter = tick => parseFloat(tick.toFixed(2));\n\n export default ({\n description,\n dataKey,\n ranges,\n showDescription,\n color,\n unit,\n tickFormatter,\n ...props\n }) => (\n \n : undefined\n }\n {...props}\n />\n );\n\n const CustomXLabel = ({ description, unit, color, ...props }) => {\n const { x, y, height, width } = props.viewBox;\n const customHeight = 20;\n const ny = y + height - customHeight;\n return (\n \n \n \n \n \n {`${description}${unit ? ` [${unit}]` : ''}`}\n \n \n \n \n \n );\n };\n\nconst calculateMiss = (value, {padding, ranges, width, hasLeft, hasRight}) => {\n const tickMaxHalf = 42;\n const {ticks, domainMax, domainMin } = ranges;\n if(Number.isNaN(domainMax) || Number.isNaN(domainMin) ||\n domainMax === undefined || domainMin === undefined ||\n !ticks || ticks.length === 0) return 0;\n if(value === ticks[0] && !hasLeft) {\n const left = (padding && padding.left) || 0;\n const position = width * (value - domainMin) / (domainMax - domainMin);\n return Math.max(0, tickMaxHalf - left - position);\n }\n if(value === ticks[ticks.length - 1] && !hasRight) {\n const right = (padding && padding.right) || 0;\n const position = width * (domainMax - value) / (domainMax - domainMin);\n return - Math.max(0, tickMaxHalf - right - position);\n }\n return 0;\n}\n\n class CustomizedTimeTick extends PureComponent {\n render() {\n const { x, y, textAnchor, payload, withTime, color, tickFormatter } = this.props;\n const {value} = payload;\n const miss = calculateMiss(value, this.props);\n const nx = x + miss;\n const dataFormatter = tickFormatter || formatDate;\n return (\n \n \n {dataFormatter(value)}\n \n {withTime && (\n \n {formatHour(value)}\n \n )}\n \n );\n }\n }\n \nconst xAxisHeight = (showDescription, withTime) =>\n 30 + (showDescription ? 18 : 0) + (withTime ? 14 : 0);\n\n const StyledLabel = styled.div`\n text-align: center;\n height: 100%;\n width: 100%;\n font-size: 13px;\n @media (max-width: 1600px) {\n font-size: 12px;\n }\n @media (max-width: 1440px) {\n font-size: 11px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n }\n @media print {\n font-size: 16px !important;\n }\n `;\n\n const StyledLabelInner = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n `;\n\n const StyledLabelTransform = styled.div`\n transform: translateX(-50%) translateY(-50%);\n white-space: nowrap;\n `;\n","import React from \"react\";\nimport { YAxis } from \"recharts\";\nimport styled from 'styled-components';\n// imports\nimport { chartRangesFromConfig } from \"./utils/calculate\";\nimport MathParser from \"../MathParser\";\n\nexport default ({\n description,\n showDescription,\n dataSpread,\n id,\n color,\n showAxis,\n side,\n unit,\n rangeFrom,\n rangeTo,\n rangeSpan,\n ...props\n }) => {\n const { domainMin, domainMax, ticks } = chartRangesFromConfig(dataSpread, {\n rangeFrom,\n rangeTo,\n rangeSpan,\n });\n return (\n parseFloat(tick.toFixed(2))}\n label={\n showDescription\n ? \n : undefined\n }\n {...props}\n />\n );\n };\n\n const CustomYLabel = ({ description, side, unit, color, ...props }) => {\n const { x, y, height, width } = props.viewBox;\n const customWidth = 20;\n const nx = side === \"right\" ? x + width - customWidth : x;\n return (\n \n \n \n \n \n {`${description}${unit ? ` [${unit}]` : ''}`}\n \n \n \n \n \n );\n };\n\nconst calculateAxisWidth = (showDescription, ticks = []) =>\n ticks.reduce(\n (prev, tick) => Math.max(prev, tick.toString().length),\n 0) * 7 + (showDescription ? 15 : 0) + 20;\n\n\nconst StyledLabel = styled.div`\n text-align: center;\n height: 100%;\n width: 100%;\n font-size: 13px;\n @media (max-width: 1600px) {\n font-size: 12px;\n }\n @media (max-width: 1440px) {\n font-size: 11px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n }\n @media print {\n font-size: 16px !important;\n }\n`;\n\nconst StyledLabelInner = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n`;\n\nconst StyledLabelInnerRotate = styled.div`\n transform: translateX(-50%) translateY(-50%) rotate(-90.1deg);\n white-space: nowrap;\n`;\n","import React, { Fragment } from \"react\";\nimport styled from 'styled-components';\nimport { filter, sortBy } from \"lodash\";\nimport MathParser from \"../MathParser\";\nimport { isTimeChart } from \"./utils/filters\";\nimport {formatDate, formatHour, formatNumber} from \"../../utils/formaters\";\n\nexport default ({\n active,\n payload,\n label,\n xAxis,\n withTime,\n forceDateTooltip,\n xFormatter,\n yFormatter,\n }) => {\n const { xKey, description, unit } = xAxis;\n const simpleFormatter = (value) => value;\n const defaultTimeFormatter = (value) => `${formatDate(value)}${withTime ? ` ${formatHour(value)}` : \"\"}`\n const mainFormatter = xFormatter || (isTimeChart(xKey) ? defaultTimeFormatter : simpleFormatter);\n const dataFormatter = yFormatter || (value => formatNumber(value, {position: -2, addSpace: true}));\n const sorted = sortBy(filter(payload, e => !e.dataKey.startsWith(\"REG_\")), [(e) => (-e.payload[e.dataKey])]);\n const forcedDate = forceDateTooltip && payload && payload[0] && payload[0].payload && payload[0].payload.time;\n if (active) {\n return (\n \n {forcedDate && (\n \n {defaultTimeFormatter(forcedDate)}\n \n )}\n {!forcedDate && (isTimeChart(xKey) ? (\n \n {mainFormatter(label)}\n \n ) :\n (\n \n {`${description} ${mainFormatter(label)} ${unit || \"\"}`}\n \n ))}\n \n {forcedDate && (\n \n \n {description}\n \n \n {`${mainFormatter(label)} ${unit || \"\"}`}\n \n \n )}\n {sorted.map((e) => (\n \n \n {e.name}\n \n \n {`${dataFormatter(e.payload[e.dataKey])} ${e.unit}`}\n \n \n ))}\n
\n
\n );\n }\n return null;\n };\n \nexport const PieTooltip = ({\n active,\n payload,\n dataFormatter = (e) => e,\n}) => {\n if (active) {\n return (\n \n {payload.map(e => (\n \n \n {e.payload.description}\n \n \n \n \n {`${dataFormatter(e.value)} ${e.payload.unit}`}\n \n \n
\n
\n ))}\n
\n );\n }\n return null;\n};\n\n const StyledTooltip = styled.div`\n background: white;\n border: solid 1px #d4d4d4;\n border-radius: 4px;\n padding: 8px 8px 16px 8px;\n min-width: 120px;\n display: table;\n box-shadow: 0 0 8px rgba(40, 40, 40, 0.3);\n font-size: 14px;\n @media (max-width: 1600px) {\n font-size: 13px;\n }\n @media (max-width: 1440px) {\n font-size: 11px;\n padding: 4px 4px 8px 4px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n }\n `;\n\n const Table = styled.div`\n display: table;\n `;\n \n const MainLabel = styled.div`\n font-weight: bold;\n `;\n \n const Property = styled.div`\n display: table-row;\n ${({color}) => color ? `color: ${color}` : ''};\n `;\n \n const Feature = styled.div`\n display: table-cell;\n padding-right: 8px;\n `;\n \n const FeatureValue = styled.div`\n display: table-cell;\n text-align: right;\n `;","import React from 'react';\nimport styled from 'styled-components';\nimport { Legend } from 'recharts';\n\nimport MathParser from '../MathParser';\n\nexport default () => {value} }\n verticalAlign=\"bottom\"\n/>\n\nconst LegendTick = styled.div`\n display: inline;\n ${({color}) => color ? `color: ${color};` : ''}\n`;\n","import React from 'react';\nimport {Label, ReferenceLine} from 'recharts';\n\nexport default ({\n description,\n axis,\n dashSpacing,\n dashLength,\n lineColor,\n lineWidth,\n value,\n ...props\n }) => (\n \n \n \n );\n","import styled from 'styled-components';\nimport { StyledRegresionSummary } from './RegresionSummary';\n\nexport const StyledChart = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n .recharts-cartesian-axis-tick {\n font-size: 13px;\n @media (max-width: 1600px) {\n font-size: 12px;\n }\n @media (max-width: 1440px) {\n font-size: 11px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n }\n @media print {\n font-size: 16px !important;\n }\n }\n .recharts-tooltip-wrapper {\n z-index: 100;\n }\n ${StyledRegresionSummary} {\n display: ${({showRegression}) => showRegression ? 'block' : 'none'};\n }\n &:hover {\n ${StyledRegresionSummary} {\n display: block;\n }\n }\n`;\n\nconst calculateHeight = ({showTitle, legendItems}, size) =>\n (v => v > 0 ? `calc(100% - ${v}px)` : '100%')((showTitle ? 40 : 0) + ((legendItems || 0) * size));\n\nexport const Container = styled.div`\n width: 100%;\n height: ${({showTitle, legendItems}) => calculateHeight({showTitle, legendItems}, 16)}\n`;\n\nexport const ChartTitle = styled.div`\n height: 40px;\n text-align: center;\n font-size: 1.5em;\n font-weight: bold;\n padding-bottom: 4px;\n`;\n\nexport const RegresionContainer = styled.div`\n position: absolute;\n ${({regresionPosition}) => regresionPosition === \"left\"\n ? `left: 80px;\n text-align: left;`\n : `right: 16px;\n text-align: right;`}\n bottom: 80px;\n background: white;\n max-width: 208px;\n`;\n","import React from 'react';\nimport {\n CartesianGrid,\n Line,\n LineChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis\n} from 'recharts';\nimport PropTypes from 'prop-types';\nimport { filter, find } from 'lodash';\n\nimport {\n addRegresionValues,\n chartRangesFromConfig,\n dateTicks,\n generateRegresionKey\n} from './utils/calculate';\nimport {\n dataFromXAxis,\n dataFromAxis,\n dataFromLimits,\n dataFromAreas,\n hasLeftAxis,\n hasRightAxis,\n isTimeChart\n} from './utils/filters';\nimport { chartConfigType, usedDataType } from './utils/chartTypes';\nimport RegresionSummary from './RegresionSummary';\nimport CustomXAxis, { CustomTimeAxis } from './CustomXAxis';\nimport CustomYAxis from './CustomYAxis';\nimport CustomTooltip from './CustomTooltip';\nimport CustomLegend from './CustomLegend';\nimport CustomArea from './CustomArea';\nimport CustomLimit from './CustomLimit';\nimport {\n StyledChart,\n Container,\n ChartTitle,\n RegresionContainer,\n} from './Common';\nimport MathParser from '../MathParser';\n\nexport default Object.assign(\n ({ usedData, data, chartConfig, ...props }) => {\n // console.log('passed to chart');\n // console.log({ usedData, data, chartConfig, ...props });\n const { xAxis, settings, yAxises, limits, areas } = chartConfig;\n const {\n showTitle,\n title,\n stopAnimation,\n stopInteractive,\n forceDateTooltip,\n horizontalGrid,\n verticalGrid,\n showLegend,\n xFormatter,\n yFormatter,\n regresionPosition,\n showRegression,\n } = settings;\n const xAxisRanges = xAxis.useDefault\n ? {\n domainMin: 'dataMin',\n domainMax: 'dataMax'\n }\n : (axisFun => axisFun(dataFromXAxis(data, xAxis.xKey), xAxis))(\n isTimeChart(xAxis.xKey) ? dateTicks : chartRangesFromConfig\n );\n const dataWithReg = addRegresionValues(\n data,\n usedData,\n xAxis.xKey,\n xAxisRanges\n );\n const xAxisChoice = () => {\n if (xAxis.useDefault) return ({ ...prop }) => ;\n return isTimeChart(xAxis.xKey) ? CustomTimeAxis : CustomXAxis;\n };\n\n return (\n \n {showTitle && (\n \n {title}\n \n )}\n \n \n \n {!stopInteractive && (\n \n }\n />\n )}\n {showLegend && CustomLegend()}\n {areas &&\n areas.map((area, id) => CustomArea({ ...area, key: id }))}\n \n {verticalGrid &&\n xAxisRanges.ticks &&\n xAxisRanges.ticks.map(x => (\n \n ))}\n {limits &&\n limits.map((limit, id) => CustomLimit({ ...limit, key: id }))}\n {filter(usedData, e => e.showRegresion).map(\n ({ id, dataSource, ...used }) =>\n CustomLine({\n yAxises,\n ...used,\n dataSource: generateRegresionKey(dataSource),\n lineId: id,\n key: `regresionLine-${id}`,\n dotted: false,\n legendType: 'none',\n ...(stopAnimation && { isAnimationActive: false }),\n ...regresionSettings\n })\n )}\n {usedData.map(({ id, dotted, dataSource, ...used }) =>\n CustomLine({\n yAxises,\n ...used,\n dataSource,\n dotted: isTimeChart(xAxis.xKey) ? dotted : true,\n lineId: id,\n key: `usedData-${id}`,\n ...(stopAnimation && { isAnimationActive: false })\n })\n )}\n {(axisComp =>\n axisComp({\n ...xAxis,\n dataKey: xAxis.xKey,\n hasLeft: hasLeftAxis(yAxises),\n hasRight: hasRightAxis(yAxises),\n ranges: xAxisRanges,\n ...(xFormatter && { tickFormatter: xFormatter }),\n ...(stopAnimation && { isAnimationActive: false })\n }))(xAxisChoice())}\n {// WONTFIX recharts ma problem z przeciazaniem komponentow\n yAxises.map(yAxis =>\n CustomYAxis({\n ...yAxis,\n key: `yAxis-${yAxis.id}`,\n dataSpread: [\n ...dataFromAxis(data, usedData, yAxis.id, yAxis.maxMin, yAxis.minMax),\n ...dataFromLimits(limits, yAxis.id),\n ...dataFromAreas(areas, yAxis.id)\n ],\n ...(yFormatter && { tickFormatter: yFormatter })\n })\n )}\n \n \n \n {(!stopInteractive || showRegression) && (\n \n )}\n \n );\n },\n {\n propTypes: {\n chartConfig: PropTypes.shape(chartConfigType).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(usedDataType)).isRequired,\n data: PropTypes.arrayOf(PropTypes.any)\n }\n }\n);\n\nconst regresionSettings = {\n activeDot: false,\n lineWidth: 1,\n dashed: true,\n dashSpacing: 5,\n dashLength: 5\n};\n\nconst CustomLine = ({\n yAxises,\n description,\n showDescription,\n lineId,\n axis,\n dotted,\n dashed,\n dashSpacing,\n dashLength,\n dataSource,\n lineColor,\n lineWidth,\n unit,\n ...props\n}) => (\n (e && e.unit) || unit)(find(yAxises, e => e.id === axis))}\n name={description}\n lineId={lineId}\n strokeDasharray={dashed ? `${dashLength} ${dashSpacing}` : undefined}\n strokeWidth={dotted ? 0 : lineWidth}\n stroke={lineColor}\n dot={dotted ? { stroke: lineColor, strokeWidth: lineWidth } : false}\n dataKey={dataSource}\n yAxisId={axis}\n {...props}\n />\n);\n","import React from 'react';\nimport { ReferenceArea } from 'recharts';\n\nexport default ({\n axis,\n color,\n opacity,\n from,\n to,\n ...props\n}) =>\n\n","import React, { Fragment } from 'react';\nimport styled from 'styled-components';\n\nimport { Button, Empty } from 'antd';\nimport { getDisableReason, NOT_LOADED_DATA_REASONS } from './ChartSetup/utils/constants';\n\nexport default ({loadedData, usedData, config, isOverflow, accept}) => {\n const status = usedData.map(({show, dataSource}) => {\n const disableReason = getDisableReason(\n dataSource,\n loadedData,\n config.xAxis.xKey,\n );\n return {\n show,\n noAxisData: disableReason === NOT_LOADED_DATA_REASONS.NOAXISDATA,\n asKey: disableReason === NOT_LOADED_DATA_REASONS.AXISKEY,\n canShow: disableReason === null,\n };\n });\n const canShowData = status.find(e => e.canShow);\n const onlyXkey = status.reduce((prev, e) => prev && e.asKey, true);\n let description = null;\n if (isOverflow) {\n description = (\n Duża ilość danych wyświetlanych na wykresie.\n Pokazywania wykresu może spowolić działanie przeglądarki oraz mogą wystąpić niepłynne animacje.\n \n \n \n );\n }\n else if (usedData.length === 0) {\n description = (\n W tym miejscu pojawi się wykres.\n Pobierz dane do wyświetlenia w sekcji Pobranie danych\n );\n }\n else if(canShowData) {\n description = (\n Aby pokazać dane, zmień ich wyświetlanie za pomocą suwaka.\n Konfiguracja wyświetlania ma miejsce w sekcji Załadowane dane\n );\n }\n else if(onlyXkey) {\n description = (\n Pobrane zostały tylko dane odkładane na osi X.\n Aby pobrać dane do wyświetlenia na innych osiach, pobierz inne dany w sekcji Pobranie danych \n lub zmień dane z osi odniesienia na zakres czasowy w sekcji Konfiguracja wykresu - Oś pozioma (odniesienia).\n );\n }\n else {\n description = (\n Pobrane dane nie mają odpowiadających im danych na osi X.\n Wybór danych odkładanych na osi X można zmienić w sekcji Konfiguracja wykresu - Oś pozioma (odniesienia).\n );\n }\n\n return ();\n}\n\nconst NoChartReason = styled(Empty)`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`;\n\nconst StyledDescription = ({children}) =>\n \n {React.Children.map(children, (child, id) => (\n \n {child}\n {id + 1 < React.Children.count(children) &&
}\n
\n ))}\n
\n\nconst Tip = styled.span`\n font-size: 1rem;\n & + & {\n margin-top: 8px;\n }\n`;\n","import React from 'react';\n\nimport { Button, Modal } from 'antd';\n\nexport default ({visible, onLoad, onCancel, ...props}) =>\n (\n Powrót\n ,\n ,\n ,\n ]}\n {...props}\n >\n {`Dane ukryte na wykresie, lecz pobrane z bazy danych, mogą zostać ujęte w wygenerowanym pliku.`}\n );\n","import React, { useState, useContext, Fragment } from 'react';\nimport { isNil, sortBy } from 'lodash';\nimport XLSX from 'xlsx';\n\nimport { Button, message } from 'antd';\n\nimport { AppContext } from '../../../AppDataProvider';\nimport ConfirmExcel from './ConfirmExcel';\n\nconst prepareKeys = (loadFalse, usedData) => [\n {\n key: 'time',\n description: 'Data',\n },\n ...usedData.filter(({show}) => loadFalse || show)\n .map(({dataSource, fields}) => ({\n key: dataSource,\n description: fields.description,\n })),\n];\n\nconst mergeData = (loadedData) => loadedData.reduce((result, {id, data}) => [\n ...result,\n ...data.map(({time, ...rest}) => Object.keys(rest).reduce((obj, key) => ({\n ...obj,\n [`${id}-${key}`]: rest[key],\n }), { time })),\n], []);\n\nconst makeDataArray = (sorted, keys) => {\n const check = keys.map(({key}) => key);\n return sorted.map(d => check.map(key =>isNil(d[key]) ? null : d[key]));\n}\n\nconst prepareData = async (loadFalse, usedData, loadedData) => {\n return new Promise((resolve) => {\n const keys = prepareKeys(loadFalse, usedData);\n const mergedData = mergeData(loadedData);\n const sorted = sortBy(mergedData, 'time');\n const final = [];\n let value = null;\n for (let i = 0; i < sorted.length; i += 1) {\n if (sorted[i].time === value) {\n const last = final.pop();\n final.push({ ...last, ...sorted[i] });\n } else {\n final.push(sorted[i]);\n }\n value = sorted[i].time;\n }\n const formatted = makeDataArray(final, keys).map(([time, ...rest]) => [new Date(time), ...rest]);\n resolve([\n keys.map(({description}) => description),\n ...formatted]);\n });\n}\n\nexport default ({loadedData = [], usedData = [], disabled}) => {\n const {\n startAsyncTask,\n finishAsyncTask,\n } = useContext(AppContext);\n const [askExcel, setAskExcel] = useState(false);\n const onLoadAttemp = () => {\n if(usedData.some(e => !e.show)) {\n setAskExcel(true);\n }\n else {\n onLoad(false);\n }\n }\n\n const onLoad = async (loadFalse) => {\n startAsyncTask();\n try {\n const data = await prepareData(loadFalse, usedData, loadedData);\n const ws = XLSX.utils.aoa_to_sheet(data, {cellDates: true});\n const wb = XLSX.utils.book_new();\n wb.Props = {\n Title: \"Dane pobrane z KAPE Monitor\",\n Author: \"KAPE Monitor\",\n Company: \"Krajowa Agencja Poszanowania Energii\",\n CreatedDate: new Date(),\n }\n XLSX.utils.book_append_sheet(wb, ws, \"Pobrane dane\");\n XLSX.writeFile(wb, \"kapemonitor.xlsx\")\n }\n catch(e) {\n message.error('Generacja pliku .xlsx nie powiodła się.')\n }\n finishAsyncTask();\n }\n\n\n return (\n \n \n Pobierz dane\n \n setAskExcel(false)}\n onLoad={(should) => {\n onLoad(should);\n setAskExcel(false);\n }}\n />\n );\n}\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport { filter, sortBy, isNil } from 'lodash';\nimport moment from 'moment';\n\nimport ChartSetup from './ChartSetup';\nimport LineChart from '../../../../components/Charts/LineChart';\n\nimport { defaultChartConfig } from './ChartSetup/utils/defaults';\nimport { getDisableReason, extractEntry } from './ChartSetup/utils/constants';\nimport NoChartReason from './NoChartReason';\nimport { getMeasurementUnit } from '../../components/MeasurementsPicker';\nimport DownloadChart from '../../components/DownloadChart';\n\nconst OverflowDataCount = 15;\n\n// Ujednolica zaczytywane dane dodając prefix id\n// oraz wyrównując xKey do neutralnego\nconst updateKeys = (obj, key, xKey) => {\n const nKeys = Object.keys(obj).reduce(\n (prev, k) => ({\n ...prev,\n [k]: `${key}-${k}`\n }),\n {}\n );\n return Object.keys(nKeys).reduce(\n (prev, k) => ({\n ...prev,\n [nKeys[k]]: obj[k]\n }),\n {\n [xKey]: obj[xKey]\n }\n );\n};\n\n// Filtruje zmergowane dane po użytych kluczach\nconst filterLoadedData = (loadedData, usedData, xKey) => {\n const usedKeys = usedData.reduce((prev, { id }) => [...prev, id], [xKey]);\n return filter(\n loadedData.map(value =>\n filter(Object.keys(value), k => usedKeys.includes(k)).reduce(\n (prev, k) => ({\n ...prev,\n [k]: value[k]\n }),\n {}\n )\n ),\n set =>\n !isNil(set[xKey]) &&\n (ks => ks.length > 1 && ks.includes(xKey))(Object.keys(set))\n );\n};\n\n// Merguje załadowane dane, przy xKey != czas wykonuje zsumowanie do jednego pola\nconst mergeData = (loadedData, xKey) => {\n const merged = loadedData.reduce(\n (array, { id, data }) => [\n ...array,\n ...data.map(d => updateKeys(d, id, xKey))\n ],\n []\n );\n const sorted = sortBy(merged, xKey);\n if (xKey !== 'time') {\n return sorted;\n }\n const final = [];\n let value = null;\n for (let i = 0; i < sorted.length; i += 1) {\n if (sorted[i][xKey] === value) {\n const last = final.pop();\n final.push({ ...last, ...sorted[i] });\n } else {\n final.push(sorted[i]);\n }\n value = sorted[i][xKey];\n }\n return final;\n};\n\n// TODO element funkcyjny\nclass ChartCreate extends Component {\n constructor(props) {\n super(props);\n this.state = {\n loadedData: [],\n usedData: [],\n chartConfig: Object.assign({}, defaultChartConfig),\n now: moment(),\n acceptOverflow: false,\n };\n }\n\n update = newValue => {\n this.setState({\n ...newValue,\n });\n };\n\n mapSetupToChart = ({ loadedData, usedData, chartConfig }) => {\n const xAxisMapper = {\n common: ['color', 'description', 'showDescription', 'xKey'],\n time: ['datesNumber', 'withTime'],\n other: ['rangeFrom', 'rangeTo', 'rangeSpan', 'unit']\n };\n const type = chartConfig.xAxis.xKey === 'time' ? 'time' : 'other';\n const _chartConfig = {\n settings: {\n ...chartConfig.settings\n },\n xAxis: filter(Object.keys(chartConfig.xAxis), e =>\n [...xAxisMapper.common, ...xAxisMapper[type]].includes(e)\n ).reduce((prev, key) => ({ ...prev, [key]: chartConfig.xAxis[key] }), {}),\n yAxises: chartConfig.yAxises.map(({ id, fields }) => ({\n ...fields,\n id\n }))\n };\n const _usedData = filter(usedData, ({ show, dataSource }) => {\n if (!show) return false;\n return !getDisableReason(dataSource, loadedData, _chartConfig.xAxis.xKey);\n }).map(({ dataSource, fields }) => ({\n id: dataSource,\n dataSource,\n unit: getMeasurementUnit(extractEntry(dataSource)[1]),\n ...fields\n }));\n const _data = mergeData(loadedData, _chartConfig.xAxis.xKey);\n return {\n chartConfig: _chartConfig,\n usedData: _usedData,\n data: filterLoadedData(_data, _usedData, _chartConfig.xAxis.xKey)\n };\n };\n\n render() {\n const mapSetupResult = this.mapSetupToChart(this.state);\n const isOverflow = mapSetupResult.usedData.length >= OverflowDataCount && !this.state.acceptOverflow;\n return (\n \n \n \n \n \n \n \n {(mapSetupResult.usedData.length > 0 &&\n mapSetupResult.data.length > 0 && \n !isOverflow)? (\n \n ) : (\n this.update({acceptOverflow: true})}\n />\n )}\n \n \n \n 0 && mapSetupResult.data.length > 0)}\n />\n \n \n \n );\n }\n}\n\nexport default ChartCreate;\n\nconst SetupMenu = styled.div`\n height: calc(100vh - 56px);\n min-height: 664px;\n overflow-y: auto;\n flex: 0 0 464px;\n padding: 16px;\n padding-right: 0;\n @media (max-width: 1600px) {\n flex: 0 0 424px;\n }\n @media (max-width: 1440px) {\n flex: 0 0 384px;\n }\n`;\n\nconst StyledChartCreate = styled.div`\n display: flex;\n`;\n\nconst ChartPresentation = styled.div`\n padding: 16px;\n flex: 1;\n`;\n\nconst ChartContainer = styled.div`\n box-sizing: border-box;\n border: 1px solid #e8e8e8;\n background: #F8F8F8;\n width: 100%;\n padding-top: 56.25%;\n position: relative;\n`;\n\nconst ChartPlacement = styled.div`\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n padding: 16px;\n`;\n\nconst ChartDowloadContainer = styled.div`\n margin-top: 16px;\n text-align: center;\n`;\n","import ChartCreate from './ChartCreate';\n\nexport default ChartCreate;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport ChartCreate from './scenes/ChartCreate';\n\nexport default () => {\n return (\n \n \n \n );\n}\n\nconst Analysis = styled.div`\n background: #EEF1F1;\n height: 100%;\n flex: 1;\n`;\n","import Analysis from './Analysis';\n\nexport default Analysis;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Card, Icon } from \"antd\";\n\nexport default ({label, value, unit, loading, ...props}) => (\n\n\n \n \n {loading ?\n \n :\n value\n }\n \n {unit && }\n\n);\n\nconst CardValue = styled.div`\n text-align: center;\n`;\n\nconst Label = styled.div`\n font-size: 0.9em;\n @media (max-width: 1600px) {\n font-size: 0.85em;\n }\n @media (max-width: 1440px) {\n font-size: 0.75em;\n }\n`;\n\nconst Value = styled.div`\n font-weight: bold;\n font-size: 1.2em;\n @media (max-width: 1600px) {\n font-size: 1.1em;\n }\n @media (max-width: 1440px) {\n font-size: 0.95em;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport MathParser from '../../../components/MathParser';\nimport {formatMoney, formatNumber } from '../../../utils/formaters';\nimport CardValue from './CardValue';\n\nexport default ({data, loading}) => {\n const getValue = ({key, value}) => loading || value || data[key];\n const getData = ({key, value, valueFormatter}) =>\n ((v) => valueFormatter ? (valueFormatter(v)) : v)(getValue({key, value}));\n const shouldHide = ({key, value, hide}) =>\n ((v) => (hide && hide(v)))(getValue({key, value}));\n\n return (\n \n {\n loading ?\n elements.map(element =>\n \n {element.formatter({\n loading,\n label: element.label,\n unit: element.unit,\n })}\n ,\n )\n :\n elements.map(element =>\n !shouldHide(element) ?\n (\n {element.formatter({\n value: getData(element),\n label: element.label,\n unit: element.unit,\n })}\n ) : null,\n )\n }\n \n );\n};\n\nconst renderElement = ({value, label, unit, ...props}) =>\n \n\nconst elements = [\n {\n key: \"heatUsage\",\n label: \"Zużycie ciepła\",\n unit: 'kWh',\n valueFormatter: (value) => (`${formatNumber(value || 0, {position: 2})}`),\n formatter: renderElement,\n },\n {\n key: \"electricityUsage\",\n label: \"Zużycie energii elektrycznej\",\n unit: 'kWh',\n valueFormatter: (value) => (`${formatNumber(value || 0, {position: 2})}`),\n formatter: renderElement,\n },\n {\n key: \"carbDioxEmission\",\n label: Emisja CO_2,\n unit: 'ton',\n valueFormatter: (value) => (`${formatNumber(value || 0)}`),\n formatter: renderElement,\n },\n {\n key: \"renewableEnergySourcesProduction\",\n label: \"Produkcja z OZE\",\n unit: 'kWh',\n valueFormatter: (value) => (`${formatNumber(value || 0, 1)}`),\n formatter: renderElement,\n },\n {\n key: \"renewableEnergySourcesSavings\",\n label: \"Oszczędności z OZE\",\n unit: \"PLN\",\n valueFormatter: (value) => (`${formatMoney(value || 0)}`),\n formatter: renderElement,\n },\n];\n\nconst BuildingData = styled.div`\n padding: 8px;\n`;\n\nconst MyRow = styled.div`\n & + & {\n margin-top: 16px;\n @media (max-height: 800px) {\n margin-top: 8px;\n }\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { isNil } from 'lodash';\n\nimport Loading from '../../../components/Loading';\nimport MathParser from '../../../components/MathParser';\nimport { formatNumber } from '../../../utils/formaters';\n\nexport default ({ data = {}, loading }) => {\n const {\n minValue = 0,\n usageInSelectedBuilding: value,\n avgUsageInUsersBuilings: avg,\n } = data;\n const factor = value / (2 * avg);\n const offset = `${Math.max(Math.min(factor, 1), 0) * 100}%`;\n\n return (\n \n \n {(loading || isNil(value) || isNil(value)) ? (\n \n ) : (\n \n \n \n
{formatNumber(value, {position: -1})}
\n \n
\n
\n \n \n
{formatNumber(minValue, {position: 0})}
\n
{formatNumber(2 * avg, {position: 0})}
\n
\n \n <MathParser>\n Jednostkowy wskaźnik zużycia energii [kWh/m^2/rok]\n </MathParser>\n \n
\n )}\n
\n
\n );\n};\n\nconst CompareUsageContainer = styled.div`\n position: relative;\n`;\n\nconst IndicatorContainer = styled.div`\n position: relative;\n padding: 0 0 3px;\n height: 36px;\n width: 100%;\n @media (max-width: 1600px) {\n height: 34px;\n }\n @media (max-width: 1440px) {\n height: 32px;\n }\n @media (max-width: 1366px) {\n height: 30px;\n }\n`;\n\nconst Indicator = styled.div`\n position: absolute;\n left: ${p => p.offset};\n top: 0;\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n font-weight: bold;\n transform: translateX(-50%);\n font-size: 14px;\n @media (max-width: 1600px) {\n font-size: 13px;\n }\n @media (max-width: 1440px) {\n font-size: 12px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n }\n`;\n\nconst Arrow = styled.div`\n background: #333;\n clip-path: polygon(0 0, 100% 0, 50% 100%);\n width: 10px;\n height: 14px;\n @media (max-width: 1600px) {\n height: 13px;\n }\n @media (max-width: 1440px) {\n height: 12px;\n width: 9px;\n }\n @media (max-width: 1366px) {\n height: 10px;\n width: 8px;\n }\n`;\n\nconst GradientBar = styled.div`\n height: 15px;\n width: 100%;\n background: linear-gradient(to right, hsl(120,60%,50%) 0%, hsl(110.2,63.64%,50.46%) 10%, hsl(100.33,67.27%,50.93%) 20%, hsl(90.49,70.9%,51.39%) 30%, hsl(80.65,74.55%,51.85%) 40%, hsl(70.81,78.18%,52.32%) 50%, hsl(60.98,81.82%,52.78%) 60%, hsl(51.14,85.45%,53.24%) 70%, hsl(41.3,89.1%,53.71%) 80%, hsl(31.46,92.73%,54.17%) 90%, hsl(21.63,96.36%,54.63%) 100%);\n`;\n\nconst LabelsContainer = styled.div`\n display: flex;\n justify-content: space-between;\n font-size: 12px;\n`;\n\nconst Title = styled.div`\n text-align: center;\n font-weight: bold;\n font-size: 14px;\n line-height: 16px;\n @media (max-width: 1600px) {\n font-size: 13px;\n line-height: 15px;\n }\n @media (max-width: 1440px) {\n font-size: 12px;\n line-height: 14px;\n }\n @media (max-width: 1366px) {\n font-size: 10px;\n line-height: 12px;\n }\n`;\n\nconst InnerContent = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n padding: 4px;\n`;\n\nconst Container = styled.div`\n border: 1px solid #e8e8e8;\n box-sizing: border-box;\n position: relative;\n padding-top: calc(50% - 2px);\n background: #F8F8F8;\n margin-top: 8px;\n @media (max-width: 1440px) {\n padding-top: calc(50% + 4px);\n }\n @media (max-height: 800px) {\n margin-bottom: 4px;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\n\nimport { Icon } from 'antd';\n\n\nexport default ({data = {}, loading}) =>\n \n Wskazania od
\n {loading ?\n \n :\n moment(data.firstReadingDate).format('YYYY-MM-DD')}\n
\n\nconst TimeSection = styled.div`\n margin-top: 24px;\n margin-bottom: 8px;\n @media (max-height: 800px) {\n margin-top: 12px;\n margin-bottom: 4px;\n }\n text-align: center;\n font-size: 1rem;\n @media (max-width: 1600px) {\n font-size: 0.9em;\n }\n @media (max-width: 1440px) {\n font-size: 0.8em;\n }\n font-weight: bold;\n`;\n","import React, { Component } from 'react';\n\nconst initialDashboardState = {\n buildings: [],\n currentBuildingId: null,\n currentTime: 'week',\n};\n\nconst DashboardContext = React.createContext({});\n\nconst getBuildingPosition = (id, buildings) => buildings.findIndex(e => e.id === id);\n\nclass DashboardDataProvider extends Component {\n set = field => value => this.setState(() => ({ [field]: value }));\n\n getBuilding = (id) => this.state.buildings.find(e => e.id === id);\n\n currentBuilding = () =>\n this.state.currentBuildingId !== null ?\n this.getBuilding(this.state.currentBuildingId)\n :\n {\n finished: {},\n }\n\n getCurrentTime = () => this.state.currentTime;\n\n setBuildings = (buildings, id) => this.setState(() => ({\n buildings: buildings.map(building => ({...building, finished: {}})),\n currentBuildingId: id,\n }));\n\n setCurrentTime = this.set('currentTime');\n\n setCurrentBuilding = this.set('currentBuildingId');\n\n startFetching = (id, key) => {\n this.setState(({buildings}) => {\n const idx = getBuildingPosition(id, buildings);\n const finished = {\n ...buildings[idx].finished,\n [key]: false,\n };\n const nbuildings = [...buildings];\n nbuildings[idx] = {\n ...buildings[idx],\n finished,\n };\n return ({\n buildings: nbuildings,\n })\n });\n }\n\n endFetching = (id, value, key) => {\n this.setState(({buildings}) => {\n const idx = getBuildingPosition(id, buildings);\n const finished = {\n ...buildings[idx].finished,\n [key]: true,\n };\n const nbuildings = [...buildings];\n nbuildings[idx] = {\n ...buildings[idx],\n finished,\n [key]: value,\n };\n return ({\n buildings: nbuildings,\n })\n });\n }\n\n startFetchingData = (id) => this.startFetching(id, 'data');\n \n endFetchingData = (id, value) =>\n this.endFetching(id, value, 'data');\n\n startFetchingTime = (id, timeKey) => this.startFetching(id, timeKey);\n \n endFetchingTime = (id, value, time) =>\n this.endFetching(id, value, time);\n\n depricateData = (keys) => {\n this.setState(({buildings}) => {\n const nbuildings = buildings.map(\n building => {\n const nb = {...building};\n const finished = {...building.finished};\n keys.forEach(key => {\n delete nb[key];\n delete finished[key];\n });\n return {...nb, finished};\n });\n return ({\n buildings: nbuildings,\n })\n });\n }\n\n depricateHourData = () => this.depricateData(['data', 'day', 'week']);\n\n depricateDailyData = () => this.depricateData(['month', 'year']);\n\n state = {\n ...initialDashboardState,\n currentBuilding: this.currentBuilding,\n getBuilding: this.getBuilding,\n getCurrentTime: this.getCurrentTime,\n setBuildings: this.setBuildings,\n setCurrentTime: this.setCurrentTime,\n setCurrentBuilding: this.setCurrentBuilding,\n // Pobierane danych\n startFetchingData: this.startFetchingData,\n endFetchingData: this.endFetchingData,\n startFetchingTime: this.startFetchingTime,\n endFetchingTime: this.endFetchingTime,\n // Czyszczenie danych na potrzeby odświeżania\n depricateDailyData: this.depricateDailyData,\n depricateHourData: this.depricateHourData,\n };\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport { DashboardContext };\nexport default DashboardDataProvider;\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\n\nimport AnnualData from '../components/AnnualData';\nimport EnergyUseCompare from '../components/EnergyUseCompare';\nimport TimeSection from '../components/TimeSection';\n\nimport { DashboardContext } from '../DashboardDataProvider';\n\nexport default () => {\n const { currentBuilding } = useContext(DashboardContext);\n const building = currentBuilding();\n const fetchingData = !building.finished.data;\n return (\n \n \n \n \n \n );\n};\n\nconst BuildingDetails = styled.div`\n width: 272px;\n padding: 0 16px;\n @media (max-width: 1600px) {\n width: 236px;\n padding: 0 12px;\n }\n @media (max-width: 1440px) {\n width: 200px;\n padding: 0 8px;\n }\n`;\n","import React from \"react\";\nimport {\n CartesianGrid,\n Area,\n AreaChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n} from \"recharts\";\nimport PropTypes from \"prop-types\";\nimport { find } from \"lodash\";\n\nimport {\n chartRangesFromConfig,\n dateTicks,\n} from \"./utils/calculate\";\nimport {\n dataFromXAxis,\n dataFromAxis,\n hasLeftAxis,\n hasRightAxis,\n isTimeChart,\n} from \"./utils/filters\";\nimport {\n chartConfigType,\n usedDataType,\n} from \"./utils/chartTypes\";\nimport CustomXAxis, { CustomTimeAxis } from \"./CustomXAxis\";\nimport CustomYAxis from \"./CustomYAxis\";\nimport CustomTooltip from \"./CustomTooltip\";\nimport CustomLegend from \"./CustomLegend\";\nimport { StyledChart, Container, ChartTitle } from './Common';\nimport MathParser from \"../MathParser\";\n\nexport default Object.assign(\n ({ usedData, data, chartConfig, ...props }) => {\n const { xAxis, settings, yAxises } = chartConfig;\n const {\n showTitle,\n title,\n stopAnimation,\n stopInteractive,\n horizontalGrid,\n verticalGrid,\n showLegend,\n xFormatter,\n yFormatter,\n stackData = true,\n } = settings;\n const xAxisRanges = xAxis.useDefault\n ? {\n domainMin: 'dataMin',\n domainMax: 'dataMax',\n }\n : (axisFun =>\n axisFun(dataFromXAxis(data, xAxis.xKey), xAxis))(\n isTimeChart(xAxis.xKey) ? dateTicks : chartRangesFromConfig,\n );\n const xAxisChoice = () => {\n if(xAxis.useDefault) return ({...prop}) => ;\n return isTimeChart(xAxis.xKey) ? CustomTimeAxis : CustomXAxis\n }\n \n return (\n \n {showTitle && (\n {title}\n )}\n \n \n \n {!stopInteractive && (\n \n }\n />\n )}\n {showLegend && (\n CustomLegend()\n )}\n \n {verticalGrid &&\n xAxisRanges.ticks &&\n xAxisRanges.ticks.map((x) => (\n \n ))}\n {usedData.map(({ id, dotted, dataSource, ...used }) =>\n CustomArea({\n yAxises,\n ...used,\n dataSource,\n areaId: id,\n stackData,\n key: `usedData-${id}`,\n ...(stopAnimation && {isAnimationActive: false}),\n }),\n )}\n {(axisComp =>\n axisComp({\n ...xAxis,\n dataKey: xAxis.xKey,\n hasLeft: hasLeftAxis(yAxises),\n hasRight: hasRightAxis(yAxises),\n ranges: xAxisRanges,\n ...(xFormatter && {tickFormatter: xFormatter}),\n ...(stopAnimation && {isAnimationActive: false}),\n }))(xAxisChoice())\n }\n {// WONTFIX recharts ma problem z przeciazaniem komponentow\n yAxises.map(yAxis =>\n CustomYAxis({\n ...yAxis,\n key: `yAxis-${yAxis.id}`,\n dataSpread: dataFromAxis(data, usedData, yAxis.id, yAxis.maxMin, yAxis.minMax),\n ...(yFormatter && {tickFormatter: yFormatter}),\n }),\n )}\n \n \n \n \n );\n },\n {\n propTypes: {\n chartConfig: PropTypes.shape(chartConfigType).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(usedDataType)).isRequired,\n data: PropTypes.arrayOf(PropTypes.any),\n },\n });\n\nconst CustomArea = ({\n yAxises,\n description,\n areaId,\n axis,\n dataSource,\n lineColor,\n lineWidth,\n unit,\n stackData,\n ...props\n}) => (\n (e && e.unit) || unit)(find(yAxises, e => e.id === axis))}\n name={description}\n id={areaId}\n stackId={stackData ? \"1\" : undefined}\n stroke={lineColor}\n fill={lineColor}\n dot={false}\n dataKey={dataSource}\n yAxisId={axis}\n {...props}\n />\n );\n","import React from \"react\";\nimport {\n BarChart,\n Bar,\n CartesianGrid,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n} from \"recharts\";\nimport { find } from \"lodash\";\nimport styled from \"styled-components\";\nimport PropTypes from \"prop-types\";\n\nimport {\n chartRangesFromConfig,\n dateTicks,\n} from \"./utils/calculate\";\nimport {\n dataFromXAxis,\n dataFromAxis,\n dataFromLimits,\n hasLeftAxis,\n hasRightAxis,\n isTimeChart,\n} from \"./utils/filters\";\nimport {\n chartConfigType,\n usedDataType,\n} from \"./utils/chartTypes\";\nimport CustomXAxis, { CustomTimeAxis, DefaultAxis } from \"./CustomXAxis\";\nimport CustomYAxis from \"./CustomYAxis\";\nimport CustomTooltip from \"./CustomTooltip\";\nimport CustomLegend from \"./CustomLegend\";\nimport CustomLimit from \"./CustomLimit\";\nimport { StyledChart, Container, ChartTitle} from './Common';\nimport MathParser from \"../MathParser\";\n\n\nexport default Object.assign(\n ({ usedData, data, chartConfig, extra }) => {\n const { xAxis, settings, yAxises, limits } = chartConfig;\n const {\n showTitle,\n title,\n stopAnimation,\n stopInteractive,\n showLegend,\n horizontalGrid,\n verticalGrid,\n xFormatter,\n yFormatter,\n } = settings;\n const xAxisRanges = xAxis.useDefault\n ? {\n domainMin: 'dataMin',\n domainMax: 'dataMax',\n }\n : (axisFun =>\n axisFun(dataFromXAxis(data, xAxis.xKey), xAxis))(\n isTimeChart(xAxis.xKey) ? dateTicks : chartRangesFromConfig,\n );\n const xAxisChoice = () => {\n if(xAxis.useDefault) return DefaultAxis;\n return isTimeChart(xAxis.xKey) ? CustomTimeAxis : CustomXAxis;\n }\n return (\n \n {showTitle && (\n {title}\n )}\n \n \n \n {!stopInteractive && (\n \n }\n />\n )}\n {showLegend && (\n CustomLegend()\n )}\n \n {verticalGrid &&\n xAxisRanges.ticks &&\n xAxisRanges.ticks.map((x) => (\n \n ))}\n {usedData.map(({ id, ...used }) =>\n CustomBar({\n yAxises,\n ...used,\n lineId: id,\n key: `usedData-${id}`,\n ...(stopAnimation && {isAnimationActive: false}),\n }),\n )}\n {limits && limits.map(\n (limit, id) => CustomLimit({ isFront: true, ...limit, key: id}),\n )}\n {(axisComp =>\n axisComp({\n ...xAxis,\n dataKey: xAxis.xKey,\n hasLeft: hasLeftAxis(yAxises),\n hasRight: hasRightAxis(yAxises),\n ranges: xAxisRanges,\n ...(xFormatter && {tickFormatter: xFormatter}),\n ...(stopAnimation && {isAnimationActive: false}),\n // dodanie paddingu dla extra\n padding: {right: 10, left: 10},\n ...(extra && {padding: {right: 100}}),\n }))(xAxisChoice())\n }\n {yAxises.map(yAxis =>\n CustomYAxis({\n ...yAxis,\n key: `yAxis-${yAxis.id}`,\n dataSpread: [\n ...dataFromAxis(data, usedData, yAxis.id, yAxis.maxMin, yAxis.minMax),\n ...dataFromLimits(limits, yAxis.id),\n ],\n ...(yFormatter && {tickFormatter: yFormatter}),\n }),\n )}\n \n \n {extra && \n {extra}\n }\n \n \n )\n },\n {\n propTypes: {\n chartConfig: PropTypes.shape(chartConfigType).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(usedDataType)).isRequired,\n data: PropTypes.arrayOf(PropTypes.any),\n },\n },\n)\n\nconst CustomBar = ({\n yAxises,\n description,\n showDescription,\n lineId,\n axis,\n dotted,\n dashed,\n dashSpacing,\n dashLength,\n dataSource,\n lineColor,\n lineWidth,\n unit,\n ...props\n}) => (\n (e && e.unit) || unit)(find(yAxises, e => e.id === axis))}\n name={description}\n lineId={lineId}\n fill={lineColor}\n dataKey={dataSource}\n yAxisId={axis}\n maxBarSize={50}\n {...props}\n />\n );\n\nconst Extra = styled.div`\n position: absolute;\n right: 0;\n bottom: 50%;\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport PropTypes from \"prop-types\";\nimport { sortBy } from \"lodash\";\nimport {\n Cell,\n Label,\n Pie,\n PieChart,\n ResponsiveContainer,\n Tooltip,\n} from \"recharts\";\n\nimport { Container, ChartTitle } from \"./Common\";\nimport { PieTooltip } from \"./CustomTooltip\";\nimport MathParser from '../MathParser';\n\nconst RADIAN = Math.PI / 180;\n \nconst customLabel = ({ cx, cy, midAngle, outerRadius, fill, payload, percent, value }) => {\n const sin = Math.sin(-RADIAN * midAngle);\n const cos = Math.cos(-RADIAN * midAngle);\n const sx = cx + (outerRadius + 6) * cos;\n const sy = cy + (outerRadius + 6) * sin;\n const mx = cx + (outerRadius + 20) * cos;\n const my = cy + (outerRadius + 20) * sin;\n const ex = mx + (cos >= 0 ? 1 : -1) * 14;\n const ey = my;\n const textAnchor = cos >= 0 ? 'start' : 'end';\n\n return (\n \n \n \n = 0 ? 1 : -1) * 12} y={ey} textAnchor={textAnchor} fill=\"#333\">{payload.shortcut}\n = 0 ? 1 : -1) * 12} y={ey} dy={18} textAnchor={textAnchor} fill=\"#999\">\n {`(${(percent * 100).toFixed(1)}%)`}\n \n \n );\n};\n\nconst CustomInner = ({viewBox, innerContent, innerRadius}) => {\n const percentage = parseInt(innerRadius, 10);\n const R = Math.min(viewBox.cx, viewBox.cy) * percentage / 100;\n return (\n \n \n \n \n {innerContent}\n \n \n \n \n );\n}\n \n\nconst FullDiv = styled.div`\nposition: relative;\nheight: 100%;\nwidth: 100%;\nborder-radius: 50%;\n`;\n\nconst InnerDiv = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n transform: translate(-50%, -50%);\n`;\n\nconst getColor = ({color, key, value}, idx, colorMapper) =>\n colorMapper\n ? colorMapper({key, value, color, idx})\n : color;\n\nconst prepareData = ({data, descriptionMapper, shortcutMapper, showEmpty, descriptionKey, ...rest}) => {\n const sum = data.reduce((s, {value}) => s + value, 0);\n return sortBy(\n data.filter(({value}) => !showEmpty || value).map(\n e => ({\n ...e,\n description: descriptionMapper ? descriptionMapper(e[descriptionKey]) : e[descriptionKey],\n shortcut: shortcutMapper ? shortcutMapper(e[descriptionKey]) : e[descriptionKey],\n percentage: sum > 0 ? e.value / sum : 0,\n ...rest,\n })),\n [e => -e.value],\n );\n}\n\nexport default Object.assign(\n({\n data,\n unit,\n showEmpty,\n showLabel = true,\n showLegend,\n showTitle,\n title,\n descriptionMapper,\n shortcutMapper,\n showTooltip,\n colorMapper,\n innerContent,\n innerRadius = \"32%\",\n outerRadius = \"48%\",\n descriptionKey = \"key\",\n dataFormatter,\n ...props\n}) => {\n const nData = prepareData({\n data,\n descriptionMapper,\n shortcutMapper,\n showEmpty,\n unit,\n descriptionKey,\n });\n return (\n \n {showTitle && (\n \n {title}\n \n )}\n \n \n \n {showTooltip &&\n \n }\n />}\n \n {\n nData.map((e, idx) => )\n }\n {\n innerContent &&\n \n \n \n {showLegend && (\n \n )}\n);\n},\n{\n propTypes: {\n data: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n color: PropTypes.string,\n })),\n },\n},\n)\n\nconst StyledPieChart = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n .recharts-layer {\n font-size: 14px;\n @media (max-width: 1600px) {\n font-size: 13px;\n }\n @media (max-width: 1440px) {\n font-size: 12px;\n }\n @media (max-width: 1366px) {\n font-size: 11px;\n }\n }\n`;\n\nconst CustomPieLegend = ({data, colorMapper}) => (\n \n \n {data.map((e, idx) => (\n {`${e.description} - (${(e.percentage * 100).toFixed(1)}%)`}))}\n \n \n)\n\nconst LegendItem = styled.div`\n &:before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n position: relative;\n background: ${({color}) => color};\n margin-right: 16px;\n width: 12px;\n height: 12px;\n border-radius: 6px;\n }\n\n & + & {\n @media (max-width: 1440px) {\n margin-top: 4px;\n }\n }\n`;\n\nconst StyledLegend = styled.div`\n font-size: 12px;\n line-height: 12px;\n @media (max-width: 1440px) {\n font-size: 11px;\n line-height: 11px;\n }\n display: flex;\n`;\n\nconst LegendWrapper = styled.div`\n margin: auto;\n`;\n","import React from \"react\";\nimport {\n CartesianGrid,\n Label,\n ReferenceDot,\n ReferenceLine,\n ResponsiveContainer,\n ScatterChart,\n Tooltip,\n XAxis,\n} from \"recharts\";\nimport PropTypes from \"prop-types\";\n\nimport {\n chartRangesFromConfig,\n dateTicks,\n} from \"./utils/calculate\";\nimport {\n dataFromXAxis,\n dataFromAxis,\n hasLeftAxis,\n hasRightAxis,\n isTimeChart,\n} from \"./utils/filters\";\nimport {\n chartConfigType,\n usedDataType,\n} from \"./utils/chartTypes\";\nimport CustomXAxis, { CustomTimeAxis } from \"./CustomXAxis\";\nimport CustomYAxis from \"./CustomYAxis\";\nimport CustomTooltip from \"./CustomTooltip\";\nimport CustomLegend from \"./CustomLegend\";\nimport { StyledChart, Container, ChartTitle } from './Common';\nimport MathParser from \"../MathParser\";\n\nexport default Object.assign(\n ({ usedData, data, chartConfig, ...props }) => {\n const { xAxis, settings, yAxises } = chartConfig;\n const {\n showTitle,\n title,\n stopInteractive,\n horizontalGrid,\n verticalGrid,\n showLegend,\n xFormatter,\n yFormatter,\n } = settings;\n const xAxisRanges = xAxis.useDefault\n ? {\n domainMin: 'dataMin',\n domainMax: 'dataMax',\n }\n : (axisFun =>\n axisFun(dataFromXAxis(data, xAxis.xKey), xAxis))(\n isTimeChart(xAxis.xKey) ? dateTicks : chartRangesFromConfig,\n );\n const xAxisChoice = () => {\n if(xAxis.useDefault) return ({...prop}) => ;\n return isTimeChart(xAxis.xKey) ? CustomTimeAxis : CustomXAxis\n }\n \n return (\n \n {showTitle && (\n {title}\n )}\n \n \n \n {!stopInteractive && (\n \n }\n />\n )}\n {showLegend && (\n CustomLegend()\n )}\n \n {verticalGrid &&\n xAxisRanges.ticks &&\n xAxisRanges.ticks.map((x) => (\n \n ))}\n {usedData.map(({ id, dataSource, descriptionId, showDescription, radius, ...used }) =>\n data.map((d, idx) => d[dataSource] ?\n CustomDot({\n ...used,\n x: d[xAxis.xKey],\n y: d[dataSource],\n r: radius,\n showDescription,\n description: d[descriptionId],\n key: `usedData-${id}-${idx}`,\n })\n : null))}\n {(axisComp =>\n axisComp({\n ...xAxis,\n dataKey: xAxis.xKey,\n hasLeft: hasLeftAxis(yAxises),\n hasRight: hasRightAxis(yAxises),\n ranges: xAxisRanges,\n ...(xFormatter && {tickFormatter: xFormatter}),\n }))(xAxisChoice())\n }\n {// WONTFIX recharts ma problem z przeciazaniem komponentow\n yAxises.map(yAxis =>\n CustomYAxis({\n ...yAxis,\n key: `yAxis-${yAxis.id}`,\n dataSpread: dataFromAxis(data, usedData, yAxis.id, yAxis.maxMin, yAxis.minMax),\n ...(yFormatter && {tickFormatter: yFormatter}),\n }),\n )}\n \n \n \n \n );\n },\n {\n propTypes: {\n chartConfig: PropTypes.shape(chartConfigType).isRequired,\n usedData: PropTypes.arrayOf(PropTypes.shape(usedDataType)).isRequired,\n data: PropTypes.arrayOf(PropTypes.any),\n },\n });\n\nconst CustomDot = ({\n x,\n y,\n r,\n description,\n descriptionPosition = \"bottom\",\n showDescription,\n axis,\n lineColor,\n lineWidth,\n ...props\n}) => (\n \n {showDescription ? () : null}\n \n );\n","import React from 'react';\n\nimport AreaChart from './Charts/AreaChart';\nimport BarChart from './Charts/BarChart';\nimport LineChart from './Charts/LineChart';\nimport PieChart from './Charts/PieChart';\nimport ScatteredChart from './Charts/ScatteredChart';\n\n\nexport const CHART_TYPES = Object.freeze({\n AREA_CHART: 'area-chart',\n LINE_CHART: 'line-chart',\n BAR_CHART: 'bar-chart',\n PIE_CHART: 'pie-chart',\n SCATTERED_CHART: 'scattered-chart',\n});\n\nexport default ({chartType, ...rest}) => (Chart => Chart ? : null)(\n {\n [CHART_TYPES.AREA_CHART]: AreaChart,\n [CHART_TYPES.BAR_CHART]: BarChart,\n [CHART_TYPES.LINE_CHART]: LineChart,\n [CHART_TYPES.PIE_CHART]: PieChart,\n [CHART_TYPES.SCATTERED_CHART]: ScatteredChart,\n }[chartType]);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Card } from 'antd';\nimport Loading from '../../../components/Loading';\nimport MathParser from '../../../components/MathParser';\n\nexport default ({ children, loading, title, spread, hide }) =>\n \n {title}}\n bodyStyle={{ height: 'calc(100% - 40px)', padding: '0 12px 12px' }}\n headStyle={{ textAlign: 'center', border: 'none' }}\n spread={spread ? 1 : 0}\n >\n {!hide && (loading\n ? \n : children)}\n \n \n\nconst StyledTitle = styled.span`\n font-size: 14px;\n @media (max-width: 1600px) {\n font-size: 13px;\n }\n @media (max-width: 1440px) {\n font-size: 12px;\n }\n @media (max-width: 1366px) {\n font-size: 11px;\n }\n`;\n\nconst ChartCard = styled.div`\n padding: 8px;\n height: 100%;\n margin: 0;\n`;\n\nconst StyledCard = styled(Card)`\n background: #F8F8F8 !important;\n width: ${({spread}) => `calc((100vw - 448px) / ${spread ? 2 : 3} - 16px)`};\n min-width: 285px;\n height: calc((100vh - 136px) / 2 - 24px);\n min-height: 276px;\n &.ant-card {\n transition: none;\n }\n @media (max-height: 800px) {\n height: calc((100vh - 120px) / 2 - 24px);\n }\n @media (max-width: 1600px) {\n width: ${({spread}) => `calc((100vw - 412px) / ${spread ? 2 : 3} - 16px)`};\n }\n @media (max-width: 1440px) {\n width: ${({spread}) => `calc((100vw - 376px) / ${spread ? 2 : 3} - 16px)`};\n }\n`;\n","import { formatNumber } from '../../../../utils/formaters';\nimport { multiChartLineColors } from '../../../../components/ColorSelect';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\n\nexport const dayConfig = {\n heatPowerConsumption: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: '0',\n lineWidth: 2,\n lineColor: '#C9776B',\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Pobór mocy cieplnej',\n showDescription: true,\n unit: 'kW',\n rangeFrom: '0',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: '0',\n description: 'Pobór mocy cieplnej',\n dataSource: 'heatPower',\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: '#0E4194',\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: 'kW',\n },\n ],\n }),\n electricityPowerConsumption: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: '0',\n lineWidth: 2,\n lineColor: '#C9776B',\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Pobór mocy elekt.',\n showDescription: true,\n unit: 'kW',\n rangeFrom: '0',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: '0',\n description: 'Pobór mocy elektrycznej',\n dataSource: 'electricityPower',\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: '#0E4194',\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: 'kW',\n },\n ],\n }),\n OZEPowerProduction: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: '0',\n lineWidth: 2,\n lineColor: '#C9776B',\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Moc elekt. z OZE',\n showDescription: true,\n unit: 'kW',\n rangeFrom: '0',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: '0',\n description: 'Produkcja energii elektrycznej z OZE',\n dataSource: 'OZEPower',\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: '#0E4194',\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: 'kW',\n },\n ],\n }),\n temperatures: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Temperatura',\n showDescription: true,\n unit: '^oC',\n rangeFrom: 'auto',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: settings.measurements.map(({ dataSource, description }, id) => ({\n id: id.toString(),\n description,\n dataSource,\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: multiChartLineColors[id % multiChartLineColors.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: '^oC',\n })),\n }),\n co2: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n limits: [\n {\n description: null,\n axis: '0',\n lineWidth: 2,\n lineColor: '#C9776B',\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit || 1000,\n },\n ],\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Stężenie CO_2',\n showDescription: true,\n unit: 'ppm',\n rangeFrom: '0',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n minMax: 1500,\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: settings.measurements.map(({ dataSource, description }, id) => ({\n id: id.toString(),\n description,\n dataSource,\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: multiChartLineColors[id % multiChartLineColors.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: 'ppm',\n })),\n }),\n humidity: ({ settings }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n areas: [\n {\n axis: '0',\n color: '#03cca7',\n opacity: 1,\n from: settings.limitMin || 40,\n to: settings.limitMax || 60,\n },\n ],\n xAxis: {\n xKey: 'time',\n description: 'Czas',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: 'Wilgotność względna',\n showDescription: true,\n unit: '%',\n rangeFrom: '0',\n rangeTo: '100',\n rangeSpan: '20',\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: settings.measurements.map(({ dataSource, description }, id) => ({\n id: id.toString(),\n description,\n dataSource,\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: multiChartLineColors[id % multiChartLineColors.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: '%',\n })),\n }),\n};\n","import moment from 'moment';\n\nimport { formatNumber } from '../../../../utils/formaters';\nimport { multiChartLineColors } from '../../../../components/ColorSelect';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\n\nconst barProps = {\n minTickGap: 15,\n interval: \"preserveStart\",\n};\n\nexport const weekConfig = {\n heatPowerConsumption: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C9776B\",\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Pobór mocy cieplnej\",\n showDescription: true,\n unit: \"kW\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Pobór mocy cieplnej\",\n dataSource: \"heatPower\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#0E4194\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kW\",\n },\n ],\n }),\n electricityPowerConsumption: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C9776B\",\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Pobór mocy elekt.\",\n showDescription: true,\n unit: \"kW\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Pobór mocy elektrycznej\",\n dataSource: \"electricityPower\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#0E4194\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kW\",\n },\n ],\n }),\n totalConsumption: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"YYYY-MM-DD\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: false,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Dzienne zużycie energii elektrycznej\",\n dataSource: \"dailyElectricityConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: '#10C8CA',\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n {\n id: \"1\",\n description: \"Dzienne zużycie ciepła\",\n dataSource: \"dailyHeatConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: '#4462ba',\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n temperatures: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Temperatura\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: settings.measurements.map(\n ({dataSource, description}, id) => ({\n id: id.toString(),\n description,\n dataSource,\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: multiChartLineColors[id % multiChartLineColors.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"^oC\",\n }),\n ),\n }),\n co2: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n limits: [\n {\n description: null,\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C9776B\",\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit || 1000,\n },\n ],\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Stężenie CO_2\",\n showDescription: true,\n unit: \"ppm\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n minMax: 1500,\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: settings.measurements.map(\n ({dataSource, description}, id) => ({\n id: id.toString(),\n description,\n dataSource,\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: multiChartLineColors[id % multiChartLineColors.length].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"ppm\",\n }),\n ),\n }),\n OZEProduction: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"YYYY-MM-DD\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: false,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Produkcja energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Produkcja energii elektrycznej z OZE\",\n dataSource: \"dailyOZEProduction\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#2490be\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n}\n","const energyUsageAreas = Object.freeze({\n mainCooling: {\n description: 'Główne chłodzenie',\n shortcut: 'Chłodz.',\n color: '#03cca7',\n },\n mainVentilation: {\n description: 'Główna wentylacja',\n shortcut: 'Went.',\n color: '#2490be',\n },\n mainLight: {\n description: 'Główne oświetlenie',\n shortcut: 'Oświetl.',\n color: '#10C8CA',\n },\n cwu: {\n description: 'Ciepła woda użytkowa',\n shortcut: 'CWU',\n color: '#249BBE',\n },\n co: {\n description: 'Centralne ogrzewanie',\n shortcut: 'CO',\n color: '#0E4194',\n },\n});\n\nexport default energyUsageAreas;\n\nexport const mapUsageAreaDescription = key =>\n (value => (value ? value.description : key))(energyUsageAreas[key]);\n\nexport const mapUsageAreaShortcut = key =>\n (value => (value ? value.shortcut : key))(energyUsageAreas[key]);\n\nexport const mapUsageAreaColor = ({ key }) =>\n (value => (value ? value.color : key))(energyUsageAreas[key]);\n","import energyUsageAreas, {\n mapUsageAreaColor,\n mapUsageAreaDescription,\n mapUsageAreaShortcut,\n} from './energyUsageAreas';\n\nexport default {\n energyUsageAreas,\n mapUsageAreaColor,\n mapUsageAreaDescription,\n mapUsageAreaShortcut,\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Icon } from \"antd\";\n\nimport { formatNumber } from \"../../../utils/formaters\";\n\nexport default ({ data, dataKey }) => {\n const gain = formatNumber(calculateGain(data, dataKey), { position: -1 });\n\n return (\n \n \n \n \n \n \n \n \n \n \n {`${gain}%`}\n \n \n );\n}\n\nconst gainColor = \"#C9776B\";\nconst looseColor = \"#74B885\";\n\nconst calculateGain = (data, dataKey) => {\n if(data.length !== 2) return 0;\n const [first, last] = data;\n return (last[dataKey] - first[dataKey]) / first[dataKey] * 100;\n}\n\nconst GainTip = styled.div`\n position: relative;\n margin-right: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n padding: 4px;\n background: #F8F8F8;\n font-size: 1.2em;\n @media (max-width: 1600px) {\n font-size: 1.1em;\n }\n @media (max-width: 1440px) {\n font-size: 0.95em;\n }\n`;\n\nconst IconContainer = styled.div`\n position: relative;\n`;\n\nconst Up = styled.div`\n margin-bottom: -14px;\n ${({ gain }) => (gain > 0) ? `color: ${gainColor}` : ''}\n`;\n\nconst Down = styled.div`\n margin-top: -14px;\n ${({ gain }) => (gain < 0) ? `color: ${looseColor}` : ''}\n`;\n\nconst DataContainer = styled.div`\n color: #0E4194;\n ${({ gain }) => (gain > 0) ? `color: ${gainColor}` : ''}\n ${({ gain }) => (gain < 0) ? `color: ${looseColor}` : ''}\n margin-left: 4px;\n`;\n","import React from 'react';\nimport moment from 'moment';\n\nimport { formatNumber } from '../../../../utils/formaters';\nimport Dictionaries from '../../../../utils/dictionaries';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\nimport GainTip from '../../components/GainTip';\n\nconst { mapUsageAreaColor, mapUsageAreaDescription, mapUsageAreaShortcut } = Dictionaries;\n\nconst barProps = {\n minTickGap: 15,\n interval: \"preserveStart\",\n};\n\nexport const monthConfig = {\n dailyHeatConsumption: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"YYYY-MM-DD\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: false,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie ciepła\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Zużycie ciepła\",\n dataSource: \"dailyHeatConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#4462ba\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n dailyElectricityConsumption: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"YYYY-MM-DD\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie energii elekt.\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Dzienne zużycie energii elekt.\",\n dataSource: \"dailyElectricityConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#10C8CA\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n comparedConsumption: ({data}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => e,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Znormalizowane zużycie energii\",\n dataSource: \"consumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#7FD2BE\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n extra: ,\n }),\n heatingCurve: () => ({\n chartConfig: {\n settings: {\n // stopAnimation: true,\n stopAnimation: false,\n stopInteractive: false,\n forceDateTooltip: true,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n regresionPosition: 'left',\n xFormatter: (e) => formatNumber(e, {position: -1}),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"outsideTemperature\",\n color: \"#333\",\n showAxis: true,\n description: \"Temperatura zewnętrzna\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"-20\",\n rangeTo: \"12\",\n rangeSpan: \"4\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Dzienne zuż. ciepła\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Dzienne zużycie ciepła\",\n dataSource: \"heatConsumption\",\n axis: \"0\",\n dotted: true,\n lineWidth: 2,\n lineColor: \"#063951\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n showRegresion: true,\n addRegresionBoundary: true,\n spreadRegresion: true,\n },\n ],\n }),\n energyUsageAreas: () => ({\n isAnimationActive: false,\n chartType: CHART_TYPES.PIE_CHART,\n showEmpty: false,\n showLabel: false,\n showLegend: true,\n outerRadius: \"72%\",\n descriptionMapper: mapUsageAreaDescription,\n shortcutMapper: mapUsageAreaShortcut,\n colorMapper: mapUsageAreaColor,\n dataKey: \"value\",\n unit: \"kWh\",\n showTooltip: true,\n dataFormatter: (e) => formatNumber(e, {position: -1}),\n }),\n dailyOZEProduction: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"YYYY-MM-DD\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Produkcja energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Dzienna produkcja elekt. OZE\",\n dataSource: \"dailyOZEProduction\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#2490be\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n}\n","import React from 'react';\nimport moment from 'moment';\n\nimport { formatNumber } from '../../../../utils/formaters';\nimport Dictionaries from '../../../../utils/dictionaries';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\nimport GainTip from '../../components/GainTip';\n\nconst { mapUsageAreaColor, mapUsageAreaDescription, mapUsageAreaShortcut } = Dictionaries;\n\nconst barProps = {\n minTickGap: 35,\n interval: \"preserveStart\",\n};\n\nexport const yearConfig = {\n monthlyHeatConsumption: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"MMMM YYYY\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: false,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie ciepła\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Zużycie ciepła\",\n dataSource: \"monthlyHeatConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#4462ba\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n monthlyElectricityConsumption: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"MMMM YYYY\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie energii elekt.\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Miesięczne zużycie energii elekt.\",\n dataSource: \"monthlyElectricityConsumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#10C8CA\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n comparedConsumption: ({data}) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => e,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Znormalizowane zużycie energii\",\n dataSource: \"consumption\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#7FD2BE\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n extra: ,\n }),\n heatingCurve: () => ({\n chartConfig: {\n settings: {\n // stopAnimation: true,\n stopAnimation: false,\n stopInteractive: false,\n forceDateTooltip: true,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n regresionPosition: 'left',\n xFormatter: (e) => formatNumber(e, {position: -1}),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"outsideTemperature\",\n color: \"#333\",\n showAxis: true,\n description: \"Temperatura zewnętrzna\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"-20\",\n rangeTo: \"12\",\n rangeSpan: \"4\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Dzienne zuż. ciepła\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Miesięczne zużycie ciepła\",\n dataSource: \"heatConsumption\",\n axis: \"0\",\n dotted: true,\n lineWidth: 2,\n lineColor: \"#063951\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n showRegresion: true,\n addRegresionBoundary: true,\n spreadRegresion: true,\n },\n ],\n }),\n energyUsageAreas: () => ({\n isAnimationActive: false,\n chartType: CHART_TYPES.PIE_CHART,\n showEmpty: false,\n showLabel: false,\n showLegend: true,\n outerRadius: \"72%\",\n descriptionMapper: mapUsageAreaDescription,\n shortcutMapper: mapUsageAreaShortcut,\n colorMapper: mapUsageAreaColor,\n dataKey: \"value\",\n unit: \"kWh\",\n showTooltip: true,\n dataFormatter: (e) => formatNumber(e, {position: -1}),\n }),\n monthlyOZEProduction: () => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: \"\",\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: (e) => moment(e).format(\"MMMM YYYY\"),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 3,\n withTime: true,\n useDefault: true,\n ...barProps,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Produkcja energii\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: \"0\",\n description: \"Miesięczna produkcja elekt. OZE\",\n dataSource: \"monthlyOZEProduction\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#2490be\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n },\n ],\n }),\n}\n","import { dayConfig } from './day';\nimport { weekConfig } from './week';\nimport { monthConfig } from './month';\nimport { yearConfig } from './year';\n\nexport default Object.assign({\n day: dayConfig,\n week: weekConfig,\n month: monthConfig,\n year: yearConfig,\n});\n\nexport const chartDivisions = Object.assign({\n day: [\n [\n {\n key: 'heatPowerConsumption',\n enableHidden: false,\n title: 'Pobór mocy cieplnej',\n },\n {\n key: 'electricityPowerConsumption',\n enableHidden: false,\n title: 'Pobór mocy elektrycznej',\n },\n {\n key: 'OZEPowerProduction',\n enableHidden: true,\n title: 'Produkcja energii elektrycznej z OZE',\n },\n ],\n [\n {\n key: 'temperatures',\n enableHidden: false,\n title: 'Temperatury',\n },\n {\n key: 'co2',\n enableHidden: false,\n title: 'Stężenie CO_2',\n },\n {\n key: 'humidity',\n enableHidden: true,\n title: 'Wilgotność względna',\n },\n ],\n ],\n week: [\n [\n {\n key: 'heatPowerConsumption',\n enableHidden: false,\n title: 'Pobór mocy cieplnej',\n },\n {\n key: 'electricityPowerConsumption',\n enableHidden: false,\n title: 'Pobór mocy elektrycznej',\n },\n {\n key: 'totalConsumption',\n enableHidden: false,\n title: 'Całkowite zużycie energii',\n },\n ],\n [\n {\n key: 'temperatures',\n enableHidden: false,\n title: 'Temperatury',\n },\n {\n key: 'co2',\n enableHidden: false,\n title: 'Stężenie CO_2',\n },\n {\n key: 'OZEProduction',\n enableHidden: true,\n title: 'Produkcja energii elektrycznej z OZE',\n },\n ],\n ],\n month: [\n [\n {\n key: 'dailyHeatConsumption',\n enableHidden: false,\n title: 'Dzienne zużycie ciepła',\n },\n {\n key: 'dailyElectricityConsumption',\n enableHidden: false,\n title: 'Dzienne zużycie energii elektrycznej',\n },\n {\n key: 'comparedConsumption',\n enableHidden: false,\n title: 'Porównanie zużycia energii',\n },\n ],\n [\n {\n key: 'heatingCurve',\n enableHidden: false,\n title: 'Charakterystyka energetyczna budynku',\n },\n {\n key: 'energyUsageAreas',\n enableHidden: false,\n title: 'Obszary zużycia energii',\n },\n {\n key: 'dailyOZEProduction',\n enableHidden: true,\n title: 'Produkcja energii elektrycznej z OZE',\n },\n ],\n ],\n year: [\n [\n {\n key: 'monthlyHeatConsumption',\n enableHidden: false,\n title: 'Miesięczne zużycie ciepła',\n },\n {\n key: 'monthlyElectricityConsumption',\n enableHidden: false,\n title: 'Miesięczne zużycie energii elektrycznej',\n },\n {\n key: 'comparedConsumption',\n enableHidden: false,\n title: 'Porównanie zużycia energii',\n },\n ],\n [\n {\n key: 'heatingCurve',\n enableHidden: false,\n title: 'Charakterystyka energetyczna budynku',\n },\n {\n key: 'energyUsageAreas',\n enableHidden: false,\n title: 'Obszary zużycia energii',\n },\n {\n key: 'monthlyOZEProduction',\n enableHidden: true,\n title: 'Produkcja energii elektrycznej z OZE',\n },\n ],\n ],\n});\n","import React, {useContext} from 'react';\nimport styled from 'styled-components';\n\nimport CustomChart from '../../../components/CustomChart';\nimport ChartCard from '../components/ChartCard';\n\nimport { DashboardContext } from '../DashboardDataProvider';\nimport chartConfig, { chartDivisions } from './chartConfig';\nimport { minAppHeight } from '../../../constants';\n\nexport default () => {\n const {\n currentBuilding,\n currentTime,\n } = useContext(DashboardContext);\n const building = currentBuilding();\n const fetchingTime = !building.finished[currentTime];\n\n const passedChartConfig = (key) =>\n building[currentTime] && building[currentTime][key] &&\n ({\n data: building[currentTime][key].data,\n ...chartConfig[currentTime][key](building[currentTime][key]),\n });\n\n const shouldHideChart = (key) =>\n !fetchingTime && building[currentTime] &&\n building[currentTime][key] &&\n building[currentTime][key].settings.hide;\n \n const currentElements = chartDivisions[currentTime];\n return (\n \n {currentElements.map((row, idx) => {\n const spread = Boolean(row.reduce(\n (prev, {key, enableHidden}) => prev || (shouldHideChart(key) && enableHidden),\n false));\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {row.map(({key, enableHidden, title}, idx2) =>\n \n \n )}\n \n );\n })}\n \n )\n}\n\nconst Cell = ({children, loading, title, spread, hide}) => (\n \n \n {children}\n \n \n);\n\nconst Charts = styled.div`\n width: 100%;\n height: calc(100vh - 136px);\n @media (max-height: 800px) {\n height: calc(100vh - 120px);\n min-height: ${minAppHeight - 120}px;\n }\n`;\n\nconst Row = styled.div`\n & + & {\n margin-top: -8px;\n }\n`;\n\nconst StyledCell = styled.div`\n display: inline-block;\n align-items: center;\n justify-content: center;\n transition: 1000ms all;\n overflow: hidden;\n`;\n","import React from 'react';\nimport styled from 'styled-components'\nimport { message, Button, Card, Icon } from 'antd';\n\nconst email = \"monitoring@kape.gov.pl\";\nconst instructionPath = \"/Instrukcja%20obsługi%20Systemu%20KAPE%20monitoring.pdf\";\nconst instructionFileName = \"InstrukcjaMonitoring.pdf\";\n\nconst copyEmail = () => {\n const textArea = document.createElement(\"textarea\");\n textArea.value = email;\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n const successful = document.execCommand('copy');\n if(!successful) throw new Error();\n message.success('Skopiowano email do schowka!');\n } catch (err) {\n message.warning('Nie udało się skopiować adresu do schowka');\n }\n document.body.removeChild(textArea);\n}\n\nexport default ({dashboard}) => (\n \n \n \n {dashboard && (
\n Brak opomiarowanych budynków\n
)}\n
\n W przypadku wystąpienia problemów technicznych
z działaniem systemu prosimy o kontakt z Administratorem.\n
\n
\n \n Krajowa Agencja Poszanowania Energii S.A.\n \n \n Tel. 22 626 09 10\n \n \n \n {email}\n \n \n
\n
\n \n Instrukcja obsługi Systemu KAPE monitoring\n \n \n Pobierz\n \n
\n
\n
\n
\n);\n\nconst Help = styled.div`\n background: #EEF1F1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n height: 100%;\n`;\n\nconst Message = styled.div`\n max-width: 696px;\n padding: 24px 32px 48px;\n text-align: center;\n font-size: 1.5rem;\n line-height: 2rem;\n`;\n\nconst Section = styled.div`\n & + & {\n padding-top: 48px;\n }\n`;\n\nconst InnerSection = styled.div`\n & + & {\n padding-top: 8px;\n }\n`;\n\nconst StyledCard = styled(Card)`\n position: relative;\n top: -48px;\n`;\n","import Help from './Help';\n\nexport default Help;\n","import React from 'react';\nimport Help from \"../../Help\";\n\nexport default () => (\n \n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Radio } from 'antd';\n\nexport default ({onChange, currentTime}) => {\n return (\n \n \n {timeTabs.map(({key, description}) =>\n {description},\n )}\n \n \n );\n}\n\nconst timeTabs = [\n {\n key: \"day\",\n description: \"Dzień\",\n },\n {\n key: \"week\",\n description: \"Tydzień\",\n },\n {\n key: \"month\",\n description: \"Miesiąc\",\n },\n {\n key: \"year\",\n description: \"Rok\",\n },\n];\n\nconst StyledRadioButton = styled(Radio.Button)`\n min-width: 80px;\n text-align: center;\n`;\n\nconst TimeSelect = styled.div`\n position: relative;\n text-align: center;\n .ant-radio-button-wrapper {\n background: #F8F8F8 !important;\n }\n .ant-radio-button-wrapper-checked {\n background: #0E4194 !important;\n border-color: #0E4194 !important;\n box-shadow: -1px 0 0 0 #0E4194;\n }\n .ant-radio-button-wrapper-checked:hover {\n box-shadow: -1px 0 0 0 #0E4194;\n }\n .ant-radio-button-wrapper-checked::before {\n background: #0E4194 !important;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Icon } from \"antd\";\n\nexport default ({label, value, unit, loading, ...props}) => (\n\n \n \n {loading\n ?\n \n :\n value\n }\n \n {unit && {unit}}\n);\n\nconst InlineValue = styled.div`\n display: flex;\n padding: 0 8px;\n align-items: baseline\n`;\n\nconst Label = styled.span`\n font-size: 0.9em;\n @media (max-width: 1600px) {\n font-size: 0.85em;\n }\n @media (max-width: 1440px) {\n font-size: 0.75em;\n }\n`;\n\nconst Value = styled.span`\n margin-left: 6px;\n font-size: 1.2em;\n @media (max-width: 1600px) {\n font-size: 1.1em;\n }\n @media (max-width: 1440px) {\n font-size: 0.95em;\n }\n font-weight: bold;\n`;\n\nconst Unit = styled.span`\n margin-left: 2px;\n font-size: 0.9em;\n @media (max-width: 1600px) {\n font-size: 0.8em;\n }\n @media (max-width: 1440px) {\n font-size: 0.7em;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { isNil } from 'lodash';\n\nimport MathParser from '../../../components/MathParser';\nimport { formatNumber, isNumberConverted, formatDownfall } from '../../../utils/formaters';\nimport InlineValue from './InlineValue';\n\nexport default ({ buildingData, weatherStationName, loading }) => {\n const getValue = ({ key, value }) => value || buildingData[key];\n const getData = ({ key, value, valueFormatter }) =>\n (v => (valueFormatter ? valueFormatter(v) : v))(getValue({ key, value }));\n\n const { goodPm10, badPm10, goodPm25, badPm25 } = buildingData || {};\n\n return (\n \n \n \n \n \n {elements.map(element => (\n \n {element.formatter(\n loading\n ? {\n loading,\n label: element.label,\n unit: element.unit(''),\n value: '',\n }\n : {\n value: getData(element),\n label: element.label,\n unit: element.unit(getData(element)),\n pm10: {\n good: goodPm10 || PM10.good,\n bad: badPm10 || PM10.bad,\n },\n pm25: {\n good: goodPm25 || PM25.good,\n bad: badPm25 || PM25.bad,\n },\n },\n )}\n \n ))}\n \n \n );\n};\n\nconst PM10 = {\n good: 61,\n bad: 141,\n};\n\nconst PM25 = {\n good: 37,\n bad: 85,\n};\n\nconst renderPMElement = ({ pm, ...props }) => (\n \n);\n\nconst renderPM10Element = ({ pm10, ...props }) =>\n renderPMElement({ pm: pm10, ...props });\nconst renderPM25Element = ({ pm25, ...props }) =>\n renderPMElement({ pm: pm25, ...props });\n\nconst renderElement = ({ value, label, unit, ...props }) => (\n \n);\n\nconst elements = [\n {\n key: 'tempOutside',\n label: 'Temp:',\n unit: () => (^oC),\n valueFormatter: value => !isNil(value) ? `${formatNumber(value, { position: -1 })}` : '',\n formatter: renderElement,\n },\n {\n key: 'downfall',\n label: 'Opady:',\n unit: (value) => (isNumberConverted(value) ? 'mm' :''),\n valueFormatter: value => !isNil(value) ? formatDownfall(value) : 'Brak',\n formatter: renderElement,\n },\n {\n key: 'humidity',\n label: 'Wilgotność:',\n unit: () => '%',\n valueFormatter: value => !isNil(value) ? `${formatNumber(value)}` : '',\n formatter: renderElement,\n },\n {\n key: 'pm25',\n label: 'PM2,5:',\n unit: () => (μg/m^3),\n valueFormatter: value => !isNil(value) ? `${formatNumber(value)}` : value,\n formatter: renderPM25Element,\n },\n {\n key: 'pm10',\n label: 'PM10:',\n unit: () => (μg/m^3),\n valueFormatter: value => !isNil(value) ? `${formatNumber(value)}` : value,\n formatter: renderPM10Element,\n },\n];\n\nconst colorPMConfig = {\n good: {\n color: 'white',\n background: '#74B885',\n },\n medium: {\n color: 'white',\n background: '#FFDF82',\n },\n bad: {\n color: 'white',\n background: '#C9776B',\n },\n};\n\nconst StyledInlineValue = ({ ...props }) => {\n const { value, good, bad } = props;\n const isValid = value !== undefined && value !== null;\n let type;\n if (isValid) {\n const isGood = value < good;\n const isBad = value > bad;\n // eslint-disable-next-line no-nested-ternary\n type = !(isGood || isBad) ? 'medium' : isGood ? 'good' : 'bad';\n }\n return isValid ? (\n \n ): null\n};\n\nconst WeatherStation = styled.div`\n margin-bottom: 4px;\n display: inline-block;\n`;\n\nconst WrappedCurrentData = styled.div`\n text-align: right;\n`;\n\nconst CurrentData = styled.div`\n display: flex;\n`;\n\nconst MyRow = styled.div`\n & + & {\n & > div {\n margin-left: 16px;\n @media (max-width: 1440px) {\n margin-left: 8px;\n }\n @media (max-width: 1366px) {\n margin-left: 4px;\n }\n }\n }\n`;\n","import axios from 'axios';\nimport moment from 'moment';\nimport { isNil, sortBy } from 'lodash';\n\n\nexport const getBuildingData = async (buildingId) => {\n const resp = await axios.get(`/Dashboard/fixed/${buildingId}`);\n return resp;\n};\n\nconst isNull = data => Object.keys(data).every(key => key === 'time' || isNil(data[key]) || parseFloat(data[key]) === 0);\n\nconst mapTime = (data = []) => data.map(({time, ...rest}) => ({\n time: moment(time).valueOf(),\n ...rest,\n}));\n\nexport const mapMulti = ({data = [], ...rest}, withTime = true) => ({\n data: withTime ? mapTime(data) : data,\n settings: {\n ...rest,\n hide: (data.length === 0) || data.every(e => isNull(e)),\n },\n});\n\nconst mapTimeValues = (data = [], key = 'value') => data.map(({value, time}) => ({\n [key]: value,\n time: moment(time).valueOf(),\n}));\n\nexport const mapListData = ({data = [], ...rest}, key) => ({\n data: mapTimeValues(data, key),\n settings: {\n ...rest,\n hide: (data.length === 0) || data.every(e => isNull(e)),\n },\n});\n\nconst mergeData = (loadedData = [], dataKey = 'data', initialSettings = {}) => {\n const merged = loadedData.reduce(\n ({data, settings}, loaded, idx) => ({\n data: [...data, ...mapTimeValues(loaded.data, `${dataKey}_${idx}`)],\n settings: {\n ...settings,\n measurements: [...settings.measurements, {\n dataSource: `${dataKey}_${idx}`,\n description: loaded.label,\n }],\n },\n }),\n {\n data: [],\n settings: {\n ...initialSettings,\n measurements: [],\n hide: (loadedData.length === 0) || loadedData.every(e => isNull(e)),\n },\n },\n );\n const sorted = sortBy(merged.data, 'time');\n const final = [];\n let value = null;\n for (let i = 0; i < sorted.length; i += 1) {\n if (sorted[i].time === value) {\n const last = final.pop();\n final.push({ ...last, ...sorted[i] });\n } else {\n final.push(sorted[i]);\n }\n value = sorted[i].time;\n }\n return {\n ...merged,\n data: final,\n };\n};\n\nconst mapComparedConsumption = ({previous, current}) => {\n const result = [];\n if(previous && previous.value && !Number.isNaN(previous.value) && previous.value !== 'NaN') {\n result.push({\n consumption: previous.value,\n time: 'Ubiegły',\n });\n }\n result.push({\n consumption: current.value,\n time: 'Bieżący',\n });\n return {\n data: result,\n settings: {},\n };\n}\n\nexport const getBuildingTime = async (buildingId, time) => {\n const dataProvider = {\n day: getDay,\n week: getWeek,\n month: getMonth,\n year: getYear,\n };\n const resp = await dataProvider[time](buildingId);\n return resp;\n};\n\nconst defaultCarbDioxLimit = 1000;\n\nconst getDay = async (buildingId) => {\n const resp = await axios.get(`/Dashboard/day/${buildingId}`);\n const data = resp.data || {};\n return {\n ...resp,\n data: {\n heatPowerConsumption: mapListData(data.heatPowerConsumption, 'heatPower'),\n electricityPowerConsumption: mapListData(data.eletricPowerConsumption, 'electricityPower'),\n OZEPowerProduction: mapListData(data.renewableEnergySourcesProduction, 'OZEPower'),\n temperatures: mergeData(data.temperatures, 'temp'),\n co2: mergeData(data.carbDiox, 'co2', { limit: data.carbDioxLimit || defaultCarbDioxLimit }),\n humidity: mergeData(data.humidity, 'humidity'),\n },\n }\n}\n\nconst getWeek = async (buildingId) => {\n const resp = await axios.get(`/Dashboard/week/${buildingId}`);\n const data = resp.data || {};\n return {\n ...resp,\n data: {\n heatPowerConsumption: mapListData(data.heatPowerConsumption, 'heatPower'),\n electricityPowerConsumption: mapListData(data.eletricPowerConsumption, 'electricityPower'),\n OZEProduction: mapListData({ data: buildingId === 9 ? [] : data.renewableEnergySourcesProduction }, 'dailyOZEProduction'),\n temperatures: mergeData(data.temperatures, 'temp'),\n co2: mergeData(data.carbDiox, 'co2', { limit: data.carbDioxLimit || defaultCarbDioxLimit }),\n totalConsumption: mapMulti( {data: data.totalEnergyConsumption}),\n },\n }\n}\n\nconst getMonth = async (buildingId) => {\n const resp = await axios.get(`/Dashboard/month/${buildingId}`);\n const data = resp.data || {};\n return {\n ...resp,\n data: {\n dailyHeatConsumption: mapListData({ data: data.heatPowerConsumption }, 'dailyHeatConsumption'),\n dailyElectricityConsumption: mapListData({ data: data.eletricPowerConsumption }, 'dailyElectricityConsumption'),\n dailyOZEProduction: mapListData({ data: buildingId === 9 ? [] : data.renewableEnergySourcesProduction }, 'dailyOZEProduction'),\n heatingCurve: mapMulti({data: data.heatingCurve}),\n energyUsageAreas: mapMulti({data: data.energyUsageAreas}, false),\n comparedConsumption: mapComparedConsumption(data.comparedConsumption),\n },\n }\n}\n\nconst getYear = async (buildingId) => {\n const resp = await axios.get(`/Dashboard/year/${buildingId}`);\n const data = resp.data || {};\n return {\n ...resp,\n data: {\n monthlyHeatConsumption: mapListData({ data: data.heatPowerConsumption }, 'monthlyHeatConsumption'),\n monthlyElectricityConsumption: mapListData({ data: data.eletricPowerConsumption }, 'monthlyElectricityConsumption'),\n monthlyOZEProduction: mapListData({ data: buildingId === 9 ? [] : data.renewableEnergySourcesProduction }, 'monthlyOZEProduction'),\n heatingCurve: mapMulti({data: data.heatingCurve}),\n energyUsageAreas: mapMulti({data: data.energyUsageAreas}, false),\n comparedConsumption: mapComparedConsumption(data.comparedConsumption),\n },\n }\n}\n","import React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { message } from 'antd';\n\nimport { BuildingSelect } from '../../../components/BuildingSelect';\nimport TimeSelect from '../components/TimeSelect';\nimport CurrentData from '../components/CurrentData';\n\nimport { AppContext } from '../../../AppDataProvider';\nimport { DashboardContext } from '../DashboardDataProvider';\n\nimport {\n getBuildingData,\n getBuildingTime,\n} from '../services/api';\n\nexport default () => {\n const { wrapRequest } = useContext(AppContext);\n const {\n currentBuilding,\n currentBuildingId,\n currentTime,\n getBuilding,\n startFetchingData,\n startFetchingTime,\n endFetchingData,\n endFetchingTime,\n setCurrentBuilding,\n setCurrentTime,\n } = useContext(DashboardContext);\n\n const building = currentBuilding();\n\n const updateTime = async ({ target }) => {\n const { value } = target;\n if (!building[value]) {\n fetchBuildingTime(currentBuildingId, value);\n }\n setCurrentTime(value);\n };\n const updateBuilding = async id => {\n const selected = getBuilding(id);\n if (!selected.data) {\n fetchBuildingData(id);\n }\n if (!selected[currentTime]) {\n fetchBuildingTime(id, currentTime);\n }\n setCurrentBuilding(id);\n };\n\n async function fetchBuildingData(id) {\n startFetchingData(id);\n await wrapRequest(() => getBuildingData(id), {\n onError: () => {\n message.error('Nie udało się pobrać danych o zużyciach. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n endFetchingData(id, data);\n },\n });\n }\n\n async function fetchBuildingTime(id, time) {\n startFetchingTime(id, time);\n await wrapRequest(() => getBuildingTime(id, time), {\n onError: () => {\n message.error('Nie udało się pobrać danych do wykresów. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n endFetchingTime(id, data, time);\n },\n });\n }\n\n const { isAdmin, weatherStationName, standardUsers } = useContext(AppContext);\n const selectedUser =\n currentBuildingId !== null\n ? standardUsers.find(e => e.buildingsIds.includes(currentBuildingId))\n : {};\n const fetchingData = !building.finished.data;\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst TimeSelectContainer = styled.div`\n padding: 0 24px;\n`;\n\nconst CurrentDataContainer = styled.div`\n position: absolute;\n right: 20px;\n bottom: 12px;\n`;\n\nconst BuildingSelectContainer = styled.div`\n width: 248px;\n`;\n\nconst TopBar = styled.div`\n position: relative;\n height: 80px;\n padding: 24px 16px;\n display: flex;\n @media (max-height: 800px) {\n height: 64px;\n padding: 16px;\n }\n`;\n","import React, {useContext, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\nimport { message } from 'antd';\n\nimport { minAppHeight, minAppWidth, navWidth, topBarHeight } from '../../constants';\n\nimport BuildingDetails from './scenes/BuildingDetails';\nimport Charts from './scenes/Charts';\nimport NoBuildings from './scenes/NoBuildings';\nimport TopBar from './scenes/TopBar';\n\nimport {\n getBuildingData,\n getBuildingTime,\n} from './services/api';\n\nimport { DashboardContext } from './DashboardDataProvider';\nimport { AppContext } from '../../AppDataProvider';\n\nexport default () => {\n const {\n currentTime,\n getCurrentTime,\n currentBuildingId,\n currentBuilding,\n setBuildings,\n // Pobierane danych\n endFetchingData,\n endFetchingTime,\n depricateHourData,\n depricateDailyData,\n } = useContext(DashboardContext);\n const { measuredBuildings, wrapRequest } = useContext(AppContext);\n if(!measuredBuildings || measuredBuildings.length === 0) return ();\n const [dailyInterval, setDailyInterval] = useState(null);\n\n useEffect(() => {\n fetchBuildings();\n const actualInterval = setInterval(\n () => {\n resetHourData();\n }, 1000 * 60 * 60);\n const dailyStart = setTimeout(\n () => {\n depricateDailyData();\n resetDailyData()\n setDailyInterval(setInterval(\n () => {\n depricateDailyData();\n resetDailyData();\n }, 1000 * 60 * 60 * 24));\n }, 1000 * secondsToMidnight());\n\n return () => {\n clearInterval(actualInterval);\n clearTimeout(dailyStart);\n if(dailyInterval) {\n try {\n clearInterval(dailyInterval);\n }\n catch {\n console.warn('Pusty interval dzienny wykryty');\n };\n }\n }\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n );\n\n async function resetHourData() {\n const building = currentBuilding();\n if( building.id !== null ) {\n depricateHourData();\n fetchBuildingData(building.id);\n const time = getCurrentTime();\n if(['day', 'week'].includes(time)) {\n fetchBuildingTime(building.id, time);\n }\n }\n }\n\n async function resetDailyData() {\n const building = currentBuilding();\n if( building.id !== null ) {\n depricateDailyData();\n fetchBuildingData(building.id);\n const time = getCurrentTime();\n if(['month', 'year'].includes(time)) {\n fetchBuildingTime(building.id, time);\n }\n }\n }\n\n async function fetchBuildings() {\n if(currentBuildingId !== null) {\n fetchBuildingData(currentBuildingId);\n }\n else {\n const { id } = measuredBuildings[0];\n setBuildings(measuredBuildings, id);\n fetchBuildingData(id);\n fetchBuildingTime(id, currentTime);\n }\n }\n\n async function fetchBuildingData(id) {\n await wrapRequest(() => getBuildingData(id), {\n onError: () => {\n message.error('Nie udało się pobrać danych o zużyciach. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n endFetchingData(id, data);\n },\n });\n }\n\n async function fetchBuildingTime(id, time) {\n await wrapRequest(() => getBuildingTime(id, time), {\n onError: () => {\n message.error('Nie udało się pobrać danych do wykresów. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n endFetchingTime(id, data, time);\n },\n });\n }\n}\n\nconst secondsToMidnight = () => {\n const mmt = moment();\n const mmtMidnight = mmt.clone().endOf('day');\n return mmtMidnight.diff(mmt, 'seconds') + 1;\n}\n\n\nconst Dashboard = styled.div`\n background: #EEF1F1;\n display: flex;\n flex-direction: column;\n position: relative;\n height: 100%;\n min-height: ${minAppHeight - topBarHeight}px;\n min-width: ${minAppWidth - navWidth}px;\n`;\n\nconst DashboardInner = styled.div`\n display: flex;\n flex: 1;\n position: relative;\n`;\n\nconst ChartsContainer = styled.div`\n flex: 1;\n position: relative;\n`;\n","import Dashboard from './Dashboard';\n\nexport default Dashboard;\n","import axios from 'axios';\nimport moment from 'moment';\n\nimport { mapMulti, mapListData} from '../../Dashboard/services/api';\n\n\nexport const getReportData = async ({period, userId}) => {\n const request = {\n startDate: moment(period[0]).startOf('month').toISOString(),\n endDate: moment(period[1]).endOf('month').toISOString(),\n userId: parseInt(userId.substring(5), 10),\n }\n const resp = await axios.post(`/Reports`, request);\n\n return {\n ...resp,\n data: {\n buildingsUsages: getBuildingsUsages(resp.data.buildingsUsages),\n pms: mapMulti({data: resp.data.pms || []}),\n config: {\n period,\n userId,\n },\n request,\n },\n }\n};\n\nconst getBuildingsUsages = (buildingsUsages = []) => buildingsUsages.map(\n ({temperatures, heatingCurve, climateIndex, hourlyElectricity, hourlyHeat, ...rest}) => ({\n ...rest,\n unitElectricityTotal: rest.electricityTotal / rest.area,\n unitHeatTotal: rest.heatTotal / rest.area,\n unitWaterTotal: rest.waterTotal / rest.area,\n temperatures: mapMulti({\n data: temperatures || [],\n settings: {\n limitMin: rest.minTempThreshold,\n limitMax: rest.maxTempThreshold,\n },\n }, false),\n heatingCurve: mapMulti({data: heatingCurve || []}, false),\n climateIndex: mapMulti({data: climateIndex.map(({time, cold, good, hot}) => ({\n time,\n cold: 100 * cold,\n good: 100 * good,\n hot: 100 * hot,\n })) || []}),\n hourlyElectricity: mapListData(hourlyElectricity || [], 'electricityPower'),\n hourlyHeat: mapListData(hourlyHeat || [], 'heatPower'),\n }));\n","import React from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\n\nimport { DatePicker } from 'antd';\nimport FormItemWrapper from './FormItemWrapper';\n\nconst { MonthPicker } = DatePicker;\n\nexport default ({onChange, value = [], formRules = {}}) => {\n const now = moment().startOf('month');\n\n const disabledDate = (time) => time.isSameOrAfter(now);\n\n const _onChange = ([first, second], isValid) => {\n if(!(first && second)) {\n onChange([first, second], isValid);\n }\n else {\n onChange(second.isBefore(first) ? [second, first] : [first, second], isValid);\n }\n }\n const onFirst = (v, isValid) => _onChange([v, value[1]], isValid);\n const onSecond = (v, isValid) => _onChange([value[0], v], isValid);\n\n return (\n \n Od\n \n \n \n Do\n \n \n \n );\n};\n\nconst PeriodSelect = styled.div`\n display: flex;\n margin-left: -24px;\n`;\n\nconst Description = styled.span`\n margin: 0 8px 0 24px;\n font-weight: bold;\n line-height: 32px;\n`;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { Button, Form } from 'antd';\n\nimport { UserSelect } from '../../../components/BuildingSelect';\nimport PeriodSelect from '../../../components/PeriodSelect';\nimport FormItemWrapper, { validate } from '../../../components/FormItemWrapper';\n\nexport default ({loadData, config = {}, onChange}) => {\n const [_userId, setUserId] = useState();\n const [_period, setPeriod] = useState();\n const [triggered, setTriggered] = useState(false);\n\n useEffect(() => {\n setUserId(config.userId);\n }, [config.userId]);\n\n useEffect(() => {\n setPeriod(config.period || []);\n }, [config.period]);\n\n const rules = Object.keys(formRules).reduce((prev, key) => ({\n ...prev,\n [key]: {\n ...formRules[key],\n triggered,\n },\n }), {});\n\n const onReset = () => {\n setTriggered(false);\n }\n\n const onSubmit = async (event) => {\n event.preventDefault();\n setTriggered(true);\n const toValidate = [\n {key: 'community', value: _userId},\n {key: 'from', value: _period[0]},\n {key: 'to', value: _period[1]},\n ];\n const isValid = toValidate.map(({key, value}) => validate({\n ...rules[key],\n value,\n rules: rules[key] ? (rules[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n if(!isValid) {\n setTriggered(true);\n }\n else {\n loadData({\n community: _userId,\n period: _period,\n });\n onReset();\n }\n }\n\n const onChangeUserId = (id, isValid) => isValid\n ? onChange({...config, userId: id})\n : setUserId(id);\n \n const onChangePeriod = (per, isValid) => isValid\n ? onChange({...config, period: per})\n : setPeriod(per);\n\n return (\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n}\n\nconst formRules = {\n userId: {\n required: true,\n hasIcon: true,\n },\n from: {\n required: true,\n },\n to: {\n required: true,\n },\n};\n\nconst ReportConfigForm = styled.div`\n margin-bottom: -16px;\n`;\n\nconst CommunityContainer = styled.div`\n width: 280px;\n`;\n\nconst ButtonContainer = styled.div`\n padding: 0 0 32px 16px;\n`;\n\nconst TopSelectItem = styled.div`\n display: inline-block;\n vertical-align: middle;\n & + & {\n margin-left: 16px;\n }\n`;\n","import React from 'react';\n\nimport { Modal } from 'antd';\n\nexport default ({visible, onOk, onCancel, ...props}) =>\n (\n {`Wczytanie nowych danych spowoduje przeładowanie generacji raportu.\n Przy braku zapisu spowoduje to utratę wykonanej pracy.`}\n );\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst BottomContainer = styled.div`\n max-width: 959px;\n height: 74px;\n position: relative;\n border-top: solid 1px #333;\n`;\n\nconst Bottom = styled.div`\n position: absolute;\n bottom: 0;\n right: 0;\n color: black;\n text-align: right;\n height: 64px;\n div {\n height: 15px;\n line-height: 15px;\n font-size: 12px;\n }\n div:first-child {\n font-weight: bold;\n color: darkblue;\n }\n`;\n\nexport default () => (\n \n \n
KRAJOWA AGENCJA POSZANOWANIA ENERGII SA
\n
Al. Jerozolimskie 65/79, 00-697 Warszawa
\n
tel.: 22 626-09-10, 696-89-55, fax: 22 626-09-11
\n
e-mail: kape@kape.gov.pl, www.kape.gov.pl
\n
\n
);\n","import styled from 'styled-components';\n\nexport default styled.div`\n padding: 32px 0;\n position: relative;\n @media print {\n padding: 0;\n page-break-before: always;\n page-break-after: always;\n color: black !important;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport moment from 'moment';\n\nimport Page from './Page';\nimport Logo, {LOGO_SIZES} from '../../../components/Logo';\nimport { formatPeriod } from '../../../utils/formaters';\n\nexport default ({config, user, creationDate, ...props}) => (\n \n \n \n \n Raport z monitoringu zużycia energii\n {user.name}\n {`Raport za okres: ${formatPeriod(config.startDate, config.endDate)}`}\n \n \n \n \n Wykonawca\n Krajowa Agencja Poszanowania Energii SA\n \n \n \n Al. Jerozolimskie 65/79\n \n \n \n 00-697 Warszawa\n \n \n
\n
\n {moment(creationDate).format('MMMM YYYY')}\n
);\n\nconst StyledFrontPage = styled(Page)`\n display: none;\n @media print {\n min-width: 960px;\n min-height: 100%;\n display: block;\n page-break-before: always;\n page-break-after: always;\n color: black !important;\n z-index: 1;\n background: white;\n }\n`;\n\nconst Title = styled.div`\n font-size: 42px;\n text-align: center;\n padding-top: 152px;\n height: 280px;\n`;\n\nconst LogoHolder = styled.div`\n padding-top: 80px;\n text-align: center;\n`;\n\nconst MainTitle = styled.div`\n padding-top: 100px;\n font-size: 48px;\n text-align: center;\n font-weight: bold;\n`;\n\nconst ReportDate = styled.div`\n padding-top: 108px;\n font-size: 28px;\n text-align: center;\n font-weight: bold;\n`;\n\nconst TableWrapper = styled.div`\n padding-top: 300px;\n`;\n\nconst Table = styled.table`\n border: none;\n`;\n\nconst Cell = styled.td`\n font-size: 24px;\n line-height: 32px;\n color: black !important;\n font-weight: bold;\n`;\n\nconst Row = styled.tr`\n ${Cell}:first-child {\n padding-right: 48px;\n }\n`;\n\nconst Month = styled.div`\n padding-top: 132px;\n font-size: 24px;\n text-align: center;\n font-weight: bold;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Logo, { LOGO_SIZES } from '../../../components/Logo';\n\nconst Top = styled.div`\n text-align: left;\n height: 100px;\n`;\n\nexport default () => (\n \n \n );","import React from 'react';\nimport styled from 'styled-components';\n\nexport const PdfContainer = ({padding: {top, bottom} = {}, children, props}) => (\n \n {top ? : null}\n {bottom ? : null}\n \n \n \n {children}\n \n \n \n );\n\nconst TopPlaceHolder = ({size, ...props}) => (\n \n \n \n
\n \n \n );\n\nconst BottomPlaceHolder = ({size, ...props}) => (\n \n \n \n
\n \n \n );\n\nconst StyledTable = styled.table`\n table-layout: fixed;\n width: 960px;\n\n thead {display: none;}\n\n tfoot {display: none;}\n\n @media print {\n thead {display: table-header-group;} \n tfoot {display: table-footer-group;}\n }\n`;\n\nexport const PdfHeader = styled.div`\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n\n @media print {\n display: block;\n }\n`;\n\nexport const PdfFooter = styled.div`\n position: fixed;\n bottom: 0;\n width: 100%;\n display: none;\n\n @media print {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport default ({to, children, prefix, ...props}) => (\n \n {prefix && ({prefix})}\n {to ? {children} : children}\n );\n\nconst PageHeading = styled.div`\n font-weight: bold;\n font-size: 28px;\n padding: 8px 0 16px;\n color: darkblue\n`;\n\nconst StyledHref = styled.a`\n color: inherit;\n text-decoration: inherit;\n`;\n\nconst Prefix = styled.span`\n min-width: 24px;\n padding-right: 32px;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst List = ({prefix, children, title, ...props}) =>\n \n {title && ({title})}\n {React.Children.map(children, (child, index) => \n React.cloneElement(child, {prefix: prefix ? `${prefix}${index + 1}.`: `${index + 1}.`}),\n )}\n \n\nconst StyledList = styled.div`\n & + & {\n padding-top: 16px;\n }\n`;\n\nconst Item = ({prefix, children, ...props}) => (\n \n {prefix}\n {children}\n \n);\n\nconst StyledItem = styled.div`\n font-size: 20px;\n line-height: 28px;\n padding: 4px 0;\n @media print {\n color: black\n }\n`;\n\nconst Index = styled.span`\n min-width: 16px;\n margin-right: 24px;\n`;\n\nObject.assign(List, {\n Item,\n});\n\nexport default List;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Page from './Page';\nimport PageHeading from './PageHeading';\nimport List from './List';\n\nexport default ({buildings}) => (\n \n \n Spis treści\n \n \n \n Przedmiot raportu\n \n \n Wnioski\n \n \n Analiza dla wszystkich budynków\n \n Analiza dla budynków opomiarowanych}\n >\n {buildings.map(({buildingId, fullName}) => (\n \n {fullName}\n \n ))}\n \n \n );\n\nexport const genReportLink = (id) => `Building_${id}`;\n\nconst CustomLink = styled.a`\n text-decoration: none;\n color: darkblue;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport CustomChart from '../../../components/CustomChart';\n\nexport default styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px 0;\n @media print {\n page-break-inside: avoid;\n }\n & + & {\n padding-top: 24px;\n }\n`;\n\nexport const CHART_SIZES = Object.freeze({\n SMALL: 'small',\n MEDIUM: 'medium',\n SPREAD: 'spread',\n BIG: 'big',\n});\n\nconst sizes = {\n [CHART_SIZES.SMALL]: {\n height: '200px',\n width: '300px',\n },\n [CHART_SIZES.MEDIUM]: {\n height: '300px',\n width: '464px',\n },\n [CHART_SIZES.SPREAD]: {\n height: '300px',\n width: '944px',\n },\n [CHART_SIZES.BIG]: {\n height: '600px',\n width: '944px',\n },\n};\n\nconst defaultSize = CHART_SIZES.MEDIUM;\n\nexport const ChartHolderItem = styled.div`\n height: ${({size}) => sizes[size || defaultSize].height}\n width: ${({size}) => sizes[size || defaultSize].width}\n margin: auto;\n padding: 0 8px;\n`;\n\nexport const WrappedChart = ({chartSize, ...props}) =>\n (\n \n );\n","import { CHART_SIZES } from '../../components/ChartHolder';\nimport { formatNumber } from '../../../../utils/formaters';\nimport { colors } from '../../../../components/ColorSelect';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\n\nconst colorMapper = ({idx}) => colors[idx % colors.length].color;\nconst buildingColorMapper = (building, id) => colorMapper({idx: id});\n\nconst pieChartConfig = {\n chartType: CHART_TYPES.PIE_CHART,\n chartSize: CHART_SIZES.SMALL,\n\n isAnimationActive: false,\n showEmpty: false,\n showLabel: false,\n showTitle: false,\n showTooltip: false,\n\n innerRadius: \"0%\",\n outerRadius: \"85%\",\n\n descriptionKey: \"shortName\",\n unit: \"kWh\",\n\n colorMapper,\n dataFormatter: (e) => formatNumber(e, {position: 0}),\n};\n\nexport default Object.assign({\n heatToArea: {\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Zależność jednostkowego zużycia ciepła od powierzchni budynku\",\n showTitle: true,\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: false,\n xFormatter: (e) => formatNumber(e, {position: 0}),\n yFormatter: (e) => formatNumber(e, {position: 1}),\n },\n xAxis: {\n xKey: \"unitHeatTotal\",\n description: \"Jednostkowe zużycie ciepła\",\n showDescription: true,\n color: \"#333\",\n unit: \"kWh/m^2\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Powierzchnia budynku\",\n showDescription: true,\n unit: \"m^2\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.SCATTERED_CHART,\n chartSize: CHART_SIZES.BIG,\n usedData: [\n {\n id: \"0\",\n axis: \"0\",\n descriptionId: \"shortName\",\n showDescription: true,\n dataSource: \"area\",\n radius: 10,\n lineWidth: 2,\n lineColor: \"#063951\",\n unit: \"m^2\",\n },\n ],\n },\n electricityToArea: {\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Zależność jednostkowego zużycia energii elektrycznej od powierzchni budynku\",\n showTitle: true,\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: false,\n xFormatter: (e) => formatNumber(e, {position: 0}),\n yFormatter: (e) => formatNumber(e, {position: 1}),\n },\n xAxis: {\n xKey: \"unitElectricityTotal\",\n description: \"Jednostkowe zużycie energii elektrycznej\",\n showDescription: true,\n color: \"#333\",\n unit: \"kWh/m^2\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Powierzchnia budynku\",\n showDescription: true,\n unit: \"m^2\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.SCATTERED_CHART,\n chartSize: CHART_SIZES.BIG,\n usedData: [\n {\n id: \"0\",\n axis: \"0\",\n descriptionId: \"shortName\",\n showDescription: true,\n dataSource: \"area\",\n radius: 10,\n lineWidth: 2,\n lineColor: \"#063951\",\n unit: \"m^2\",\n },\n ],\n },\n electricityUsageByBuildings: {\n ...pieChartConfig,\n dataKey: \"electricityTotal\",\n },\n heatUsageByBuildings: {\n ...pieChartConfig,\n dataKey: \"heatTotal\",\n },\n waterUsageByBuildings: {\n ...pieChartConfig,\n dataKey: \"waterTotal\",\n },\n buildingColorMapper,\n pm: {\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Wyniki pomiarów stężenia pyłów\",\n showTitle: true,\n showLegend: true,\n horizontalGrid: true,\n verticalGrid: true,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 4,\n withTime: false,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Stężenie pyłów\",\n showDescription: true,\n unit: \"μg/m^3\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n chartSize: CHART_SIZES.BIG,\n usedData: [\n {\n id: \"0\",\n description: \"PM2,5\",\n dataSource: \"pm25\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: colors[0].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"μg/m^3\",\n },\n {\n id: \"1\",\n description: \"PM10\",\n dataSource: \"pm10\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: colors[1].color,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"μg/m^3\",\n },\n ],\n },\n});\n","import { CHART_SIZES } from '../../components/ChartHolder';\nimport { formatNumber } from '../../../../utils/formaters';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\n\nexport default Object.assign({\n climateIndex: () => ({\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Indeks klimatyczny\",\n showTitle: true,\n showLegend: true,\n horizontalGrid: true,\n verticalGrid: true,\n stackData: true,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 4,\n withTime: false,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Zużycie ciepła\",\n showDescription: false,\n unit: \"%\",\n rangeFrom: \"0\",\n rangeTo: \"100\",\n rangeSpan: \"25\",\n },\n ],\n },\n chartType: CHART_TYPES.AREA_CHART,\n chartSize: CHART_SIZES.SPREAD,\n usedData: [\n {\n id: \"0\",\n description: \"Procent temp. w normie\",\n dataSource: \"good\",\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#556B3E\",\n unit: \"%\",\n },\n {\n id: \"1\",\n description: \"Procent zbyt niskiej temp.\",\n dataSource: \"cold\",\n axis: \"0\",\n dotted: false,\n lineWidth: 2,\n lineColor: \"#063951\",\n unit: \"%\",\n },\n {\n id: \"2\",\n description: \"Procent zbyt wysokiej temp.\",\n dataSource: \"hot\",\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C13015\",\n unit: \"%\",\n },\n ],\n }),\n temperatures: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: true,\n\n title: \"Zależność temperatury wewnętrznej od zewnętrznej\",\n showTitle: true,\n\n xFormatter: (e) => formatNumber(e, {position: -1}),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n ...(settings.limitMin && settings.limitMax && {\n areas: [\n {\n axis: \"0\",\n color: \"green\",\n opacity: 0.3,\n from: settings.limitMin,\n to: settings.limitMax,\n },\n ],\n }),\n xAxis: {\n xKey: \"outsideTemperature\",\n color: \"#333\",\n showAxis: true,\n description: \"Śr. dzienna temperatura zewnętrzna\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Śr. dzienna temperatura wewnętrzna\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n chartSize: CHART_SIZES.BIG,\n usedData: [\n {\n id: \"0\",\n description: \"Śr. dzienna temperatura wewnętrzna\",\n dataSource: \"insideTemperature\",\n axis: \"0\",\n dotted: true,\n lineWidth: 2,\n lineColor: \"#063951\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"^oC\",\n showRegresion: false,\n addRegresionBoundary: false,\n spreadRegresion: false,\n },\n ],\n }),\n heatingCurve: () => ({\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: true,\n showRegression: true,\n regresionPosition: 'left',\n\n title: \"Charakterystyka energetyczna budynku\",\n showTitle: true,\n\n xFormatter: (e) => formatNumber(e, {position: -1}),\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n xAxis: {\n xKey: \"outsideTemperature\",\n color: \"#333\",\n showAxis: true,\n description: \"Temperatura zewnętrzna\",\n showDescription: true,\n unit: \"^oC\",\n rangeFrom: \"-20\",\n rangeTo: \"12\",\n rangeSpan: \"8\",\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Dzienne zuż. ciepła\",\n showDescription: true,\n unit: \"kWh\",\n rangeFrom: \"auto\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n chartSize: CHART_SIZES.SPREAD,\n usedData: [\n {\n id: \"0\",\n description: \"Dzienne zużycie ciepła\",\n dataSource: \"heatConsumption\",\n axis: \"0\",\n dotted: true,\n lineWidth: 2,\n lineColor: \"#063951\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kWh\",\n showRegresion: true,\n addRegresionBoundary: true,\n spreadRegresion: true,\n },\n ],\n }),\n hourlyHeat: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Przebieg poboru ciepła\",\n showTitle: true,\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: true,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C9776B\",\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 4,\n withTime: false,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Pobór mocy cieplnej\",\n showDescription: true,\n unit: \"kW\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n chartSize: CHART_SIZES.SPREAD,\n usedData: [\n {\n id: \"0\",\n description: \"Pobór mocy cieplnej\",\n dataSource: \"heatPower\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#0E4194\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kW\",\n },\n ],\n }),\n hourlyElectricity: ({settings}) => ({\n chartConfig: {\n settings: {\n stopAnimation: true,\n stopInteractive: true,\n title: \"Przebieg poboru energii elektrycznej\",\n showTitle: true,\n showLegend: false,\n horizontalGrid: true,\n verticalGrid: true,\n yFormatter: (e) => formatNumber(e, {position: -1}),\n },\n ...(settings.limit && {\n limits: [\n {\n description: null,\n axis: \"0\",\n lineWidth: 2,\n lineColor: \"#C9776B\",\n dashLength: 10,\n dashSpacing: 15,\n value: settings.limit,\n },\n ],\n }),\n xAxis: {\n xKey: \"time\",\n description: \"Czas\",\n showDescription: false,\n color: \"#333\",\n datesNumber: 4,\n withTime: false,\n },\n yAxises: [\n {\n id: \"0\",\n color: \"#333\",\n showAxis: true,\n side: \"left\",\n description: \"Pobór mocy elektrycznej\",\n showDescription: true,\n unit: \"kW\",\n rangeFrom: \"0\",\n rangeTo: \"auto\",\n rangeSpan: \"auto\",\n },\n ],\n },\n chartType: CHART_TYPES.LINE_CHART,\n chartSize: CHART_SIZES.SPREAD,\n usedData: [\n {\n id: \"0\",\n description: \"Pobór mocy elektrycznej\",\n dataSource: \"electricityPower\",\n axis: \"0\",\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: \"#0E4194\",\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit: \"kW\",\n },\n ],\n }),\n})\n","import allBuildings from './allBuildings';\nimport measuredBuilding from './measuredBuilding';\n\nexport default Object.assign({\n allBuildings,\n measuredBuilding,\n});\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport default ({buildings, buildingColorMapper, ...props}) => (\n \n Legenda\n {buildings.map((e, id) =>(\n \n \n {e.fullName}\n ))}\n \n);\n\nconst BuildingsLegend = styled.div`\n color: black;\n text-align: left;\n`;\n\nconst BuildingColor = styled.div`\n font-size: 16px;\n & + & {\n padding-top: 4px;\n }\n`;\n\nconst Legend = styled.div`\n font-size: 20px;\n padding: 0 0 4px 20px;\n font-size: bold;\n`;\n\nconst Color = styled.div`\n background: ${({color}) => color};\n display: inline-block;\n vertical-align: text-bottom;\n height: 16px;\n width: 16px;\n border-radius: 50%;\n margin-right: 4px;\n`;\n","import React, {useState} from 'react';\nimport styled from 'styled-components';\nimport {Input} from 'antd';\n\nexport default ({comment = '', refId, ...props}) => {\n const [value, changeValue] = useState(comment);\n\n const _onChange = (event) => {\n const v = event && event.target && event.target.value;\n changeValue(v);\n }\nreturn (\n\n \n \n \n {(value && value.length > 0) && (\n {value}\n )}\n)\n};\n\nconst StyledConclusion = styled.div`\n padding: 16px 0 32px;\n`;\n\nconst UsedInput = styled.div`\n @media print {\n display: none;\n }\n`;\n\nconst ResultValue = styled.div`\n font-size: 18px;\n display: none;\n white-space: pre-line;\n @media print {\n display: block;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Row = styled.div`\n display: table-row;\n`;\n\nconst StyledCell = styled.div`\n display: table-cell;\n border: solid 1px black;\n @media print {\n page-break-inside: avoid;\n }\n`;\n\nconst CellInner = styled.div`\n padding: 8px;\n min-height: 24px;\n`;\n\nconst Table = styled.div`\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border: ${({noBorder}) => noBorder ? 'none' : 'solid 2px black'};\n color: black;\n text-align: center;\n\n ${Row}:first-child {\n font-weight: bold;\n ${StyledCell} {\n border: ${({noBorder}) => noBorder ? 'none' : 'solid 2px black'};\n }\n }\n ${StyledCell} {\n ${({noBorder}) => noBorder ? 'border: none' : ''}\n }\n`;\n\nconst Cell = ({children, ...props}) => (\n \n \n {children}\n \n );\n\nexport default Object.assign(\n (props) => (),\n {\n Row,\n Cell,\n },\n);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport chartConfig from './chartsConfig';\n\nimport ChartHolder, { WrappedChart } from '../components/ChartHolder';\nimport Page from '../components/Page';\nimport BuildingsLegend from '../components/BuildingsLegend';\nimport Conclusion from '../components/Conclusion';\nimport PageHeading from '../components/PageHeading';\nimport Table from '../components/Table';\nimport MathParser from '../../../components/MathParser';\nimport { formatNumber, formatPeriod } from '../../../utils/formaters';\n\nexport default ({config, comments = {}, data=[], pms, ...props}) =>\n (\n \n Analiza dla wszystkich budynków\n \n \n \n {`Zestawienie zużycia mediów w budynkach w okresie: ${formatPeriod(config.startDate, config.endDate)}`}\n \n
\n \n Budynek\n \n Zużycie energii elektrycznej [kWh]\n \n \n Zużycie ciepła [kWh]\n \n \n Zużycie wody [m^3]\n \n \n {data.map(({buildingId, fullName, electricityTotalWithInvoices, heatTotallWithInvoices, waterTotallWithInvoices}) => (\n \n {fullName}\n {formatNumber(electricityTotalWithInvoices, {position: -1})}\n {formatNumber(heatTotallWithInvoices, {position: -1})}\n {formatNumber(waterTotallWithInvoices, {position: -1})}\n \n ))}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n Udział budynków w całkowitym zużyciu ciepła\n \n \n Udział budynków w całkowitym zużyciu energii elektrycznej\n \n \n Udział budynków w całkowitym zużyciu wody\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n );\n\nconst TableHeader = styled.div`\n padding: 8px 0;\n height: 40px;\n font-size: 18px;\n`;\n\nconst TableWrapper = styled.div`\n padding: 24px 0;\n`;\n\nconst UsageWrapper = styled.div`\n padding-top: 72px;\n`;\n\nconst BuildingsLegendWrapper = styled.div`\n padding-bottom: 24px;\n`;\n","import React from 'react';\n\nimport chartConfig from './chartsConfig';\n\nimport ChartHolder, { WrappedChart } from '../components/ChartHolder';\nimport Conclusion from '../components/Conclusion';\nimport Page from '../components/Page';\nimport PageHeading from '../components/PageHeading';\nimport { genReportLink } from '../components/ReportNavigation';\n\nexport default ({\n data,\n comments = {},\n id,\n ...props\n}) => (\n {(id === 0) && (\n \n Analiza dla budynków opomiarowanych\n )}\n \n {data.fullName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst passedChartConfig = (data, key) =>\n({\n data: data[key].data,\n ...chartConfig.measuredBuilding[key](data[key]),\n});\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Page from '../components/Page';\nimport PageHeading from '../components/PageHeading';\nimport Conclusion from '../components/Conclusion';\n\nexport default ({comments = {}, ...props}) =>\n (\n \n \n Przedmiot raportu\n \n \n \n Wnioski\n \n \n \n );\n\n// WONTFIX jest jakis problem z ustawianiem pierwszego pola i sie rozciaga\nconst IntroductionWrapper = styled.div`\n margin: 24px 0;\n padding: 24px 0;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Footer from '../components/Footer';\nimport FrontPage from '../components/FrontPage';\nimport Header from '../components/Header';\nimport { PdfHeader, PdfFooter, PdfContainer } from '../components/PdfComponents';\nimport ReportNavigation from '../components/ReportNavigation';\nimport AllBuildings from './AllBuildings';\nimport BuildingReport from './BuildingReport';\nimport Introduction from './Introduction';\n\nexport default ({\n request,\n user,\n creationDate,\n allBuildings,\n measuredBuildings,\n pms,\n printRef,\n comments = {},\n ...props\n}) => (\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n \n {measuredBuildings.map((building, id) =>(\n ))}\n \n \n \n \n);\n\nconst StyledReportGeneration = styled.div`\n position: relative;\n background: #EEF1F1;\n margin: 0 -20px;\n padding: 24px 0;\n`;\n\nconst ReportInner = styled.div`\n position: relative;\n margin: auto;\n max-width: 1224px;\n background: white;\n min-height: 1600px;\n`;\n\nconst ReportContent = styled.div`\n position: relative;\n padding: 24px 0;\n width: 960px;\n margin: auto;\n @media print {\n padding: 0;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Section = ({title, children, ...props}) => (\n \n {title && ({title})}\n {children}\n \n);\n\nconst Title = styled.div`\n font-weight: bold;\n padding: 3px 0 16px;\n`;\n\nconst StyledSection = styled.div`\n & + & {\n padding-top: 16px;\n }\n`;\n\nexport default Object.assign(\n Section,\n {\n Title,\n },\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Button, Icon } from 'antd';\n\n\nexport default ({isSticky, isData, ...props}) => (\n \n \n {isData && (\n {isSticky && ()}\n \n )}\n \n \n);\n\nconst StyledStickySection = styled.div`\n position: relative;\n padding: 8px 20px 0;\n margin: 0 -20px;\n min-height: 48px;\n ${({isSticky}) => isSticky ? `\n border-bottom: solid 1px #EEF1F1;\n background: white;\n ` : ''}\n`;\n\nconst ButtonContainer = styled.div`\n position: absolute;\n right: 20px;\n top: 8px;\n`;\n","import React, { useState, useEffect } from 'react';\nimport ReactToPrint from 'react-to-print';\nimport styled from 'styled-components';\nimport { Button, DatePicker, Form } from 'antd';\n\nimport FormItemWrapper, { validate } from '../../../components/FormItemWrapper';\n\nexport default ({printRef, config = {}, onChange}) => {\n const [_date, setDate] = useState();\n\n useEffect(() => {\n setDate(config.date);\n }, [config.date]);\n\n const onSubmit = (event) => {\n event.preventDefault();\n }\n\n const isFormValid = () => {\n const toValidate = [\n {key: 'date', value: _date},\n ];\n return toValidate.map(({key, value}) => validate({\n ...formRules[key],\n value,\n rules: formRules[key] ? (formRules[key].rules || []) : [],\n })).reduce((prev, {validateStatus}) => prev && validateStatus !== 'error', true);\n }\n \n const onChangeDate = (per, isValid) => isValid\n ? onChange({...config, date: per})\n : setDate(per);\n\n return (\n\n \n \n \n \n \n \n \n \n (\n Pobierz raport\n )}\n content={() => printRef}\n />\n \n \n \n);\n}\n\nconst formRules = {\n date: {\n label: \"Data powstania raportu\",\n required: true,\n },\n};\n\nconst ReportDowloadForm = styled.div`\n margin-bottom: -16px;\n`;\n\nconst ButtonContainer = styled.div`\n padding: 0 0 0 16px;\n`;\n\nconst TopSelectItem = styled.div`\n display: inline-block;\n vertical-align: middle;\n & + & {\n margin-left: 16px;\n }\n`;\n","import React, { useState, useRef, useContext } from 'react';\nimport styled from 'styled-components';\nimport { StickyContainer, Sticky } from 'react-sticky';\nimport { Empty, message } from 'antd';\n\nimport { AppContext } from '../../../AppDataProvider';\nimport { getReportData } from '../services/api';\n\nimport ReportConfig from './ReportConfig';\nimport ConfirmLoad from './ConfirmLoad';\nimport ReportGeneration from './ReportGeneration';\nimport Section from '../components/Section';\nimport StickySection from '../components/StickySection';\nimport ReportDownload from './ReportDownload';\n\n// Istnieje duże obciążenie przy renderowaniu raportów\n// Możliwe jest odczytanie wartości komentarzy za pomocą DOM np:\n// buildings.reduce((prev, e) => [...prev, document.getElementById(`comment-${e}-dailyHeatConsumption`)], []).map(e => e.getElementsByTagName('textarea')[0].value)\n// Komentarze są zatem bindowane tylko w jedną stronę (przy wgraniu)\n\nexport default () => {\n const [reportConfig, setReportConfig] = useState();\n const [reportData, setReportData] = useState();\n const [reportComments, setReportComments] = useState();\n const [reloadAlert, setReloadAlert] = useState();\n\n const {\n startAsyncTask,\n finishAsyncTask,\n users,\n buildings,\n wrapRequest,\n } = useContext(AppContext);\n\n const printRef = useRef();\n\n const loadData = async () => {\n if(reportData) {\n setReloadAlert(true);\n }\n else {\n _loadData(reportConfig);\n }\n }\n\n const _loadData = async (config) => {\n startAsyncTask(\"Pobieranie danych z raportu może trwać do minuty.\");\n await wrapRequest(() => getReportData(config), {\n onError: () => {\n message.error('Nie udało się wygenerować raportu. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const groupedData = getGroupedData(data, users, buildings);\n setReportData(groupedData);\n setReportConfig(groupedData.config);\n setReportComments(groupedData.comments);\n setReloadAlert(false);\n },\n }); \n finishAsyncTask();\n }\n\n return (\n \n \n setReportConfig(v)}/>\n \n \n {({style, isSticky}) =>\n (
\n \n
)}\n
\n \n {reportData\n ? (\n )\n : ()}\n \n {reportData &&\n (\n setReportConfig(v)}\n printRef={printRef.current}\n />\n )}\n setReloadAlert(false)}\n onOk={() => _loadData(reportConfig)}\n />\n
\n );\n}\n\nconst getGroupedData = ({buildingsUsages, request, ...rest}, users, buildings) => {\n const user = users.find(e => e.id === request.userId);\n const measuredBuildings = buildings.filter(({id, hasMetersInstalled}) => hasMetersInstalled && user.buildingsIds.includes(id)).map(({id}) => id);\n return {\n allBuildings: buildingsUsages,\n measuredBuildings: buildingsUsages.filter(e => measuredBuildings.includes(e.buildingId)),\n request,\n user,\n ...rest,\n }\n}\n\nconst StyledGeneration = styled(StickyContainer)`\n background: #EEF1F1;\n position: relative;\n height: 100%;\n width: 100%;\n overflow: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n @media print {\n color: black;\n }\n`;\n","import Reports from './Reports';\n\nexport default Reports;\n","import React from 'react';\nimport Generation from './scenes/Generation';\n\nexport default () => (\n \n);\n","import React, { Component } from 'react';\n\nconst initialReportsState = {\n reports: [],\n};\n\nconst ReportsContext = React.createContext({});\n\nclass ReportsDataProvider extends Component {\n set = field => value => this.setState(() => ({ [field]: value }));\n\n state = {\n ...initialReportsState,\n };\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport { ReportsContext };\nexport default ReportsDataProvider;\n","import styled from 'styled-components';\n\nexport default styled.div`\n background: #EEF1F1;\n position: relative;\n`;\n","import { round } from 'lodash';\n\nexport const extendAlarms = (alarms, alarmTypes) =>\n alarms.map(alarm => ({\n ...alarm,\n key: alarm.id,\n reading: withUnit(round(alarm.reading, 2), alarm.alarmTypeId),\n threshold: withUnit(alarm.threshold, alarm.alarmTypeId),\n alarmType: alarmTypes.find(alarmType => alarmType.id === alarm.alarmTypeId)\n .name,\n }));\n\nconst withUnit = (value, alarmTypeId) => `${value} ${getUnit(alarmTypeId)}`;\n\nexport const getUnit = alarmTypeId => {\n switch (alarmTypeId) {\n case 1:\n case 2:\n return '°C';\n case 3:\n case 4:\n return 'kW';\n case 5:\n return '%';\n default:\n return '';\n }\n};\n","import React, { useState, useContext, createContext } from 'react';\nimport { message } from 'antd';\n\nimport { AppContext } from '../../AppDataProvider';\nimport { AdministrationContext } from '../Administration/AdministrationDataProvider';\n\nimport {\n getActiveAlarms,\n getAlarmsHistory,\n postAlarmDeactivation,\n postNewAlarmSetting,\n} from './services/api';\nimport { extendAlarms } from './services/const';\n\nconst AlarmsContext = createContext({});\n\nconst AdministrationDataProvider = ({ children }) => {\n const { startAsyncTask, finishAsyncTask, enums, wrapRequest } = useContext(\n AppContext,\n );\n const { fetchBuildings } = useContext(AdministrationContext);\n\n const [activeAlarms, setActiveAlarms] = useState([]);\n const [alarmsHistory, setAlarmsHistory] = useState([]);\n\n async function fetchActiveAlarms() {\n startAsyncTask();\n await wrapRequest(() => getActiveAlarms(), {\n onSuccess: data => {\n setActiveAlarms(extendAlarms(data, enums.alarmTypes));\n },\n });\n finishAsyncTask();\n }\n\n async function fetchAlarmsHistory() {\n startAsyncTask();\n await wrapRequest(() => getAlarmsHistory(), {\n onSuccess: data => {\n setAlarmsHistory(extendAlarms(data, enums.alarmTypes));\n },\n });\n finishAsyncTask();\n }\n\n async function changeSetting(setting) {\n startAsyncTask();\n await wrapRequest(() => postNewAlarmSetting(setting), {\n onError: (error = {}) => {\n message.error(\n error.data ||\n 'Nie udało się zaktualizować ustawień alarmów. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: fetchBuildings,\n });\n finishAsyncTask();\n }\n\n async function deactivateAlarm(alarmId) {\n startAsyncTask();\n await wrapRequest(() => postAlarmDeactivation(alarmId), {\n onError: (error = {}) => {\n message.error(\n error.data ||\n 'Nie udało się wyłączyć alarmu. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.',\n );\n },\n onSuccess: () => {\n fetchActiveAlarms();\n fetchAlarmsHistory();\n },\n });\n finishAsyncTask();\n }\n\n const state = {\n activeAlarms,\n alarmsHistory,\n\n fetchActiveAlarms,\n fetchAlarmsHistory,\n changeSetting,\n deactivateAlarm,\n };\n\n return (\n {children}\n );\n};\n\nexport { AlarmsContext };\nexport default AdministrationDataProvider;\n","import React, { useContext } from 'react';\nimport { Table, Button } from 'antd';\nimport { format } from 'date-fns';\n\nimport { AppContext } from '../../../AppDataProvider';\n\nconst formatDate = date => format(date, 'HH:mm DD/MM/YYYY ');\n\nconst historyColumns = [\n {\n title: 'Data wyłączenia',\n dataIndex: 'deactivationTime',\n render: date => formatDate(date),\n },\n];\n\nconst AlarmsTable = ({ alarms, deactivateAlarm, isAdmin, isHistory }) => {\n const { buildings, users } = useContext(AppContext);\n\n const baseColumns = [\n {\n title: 'Budynek',\n dataIndex: 'buildingFullName',\n filters: buildings.map(building => ({\n text: building.fullName,\n value: building.fullName,\n })),\n onFilter: (value, record) => record.buildingFullName === value,\n },\n {\n title: 'Data, godzina',\n dataIndex: 'activationTime',\n defaultSortOrder: 'descend',\n sorter: (a, b, sortOrder) =>\n new Date(a.activationTime).getTime() -\n new Date(b.activationTime).getTime(),\n sortDirections: ['descend', 'ascend'],\n render: date => formatDate(date),\n },\n {\n title: 'Rodzaj alarmu',\n dataIndex: 'alarmType',\n },\n {\n title: 'Wskazanie',\n dataIndex: 'reading',\n },\n {\n title: 'Próg',\n dataIndex: 'threshold',\n },\n ];\n\n const columnsWithUsers = [\n {\n title: 'Użytkownik',\n dataIndex: 'userName',\n filters: users.map(user => ({\n text: user.name,\n value: user.name,\n })),\n onFilter: (value, record) => record.userName === value,\n },\n ...baseColumns,\n ];\n\n const activeAlarmsColumns = [\n {\n title: 'Akcja',\n dataIndex: 'id',\n render: id => (\n \n ),\n },\n ];\n\n const initial = isAdmin ? columnsWithUsers : baseColumns;\n const columns = isHistory\n ? [...initial, ...historyColumns]\n : [...initial, ...activeAlarmsColumns];\n return (\n \n );\n};\n\nexport default AlarmsTable;\n","import React, { useState, useContext } from 'react';\nimport { Select, Switch, InputNumber } from 'antd';\n\nimport { getUnit } from '../services/const';\n\nimport { AppContext } from '../../../AppDataProvider';\n\nconst { Option } = Select;\n\nconst AlarmsSettings = ({ changeSetting }) => {\n const [selectedUserId, setSelectedUserId] = useState();\n const [selectedBuildingId, setSelectedBuildingId] = useState();\n\n const { standardUsers, buildings, enums } = useContext(AppContext);\n const handleUserChange = value => {\n setSelectedUserId(value);\n setSelectedBuildingId(undefined);\n };\n const handleBuildingChange = value => setSelectedBuildingId(value);\n\n const userOptions = standardUsers.map(user => (\n \n ));\n const buildingOptions = selectedUserId\n ? buildings\n .filter(building => building.userId === selectedUserId)\n .map(building => (\n \n ))\n : null;\n\n const selectedBuilding = buildings.find(\n building => building.id === selectedBuildingId,\n );\n\n return (\n
\n
\n \n {userOptions}\n \n {selectedUserId && (\n \n {buildingOptions}\n \n )}\n
\n
\n {selectedBuildingId && (\n \n )}\n
\n
\n );\n};\n\nconst SettingsList = ({ settings, changeSetting, alarmTypes, buildingId }) => {\n return (\n \n {settings.map(setting => (\n \n \n {alarmTypes.find(type => type.id === setting.alarmTypeId).name}\n \n \n \n ))}\n
\n );\n};\n\nconst Table = ({ children, ...props }) => (\n \n {children}\n
\n);\n\nconst Row = props => ;\nconst Cell = props => ;\n\nconst SettingActions = ({ setting, changeSetting, ...rest }) => {\n const [settingValue, setSettingValue] = useState(setting.threshold);\n const [isChecked, setIsChecked] = useState(setting.isEnabled);\n const handleValueChange = value => setSettingValue(value);\n const handleValueBlur = () => {\n changeSetting({\n ...setting,\n threshold: settingValue,\n isEnabled: isChecked,\n });\n };\n const handleCheck = checked => {\n setIsChecked(checked);\n changeSetting({\n ...setting,\n threshold: settingValue,\n isEnabled: checked,\n });\n };\n\n return (\n <>\n \n \n \n {getUnit(setting.alarmTypeId)}\n \n \n \n \n );\n};\n\nexport default AlarmsSettings;\n","import React, { useContext, useEffect } from 'react';\nimport { Tabs } from 'antd';\n\nimport ContentWrapper from '../../../components/ContentWrapper';\nimport { AlarmsContext } from '../AlarmsDataProvider';\nimport AlarmsTable from '../components/AlarmsTable';\nimport AlarmsSettings from './AlarmsSettings';\n\nconst AdminAlarms = () => {\n const {\n activeAlarms,\n alarmsHistory,\n\n fetchActiveAlarms,\n fetchAlarmsHistory,\n changeSetting,\n deactivateAlarm,\n } = useContext(AlarmsContext);\n\n useEffect(() => {\n fetchActiveAlarms();\n fetchAlarmsHistory();\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AdminAlarms;\n","import React, { useContext, useEffect } from 'react';\nimport { Tabs } from 'antd';\n\nimport ContentWrapper from '../../../components/ContentWrapper';\nimport { AlarmsContext } from '../AlarmsDataProvider';\nimport AlarmsTable from '../components/AlarmsTable';\n\nconst UserAlarms = () => {\n const {\n activeAlarms,\n alarmsHistory,\n fetchActiveAlarms,\n fetchAlarmsHistory,\n deactivateAlarm,\n } = useContext(AlarmsContext);\n\n useEffect(() => {\n fetchActiveAlarms();\n fetchAlarmsHistory();\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default UserAlarms;\n","import Alarms from './Alarms';\n\nexport default Alarms;\n","import React, { useContext } from 'react';\n\nimport { AppContext } from '../../AppDataProvider';\n\nimport AdminAlarms from './scenes/AdminAlarms';\nimport UserAlarms from './scenes/UserAlarms';\n\nconst Alarms = () => {\n const { isAdmin } = useContext(AppContext);\n\n return isAdmin ? : ;\n};\n\nexport default Alarms;\n","import axios from 'axios';\n\nexport const getHookUps = async () => {\n const resp = await axios.get('/HookUp');\n return resp;\n};\nexport const postNewHookUp = async hookUp => {\n const resp = await axios.post('/HookUp', hookUp);\n return resp;\n};\nexport const postHookUpUpdate = async hookUp => {\n const resp = await axios.put(`/HookUp/${hookUp.id}`, hookUp);\n return resp;\n};\nexport const postHookUpRemoval = async hookUpId => {\n const resp = await axios.delete(`/HookUp/${hookUpId}`, {});\n return resp;\n};\nexport const postDatabaseBuildingUpdate = async building => {\n const resp = await axios.put(`/Buildings/database/${building.id}`, building);\n return resp;\n};\nexport const getInvoices = async () => {\n const resp = await axios.get('/Invoice');\n return resp;\n};\nexport const postNewInvoice = async invoice => {\n const resp = await axios.post('/Invoice', invoice);\n return resp;\n};\nexport const postInvoiceUpdate = async invoice => {\n const resp = await axios.put(`/Invoice/${invoice.id}`, invoice);\n return resp;\n};\nexport const postInvoiceRemoval = async invoiceId => {\n const resp = await axios.delete(`/Invoice/${invoiceId}`, {});\n return resp;\n};\n","import React, { useState, useContext } from 'react';\nimport { message } from 'antd';\n\nimport { AppContext } from '../../AppDataProvider';\nimport {\n getHookUps,\n getInvoices,\n postDatabaseBuildingUpdate,\n postHookUpRemoval,\n postHookUpUpdate,\n postInvoiceRemoval,\n postInvoiceUpdate,\n postNewHookUp,\n postNewInvoice,\n} from './services/api';\n\nconst DbContext = React.createContext({});\n\nconst DbDataProvider = ({ children }) => {\n const {\n startAsyncTask,\n buildings,\n setBuildings,\n finishAsyncTask,\n wrapRequest,\n } = useContext(AppContext);\n\n const [hookUps, setHookUps] = useState([]);\n const [invoices, setInvoices] = useState([]);\n\n const getData = () => {\n let data;\n if (kind === 'Buildings') {\n data = buildings;\n } else if (kind === 'HookUps') {\n data = hookUps;\n } else {\n data = invoices;\n }\n return data;\n };\n const getCurrentEntry = () => {\n const data = getData();\n const currentEntry = data.find(entry => entry.id === currentId);\n return currentEntry;\n };\n const getIndexById = id => {\n const data = getData();\n const index = data.findIndex(entry => entry.id === id);\n return index;\n };\n\n async function fetchHookUps() {\n startAsyncTask();\n await wrapRequest(() => getHookUps(),\n {\n onSuccess: (data) => setHookUps(data),\n });\n finishAsyncTask();\n }\n\n async function fetchInvoices() {\n startAsyncTask();\n await wrapRequest(() => getInvoices(),\n {\n onSuccess: (data) => setInvoices(data),\n });\n finishAsyncTask();\n }\n\n // Buildings\n\n async function updateBuilding(updatedBuilding) {\n startAsyncTask();\n await wrapRequest(() => postDatabaseBuildingUpdate(updatedBuilding),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się zaktualizować danych budynku. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const newBuildings = [...buildings];\n const updateIndex = getIndexById(data.id);\n newBuildings[updateIndex] = data;\n setBuildings(newBuildings);\n },\n });\n finishAsyncTask();\n }\n\n // HookUps\n\n async function createHookUp(newHookUp) {\n startAsyncTask();\n await wrapRequest(() => postNewHookUp(newHookUp),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się dodać przyłącza. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchHookUps,\n });\n finishAsyncTask();\n }\n\n async function updateHookUp(updatedHookUp) {\n startAsyncTask();\n await wrapRequest(() => postHookUpUpdate(updatedHookUp),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się zaktualizować danych o przyłączu. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const newHookUps = [...hookUps];\n const updateIndex = getIndexById(data.id);\n newHookUps[updateIndex] = data;\n setHookUps(newHookUps);\n },\n });\n finishAsyncTask();\n }\n\n async function deleteHookUp(hookUpToDelete) {\n startAsyncTask();\n await wrapRequest(() => postHookUpRemoval(hookUpToDelete.id),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się usunąć przyłącza. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchHookUps,\n });\n finishAsyncTask();\n }\n\n async function createInvoice(newInvoice) {\n startAsyncTask();\n await wrapRequest(() => postNewInvoice(newInvoice),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się utworzyć faktury. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchInvoices,\n });\n finishAsyncTask();\n }\n\n async function updateInvoice(updatedInvoice) {\n startAsyncTask();\n await wrapRequest(() => postInvoiceUpdate(updatedInvoice),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się zaktualizować danych faktury. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: (data) => {\n const newInvoicess = [...invoices];\n const updateIndex = getIndexById(data.id);\n newInvoicess[updateIndex] = data;\n setInvoices(newInvoicess);\n },\n });\n finishAsyncTask();\n }\n\n async function deleteInvoice(invoiceToDelete) {\n startAsyncTask();\n await wrapRequest(() => postInvoiceRemoval(invoiceToDelete.id),\n {\n onError: (error = {}) => {\n message.error(error.data || 'Nie udało się usunąć faktury. Jeśli sytuacja się będzie powtarzać, prośba o kontakt z administracją serwisu.');\n },\n onSuccess: fetchInvoices,\n });\n finishAsyncTask();\n }\n\n // COMMMON\n\n const [currentId, setCurrentId] = useState(undefined);\n const [mode, setMode] = useState(undefined);\n const [kind, setKind] = useState(undefined);\n const [isModalVisible, setIsModalVisible] = useState(false);\n\n const state = {\n buildings,\n hookUps,\n invoices,\n\n fetchHookUps,\n fetchInvoices,\n\n // Buildings\n updateBuilding,\n // HookUps\n createHookUp,\n updateHookUp,\n deleteHookUp,\n // Invoices\n createInvoice,\n updateInvoice,\n deleteInvoice,\n mode,\n setMode,\n kind,\n setKind,\n currentConfig: `${mode}${kind}`,\n\n setCurrentId,\n currentEntry: getCurrentEntry(),\n\n isModalVisible,\n setIsModalVisible,\n };\n\n return {children};\n};\n\nexport { DbContext };\nexport default DbDataProvider;\n","import React, { useContext } from 'react';\n\nimport CrudList from '../../../../components/CRUDs/CrudList';\nimport { DbContext } from '../../DbDataProvider';\n\nconst BuildingsList = () => {\n const {\n setCurrentId,\n buildings,\n setMode,\n setKind,\n setIsModalVisible,\n } = useContext(DbContext);\n\n const showBuildingsModal = id => {\n setIsModalVisible(true);\n setCurrentId(id);\n setKind('Buildings');\n };\n\n const handleReadBuilding = id => {\n showBuildingsModal(id);\n setMode('read');\n };\n\n const handleUpdateBuilding = id => {\n showBuildingsModal(id);\n setMode('update');\n };\n\n return (\n ({\n name: building.fullName,\n description: `${building.street}, ${building.city}`,\n id: building.id,\n }))}\n onRead={handleReadBuilding}\n onUpdate={handleUpdateBuilding}\n />\n );\n};\n\nexport default BuildingsList;\n","import React, { useContext, useState } from 'react';\nimport { Select } from 'antd';\n\nimport { AppContext } from '../../../../AppDataProvider';\nimport CrudList from '../../../../components/CRUDs/CrudList';\nimport { DbContext } from '../../DbDataProvider';\n\nconst { Option } = Select;\n\nconst HookUpsList = () => {\n const {\n hookUps,\n setCurrentId,\n setMode,\n setKind,\n setIsModalVisible,\n } = useContext(DbContext);\n\n const { buildings, enums } = useContext(AppContext);\n\n const showHookUpsModal = id => {\n setIsModalVisible(true);\n setCurrentId(id);\n setKind('HookUps');\n };\n\n const handleCreateHookUp = () => {\n showHookUpsModal();\n setMode('create');\n };\n\n const handleReadHookUp = id => {\n showHookUpsModal(id);\n setMode('read');\n };\n\n const handleUpdateHookUp = id => {\n showHookUpsModal(id);\n setMode('update');\n };\n\n const handleDeleteHookUp = id => {\n showHookUpsModal(id);\n setMode('delete');\n };\n\n const [selectedBuildingId, setSelectedBuildingId] = useState();\n const handleBuildingChange = value => setSelectedBuildingId(value);\n const buildingOptions = buildings.map(building => (\n \n ));\n\n const filteredHookUps = hookUps\n .filter(hookUp => hookUp.buildingId === selectedBuildingId)\n .map(hookUp => ({\n name: hookUp.name,\n description: `${enums.hookUpTypes[hookUp.type - 1].name}, nr ${hookUp.number}`,\n id: hookUp.id,\n }));\n\n return (\n <>\n \n {buildingOptions}\n \n {selectedBuildingId && (\n \n )}\n \n );\n};\n\nexport default HookUpsList;\n","export const getHookUpDetails = (hookUpId, hookUps, buildings) =>\n (h =>\n h ? ` - ${h.name} - ${getBuildingName(h.buildingId, buildings)}` : '')(\n hookUps.find(e => e.id === hookUpId),\n );\n\nexport const getHookUpUnit = (hookUpId, hookUps) => {\n const hookUp = hookUps.find(h => h.id === hookUpId);\n if (!hookUp) {\n return '';\n }\n\n switch (hookUp.type) {\n case 1:\n case 2:\n return 'kWh';\n case 3:\n return 'GJ';\n case 4:\n return 'm^3';\n default:\n return '';\n }\n};\n\nconst getBuildingName = (id, buildings) =>\n (e => (e ? e.fullName : ''))(buildings.find(e => e.id === id));\n","import React, { useContext, useState } from 'react';\nimport moment from 'moment';\nimport { Select } from 'antd';\n\nimport CrudList from '../../../../components/CRUDs/CrudList';\n\nimport { AppContext } from '../../../../AppDataProvider';\nimport { DbContext } from '../../DbDataProvider';\nimport { getHookUpDetails, getHookUpUnit } from './services/services';\n\nconst { Option } = Select;\n\nconst InvoicesList = () => {\n const { buildings, enums } = useContext(AppContext);\n const {\n hookUps,\n invoices,\n setCurrentId,\n setMode,\n setKind,\n setIsModalVisible,\n } = useContext(DbContext);\n\n const showInvoicesModal = id => {\n setIsModalVisible(true);\n setCurrentId(id);\n setKind('Invoices');\n };\n\n const handleCreateInvoice = () => {\n showInvoicesModal();\n setMode('create');\n };\n\n const handleReadInvoice = id => {\n showInvoicesModal(id);\n setMode('read');\n };\n\n const handleUpdateInvoice = id => {\n showInvoicesModal(id);\n setMode('update');\n };\n\n const handleDeleteInvoice = id => {\n showInvoicesModal(id);\n setMode('delete');\n };\n\n const [selectedBuildingId, setSelectedBuildingId] = useState();\n const handleBuildingChange = value => {\n setSelectedBuildingId(value);\n setSelectedHookUpId(undefined);\n };\n\n const buildingOptions = buildings.map(building => (\n \n ));\n\n const [selectedHookUpId, setSelectedHookUpId] = useState();\n const handleHookUpChange = value => setSelectedHookUpId(value);\n const hookUpsgOptions = hookUps\n .filter(hookUp => hookUp.buildingId === selectedBuildingId)\n .map(hookUp => (\n \n ));\n\n const filteredInvoices = invoices\n .filter(invoice => invoice.hookUpId === selectedHookUpId)\n .map(invoice => ({\n name: `Faktura ${moment(invoice.month).format(\n 'MM-YYYY',\n )}${getHookUpDetails(invoice.hookUpId, hookUps, buildings)}`,\n description: `Zużycie ${invoice.monthlyUsage} ${getHookUpUnit(\n invoice.hookUpId,\n hookUps,\n )}`,\n id: invoice.id,\n }));\n\n return (\n <>\n \n {buildingOptions}\n \n {selectedBuildingId && (\n \n {hookUpsgOptions}\n \n )}\n {selectedHookUpId && (\n \n )}\n \n );\n};\n\nexport default InvoicesList;\n","import React, { useState, useContext } from 'react';\nimport axios from 'axios';\nimport { saveAs } from 'file-saver';\nimport { Button, Select, DatePicker, Form } from 'antd';\n\nimport { AppContext } from '../../../../AppDataProvider';\n\nconst { Option } = Select;\nconst { MonthPicker } = DatePicker;\n\nconst BUILDING_FIELDS = [\n {\n field: 'FullName',\n label: 'Pełna nazwa',\n },\n {\n field: 'ShortName',\n label: 'Krótka nazwa',\n },\n {\n field: 'Street',\n label: 'Ulica',\n },\n {\n field: 'City',\n label: 'Miasto',\n },\n {\n field: 'PostOffice',\n label: 'Poczta',\n },\n {\n field: 'Area',\n label: 'Powierzchnia',\n },\n {\n field: 'OrderedElectricPower',\n label: 'Zamówiona moc elekt.',\n },\n {\n field: 'OrderedHeatPower',\n label: 'Zamówiona moc cieplna',\n },\n {\n field: 'RenewableEnergySourcesPower',\n label: 'Źródła energii odn.',\n },\n {\n field: 'HasMetersInstalled',\n label: 'Opomiarowany',\n },\n {\n field: 'ManagerEmail',\n label: 'Email kierownika',\n },\n {\n field: 'CategoryId',\n label: 'Kategoria',\n },\n];\n\nconst DataExport = () => {\n const [buildingsIds, setBuildingsIds] = useState([]);\n const handleBuildingSelect = values => setBuildingsIds(values);\n\n const [buildingsFields, setBuildingsFields] = useState([]);\n const handleBuildingFieldSelect = values => setBuildingsFields(values);\n\n const [hookUpTypesIds, setHookUpTypesIds] = useState([]);\n const handleHookUpTypeSelect = values => setHookUpTypesIds(values);\n\n const { buildings, enums } = useContext(AppContext);\n\n const buildingOptions = buildings.map(building => (\n \n ));\n\n const buildingFieldOptions = BUILDING_FIELDS.map(entry => (\n \n ));\n\n const invoiceOptions = enums.hookUpTypes.map(hookUpType => (\n \n ));\n\n const [startDate, setStartDate] = useState();\n const [endDate, setEndDate] = useState();\n const handleStartMonthSelect = value => setStartDate(value);\n const handleEndMonthSelect = value => setEndDate(value);\n const disabledStartDate = newStartDate => {\n if (!newStartDate || !endDate) {\n return false;\n }\n return newStartDate.valueOf() > endDate.valueOf();\n };\n const disabledEndDate = newEndDate => {\n if (!newEndDate || !startDate) {\n return false;\n }\n return newEndDate.valueOf() <= startDate.valueOf();\n };\n\n const isFormValid = buildingsIds.length > 0 && startDate && endDate;\n\n const handleExport = async () => {\n const request = {\n buildingsIds,\n buildingsFields,\n hookUpTypesIds,\n startDate: startDate.toISOString(),\n endDate: endDate.toISOString(),\n }\n const response = await axios.post('/DataExport/export', request, { responseType: 'blob' });\n saveAs(response.data, `Eksport danych.xlsx`);\n };\n\n return (\n
\n \n \n {buildingOptions}\n \n \n \n \n {buildingFieldOptions}\n \n \n \n \n {invoiceOptions}\n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default DataExport;\n","import React, { useState, useContext } from 'react';\nimport styled from 'styled-components';\nimport { Button, Tabs } from 'antd';\n\nimport CheckboxField from '../../../../components/CRUDs/CheckboxField';\nimport NumberField from '../../../../components/CRUDs/NumberField';\nimport SelectField from '../../../../components/CRUDs/SelectField';\nimport TextField from '../../../../components/CRUDs/TextField';\n\nimport { AppContext } from '../../../../AppDataProvider';\nimport { AdministrationContext } from '../../../Administration/AdministrationDataProvider';\n\nconst { TabPane } = Tabs;\n\nconst TabWrapper = styled.div`\n height: 500px;\n overflow-y: scroll;\n padding-right: 16px;\n position: relative;\n`;\n\nconst BuildingForm = ({\n editable,\n initialState,\n actionLabel,\n onCancel,\n onAction,\n removeMode = false,\n}) => {\n const data = initialState || {\n // Admin\n fullName: '',\n shortName: '',\n street: '',\n city: '',\n postalCode: '',\n postOffice: '',\n hasMetersInstalled: true,\n category: 1,\n userId: 0,\n // User\n yearOfConstruction: 0,\n modernisationDescription: '',\n hasThermostaticValves: true,\n cubature: 0,\n mainElectricityHookUpPower: 0,\n mainHeatHookUpPower: 0,\n coolingType: undefined,\n lightingType: undefined,\n ventilationType: undefined,\n heatingSourceType: undefined,\n heatingEnergyCarrierType: undefined,\n renewableEnergySourceType: undefined,\n domesticHotWaterSourceType: undefined,\n };\n\n const { enums } = useContext(AppContext);\n const { users } = useContext(AdministrationContext);\n\n const [formData, setFormData] = useState(data);\n\n const onChange = (fieldName, e) => {\n setFormData({\n ...formData,\n [fieldName]: e.target.value,\n });\n };\n\n const handleAction = () => {\n onAction(formData);\n onCancel();\n };\n\n const adminProps = { editable: false, formData };\n\n const handleValvesCheck = e =>\n setFormData({\n ...formData,\n hasThermostaticValves: e.target.checked,\n });\n\n const onSelect = (fieldName, value) => {\n setFormData({\n ...formData,\n [fieldName]: value,\n });\n };\n\n const userProps = { editable, onChange: onSelect, formData };\n const textProps = { editable, onChange, formData };\n\n return (\n
\n {removeMode ? (\n
Czy na pewno chcesz usunąć budynek?
\n ) : (\n \n \n \n \n \n \n \n \n \n \n Budynek opomiarowany\n \n \n \n \n \n \n \n \n \n \n Posiada zawory termostatyczne\n \n \n \n \n onSelect('coolingType', v)}\n disabled={!editable}\n value={formData.coolingType}\n items={enums.coolingTypes}\n />\n onSelect('lightingType', v)}\n disabled={!editable}\n value={formData.lightingType}\n items={enums.lightingTypes}\n />\n onSelect('ventilationType', v)}\n disabled={!editable}\n value={formData.ventilationType}\n items={enums.ventilationTypes}\n />\n onSelect('heatingSourceType', v)}\n disabled={!editable}\n value={formData.heatingSourceType}\n items={enums.heatingSourceTypes}\n />\n onSelect('heatingEnergyCarrierType', v)}\n disabled={!editable}\n value={formData.heatingEnergyCarrierType}\n items={enums.heatingEnergyCarrierTypes}\n />\n onSelect('renewableEnergySourceType', v)}\n disabled={!editable}\n value={formData.renewableEnergySourceType}\n items={enums.renewableEnergySourceTypes}\n />\n onSelect('domesticHotWaterSourceType', v)}\n disabled={!editable}\n value={formData.domesticHotWaterSourceType}\n items={enums.domesticHotWaterSourceTypes}\n />\n \n \n \n )}\n \n \n \n
\n
\n );\n};\n\nexport default BuildingForm;\n","import React, { useState, useContext } from 'react';\nimport { Button } from 'antd';\n\nimport TextField from '../../../../components/CRUDs/TextField';\nimport NumberField from '../../../../components/CRUDs/NumberField';\nimport SelectField from '../../../../components/CRUDs/SelectField';\nimport { AppContext } from '../../../../AppDataProvider';\nimport { DbContext } from '../../DbDataProvider';\n\nconst HookUpForm = ({\n editable,\n initialState,\n actionLabel,\n onCancel,\n onAction,\n removeMode = false,\n}) => {\n const data = initialState || {\n name: '',\n number: '',\n tariff: '',\n orderedPower: 0,\n type: 1,\n buildingId: 0,\n };\n\n const [formData, setFormData] = useState(data);\n\n const { enums } = useContext(AppContext);\n const { buildings } = useContext(DbContext);\n\n const onChange = (fieldName, e) => {\n setFormData({\n ...formData,\n [fieldName]: e.target.value,\n });\n };\n\n const onChangeValue = (fieldName, value) => {\n setFormData({\n ...formData,\n [fieldName]: value,\n });\n };\n\n const handleAction = () => {\n onAction(formData);\n onCancel();\n };\n\n const textProps = { editable, onChange, formData };\n return (\n
\n {removeMode ? (\n
Czy na pewno chcesz usunąć przyłącze ?
\n ) : (\n <>\n \n \n \n \n onChangeValue('type', v)}\n disabled={!editable}\n value={formData.type}\n items={enums.hookUpTypes}\n />\n onChangeValue('buildingId', v)}\n disabled={!editable}\n value={formData.buildingId}\n items={buildings}\n itemKey=\"fullName\"\n />\n \n )}\n \n \n \n
\n
\n );\n};\n\nexport default HookUpForm;\n","import React, { useState, useContext } from 'react';\nimport moment from 'moment';\nimport { isNil } from 'lodash';\nimport { Button, DatePicker, Form } from 'antd';\n\nimport NumberField from '../../../../components/CRUDs/NumberField';\nimport SelectField from '../../../../components/CRUDs/SelectField';\nimport { DbContext } from '../../DbDataProvider';\nimport { getHookUpUnit } from './services/services';\n\nconst { MonthPicker } = DatePicker;\n\nconst InvoiceForm = ({\n editable,\n initialState,\n actionLabel,\n onCancel,\n onAction,\n removeMode = false,\n}) => {\n const data = initialState || {\n month: null,\n monthlyUsage: 0,\n hookUpId: undefined,\n };\n\n const [formData, setFormData] = useState({\n ...data,\n month: isNil(data.month) ? data.month : moment(data.month),\n });\n const { hookUps } = useContext(DbContext);\n\n const onChange = (fieldName, value) => {\n setFormData({\n ...formData,\n [fieldName]: value,\n });\n };\n\n const handleAction = () => {\n onAction({\n ...formData,\n month: moment(formData.month).format(),\n });\n onCancel();\n };\n\n return (\n
\n {removeMode ? (\n
Czy na pewno chcesz usunąć fakturę ?
\n ) : (\n <>\n \n onChange('month', v)}\n placeholder=\"Wybierz miesiąc\"\n />\n \n \n `${value} ${getHookUpUnit(formData.hookUpId, hookUps)}`\n }\n />\n onChange('hookUpId', v)}\n disabled={!editable}\n value={formData.hookUpId}\n items={hookUps}\n />\n \n )}\n \n \n \n
\n \n );\n};\n\nexport default InvoiceForm;\n","import React, { useContext } from 'react';\nimport { Modal } from 'antd';\n\nimport { DbContext } from '../DbDataProvider';\nimport BuildingForm from './Buildings/BuildingForm';\nimport HookUpForm from './HookUps/HookUpForm';\nimport InvoiceForm from './Invoices/InvoiceForm';\n\nconst CommonModal = () => {\n const {\n // Buildings\n updateBuilding,\n // HookUps\n createHookUp,\n updateHookUp,\n deleteHookUp,\n // Invoices\n createInvoice,\n updateInvoice,\n deleteInvoice,\n // Rest\n currentEntry,\n setMode,\n setKind,\n currentConfig,\n setIsModalVisible,\n isModalVisible,\n } = useContext(DbContext);\n\n const closeModal = () => {\n setIsModalVisible(false);\n setMode(undefined);\n setKind(undefined);\n };\n\n const buildingModalConfigs = {\n readBuildings: {\n header: 'Szczegóły Obiektu',\n component: () => (\n \n ),\n },\n updateBuildings: {\n header: 'Edytuj Obiekt',\n component: () => (\n \n ),\n actionLabel: 'Zapisz',\n },\n };\n\n const hookUpModalConfigs = {\n createHookUps: {\n header: 'Nowe przyłącze',\n component: () => (\n \n ),\n },\n readHookUps: {\n header: 'Szczegóły Przyłącza',\n component: () => (\n \n ),\n },\n updateHookUps: {\n header: 'Edytuj Przyłącze',\n component: () => (\n \n ),\n actionLabel: 'Zapisz',\n },\n deleteHookUps: {\n header: 'Usuń Przyłącze',\n component: () => (\n \n ),\n },\n };\n\n const invoiceModalConfigs = {\n createInvoices: {\n header: 'Nowa faktura',\n component: () => (\n \n ),\n },\n readInvoices: {\n header: 'Szczegóły Faktury',\n component: () => (\n \n ),\n },\n updateInvoices: {\n header: 'Edytuj Fakturę',\n component: () => (\n \n ),\n actionLabel: 'Zapisz',\n },\n deleteInvoices: {\n header: 'Usuń Fakturę',\n component: () => (\n \n ),\n },\n };\n const modalConfigs = {\n ...buildingModalConfigs,\n ...hookUpModalConfigs,\n ...invoiceModalConfigs,\n };\n\n const currentModalConfig = modalConfigs[currentConfig];\n const ModalComponent = currentModalConfig\n ? currentModalConfig.component\n : null;\n\n return currentModalConfig ? (\n \n \n \n ) : null;\n};\n\nexport default CommonModal;\n","import Db from './Db';\n\nexport default Db;\n","import React, { useContext, useEffect } from 'react';\nimport { Tabs } from 'antd';\n\nimport { DbContext } from './DbDataProvider';\n\nimport BuildingsList from './scenes/Buildings/BuildingsList';\nimport HookUpsList from './scenes/HookUps/HookUpsList';\nimport InvoicesList from './scenes/Invoices/InvoicesList';\nimport DataExport from './scenes/DataExport/DataExport';\nimport CommonModal from './scenes/CommonModal';\nimport { AdministrationContext } from '../Administration/AdministrationDataProvider';\n\nconst Db = () => {\n const { fetchBuildings } = useContext(AdministrationContext);\n const { fetchHookUps, fetchInvoices } = useContext(DbContext);\n\n useEffect(() => {\n fetchBuildings();\n }, []);\n useEffect(() => {\n fetchHookUps();\n }, []);\n useEffect(() => {\n fetchInvoices();\n }, []);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Db;\n","// Converts a #ffffff hex string into an [r,g,b] array\nfunction hex2rgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? [\n parseInt(result[1], 16),\n parseInt(result[2], 16),\n parseInt(result[3], 16),\n ]\n : null;\n}\n\nfunction rgb2hsl(color) {\n const r = color[0] / 255;\n const g = color[1] / 255;\n const b = color[2] / 255;\n\n const max = Math.max(r, g, b);\n\n const min = Math.min(r, g, b);\n let h;\n\n let s;\n\n const l = (max + min) / 2;\n\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n\n return [h, s, l];\n}\n\nfunction interpolateHSL(color1, color2, factor) {\n const hsl1 = rgb2hsl(hex2rgb(color1));\n const hsl2 = rgb2hsl(hex2rgb(color2));\n for (let i = 0; i < 3; i++) {\n hsl1[i] += factor * (hsl2[i] - hsl1[i]);\n }\n return `hsl(${hsl1[0] * 360},${hsl1[1] * 100}%,${hsl1[2] * 100}%)`;\n}\n\nexport default interpolateHSL;\n","import React, { useRef, useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport interpolateHSL from './colorInterpolation';\nimport MathParser from '../../../../components/MathParser';\nimport { formatNumber } from '../../../../utils/formaters';\n\nconst Gauge = ({\n title,\n // Values\n value = 60,\n minValue = 0,\n maxValue = 100,\n // Styling\n startColor = '#33CC33',\n endColor = '#FF471A',\n segmentColors,\n segmentsCount = 10,\n // Sizing\n innerRadius = 90,\n outerRadius = 180,\n // Needle\n needleClassname = '',\n}) => {\n const canvasRef = useRef();\n useEffect(() => {\n const ctx = canvasRef.current.getContext('2d');\n drawGauge(ctx, segmentsCount, startColor, endColor);\n }, []);\n\n const needleAngle = 180 * (value / maxValue) - 90;\n const normalizedNeedleAngle = (maxValue <= 0) ? 0 : parseInt(\n Math.max(-90, Math.min(needleAngle, 90)),\n 10,\n );\n\n const normalizedFactor = Math.min(1, value / maxValue);\n const valueColor = interpolateHSL(startColor, endColor, normalizedFactor);\n\n return (\n \n {formatNumber(minValue, {position: -1})}\n
\n {formatNumber(maxValue / 2, {position: -1})}\n
\n \n \n
\n {formatNumber(value, {position: -1})}\n {title && <MathParser>{title}</MathParser>}\n
\n {formatNumber(maxValue, {position: -1})}\n
\n );\n\n function drawSegment(ctx, segmentNo, arcAngle, color) {\n const startAngle = segmentNo * arcAngle;\n const endAngle = (segmentNo + 1) * arcAngle;\n const ringWidth = outerRadius - innerRadius;\n\n ctx.beginPath();\n ctx.arc(\n outerRadius,\n outerRadius,\n outerRadius,\n Math.PI + startAngle,\n Math.PI + endAngle,\n ); // outer\n const { x, y } = getLineCords(innerRadius, endAngle);\n ctx.lineTo(ringWidth + x, outerRadius - y);\n ctx.arc(\n outerRadius,\n outerRadius,\n innerRadius,\n -(Math.PI - endAngle),\n -(Math.PI - startAngle),\n true,\n ); // inner\n const { x: endX, y: endY } = getLineCords(outerRadius, startAngle);\n ctx.lineTo(endX, outerRadius - endY);\n ctx.closePath();\n\n ctx.strokeStyle = 'white';\n // ctx.lineWidth = 3;\n // ctx.stroke();\n ctx.fillStyle = color;\n ctx.fill();\n\n function getLineCords(r, alfa) {\n return {\n x: r - r * Math.cos(alfa),\n y: r * Math.sin(alfa),\n };\n }\n }\n\n function drawGauge(ctx, segmentsCount, startColor, endColor) {\n const colors = getColors(startColor, endColor, segmentsCount);\n const arcAngle = Math.PI / segmentsCount;\n [...Array(segmentsCount).keys()].map(num =>\n drawSegment(ctx, num, arcAngle, colors[num]),\n );\n }\n\n function getColors(startColor, endColor, segmentsCount) {\n return (\n segmentColors ||\n [...Array(segmentsCount).keys()]\n .map(num => num / segmentsCount)\n .map(factor => interpolateHSL(startColor, endColor, factor))\n );\n }\n};\n\nconst Title = styled.div`\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n`;\nconst Container = styled.div`\n display: flex;\n align-items: flex-end;\n font-size: 20px;\n font-weight: bold;\n`;\n\nconst TopLabel = styled.div`\n width: 100%;\n text-align: center;\n`;\n\nconst RightLabel = styled.div`\n font-weight: bold;\n margin-left: 10px;\n margin-bottom: 66px;\n`;\n\nconst LeftLabel = styled.div`\n margin-right: 10px;\n margin-bottom: 66px;\n`;\n\nconst ValueLabel = styled.div`\n width: 100%;\n text-align: center;\n font-size: 30px;\n color: ${p => p.color};\n`;\n\nconst Needle = styled.div`\n height: ${p => p.outerRadius * 0.85}px;\n width: 10px;\n position: absolute;\n left: ${p => p.outerRadius}px;\n top: ${p => p.outerRadius}px;\n background: #333;\n transform: translate(-50%, -100%) rotate(${p => p.angle}deg);\n transform-origin: 50% 100%;\n clip-path: polygon(50% 0, 80% 20%, 100% 100%, 0 100%);\n border-radius: 0 0 15px 15px;\n`;\n\nexport default Gauge;\n","import { formatNumber } from '../../../../utils/formaters';\nimport { CHART_TYPES } from '../../../../components/CustomChart';\n\nconst getConfig = ({ barColor, unit, dataFieldName, avgValue, title }) => ({\n chartConfig: {\n settings: {\n stopAnimation: false,\n stopInteractive: false,\n title: '',\n showTitle: false,\n showLegend: false,\n horizontalGrid: false,\n verticalGrid: false,\n xFormatter: e => e,\n yFormatter: e => formatNumber(e, { position: -1 }),\n },\n limits: [\n {\n description: '',\n axis: '0',\n lineWidth: 2,\n lineColor: 'black',\n dashLength: 10,\n dashSpacing: 15,\n value: avgValue,\n },\n ],\n xAxis: {\n xKey: 'name',\n description: '',\n showDescription: false,\n color: '#333',\n datesNumber: 3,\n withTime: false,\n useDefault: true,\n minTickGap: 15,\n interval: 'preserveStart',\n },\n yAxises: [\n {\n id: '0',\n color: '#333',\n showAxis: true,\n side: 'left',\n description: '',\n showDescription: false,\n unit: '',\n rangeFrom: '0',\n rangeTo: 'auto',\n rangeSpan: 'auto',\n },\n ],\n },\n chartType: CHART_TYPES.BAR_CHART,\n usedData: [\n {\n id: '0', // Po co to ?\n description: 'Zużycie',\n dataSource: 'usage',\n axis: '0',\n showRegresion: false,\n dotted: false,\n lineWidth: 2,\n lineColor: barColor,\n dashed: false,\n dashLength: 5,\n dashSpacing: 5,\n unit,\n },\n ],\n title,\n dataFieldName,\n});\n\nexport const preventNaN = v =>\n Number.isNaN(v) || v === 'NaN' || v === null || v === undefined ? 0 : v;\n\nexport const getMyBuildingsChartsConfig = ({\n avgElectricityUsage,\n avgHeatUsage,\n avgEnergyUsage,\n avgWaterUsage,\n}) =>\n [\n {\n barColor: '#10C8CA',\n dataFieldName: 'electricityUsagesPerSqMeter',\n unit: 'kWh/m^2*rok',\n title: 'Zużycie energii elektrycznej [kWh/m^2]',\n avgValue: preventNaN(avgElectricityUsage),\n },\n {\n barColor: '#4462ba',\n dataFieldName: 'heatUsagesPerSqMeter',\n unit: 'kWh/m^2*rok',\n title: 'Zużycie ciepła [kWh/m^2]',\n avgValue: preventNaN(avgHeatUsage),\n },\n {\n barColor: '#7FD2BE',\n dataFieldName: 'energyUsagesPerSqMeter',\n unit: 'kWh/m^2*rok',\n title: 'Zużycie energii [kWh/m^2]',\n avgValue: preventNaN(avgEnergyUsage),\n },\n {\n barColor: '#2490be',\n dataFieldName: 'waterUsagesPerSqMeter',\n unit: 'm^3/m^2*rok',\n title: 'Zużycie wody [m^3/m^2]',\n avgValue: preventNaN(avgWaterUsage),\n },\n ].map(getConfig);\n","import axios from 'axios';\nimport { preventNaN } from '../scenes/MyBuildings/chartConfig';\n\nexport const getMyBuildingsBenchmark = async buildings => {\n const resp = await axios.get('/Benchmarking/usages');\n return {\n ...resp,\n data: parseBackendChartData(resp.data, buildings),\n }\n};\n\nconst parseBackendChartData = (backendData, buildings) => ({\n avgElectricityUsage: preventNaN(backendData.avgElectricityUsage),\n avgEnergyUsage: preventNaN(backendData.avgEnergyUsage),\n avgHeatUsage: preventNaN(backendData.avgHeatUsage),\n avgWaterUsage: preventNaN(backendData.avgWaterUsage),\n electricityUsagesPerSqMeter: getBuildingsNames(\n backendData.electricityUsagesPerSqMeter,\n buildings,\n ),\n heatUsagesPerSqMeter: getBuildingsNames(\n backendData.heatUsagesPerSqMeter,\n buildings,\n ),\n energyUsagesPerSqMeter: getBuildingsNames(\n backendData.energyUsagesPerSqMeter,\n buildings,\n ),\n waterUsagesPerSqMeter: getBuildingsNames(\n backendData.waterUsagesPerSqMeter,\n buildings,\n ),\n});\n\nconst getBuildingsNames = (usages, buildings) => {\n return usages.map(usage => {\n const building = buildings.find(b => b.id === usage.buildingId);\n return {\n name: building ? building.shortName : '',\n usage: preventNaN(usage.usage),\n };\n });\n};\n\n\nexport const getDatabaseBenchmark = async ({\n buildingId,\n compareOnlyWithinSameCategory,\n}) => {\n const resp = await axios.put('/Benchmarking/comparison', {buildingId, compareOnlyWithinSameCategory});\n return {\n ...resp,\n data: parseBackendGaugesData(resp.data),\n }\n};\n\nconst parseBackendGaugesData = backendData => [\n {\n title: 'Jednostkowe zużycie ciepła [kWh/m^2]',\n value: preventNaN(backendData.chosenBuildingHeatUsagePerSqMeter),\n avg: preventNaN(backendData.avgHeatUsage),\n },\n {\n title: 'Jednostkowe zużycie energii elektrycznej [kWh/m^2]',\n value: preventNaN(backendData.chosenBuildingElectricityUsagePerSqMeter),\n avg: preventNaN(backendData.avgElectricityUsage),\n },\n {\n title: 'Jednostkowe zużycie energii [kWh/m^2]',\n value: preventNaN(backendData.chosenBuildingEnergyUsagePerSqMeter),\n avg: preventNaN(backendData.avgEnergyUsage),\n },\n {\n title: 'Jednostkowe zużycie wody [m^3/m^2]',\n value: preventNaN(backendData.chosenBuildingWaterUsagePerSqMeter),\n avg: preventNaN(backendData.avgWaterUsage),\n },\n];\n","import React, { useState, useContext } from 'react';\n\nimport { getMyBuildingsBenchmark, getDatabaseBenchmark } from './services/api';\n\nimport { AppContext } from '../../AppDataProvider';\n\nconst BenchmarkingContext = React.createContext({});\n\nconst BenchmarkingDataProvider = ({ children }) => {\n const { startAsyncTask, finishAsyncTask, buildings, wrapRequest } = useContext(AppContext);\n\n const [myBuildingsBenchmark, setMyBuildingsBenchmark] = useState();\n const [databaseBenchmark, setDatabaseBenchmark] = useState();\n\n async function fetchMyBuildingsBenchmark() {\n startAsyncTask(\"Porównywanie wszystkich posiadanych budynków może zająć dużo czasu.\");\n await wrapRequest(() => getMyBuildingsBenchmark(buildings),\n {\n onSuccess: (data) => {\n setMyBuildingsBenchmark(data);\n },\n });\n finishAsyncTask();\n }\n\n async function fetchDatabaseBenchmark(params) {\n startAsyncTask(\"Porównywanie wszystkich budynków może zająć dużo czasu.\");\n await wrapRequest(() => getDatabaseBenchmark(params),\n {\n onSuccess: (data) => {\n setDatabaseBenchmark(data);\n },\n });\n finishAsyncTask();\n }\n\n const state = {\n fetchMyBuildingsBenchmark,\n fetchDatabaseBenchmark,\n\n myBuildingsBenchmark,\n databaseBenchmark,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport { BenchmarkingContext };\nexport default BenchmarkingDataProvider;\n","import React, { useContext, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport {isNil} from 'lodash';\nimport { Select, Radio, Alert } from 'antd';\n\nimport Gauge from './Gauge';\nimport { AppContext } from '../../../../AppDataProvider';\nimport { AdministrationContext } from '../../../Administration/AdministrationDataProvider';\nimport { BenchmarkingContext } from '../../BenchmarkingDataProvider';\n\nconst GaugesContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst GaugeWrapper = styled.div`\n margin-right: 80px;\n margin-left: 80px;\n margin-top: 20px;\n @media (max-width: 1440px) {\n margin-right: 40px;\n margin-left: 40px;\n margin-top: 10px;\n }\n @media (max-width: 1366px) {\n margin-right: 20px;\n margin-left: 20px;\n margin-top: 10px;\n }\n`;\n\nconst Database = () => {\n const { enums } = useContext(AppContext);\n const { buildings, fetchBuildings } = useContext(AdministrationContext);\n const { databaseBenchmark, fetchDatabaseBenchmark } = useContext(\n BenchmarkingContext,\n );\n\n const [selectedBuildingId, setSelectedBuildingId] = useState();\n const [benchmarkType, setBenchmarkType] = useState('database');\n\n useEffect(function getBuildings() {\n fetchBuildings();\n }, []);\n useEffect(() => {\n const params = {\n buildingId: selectedBuildingId,\n compareOnlyWithinSameCategory:\n benchmarkType === 'category',\n };\n if(!isNil(selectedBuildingId)){\n fetchDatabaseBenchmark(params);\n }\n }, [selectedBuildingId, benchmarkType]);\n\n const buildingsOptions = buildings.map(building => (\n \n {building.shortName}\n \n ));\n\n const selectedBuilding = buildings.find(\n building => building.id === selectedBuildingId,\n );\n const buildingCategory = selectedBuilding\n ? enums.buildingTypes.find(\n buildingType => buildingType.id === selectedBuilding.category,\n )\n : null;\n\n const handleBuildingSelect = id => setSelectedBuildingId(id);\n const handleBenchmarkTypeCheck = event =>\n setBenchmarkType(event.target.value);\n\n return (\n
\n
\n \n {buildingsOptions}\n \n {selectedBuilding && (\n <>\n \n \n \n )}\n
\n {selectedBuilding && databaseBenchmark && }\n
\n );\n};\n\nconst Gauges = ({ data }) => {\n return (\n \n {data.map(({ value, title, avg }) => (\n \n \n \n ))}\n \n );\n};\n\nconst BenchmarkRadio = ({\n handleBenchmarkTypeCheck,\n benchmarkType,\n buildingCategory,\n}) => {\n return (\n
\n
Porównaj w:
\n \n Całej bazie\n {`Kategorii \"${buildingCategory.name}\"`}\n \n
\n );\n};\n\nexport default Database;\n","import React, { useEffect, useContext } from 'react';\nimport styled from 'styled-components';\nimport { Alert } from 'antd';\n\nimport CustomChart from '../../../../components/CustomChart';\nimport ChartCard from '../../../Dashboard/components/ChartCard';\n\nimport { getMyBuildingsChartsConfig } from './chartConfig';\nimport { BenchmarkingContext } from '../../BenchmarkingDataProvider';\nimport ContentWrapper from '../../../../components/ContentWrapper';\n\nconst MyBuildings = () => {\n const { fetchMyBuildingsBenchmark, myBuildingsBenchmark } = useContext(\n BenchmarkingContext,\n );\n\n useEffect(() => {\n fetchMyBuildingsBenchmark();\n }, []);\n\n if (!myBuildingsBenchmark) {\n return null;\n }\n\n const {\n avgElectricityUsage,\n avgEnergyUsage,\n avgHeatUsage,\n avgWaterUsage,\n } = myBuildingsBenchmark;\n\n const chartConfigs = getMyBuildingsChartsConfig({\n avgElectricityUsage,\n avgEnergyUsage,\n avgHeatUsage,\n avgWaterUsage,\n });\n\n return (\n \n \n \n \n \n {chartConfigs.map(cfg => (\n \n \n \n ))}\n \n \n );\n};\n\nconst Container = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst AlertWrapper = styled.div`\n position: absolute;\n top: -56px;\n right: 24px;\n`;\n\nconst Cell = ({ children, loading, title, spread, hide }) => (\n \n \n {children}\n \n \n);\n\nconst StyledCell = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport default MyBuildings;\n","import React from 'react';\nimport { Tabs } from 'antd';\n\nimport ContentWrapper from '../../components/ContentWrapper';\nimport Database from './scenes/Database';\nimport MyBuildings from './scenes/MyBuildings';\n\nconst Benchmarking = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Benchmarking;\n","/* eslint-disable camelcase */\nimport React from 'react';\nimport styled from 'styled-components';\nimport { LocaleProvider } from 'antd';\nimport pl_PL from 'antd/lib/locale-provider/pl_PL';\nimport moment from 'moment';\nimport 'moment/locale/pl';\nimport { Route, Switch, Redirect } from 'react-router';\n\nimport { minAppHeight, minAppWidth, scrollWidth } from './constants';\n\nimport './overrides.css';\n\nimport {\n AdministrationRoute,\n AlarmsRoute,\n DashboardRoute,\n DataAnalyticsRoute,\n SignInRoute,\n ReportsRoute,\n DbRoute,\n BenchmarkingRoute,\n HelpRoute,\n} from './Routes';\n\nimport CookiesInfo from './components/CookiesInfo';\nimport Error from './components/Error';\nimport Layout from './components/Layout';\nimport Authentication from './components/Authentication';\nimport MainLoading from './components/MainLoading';\nimport AppDataProvider from './AppDataProvider';\n\nimport SignIn from './scenes/SignIn/SignIn';\nimport Administration from './scenes/Administration';\nimport AdministrationDataProvider from './scenes/Administration/AdministrationDataProvider';\nimport Analysis from './scenes/Analysis';\nimport AnalysisDataProvider from './scenes/Analysis/AnalysisDataProvider';\nimport Dashboard from './scenes/Dashboard';\nimport DashboardDataProvider from './scenes/Dashboard/DashboardDataProvider';\nimport Reports from './scenes/Reports';\nimport ReportsDataProvider from './scenes/Reports/ReportsDataProvider';\n\nimport Alarms from './scenes/Alarms';\nimport AlarmsDataProvider from './scenes/Alarms/AlarmsDataProvider';\n\nimport Db from './scenes/Db';\nimport DbDataProvider from './scenes/Db/DbDataProvider';\n\nimport Benchmarking from './scenes/Benchmarking';\nimport BenchmarkingDataProvider from './scenes/Benchmarking/BenchmarkingDataProvider';\n\nimport Help from './scenes/Help';\n\nmoment.locale('pl');\n\nconst App = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst StyledApp = styled.div`\n min-width: ${minAppWidth - scrollWidth}px;\n min-height: ${minAppHeight}px;\n height: 100%;\n`;\n\nexport default App;\n","export const minAppWidth = 1280;\nexport const scrollWidth = 22;\nexport const minAppHeight = 720;\nexport const navWidth = 167;\nexport const topBarHeight = 56;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport axios from 'axios';\nimport { createGlobalStyle } from 'styled-components';\nimport reset from 'styled-reset';\n\nimport 'antd/dist/antd.css';\n\nimport App from './App';\n\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE;\n\n// console.log(process.env.REACT_APP_API_BASE, 'base');\nconst token = localStorage.getItem('user-token');\nif (token) {\n axios.defaults.headers.common.Authorization = `Bearer ${token}`;\n}\n\nconst GlobalStyle = createGlobalStyle`\n ${reset}\n`;\n\nconst mainApp = (\n \n \n \n \n \n \n);\n\nReactDOM.render(mainApp, document.getElementById('root'));\n"],"sourceRoot":""}