{"version":3,"sources":["files/documents_not_found.svg","files/jpg.svg","files/png.svg","appsettings.js","dataProviders/globalBuiltQuery.js","dataProviders/Fias/apolloFiasClient.js","dataProviders/Core/builtQuery.js","dataProviders/Core/apolloCoreClient.js","ability.js","dataProviders/caslProvider.js","dataProviders/authProvider.js","dataProviders/Blob/apolloBlobClient.js","utils.js","dataProviders/Auth/graphqlProvider.js","dataProviders/Core/decorate.js","dataProviders/Core/graphqlProvider.js","dataProviders/Blob/decorate.js","dataProviders/Blob/builtQuery.js","dataProviders/Blob/graphqlProvider.js","dataProviders/Fias/decorate.js","dataProviders/Fias/builtQuery.js","dataProviders/Fias/graphqlProvider.js","dataProviders/Fgis/apolloFgisClient.js","dataProviders/Fgis/typeDefs.js","dataProviders/dataProviderFactory.js","dataProviders/Fgis/graphqlProvider.js","i18nProvider/ru.js","i18nProvider/index.js","components/Actions/ArchiveAction.js","components/Actions/ArchiveSaga.js","sagas.js","redux/user/reducer.js","redux/user/actions.js","redux/onlineUsers/reducer.js","redux/onlineUsers/actions.js","redux/notifications/actions.js","redux/notifications/reducer.js","components/Order/AddressComponents.js","components/Inputs/CheckBoxGroupInputWithCheckAll.js","components/Customer/TypeField.js","components/Customer/PaymentField.js","components/Inputs/PhoneInput.js","components/Fields/ArchiveChip.js","components/Fields/sanitizeRestProps.js","components/Fields/PhoneField.js","components/Fields/RoleChip.js","components/Fields/AuthChip.js","components/Profile/FastView.js","components/Profile/NotificationTagsInput.js","components/Profile/ProfileEdit.js","components/AboutApp/Show.js","components/AboutApp/Versions.js","components/Fields/MarkdownField.js","components/AboutApp/index.js","components/AboutApp/AboutAppShow.js","customRoutes.js","components/Layout/Menu.js","dataProviders/Core/onlineUsersSubscription.js","dataProviders/Core/getUserByAuth.js","dataProviders/Core/getOnlineUsers.js","components/User/RoleField.js","components/Layout/UserMenu.js","components/Buttons/FullScreenButton.js","dataProviders/Notifications/graphqlProvider.js","dataProviders/Notifications/getListNotifications.js","dataProviders/Notifications/clearAllNotifications.js","dataProviders/Notifications/clearNotifications.js","dataProviders/Notifications/getMoreNotifications.js","components/Layout/InfoBanner.js","components/Notifications/NotificationDefault.js","dataProviders/Notifications/clearNotification.js","components/Notifications/Notification.js","components/Notifications/NotificationsDrawer.js","components/Notifications/NotificationsButton.js","components/Layout/AppBar.js","dataProviders/Notifications/registerSubscriber.js","dataProviders/Notifications/notificationSubscription.js","components/Notifications/NotificationsStack.js","components/Layout/index.js","dataProviders/Core/createOrderForGuest.js","components/LoginPage/OrderCreateDialog.js","components/LoginPage/AutocompleteCityInput.js","components/LoginPage/OrderCreateCard.js","dataProviders/Auth/getTokenForGuest.js","components/LoginPage/LoginCard.js","components/LoginPage/Login.js","components/LoginPage/LoginForm.js","components/LoginPage/index.js","components/Dashboard/WidgetGroup.js","components/Dashboard/WidgetCard.js","components/Dashboard/WidgetNewYearBanner.js","components/Dashboard/Loading.js","dataProviders/Core/getOrderAnalytics.js","components/Dashboard/WidgetAnalytics.js","components/Dashboard/WidgetFavorites.js","components/Dashboard/index.js","exporter.js","components/Fields/LabelsField.js","components/Icons/Skull.js","components/Fields/FileAttachedField.js","components/Fields/DeadlineField.js","components/Fields/linkField.js","components/Meter/MeterField.js","components/Meter/sanitizeRestProps.js","components/User/UserField.js","components/Buttons/MoreButton.js","components/Icons/FileDownload.js","providers/Fias/graphqlProvider.js","providers/customdatagraphql.js","providers/Core/builtQuery.js","providers/Core/graphqlProvider.js","providers/caslProvider.js","providers/authProvider.js","providers/Blob/graphqlProvider.js","providers/Blob/archiveFiles.js","components/Buttons/BulkDownloadFilesButton.js","components/Buttons/BulkArchiveButton.js","components/Buttons/BulkFavoriteButton.js","dataProviders/OrdersToXml/exportOrdersToXml.js","dataProviders/OrdersToXml/downloadFile.js","components/Order/OrdersToXmlBulkActionsButton.js","components/Buttons/BulkExportButton.js","components/User/UserSuggestionComponent.js","components/Order/ResultField.js","components/Order/AddressField.js","components/Buttons/FavoriteButton.js","components/Layout/Pagination.js","components/Inputs/TitleSearchInput.js","components/Layout/TitleWithSearch.js","components/Order/rowStyle.js","components/Order/OrderList.js","components/Inputs/CheckBoxConditionsInput.js","dataProviders/Core/findDuplicateOrders.js","components/Fields/StatusChip.js","components/Buttons/FindDuplicateButton.js","components/Order/AddressInput.js","components/User/UserQuickCreateButton.js","components/User/UserQuickPreviewButton.js","components/User/UserReferenceInput.js","components/Buttons/CreateWithProcessButton.js","dataProviders/Core/useEnum.js","components/Inputs/EnumInput.js","components/Order/OrderCreate.js","components/Order/Title.js","components/Order/FastView.js","components/Buttons/SaveWithProcessButton.js","components/Buttons/SaveWithInWorkButton.js","components/Buttons/SaveWithCompleteButton.js","components/Buttons/SaveWithCancelButton.js","components/Buttons/ArchiveButton.js","components/Icons/DocumentBox.js","components/Icons/WordBox.js","components/Icons/ExcelBox.js","components/Icons/PdfBox.js","components/Icons/ZipBox.js","components/Fields/FileChip.js","components/Inputs/FileInput.js","components/Inputs/sanitizeRestProps.js","components/Order/SITypeInput.js","components/Order/CCSVTypeInput.js","components/Order/SUTypeInput.js","components/Order/GSITypeInput.js","components/Order/OrderEdit.js","components/Layout/EmptyState.js","components/Layout/FilesGridList.js","components/Order/OrderTabbedShowLayoutTabs.js","components/OrderHistory/ActionChip.js","components/OrderHistory/AbbrChanges.js","components/OrderHistory/EmptyFieldPlaceholder.js","components/OrderHistory/OrderHistoryList.js","components/Fields/JsonField.js","components/OrderHistory/MutationField.js","components/OrderHistory/OrderHistoryShow.js","components/OrderHistory/index.js","components/Buttons/DownloadFilesButton.js","components/Order/OrdersToXmlButton.js","components/Fields/EnumField.js","components/Order/OrderShow.js","components/Order/index.js","components/Counterparty/CounterpartyList.js","components/Fields/GridField.js","components/Counterparty/CounterpartyCreate.js","components/Counterparty/CounterpartyEdit.js","components/Counterparty/CounterpartyShow.js","components/Counterparty/index.js","components/User/UserNameWithAvatarField.js","components/User/rowStyle.js","components/User/roles.js","components/User/UserList.js","components/User/UserCreate.js","components/Buttons/BanButton.js","components/Buttons/CreateRelatedOrderButton.js","components/User/FastView.js","components/User/Title.js","components/User/UserEdit.js","components/Fields/AddressChip.js","components/User/UserTabbedShowLayoutTabs.js","components/User/UserShow.js","components/User/index.js","components/Fields/ArrayMapField.js","components/Meter/VerifyIntervalField.js","components/Meter/VerifyIntervalInput.js","components/Meter/index.js","components/Statistic/ButtonLink.js","components/Statistic/index.js","components/Fias/index.js","components/File/tokenFileField.js","components/File/fileSizeField.js","components/File/OpenButton.js","components/User/UserReferenceField.js","components/File/index.js","App.js","serviceWorker.js","index.js","CHANGELOG.md","files/LoginPageImage.svg","files/CreateOrderImage.svg","files/Rocket.svg","files/LoginCardImage.svg","files/NewYearImage.png","files/EmptyStateFiles.svg","files/doc.svg","files/file.svg","files/pdf.svg","files/svg.svg","files/txt.svg","files/xls.svg","files/zip.svg"],"names":["module","exports","__webpack_require__","p","require","config","global_env","window","ENV","AUTH_TOKEN","AUTH_REFRESH_TOKEN","NAME_APP","REACT_APP_NAME_APP","BLOB_NAME_APP","REACT_APP_BLOB_NAME_APP","BLOB_SETHOST","REACT_APP_BLOB_SETHOST","URI_AUTH","REACT_APP_URI_AUTH","URI_FIAS","REACT_APP_URI_FIAS","URI_CASL","REACT_APP_URI_CASL","URI_BLOB","REACT_APP_URI_BLOB","URI_DATA","REACT_APP_URI_CORE","WS_DATA","REACT_APP_WS_CORE","URI_NOTIFICATIONS","REACT_APP_URI_NOTIFICATIONS","WS_NOTIFICATIONS","REACT_APP_WS_NOTIFICATIONS","URI_FGIS","REACT_APP_URI_FGIS","URI_ORDERS_TO_XML","REACT_APP_URI_ORDERS_TO_XML","globalBuiltQuery","builtQuery","fetchType","resource","params","Object","objectSpread","variables","filter","page","pagination","perPage","sortField","sort","field","sortOrder","order","httpLink","createHttpLink","uri","fiasLink","setContext","_ref2","asyncToGenerator","regenerator_default","a","mark","_callee","_","_ref","headers","token","wrap","_context","prev","next","GetAccessToken","sent","abrupt","authorization","concat","stop","_x","_x2","apply","this","arguments","apolloFiasClient","ApolloClient","link","cache","InMemoryCache","GET_LIST_ORDER","gql","_templateObject","GET_MANY_ORDERS","_templateObject2","GET_ONE_ORDER","_templateObject3","UPDATE_ORDER","_templateObject4","GET_LIST_ORDERHISTORIES","_templateObject5","GET_ONE_ORDERHISTORY","_templateObject6","GET_LIST_METERS","_templateObject7","GET_ONE_METER","_templateObject8","UPDATE_METER","_templateObject9","GET_ONE_USER","_templateObject10","GET_PROFILE","_templateObject11","customBuildQuery","introspection","buildQuery","parseResponse","_parseResponse","response","result","total_item","locationIds","allLocations","locations","id","data","items","map","item","query","_templateObject12","ids","onError","error","alert","keys","forEach","prop","undefined","location","find","orderBy","toLowerCase","push","user","localStorage","setItem","regionIds","districtIdOrCityIds","oneOfUserManyId","oneOfUserMany","orderId","userId","authLink","wsLink","WebSocketLink","options","lazy","reconnect","connectionParams","_connectionParams","_callee2","_context2","split","_ref3","_getMainDefinition","getMainDefinition","kind","operation","apolloCoreClient","ability","Ability","defineAbilityFor","rules","r","conditions","key","update","AbilityContext","createContext","createContextualCan","Consumer","CASL_QUERY_GETABILITY","caslProvider_templateObject","caslLink","appName","apolloCaslClient","defaultOptions","watchQuery","fetchPolicy","errorPolicy","getAbility","_getAbility","then","responce","Error","apolloAuthClient","LOGIN_MUTATION","authProvider_templateObject","REFRESH_TOKEN_MUTATION","authProvider_templateObject2","checkUserBanned","checkUser","authStatus","authProvider","type","AUTH_LOGIN","Promise","resolve","login","password","phoneNumber","parsePhoneNumberFromString","mutate","mutation","isValid","number","_data$login","refreshToken","coreUser","abilityRules","authProvider_templateObject3","loginUser","catch","message","replace","AUTH_LOGOUT","removeItem","AUTH_ERROR","status","reject","AUTH_CHECK","getItem","IsExpiredToken","AUTH_GET_PERMISSIONS","permissions","role","decodeJwt","_GetAccessToken","_callee3","authtoken","authrefreshtoken","_response$data$refres","_context3","refresh","t0","arg","decodedToken","current_time","Date","now","exp","Array","prototype","selectMany","fn","reduce","x","y","createUploadLink","blobLink","apolloBlobClient","array","requiredCustom","length","assign","value","allValues","props","translate","isRequired","createUser","_x3","_createUser","graphqlProvider_templateObject2","email","name","phone","updateUser","_x4","_updateUser","_callee4","_context4","graphqlProvider_templateObject3","authId","REMOVE_FILES","decorate_templateObject","createCoreFiles","files","newFiles","newFilesBlob","_args2","file","rawFile","decorate_templateObject4","appname","namecatalog","multipleUpload","idBlob","url","urlThumbnail","desc","filename","catalog","ext","size","sizeInBytes","createdByAuth","updateCoreFiles","previous","currentFileIds","previousFileIds","removeFiles","_args3","console","log","indexOf","decorate_templateObject5","decorate","previousData","pass","authUser","_authUser","_authId","_pass","_authUser2","orders","idsFiles","_ids","meters","customer","createAuthUser","updateAuthUser","usersIds","users","counterparty","t1","meter","meterUninstallAt","verifier","dispatcher","decorate_templateObject2","allOrders","t2","documentation","decorate_templateObject3","allMeters","_x5","_x6","_x7","graphqlProvider","dataProvider","buildGraphQLProvider","client","provider","paramsD","knownResources","Blob_decorate","Blob_graphqlProvider","Fias_decorate","Fias_graphqlProvider","apolloFgisClient","SITYPE_TEMPLATE","GET_LIST_SITYPE","typeDefs_templateObject","CCSVTYPE_TEMPLATE","typeDefs_templateObject2","typeDefs_templateObject3","GET_LIST_CCSVTYPE","typeDefs_templateObject4","SUTYPE_TEMPLATE","typeDefs_templateObject5","typeDefs_templateObject6","GET_LIST_SUTYPE","typeDefs_templateObject7","GSITYPE_TEMPLATE","typeDefs_templateObject8","typeDefs_templateObject9","GET_LIST_GSITYPE","typeDefs_templateObject10","dataProviders","typeDefs_templateObject11","typeDefs_templateObject12","dataProviderCore","dataProviderBlob","dataProviderFias","GET_LIST","GET_MANY","_ref4","_ref5","_ref6","_ref7","_ref8","dataProviderFactory","findDataProvider","dp","includes","ru","russianMessages","raExt","action","create_and_continue","create_and_process","save_and_continue","create_related_order","findDuplicate","process","in_work","complete","cancel","more","download_files","archive","unarchive","ban","unban","favorite","unfavorite","select_all","set_full_screen","exit_full_screen","clear","clear_all","close","get_more","export_orders_to_xml","auth","phoneOrEmail","createOrderTitle","validation","ruPhone","notification","duplicates_not_found","duplicates_found","admin_created","manager_created","employee_created","customer_created","verifier_created","dispatcher_created","failed_to_create_user","is_archive","archive_success","archive_failure","unarchive_success","unarchive_failure","orderOverdue","order_user_empty_data","order_meter_empty_data","noData","empty","empty_data","noFiles","download_files_empty","resources","Order","fields","_fields","humanId","statusRef","defineProperty","helper","resultDesc","comment","completedDeadlineAt","nextCompletedDeadlineAt","filesAttached","isDeadlineAt","addressMatches","changeResult","tabs","current","cancelled","completed","archived","general","measuringInstrument","history","statuses","new","processed","inWork","results","verified","notVerified","swap","refused","noneSeal","other","actions","create","create_and_add","enums","meterLocation","INDOORS","OUTDOORS","UNKNOWN","errors","resultRef","resultRef_full","invoice","Customer","organizationName","organizationInn","payment","types","PHIS","JURE","payments","CASH","CASHLESS","Verifier","regionId","Location","typeShort","Counterparty","description","createdAt","createdBy","updatedAt","inn","kpp","okpo","ogrn","fio","passport","passdateissue","parentId","addressLegal","addressActual","addressPostal","phoneMobile","accessResource","access","filterGasRegion","filterGasDistrict","filterGasConsumer","filterGasMeterPad","accessGasRegion","accessGasDistrict","accessGasConsumer","accessGasMeterPad","q","LEGALENTITY","INDIVIDUAL","SEPARATEDIVISION","GOVERNMENTAGENCY","User","notificationTags","roles","SUPERADMIN","ADMIN","SENIORDISPATCHER","DISPATCHER","CUSTOMER","SENIORVERIFIER","VERIFIER","MANAGER","INSPECTOR","SUPERVISOR","DEMO","authStatuses","ACTIVE","BANNED","NONE","all","customers","employees","admins","accessLocation","notifications","dialogTitle","EMPLOYEE","online","offline","Profile","lastUpdatedAt","Meter","verifyInterval","GAS","OrderHistory","_fields2","orderHumanId","CREATED","UPDATED","DELETED","PROCESSED","INWORK","COMPLETED","CANCELLED","SYNCHRONIZED","SYNCHRONIZEDERROR","ARCHIVED","UNARCHIVED","CREATED_FIELD","UPDATED_FIELD","File","created","navigation","files_not_found","add_several_files","Statistic","unrestrictedName","deadlined","incompleted","createdAt_gte","createdAt_lte","completedAt","completedAt_gte","completedAt_lte","completedDeadlineAt_gte","completedDeadlineAt_lte","oneOfUser","customerType","totalDistrictOrCity","total","AboutApp","modules","Core","Auth","Blob","Casl","Fias","errrors","not_available","Notification","tags","NEWORDER","EXPIRED","no_notifications","you_have_unconfirmed_notifications","show_notifications","_Error","messages","russianhMessages","en","englishMessages","i18nProvider","locale","ARCHIVE_FAILURE","basePath","redirectTo","payload","isArchive","meta","fetch","UPDATE","onSuccess","body","level","onFailure","UNARCHIVE_FAILURE","archiveSaga","takeEvery","put","showNotification","_marked","sagas","reducer","previousState","onlineUsers_reducer","onlineUsers","initialNotifications","closeNotification","dismissAll","removeNotification","removeAll","store","notifications_reducer","count","displayedNotifications","_payload$items","_payload$total","newItems","displayed","dismissed","toConsumableArray","removeArray","notificationId","getLocationIcon","react_default","createElement","Layers_default","Texture_default","LocationCity_default","Home_default","Place_default","Directions_default","styles","theme","highlight","fontWeight","color","root","height","flexDirection","alignItems","flex","display","locationIcon","marginRight","palette","grey","chip","margin","avatar","marginLeft","width","checkBoxContainer","ml2","getParentsDescription","parents","reduceRight","previousValue","currentValue","index","lenght","AddressSuggestionComponent","withStyles","suggestion","classes","isHighlighted","objectWithoutProperties","suggestionText","matches","match","toLocaleLowerCase","parts","parse","className","rest","React","cloneElement","part","text","Typography_default","variant","noWrap","AddressCheckComponentView","choice","nowrap","AddressCheckComponent","getColsForWidth","CheckboxGroupInput","_Component","_getPrototypeOf2","_this","classCallCheck","_len","args","_key","possibleConstructorReturn","getPrototypeOf","call","handleCheckAll","event","isChecked","_this$props","choices","optionValue","optionDisabled","_this$props$input","input","onChange","union","get","handleCheck","newValue","_this$props$input2","JSON","target","e","v","renderCheckAll","_this$props2","source","FormControlLabel_default","controlLabel","htmlFor","checked","control","Checkbox_default","checkbox","label","renderCheckbox","_this$props3","optionIndeterminate","_this$props3$input","optionText","translateChoice","choiceName","isValidElement","record","isIndeterminate","isDisabled","String","disabled","indeterminate","inherits","createClass","_this$props4","_this$props4$classes","touched","_meta$helperText","helperText","FormControl_default","component","setFilter","setPagination","setSort","alwaysOn","defaultValue","formClassName","initializeForm","limitChoicesToValue","allowEmpty","textAlign","sanitizeRestProps","FormLabel_default","FieldTitle","FormGroup_default","style","FormHelperText_default","Component","defaultProps","EnhancedCheckboxGroupInput","compose","addField","withWidth","transform","transformOrigin","direction","fullWidth","TypeField","_ref$record","addLabel","PaymentField","validatePhone","required","phoneFormatter","formatNational","phoneParser","PhoneInput","TextInput","format","validate","backgroundColor","avatarChildren","Chip_default","Avatar_default","Archive_default","Fields_sanitizeRestProps","cellClassName","headerClassName","linkType","sortable","sortBy","PhoneField","displayName","PurePhoneField","pure","getRoleIcon","Android_default","HeadsetMic_default","Build_default","AccountCircle_default","getAuthIcon","CheckCircle_default","Report_default","Help_default","green","getContrastText","red","amber","headline","subheading","secondary","flexColumn","justifyEnd","justifyContent","mlAuto","ml1","ml3","iconHeadline","fontSize","iconSubheading","chipSuccess","white","chipError","iconChip","locales","moment","CardContent_default","Grid_default","container","spacing","xs","gutterBottom","Call_default","Fields_PhoneField","can","Mail_default","sm","Fields_RoleChip","Fields_AuthChip","Fields_ArchiveChip","rulesFor","rule","tag_in","tag","CheckBoxGroupInputWithCheckAll","arrTypes","arrPayments","validateName","minLength","validateEmail","EditLayoutView","toolbar","react","Profile_FastView","TabbedForm","ProfileEdit_EditToolbar","FormTab","Inputs_PhoneInput","inputProps","autoComplete","path","SelectInput","Customer_TypeField","form_FormDataConsumer","formData","Customer_PaymentField","ReferenceArrayInput","reference","AutocompleteArrayInput","suggestionComponent","parentIds","Profile_NotificationTagsInput","ProfileEdit","connect","state","dispatch","staticContext","Edit","title","redirect","ProfileEdit_EditLayoutView","EditToolbar","Toolbar","SaveButton","Profile_ProfileEdit","edit","ShowView","main","card","cardWrapper","aside","children","classnames","layout_Title","Children","only","Show","VersionModules","isLoading","promises","_this2","setState","Versions_templateObject","Versions_templateObject2","Versions_templateObject3","Versions_templateObject4","Versions_templateObject5","promise","idx","err","valueOrError","mds","icon","CoreIcon","AuthIcon","CaslIcon","BlobIcon","FiasIcon","_this$state","stickyContent","Card_default","List_default","disablePadding","ListItem_default","divider","ListItemIcon_default","LabelImportant_default","ListItemText_default","primary","Version","version","unit","position","top","zIndex","MarkdownField","_useState","useState","_useState2","slicedToArray","markdownText","setMarkdownText","useEffect","res","react_markdown_default","escapeHtml","AboutAppShow","AboutApp_Show","Versions","Fields_MarkdownField","CHANGELOG","customRoutes","Route","enhance","withRouter","paddingLeft","paddingRight","borderRadius","shape","iconRight","getResources","onMenuClick","hasDashboard","newRelease","logout","DashboardMenuItem","onClick","hasList","MenuItemLink","dense","to","primaryText","smart_count","leftIcon","ViewList_default","Fragment","FiberNew_default","Info_default","SUBSCRIBE_ONLINE_USERS","onlineUsersSubscription_templateObject","USER_BY_AUTH","getUserByAuth_templateObject","getUserByAuth","ONLINE_USERS","getOnlineUsers_templateObject","getOnlineUsers","RoleField","getInitials","initials","first","shift","second","pop","charAt","toUpperCase","Ava","colorDefault","common","blue","profile","admin","setUser","setOnlineUsers","_fetchData","_onlineUsers","onlineUsersIds","onlineUser","fetchData","_fetchData2","userByAuthId","UserByAuthId","useSubscription","onSubscriptionData","node","subscriptionData","some","filterArray","UserMenu","User_RoleField","fullScreen","setFullScreen","Tooltip_default","IconButton_default","aria-label","element","document","documentElement","requestMethod","cancelFullScreen","webkitCancelFullScreen","mozCancelFullScreen","exitFullscreen","requestFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","FullscreenExit_default","Fullscreen_default","timeout","apolloNotificationsClient","GET_LIST_NOTIFICATIONS","getListNotifications_templateObject","getListNotifications","clearAllNotifications_templateObject","CLEAR_NOTIFICATIONS","clearNotifications_templateObject","GET_MORE_NOTIFICATIONS","getMoreNotifications_templateObject","Infobanner","subtitle","align","mt3","paddingTop","paddingBottom","maxWidth","marginTop","EnhaencedSnackbarContent","emphasis","emphasize","background","default","flexWrap","padding","flexGrow","breakpoints","up","minWidth","sizeSmall","typography","pxToRem","header","content","opacity","marginBottom","CardHeader_default","disableTypography","timestamp","fromNow","CardActions_default","handleCloseClick","handleClick","stopPropagation","href","NewReleases_default","Button_default","onMouseUp","CLEAR_NOTIFICATION","clearNotification_templateObject","headerContent","headerIcon","headerExtra","headerAction","alignSelf","iconButton","&:last-child","textClamp","overflow","textOverflow","lineClamp","boxOrient","& > * + *","bgDefault","bgInfo","bgSuccess","bgWarning","bgError","dark","clearNotificationRedux","dismissNotificationRedux","handleDismiss","clamped","setClamped","typeClasses","bg","textSecondary","getTypeClasses","typeIcon","Warning_default","Error_default","Notifications_default","getTypeIcon","extra","Paper_default","enterDelay","Clear_default","disconnectNotification","ChevronRight_default","paper","notificationHeader","notificationWrapper","notificationFooter","getMoreButton","open","setOpen","enqueueNotification","availableDistrictIdOrCity","districtIdOrCityId","isAvaliable","app","availableData","Drawer_default","anchor","onClose","ModalProps","hideBackdrop","titleTypographyProps","id_in","ClearAll_default","Close_default","Notifications_Notification","getChildren","InfoBanner","NotificationsOff_default","last","cursor","_getIcon","haveUnconfirmed","NotificationsActive_default","NotificationsNone_default","getIcon","disableFocusListener","Notifications_NotificationsDrawer","MyAppBar","whiteSpace","spacer","AppBar","userMenu","Layout_UserMenu","Buttons_FullScreenButton","Notifications_NotificationsButton","REGISTER_SUBSCRIBER","registerSubscriber_templateObject","SUBSCRIBE_NOTIFICATIONS","notificationSubscription_templateObject","displayedNotification","_useSnackbar","useSnackbar","enqueueSnackbar","closeSnackbar","requireInteraction","dissmissed","persist","elevation","_ref2$subscriptionDat","shouldResubscribe","MyLayout","build","maxSnack","anchorOrigin","vertical","horizontal","Notifications_NotificationsStack","Layout","appBar","Transition","forwardRef","ref","Slide_default","captionIcon","hint","py0","rowField","rowTitle","rowContent","alignCenter","media","backgroundSize","mtAuto","captionContent","Dialog_default","TransitionComponent","keepMounted","disableBackdropClick","disableEscapeKeyDown","CardMedia_default","image","Rocket","DialogTitle_default","DialogContent_default","DialogContentText_default","addrManual","PhotoCamera_default","DialogActions_default","mapDispatchToProps","change","form","setChoices","_useState3","_useState4","_useState5","_useState6","selectedItem","setSelectedItem","_useState7","_useState8","setHelperText","_ref2$data","AutocompleteCityInput_templateObject","AutocompleteInput","shouldRenderSuggestions","val","trim","flipContainer","boxShadow","shadows","titleContent","createButton","&:hover","backButton","left","OrderCreateCard","submit","reset","_React$useState","_React$useState2","isFlipped","setFlipped","_React$useState3","_React$useState4","_React$useState5","_React$useState6","setOrder","handleSubmit","values","getTokenForGuest_templateObject","guest","createOrderForGuest_templateObject","createOrderForGuest","react_card_flip_default","containerStyle","CreateOrderImage","preventDefault","ArrowBack_default","SimpleForm","onSubmit","LoginPage_AutocompleteCityInput","CircularProgress_default","thickness","OrderCreateDialog","loading","LoginCard","loginForm","LoginCardImage","Login","backgroundImage","core_styles","createMuiTheme","LoginPage_OrderCreateCard","LoginPage_LoginCard","layout_Notification","defaultTheme","auth_LoginForm","createStyles","minHeight","backgroundRepeat","backgroundPosition","renderInput","_ref$meta","esm_extends","TextField_default","userLogin","reduxForm","Field","autoFocus","autocomplete","button","LoginPage_Login","bgImage","LoginPage_LoginForm","WidgetGroup","boxSizing","renderSubtitle","banner","NewYearImage","Dashboard_WidgetCard","Link","GET_ANALYTICS_BETWEEN_DATES","getOrderAnalytics_templateObject","getOrderAnalytics","WidgetAnalitics","chipActive","selected","setOptions","series","setSeries","setLoading","_useState9","_useState10","monthsDuration","from","endOf","subtract","_ref3$data$OrdersAnal","OrdersAnalytics","_ref3$data$OrdersAnal2","createdOrders","_ref3$data$OrdersAnal3","completedOrders","_ref3$data$OrdersAnal4","deadlinedOrders","createdByMonths","groupBy","startOf","completedByMonths","deadlinedByMonths","monthsArray","uniq","chart","show","zoom","enabled","parentHeightOffset","fontFamily","defaultLocale","plotOptions","bar","columnWidth","endingShape","dataLabels","stroke","colors","xaxis","axisBorder","axisTicks","labels","showDuplicates","fill","tooltip","legend","horizontalAlign","offsetY","month","Dashboard_Loading","react_apexcharts_min_default","list","favoriteIcon","setOrders","tab","react_custom_scrollbars_lib","autoHide","Star_default","primaryTypographyProps","StarBorder_default","withDataProvider","md","lg","xl","Dashboard_WidgetGroup","WidgetAnalytics","WidgetFavorites","exporter","dataraws","filterValues","filterHeader","filterValue","dataHeader","dataArr","row","translateValues","filters","convertToCSV","delimiter","encoding","csv","fileName","fakeLink","appendChild","blob","navigator","msSaveOrOpenBlob","setAttribute","URL","createObjectURL","click","downloadCSV","LabelsField","& > *","& > *:last-child","SkullIcon","FileAttachedField","placement","AttachFile_default","getStatus","isSameOrBefore","isAfter","getTitle","DeadlineIconView","TimerOff_default","Timer_default","DeadlineIcon","info","warning","danger","alarm","DeadlineChipView","DeadlineChip","LinkField","_ref$classes","emptyValue","referenceRecord","linkField_EmptyFieldPlaceholder","placeholder","rootPath","resourceLinkPath","encodeURIComponent","esm_Link","EnhancedLinkField","EmptyFieldPlaceholder","MeterField","MeterWithLocationField","OptionMeter","optionMeter","UserField","omitId","MoreButton","anchorEl","currentTarget","handleClose","handleDelete","startUndoable","_this$props$redirect","crudDelete","handleArchive","_this$props2$redirect","handleUnarchive","_this$props3$redirect","aria-owns","aria-haspopup","MoreVert_default","Menu_default","Boolean","MenuItem_default","linkToRecord","menuItem","Create_default","menuIcon","menuText","pathname","Queue_default","deleteItem","Unarchive_default","Delete_default","dispatchCrudDelete","fade","@media (hover: none)","flexShrink","Icon","SvgIcon_default","d","builtQuery_templateObject","builtQuery_templateObject2","builtQuery_templateObject3","builtQuery_templateObject4","builtQuery_templateObject5","builtQuery_templateObject6","builtQuery_templateObject7","builtQuery_templateObject8","builtQuery_templateObject9","builtQuery_templateObject10","builtQuery_templateObject11","providers_caslProvider_templateObject","providers_authProvider_templateObject","providers_authProvider_templateObject2","providers_authProvider_GetAccessToken","archiveFiles","archiveFiles_templateObject","filesInfo","getUrlWithToken","renameUrl","parsed_url","origin","selectedIds","button_Button","urlWithToken","idsBlob","messageArgs","getUrlArchive","getUrlArchiveFiles","FileDownload","BulkArchiveButton","crudUpdateMany","unarchiveButton","archiveButton","borderColor","light","BulkFavoriteButton","handleFavorite","isFavorite","favoriteOrders","handleUnfavorite","udatedUser","unfavoriteButton","favoriteButton","exportOrdersToXml","raw","requestOptions","stringify","method","Authorization","Content-Type","ok","json","downloadFile","OrdersToXmlBulkActionsButton","handleExport","GetApp_default","BulkExportButton","ExportButton","UserSuggestionComponent","PhoneIcon","ResultField","AddressField","districtId","ReferenceField","FunctionField","render","FavoriteButton","crudUpdateAction","favoriteColor","unfavoriteIcon","crudUpdate","MyPagination","Pagination","rowsPerPageOptions","renderTextField","Input_default","inputRoot","inputInput","disableUnderline","endAdornment","InputAdornment_default","searchIcon","Search_default","EnhancedTitleSearchField","search","transition","transitions","&:focus","enableReinitialize","destroyOnUnmount","setFilters","propTypes","PropTypes","object","func","defaultTitle","TitleSearchInput","rowStyle","defaultStyle","borderLeftColor","borderLeftWidth","borderLeftStyle","lightBlue","headerRow","deleteButton","cellMinWidth","hoverOpacity","hover","exportBuilder","records","fetchRelatedRecords","customerTypes","OrderFilter","Filter","ReferenceInput","resettable","inputValueMatcher","DateInput","OrderActions","bulkActions","currentSort","displayedFilters","permanentFilter","hasCreate","onUnselectItems","showFilter","layout_CardActions","context","CreateButton","maxResults","OrderTabs","index_es","centered","constructor","Responsive","small","OrderList_DatadridSimple","DatadridSimple2","DatadridSimple","Datagrid","rowClick","Buttons_FavoriteButton","field_TextField","linkField","User_UserField","Order_AddressField","DateField","showTime","Fields_LabelsField","Fields_FileAttachedField","Buttons_MoreButton","Order_ResultField","DatagridUser","BulkActionToolbar","Buttons_BulkFavoriteButton","Buttons_BulkDownloadFilesButton","Buttons_BulkExportButton","Order_OrdersToXmlBulkActionsButton","Buttons_BulkArchiveButton","BulkDeleteButton","OrderList","filterForm","exportBuilderWithTranslate","ListController","filterDefaultValues","controllerProps","list_List","OrderList_OrderActions","bulkActionButtons","OrderList_OrderFilter","Layout_Pagination","TitleWithSearch","CheckBoxConditionsInput","invert","setChecked","getStatusIcon","Cancel_default","StatusIcon","caption","mt2","DuplicateOrder","address","statusRefs","updatedAt_gte","findDuplicateOrders_templateObject","findOrders","autoHideDuration","Compare_default","_arrCities","_arrStreets","_cityId","AddressInput","_React$Component","changeAddress","cityId","streetId","houseNum","houseCorp","houseFlat","cityChoise","REDUX_FORM_NAME","addressGenerate","onChangeCheckBoxConditions","districtIdsOrCityIds","AddressInput_CityAutocompleteInput","AddressInput_StreetAutocompleteInput","Inputs_CheckBoxConditionsInput","DisabledInput","Buttons_FindDuplicateButton","city","street","cityOptionRenderer","streetChoise","optionRendererStreet","prefix","i","CityAutocompleteInput","flSt","StreetAutocompleteInput","getFormValues","UserQuickCreateButton","substring","resetForm","showDialog","handleSaveClick","crudGetMatching","fetchStart","fetchEnd","CREATE","self","assertThisInitialized","setTimeout","finally","isSubmitting","Add_default","TitleHeader","arrCustomerInputs","saving","cancelButton","UserPreview","ui","viewVersion","SimpleShowLayout","UserQuickPreviewButton","showPanel","RemoveRedEye_default","User_UserQuickCreateButton","User_UserQuickPreviewButton","CreateWithProcessButtonView","createWithProcess","handleSubmitWithRedirect","crudCreate","CreateWithProcessButton","GET_ENUMS","useEnum_templateObject","EnumInput","Enum","useEnum","option","Set","enumName","updateEnums","enumData","__type","enumValues","OrderCreate","detail_Create","CreateToolbar","User_UserReferenceInput","Order_AddressInput","Inputs_EnumInput","LongTextInput","mr2","Buttons_CreateWithProcessButton","submitOnEnter","titleSecondary","contrastText","iconTextSecondary","DevicesOther_default","Meter_MeterField","Comment_default","Fields_StatusChip","creator","SaveWithProcessButtonView","saveWithProcess","SaveWithProcessButton","SaveWithInWorkButtonView","saveWithInWork","SaveWithInWorkButton","isSealNotInstalled","saveWithComplete","SaveWithCompleteButton","SubmissionError","saveWithCancel","SaveWithCancelButton","ArchiveButton","WordBox","PdfBox","DocumentBox","ExcelBox","ZipBox","Image_default","FileChip","canOpen","onDelete","openProps","clickable","TOKEN","dropZone","preview","removeButton","FileInput","onDrop","updatedFiles","multiple","transformFile","onBlur","onRemove","filteredFiles","stateFile","shallowEqual","_Children$only$props","transformedFile","isArray","nextProps","labelMultiple","labelSingle","accept","_this$props2$classes","disableClick","maxSize","minSize","_this$props2$options","Labeled","dist_default","onUpload","ConnectedFormDataConsumerView","siTypeId","meterId","siType","designation","manual","setManual","blocked","mpiyears","mpimonths","manufacturerTotal","filterToQuery","searchText","NumberInput","step","FormDataConsumer","FormName","ccsvTypeId","ccsvType","counterpartyName","ccsv","nameOrg","CCSVTypeInput_ConnectedFormDataConsumerView","suTypeId","suType","SUTypeInput_ConnectedFormDataConsumerView","gsiTypeId","gsiType","GSITypeInput_ConnectedFormDataConsumerView","captionText","lineHeight","OptionResult","EditLayout","Order_FastView","OrderEdit_EditToolbar","maxLength","Order_SITypeInput","min","max","BooleanInput","Order_CCSVTypeInput","Order_SUTypeInput","Order_GSITypeInput","Inputs_FileInput","Fields_FileChip","Buttons_SaveWithProcessButton","Buttons_SaveWithInWorkButton","Buttons_SaveWithCompleteButton","Buttons_SaveWithCancelButton","Buttons_ArchiveButton","OrderEdit_WrappedDeleteButton","WrappedDeleteButton","DeleteButton","OrderEdit","Order_Title","EmptyState","imageUrl","src","alt","mb3","getFileImage","docImage","pdfImage","txtImage","xlsImage","zipImage","svgImage","fileImage","renameUrlImage","FilesGridList","resourse","GridList_default","cellHeight","cols","GridList_root","openHandler","t3","t4","GridListTile_default","tile","GridListTile_tile","GridListTileBar_default","titlePosition","tileBar","actionIcon","Visibility_default","Layout_EmptyState","emptyImage","EditButton","EnhancedFilesGridList","emptyContainer","emptyContainerImage","noResult","border","GridListTile_imgFullWidth","placeholderImage","OrderTabbedShowLayoutTabs","Tabs_default","tabPath","baseUrl","getTabFullPath","Save_default","Sync_default","SyncProblem_default","enhaenceActionChip","enhaenceAbbrChanges","dflex","renderField","renderChange","OrderHistory_ActionChip","OrderHistory_EmptyFieldPlaceholder","OrderHistory_AbbrChanges","year","day","hour","minute","OrderHistoryDatagridForOrder","OrderHistoryDatagridForUser","OrderHistoryFilter","SearchInput","OrderHistoryList","OrderHistoryList_BulkActionToolbar","OrderHistoryList_OrderHistoryFilter","OrderHistoryList_DatadridSimple","EnhancedJsonField","github","react_json_prettify_dist_default","MutationField","w100","detail_Show","Fields_JsonField","OrderHistoryIcon","handleDownloadFiles","OrdersToXmlButton","EnumField","enumValue","ShowLayoutView","TabbedShowLayout","Order_OrderTabbedShowLayoutTabs","Tab","NumberField","Fields_EnumField","BooleanField","Layout_FilesGridList","ReferenceManyField","OrderHistoryList_OrderHistoryDatagridForOrder","OrderShowActions","contaiter","Buttons_DownloadFilesButton","CloneButton","Order_OrdersToXmlButton","OrderShow","OrderShow_ShowLayoutView","OrderIcon","CounterpartyList","_field$props","zeroMinWidth","gridItemProps","CounterpartyCreate","multiline","GridField","CounterpartyEdit","CounterpartyShow","ShowController","ReferenceArrayField","SingleFieldList","ChipField","CounterpartyIcon","UserNameWithAvatarField","Badge_default","badgeContent","badge","onlineBadge","offlineBadge","bottom","right","borderLeft","arrRoles","UserFilter","UserTabs","User_UserNameWithAvatarField","BulkActionToolbarView","UserList","UserList_BulkActionToolbar","UserList_UserFilter","UserCreate","UserCreate_CreateToolbar","BanButton","handleBan","handleUnban","banButton","unbanButton","ReportOff_default","_ref2$label","_ref2$record","invalid","pristine","AttachMoney_default","lastUpdated","timeAgo","User_FastView","UserEdit_EditToolbar","emptyText","UserEditActions","Buttons_CreateRelatedOrderButton","ShowButton","Buttons_BanButton","UserEdit_WrappedDeleteButton","UserEdit","User_Title","UserEdit_EditLayoutView","ShowLayout","UserTabbedShowLayoutTabs","EmailField","Fields_AddressChip","OrderHistoryList_OrderHistoryDatagridForUser","UserShowActions","UserShow","UserShow_ShowLayout","UserIcon","ArrayMapField","EnhancArrayMapField","VerifyIntervalField","duration","humanize","VerifyIntervalInput","MeterIcon","MeterList","isbulkActionView","Meter_MeterFilter","Meter_VerifyIntervalField","Fields_ArrayMapField","MeterShow","MeterEdit","Meter_EditToolbar","Meter_VerifyIntervalInput","MeterCreate","Meter_CreateToolbar","MeterFilter","ButtonLink","_props$page","_props$perPage","_props$filterValues","FILTER","wrapper","textDecoration","StatisticIcon","StatisticFilter","CastomDatagridRow","onToggleItem","TableRow_default","TableCell_default","rowCell","textCenter","CastomDatagridBody","DatagridBody","renderLocation","CastomDatagrid","Statistic_CastomDatagridBody","Statistic_ButtonLink","StatisticPagination","StatisticList","Statistic_StatisticFilter","LocationIcon","LocationFilter","TagsField","LocationList","Fias_LocationFilter","LocationShow","FileSizeField","_ref2$classes","sourceValue","titleValue","srcValue","bytes","toFixed","OpenButton","OpenInNew_default","userField","UserReferenceField","FileIcon","FileList","fileSizeField","User_UserReferenceField","File_OpenButton","FileShow","App","setDataProvider","Provider","Admin","menu","Menu","dashboard","Dashboard","loginPage","MyLoginPage","appLayout","customSagas","customReducers","Resource","OrderHistoryShow","hostname","ReactDOM","src_App","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.60c5b4d2.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/documents_not_found.f310d9e9.svg\";","module.exports = __webpack_public_path__ + \"static/media/jpg.db677134.svg\";","module.exports = __webpack_public_path__ + \"static/media/png.341d5873.svg\";","// load .env\nrequire('dotenv').config();\n\nconst global_env = (process.env.NODE_ENV === 'development') ? process.env : window.ENV;\n\nexport const AUTH_TOKEN = 'auth-token'\nexport const AUTH_REFRESH_TOKEN = 'auth-refresh-token'\n\n// App names\nexport const VERSION_APP = \"1.0.9-sp42\"\nexport const NAME_APP = global_env.REACT_APP_NAME_APP || 'POVERKA'\nexport const BLOB_NAME_APP = global_env.REACT_APP_BLOB_NAME_APP || 'POVERKA'\n\nexport const BLOB_SETHOST = global_env.REACT_APP_BLOB_SETHOST || 'blob.поверка.su/get';\n\n// SERVICE URI's\n//export const URI_AUTH = 'http://195.209.35.28:4777'\n//export const URI_DATA = 'http://195.209.35.28:4000'\n//export const URI_DATA = 'http://195.209.35.28:4000'\nexport const URI_AUTH = global_env.REACT_APP_URI_AUTH || 'http://localhost:4777'\n\nexport const URI_FIAS = global_env.REACT_APP_URI_FIAS || 'http://localhost:4888'\n\nexport const URI_CASL = global_env.REACT_APP_URI_CASL || 'http://localhost:4555'\n\nexport const URI_BLOB = global_env.REACT_APP_URI_BLOB || 'http://localhost:4999'\n\nexport const URI_DATA = global_env.REACT_APP_URI_CORE || 'http://localhost:4000'\nexport const WS_DATA = global_env.REACT_APP_WS_CORE || 'ws://localhost:4000'\n\nexport const URI_NOTIFICATIONS = global_env.REACT_APP_URI_NOTIFICATIONS || 'http://localhost:3330'\nexport const WS_NOTIFICATIONS = global_env.REACT_APP_WS_NOTIFICATIONS || 'ws://localhost:3330'\n\nexport const URI_FGIS = global_env.REACT_APP_URI_FGIS || 'http://localhost:4855'\nexport const URI_ORDERS_TO_XML = global_env.REACT_APP_URI_ORDERS_TO_XML || 'http://localhost:8363'\n","export default (builtQuery, fetchType, resource, params) => {\n \n if (fetchType === \"GET_MANY_REFERENCE\") {\n return {\n ...builtQuery,\n variables: ((variables) => ({\n filter: variables.filter,\n page: params.pagination.page-1,\n perPage: params.pagination.perPage,\n sortField: params.sort.field,\n sortOrder: params.sort.order,\n }))(builtQuery.variables), \n }\n }\n\n \n return builtQuery;\n}","import { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { setContext } from 'apollo-link-context';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { GetAccessToken } from '../authProvider';\nimport { URI_FIAS } from '../../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_FIAS\n})\n\nconst fiasLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n //console.log('++++> ['+URI_FIAS+'] header get TOKEN from localStorage ('+token+')');\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst apolloFiasClient = new ApolloClient({\n link: fiasLink.concat(httpLink),\n cache: new InMemoryCache()\n})\n\nexport default apolloFiasClient","\nimport { buildQuery } from 'ra-data-graphql-simple'\nimport globalBuiltQuery from '../globalBuiltQuery'\nimport gql from 'graphql-tag'\nimport apolloFiasClient from '../Fias/apolloFiasClient';\nimport { orderBy } from 'lodash';\nconst GET_LIST_ORDER = gql`\n query allOrders($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: OrderFilter) {\n items: allOrders(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n },\n total: _allOrdersMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_MANY_ORDERS = gql`\n query allOrders($filter: OrderFilter) {\n items: allOrders(filter: $filter) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n },\n total: _allOrdersMeta(filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_ORDER = gql`\n query Order($id: ID!) {\n data: Order(id: $id) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n counterparty { id name }\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n manufactureYear\n manufactureNum\n\n siTypeId\n siTypeName\n siTypeNumber\n siTypeMPIYears\n siTypeMPIMonths\n siTypeManufacturerTotal\n\n ccsvTypeId\n ccsvTypeCCSV\n\n suTypeId\n suTypeNumber\n suTypeName\n\n gsiTypeId\n gsiTypeType\n gsiTypeNumber\n gsiTypeName\n\n isSIOwnedByVerifier\n signMi\n signPass\n validAt\n certificateNumber\n stickerNumber\n }\n }\n`\nconst UPDATE_ORDER = gql`\n mutation updateOrder( \n $id: ID!, \n $isArchive: Boolean, \n $isFavorite: Boolean, \n $statusRef:String, \n $customer:UserOrder, \n $verifier:UserOrder, \n $dispatcher:UserOrder, \n $addrManual: String, \n $regionId: String, \n $districtIdOrCityId: String, \n $districtId: String, \n $cityId: String, \n $streetId:String, \n $houseNum: String, \n $houseCorp: String, \n $houseFlat: String, \n $meter: MeterWhereUniqueInput, \n $meterLocation: String, \n $meterUninstallAt: DateTime, \n $comment: String, \n $files:FilesInput, \n $resultRef:String, \n $resultDesc:String, \n $invoice: String, \n $personalAccount: String, \n $isSealNotInstalled: Boolean, \n $completedDeadlineAt: DateTime, \n $nextCompletedDeadlineAt: DateTime,\n\n $manufactureYear: Int\n $manufactureNum: String\n\n $siTypeId: String\n $siTypeName: String\n $siTypeNumber: String\n $siTypeMPIYears: Int\n $siTypeMPIMonths: Int\n $siTypeManufacturerTotal: String\n\n $ccsvTypeId: String\n $ccsvTypeCCSV: String\n\n $suTypeId: String\n $suTypeNumber: String\n $suTypeName: String\n\n $gsiTypeId: String\n $gsiTypeType: String\n $gsiTypeNumber: String\n $gsiTypeName: String\n\n $isSIOwnedByVerifier: Boolean\n $signMi: Boolean\n $signPass: Boolean\n $validAt: DateTime\n $certificateNumber: String\n $stickerNumber: String\n\n ){\n data: updateOrder( \n id: $id,\n isArchive: $isArchive, \n isFavorite: $isFavorite, \n statusRef: $statusRef, \n customer: $customer, \n verifier: $verifier, \n dispatcher: $dispatcher, \n addrManual: $addrManual, \n regionId: $regionId, \n districtIdOrCityId: $districtIdOrCityId,\n districtId: $districtId, \n cityId: $cityId, \n streetId: $streetId, \n houseNum: $houseNum, \n houseCorp: $houseCorp, \n houseFlat: $houseFlat, \n meter: $meter, \n meterLocation: $meterLocation, \n meterUninstallAt: $meterUninstallAt, \n comment: $comment, \n files:$files, \n resultRef: $resultRef, \n resultDesc: $resultDesc, \n invoice: $invoice, \n personalAccount: $personalAccount, \n isSealNotInstalled: $isSealNotInstalled,\n completedDeadlineAt: $completedDeadlineAt, \n nextCompletedDeadlineAt: $nextCompletedDeadlineAt\n manufactureYear: $manufactureYear\n manufactureNum: $manufactureNum\n\n siTypeId: $siTypeId\n siTypeName: $siTypeName\n siTypeNumber: $siTypeNumber\n siTypeMPIYears: $siTypeMPIYears\n siTypeMPIMonths: $siTypeMPIMonths\n siTypeManufacturerTotal: $siTypeManufacturerTotal\n\n ccsvTypeId: $ccsvTypeId\n ccsvTypeCCSV: $ccsvTypeCCSV\n\n suTypeId: $suTypeId\n suTypeNumber: $suTypeNumber\n suTypeName: $suTypeName\n\n gsiTypeId: $gsiTypeId\n gsiTypeType: $gsiTypeType\n gsiTypeNumber: $gsiTypeNumber\n gsiTypeName: $gsiTypeName\n\n isSIOwnedByVerifier: $isSIOwnedByVerifier\n signMi: $signMi\n signPass: $signPass\n validAt: $validAt\n certificateNumber: $certificateNumber\n stickerNumber: $stickerNumber\n ) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n manufactureYear\n manufactureNum\n\n siTypeId\n siTypeName\n siTypeNumber\n siTypeMPIYears\n siTypeMPIMonths\n siTypeManufacturerTotal\n\n ccsvTypeId\n ccsvTypeCCSV\n\n suTypeId\n suTypeNumber\n suTypeName\n\n gsiTypeId\n gsiTypeType\n gsiTypeNumber\n gsiTypeName\n\n isSIOwnedByVerifier\n signMi\n signPass\n validAt\n certificateNumber\n stickerNumber\n }\n }\n`\n\n\n\nconst GET_LIST_ORDERHISTORIES = gql`\n query allOrderHistories($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: OrderHistoryFilter) {\n items: allOrderHistories(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n order {\n id\n humanId\n }\n orderHumanId\n user {\n id\n name\n phone\n }\n userName\n action\n changes\n meta\n updated\n createdAt\n },\n total: _allOrderHistoriesMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_ORDERHISTORY = gql`\n query OrderHistory($id: ID!) {\n data: OrderHistory(id: $id) {\n id\n order {\n id\n humanId\n }\n orderHumanId\n user {\n id\n name\n phone\n }\n userName\n action\n updated\n changes\n meta\n createdAt\n }\n }\n`\n\n\nconst GET_LIST_METERS = gql`\n query allMeters($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: MeterFilter) {\n items: allMeters(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n type\n name\n description\n documentation {\n id\n url\n desc\n ext\n size\n }\n verifyInterval\n },\n total: _allMetersMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_METER = gql`\n query Meter($id: ID!) {\n data: Meter(id: $id) {\n id\n type\n name\n description\n documentation {\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n verifyInterval\n }\n }\n`\n\nconst UPDATE_METER = gql`\n mutation updateMeter( $id: ID!, $type: String!, $name: String!, $description: String, $verifyInterval: Int, $documentation: FilesInput ){\n data: updateMeter( id: $id, type: $type, name: $name, description: $description, verifyInterval: $verifyInterval, documentation: $documentation) {\n id\n type\n name\n description\n documentation {\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n verifyInterval\n }\n }\n`\n\nconst GET_ONE_USER = gql`\n query User($id: ID!) {\n data: User(id: $id) {\n id\n name\n email\n phone\n role\n authId\n authStatus\n createdAt\n updatedAt\n regionIds\n districtIdOrCityIds\n notificationTags\n isArchive\n online\n customer {\n id\n type\n organizationName\n organizationInn\n payment\n }\n counterparty {\n id\n name\n }\n }\n }\n`\n\nconst GET_PROFILE = gql`\n query Profile($id: ID!) {\n data: Profile(id: $id) {\n id\n name\n email\n phone\n role\n authId\n authStatus\n createdAt\n updatedAt\n regionIds\n districtIdOrCityIds\n notificationTags\n isArchive\n online\n customer {\n id\n type\n organizationName\n organizationInn\n payment\n }\n }\n }\n`\n\nconst customBuildQuery = introspection => (fetchType, resource, params) => {\n\n const builtQuery = globalBuiltQuery(buildQuery(introspection)(fetchType, resource, params), fetchType, resource, params);\n\n if (resource === 'Statistic' && fetchType === 'GET_LIST') {\n let result = {\n ...builtQuery,\n parseResponse: async function (response) {\n\n let result = [];\n let total_item = { id: 'Total' };\n const locationIds = response.data.items.map(item => item.id);\n\n const allLocations = await apolloFiasClient.query({\n query: gql`\n query allLocations($filter: LocationFilter) {\n allLocations(filter: $filter) {\n id\n typeShort\n name\n unrestrictedName\n level \n }\n }\n `,\n variables: {\n filter: {\n ids: locationIds\n }\n },\n onError: (error) => {\n alert(error)\n }\n });\n\n const locations = allLocations.data.allLocations\n\n result = response.data.items.filter(item => item.id !== 'Total').map(item => {\n\n Object.keys(item).forEach(prop => {\n if (prop === 'id') return;\n if (total_item[prop] === undefined) {\n total_item[prop] = item[prop];\n } else {\n total_item[prop] += item[prop];\n }\n });\n\n const location = locations.find(location => item.id === location.id);\n\n return { ...item, ...location }\n\n });\n\n const sortField = builtQuery.variables.sortField || \"id\"\n const sortOrder = builtQuery.variables.sortOrder || \"DESC\"\n\n result = orderBy(result, [sortField], [sortOrder.toLowerCase()]);\n\n result.push(total_item);\n\n response.data.items = result\n\n return builtQuery.parseResponse(response);\n }\n }\n\n return result;\n }\n\n if (resource === 'Profile') {\n\n if (fetchType === 'GET_ONE') {\n return {\n ...builtQuery,\n query: GET_PROFILE,\n };\n\n }\n\n if (fetchType === 'UPDATE') {\n return {\n ...builtQuery,\n parseResponse: response => {\n const { data: { data: user } } = response;\n localStorage.setItem('regionIds', user.regionIds);\n localStorage.setItem('districtIdOrCityIds', user.districtIdOrCityIds);\n return builtQuery.parseResponse(response);\n },\n };\n }\n };\n\n if (resource === 'User') {\n switch (fetchType) {\n case 'GET_ONE':\n return {\n ...builtQuery,\n query: GET_ONE_USER\n };\n break;\n\n default: break;\n\n }\n\n\n }\n\n if (resource === 'Order') {\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n\n if (builtQuery.variables.filter.oneOfUserManyId) {\n let id = builtQuery.variables.filter.oneOfUserManyId;\n delete builtQuery.variables.filter.oneOfUserManyId;\n if (!builtQuery.variables.filter.oneOfUserMany) { builtQuery.variables.filter.oneOfUserMany = {} }\n builtQuery.variables.filter.oneOfUserMany.id = id;\n }\n\n return {\n ...builtQuery,\n query: GET_LIST_ORDER,\n };\n }\n\n case 'GET_MANY': {\n return {\n ...builtQuery,\n query: GET_MANY_ORDERS,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_ORDER,\n\n };\n }\n\n case 'UPDATE': {\n return {\n ...builtQuery,\n query: UPDATE_ORDER,\n\n };\n }\n default: break;\n }\n }\n\n if (resource === 'OrderHistory') {\n\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n //TODO: Костыль для отображения истории\n //поле orderId начало появляться после обновления ra-data-graphql-simple на версию 2.9.0 \n\n if (builtQuery.variables.filter.orderId) {\n let id = builtQuery.variables.filter.orderId;\n delete builtQuery.variables.filter.orderId;\n if (!builtQuery.variables.filter.order) { builtQuery.variables.filter.order = {} }\n builtQuery.variables.filter.order.id = id;\n }\n\n if (builtQuery.variables.filter.userId) {\n let id = builtQuery.variables.filter.userId;\n delete builtQuery.variables.filter.userId;\n if (!builtQuery.variables.filter.user) { builtQuery.variables.filter.user = {} }\n builtQuery.variables.filter.user.id = id;\n }\n\n return {\n ...builtQuery,\n query: GET_LIST_ORDERHISTORIES,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_ORDERHISTORY,\n\n };\n }\n default: break;\n }\n }\n\n if (resource === 'Meter') {\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n return {\n ...builtQuery,\n query: GET_LIST_METERS,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_METER,\n\n };\n }\n\n case 'UPDATE': {\n return {\n ...builtQuery,\n query: UPDATE_METER,\n\n };\n }\n default: break;\n }\n }\n\n return builtQuery;\n}\n\nexport default customBuildQuery","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { WebSocketLink } from 'apollo-link-ws'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport { split } from 'apollo-link';\nimport { getMainDefinition } from 'apollo-utilities'\nimport { GetAccessToken } from '../authProvider';\nimport { URI_DATA, WS_DATA } from '../../appsettings';\nimport coreBuiltQuery from './builtQuery';\n\nconst httpLink = createHttpLink({\n uri: URI_DATA\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n //console.log('++++> ['+URI_DATA+'] header get TOKEN from localStorage ('+token+')');\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_DATA,\n options: {\n lazy: true,\n reconnect: true,\n connectionParams: async () => {\n const token = await GetAccessToken();\n\n return {\n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nconst apolloCoreClient = new ApolloClient({\n link,\n cache: new InMemoryCache()\n})\n\nexport default apolloCoreClient","import { Ability } from '@casl/ability'\nimport { createContext } from 'react'\nimport { createContextualCan } from '@casl/react'\n\n\n//export const ability = process.env.REACT_APP_MODE != 1 ? new Ability([]) : { can: function() { return true; } }\n\nexport const ability = new Ability([]);\n\n\nexport const defineAbilityFor = function (rules) {\n \n\n //throw new Error(`Error.${error.message.replace('Error: ', '').replace('GraphQL error: ', '')}`) \n rules.filter(r => r.conditions).forEach(r => { for(let key in r.conditions) { if(r.conditions[key] === \"undefined\") { r.conditions[key] = undefined; }}});\n\n ability.update([]);\n ability.update(rules);\n \n return rules;\n} \n\nexport const AbilityContext = createContext()\nexport const Can = createContextualCan(AbilityContext.Consumer)\n\n\n\n\n// export const defineAbilityFor = function (role) {\n// const { rules, can, /* cannot */ } = AbilityBuilder.extract()\n\n// // type Order {\n// // id: ID! @unique\n// // humanId: String! @unique\n// // createdAt: DateTime!\n// // updatedAt: DateTime!\n// // completedAt: DateTime\n// // statusRef: String @default(value: \"new\")\n// // resultRef: String\n// // resultDesc: String\n// // meterRef: String!\n// // meterLocation: MeterLocation @default(value: \"UNKNOWN\")\n// // meterUninstallAt: DateTime\n// // comment: String\n// // customerToUserRef: String!\n// // verifierToUserRef: String\n// // dispatcherToUserRef: String\n// // regionId: String\n// // districtIdOrCityId: String\n// // cityId: String\n// // streetId: String\n// // houseNum: String\n// // houseCorp: String\n// // houseFlat: String\n// // addrManual: String\n// // documents: [Document]\n// // isArchive: Boolean! @default(value: \"false\")\n// // }\n \n\n\n// switch(role) {\n// case 'SUPERADMIN':\n// can(['list', 'show', 'edit', 'create', 'delete', 'archive'], ['Order','Statistic', 'User', 'Meter', 'OrderHistory', 'File', 'Location'])\n// break;\n\n// case 'ADMIN':\n// can(['list', 'show', 'edit', 'create', 'delete', 'archive'], ['Order','Statistic', 'User', 'Meter'])\n// can(['show'], ['File'])\n// break;\n\n// case 'MANAGER':\n// can(['list', 'show', 'edit', 'create', 'archive'], ['Order', 'Statistic', 'User', 'Meter'])\n// can(['show'], ['File'])\n// break;\n\n// case 'DISPATCHER': \n// can(['list', 'show', 'edit', 'create'], ['Order', 'User'])\n// can('list', 'Statistic')\n// can(['list', 'show'], ['Meter'])\n// break;\n\n// case 'VERIFIER': \n// can('list', 'Order')\n// can('show', 'Order', [\n// 'humanId',\n// 'createdAt',\n// 'updatedAt',\n// 'completedAt',\n// 'statusRef',\n// 'resultRef',\n// 'resultDesc',\n// 'meterRef',\n// 'meterLocation',\n// 'meterUninstallAt',\n// 'comment',\n// 'customerToUserRef',\n// 'verifierToUserRef',\n// 'dispatcherToUserRef',\n// 'addrManual',\n// 'files',\n// 'isArchive',\n// 'completedDeadlineAt',\n// 'invoice',\n// 'isSealNotInstalled',\n// ])\n// can('edit', 'Order', [\n// 'statusRef',\n// 'resultRef',\n// 'resultDesc',\n// 'meterRef',\n// 'meterLocation',\n// 'meterUninstallAt',\n// 'comment',\n// 'verifierToUserRef',\n// 'files',\n// 'invoice',\n// 'isSealNotInstalled',\n// ])\n// can('list', 'Statistic')\n// can('show', 'User')\n// can(['list', 'show'], 'Meter')\n// can(['list', 'show'], 'File')\n// can('show', 'Location')\n// break;\n\n// case 'EMPLOYEE': \n// can(['list', 'show'], ['Order'])\n// can(['show'], ['User', 'Meter'])\n// break;\n\n// case 'CUSTOMER': \n// can(['list', 'create'], ['Order'])\n// break;\n\n// case 'GUEST':\n// default:\n// can(['create'], ['Order'])\n// break;\n// }\n\n// return rules\n// }\n","import { NAME_APP, URI_CASL } from '../appsettings'\nimport { ApolloClient } from 'apollo-client';\nimport { GetAccessToken } from './authProvider';\nimport { createHttpLink } from 'apollo-link-http'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport gql from 'graphql-tag';\n\nconst CASL_QUERY_GETABILITY = gql`\n query getAbility {\n rules: getAbility {\n actions\n subject\n conditions\n fields\n inverted\n reason\n }\n }\n`\n\nconst httpLink = createHttpLink({\n uri: URI_CASL\n})\n\nconst caslLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n //console.log('++++> ['+URI_CASL+'] header get TOKEN from localStorage ('+token+')');\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n appName: NAME_APP\n }\n }\n});\n\nconst defaultOptions = {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n}\n\nexport const apolloCaslClient = new ApolloClient({\n link: caslLink.concat(httpLink),\n cache: new InMemoryCache(),\n defaultOptions: defaultOptions\n})\n\nexport async function getAbility() {\n\n const { rules } = await apolloCaslClient.query({\n query: CASL_QUERY_GETABILITY\n }).then(responce => responce.data);\n\n if (!rules) throw new Error(\"Ability rules not found\");\n\n return rules;\n}","import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK, AUTH_ERROR, AUTH_GET_PERMISSIONS } from 'react-admin'\nimport { AUTH_TOKEN, AUTH_REFRESH_TOKEN, URI_AUTH } from '../appsettings'\nimport apolloCoreClient from './Core/apolloCoreClient'\nimport gql from 'graphql-tag'\nimport ApolloClient from \"apollo-boost\"\nimport decodeJwt from 'jwt-decode'\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport { ability, defineAbilityFor } from '../ability' //++доступ по роли\nimport { getAbility } from './caslProvider'\n\nexport const apolloAuthClient = new ApolloClient({\n uri: URI_AUTH\n});\n\n\nconst LOGIN_MUTATION = gql`\n mutation LoginMutation($login: String!, $password: String!) {\n login(login: $login, password: $password) {\n token,\n refreshToken,\n user {\n id,\n email,\n phone,\n name,\n role\n }\n }\n }\n`\nconst REFRESH_TOKEN_MUTATION = gql`\n mutation refresh($refreshToken: String!) {\n refresh(refreshToken: $refreshToken) { \n token,\n refreshToken, \n }\n }\n`\n\nfunction checkUserBanned(checkUser) {\n if (checkUser.authStatus === \"BANNED\") throw new Error(`User is banned`);\n}\n\nexport function authProvider(type, params) {\n if (type === AUTH_LOGIN) {\n\n return Promise.resolve(params).then(function (params) {\n const { login, password } = params\n\n const phoneNumber = parsePhoneNumberFromString(login, 'RU')\n\n return apolloAuthClient.mutate({\n mutation: LOGIN_MUTATION,\n variables: {\n login: (phoneNumber && phoneNumber.isValid()) ? phoneNumber.number : login,\n password: password,\n },\n onError: (error) => {\n alert(error)\n },\n })\n }).then(async ({ data, apolloAuthClient, error }) => {\n\n\n if (error) throw new Error(error)\n\n const { token, refreshToken, user } = data.login;\n\n const coreUser = await apolloCoreClient.mutate({\n mutation: gql`\n mutation loginUser($id: ID!, $email: String, $name: String, $phone: String, $role: String) {\n loginUser(authId: $id, email: $email, name: $name, phone: $phone, role: $role) {\n id\n name\n email\n phone\n role\n regionIds\n districtIdOrCityIds\n authStatus \n }\n }\n `,\n variables: {\n ...user\n }\n });\n\n checkUserBanned(coreUser.data.loginUser);\n\n localStorage.setItem(AUTH_TOKEN, token)\n localStorage.setItem(AUTH_REFRESH_TOKEN, refreshToken)\n\n const abilityRules = await getAbility()\n defineAbilityFor(abilityRules) //++доступ по роли \n\n return coreUser\n }).then(function (result) {\n\n const loginUser = result.data.loginUser\n if (!!loginUser) {\n localStorage.setItem('regionIds', loginUser.regionIds || []);\n localStorage.setItem('districtIdOrCityIds', loginUser.districtIdOrCityIds || []);\n }\n\n return Promise.resolve();\n })\n .catch((error) => {\n\n throw new Error(`Error.${error.message.replace('Error: ', '').replace('GraphQL error: ', '')}`)\n\n })\n }\n if (type === AUTH_LOGOUT) {\n localStorage.removeItem(AUTH_REFRESH_TOKEN);\n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem('regionIds');\n localStorage.removeItem('districtIdOrCityIds');\n return Promise.resolve()\n }\n if (type === AUTH_ERROR) {\n const status = params.status;\n if (status === 401 || status === 403) {\n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem(AUTH_REFRESH_TOKEN);\n localStorage.removeItem('regionIds');\n localStorage.removeItem('districtIdOrCityIds');\n return Promise.reject()\n }\n return Promise.resolve()\n }\n if (type === AUTH_CHECK) {\n return ((localStorage.getItem(AUTH_TOKEN) && !IsExpiredToken(localStorage.getItem(AUTH_REFRESH_TOKEN))))\n ? Promise.resolve()\n : Promise.reject();\n }\n if (type === AUTH_GET_PERMISSIONS) {\n\n const token = localStorage.getItem(AUTH_TOKEN)\n\n // if (!token) {\n // ability.update([]);\n // return Promise.resolve({role: \"GUEST\"});\n // };\n\n const permissions = {};\n const decodedToken = decodeJwt(token);\n const role = decodedToken.role\n\n if (!!role) permissions.role = role\n\n return role ? Promise.resolve(permissions).then(async function (permissions) {\n const abilityRules = await getAbility()\n ability.update(defineAbilityFor(abilityRules))\n return Promise.resolve(permissions);\n }) : Promise.reject();\n }\n\n return Promise.reject('Unkown method')\n}\n\nexport async function GetAccessToken() {\n var authtoken = localStorage.getItem(AUTH_TOKEN);\n var authrefreshtoken = localStorage.getItem(AUTH_REFRESH_TOKEN);\n\n if (IsExpiredToken(authtoken) && !IsExpiredToken(authrefreshtoken, 'refresh')) {\n\n //console.log('====> ['+URI_AUTH+'] Start get NEW TOKEN');\n\n try {\n var response = await apolloAuthClient.mutate({\n mutation: REFRESH_TOKEN_MUTATION,\n variables: {\n refreshToken: authrefreshtoken,\n },\n onError: (error) => {\n alert(error)\n },\n });\n\n const { token, refreshToken } = response.data.refresh\n\n localStorage.setItem(AUTH_TOKEN, token)\n localStorage.setItem(AUTH_REFRESH_TOKEN, refreshToken)\n\n authtoken = token;\n\n } catch (error) {\n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem(AUTH_REFRESH_TOKEN);\n return null;\n }\n\n\n //console.log('====> ['+URI_AUTH+'] End get NEW TOKEN ('+token+')');\n }\n\n return authtoken;\n}\n\nexport function IsExpiredToken(token, arg) {\n if (token) {\n const decodedToken = decodeJwt(token);\n const current_time = Date.now() / 1000;\n const result = (decodedToken.exp - 20) < current_time;\n return result;\n } else {\n return true;\n }\n}","import { ApolloClient } from 'apollo-client';\nimport { createUploadLink } from 'apollo-upload-client'\nimport { setContext } from 'apollo-link-context';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { GetAccessToken } from '../authProvider';\nimport { URI_BLOB } from '../../appsettings';\n\n// eslint-disable-next-line no-extend-native\nArray.prototype.selectMany = function (fn) {\n return this.map(fn).reduce(function (x, y) { return x.concat(y); }, []);\n};\n\nconst httpLink = createUploadLink({\n uri: URI_BLOB\n})\n\nconst blobLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst apolloBlobClient = new ApolloClient({\n link: blobLink.concat(httpLink),\n cache: new InMemoryCache()\n})\n\nexport default apolloBlobClient;","export function selectMany(array, fn) {\n return array.map(fn).reduce(function (x, y) { return x.concat(y); }, []);\n}\nexport const requiredCustom = (message = 'ra.validation.required') => \n Object.assign(\n (value, allValues, props) => value ? undefined : props.translate(message),\n { isRequired: true }\n );\n","import { ApolloClient } from 'apollo-client';\nimport gql from 'graphql-tag'\nimport { createHttpLink } from 'apollo-link-http'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport { GetAccessToken} from '../authProvider';\nimport { URI_AUTH } from '../../appsettings';\n\nconst httpLink = createHttpLink({\n uri: URI_AUTH\n})\n\nconst authLink = setContext(async (_, { headers }) => { \n const token = await GetAccessToken(); \n //console.log('++++> ['+URI_DATA+'] header get TOKEN from localStorage ('+token+')');\n \n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nexport const apolloAuthClient = new ApolloClient({\n link: authLink.concat(httpLink), \n cache: new InMemoryCache()\n})\n\nexport async function GetUsers() { \n var response = await apolloAuthClient.query({\n query: gql`\n {\n users {\n id,\n name,\n role,\n email,\n phone\n }\n }`,\n onError: (error) => {\n alert(error)\n },\n });\n\n return response;\n} \n\nexport async function createUser(user) { \n\n var response = await apolloAuthClient.mutate({\n mutation: gql`\n mutation createUser($email: String, $phone: String!, $password: String!, $name: String!, $role: String) {\n createUser(email: $email, password:$password, name:$name, phone:$phone, role:$role) { \n id\n name\n email\n phone\n role\n }\n }\n `,\n variables: {\n email:user.email,\n password:user.password, \n name:user.name,\n phone: user.phone, \n role: user.role, \n }\n });\n\n return response.data.createUser;\n} \n\nexport async function updateUser(user) { \n \n var response = await apolloAuthClient.mutate({\n mutation: gql`\n mutation updateUser($id: ID! $email: String, $password: String, $name: String, $phone: String) {\n updateUser(id:$id, email: $email, password:$password, name:$name, phone:$phone) { \n id \n email\n name\n phone\n role\n }\n }\n `,\n variables: {\n id: user.authId,\n email:user.email,\n password:user.password, \n name:user.name,\n phone: user.phone, \n role: user.role, \n }\n });\n\n return response.data.updateUser;\n}","import gql from 'graphql-tag'\nimport apolloBlobClient from '../Blob/apolloBlobClient';\nimport apolloCoreClient from './apolloCoreClient';\nimport { BLOB_NAME_APP } from '../../appsettings';\nimport { selectMany } from '../../utils';\nimport { createUser as createAuthUser, updateUser as updateAuthUser } from '../Auth/graphqlProvider';\n\nconst REMOVE_FILES = gql`\n mutation($ids:[ID]) {\n multipleRemove(ids: $ids) {\n id\n url\n filename\n }\n}\n`\n\nasync function createCoreFiles(type, resource, files = []) {\n\n let newFiles = [];\n let newFilesBlob = files.filter(file => !!file.rawFile).map(file => file.rawFile);\n\n if (newFilesBlob.length > 0) {\n var response = await apolloBlobClient.mutate({\n mutation: gql`\n mutation multipleUpload($appname: String!, $namecatalog: String! $files: [Upload!]!) {\n multipleUpload(appname: $appname, namecatalog: $namecatalog, files: $files) {\n id\n userId\n catalog \n url\n urlThumbnail \n ext\n sizeInBytes\n filename\n mimetype\n }\n }\n `,\n variables: { appname: BLOB_NAME_APP, namecatalog: resource, files: newFilesBlob },\n onError: (error) => {\n alert(error)\n }\n });\n\n newFiles = response.data.multipleUpload.map(file => ({ idBlob: file.id, url: file.url, urlThumbnail: file.urlThumbnail, desc: file.filename, catalog: file.catalog, ext: file.ext != null ? file.ext.replace('.', '').toLowerCase() : null, size: file.sizeInBytes, createdByAuth: file.userId, status: 'NEW' }));\n }\n\n return newFiles;\n};\n\n\nasync function updateCoreFiles(type, resource, files = [], previous = []) {\n\n console.log('++++> START DECORATE updateCoreFiles');\n\n const currentFileIds = files.filter(file => !!file.idBlob).map(file => file.idBlob);\n const previousFileIds = previous.filter(file => !!file.idBlob);\n\n let removeFiles = previousFileIds.filter(file => currentFileIds.indexOf(file.idBlob) === -1).map(file => ({ ...file, status: 'REMOVE' }));\n let newFiles = [];\n let newFilesBlob = files.filter(file => !!file.rawFile).map(file => file.rawFile);\n\n if (removeFiles.length > 0) {\n await apolloBlobClient.mutate({\n mutation: REMOVE_FILES,\n variables: { ids: removeFiles.map(file => (file.idBlob)) },\n onError: (error) => {\n alert(error)\n }\n });\n }\n\n if (newFilesBlob.length > 0) {\n var response = await apolloBlobClient.mutate({\n mutation: gql`\n mutation multipleUpload($appname: String!, $namecatalog: String! $files: [Upload!]!) {\n multipleUpload(appname: $appname, namecatalog: $namecatalog, files: $files) {\n id\n userId\n catalog \n url\n urlThumbnail \n ext\n sizeInBytes\n filename\n mimetype\n }\n }\n `,\n variables: { appname: BLOB_NAME_APP, namecatalog: resource, files: newFilesBlob },\n onError: (error) => {\n alert(error)\n }\n });\n\n newFiles = response.data.multipleUpload.map(file => ({ idBlob: file.id, url: file.url, urlThumbnail: file.urlThumbnail, desc: file.filename, catalog: file.catalog, ext: file.ext != null ? file.ext.replace('.', '').toLowerCase() : null, size: file.sizeInBytes, createdByAuth: file.userId, status: 'NEW' }));\n }\n\n console.log('++++> END DECORATE updateCoreFiles');\n\n return newFiles.concat(removeFiles);\n};\n\n\n\nexport default async (type, resource, params) => {\n\n const { data, previousData } = params;\n\n if (resource === 'Profile') {\n\n if (type === 'UPDATE') {\n\n if (!!params.data.customer) {\n delete params.data.customer['__typename'];\n }\n\n const authId = params.data.authId;\n const pass = params.data.password;\n let authUser = {};\n\n if (!!params.data.customer) {\n delete params.data.customer['__typename'];\n }\n\n //если нет authId и пароля, то обновляем пользователя только в core\n if (!authId && !pass) {\n return { type, resource, params };\n }\n\n if (!authId && pass) {\n authUser = await createAuthUser(params.data);\n }\n\n if (authId) {\n authUser = await updateAuthUser(params.data);\n }\n\n params.data = {\n ...params.data,\n authId: authUser.id,\n authStatus: \"ACTIVE\",\n }\n\n }\n\n }\n\n if (resource === 'Counterparty') {\n switch (type) {\n case 'CREATE': {\n if (data.usersIds) { data.users = data.usersIds.map(id => ({ id })) }\n break;\n }\n case 'UPDATE': {\n if (data.usersIds) { data.users = data.usersIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n\n if (resource === 'User') {\n\n if (type === 'CREATE') {\n\n if (data.counterparty) { data.counterparty = (data.counterparty.id) ? { id: data.counterparty.id } : null }\n\n if (!params.data.password) {\n return { type, resource, params };\n } //если нет password, то создаем пользователя только в core\n\n const authUser = await createAuthUser(params.data);\n\n params.data = {\n ...params.data,\n authId: authUser.id,\n authStatus: \"ACTIVE\",\n }\n }\n\n if (type === 'UPDATE') {\n\n if (data.counterparty) { data.counterparty = (data.counterparty || previousData.counterparty) ? { id: data.counterparty.id } : null }\n\n const authId = params.data.authId;\n const pass = params.data.password;\n let authUser = {};\n\n if (!!params.data.customer) {\n delete params.data.customer['__typename'];\n }\n\n //если нет authId и пароля, то обновляем пользователя только в core\n if (!authId && !pass) {\n return { type, resource, params };\n }\n\n if (!authId && pass) {\n authUser = await createAuthUser(params.data);\n }\n\n if (authId) {\n authUser = await updateAuthUser(params.data);\n }\n\n params.data = {\n ...params.data,\n authId: authUser.id,\n authStatus: \"ACTIVE\",\n }\n\n }\n\n }\n\n if (resource === 'Order') {\n switch (type) {\n case 'CREATE': {\n if (params.data.customer) { params.data.customer = (params.data.customer.id) ? { id: params.data.customer.id } : null }\n if (params.data.meter) { params.data.meter = (params.data.meter.id) ? { id: params.data.meter.id } : null }\n if (!params.data.meterUninstallAt) { params.data.meterUninstallAt = null }\n break;\n }\n case 'UPDATE': {\n if (params.data.customer) { params.data.customer = (!params.data.customer.id && !params.previousData.customer) ? null : { id: params.data.customer.id } }\n if (params.data.verifier) { params.data.verifier = (!params.data.verifier.id && !params.previousData.verifier) ? null : { id: params.data.verifier.id } }\n if (params.data.dispatcher) { params.data.dispatcher = (!params.data.dispatcher.id && !params.previousData.dispatcher) ? null : { id: params.data.dispatcher.id } }\n if (params.data.meter) { params.data.meter = (!params.data.meter.id && !params.previousData.meter) ? null : { id: params.data.meter.id } }\n if (!params.data.meterUninstallAt) { params.data.meterUninstallAt = null }\n if (!!params.data.files) { params.data.files = await updateCoreFiles(type, resource, params.data.files, params.previousData.files); }\n break;\n }\n case 'DELETE':\n case 'DELETE_MANY': {\n let ids = (params.id !== undefined) ? [params.id] : ((params.ids !== undefined) ? params.ids : []);\n if (ids.length > 0) {\n const orders = await apolloCoreClient.query({\n query: gql`\n query allOrders($page: Int, $perPage: Int, $filter: OrderFilter) {\n allOrders(page: $page, perPage: $perPage, filter: $filter) {\n id\n files {\n idBlob\n } \n }\n }\n `,\n variables: {\n page: 0, perPage: 100, filter: {\n ids: ids\n }\n },\n onError: (error) => {\n alert(error)\n }\n });\n\n var idsFiles = selectMany(orders.data.allOrders, orders => (orders.files.map(file => file.idBlob)));\n\n //var idsFiles = orders.data.allOrders.selectMany(orders => (orders.files.map(file => file.idBlob)))\n\n await apolloBlobClient.mutate({\n mutation: REMOVE_FILES,\n variables: { ids: idsFiles },\n onError: (error) => {\n alert(error)\n }\n });\n }\n break;\n }\n default: break;\n }\n }\n\n // for other request types and resources, fall back to the default request handler\n if (resource === 'Meter') {\n switch (type) {\n case 'CREATE': {\n if (!!params.data.documentation) params.data.documentation = await createCoreFiles(type, resource, params.data.documentation);\n break;\n }\n case 'UPDATE': {\n if (!!params.data.documentation) params.data.documentation = await updateCoreFiles(type, resource, params.data.documentation, params.previousData.documentation);\n break;\n }\n case 'DELETE':\n case 'DELETE_MANY': {\n let ids = (params.id !== undefined) ? [params.id] : ((params.ids !== undefined) ? params.ids : []);\n if (ids.length > 0) {\n const meters = await apolloCoreClient.query({\n query: gql`\n query allMeters($filter: MeterFilter) {\n allMeters(filter: $filter) {\n id\n documentation {\n idBlob\n } \n }\n }\n `,\n variables: { filter: { ids: ids } },\n onError: (error) => alert(error)\n });\n\n var idsFiles = selectMany(meters.data.allMeters, meters => (meters.documentation.map(file => file.idBlob)));\n //var idsFiles = meters.data.allMeters.selectMany(meters => (meters.documentation.map(file => file.idBlob)))\n\n apolloBlobClient.mutate({\n mutation: REMOVE_FILES,\n variables: { ids: idsFiles },\n onError: (error) => {\n alert(error)\n }\n });\n }\n break;\n }\n default: break;\n }\n }\n\n return { type, resource, params };\n};","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport apolloCoreClient from './apolloCoreClient';\nimport decorate from './decorate';\nimport buildQuery from './builtQuery';\n\n\n\nconst buildCoreProvider = () => buildGraphQLProvider({\n client: apolloCoreClient,\n buildQuery: buildQuery,\n});\n\n\nexport const knownResources = ['Counterparty', 'User', 'Order', 'File', 'Meter', 'MeterLocation', 'Statistic', 'Status', 'Result', 'OrderHistory', 'Profile', 'VersionsInfo'];\nexport const dataProvider = (type, resource, params) => {\n return buildCoreProvider().then(async (provider) => {\n\n const { params: paramsD } = await decorate(type, resource, params);\n\n return provider(type, resource, paramsD)\n }\n )\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default async (type, resource, params) => {\n\n return { type, resource, params };\n};","\nimport { buildQuery } from 'ra-data-graphql-simple'\nimport globalBuiltQuery from '../globalBuiltQuery'\n\nconst customBuildQuery = introspection => (fetchType, resource, params) => {\n\n const builtQuery = globalBuiltQuery(buildQuery(introspection)(fetchType, resource, params), fetchType, resource, params);\n return builtQuery;\n};\n\nexport default customBuildQuery;\n\n","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport apolloBlobClient from './apolloBlobClient'\nimport decorate from './decorate';\nimport buildQuery from './builtQuery';\n\n\n\nconst buildCoreProvider = () => buildGraphQLProvider({\n client: apolloBlobClient,\n buildQuery: buildQuery,\n});\n\n\nexport const knownResources = ['File'];\nexport const dataProvider = (type, resource, params) => {\n return buildCoreProvider().then(async (provider) => {\n\n const { params: paramsD } = await decorate(type, resource, params);\n\n return provider(type, resource, paramsD)\n }\n )\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default async (type, resource, params) => {\n\n return { type, resource, params };\n};","import { buildQuery } from 'ra-data-graphql-simple'\nimport globalBuiltQuery from '../globalBuiltQuery'\n\nconst customBuildQuery = introspection => (fetchType, resource, params) => {\n\n const builtQuery = globalBuiltQuery(buildQuery(introspection)(fetchType, resource, params), fetchType, resource, params);\n return builtQuery;\n};\n\nexport default customBuildQuery;\n","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport apolloFiasClient from './apolloFiasClient'\nimport decorate from './decorate';\nimport buildQuery from './builtQuery';\n\n\n\n\n\nconst buildCoreProvider = () => buildGraphQLProvider({\n client: apolloFiasClient,\n buildQuery: buildQuery,\n});\n\n\nexport const knownResources = ['Location'];\nexport const dataProvider = (type, resource, params) => {\n return buildCoreProvider().then(async (provider) => {\n\n const { params: paramsD } = await decorate(type, resource, params);\n\n return provider(type, resource, paramsD)\n }\n )\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","import { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { setContext } from 'apollo-link-context';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { GetAccessToken } from '../authProvider';\nimport { URI_FGIS } from '../../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_FGIS\n})\n\nconst fiasLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n //console.log('++++> ['+URI_FIAS+'] header get TOKEN from localStorage ('+token+')');\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst apolloFgisClient = new ApolloClient({\n link: fiasLink.concat(httpLink),\n cache: new InMemoryCache()\n})\n\nexport default apolloFgisClient","import gql from 'graphql-tag';\n\nconst SITYPE_TEMPLATE = `{\n id\n name\n number\n mpiyears\n mpimonths\n manufacturerTotal\n}`\n\nexport const GET_LIST_SITYPE = gql`\n query allSITypes($page: Int, $perPage: Int, $sort: [SITypeSort!], $filter: SITypeFilter) {\n data: allSITypes(page: $page, perPage: $perPage, sort: $sort, filter: $filter) {\n data: items ${SITYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_MANY_SITYPES = gql`\n query allSITypes($filter: SITypeFilter) {\n data: allSITypes(filter: $filter) {\n data: items ${SITYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_ONE_SITYPE = gql`\n query SIType( $id: String! ) {\n data: SIType( id: $id ) ${SITYPE_TEMPLATE}\n }\n`\n\n\nconst CCSVTYPE_TEMPLATE = `{\n id\n numberOrder\n nameOrg\n ccsv\n}`\n\nexport const GET_LIST_CCSVTYPE = gql`\n query allCCSVTypes($page: Int, $perPage: Int, $sort: [CCSVTypeSort!], $filter: CCSVTypeFilter) {\n data: allCCSVTypes(page: $page, perPage: $perPage, sort: $sort, filter: $filter) {\n data: items ${CCSVTYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_MANY_CCSVTYPES = gql`\n query allCCSVTypes($filter: CCSVTypeFilter) {\n data: allCCSVTypes(filter: $filter) {\n data: items ${CCSVTYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_ONE_CCSVTYPE = gql`\n query CCSVType( $id: String! ) {\n data: CCSVType( id: $id ) ${CCSVTYPE_TEMPLATE}\n }\n`\n\n\n\nconst SUTYPE_TEMPLATE = `{\n id\n name\n number\n nameOrg\n}`\n\nexport const GET_LIST_SUTYPE = gql`\n query allSUTypes($page: Int, $perPage: Int, $sort: [SUTypeSort!], $filter: SUTypeFilter) {\n data: allSUTypes(page: $page, perPage: $perPage, sort: $sort, filter: $filter) {\n data: items ${SUTYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_MANY_SUTYPES = gql`\n query allSUTypes($filter: SUTypeFilter) {\n data: allSUTypes(filter: $filter) {\n data: items ${SUTYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_ONE_SUTYPE = gql`\n query SUType( $id: String! ) {\n data: SUType( id: $id ) ${SUTYPE_TEMPLATE}\n }\n`\n\n\n\nconst GSITYPE_TEMPLATE = `{\n id\n name\n number\n type\n}`\n\nexport const GET_LIST_GSITYPE = gql`\n query allGSITypes($page: Int, $perPage: Int, $sort: [GSITypeSort!], $filter: GSITypeFilter) {\n data: allGSITypes(page: $page, perPage: $perPage, sort: $sort, filter: $filter) {\n data: items ${GSITYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_MANY_GSITYPES = gql`\n query allGSITypes($filter: GSITypeFilter) {\n data: allGSITypes(filter: $filter) {\n data: items ${GSITYPE_TEMPLATE}\n total: totalCount\n }\n }\n`\n\nexport const GET_ONE_GSITYPE = gql`\n query GSIType( $id: String! ) {\n data: GSIType( id: $id ) ${GSITYPE_TEMPLATE}\n }\n`","import dataProviderCore from './Core/graphqlProvider'\nimport dataProviderBlob from './Blob/graphqlProvider'\nimport dataProviderFias from './Fias/graphqlProvider'\nimport dataProviderFgis from './Fgis/graphqlProvider'\n\n\nconst dataProviders = [dataProviderCore, dataProviderBlob, dataProviderFias, dataProviderFgis];\n\nexport const dataProviderFactory = () => {\n return Promise.resolve((type, resource, params) => {\n\n const findDataProvider = dataProviders.find(dp => dp.knownResources.includes(resource));\n\n if (!findDataProvider) throw new Error('Provider is not loaded')\n return findDataProvider.dataProvider(type, resource, params);\n });\n};","import apolloFgisClient from './apolloFgisClient'\nimport { GET_LIST, GET_ONE, CREATE, UPDATE, DELETE, GET_MANY, GET_MANY_REFERENCE } from 'react-admin';\nimport { GET_LIST_SITYPE } from './typeDefs';\nimport { GET_LIST_CCSVTYPE } from './typeDefs';\nimport { GET_LIST_SUTYPE } from './typeDefs';\nimport { GET_LIST_GSITYPE } from './typeDefs';\n\n\nexport const knownResources = ['SIType', 'CCSVType', 'SUType', 'GSIType'];\nexport const dataProvider = (type, resource, params) => {\n\n if (resource === 'SIType') {\n switch (type) {\n case GET_LIST: {\n return apolloFgisClient.query({\n query: GET_LIST_SITYPE,\n variables: {\n page: params.pagination.page,\n perPage: params.pagination.perPage,\n // sort: $sort, \n filter: params.filter\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n case GET_MANY: {\n return apolloFgisClient.query({\n query: GET_LIST_SITYPE,\n variables: {\n filter: {\n id: params.ids[0]\n }\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n default:\n throw new Error(`Unsupported Data Provider request type ${type}`);\n };\n }\n\n if (resource === 'CCSVType') {\n switch (type) {\n case GET_LIST: {\n return apolloFgisClient.query({\n query: GET_LIST_CCSVTYPE,\n variables: {\n page: params.pagination.page,\n perPage: params.pagination.perPage,\n // sort: $sort, \n filter: params.filter\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n case GET_MANY: {\n return apolloFgisClient.query({\n query: GET_LIST_CCSVTYPE,\n variables: {\n filter: {\n id: params.ids[0]\n }\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n default:\n throw new Error(`Unsupported Data Provider request type ${type}`);\n };\n }\n\n if (resource === 'SUType') {\n switch (type) {\n case GET_LIST: {\n return apolloFgisClient.query({\n query: GET_LIST_SUTYPE,\n variables: {\n page: params.pagination.page,\n perPage: params.pagination.perPage,\n // sort: $sort, \n filter: params.filter\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n case GET_MANY: {\n return apolloFgisClient.query({\n query: GET_LIST_SUTYPE,\n variables: {\n filter: {\n id: params.ids[0]\n }\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n default:\n throw new Error(`Unsupported Data Provider request type ${type}`);\n };\n }\n\n if (resource === 'GSIType') {\n switch (type) {\n case GET_LIST: {\n return apolloFgisClient.query({\n query: GET_LIST_GSITYPE,\n variables: {\n page: params.pagination.page,\n perPage: params.pagination.perPage,\n // sort: $sort, \n filter: params.filter\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n case GET_MANY: {\n return apolloFgisClient.query({\n query: GET_LIST_GSITYPE,\n variables: {\n filter: {\n id: params.ids[0]\n }\n },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n }).then(({ data }) => {\n\n return data.data\n });\n break;\n }\n default:\n throw new Error(`Unsupported Data Provider request type ${type}`);\n };\n }\n\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","import russianMessages from 'ra-language-russian'\n\nexport default {\n ...russianMessages,\n raExt: {\n action: {\n create_and_continue: \"Coздать и продолжить\",\n create_and_process: \"Coздать и обработать\",\n save_and_continue: \"Сохранить и продолжить\",\n create_related_order: \"Coздатьзаявку\",\n findDuplicate: \"Найти дубликаты\",\n process: \"Обработать\",\n in_work: \"Вработу\",\n complete: \"Выполнить\",\n cancel: \"Отменить\",\n more: \"Дополнительно\",\n download_files: \"Скачать файлы\",\n archive: \"Вархив\",\n unarchive: \"Изархива\",\n ban: \"Заблокировать\",\n unban: \"Разблокировать\",\n favorite: \"Визбранное\",\n unfavorite: \"Изизбранного\",\n select_all: \"Выбрать все\",\n set_full_screen: \"Развернуть\",\n exit_full_screen: \"Свернуть\",\n clear: \"Очистить\",\n clear_all: \"Очистить все\",\n close: \"Закрыть\",\n get_more: \"Получить еще\",\n export_orders_to_xml: \"Экспортировать ФГИС \\\"АРШИН\\\" .xml\",\n },\n auth: {\n phoneOrEmail: 'Телефон или email',\n },\n page: {\n createOrderTitle: \"Coздать заявку\",\n },\n validation: {\n ruPhone: 'Неправильно введен номер. Доступен формат: 8 (XXX) XXX-XX-XX.',\n },\n notification: {\n duplicates_not_found: 'Дубликаты не найдены',\n duplicates_found: 'Найдена заявка с таким же адресом |||| Найдены заявки с таким же адресом',\n admin_created: 'Cоздан новый администратор',\n manager_created: 'Cоздан новый руководитель',\n employee_created: 'Cоздан новый сотрудник',\n customer_created: 'Cоздан новый заказчик',\n verifier_created: 'Cоздан новый поверитель',\n dispatcher_created: 'Cоздан новый диспетчер',\n failed_to_create_user: 'Не удалось создать пользователя',\n is_archive: \"В архиве\",\n archive_success: \"Элемент добавлен в архив\",\n archive_failure: \"Ошибка добавления в архив\",\n unarchive_success: \"Элемент восстановлен из архива\",\n unarchive_failure: \"Ошибка восстановления из архива\",\n orderOverdue: \"Заявка просрочена\",\n order_user_empty_data: \"Не назначен\",\n order_meter_empty_data: \"Не определен\",\n noData: \"Нет данных\",\n empty: \"Пусто\",\n empty_data: \"Данные отсутствуют\",\n noFiles: \"Нет файлов\",\n download_files_empty: 'В заявке отсутствуют файлы |||| В %{smart_count} заявках отсутствуют файлы',\n },\n },\n resources: {\n Order: {\n name: 'Заявка |||| Заявки',\n fields: {\n humanId: 'Номер',\n statusRef: 'Статус',\n meter: 'Модификация',\n [\"meter.id\"]: 'Модификация',\n [\"meter.type\"]: 'Тип прибора',\n [\"meter.name\"]: 'Модификация',\n meterLocation: \"Месторасположение\",\n meterUninstallAt: \"Дата снятия прибора\",\n resultRef: 'Результат',\n resultDesc: 'Комментарий к результату',\n comment: 'Комментарий',\n oneOfUser: 'Пользователь',\n createdAt: 'Создана',\n createdAt_gte: 'Создана с',\n createdAt_lte: 'Создана по',\n completedAt: 'Выполнена',\n completedAt_gte: 'Выполнена с',\n completedAt_lte: 'Выполнена по',\n completedDeadlineAt: 'Срок',\n completedDeadlineAt_gte: 'Срок с',\n completedDeadlineAt_lte: 'Срок по',\n updatedAt: 'Обновлена',\n mailIndex: 'Индекс',\n regionId: 'Регион',\n districtIdOrCityId: 'Район / Город',\n districtId: '• Район / Город',\n cityId: 'Населенный пункт',\n streetId: 'Улица',\n houseNum: 'Дом',\n houseCorp: 'Корпус',\n houseFlat: 'Квартира',\n addrManual: 'Адрес',\n invoice: 'Квитанция',\n personalAccount: 'Лицевой счет',\n isSealNotInstalled: 'Пломба не устанавливалась',\n customer: 'Заказчик',\n [\"customer.id\"]: 'Заказчик',\n [\"customer.name\"]: 'Заказчик',\n [\"customer.phone\"]: 'Телефон заказчика',\n customerType: 'Тип заказчика',\n verifier: 'Поверитель',\n [\"verifier.id\"]: 'Поверитель',\n [\"verifier.name\"]: 'Поверитель',\n [\"verifier.phone\"]: 'Телефон поверителя',\n dispatcher: 'Диспетчер',\n [\"dispatcher.id\"]: 'Диспетчер',\n [\"dispatcher.name\"]: 'Диспетчер',\n [\"dispatcher.phone\"]: 'Телефон диспетчера',\n creator: 'Создатель',\n [\"creator.id\"]: 'Создатель',\n created: 'Создал',\n nextCompletedDeadlineAt: 'Следующая поверка',\n files: 'Файлы',\n tab: 'Вкладка',\n\n manufactureYear: 'Год выпуска',\n manufactureNum: 'Заводской номер',\n\n siTypeId: 'Номер в госреестре',\n siTypeName: 'Наименование',\n siTypeNumber: 'Номер в госреестре',\n siTypeMPIYears: 'МПИ, Лет',\n siTypeMPIMonths: 'МПИ, Месяцев',\n siTypeManufacturerTotal: 'Изготовитель',\n\n ccsvTypeId: 'Условный шифр знака поверки',\n ccsvTypeCCSV: 'Условный шифр знака поверки',\n\n suTypeId: 'Номер эталона по реестру',\n suTypeNumber: 'Номер эталона',\n suTypeName: 'Наименование эталона',\n\n gsiTypeId: 'Номер документа',\n gsiTypeType: 'Вид документа, на основании которого выполнена поверка',\n gsiTypeNumber: 'Номер документа, на основании которого выполнена поверка',\n gsiTypeName: 'Наименование документа, на основании которого выполнена поверка',\n\n isSIOwnedByVerifier: 'Поверитель является владельцем СИ',\n signMi: 'Наличие знака поверки на СИ',\n signPass: 'Наличие знака поверки в паспорте',\n validAt: 'Действительна до',\n certificateNumber: 'Номер свидетельства',\n stickerNumber: 'Номер наклейки',\n\n },\n helper: {\n resultDesc: 'Этот комментарий будет виден заказчику',\n comment: 'Этот комментарий не виден заказчику',\n completedDeadlineAt: 'Если текущая дата или дата выполнения превысит срок, то заявка считается просроченной',\n nextCompletedDeadlineAt: 'Если поле заполнено, то заявка на следующую поверку будет создана автоматически',\n filesAttached: 'Файлы прикреплены',\n isDeadlineAt: 'Просрочена',\n addressMatches: 'Адрес заявки совпадает с адресом наблюдателя',\n changeResult: 'Необходимо выбрать результат',\n\n },\n tabs: {\n current: 'Текущие',\n cancelled: 'Отмененные',\n completed: 'Выполненные',\n archived: 'Архив',\n general: 'Основные',\n measuringInstrument: 'Средство измерения',\n history: 'История',\n result: 'Результат',\n files: 'Файлы',\n favorite: 'Избранные',\n },\n statuses: {\n new: 'Новая',\n processed: 'Обработана',\n inWork: 'В работе',\n completed: 'Выполнена',\n cancelled: 'Отменена',\n },\n results: {\n verified: 'Прошел поверку',\n notVerified: 'Не прошел поверку',\n swap: 'Замена счетчика',\n refused: 'Отказ от обслуживания',\n noneSeal: \"Отсутствует пломба\",\n other: \"Другой...\"\n },\n actions: {\n createOrderTitle: \"Coздать заявку\",\n create: \"Coздать\",\n create_and_add: \"Coздать и продолжить\",\n },\n enums: {\n meterLocation: {\n INDOORS: 'В помещении',\n OUTDOORS: 'На улице',\n UNKNOWN: 'Неизвестно'\n },\n },\n errors: {\n resultRef: 'Необходимо установить результат',\n resultRef_full: 'Результат указывается для Выполнить или Отменить',\n resultDesc: 'Необходимо добавить комментарий к результату',\n invoice: 'Необходимо включить \"Пломба не устанавливалась\", либо ввести номер квитанции',\n files: 'Необходимо прикрепить файлы',\n }\n },\n Customer: {\n name: 'Заказчик |||| Заказчики',\n fields: {\n id: 'ID',\n name: 'ФИО',\n type: \"Тип заказчика\",\n organizationName: \"Организация\",\n organizationInn: \"ИНН\",\n payment: \"Тип платежа\",\n },\n types: {\n PHIS: 'Физическое лицо',\n JURE: 'Юридическое лицо',\n },\n payments: {\n CASH: 'Наличный',\n CASHLESS: 'Безналичный',\n },\n },\n Verifier: {\n name: 'Поверитель |||| Поверители',\n fields: {\n id: 'ИД',\n regionId: 'Регион',\n districtIdOrCityIds: 'Район / Город',\n\n },\n },\n Location: {\n name: 'Адрес |||| Адреса',\n fields: {\n id: 'ID',\n typeShort: 'Тип',\n name: 'Наименование',\n },\n },\n Counterparty: {\n name: 'Контрагент |||| Контрагенты',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n type: 'Тип',\n inn: 'ИНН',\n kpp: 'КПП',\n okpo: 'ОКПО',\n ogrn: 'ОГРН',\n fio: 'ФИО',\n passport: 'Паспорт',\n passdateissue: 'Дата выдачи',\n parentId: 'Родитель',\n addressLegal: 'Юридический адрес',\n addressActual: 'Фактический адрес',\n addressPostal: 'Почтовый адрес',\n phone: 'Телефон',\n phoneMobile: 'Мобильный',\n email: 'Email',\n users: 'Пользователи',\n accessResource: 'Ресурс',\n access: 'Доступ',\n filterGasRegion: 'Фильтр по Регионам',\n filterGasDistrict: 'Фильтр по Участкам',\n filterGasConsumer: 'Фильтр по Потребителям',\n filterGasMeterPad: 'Фильтр по Площадкам',\n accessGasRegion: 'Доступ по Регионам',\n accessGasDistrict: 'Доступ по Участкам',\n accessGasConsumer: 'Доступ по Потребителям',\n accessGasMeterPad: 'Доступ по Площадкам',\n q: 'Поиск',\n },\n enums: {\n type: {\n LEGALENTITY: 'Юридическое лицо',\n INDIVIDUAL: 'Физическое лицо',\n SEPARATEDIVISION: 'Обособленное подразделение',\n GOVERNMENTAGENCY: 'Гос.орган',\n },\n },\n },\n User: {\n name: 'Пользователь |||| Пользователи',\n fields: {\n id: 'ID',\n name: 'ФИО',\n role: 'Роль',\n email: 'Email',\n password: 'Пароль',\n phone: 'Телефон',\n createdAt: 'Создан',\n updatedAt: 'Обновлен',\n regionIds: 'Регион',\n regionId: 'Регион',\n districtIdOrCityIds: 'Район / Город',\n notificationTags: 'Теги',\n customer: {\n type: \"Тип заказчика\",\n organizationName: \"Организация\",\n organizationInn: \"ИНН\",\n payment: \"Тип платежа\",\n },\n counterparty: \"Контрагент\",\n },\n roles: {\n SUPERADMIN: 'Суперадмин',\n ADMIN: 'Администратор',\n SENIORDISPATCHER: 'Старший диспетчер',\n DISPATCHER: 'Диспетчер',\n CUSTOMER: 'Заказчик',\n SENIORVERIFIER: 'Старший поверитель',\n VERIFIER: 'Поверитель',\n MANAGER: 'Руководитель',\n INSPECTOR: 'Инспектор',\n SUPERVISOR: 'Наблюдатель',\n DEMO: 'Демо'\n },\n authStatuses: {\n ACTIVE: 'Активен',\n BANNED: 'Заблокирован',\n NONE: 'Не зарегистрирован',\n },\n tabs: {\n all: 'Все',\n customers: 'Заказчики',\n employees: 'Сотрудники',\n admins: 'Администраторы',\n archived: 'Архив',\n general: 'Основные',\n accessLocation: 'Доступ',\n more: 'Дополнительные',\n orders: 'Заявки',\n history: 'История',\n notifications: 'Уведомления',\n },\n dialogTitle: {\n create: {\n CUSTOMER: 'Создание нового заказчика',\n DISPATCHER: 'Создание нового диспечера',\n VERIFIER: 'Создание нового поверителя',\n MANAGER: 'Создание нового руководителя',\n EMPLOYEE: 'Создание нового сотрудника'\n }\n },\n online: 'Сейчас в сети',\n offline: 'Был в сети %{timeAgo}',\n },\n Profile: {\n name: 'Профиль',\n fields: {\n id: 'ID',\n name: 'ФИО',\n role: 'Роль',\n email: 'Email',\n password: 'Пароль',\n phone: 'Телефон',\n createdAt: 'Создан',\n updatedAt: 'Обновлен',\n lastUpdatedAt: 'Был в сети',\n regionIds: 'Регион',\n regionId: 'Регион',\n districtIdOrCityIds: 'Район / Город',\n notificationTags: 'Теги',\n customer: {\n type: \"Тип заказчика\",\n organizationName: \"Организация\",\n organizationInn: \"ИНН\",\n payment: \"Тип платежа\",\n }\n },\n },\n Meter: {\n name: 'Прибор |||| Приборы',\n fields: {\n id: 'ID',\n type: 'Тип прибора',\n name: 'Прибор',\n description: 'Описание',\n documentation: 'Документация',\n verifyInterval: 'Поверочный интервал',\n },\n enums: {\n type: {\n GAS: 'Счетчик газовый',\n },\n },\n empty: 'Не определен',\n },\n OrderHistory: {\n name: 'История',\n fields: {\n id: 'ID',\n action: 'Действие',\n order: 'Заявка',\n orderHumanId: 'Номер заявки*',\n [\"order.humanId\"]: 'Номер заявки',\n user: 'Пользователь',\n userName: 'Пользователь*',\n [\"user.name\"]: 'Пользователь',\n changes: 'Изменения',\n createdAt: 'Дата',\n updated: 'Дата'\n },\n actions: {\n CREATED: 'Создана',\n UPDATED: 'Обновлена',\n DELETED: 'Удалена',\n PROCESSED: 'Обработана',\n INWORK: 'В работе',\n COMPLETED: 'Выполнена',\n CANCELLED: 'Отменена',\n SYNCHRONIZED: 'Синхронизирована',\n SYNCHRONIZEDERROR: 'Не синхронизирована',\n ARCHIVED: \"В архивe\",\n UNARCHIVED: \"Из архива\",\n },\n helper: {\n CREATED: 'Заявка создана.',\n CREATED_FIELD: 'Заполнены поля:',\n UPDATED: 'Заявка обновлена.',\n UPDATED_FIELD: 'Обновлены поля:',\n DELETED: 'Заявка удалена.',\n PROCESSED: 'Заявка обработана.',\n INWORK: 'Заявка в работе.',\n COMPLETED: 'Заявка выполнена.',\n CANCELLED: 'Заявка отменена.',\n ARCHIVED: \"Заявка перемещена в архив.\",\n UNARCHIVED: \"Заявка восстановлена из архива.\",\n SYNCHRONIZED: 'Заявка синхронизирована',\n SYNCHRONIZEDERROR: 'Ошибка при синхронизации',\n },\n },\n File: {\n name: 'Файл |||| Файлы',\n fields: {\n id: 'ID',\n desc: 'Описание',\n ext: 'Формат',\n size: 'Размер',\n created: 'Создан',\n createdAt: 'Добавлен',\n createdBy: 'Добавил',\n createdByAuth: 'Добавил',\n catalog: 'Каталог',\n idBlob: 'idBlob',\n url: 'url',\n urlThumbnail: 'urlThumbnail',\n },\n navigation: {\n files_not_found: 'Файлы не найдены',\n add_several_files: 'Добавьте несколько файлов к заявке',\n },\n },\n Statistic: {\n name: 'Статистика',\n fields: {\n id: \"ID\",\n typeShort: \"Тип\",\n name: \"Район / Город\",\n unrestrictedName: \"Полное наименование\",\n deadlined: \"Просроченные\",\n incompleted: \"Незавершенные\",\n completed: 'Выполнено',\n verified: \"Прошел поверку\",\n notVerified: \"Не прошел поверку\",\n noneSeal: \"Отсутствует пломба\",\n swap: \"Замена\",\n refused: \"Отказ от обслуживания\",\n createdAt: 'Создана',\n createdAt_gte: 'Создана с',\n createdAt_lte: 'Создана по',\n completedAt: 'Выполнена',\n completedAt_gte: 'Выполнена с',\n completedAt_lte: 'Выполнена по',\n completedDeadlineAt: 'Срок',\n completedDeadlineAt_gte: 'Срок с',\n completedDeadlineAt_lte: 'Срок по',\n oneOfUser: 'Пользователь',\n customerType: 'Тип заказчика',\n verifier: 'Поверитель',\n dispatcher: 'Диспетчер',\n regionId: 'Регион',\n totalDistrictOrCity: 'Всего',\n total: 'Итого'\n },\n statuses: {\n created: 'Создано',\n deadlined: 'Просрочено',\n incompleted: 'Не завершено',\n completed: 'Завершено',\n cancelled: 'Отменено',\n }\n },\n AboutApp: {\n name: 'О приложении',\n modules: {\n Core: {\n name: 'Ядро',\n },\n Auth: {\n name: 'Аутентификация',\n },\n Blob: {\n name: 'Хранилище',\n },\n Casl: {\n name: 'Идентификация',\n },\n Fias: {\n name: 'Федеральная информационная адресная система (ФИАС)',\n },\n\n },\n errrors: {\n not_available: 'Сервис недоступен',\n }\n },\n Notification: {\n name: 'Уведомление |||| Уведомления',\n tags: {\n NEWORDER: 'Новая заявка',\n EXPIRED: 'Заявка просрочена',\n },\n no_notifications: 'Уведомлений нет',\n you_have_unconfirmed_notifications: 'Есть неподтвержденные уведомления',\n show_notifications: 'Просмотреть уведомления',\n },\n },\n Error: {\n [\"User is banned\"]: 'Пользователь заблокирован. Обратитесь к администратору.',\n ['User with such login does not exist.']: 'Пользователь с таким логином не существует.',\n ['User with such login and password does not exist.']: 'Пользователь с таким логином и паролем не существует.',\n ['Аuthorization error!']: 'Ошибка авторизации!',\n },\n}","import russianhMessages from './ru'\nimport englishMessages from 'ra-language-english';\n\nconst messages = {\n ru: russianhMessages,\n en: englishMessages,\n};\n\n\nconst i18nProvider = locale => messages[locale];\n\nexport default i18nProvider;","import { UPDATE } from 'react-admin';\n\nexport const ARCHIVE = 'ARCHIVE';\nexport const ARCHIVE_LOADING = 'ARCHIVE_LOADING';\nexport const ARCHIVE_FAILURE = 'ARCHIVE_FAILURE';\nexport const ARCHIVE_SUCCESS = 'ARCHIVE_SUCCESS';\n\nexport const archive = (resource, id, data, basePath, redirectTo = 'show') => {\n\n return {\n type: ARCHIVE,\n payload: { id, data: { id: data.id, isArchive: true, authStatus: \"BANNED\" }, previousData: data },\n meta: {\n resource,\n fetch: UPDATE,\n onSuccess: {\n notification: {\n body: 'raExt.notification.archive_success',\n level: 'info',\n },\n redirectTo,\n basePath,\n },\n onFailure: {\n notification: {\n body: 'raExt.notification.archive_failure',\n level: 'warning',\n },\n },\n },\n }\n};\n\nexport const UNARCHIVE = 'UNARCHIVE';\nexport const UNARCHIVE_LOADING = 'UNARCHIVE_LOADING';\nexport const UNARCHIVE_FAILURE = 'UNARCHIVE_FAILURE';\nexport const UNARCHIVE_SUCCESS = 'UNARCHIVE_SUCCESS';\n\nexport const unarchive = (resource, id, data, basePath, redirectTo = 'show') => ({\n type: UNARCHIVE,\n payload: { id, data: { id: data.id, isArchive: false }, previousData: data },\n meta: {\n resource,\n fetch: UPDATE,\n onSuccess: {\n notification: {\n body: 'raExt.notification.unarchive_success',\n level: 'info',\n },\n redirectTo,\n basePath,\n },\n onFailure: {\n notification: {\n body: 'raExt.notification.unarchive_failure',\n level: 'warning',\n },\n },\n },\n});","import { all, put, takeEvery } from 'redux-saga/effects';\nimport { showNotification } from 'react-admin';\nimport { ARCHIVE_FAILURE, UNARCHIVE_FAILURE } from './ArchiveAction';\n\nexport default function* archiveSaga() {\n yield all([\n takeEvery(ARCHIVE_FAILURE, function*({ error }) {\n yield put(\n showNotification(\n 'raExt.notification.archive_failure',\n 'warning'\n )\n );\n console.error(error);\n }),\n takeEvery(UNARCHIVE_FAILURE, function*({ error }) {\n yield put(\n showNotification(\n 'raExt.notification.unarchive_failure',\n 'warning'\n )\n );\n console.error(error);\n }),\n ]);\n}","import archiveSaga from './components/Actions/ArchiveSaga';\n\nexport default [archiveSaga];","import { SET_USER } from './actions';\n\nexport default (previousState=null, { type, payload }) => {\n if (type === SET_USER) {\n return payload.user;\n }\n return previousState;\n}","export const SET_USER = 'SET_USER';\n\nexport const setUser = (user) => ({\n type: SET_USER,\n payload: { user },\n});","import { ONLINE_USERS } from './actions';\n\nexport default (previousState=[], { type, payload }) => {\n if (type === ONLINE_USERS) {\n return payload.onlineUsers;\n }\n return previousState;\n}","export const ONLINE_USERS = 'ONLINE_USERS';\n\nexport const setOnlineUsers = (onlineUsers) => ({\n type: ONLINE_USERS,\n payload: { onlineUsers },\n});","export const INITIAL_NOTIFICATIONS = 'INITIAL_NOTIFICATIONS';\nexport const ENQUEUE_NOTIFICATION = 'ENQUEUE_NOTIFICATION';\nexport const DISPLAYED_NOTIFICATION = 'DISPLAYED_NOTIFICATION';\nexport const CLOSE_NOTIFICATION = 'CLOSE_NOTIFICATIONS';\nexport const REMOVE_NOTIFICATION = 'REMOVE_NOTIFICATION';\n\nexport const initialNotifications = ({items, total}) => {\n return {\n type: INITIAL_NOTIFICATIONS,\n payload: {items, total},\n };\n};\n\n\nexport const enqueueNotification = notification => {\n return {\n type: ENQUEUE_NOTIFICATION,\n payload: { \n notification, \n },\n };\n};\n\nexport const displayedNotification = id => ({\n type: DISPLAYED_NOTIFICATION,\n payload: { \n id,\n },\n});\n\nexport const closeNotification = id => ({\n type: CLOSE_NOTIFICATION,\n payload: { \n dismissAll: !id, // dismiss all if no key has been defined\n id,\n },\n});\n\nexport const removeNotification = id => ({\n type: REMOVE_NOTIFICATION,\n payload: {\n removeAll: !id,\n id,\n },\n});\n","import { INITIAL_NOTIFICATIONS, ENQUEUE_NOTIFICATION, DISPLAYED_NOTIFICATION, CLOSE_NOTIFICATION, REMOVE_NOTIFICATION } from './actions';\n\nconst DISPLAYED_NOTIFICATIONS = \"displayed-notifications\"\n\nconst getItem = () => {\n const item = localStorage.getItem(DISPLAYED_NOTIFICATIONS)\n return (item) ? item.split(',') : []\n};\n\nconst setItem = (store) => {\n localStorage.setItem(DISPLAYED_NOTIFICATIONS, store)\n};\n\nexport default (previousState = {items: [], total: {count: 0}}, { type, payload }) => {\n const displayedNotifications = getItem();\n switch (type) {\n case INITIAL_NOTIFICATIONS:\n const {items = [], total = {count: 0}} = payload;\n const newItems = items.map(notification => (\n (displayedNotifications.includes(notification.id)) ? { ...notification, displayed: true, dismissed: true } : notification\n ));\n\n return {\n items: [...previousState.items, ...newItems],\n total \n }\n\n case ENQUEUE_NOTIFICATION:\n return {\n items: [(displayedNotifications.includes(payload.notification.id)) ? { ...payload.notification, displayed: true } : payload.notification, ...previousState.items],\n total: {count: ++previousState.total.count},\n }\n\n case DISPLAYED_NOTIFICATION:\n setItem([...displayedNotifications, payload.id])\n return {\n items: previousState.items.map(notification => (\n (notification.id === payload.id) ? { ...notification, displayed: true } : notification\n )),\n total: previousState.total,\n }\n \n case CLOSE_NOTIFICATION:\n return {\n items: previousState.items.map(notification => (\n (payload.dismissAll || notification.id === payload.id) ? { ...notification, dismissed: true } : notification\n )),\n total: previousState.total,\n } ;\n\n case REMOVE_NOTIFICATION:\n const removeArray = (payload.removeAll) ? [] : previousState.items.filter(notification => {\n return notification.id !== payload.id\n });\n setItem(displayedNotifications.filter(notificationId => notificationId.id !== payload.id));\n return {\n items: removeArray,\n total: {count: --previousState.total.count},\n };\n\n default:\n return previousState;\n }\n};","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Chip from '@material-ui/core/Chip';\nimport RegionIcon from '@material-ui/icons/Layers';\nimport DistrictIcon from '@material-ui/icons/Texture';\nimport CityIcon from '@material-ui/icons/LocationCity';\nimport TownIcon from '@material-ui/icons/Home';\nimport StreetIcon from '@material-ui/icons/Place';\nimport LocationIcon from '@material-ui/icons/Directions';\nimport match from 'autosuggest-highlight/match';\nimport parse from 'autosuggest-highlight/parse';\n\n\nconst getLocationIcon = level => {\n switch( level ){\n case 1:\n case 2:\n return ()\n break;\n case 3:\n return ()\n break;\n case 4:\n return ()\n break;\n case 5:\n case 6:\n return ()\n break;\n case 7:\n return ()\n break;\n default:\n return ()\n break;\n }\n}\n\nconst styles = theme => ({\n highlight: {\n fontWeight: 600,\n color: \"000\"\n },\n root: {\n height: \"unset\",\n flexDirection: \"column\",\n alignItems: \"start\",\n },\n flex: {\n display: \"flex\",\n },\n locationIcon: {\n marginRight: \"0.25rem\",\n color: theme.palette.grey[\"500\"]\n },\n chip: { \n margin: 4\n },\n avatar:{\n color: theme.palette.grey[\"500\"],\n marginLeft:\"4px\",\n height: 24,\n width: 24,\n \n },\n checkBoxContainer: {\n display: \"flex\",\n alignItems: \"flex-end\",\n },\n ml2: {\n marginLeft: \"0.5rem\",\n },\n});\n\nconst getParentsDescription = (parents=null) => { \n if (!parents) return false;\n\n var description = parents.reduceRight(function(previousValue, currentValue, index, array) {\n return previousValue + `${(index === array.lenght - 1) ? `${currentValue.name} ${currentValue.typeShort}.` : `${currentValue.typeShort}. ${currentValue.name}`}${(index === 0) ? \"\" : \", \"}`;\n },\"\");\n \n return description;\n};\n\nexport const AddressSuggestionComponent = withStyles(styles)(({ suggestion, query, isHighlighted, classes, ...props }) => {\n const suggestionText = `${suggestion.name}`;\n const matches = match(suggestionText.toLocaleLowerCase(), query.toLocaleLowerCase());\n const parts = parse(suggestionText, matches);\n const {className, ...rest} = props;\n \n return suggestion.level > -1 ? ( \n
\n
\n {React.cloneElement(getLocationIcon(suggestion.level), { className:`${classes.locationIcon}`} )}\n \n {`${suggestion.typeShort}. `}\n {parts.map((part, index) => {\n const className = part.highlight ? classes.highlight : null;\n\n return ({part.text});\n })}\n \n
\n {getParentsDescription(suggestion.parents)}\n
\n ) :
;\n});\n\nconst AddressCheckComponentView = withStyles(styles)(({choice, className, classes, ...props}) => {\n\n return (\n \n {React.cloneElement(getLocationIcon(choice.level), { className:`${classes.locationIcon}`} )}\n \n {`${choice.typeShort}. ${choice.name}`}\n {getParentsDescription(choice.parents)}\n \n )\n});\n\nexport const AddressCheckComponent = (choice) => ","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { union } from 'lodash/array';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { withStyles } from '@material-ui/core/styles';\nimport withWidth from '@material-ui/core/withWidth';\nimport compose from 'recompose/compose';\nimport { addField, translate, FieldTitle } from 'ra-core';\n\nconst sanitizeRestProps = ({\n setFilter,\n setPagination,\n setSort,\n alwaysOn,\n basePath,\n component,\n defaultValue,\n formClassName,\n initializeForm,\n input,\n isRequired,\n label,\n limitChoicesToValue,\n locale,\n meta,\n options,\n optionText,\n optionValue,\n record,\n resource,\n allowEmpty,\n source,\n textAlign,\n translate,\n translateChoice,\n ...rest\n}) => rest;\n\n\nconst styles = theme => ({\n root: { \n // display: \"block\",\n // flexWrap: \"unset\",\n // flexDirection: \"unset\",\n },\n label: {\n transform: 'translate(0, 1.5px) scale(0.75)',\n transformOrigin: `top ${theme.direction === 'ltr' ? 'left' : 'right'}`,\n }, \n controlLabel: {\n display: \"flex\",\n },\n checkbox: {\n height: 32,\n },\n});\n\n\nconst getColsForWidth = width => {\n if (width === 'xs') return 1;\n if (width === 'sm') return 1;\n if (width === 'md') return 2;\n if (width === 'lg') return 3;\n if (width === 'xl') return 4;\n return 1;\n};\n\nexport class CheckboxGroupInput extends Component {\n handleCheckAll = (event, isChecked) => {\n const {\n choices,\n optionValue,\n optionDisabled,\n input: { value, onChange },\n } = this.props;\n \n if (isChecked) {\n onChange( union( (value || []), choices.map(choice => get(choice, optionValue)) ) );\n } else {\n typeof optionDisabled === 'function' ? onChange( union( [], choices.filter(choice => optionDisabled(choice, value)).map(choice => get(choice, optionValue)) ) ) : onChange([]);\n }\n };\n\n handleCheck = (event, isChecked) => {\n const {\n input: { value, onChange },\n } = this.props;\n let newValue;\n try {\n // try to convert string value to number, e.g. '123'\n newValue = JSON.parse(event.target.value);\n } catch (e) {\n // impossible to convert value, e.g. 'abc'\n newValue = event.target.value;\n }\n if (isChecked) {\n onChange([...(value || []), ...[newValue]]);\n } else {\n onChange(value.filter(v => v !== newValue));\n }\n };\n\n renderCheckAll = () => {\n const {\n source,\n choices,\n input: { value },\n options,\n translate,\n classes,\n } = this.props;\n\n return (\n \n }\n label={translate(\"raExt.action.select_all\", { _: \"Select_all\" })}\n />\n );\n };\n\n renderCheckbox = choice => {\n const {\n id,\n optionDisabled,\n optionIndeterminate,\n input: { value, onChange },\n optionText,\n optionValue,\n options,\n translate,\n translateChoice,\n classes,\n } = this.props;\n const choiceName = React.isValidElement(optionText) // eslint-disable-line no-nested-ternary\n ? React.cloneElement(optionText, { record: choice })\n : typeof optionText === 'function'\n ? optionText(choice)\n : get(choice, optionText);\n\n const isIndeterminate = typeof optionIndeterminate === 'function' ? optionIndeterminate(choice, value) : false\n const isDisabled = typeof optionDisabled === 'function' ? optionDisabled(choice, value) : false\n\n return (\n v === get(choice, optionValue)) !==\n undefined\n : false\n }\n onChange={this.handleCheck}\n value={String(get(choice, optionValue))}\n control={\n \n }\n label={\n translateChoice\n ? translate(choiceName, { _: choiceName })\n : choiceName\n }\n />\n );\n };\n\n render() {\n const {\n choices,\n className,\n width,\n classes = {},\n isRequired,\n label,\n meta,\n resource,\n source,\n input,\n optionDisabled,\n optionIndeterminate,\n ...rest\n } = this.props;\n\n if (typeof meta === 'undefined') {\n throw new Error(\n \"The CheckboxGroupInput component wasn't called within a redux-form . Did you decorate it and forget to add the addField prop to your component? See https://marmelab.com/react-admin/Inputs.html#writing-your-own-input-component for details.\"\n );\n }\n\n const { touched, error, helperText = false } = meta;\n\n\n\n\n\n return (\n \n \n \n \n \n {(!!choices && choices.length > 1) && this.renderCheckAll()}\n {choices.map(this.renderCheckbox)}\n \n {touched && error && (\n {error}\n )}\n {helperText && {helperText}}\n \n );\n }\n}\n\nCheckboxGroupInput.propTypes = {\n choices: PropTypes.arrayOf(PropTypes.object),\n classes: PropTypes.object,\n className: PropTypes.string,\n label: PropTypes.string,\n source: PropTypes.string,\n options: PropTypes.object,\n id: PropTypes.string,\n input: PropTypes.shape({\n onChange: PropTypes.func.isRequired,\n }),\n optionDisabled: PropTypes.func,\n optionIndeterminate: PropTypes.func,\n isRequired: PropTypes.bool,\n optionText: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]).isRequired,\n optionValue: PropTypes.string.isRequired,\n resource: PropTypes.string,\n translate: PropTypes.func.isRequired,\n translateChoice: PropTypes.bool.isRequired,\n meta: PropTypes.object,\n};\n\nCheckboxGroupInput.defaultProps = {\n choices: [],\n classes: {},\n options: {},\n optionText: 'name',\n optionValue: 'id',\n translateChoice: true,\n};\n\nconst EnhancedCheckboxGroupInput = compose(\n addField,\n translate,\n withWidth(),\n withStyles(styles)\n)(CheckboxGroupInput);\n\nEnhancedCheckboxGroupInput.defaultProps = {\n fullWidth: true,\n};\n\nexport default EnhancedCheckboxGroupInput;\n","import React from 'react';\nimport {translate} from 'react-admin';\n\nconst TypeField = ({ record = {}, translate, ...props }) => ( \n \n{translate(`resources.Customer.types.${record.type}`)}\n\n);\n\nTypeField.defaultProps = { \n source: 'type',\n addLabel: true\n};\n\nexport default translate(TypeField);\n\n\n\n\n","import React from 'react';\nimport {translate} from 'react-admin';\n\nconst PaymentField = ({ record = {}, translate, ...props }) => {\n return record.payment ? ( {translate(`resources.Customer.payments.${record.payment}`)} ) : null;\n}\n\nPaymentField.defaultProps = {\n addLabel: true\n};\n\nexport default translate(PaymentField);\n\n\n\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconCancel from '@material-ui/icons/Cancel';\nimport { TextInput, required, regex } from \"react-admin\";\nimport { withStyles } from '@material-ui/core/styles';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\n\nconst phoneValidation = (value=\"\", allValues, { translate }) => {\n return (\n parsePhoneNumberFromString(value, 'RU')) \n ? (parsePhoneNumberFromString(value, 'RU').isValid()) \n ? undefined \n : translate('raExt.validation.ruPhone')\n : translate('raExt.validation.ruPhone');\n \n}\n\nconst validatePhone = [required(), phoneValidation];\n\n\nconst phoneFormatter = (value=\"\") => {\n const phoneNumber = parsePhoneNumberFromString(value, 'RU')\n if (phoneNumber) {\n return phoneNumber.formatNational()\n }\n\n return value\n \n};\n \nconst phoneParser = (input=\"\") => {\n const phoneNumber = parsePhoneNumberFromString(input, 'RU')\n if (phoneNumber) {\n return phoneNumber.number;\n }\n\n return input\n};\n\n\nconst PhoneInput = ( props ) => (\n \n);\n// format={phoneFormatter} parse={phoneParser} validate={validatePhone} \n\n\nPhoneInput.propTypes = {\n source: PropTypes.string.isRequired,\n};\n\nPhoneInput.defaultProps = {\n source: \"phone\",\n};\n\nexport default PhoneInput;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport ArchiveIcon from '@material-ui/icons/Archive';\n\nconst styles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n});\n\n\n\n\nconst ArchiveChip = ({ className, classes, status, translate, record, }) => {\n if (!record || !record.isArchive) return null;\n \n return (\n } label={translate(`raExt.notification.is_archive`)} classes={{avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className}`} />\n );\n}\n\n\nexport default compose( withStyles(styles), translate, )(ArchiveChip);","export default ({\n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n formClassName,\n headerClassName,\n label,\n linkType,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n source,\n textAlign,\n translateChoice,\n ...rest\n}) => rest;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport pure from 'recompose/pure';\nimport Typography from '@material-ui/core/Typography';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\n\nimport sanitizeRestProps from './sanitizeRestProps';\n\nconst PhoneField = ({ className, source, record = {}, ...rest }) => {\n\n const value = get(record, source) || \"\";\n let phoneNumber = parsePhoneNumberFromString(value, 'RU')\n if (phoneNumber) {\n phoneNumber = phoneNumber.formatNational()\n }\n\n return (\n \n {phoneNumber || value}\n \n );\n};\n\nPhoneField.propTypes = {\n addLabel: PropTypes.bool,\n basePath: PropTypes.string,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n sortBy: PropTypes.string,\n source: PropTypes.string.isRequired,\n};\n\n// wat? TypeScript looses the displayName if we don't set it explicitly\nPhoneField.displayName = 'PhoneField';\nconst PurePhoneField = pure(PhoneField);\n\nPurePhoneField.defaultProps = {\n addLabel: true,\n};\n\nexport default PurePhoneField;\n","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport AdminIcon from '@material-ui/icons/Android';\nimport DispatcherIcon from '@material-ui/icons/HeadsetMic';\nimport VerifierIcon from '@material-ui/icons/Build';\nimport CustomerIcon from '@material-ui/icons/AccountCircle';\n\nconst styles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n});\n\nconst getRoleIcon = role => {\n switch (role) {\n case \"SUPERADMIN\":\n case \"ADMIN\":\n case \"MANAGER\":{\n return \n }\n break;\n\n case \"DISPATCHER\":{\n return \n }\n break;\n\n case \"VERIFIER\":{\n return \n }\n break;\n\n case \"EMPLOYEE\":{\n return \n }\n break;\n\n case \"CUSTOMER\":{\n return \n }\n break;\n\n default:{\n return \n }\n break;\n\n }\n}\n\nconst RoleChip = ({ className, classes, translate, record, }) => {\n if (!record) return null;\n \n return (\n {getRoleIcon(record.role)}} label={translate(`resources.User.roles.${record.role}`)} classes={{avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className}`} />\n );\n}\n\n\nexport default compose( withStyles(styles), translate, )(RoleChip);\n\n\n","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport amber from '@material-ui/core/colors/amber';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport { translate } from 'react-admin';\nimport ActiveIcon from '@material-ui/icons/CheckCircle';\nimport BannedIcon from '@material-ui/icons/Report';\nimport NoneIcon from '@material-ui/icons/Help';\n\nconst styles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n ACTIVE: {\n backgroundColor: green['500'],\n color: theme.palette.getContrastText(green['500']),\n },\n BANNED: { \n backgroundColor: red['500'],\n color: theme.palette.getContrastText(red['500']),\n },\n NONE: { \n backgroundColor: amber['500'],\n color: theme.palette.getContrastText(amber['500']),\n },\n});\n\nconst getAuthIcon = auth => {\n switch (auth) {\n case \"ACTIVE\":{\n return \n }\n break;\n\n case \"BANNED\":{\n return \n }\n break;\n\n case \"NONE\":{\n return \n }\n break;\n\n default:{\n return \n }\n break;\n\n }\n}\n\nconst AuthChip = ({ className, classes, translate, record, }) => {\n if (!record || !record.authStatus) return null;\n \n return (\n {getAuthIcon(record.authStatus)}} label={translate(`resources.User.authStatuses.${record.authStatus}`)} classes={{avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className} ${classes[record.authStatus]}`} />\n );\n}\n\n\nexport default compose( withStyles(styles), translate, )(AuthChip);\n\n\n","import React from 'react';\nimport compose from 'recompose/compose';\nimport moment from 'moment'\nimport { withStyles } from '@material-ui/core/styles';\nimport CardContent from '@material-ui/core/CardContent';\nimport PhoneIcon from '@material-ui/icons/Call';\nimport EmailIcon from '@material-ui/icons/Mail';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport { translate } from 'react-admin';\nimport Avatar from '@material-ui/core/Avatar';\nimport { ability } from '../../ability'\n\nimport ArchiveChip from '../Fields/ArchiveChip';\nimport PhoneField from '../Fields/PhoneField';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport { white } from 'ansi-colors';\n\nimport RoleChip from '../Fields/RoleChip';\nimport AuthChip from '../Fields/AuthChip';\n\n\nconst styles = theme => ({\n avatar: {\n width: 128,\n height: 128,\n backgroundColor:theme.palette.grey[\"400\"],\n },\n headline:{\n display: \"flex\",\n },\n subheading:{\n display: \"flex\",\n color:theme.palette.text.secondary\n },\n flex: {\n display: \"flex\",\n },\n flexColumn: {\n flexDirection: \"column\"\n },\n justifyEnd: {\n justifyContent: \"flex-end\"\n },\n mlAuto: {\n marginLeft: \"auto\",\n },\n ml1:{\n marginLeft: \"0.25rem\"\n },\n ml2:{\n marginLeft: \"0.5rem\"\n },\n ml3:{\n marginLeft: \"1rem\"\n },\n iconHeadline:{\n fontSize:\"inherit\",\n marginRight:\"0.5rem\",\n height: \"1.35417em\"\n },\n iconSubheading:{\n fontSize:\"inherit\",\n marginRight:\"0.5rem\",\n height: \"1.5em\"\n },\n chipSuccess:{\n color: white,\n backgroundColor: green[\"400\"],\n },\n chipError:{\n backgroundColor: red[\"400\"],\n },\n iconChip:{\n marginLeft:\"4px\",\n height: 24,\n width: 24,\n \n },\n});\n\n\n\nconst FastView = ({ className, classes, locales, options={}, translate, record, ...props }) =>{\n\n if (!record) return null;\n \n const createdAt = moment(record.createdAt).format('L');\n const updatedAt = moment(record.updatedAt).format('L');\n\n return(\n \n \n \n NN\n
\n {record.name}\n \n \n {(ability.can('read', \"User\", \"email\") && record.email) && {record.email}}\n
\n
\n \n \n {ability.can('read', \"User\", \"authStatus\") && }\n \n \n \n
\n
\n {ability.can('read', \"User\", \"createdAt\") && {`${translate('resources.User.fields.createdAt')}: ${createdAt}`} }\n {ability.can('read', \"User\", \"updatedAt\") && {`${translate('resources.User.fields.updatedAt')}: ${updatedAt}`} }\n
\n\n \n
\n )\n};\n\n\nexport default compose( withStyles(styles), translate, )(FastView);\n\n","import React, { Fragment } from 'react';\nimport compose from 'recompose/compose';\nimport { ReferenceInput, AutocompleteInput, translate } from 'react-admin';\n\nimport { ability } from '../../ability';\n\nimport CheckBoxGroupInputWithCheckAll from '../Inputs/CheckBoxGroupInputWithCheckAll';\n\n\n// const abilityq = ability\n// let tags = [];\n// const rulesWithConditions = ability.rulesFor(\"read\", \"Notification\").filter(rule => rule.conditions && rule.conditions.tag_in)\n\n// rulesWithConditions.forEach(( rule ) => {\n// tags = [...tags, ...rule.conditions.tag_in]\n// });\n\nconst NotificationTagsInput = ({ translate, ...props}) => {\n\n let tags = [];\n const rulesWithConditions = ability.rulesFor(\"read\", \"Notification\").filter(rule => rule.conditions && rule.conditions.tag_in)\n \n rulesWithConditions.forEach(( rule ) => {\n tags = [...tags, ...rule.conditions.tag_in]\n });\n\n\n const choices = tags.map(tag => ({id: tag, name: translate(`resources.Notification.tags.${tag}`, { _: tag })}))\n\n\n const optionIndeterminate = (choice, value) => {\n\n return choice.id === \"EXPIRED\";\n }\n // (choice.id === permissions.user.department.id && !!value && value.some(v => v === permissions.user.department.id));\n\n return \n};\n\nexport default compose(\n \n translate,\n \n\n)(NotificationTagsInput);\n\n","import React, { Fragment } from 'react';\nimport {\n AutocompleteArrayInput,\n Edit,\n FormDataConsumer,\n FormTab,\n ReferenceArrayInput,\n SaveButton,\n SelectInput,\n TabbedForm,\n TextInput,\n Toolbar, \n required,\n minLength,\n email,\n} from 'react-admin';\nimport { ability } from '../../ability'\nimport { AddressSuggestionComponent, AddressCheckComponent } from '../Order/AddressComponents';\nimport CheckBoxGroupInputWithCheckAll from '../Inputs/CheckBoxGroupInputWithCheckAll';\nimport TypeField from '../Customer/TypeField';\nimport PaymentField from '../Customer/PaymentField';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport FastView from './FastView';\nimport NotificationTagsInput from './NotificationTagsInput';\nimport { connect } from 'react-redux';\n\n\nconst arrTypes = [\n { type: 'PHIS'},\n { type: 'JURE'},\n];\n\nconst arrPayments = [\n { payment: 'CASH'},\n { payment: 'CASHLESS'},\n]; \n\nconst validateName = [required(), minLength(2)];\nconst validateEmail = [ email()];\n\nconst EditLayoutView = ({ classes, toolbar, ...props }) => {\n const { record } = props;\n\n\n return (\n \n \n } {...props} >\n \n \n {/* */}\n \n \n \n \n {(record.role === 'CUSTOMER') && (\n \n } validate={required()}/>\n {\n ({ formData, ...rest }) => { \n if (!!formData.customer && (formData.customer.type === undefined || formData.customer.type === \"JURE\")) { \n return [\n ,\n ,\n } {...rest} />,\n ]; \n }\n }}\n \n )}\n \n { ability.can('update', \"User\", \"regionIds\") && (\n \n `${choice.name} ${choice.typeShort}`} />\n \n )}\n { ability.can('update', \"User\", \"districtIdOrCityIds\") && (\n {\n ({ formData, className, ...rest }) =>\n \n \n \n }\n \n )}\n \n\n {ability.can('read', \"Notification\") && (\n \n \n \n )}\n \n \n )\n};\n\nconst connectUserProfile = ({user, dispatch, staticContext, ...props}) => {\n if (!user) return null;\n return (\n \n \n \n );\n}\n\nconst mapStateToProps = state => {\n return { user: state.user }\n};\n\nconst ProfileEdit = connect(mapStateToProps)(connectUserProfile);\n\nexport const EditToolbar = props => {\n return (\n \n \n \n )\n};\n\nexport default {\n edit: ProfileEdit\n};","import React, { cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { Title } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\n\n\nconst styles = theme => ({\n root: {},\n main: {\n display: 'flex',\n // marginTop: '1em',\n },\n card: {\n flex: '1 1 auto',\n },\n cardWrapper: {\n flex: '1 1 auto',\n },\n});\n\n\nexport const ShowView = withStyles(styles)(({\n title,\n aside,\n children,\n classes,\n className,\n ...props\n}) => {\n \n if (!children) { return null; }\n\n return (\n
\n \n <div className={`${classes.main}`} >\n <div className={`${classes.cardWrapper}`} >\n { cloneElement(Children.only(children), {}) }\n </div>\n {aside && React.cloneElement(aside, {})}\n </div>\n </div>\n );\n});\n\n\nconst Show = props => (\n <ShowView {...props} />\n);\n\nShow.propTypes = {\n aside: PropTypes.node,\n children: PropTypes.element,\n classes: PropTypes.object,\n className: PropTypes.string,\n title: PropTypes.any,\n};\n\nexport default Show;","import React, { Component } from 'react';\nimport compose from 'recompose/compose';\nimport { translate } from 'react-admin';\nimport Card from '@material-ui/core/Card';\nimport gql from 'graphql-tag'\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport LabelImportantIcon from '@material-ui/icons/LabelImportant';\nimport { withStyles } from '@material-ui/core/styles';\nimport AuthIcon from '@material-ui/icons/VpnKey';\nimport CoreIcon from '@material-ui/icons/Memory';\nimport BlobIcon from '@material-ui/icons/Backup';\nimport CaslIcon from '@material-ui/icons/Security';\nimport FiasIcon from '@material-ui/icons/Room';\n\nimport apolloCoreClient from './../../dataProviders/Core/apolloCoreClient';\nimport { apolloAuthClient } from './../../dataProviders/Auth/graphqlProvider';\nimport apolloBlobClient from './../../dataProviders/Blob/apolloBlobClient';\nimport apolloFiasClient from './../../dataProviders/Fias/apolloFiasClient';\nimport { apolloCaslClient } from './../../dataProviders/caslProvider';\n\n\nconst Promise_all = promises => {\n return new Promise((resolve, reject) => {\n const results = [];\n let count = 0;\n promises.forEach((promise, idx) => {\n promise\n .catch(err => {\n return err;\n })\n .then(valueOrError => {\n results[idx] = valueOrError;\n count += 1;\n if (count === promises.length) resolve(results);\n });\n });\n });\n};\n\n\nconst styles = theme => ({\n container: {\n width: \"24em\",\n marginLeft: 3 * theme.spacing.unit,\n },\n stickyContent: {\n position: \"sticky\",\n top: 3 * theme.spacing.unit,\n zIndex: 1200,\n display: \"flex\",\n flexDirection: \"column\",\n },\n card: {\n // width: \"100%\",\n // height: 640,\n },\n});\n\n\nclass VersionModules extends Component {\n constructor(props) {\n super(props);\n this.state = {\n modules: [],\n isLoading: false,\n };\n }\n\n componentDidMount() {\n this.setState({ isLoading: true });\n\n Promise_all([\n apolloCoreClient.query({ query: gql`query { Version { name, version, dependencies } }`, fetchPolicy: 'network-only' }),\n apolloAuthClient.query({ query: gql`query { Version { name, version, dependencies } }`, fetchPolicy: 'network-only' }),\n apolloCaslClient.query({ query: gql`query { Version { name, version, dependencies } }`, fetchPolicy: 'network-only' }),\n apolloBlobClient.query({ query: gql`query { Version { name, version, dependencies } }`, fetchPolicy: 'network-only' }),\n apolloFiasClient.query({ query: gql`query { Version { name, version, dependencies } }`, fetchPolicy: 'network-only' })\n ]).then((results) => {\n let mds = [];\n mds.push({ name: 'Core', icon: CoreIcon, data: results[0] });\n mds.push({ name: 'Auth', icon: AuthIcon, data: results[1] });\n mds.push({ name: 'Casl', icon: CaslIcon, data: results[2] });\n mds.push({ name: 'Blob', icon: BlobIcon, data: results[3] });\n mds.push({ name: 'Fias', icon: FiasIcon, data: results[4] });\n this.setState({ modules: mds, isLoading: false });\n });\n }\n\n render() {\n const { modules, isLoading } = this.state;\n const { translate, classes } = this.props;\n\n if (isLoading) {\n return (\n <div className={classes.container}>\n <div className={classes.stickyContent}>\n <p>{`${translate(`ra.page.loading`)}...`}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className={classes.container}>\n <div className={classes.stickyContent}>\n <Card>\n <List disablePadding>\n {modules.map(module =>\n <ListItem divider key={module.name}>\n <ListItemIcon>\n {(module.icon) ? <module.icon /> : <LabelImportantIcon />}\n </ListItemIcon>\n <ListItemText primary={translate(`resources.AboutApp.modules.${module.name}.name`, { _: module.name })} secondary={!(module.data instanceof Error) ? `${module.data.data.Version.name}: v${module.data.data.Version.version}` : translate(`resources.AboutApp.errrors.not_available`)} />\n </ListItem>\n )}\n </List>\n </Card>\n </div>\n </div>\n );\n }\n}\n\nexport default compose(\n withStyles(styles),\n translate,\n)(VersionModules);\n\n\n\n\n// export default (type, resource, params) => (\n// <>\n// <Card>\n// <Title title=\"resources.AboutApp.name\" />\n// <CardContent>\n// <VersionModules></VersionModules>\n// </CardContent>\n// </Card> \n// <Card>\n// <CardContent>\n// <MarkdownField path={CHANGELOG} />\n// </CardContent>\n\n// </Card> \n\n// </>\n// );\n\n","import React, {useState, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport ReactMarkdown from 'react-markdown';\nimport 'github-markdown-css'\n\nconst MarkdownField = ({ path, ...props }) => {\n const [markdownText, setMarkdownText] = useState(\"\");\n useEffect(() => {\n fetch(path)\n .then(res => res.text())\n .then(text => {\n setMarkdownText(text)\n })\n }, []);\n\n return (\n <div className='markdown-body'>\n <ReactMarkdown source={markdownText} escapeHtml={false} />\n </div>\n );\n\n};\n\nMarkdownField.propTypes = {\n path: PropTypes.string.isRequired,\n};\n\nexport default MarkdownField;","import AboutAppShow from './AboutAppShow'\n\n\nexport default AboutAppShow;\n","import React from 'react';\nimport Show from './Show';\nimport Versions from './Versions';\nimport {VERSION_APP} from '../../appsettings';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\n\nimport MarkdownField from '../Fields/MarkdownField';\nimport CHANGELOG from '../../CHANGELOG.md'\n\n\n\nconst AboutAppShow = (props) => {\n\n const VERSION = 'version-app'\n localStorage.setItem(VERSION, VERSION_APP)\n \n return (\n <Show aside={<Versions />} title=\"resources.AboutApp.name\" {...props}>\n <Card>\n <CardContent>\n <MarkdownField path={CHANGELOG} />\n </CardContent>\n </Card> \n </Show>\n );\n};\n\nexport default AboutAppShow;","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport Profile from './components/Profile/ProfileEdit';\n//import GuestOrderCreate from './components/GuestPage/GuestOrderCreate';\nimport AboutApp from './components/AboutApp';\n\n\nexport default [\n <Route key=\"Profile\" path=\"/Profile\" component={Profile.edit} />,\n // <Route key=\"GuestOrderCreate\" path=\"/order_create\" noLayout component={GuestOrderCreate} />,\n <Route key=\"AboutApp\" path=\"/About\" component={AboutApp} />\n];","import React from 'react';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { MenuItemLink, getResources, translate, DashboardMenuItem } from 'react-admin';\nimport { withRouter } from 'react-router-dom';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { withStyles } from '@material-ui/core/styles';\nimport DefaultIcon from '@material-ui/icons/ViewList';\nimport FiberNewIcon from '@material-ui/icons/FiberNew';\n// import MenuGroup from './MenuGroup'\nimport {VERSION_APP} from '../../appsettings';\n\n\nconst styles = theme => ({\n root: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n borderRadius: theme.shape.borderRadius,\n },\n iconRight:{\n marginLeft: \"auto\",\n },\n});\n\nconst Menu = ({ translate, resources, onMenuClick, classes,hasDashboard, logout }) => {\n\n const VERSION = 'version-app'\n const version = localStorage.getItem(VERSION)\n const newRelease = version !== VERSION_APP\n\n return (\n <div>\n {hasDashboard && <DashboardMenuItem classes={{root: classes.root}} onClick={onMenuClick} />}\n {resources.filter(resource => resource.hasList).map(resource => (\n <MenuItemLink\n dense\n classes={{root: classes.root}}\n key={resource.name}\n to={`/${resource.name}`}\n primaryText = {translate(`resources.${resource.name}.name`, { smart_count: 2 })}\n leftIcon= { resource.icon ? <resource.icon /> : <DefaultIcon /> }\n onClick={onMenuClick}\n />\n ))}\n <MenuItemLink\n dense\n classes={{root: classes.root}}\n to=\"/About\"\n primaryText={newRelease ? (<>{translate(`resources.AboutApp.name`)}<FiberNewIcon color=\"error\" className={classes.iconRight}/></>) : translate(`resources.AboutApp.name`)}\n leftIcon={<InfoIcon />}\n onClick={onMenuClick} />\n </div>\n )\n};\n\nconst mapStateToProps = state => ({\n resources: getResources(state),\n});\n\nconst enhance = compose(\n withRouter,\n withStyles(styles),\n connect(mapStateToProps,{}),\n translate,\n)\n\nexport default enhance(Menu);","import gql from 'graphql-tag'\n\nexport const SUBSCRIBE_ONLINE_USERS = gql`\n subscription onlineUsers{\n onlineUsers {\n node { \n id\n authId\n online\n }\n }\n }\n \n`","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nexport const USER_BY_AUTH = gql`\n query UserByAuthId($authId: ID!) {\n UserByAuthId(authId: $authId) {\n id\n authId\n authStatus\n name\n email\n phone\n role\n createdAt\n updatedAt\n regionIds\n districtIdOrCityIds\n notificationTags\n isArchive\n online\n favoriteOrders {\n id\n }\n }\n }\n`;\n\nexport default (args) => {\n return apolloCoreClient.query({\n query: USER_BY_AUTH,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nconst ONLINE_USERS = gql`\n query OnlineUsers {\n onlineUsers: allUsers(\n filter: {\n online: true\n }\n ){\n id\n authId\n online\n },\n }\n`;\n\nexport default () => {\n return apolloCoreClient.query({\n query: ONLINE_USERS,\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport {translate} from 'react-admin';\nimport sanitizeRestProps from './sanitizeRestProps';\n\n\nconst RoleField = ({ record = {}, translate, ...props }) => ( \n <span>{translate(`resources.User.roles.${record.role}`)}</span>\n);\n\nRoleField.defaultProps = {\n source: 'role',\n addLabel: true\n};\n\nexport default translate(RoleField);\n\n\n\n\n","import React, { useEffect } from 'react';\nimport decodeJwt from 'jwt-decode'\nimport { useSubscription } from '@apollo/react-hooks';\nimport { connect } from 'react-redux';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Avatar from '@material-ui/core/Avatar';\nimport AccountCircle from '@material-ui/icons/AccountCircle';\nimport blue from '@material-ui/core/colors/blue';\nimport { UserMenu, MenuItemLink, } from 'react-admin';\nimport apolloCoreClient from '../../dataProviders/Core/apolloCoreClient';\nimport { SUBSCRIBE_ONLINE_USERS } from '../../dataProviders/Core/onlineUsersSubscription';\nimport { AUTH_TOKEN } from '../../appsettings';\nimport { setUser } from '../../redux/user/actions';\nimport { setOnlineUsers } from '../../redux/onlineUsers/actions';\nimport getUserByAuth from '../../dataProviders/Core/getUserByAuth';\nimport getOnlineUsers from '../../dataProviders/Core/getOnlineUsers';\nimport RoleField from '../User/RoleField';\n\n\n\nconst styles = theme => ({\n root: {\n fontSize: \"1rem\",\n height: 32,\n width: 32,\n },\n colorDefault: {\n color: theme.palette.common.white,\n backgroundColor: blue[400],\n }\n});\n\nconst getInitials = name => {\n var initials = name.split(\" \") || [];\n var first = initials.shift()\n var second = initials.pop()\n initials = (first.charAt(0) + (second ? second.charAt(0) : first.charAt(1))).toUpperCase();\n return initials;\n}\n\n\nconst Ava = withStyles(styles)(({ user, classes, ...props }) => {\n\n if (!user) return <Avatar classes={{ root: classes.root, colorDefault: classes.colorDefault }} ><AccountCircle /></Avatar>\n\n if (!!user.avatar) return <Avatar classes={{ root: classes.root, colorDefault: classes.colorDefault }} >{getInitials(user.name)}</Avatar>\n\n return <Avatar classes={{ root: classes.root, colorDefault: classes.colorDefault }} >{getInitials(user.name)}</Avatar>\n\n});\n\n\n\nconst MyUserMenu = ({ profile, user, setUser, onlineUsers, setOnlineUsers, ...props }) => {\n\n useEffect(() => {\n\n async function fetchData() {\n try {\n\n const _onlineUsers = await getOnlineUsers();\n const onlineUsersIds = _onlineUsers.data.onlineUsers.map(onlineUser => onlineUser.id)\n\n setOnlineUsers(onlineUsersIds)\n\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n return () => {\n setOnlineUsers([]);\n };\n\n }, []);\n\n useEffect(() => {\n\n async function fetchData() {\n try {\n const decodedToken = decodeJwt(localStorage.getItem(AUTH_TOKEN))\n const userByAuthId = await getUserByAuth({ authId: decodedToken.userId });\n\n setUser(userByAuthId.data.UserByAuthId)\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n return () => {\n setUser(null)\n };\n\n }, []);\n\n useEffect(() => {\n //const a = profile === user\n\n if (profile) {\n setUser(profile)\n }\n }, [profile]);\n\n const onSubscriptionData = ({ client, subscriptionData: { data: { onlineUsers: { node } } } }) => {\n\n if (node.online) {\n\n if (!onlineUsers.some(id => id === node.id)) {\n setOnlineUsers([...onlineUsers, node.id]);\n }\n } else {\n\n const filterArray = onlineUsers.filter(id => id !== node.id);\n setOnlineUsers(filterArray);\n };\n };\n\n const onlineUserSubscription = useSubscription(SUBSCRIBE_ONLINE_USERS, {\n client: apolloCoreClient,\n onSubscriptionData: onSubscriptionData,\n }\n );\n\n return (\n <UserMenu icon={<Ava user={user} />} {...props}>\n {!!user && (\n <MenuItemLink\n style={{ height: \"unset\" }}\n to={`/Profile`}\n primaryText={(\n <div>\n <Typography variant=\"subheading\" >{user.name}</Typography>\n <Typography variant=\"caption\" ><RoleField variant=\"caption\" record={user} /></Typography>\n\n </div>\n )}\n leftIcon={<AccountCircle />\n }\n />\n )}\n </UserMenu>\n );\n}\n\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n onlineUsers: state.onlineUsers,\n profile: (state.admin.resources.Profile && state.user) ? state.admin.resources.Profile.data[state.user.id] : undefined,\n }\n};\n\nexport default connect(mapStateToProps, {\n setUser,\n setOnlineUsers,\n})(MyUserMenu);\n\n\n","import React, {useState, useEffect} from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport Fullscreen from '@material-ui/icons/Fullscreen';\nimport FullscreenExit from '@material-ui/icons/FullscreenExit';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { translate } from 'ra-core';\n\n\nconst FullScreenButton = ({ translate, ...props}) => {\n \n const [fullScreen, setFullScreen] = useState(false);\n \n const requestFullScreen = element => {\n const requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;\n if (requestMethod) { // Native full screen.\n requestMethod.call(element);\n };\n setFullScreen(true);\n return false\n };\n\n const cancelFullScreen = element => {\n const requestMethod = element.cancelFullScreen || element.webkitCancelFullScreen || element.mozCancelFullScreen || element.exitFullscreen;\n if (requestMethod) { // Native full screen.\n requestMethod.call(element);\n };\n setFullScreen(false);\n };\n\n const handleFullScreen = () => {\n const element = document.documentElement;\n \n\n (fullScreen) ? cancelFullScreen(document) : requestFullScreen(element);\n return false;\n };\n\n\n return (\n <Tooltip title={(fullScreen) ? translate('raExt.action.exit_full_screen',{ _: 'Exit full screen' }) : translate('raExt.action.set_full_screen',{ _: 'Set full screen' }) } >\n <IconButton\n aria-label='full_screen'\n\n color=\"inherit\"\n onClick={handleFullScreen}\n >\n {(fullScreen) ? <FullscreenExit /> : <Fullscreen />}\n </IconButton>\n </Tooltip>\n );\n}\n\nexport default translate(FullScreenButton);","import { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { WebSocketLink } from 'apollo-link-ws'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport { split } from 'apollo-link';\nimport { getMainDefinition } from 'apollo-utilities'\nimport { GetAccessToken} from '../authProvider';\nimport { URI_NOTIFICATIONS, WS_NOTIFICATIONS } from '../../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_NOTIFICATIONS\n})\n\nconst authLink = setContext(async (_, { headers }) => { \n const token = await GetAccessToken(); \n \n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_NOTIFICATIONS,\n options: {\n lazy: true,\n reconnect: true,\n timeout: 30000,\n connectionParams: async () => {\n const token = await GetAccessToken(); \n \n return { \n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nexport const apolloNotificationsClient = new ApolloClient({\n link, \n cache: new InMemoryCache()\n});\n","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst GET_LIST_NOTIFICATIONS = gql`\n query allNotifications($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: NotificationFilter) {\n items: allNotifications(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id \n app \n title \n body \n data \n actions \n tag \n requireInteraction \n type \n priority \n ttl \n ttlAt \n timestamp\n }\n total: _allNotificationsMeta(filter: $filter) {\n count\n }\n }\n`;\n\nexport default (args) => {\n return apolloNotificationsClient.query({\n query: GET_LIST_NOTIFICATIONS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst CLEAR_ALL_NOTIFICATIONS = gql`\n mutation disconnectAllNotifications {\n data: disconnectAllNotifications {\n count\n }\n }\n`;\n\n\nexport default (args) => {\n return apolloNotificationsClient.mutate({\n mutation: CLEAR_ALL_NOTIFICATIONS,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst CLEAR_NOTIFICATIONS = gql`\n mutation disconnectNotifications($id_in: [ID!]) {\n data: disconnectNotifications(id_in: $id_in) {\n count \n }\n }\n`;\n\n\nexport default (args) => {\n return apolloNotificationsClient.mutate({\n mutation: CLEAR_NOTIFICATIONS,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst GET_MORE_NOTIFICATIONS = gql`\n query moreNotifications($cursor: String, $first: Int, $sortField: String, $sortOrder: String, $filter: NotificationFilter) {\n items: moreNotifications(cursor: $cursor, first: $first, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id \n app \n title \n body \n data \n actions \n tag \n requireInteraction \n type \n priority \n ttl \n ttlAt \n timestamp\n }\n total: _allNotificationsMeta(filter: $filter) {\n count\n }\n }\n`;\n\nexport default (args) => {\n return apolloNotificationsClient.query({\n query: GET_MORE_NOTIFICATIONS,\n fetchPolicy: 'network-only',\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport { translate } from 'ra-core';\nimport { withStyles } from '@material-ui/core/styles';\n\n\n\nconst styles = theme => ({\n container:{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: \"3rem\",\n paddingBottom: \"3rem\",\n \n },\n title:{\n maxWidth: 256\n },\n subtitle:{\n maxWidth: 256\n },\n mt3:{\n marginTop: \"1rem\"\n },\n \n});\n\n\nconst Infobanner = ({ children, title, subtitle, action, classes, translate }) => (\n <div className={classes.container}>\n {children}\n <Typography variant=\"title\" align=\"center\" gutterBottom className={classes.mt3}>{translate(title, { _: title })}</Typography>\n {subtitle && <Typography variant=\"subheading\" color=\"textSecondary\" align=\"center\" gutterBottom className={`${classes.subtitle}`} >{translate(subtitle, { _: subtitle })}</Typography>}\n {action}\n </div>\n);\n\nInfobanner.defaultProps = {\n title: null,\n subtitle: null,\n action: null,\n\n};\n\nInfobanner.propTypes = {\n children: PropTypes.node,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n action: PropTypes.node,\n};\n\nexport default compose( withStyles(styles), translate )(Infobanner);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardActions from '@material-ui/core/CardActions';\nimport Collapse from '@material-ui/core/Collapse';\nimport Typography from '@material-ui/core/Typography';\nimport FavoriteIcon from '@material-ui/icons/Favorite';\nimport IconButton from '@material-ui/core/IconButton';\nimport NewReleasesIcon from '@material-ui/icons/NewReleases';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { translate } from 'ra-core';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport moment from 'moment'\nimport 'moment/locale/ru';\nimport Button from '@material-ui/core/Button';\nimport { useSnackbar } from 'notistack';\nimport { Link } from \"react-admin\";\nimport { removeNotification } from '../../redux/notifications/actions';\nimport { emphasize } from '@material-ui/core/styles/colorManipulator';\n\n\nexport const styles = theme => {\n const emphasis = theme.palette.type === 'light' ? 0.8 : 0.98;\n const backgroundColor = emphasize(theme.palette.background.default, emphasis);\n\n return {\n /* Styles applied to the root element. */\n root: {\n color: theme.palette.getContrastText(backgroundColor),\n backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: theme.shape.borderRadius,\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288,\n },\n },\n /* Styles applied to the message wrapper element. */\n message: {\n padding: '8px 0',\n },\n /* Styles applied to the action wrapper element if `action` is provided. */\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8,\n },\n\n card: {\n backgroundColor: \"#ffc107\",\n width: 356,\n \n \n },\n sizeSmall: {\n padding: 3,\n fontSize: theme.typography.pxToRem(18),\n },\n header:{\n //padding: \"6px 24px\",\n },\n content:{\n paddingTop: 0,\n },\n title: {\n display: 'flex',\n alignItems: 'center',\n }, \n icon: {\n fontSize: 20,\n opacity: 0.9,\n marginRight: theme.spacing.unit,\n },\n action: {\n marginTop: '-12px',\n marginBottom: '-12px',\n\n },\n \n };\n};\n\n// const SnackbarContent = ({ icon, title, timestamp, body, action, clear, classes, className, ...props}) => {\n\n// const handleClear = () => {\n// clear();\n// };\n\n\n// const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n// return (\n// <Card className={classes.card} elevation={6}>\n// <CardHeader\n// classes={{root: classes.header, title: classes.title, action: classes.action }}\n// title={\n// (icon) \n// ? (<>{React.cloneElement(icon, { className: classes.icon, })}{title}</>) \n// : {title}\n// }\n// disableTypography\n// title={\n// <>\n// { icon && React.cloneElement(icon, { className: classes.icon, }) }\n// <Typography variant=\"subheading\" noWrap>{title}</Typography>\n// { timestamp && <Typography variant=\"caption\" style={{marginLeft:\"auto\"}}>{timestamp}</Typography>}\n// </>\n// }\n// action={\n// <Tooltip title={translate(\"raExt.action.clear\")} >\n// <IconButton aria-label=\"Clear\" onClick={handleClear}>\n// <ClearIcon />\n// </IconButton>\n// </Tooltip>\n// }\n \n \n// />\n// { body &&\n// <CardContent classes={{root: classes.content}}>\n// <Typography variant=\"body2\" color=\"textSecondary\" component=\"p\">{body}</Typography>\n// </CardContent>\n// }\n// { action &&\n// <CardContent classes={{root: classes.content}}>\n// <Typography variant=\"body2\" color=\"textSecondary\" component=\"p\">{body}</Typography>\n// </CardContent>\n// }\n// </Card>\n// );\n// };\n\n// SnackbarContent.propTypes = {\n// icon: PropTypes.node,\n// title: PropTypes.string.isRequired,\n// body: PropTypes.string,\n// action: PropTypes.node,\n// classes: PropTypes.object.isRequired,\n// className: PropTypes.string,\n// };\n\n\n\nconst SnackbarContent = ({notification, classes, icon, action, toolbar, translate, ...props}) => {\n\n return (\n <Card className={classes.card} style={{marginTop: 8}} {...props}>\n <CardHeader\n classes={{root: classes.header, content: classes.title, action: classes.action }}\n action={action}\n disableTypography\n title={<>\n {icon && React.cloneElement(icon, { className: classes.icon })}\n <Typography variant=\"subheading\" noWrap>{notification.title}</Typography>\n <Typography variant=\"caption\" style={{marginLeft:\"auto\", paddingLeft: 8}}>{moment(notification.timestamp).fromNow()}</Typography>\n </>\n }\n \n />\n { notification.body &&\n <CardContent classes={{root: classes.content}}>\n <Typography variant=\"body2\" color=\"textSecondary\" component=\"p\">{notification.body}</Typography>\n </CardContent>\n }\n { toolbar &&\n\n <CardActions classes={{root: classes.content}}>\n {toolbar}\n </CardActions>\n\n }\n\n\n </Card>\n );\n };\n\nconst EnhaencedSnackbarContent = compose( \n withStyles(styles),\n translate,\n)( SnackbarContent );\n\nexport default EnhaencedSnackbarContent;\n\n\nexport const NEWORDERSnackbarContentView = ({removeNotification, handleCloseClick, ...props}) => {\n const {notification} = props;\n \n\nconst handleClick = async (event) => {\n event.stopPropagation(); \n if (handleCloseClick) handleCloseClick();\n document.location.href = `#/Order/${notification.data.order.id}/show`;\n};\n\n\n\n \n return (\n <EnhaencedSnackbarContent\n icon={<NewReleasesIcon />}\n toolbar={\n <Button size=\"small\" onMouseUp={handleClick}>Открыть</Button>\n }\n {...props}\n />\n );\n};\n\n\nexport const NEWORDERSnackbarContent = connect(\n undefined,\n { \n removeNotification,\n },\n)( NEWORDERSnackbarContentView );\n\n\n","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst CLEAR_NOTIFICATION = gql`\n mutation disconnectNotification($id: ID!) { \n disconnectNotification(id: $id) { \n id\n }\n }\n`;\n\n\nexport default (args) => {\n return apolloNotificationsClient.mutate({\n mutation: CLEAR_NOTIFICATION,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport moment from 'moment'\nimport 'moment/locale/ru';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport Button from '@material-ui/core/Button';\nimport { amber, green, blue } from '@material-ui/core/colors';\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport InfoIcon from '@material-ui/icons/Info';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport DismissIcon from '@material-ui/icons/ChevronRight';\nimport { translate } from 'ra-core';\n\nimport clearNotification from '../../dataProviders/Notifications/clearNotification';\nimport { removeNotification, closeNotification } from '../../redux/notifications/actions';\n\nconst getTypeClasses = type => {\n switch (type) {\n case 'INFO':\n return {\n bg: 'bgInfo',\n text: 'text-white',\n textSecondary: 'text-white'\n };\n break;\n\n case 'SUCCESS':\n return {\n bg: 'bgSuccess',\n text: 'text-white',\n textSecondary: 'text-white'\n };\n break;\n\n case 'WARNING':\n return {\n bg: 'bgWarning',\n text: 'text-white',\n textSecondary: 'text-white'\n };\n break;\n\n case 'ERROR':\n return {\n bg: 'bgError',\n text: 'text-white',\n textSecondary: 'text-white'\n };\n break;\n\n default:\n return {\n bg: 'bgDefault',\n text: 'text-white',\n textSecondary: 'text-muted'\n };\n break;\n }\n};\n\nconst getTypeIcon = type => {\n switch (type) {\n case 'INFO':\n return <InfoIcon />;\n break;\n\n case 'SUCCESS':\n return <CheckCircleIcon />;\n break;\n\n case 'WARNING':\n return <WarningIcon />;\n break;\n\n case 'ERROR':\n return <ErrorIcon />;\n break;\n\n default:\n return <NotificationsIcon />;\n break;\n }\n};\n\nconst styles = theme => {\n\n return {\n notification: {\n width: 356,\n marginBottom: 8,\n color: \"#fff\"\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"12px 16px\",\n },\n headerContent: {\n display: 'flex',\n alignItems: 'center',\n flex: '1 1 auto',\n\n },\n headerIcon: {\n marginRight: 8,\n },\n headerExtra: {\n marginLeft: \"auto\",\n paddingLeft: 8,\n },\n headerAction: {\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -8,\n marginBottom: -8,\n marginRight: -12,\n },\n iconButton: {\n width: 44,\n height: 44,\n fontSize: 20,\n },\n body: {\n paddingLeft: 16,\n paddingRight: 16,\n '&:last-child': {\n paddingBottom: 16,\n },\n },\n textClamp: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n lineClamp: 2,\n boxOrient: \"vertical\",\n },\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n padding: 8,\n '& > * + *': {\n marginLeft: 8,\n },\n },\n\n bgDefault: {},\n bgInfo: { backgroundColor: blue[700] },\n bgSuccess: { backgroundColor: green[600] },\n bgWarning: { backgroundColor: amber[700] },\n bgError: { backgroundColor: theme.palette.error.dark },\n\n };\n};\n\nconst Notification = ({ notification, classes, translate, handleDismiss, dismissNotificationRedux, clearNotificationRedux, ...props }) => {\n\n const { id, title, body, actions, type, timestamp, dismissed } = notification;\n\n const [clamped, setClamped] = useState(true);\n\n const toggleClamped = () => {\n setClamped(!clamped);\n };\n\n const handleClear = () => {\n\n clearNotification({ id }).then(({ data: { disconnectNotification: { id } } }) => {\n clearNotificationRedux(id);\n });\n };\n\n // const handleDismiss = () => {\n // // if (typeof clearNotification === \"function\") {clearNotification(id)}\n\n // dismissNotificationRedux(id);\n // };\n\n const typeClasses = getTypeClasses(type);\n const typeIcon = getTypeIcon(type)\n const extra = moment(timestamp).fromNow()\n\n return (\n <Paper className={`${classes.notification} ${classes[typeClasses.bg]}`} {...props}>\n <div className={classes.header}>\n <div className={classes.headerContent}>\n {React.cloneElement(typeIcon, { className: classes.headerIcon })}\n <Typography variant=\"body2\" color=\"inherit\" noWrap>{title}</Typography>\n <Typography variant=\"caption\" color=\"inherit\" className={classes.headerExtra}>{extra === \"несколько секунд назад\" ? \"только что\" : extra}</Typography>\n </div>\n <div className={classes.headerAction}>\n {dismissed\n ? (<Tooltip title={translate(\"raExt.action.clear\")} enterDelay={700}>\n <IconButton className={classes.iconButton} color=\"inherit\" aria-label=\"Clear\" >\n <ClearIcon fontSize=\"inherit\" onClick={handleClear} />\n </IconButton>\n </Tooltip>)\n : (<Tooltip title={translate(\"raExt.action.close\")} enterDelay={700}>\n <IconButton className={classes.iconButton} color=\"inherit\" aria-label=\"Dismiss\" >\n <DismissIcon fontSize=\"inherit\" onClick={handleDismiss} />\n </IconButton>\n </Tooltip>)\n }\n\n </div>\n\n </div>\n {body ? <div className={classes.body} onClick={toggleClamped} ><Typography variant=\"body1\" color=\"inherit\" className={clamped ? classes.textClamp : \"\"}>{body}</Typography></div> : null}\n {actions.length ? <div className={classes.actions}>\n {actions.map(action => (<Button key={action.title} href={action.action} color=\"inherit\" size=\"small\" >{translate(`ra.action.${action.title.toLowerCase()}`, { _: action.title })}</Button>))}\n </div> : null}\n </Paper>\n );\n};\n\n\n\nexport default compose(\n withStyles(styles),\n translate,\n connect(\n undefined,\n {\n clearNotificationRedux: removeNotification,\n dismissNotificationRedux: closeNotification,\n },\n )\n)(Notification);\n\n\n","import React, { useEffect } from 'react';\nimport { translate } from 'ra-core';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { initialNotifications, removeNotification, closeNotification } from '../../redux/notifications/actions';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport IconButton from '@material-ui/core/IconButton';\nimport Button from '@material-ui/core/Button';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ClearAllIcon from '@material-ui/icons/ClearAll';\nimport NotificationsOffIcon from '@material-ui/icons/NotificationsOff';\nimport Drawer from '@material-ui/core/Drawer';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport getListNotifications from '../../dataProviders/Notifications/getListNotifications';\nimport clearAllNotifications from '../../dataProviders/Notifications/clearAllNotifications';\nimport clearNotifications from '../../dataProviders/Notifications/clearNotifications';\nimport getMoreNotifications from '../../dataProviders/Notifications/getMoreNotifications';\nimport InfoBanner from '../Layout/InfoBanner';\nimport { NAME_APP } from '../../appsettings';\nimport { NEWORDERSnackbarContent } from './NotificationDefault';\nimport Notification from './Notification';\n\n\nconst getChildren = (tag) => {\n switch (tag) {\n case \"NEWORDER\":\n return <Notification />;\n\n default:\n return null;\n }\n};\n\nconst styles = theme => ({\n paper: {\n minWidth: \"24rem\",\n maxWidth: \"28rem\",\n },\n mlAuto: { marginLeft: \"auto\" },\n notificationHeader: {\n paddingTop: 8,\n paddingBottom: 8,\n },\n action: {\n marginTop: 0,\n },\n notification: {\n margin: 8,\n },\n notificationWrapper: {\n paddingTop: 0,\n },\n notificationFooter: {\n paddingTop: 0,\n marginTop: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n },\n getMoreButton: {\n marginLeft: \"auto\",\n marginTop: -8,\n marginBottom: -8,\n\n }\n});\n\n\n\nconst NotificationsDrawer = ({ open, setOpen, notifications, total, initialNotifications, enqueueNotification, closeNotification, removeNotification, translate, classes, ...props }) => {\n\n const availableDistrictIdOrCity = ({ items, total }) => {\n\n let count = total.count\n const districtIdOrCityIds = localStorage.getItem('districtIdOrCityIds').split(',');\n\n const myNotifications = items.filter(notification => {\n const districtIdOrCityId = notification.data && notification.data.order && notification.data.order.districtIdOrCityId;\n const isAvaliable = districtIdOrCityId ? districtIdOrCityIds.some(id => id === districtIdOrCityId) : false;\n if (!isAvaliable) { --count }\n return isAvaliable\n });\n\n return {\n items: myNotifications,\n total: { count: count }\n }\n };\n\n useEffect(() => {\n\n async function fetchData() {\n\n getListNotifications({\n filter: {\n app: NAME_APP,\n },\n page: 0,\n perPage: 15,\n sortField: \"timestamp\",\n sortOrder: \"DESC\",\n }).then(({ data: data }) => {\n\n const availableData = availableDistrictIdOrCity(data);\n initialNotifications(availableData);\n\n });\n\n }\n\n\n fetchData();\n\n\n return () => {\n initialNotifications([])\n };\n\n }, []);\n\n\n const handleCloseClick = () => {\n setOpen(false);\n };\n\n const handleClearAllNotifications = () => {\n clearNotifications({ id_in: notifications.map(notification => notification.id) }).then(data => {\n removeNotification()\n });\n\n };\n\n const handleGetMoreNotifications = () => {\n const last = notifications[notifications.length - 1]\n getMoreNotifications({\n filter: {\n app: NAME_APP,\n },\n cursor: last.id,\n first: 15,\n sortField: \"timestamp\",\n sortOrder: \"DESC\"\n }).then(({ data: data }) => {\n\n const availableData = availableDistrictIdOrCity(data);\n initialNotifications(availableData);\n });\n };\n\n return (\n <Drawer anchor=\"right\" open={open} onClose={handleCloseClick} classes={{ paper: classes.paper }} ModalProps={{ hideBackdrop: false }}>\n <CardHeader\n title={translate(\"resources.Notification.name\", { smart_count: 2 })}\n titleTypographyProps={{ variant: 'subheading' }}\n action={\n <>\n <Tooltip title={translate(\"raExt.action.clear_all\")} enterDelay={700} >\n <IconButton aria-label=\"ClearAll\" onClick={handleClearAllNotifications} disabled={!notifications.length > 0}>\n <ClearAllIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title={translate(\"raExt.action.close\")} enterDelay={700}>\n <IconButton onClick={handleCloseClick} aria-label=\"Close\" >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n </>\n }\n classes={{ root: classes.notificationHeader, action: classes.action }}\n />\n { (notifications.length > 0)\n ? (\n <CardContent className={classes.notificationWrapper}>\n {notifications.map(notification => {\n\n const children = getChildren(notification.tag)\n\n return React.cloneElement(children, {\n key: notification.id,\n notification,\n })\n })}\n </CardContent>\n )\n : (\n <InfoBanner\n title={translate(\"resources.Notification.no_notifications\")}\n subtitle=\"Как только появится что-то интересное, Вы об этом узнаете\"\n >\n <NotificationsOffIcon color=\"disabled\" style={{ fontSize: 48 }} />\n </InfoBanner>\n )\n }\n <CardContent className={classes.notificationFooter}>\n <Typography variant=\"caption\">{`Отображается ${notifications.length} из ${total.count}`}</Typography>\n {(notifications.length < total.count) && <Button size=\"small\" onClick={handleGetMoreNotifications} className={classes.getMoreButton} >{translate(\"raExt.action.get_more\")}</Button>}\n </CardContent >\n </Drawer>\n\n );\n}\n\nconst mapStateToProps = state => {\n return {\n notifications: state.notifications.items,\n total: state.notifications.total,\n }\n};\n\nexport default compose(\n withStyles(styles),\n translate,\n connect(\n mapStateToProps,\n {\n initialNotifications,\n closeNotification,\n removeNotification,\n },\n )\n)(NotificationsDrawer);\n","import React, { useState } from 'react';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { translate } from 'ra-core';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport IconButton from '@material-ui/core/IconButton';\nimport NotificationsIcon from '@material-ui/icons/Notifications';\nimport NotificationsActiveIcon from '@material-ui/icons/NotificationsActive';\nimport NotificationsNoneIcon from '@material-ui/icons/NotificationsNone';\nimport NotificationsDrawer from './NotificationsDrawer';\nimport { closeNotification } from '../../redux/notifications/actions';\nimport { ability } from '../../ability'\n\nconst NotificationsButton = ({ notifications, closeNotification, translate, classes, ...props}) => {\n\n if (!ability.can('read', \"Notification\")) { return null };\n \n const [open, setOpen] = useState(false);\n \n const handleClick = () => {\n closeNotification();\n setOpen(true);\n };\n \n const getIcon = (notifications) => {\n \n const count = notifications.length;\n const haveUnconfirmed = notifications.some(notification => {\n\n return !notification.dismissed\n });\n \n if (count > 0) {\n if (haveUnconfirmed) {\n return {\n title: translate('resources.Notification.you_have_unconfirmed_notifications', { _: 'you_have_unconfirmed_notifications' }),\n icon: <NotificationsActiveIcon />,\n };\n } else {\n return {\n title: translate('resources.Notification.show_notifications', { _: 'show_notifications' }),\n icon: <NotificationsIcon />,\n };\n };\n } else {\n return {\n title: translate('resources.Notification.no_notifications', { _: 'no_notifications' }),\n icon: <NotificationsNoneIcon />,\n };\n };\n }\n\n const {icon, title} = getIcon(notifications);\n \n return (\n <>\n <Tooltip title={title} disableFocusListener={true}>\n <IconButton aria-label='notifications' color=\"inherit\" onClick={handleClick} >\n {icon}\n </IconButton>\n </Tooltip>\n <NotificationsDrawer open={open} setOpen={setOpen} />\n </>\n );\n}\n\nconst mapStateToProps = state => {\n return { \n notifications: state.notifications.items,\n }\n};\n\nexport default compose(\n translate,\n connect(\n mapStateToProps,\n {\n closeNotification,\n },\n )\n)( NotificationsButton );\n","import React from 'react';\nimport { AppBar } from 'react-admin';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport UserMenu from './UserMenu';\nimport FullScreenButton from '../Buttons/FullScreenButton';\nimport NotificationsButton from '../Notifications/NotificationsButton';\n\n\nconst styles = {\n title: {\n flex: 1,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n spacer: {\n flex: 1,\n },\n};\n\nconst MyAppBar = withStyles(styles)(({ classes, ...props }) => (\n <AppBar {...props} userMenu={<UserMenu />} >\n <Typography\n variant=\"title\"\n color=\"inherit\"\n className={classes.title}\n id=\"react-admin-title\"\n />\n <FullScreenButton />\n <NotificationsButton />\n </AppBar>\n));\n\nexport default MyAppBar;","import gql from 'graphql-tag'\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nconst REGISTER_SUBSCRIBER = gql`\n mutation registerSubscriber($filter: NotificationFilter) {\n data: registerSubscriber(filter: $filter) {\n id\n clientId\n role\n filter\n lastVizitAt\n createdAt\n updatedAt\n }\n }\n`;\n\n\nexport default (args) => {\n return apolloNotificationsClient.mutate({\n mutation: REGISTER_SUBSCRIBER,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import gql from 'graphql-tag'\nimport { useSubscription } from '@apollo/react-hooks';\nimport { apolloNotificationsClient } from './graphqlProvider';\n\nexport const SUBSCRIBE_NOTIFICATIONS = gql`\n subscription notification( $filter: NotificationFilter, $mutations: [String] ) {\n notification( filter: $filter, mutations: $mutations ) {\n mutation\n node { \n id \n app \n title \n body \n data \n actions \n tag \n requireInteraction \n type \n priority \n ttl \n ttlAt \n timestamp\n }\n }\n }\n`\n\nexport default (options) => useSubscription(SUBSCRIBE_NOTIFICATIONS, { client: apolloNotificationsClient, ...options });","import React, { useState, useEffect } from 'react';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { useSnackbar } from 'notistack';\nimport { initialNotifications, enqueueNotification, removeNotification, displayedNotification, closeNotification } from '../../redux/notifications/actions';\nimport registerSubscriber from '../../dataProviders/Notifications/registerSubscriber';\nimport getListNotifications from '../../dataProviders/Notifications/getListNotifications';\nimport useNotificationSubscription from '../../dataProviders/Notifications/notificationSubscription';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport NotificationDefault, { NEWORDERSnackbarContent } from './NotificationDefault';\nimport Notification from './Notification';\nimport { ability } from '../../ability'\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { NAME_APP } from '../../appsettings';\n\n\n\nconst getChildren = (tag) => {\n switch (tag) {\n case \"NEWORDER\":\n return <Notification />;\n\n default:\n return null;\n }\n};\n\n\n\nconst NotificationsStack = ({\n user,\n notifications,\n initialNotifications,\n enqueueNotification,\n displayedNotification,\n closeNotification,\n removeNotification,\n classes,\n ...props\n}) => {\n\n if (!ability.can('read', \"Notification\")) { return null };\n\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n\n useEffect(() => {\n if (user) {\n registerSubscriber({\n filter: {\n tag_in: user.notificationTags\n }\n });\n }\n }, [user]);\n\n useEffect(() => {\n\n notifications.forEach(notification => {\n\n const { id, displayed, dissmissed, requireInteraction, title, tag } = notification;\n\n const handleDismiss = (e) => {\n e.stopPropagation();\n closeNotification(id);\n closeSnackbar(id);\n };\n\n if (displayed) return;\n\n const children = getChildren(tag)\n\n enqueueSnackbar(title, {\n key: id,\n persist: requireInteraction,\n children: React.cloneElement(children, {\n handleDismiss,\n notification,\n elevation: 6,\n }),\n });\n\n displayedNotification(id);\n });\n }, [notifications]);\n\n const onSubscriptionData = ({ client, subscriptionData: { data: { notification: { mutation, node } } } }) => {\n const districtIdOrCityIds = localStorage.getItem('districtIdOrCityIds').split(',');\n\n const isMyNotification = districtIdOrCityIds.some(id => id === node.data.order.districtIdOrCityId);\n\n if (isMyNotification) { enqueueNotification(node) };\n };\n\n const notificationSubscription = useNotificationSubscription({\n onSubscriptionData: onSubscriptionData,\n shouldResubscribe: true,\n variables: (user && user.notificationTags)\n ? {\n filter: {\n app: NAME_APP,\n tag_in: user.notificationTags\n }\n }\n : {}\n });\n\n return null;\n\n};\n\nconst mapStateToProps = state => {\n return {\n user: state.user,\n notifications: state.notifications.items,\n }\n};\n\nexport default connect(\n mapStateToProps,\n {\n initialNotifications,\n enqueueNotification,\n displayedNotification,\n closeNotification,\n removeNotification,\n },\n)(NotificationsStack);","import React from 'react';\nimport { Layout } from 'react-admin';\nimport AppBar from './AppBar';\nimport { SnackbarProvider } from 'notistack';\nimport NotificationsStack from \"../Notifications/NotificationsStack\";\n\n\n\nexport const MyLayout = props => {\n return (\n <SnackbarProvider \n maxSnack={5}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n >\n <NotificationsStack />\n {/* <NotificationsDrawer /> */}\n <Layout {...props} appBar={AppBar} />\n </SnackbarProvider>\n\n ); \n};\n\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nexport default (args) => {\n return apolloCoreClient.mutate({\n mutation: gql`\n mutation createOrderForGuest($regionId: String!, $districtIdOrCityId: String!, $districtId: String, $cityId: String, $addrManual: String, $name: String!, $phone: String!) {\n createOrderForGuest(regionId: $regionId, districtIdOrCityId: $districtIdOrCityId, districtId: $districtId, cityId: $cityId, addrManual: $addrManual, name: $name, phone: $phone) {\n id\n humanId\n customer{\n name\n phone\n }\n addrManual\n }\n }\n `,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n });\n}","import React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Slide from '@material-ui/core/Slide';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport PhotoIcon from '@material-ui/icons/PhotoCamera';\nimport Typography from '@material-ui/core/Typography';\nimport Rocket from '../../files/Rocket.svg';\nimport { withStyles } from '@material-ui/core/styles';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\n\n\n\nconst styles = theme => ({\n paper: {\n borderRadius: 10\n },\n captionIcon: {\n color: theme.palette.text.hint,\n marginRight: \"0.5em\"\n },\n py0: {\n paddingTop: 0,\n paddingBottom: 0\n },\n dialogTitle: {\n paddingTop: 0,\n },\n rowField: {\n display: \"flex\",\n alignItems: \"baseline\",\n marginTop: \"1em\"\n },\n rowTitle: {\n width: \"30%\",\n marginRight: \"1em\"\n },\n rowContent: {\n fontWeight: \"bold\"\n },\n alignCenter: {\n textAlign: \"center\"\n },\n media: {\n height: 140,\n backgroundSize: \"unset\",\n },\n mtAuto: {\n marginTop: \"auto\"\n },\n captionContent: {\n display: \"flex\",\n alignItems: \"center\"\n },\n});\n\n\nconst Transition = React.forwardRef(function Transition(props, ref) {\n return <Slide direction=\"up\" ref={ref} {...props} />;\n});\n\nconst CreateOrderDialog = ({record, open, onClose, classes}) => {\n if (!record) return null;\n return (\n <div>\n <Dialog\n open={open}\n TransitionComponent={Transition}\n keepMounted\n disableBackdropClick\n disableEscapeKeyDown\n onClose={onClose}\n classes={{paper:classes.paper}}\n >\n <CardMedia\n className={classes.media}\n image={Rocket}\n title=\"Заявка создана!\"\n />\n <DialogTitle className={`${classes.dialogTitle} ${classes.alignCenter}`}>{\"Заявка создана!\"}</DialogTitle>\n <DialogContent >\n <DialogContentText className={`${classes.alignCenter}`}>Заявка на проведение поверки успешно создана. Для подтверждения заявки с Вами скоро свяжется Диспетчер.</DialogContentText>\n </DialogContent>\n <DialogContent>\n <Typography variant=\"display1\" color=\"textPrimary\" gutterBottom className={`${classes.rowContent} ${classes.alignCenter}`}>{record.humanId}</Typography>\n <DialogContentText color=\"textPrimary\" className={`${classes.alignCenter}`}>{`Заказчик: ${record.customer.name}. Телефон: ${parsePhoneNumberFromString(record.customer.phone, 'RU').formatNational()}. Населенный пункт: ${record.addrManual}.`}</DialogContentText>\n </DialogContent>\n <DialogContent className={`${classes.captionContent}`}>\n <PhotoIcon className={`${classes.captionIcon}`}/>\n <Typography color=\"textSecondary\" >Рекомендуем сфотографировать эту информацию, она может понадобиться Вам в дальнейшем.</Typography>\n </DialogContent>\n <DialogActions style={{justifyContent: \"space-between\"}}>\n <Typography variant=\"caption\" style={{marginLeft: \"2em\"}}>Телефон для справок: 8 (800) 888-88-88</Typography>\n <Button onClick={onClose} color=\"primary\">\n Понятно\n </Button>\n </DialogActions>\n </Dialog>\n </div>\n );\n}\n\n\n\nexport default withStyles(styles)(CreateOrderDialog)","import React, { Fragment, useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { change } from 'redux-form';\nimport gql from 'graphql-tag'\nimport apolloFiasClient from '../../dataProviders/Fias/apolloFiasClient';\nimport { AutocompleteInput, TextInput, } from 'react-admin';\nimport { AddressSuggestionComponent } from '../Order/AddressComponents'\n\n\n\nconst AutocompleteCityInput = ({ classes, form, change, ...props }) => {\n const [choices, setChoices] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [selectedItem, setSelectedItem] = useState(null);\n const [helperText, setHelperText] = useState(`Например: \"Краснодар\"`);\n\n useEffect(() => {\n async function fetchData() {\n try {\n const { data: { items, total } } = await apolloFiasClient.query({\n query: gql`\n query allLocations($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: LocationFilter) {\n items: allLocations(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n name\n level\n unrestrictedName\n typeShort\n typeMame\n parentId\n regionId\n districtIdOrCityId\n streetId\n parents {\n id\n level\n parentId\n name\n typeShort\n }\n }\n total: _allLocationsMeta(page: $page, perPage: $perPage, filter: $filter) {\n count\n }\n }\n `,\n variables: {\n filter: { type: 'CITY', q: filter },\n sortField: 'level',\n sortOrder: 'ASC',\n perPage: 300,\n },\n onError: (error) => {\n alert(error)\n }\n });\n\n setChoices(items);\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n return () => {\n setChoices([]);\n };\n\n }, [filter])\n\n const handleChange = (e, value, prev, prop) => {\n const choice = choices.find(choice => choice.id === value)\n change(form, 'regionId', choice.regionId);\n change(form, 'districtId', choice.districtIdOrCityId);\n change(form, 'districtIdOrCityId', choice.districtIdOrCityId);\n change(form, 'addrManual', choice.unrestrictedName);\n setHelperText(choice.unrestrictedName.replace(`, ${choice.typeShort} ${choice.name}`, ''));\n setSelectedItem(choice);\n };\n\n return (\n <Fragment>\n <AutocompleteInput\n choices={selectedItem ? [selectedItem, ...choices] : choices}\n optionText={choice => (`${choice.typeShort} ${choice.name}`)}\n onChange={handleChange}\n suggestionComponent={AddressSuggestionComponent}\n shouldRenderSuggestions={(val) => { return val.trim().length > 2 }}\n options={{ fullWidth: true, helperText: helperText }}\n setFilter={setFilter}\n {...props}\n />\n <TextInput source=\"addrManual\" style={{ display: 'none' }} />\n <TextInput source=\"regionId\" style={{ display: 'none' }} />\n <TextInput source=\"districtIdOrCityId\" style={{ display: 'none' }} />\n <TextInput source=\"districtId\" style={{ display: 'none' }} />\n </Fragment>\n );\n};\n\n\n\nconst mapDispatchToProps = {\n change,\n}\n\n\n\nexport default connect(null, mapDispatchToProps)(AutocompleteCityInput);","import React from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { AUTH_TOKEN } from '../../appsettings'\nimport { submit, reset, isSubmitting } from 'redux-form';\nimport ReactCardFlip from 'react-card-flip';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport IconButton from '@material-ui/core/IconButton';\nimport BackIcon from '@material-ui/icons/ArrowBack';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Typography from '@material-ui/core/Typography';\nimport green from '@material-ui/core/colors/green';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate, SimpleForm, TextInput, required, } from 'react-admin';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport CreateOrderImage from '../../files/CreateOrderImage.svg';\nimport getTokenForGuest from '../../dataProviders/Auth/getTokenForGuest';\nimport createOrderForGuest from '../../dataProviders/Core/createOrderForGuest';\nimport OrderCreateDialog from './OrderCreateDialog';\nimport AutocompleteCityInput from './AutocompleteCityInput';\n\n\nconst styles = theme => ({\n flipContainer: {\n margin: \"1em\",\n },\n card: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n width: 300,\n boxShadow: theme.shadows[8],\n borderRadius: theme.shape.borderRadius * 2,\n position: \"relative\",\n },\n py0: {\n paddingTop: 0,\n paddingBottom: 0\n },\n media: {\n height: 140,\n backgroundSize: \"unset\",\n },\n titleContent: {\n maxWidth: 256,\n textAlign: \"center\",\n },\n createButton: {\n color: theme.palette.getContrastText(green[\"700\"]),\n backgroundColor: green[\"500\"],\n '&:hover': {\n backgroundColor: green[\"700\"],\n },\n },\n mtAuto: {\n marginTop: \"auto\"\n },\n backButton: {\n color: theme.palette.text.hint,\n position: \"absolute\",\n top: 8,\n left: 8,\n },\n});\n\n\n\nconst OrderCreateCard = withStyles(styles)(({ classes, className, isLoading, translate, submit, reset, ...props }) => {\n const [isFlipped, setFlipped] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [order, setOrder] = React.useState(null);\n\n const handleFlip = (e) => {\n e.preventDefault();\n setFlipped(true);\n }\n\n const handleClose = (e) => {\n e.preventDefault();\n setFlipped(false);\n }\n\n const handleSubmit = async (values) => {\n\n const { data: { guest: { token } } } = await getTokenForGuest();\n localStorage.setItem(AUTH_TOKEN, token);\n\n const order = await createOrderForGuest(values);\n reset('order-quick-create');\n setOrder(order.data.createOrderForGuest);\n setOpen(true);\n }\n\n const handleCreate = (e) => {\n submit('order-quick-create');\n };\n\n const handleCloseDialog = (e) => {\n setOpen(false);\n };\n\n return (\n <ReactCardFlip isFlipped={isFlipped} containerStyle={{ margin: \"1em\" }} >\n <Card className={classes.card} key=\"front\">\n <CardMedia className={classes.media} image={CreateOrderImage} title=\"Создание заявки\" />\n <CardContent className={classes.titleContent}>\n <Typography gutterBottom variant=\"headline\">Заявка онлайн</Typography>\n <Typography variant=\"body1\" color=\"textSecondary\">Отличная новость для наших заказчиков! Теперь Вы можете оформить заявку онлайн. Заполните несколько полей и наш диспетчер свяжется с Вами.</Typography>\n </CardContent>\n <CardContent className={classes.mtAuto}>\n <Button fullWidth variant='contained' className={classes.createButton} onClick={handleFlip}>Заполнить поля</Button>\n </CardContent>\n </Card>\n\n <Card className={classes.card} key=\"back\">\n <IconButton className={classes.backButton} onClick={handleClose}><BackIcon /></IconButton>\n <SimpleForm form=\"order-quick-create\" resource=\"User\" onSubmit={handleSubmit} toolbar={null} redirect={false} style={{ marginTop: 24 }}>\n <AutocompleteCityInput form=\"order-quick-create\" fullWidth source=\"cityId\" label={translate('resources.Order.fields.cityId')} validate={required()} disabled={isLoading} />\n <TextInput fullWidth source=\"name\" label={translate('resources.User.fields.name')} validate={required()} disabled={isLoading} />\n <PhoneInput fullWidth source=\"phone\" label={translate('resources.User.fields.phone')} disabled={isLoading} />\n </SimpleForm>\n <CardContent className={classes.mtAuto}>\n <Button\n fullWidth\n variant=\"raised\"\n type=\"submit\"\n onClick={handleCreate}\n disabled={isLoading}\n className={classes.createButton}\n >\n {isLoading && <CircularProgress className={classes.icon} size={18} thickness={2} />}\n Создать заявку\n </Button>\n <OrderCreateDialog record={order} open={open} onClose={handleCloseDialog} />\n </CardContent>\n </Card>\n </ReactCardFlip>\n );\n});\n\n\n\nconst mapStateToProps = state => {\n return ({ isLoading: state.admin.loading > 0 });\n}\n\n\n\nconst mapDispatchToProps = {\n submit,\n reset,\n};\n\nconst enhance = compose(\n withStyles(styles),\n translate,\n connect(mapStateToProps, mapDispatchToProps),\n // reduxForm({\n // form: 'order-quick-create',\n // validate: (values, props) => {\n // const errors = {};\n // const { translate } = props;\n // if (!values.login)\n // errors.login = translate('ra.validation.required');\n // if (!values.password)\n // errors.password = translate('ra.validation.required');\n // return errors;\n // },\n // })\n);\n\nexport default enhance(OrderCreateCard);\n","import gql from 'graphql-tag'\nimport { apolloAuthClient } from './graphqlProvider';\n\nexport default () => {\n return apolloAuthClient.mutate({\n mutation: gql`\n mutation getTokenForGuest {\n guest {\n token\n }\n }\n `,\n onError: (error) => {\n alert(error)\n }\n });\n}\n","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\n\nimport LoginCardImage from '../../files/LoginCardImage.svg';\nimport green from '@material-ui/core/colors/green';\nimport { withStyles } from '@material-ui/core/styles';\n\n\n\nconst styles = theme => ({\n media: {\n height: 140,\n backgroundSize: \"unset\",\n },\n titleContent: {\n maxWidth: 256,\n textAlign: \"center\",\n },\n createButton: {\n color: theme.palette.getContrastText(green[\"700\"]),\n backgroundColor: green[\"500\"],\n '&:hover': {\n backgroundColor: green[\"700\"],\n },\n },\n mtAuto: { marginTop:\"auto\" },\n \n});\n\nconst LoginCard = withStyles(styles)(({classes, className, loginForm, ...props}) => {\n\n return (\n <Card className={className}>\n <CardMedia\n className={classes.media}\n image={LoginCardImage}\n title=\"Вход на портал\"\n />\n <CardContent className={classes.titleContent}>\n <Typography variant=\"headline\">\n Вход на портал\n </Typography>\n </CardContent>\n {loginForm}\n </Card>\n );\n});\n\nexport default LoginCard;\n\n\n{/* <Card className={classes.card}>\n <div className={classes.avatar}>\n <Avatar className={classes.icon}>\n <LockIcon />\n </Avatar>\n </div>\n {loginForm}\n </Card> */}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport Avatar from '@material-ui/core/Avatar';\nimport {\n MuiThemeProvider,\n createMuiTheme,\n withStyles,\n createStyles,\n} from '@material-ui/core/styles';\nimport LockIcon from '@material-ui/icons/Lock';\n\nimport OrderCreateCard from './OrderCreateCard';\nimport LoginCard from './LoginCard';\n\n\nimport { \n Notification,\n defaultTheme,\n LoginForm\n} from 'react-admin';\n\n\nconst styles = theme => createStyles({\n main: {\n display: 'flex',\n justifyContent: \"center\",\n alignItems: \"start\",\n minHeight: '100vh',\n height: '1px',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'right',\n backgroundColor: '#2196f3',\n },\n cardWrapper: {\n display: 'flex',\n marginTop: '6em',\n \n },\n card: {\n display: \"flex\",\n flexDirection: \"column\",\n width: 300,\n margin: '1em',\n boxShadow: theme.shadows[8],\n borderRadius: theme.shape.borderRadius*2 ,\n },\n avatar: {\n margin: '1em',\n display: 'flex',\n justifyContent: 'center',\n },\n icon: {\n backgroundColor: theme.palette.secondary[500],\n },\n media: {\n height: 0,\n paddingTop: '56.25%', // 16:9\n },\n});\n\nconst sanitizeRestProps = ({\n array,\n backgroundImage,\n classes,\n className,\n location,\n staticContext,\n theme,\n title,\n ...rest\n}) => rest;\n\nconst Login = ({ classes, className, loginForm, theme, backgroundImage, ...props }) => {\n\n return (\n <MuiThemeProvider theme={createMuiTheme(theme)}>\n <div className={classnames(classes.main, className)} style={{ backgroundImage: `url(${backgroundImage})` }} {...sanitizeRestProps(props)} >\n <div className={`${classes.cardWrapper}`}>\n <OrderCreateCard />\n <LoginCard loginForm={loginForm} className={classes.card} />\n </div>\n <Notification />\n </div>\n </MuiThemeProvider>);\n}\n\n\n\nLogin.propTypes = {\n authProvider: PropTypes.func,\n backgroundImage: PropTypes.string,\n classes: PropTypes.object,\n className: PropTypes.string,\n input: PropTypes.object,\n loginForm: PropTypes.element,\n meta: PropTypes.object,\n previousRoute: PropTypes.string,\n};\n\nLogin.defaultProps = {\n theme: defaultTheme,\n loginForm: <LoginForm />,\n};\n\nexport default withStyles(styles)(Login);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Field, propTypes, reduxForm } from 'redux-form';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardActions from '@material-ui/core/CardActions';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate, userLogin } from 'ra-core';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\n\nconst styles = (theme) => ({\n input: {\n marginTop: '1em',\n },\n icon: {\n height: 20,\n width: 20,\n marginRight: theme.spacing.unit,\n },\n py0: { paddingTop:0, paddingBottom:0}\n});\n\n// see http://redux-form.com/6.4.3/examples/material-ui/\nconst renderInput = ({\n meta: { touched, error } = {}, // eslint-disable-line react/prop-types\n input: { ...inputProps }, // eslint-disable-line react/prop-types\n ...props\n}) => (\n <TextField\n error={!!(touched && error)}\n helperText={touched && error}\n {...inputProps}\n {...props}\n fullWidth\n />\n);\n\nconst login = (auth, dispatch, { redirectTo }) => dispatch(userLogin(auth, redirectTo));\n\n\n\nconst LoginForm = ({ classes, isLoading, handleSubmit, translate }) => (\n <form onSubmit={handleSubmit(login)}>\n <CardContent className={classes.py0}>\n <div className={classes.input}>\n <Field\n autoFocus\n id=\"login\"\n name=\"login\"\n component={renderInput}\n label={translate('raExt.auth.phoneOrEmail')}\n disabled={isLoading}\n />\n </div>\n <div className={classes.input}>\n <Field\n id=\"password\"\n name=\"password\"\n component={renderInput}\n label={translate('ra.auth.password')}\n type=\"password\"\n disabled={isLoading}\n autocomplete=\"current-password\"\n />\n </div>\n </CardContent>\n <CardContent>\n <Button\n fullWidth\n variant=\"raised\"\n type=\"submit\"\n color=\"secondary\"\n disabled={isLoading}\n className={classes.button}\n >\n {isLoading && <CircularProgress className={classes.icon} size={18} thickness={2} />}\n {translate('ra.auth.sign_in')}\n </Button>\n </CardContent>\n </form>\n);\n\nLoginForm.propTypes = {\n ...propTypes,\n classes: PropTypes.object,\n redirectTo: PropTypes.string,\n};\n\nconst mapStateToProps = state => ({ isLoading: state.admin.loading > 0 });\n\nconst enhance = compose(\n withStyles(styles),\n translate,\n connect(mapStateToProps),\n reduxForm({\n form: 'signIn',\n validate: (values, props) => {\n const errors = {};\n const { translate } = props;\n if (!values.login)\n errors.login = translate('ra.validation.required');\n if (!values.password)\n errors.password = translate('ra.validation.required');\n return errors;\n },\n })\n);\n\nexport default enhance(LoginForm);\n","import React from 'react';\n//import { Login } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport bgImage from '../../files/LoginPageImage.svg';\nimport Login from './Login';\nimport LoginForm from './LoginForm';\n\nconst styles = () => ({\n \n});\n\n\nexport default withStyles(styles)(({classes}) => <Login backgroundImage={bgImage} loginForm={<LoginForm />} />);","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = theme => ({\n root:{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n },\n});\n\nconst WidgetGroup = withStyles(styles)(({ classes, title, children, ...props }) => {\n\n if (!children || children.length === 0) return null;\n\n return (\n <div className={classes.root}>\n { (!!title) && <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom noWrap>{title}</Typography> }\n {children}\n </div>\n )\n\n});\n\n\nexport default WidgetGroup;","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Paper from '@material-ui/core/Paper';\nimport CardContent from '@material-ui/core/CardContent';\n\nconst styles = theme => ({\n root: {\n boxShadow: \"0px 3px 5px -1px rgba(0, 0, 0, 0.06), 0px 6px 10px 0px rgba(0, 0, 0, 0.042), 0px 1px 18px 0px rgba(0, 0, 0, 0.036)\",\n borderRadius: 8,\n flexGrow: 1,\n display: \"flex\",\n position: \"relative\",\n boxSizing: \"border-box\",\n },\n content: {\n flexGrow: 1,\n display: \"flex\",\n flexDirection: \"column\",\n },\n});\n\nconst WidgetCard = ({className, classes, title, subtitle, children, ...props}) => {\n\n\n const renderSubtitle = subtitle => {\n return (typeof subtitle === \"string\")\n ? <Typography variant=\"body2\" color=\"textSecondary\">{subtitle}</Typography>\n : React.cloneElement(subtitle);\n }\n \n\n return (\n <Paper className={`${classes.root} ${className}`} >\n <CardContent className={`${classes.content}`}>\n {title && <Typography variant=\"headline\" >{title}</Typography>}\n {subtitle && renderSubtitle(subtitle)}\n {children}\n </CardContent>\n </Paper> \n );\n};\n\n\nexport default withStyles(styles)((WidgetCard));","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { Link } from 'react-router-dom';\nimport Button from '@material-ui/core/Button';\n\nimport WidgetCard from \"./WidgetCard\";\n// import NewYearBG from \"../../files/NewYearBG.svg\";\nimport NewYearImage from \"../../files/NewYearImage.png\";\n\nconst styles = theme => ({\n banner: {\n backgroundImage: `url('${NewYearImage}')`,\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"bottom 0px right 3em\",\n height: 192,\n\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"baseline\",\n flexGrow: 1,\n zIndex: 1,\n },\n title: {\n fontWeight: 500,\n },\n text: {\n maxWidth: 640,\n },\n button: {\n marginTop: \"auto\",\n },\n});\n\nconst WidgetBanner = withStyles(styles)(({ classes, ...props }) => {\n\n\n const stopPropagation = e => e.stopPropagation();\n\n return (\n <WidgetCard className={classes.banner}>\n\n {/* <img src={NewYearBG} alt=\"lorem\" className={classes.bg}/> */}\n {/* <img src={NewYearImage} alt=\"lorem\" className={classes.image} /> */}\n <div className={classes.content}>\n <Typography variant=\"headline\" color=\"primary\" gutterBottom className={classes.title}>Добро пожаловать на портал!</Typography>\n <Typography variant=\"subheading\" color=\"inherit\" className={classes.text}>Команда АКСИТЕХ поздравляет всех пользователей портала с наступающим Новым годом и Рождеством!</Typography>\n <Button\n className={classes.button}\n component={Link}\n to=\"/Order/create\"\n onClick={stopPropagation}\n variant=\"outlined\"\n color=\"primary\"\n\n >\n Создать новогоднюю заявку\n </Button>\n\n </div>\n </WidgetCard>\n\n )\n\n});\n\n\nexport default WidgetBanner;\n\n\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nconst styles = theme => ({\n root:{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100%\",\n },\n});\n\nconst Loading = ({ classes, ...props }) => {\n\n return (\n <div className={classes.root} >\n <CircularProgress color=\"secondary\" />\n </div>\n )\n\n};\n\n\nexport default withStyles(styles)(Loading);\n\n\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nconst GET_ANALYTICS_BETWEEN_DATES = gql`\n query getAnalytics($from: DateTime, $to: DateTime) {\n OrdersAnalytics(from: $from, to: $to)\n }\n`\n\nexport default (args) => {\n return apolloCoreClient.query({\n query: GET_ANALYTICS_BETWEEN_DATES,\n variables: { ...args },\n //fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};","import React, { useState, useEffect } from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Chip from '@material-ui/core/Chip';\nimport Chart from \"react-apexcharts\";\nimport ru from \"apexcharts/dist/locales/ru.json\";\nimport moment from 'moment'\nimport 'moment/locale/ru';\nimport { groupBy, uniq } from 'lodash';\n\nimport WidgetCard from \"./WidgetCard\";\nimport Loading from \"./Loading\";\n\n\nimport getOrderAnalytics from \"../../dataProviders/Core/getOrderAnalytics\";\n\n\nconst styles = theme => ({\n root: {\n flexGrow: 1,\n minWidth: 480,\n minHeight: 408,\n },\n container: {\n flexGrow: 1,\n marginTop: theme.spacing.unit * -3\n },\n chip: {\n marginLeft: 8,\n zIndex: 1060,\n backgroundColor: \"transparent\",\n height: 24,\n opacity: 0.85,\n },\n chipActive: {\n backgroundColor: theme.palette.action.selected,\n opacity: 1,\n },\n});\n\nconst DurationChips = ({ monthsDuration, setMonthsDuration, classes, className, ...props }) => {\n\n const [value, setValue] = useState(monthsDuration);\n\n const handleChange = param => e => {\n setValue(param)\n setMonthsDuration(param);\n };\n\n return (\n <div>\n <Chip onClick={handleChange(6)} label=\"6 месяцев\" classes={{ root: classes.chip }} className={(value === 6) ? classes.chipActive : \"\"} />\n <Chip onClick={handleChange(9)} label=\"9 месяцев\" classes={{ root: classes.chip }} className={(value === 9) ? classes.chipActive : \"\"} />\n <Chip onClick={handleChange(12)} label=\"12 месяцев\" classes={{ root: classes.chip }} className={(value === 12) ? classes.chipActive : \"\"} />\n </div>\n );\n};\n\n\n\nconst WidgetAnalitics = withStyles(styles)(({ classes, className, ...props }) => {\n\n const [options, setOptions] = useState({});\n const [series, setSeries] = useState([]);\n const [loading, setLoading] = useState(true);\n const [monthsDuration, setMonthsDuration] = useState(9);\n\n useEffect(() => {\n\n async function fetchData() {\n\n const to = moment().endOf('month');\n const from = moment().subtract(monthsDuration, 'months').endOf('month');\n\n getOrderAnalytics({ from, to }).then(({ data: { OrdersAnalytics: { createdOrders = [], completedOrders = [], deadlinedOrders = [] } } }) => {\n\n const createdByMonths = groupBy(createdOrders, order => moment(order.createdAt).startOf('month'));\n const completedByMonths = groupBy(completedOrders, order => moment(order.completedAt).startOf('month'));\n const deadlinedByMonths = groupBy(deadlinedOrders, order => moment(order.completedDeadlineAt).startOf('month'));\n const monthsArray = uniq([...Object.keys(createdByMonths), ...Object.keys(completedByMonths), ...Object.keys(deadlinedByMonths)]);\n\n const options = {\n chart: {\n toolbar: {\n show: false\n },\n zoom: {\n enabled: false,\n },\n parentHeightOffset: 0,\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n locales: [ru],\n defaultLocale: 'ru',\n },\n plotOptions: {\n bar: {\n columnWidth: '64%',\n endingShape: 'rounded'\n },\n },\n dataLabels: {\n enabled: false\n },\n stroke: {\n show: true,\n width: 2,\n colors: ['transparent']\n },\n xaxis: {\n type: \"datetime\",\n axisBorder: {\n show: false,\n },\n axisTicks: {\n show: false,\n\n },\n labels: {\n format: 'MMMM',\n showDuplicates: false,\n },\n },\n fill: {\n opacity: 1\n },\n tooltip: {\n x: {\n format: 'MMMM yyyy',\n },\n },\n legend: {\n position: 'top',\n horizontalAlign: 'right',\n offsetY: -5,\n }\n };\n\n const series = [{\n name: 'Создано',\n data: monthsArray.map(month => [month, createdByMonths[month] ? createdByMonths[month].length : 0])\n }, {\n name: 'Завершено',\n data: monthsArray.map(month => [month, completedByMonths[month] ? completedByMonths[month].length : 0])\n }, {\n name: 'Просрочено',\n data: monthsArray.map(month => [month, deadlinedByMonths[month] ? deadlinedByMonths[month].length : 0])\n }];\n\n setOptions(options);\n setSeries(series);\n setLoading(false);\n });\n };\n\n\n fetchData();\n\n\n return () => {\n // initialNotifications([])\n };\n\n }, [monthsDuration]);\n\n\n\n\n return (\n <WidgetCard title=\"Заявки\" subtitle={`последние ${monthsDuration} месяцев`} className={`${classes.root} ${className}`} >\n {/* <WidgetCard title=\"Заявки\" subtitle={<DurationChips classes={classes} monthsDuration={monthsDuration} setMonthsDuration={setMonthsDuration} />} className={`${classes.root} ${className}`} > */}\n {(loading)\n ? <Loading />\n : <div className={classes.container} >\n <Chart options={options} series={series} type=\"bar\" height=\"100%\" />\n </div>\n\n }\n\n </WidgetCard>\n\n )\n\n});\n\n\nexport default WidgetAnalitics;\n\n\n","import React, { useState, useEffect } from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport FavoriteIcon from '@material-ui/icons/Star';\nimport Loading from \"./Loading\";\nimport { Scrollbars } from 'react-custom-scrollbars';\nimport { withDataProvider, GET_LIST, showNotification } from 'react-admin';\nimport InfoBanner from '../Layout/InfoBanner';\nimport StarBorderIcon from '@material-ui/icons/StarBorder';\n\nconst styles = theme => ({\n root:{\n flexGrow: 1,\n minWidth: 480,\n minHeight: 408,\n overflow: \"hidden\", \n },\n list: {\n \n },\n favoriteIcon: {\n color: theme.palette.secondary.main,\n },\n});\n\nconst WidgetAnalitics = withStyles(styles)(({ dataProvider, dispatch, classes, className, ...props }) => {\n\n const [orders, setOrders] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n dataProvider( GET_LIST, \"Order\", {\n pagination: {page: 1, perPage: 10},\n sort:{field: 'updatedAt', order: 'DESC'},\n filter: {\n tab: \"favorite\",\n },\n }).then(async ({data, total}) => {\n setOrders(data);\n setLoading(false);\n })\n .catch((e) => {\n dispatch(showNotification(e.message, 'warning'));\n });\n\n return () => {\n setOrders([]);\n };\n\n },[]);\n\n return (\n <Paper className={`${classes.root} ${className}`} >\n {(loading)\n ? <Loading />\n : (!orders.length) \n ? <InfoBanner\n title=\"Заявок нет\"\n subtitle=\"Добавьте заявки в Избранное и они появятся тут\"\n >\n <StarBorderIcon color=\"disabled\" style={{fontSize:48}}/>\n </InfoBanner>\n : (<Scrollbars autoHide>\n <List >\n {orders.map(order => (\n <ListItem key={order.id} button component=\"a\" href={`#/Order/${order.id}/show`}>\n <ListItemIcon>\n <FavoriteIcon className={classes.favoriteIcon}/>\n </ListItemIcon>\n <ListItemText primary={order.addrManual} primaryTypographyProps={{variant: \"body1\"}} /*secondary={order.humanId}*/ />\n </ListItem>\n ))}\n </List>\n </Scrollbars>)\n }\n </Paper>\n );\n\n});\n\n\nexport default withDataProvider(WidgetAnalitics);\n\n\n","import React from 'react';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport { Title, translate } from 'react-admin';\nimport WidgetGroup from './WidgetGroup';\n//import WidgetBanner from './WidgetBanner';\nimport WidgetNewYearBanner from './WidgetNewYearBanner';\nimport WidgetAnalytics from './WidgetAnalytics';\nimport WidgetFavorites from './WidgetFavorites';\n//import WidgetBest from './WidgetBestVerifier';\n\n\n\nconst styles = theme => ({\n paper: {\n color: theme.palette.text.secondary,\n boxSizing: \"border-box\",\n boxShadow: \"0px 3px 5px -1px rgba(0, 0, 0, 0.06), 0px 6px 10px 0px rgba(0, 0, 0, 0.042), 0px 1px 18px 0px rgba(0, 0, 0, 0.036)\",\n borderRadius: 8,\n },\n});\n\nconst Dashboard = ({ classes, ...props }) => (\n <div>\n <Title title=\"Поверка\" />\n {/* <Grid container spacing={24}>\n <Grid item xs={12}>\n <WidgetNewYearBanner />\n </Grid>\n </Grid> */}\n <Grid container spacing={24}>\n {/* <Grid item xs={12} md=\"auto\">\n <WidgetGroup title=\"Сегодня\">\n <Grid container spacing={24} direction=\"column\">\n <Grid item>\n <Grid container spacing={24}>\n <Grid item>\n <WidgetBest className={classes.paper} />\n </Grid>\n <Grid item>\n <WidgetBest className={classes.paper} />\n </Grid>\n </Grid>\n </Grid>\n <Grid item>\n <Grid container spacing={24}>\n <Grid item>\n <WidgetBest className={classes.paper} />\n </Grid>\n <Grid item>\n <WidgetBest className={classes.paper} />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </WidgetGroup> \n </Grid> */}\n <Grid item xs={12} md lg={6} xl={8}>\n <WidgetGroup title=\"Аналитика\">\n <WidgetAnalytics />\n </WidgetGroup>\n </Grid>\n <Grid item xs={12} md lg={6} xl={4}>\n <WidgetGroup title=\"Избранные\">\n <WidgetFavorites className={classes.paper} />\n </WidgetGroup>\n </Grid>\n </Grid>\n </div>\n);\n\nconst enhance = compose(\n withStyles(styles),\n translate,\n)\n\n\n\nexport default enhance(Dashboard);","\nimport { unparse as convertToCSV } from 'papaparse/papaparse';\nimport get from 'lodash/get';\nimport moment from 'moment'\n\nconst downloadCSV = (csv, fileName) => {\n const fakeLink = document.createElement('a');\n fakeLink.style.display = 'none';\n document.body.appendChild(fakeLink);\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8' });\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n // Manage IE11+ & Edge\n window.navigator.msSaveOrOpenBlob(blob, `${fileName}.csv`);\n } else {\n fakeLink.setAttribute('href', URL.createObjectURL(blob));\n fakeLink.setAttribute('download', `${fileName}.csv`);\n fakeLink.click();\n }\n};\n\nexport const exporter = (dataraws, resource, fields, translate, filterValues) => {\n\n const filterHeader = {}\n const filterValue = {}\n const dataHeader = {};\n\n if (!!filterValues && Object.keys(filterValues).length > 0) {\n Object.keys(filterValues).map(filter => {\n filterHeader[filter] = translate(`resources.${resource}.fields.${filter}`);\n filterValue[filter] = moment(filterValues[filter]).isValid() ? moment(filterValues[filter]).format(\"L\") : filterValues[filter];\n });\n };\n\n\n if (!!fields) {\n fields.map(field => {\n if (typeof field === 'object') {\n dataHeader[field.field] = translate(`resources.${resource}.fields.${field.field}`);\n } else {\n dataHeader[field] = translate(`resources.${resource}.fields.${field}`);\n };\n });\n };\n\n\n let dataArr = dataraws.map(row => {\n if (!fields) return row;\n let item = {};\n fields.map(field => {\n if (typeof field === 'object') {\n let key = field.field;\n let value = get(row, key, null);\n if (!!field.format && value) value = moment(value).format(field.format);\n if (!!field.translateValues) value = (value === null || value === '') ? null : translate(`${field.translateValues}.${value}`);\n item[key] = value;\n\n } else {\n item[field] = get(row, field, null);\n };\n\n });\n return item;\n });\n\n dataArr = (!fields) ? dataArr : [dataHeader, ...dataArr];\n\n\n const BOM = \"\\uFEFF\"\n const filters = (!!filterValues && Object.keys(filterValues).length > 0) ? BOM + convertToCSV([filterHeader, filterValue], {\n delimiter: \";\",\n encoding: \"UTF-8\",\n header: false,\n }) + \"\\r\\n\" : \"\";\n\n const data = BOM + convertToCSV(dataArr, {\n delimiter: \";\",\n encoding: \"UTF-8\",\n header: false,\n });\n\n const csv = `${filters}${data}`;\n\n downloadCSV(csv, translate(`resources.${resource}.name`, { smart_count: 2 })); // download as 'posts.csv` file\n}","import React, { Children, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = theme => ({\n root: {\n display: \"flex\",\n '& > *': {\n marginRight: \"0.5rem\"\n },\n '& > *:last-child': {\n marginRight: 0\n },\n },\n});\n\n\nconst LabelsField = withStyles(styles)(({ classes, className, children, ...props }) => {\n return (\n <div className={classes.root}>\n { Children.map(children, field =>\n field && isValidElement(field)\n ? React.cloneElement(field, {...props})\n : null\n )}\n </div>\n )\n});\n\n\nLabelsField.propTypes = {\n addLabel: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n children: PropTypes.node.isRequired,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n resource: PropTypes.string,\n source: PropTypes.string,\n};\n\n\nLabelsField.defaultProps = {\n addLabel: true,\n};\n\nexport default LabelsField;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction SkullIcon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M12,2A9,9 0 0,0 3,11C3,14.03 4.53,16.82 7,18.47V22H9V19H11V22H13V19H15V22H17V18.46C19.47,16.81 21,14 21,11A9,9 0 0,0 12,2M8,11A2,2 0 0,1 10,13A2,2 0 0,1 8,15A2,2 0 0,1 6,13A2,2 0 0,1 8,11M16,11A2,2 0 0,1 18,13A2,2 0 0,1 16,15A2,2 0 0,1 14,13A2,2 0 0,1 16,11M12,14L13.5,17H10.5L12,14Z\" />\n </SvgIcon>\n );\n}\n\nexport default SkullIcon;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport OrderAttachedIcon from '@material-ui/icons/AttachFile';\nimport DeadlineIcon from '../Icons/Skull';\n\nconst styles = theme => ({\n nowrap: {\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n },\n});\n\nconst FileAttachedField = ({ className, classes, record, translate, ...props }) => {\n if (!record) return null;\n\n return (record.files && record.files.length > 0)\n ? (\n <Tooltip title={translate(\"resources.Order.helper.filesAttached\")} placement=\"top\">\n <Typography variant=\"body1\" color=\"textSecondary\" noWrap >\n <OrderAttachedIcon />\n </Typography>\n </Tooltip> \n )\n : null;\n} \n\n\nFileAttachedField.propTypes = {\n addLabel: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n resource: PropTypes.string,\n source: PropTypes.string,\n};\n\n\nFileAttachedField.defaultProps = {\n classes: {},\n record: {},\n addLabel: true,\n};\n\nexport default compose(\n translate,\n withStyles(styles)\n)(FileAttachedField);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport DeadlineOnIcon from '@material-ui/icons/Timer';\nimport DeadlineOffIcon from '@material-ui/icons/TimerOff';\nimport amber from '@material-ui/core/colors/amber';\nimport red from '@material-ui/core/colors/red';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport moment from 'moment'\nimport 'moment/locale/ru';\n\nconst getStatus = (completedAt, completedDeadlineAt) => {\n if (!!completedAt) {\n if ( moment(completedAt).endOf(\"day\").isSameOrBefore(moment(completedDeadlineAt).endOf(\"day\"))) return \"info\";\n if ( moment(completedAt).endOf(\"day\").isAfter(moment(completedDeadlineAt).endOf(\"day\"))) return \"alarm\"\n if ( moment(completedAt).endOf(\"day\").isAfter(moment(completedDeadlineAt).subtract(7, 'days').endOf(\"day\"))) return \"danger\"\n if ( moment(completedAt).endOf(\"day\").isAfter(moment(completedDeadlineAt).subtract(14, 'days').endOf(\"day\"))) return \"warning\"\n } else {\n if ( moment().endOf(\"day\").isAfter(moment(completedDeadlineAt).endOf(\"day\"))) return \"alarm\"\n if ( moment().endOf(\"day\").isAfter(moment(completedDeadlineAt).subtract(7, 'days').endOf(\"day\"))) return \"danger\"\n if ( moment().endOf(\"day\").isAfter(moment(completedDeadlineAt).subtract(14, 'days').endOf(\"day\"))) return \"warning\" \n }\n\n return \"info\";\n} \n\nconst getTitle = (status, completedDeadlineAt, translate) => {\n switch (status){\n case 'alarm':\n return `${translate('resources.Order.helper.isDeadlineAt')} ${moment(completedDeadlineAt).endOf(\"day\").fromNow()}`;\n break;\n case 'danger':\n case 'warning':\n return `${translate('resources.Order.fields.completedDeadlineAt')} ${moment(completedDeadlineAt).endOf(\"day\").fromNow()}`;\n break;\n default:\n return `${translate('resources.Order.fields.completedDeadlineAt')} ${moment(completedDeadlineAt).format('L')}`\n }\n} \n\nconst deadlineIconStyles = theme => ({\n info: { color: theme.palette.grey['300'] },\n warning: { color: amber['500'] },\n danger: { color: red['500'] },\n alarm: { color: theme.palette.text.primary },\n});\n\nconst DeadlineIconView = ({ className, classes, record, translate, ...props }) => {\n if (!record) return null;\n \n const status = getStatus(record.completedAt, record.completedDeadlineAt);\n const title = getTitle(status, record.completedDeadlineAt, translate );\n\n return (\n <Tooltip title={title} placement=\"top\">\n {(status === \"info\") ? <DeadlineOffIcon className={classes[status]}/> : <DeadlineOnIcon className={classes[status]}/>} \n </Tooltip> \n );\n} \n\nDeadlineIconView.propTypes = {\n addLabel: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n resource: PropTypes.string,\n source: PropTypes.string,\n};\n\nDeadlineIconView.defaultProps = {\n classes: {},\n record: {},\n addLabel: true,\n};\n\nexport const DeadlineIcon = compose(\n translate,\n withStyles(deadlineIconStyles)\n)(DeadlineIconView);\n\n\n\nconst deadlineChipStyles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n info: {\n backgroundColor: theme.palette.grey['300'],\n color: theme.palette.getContrastText(theme.palette.grey['300']),\n },\n warning: { \n backgroundColor: amber['500'],\n color: theme.palette.getContrastText(amber['500']),\n },\n danger: { \n backgroundColor: red['500'],\n color: theme.palette.getContrastText(red['500']),\n },\n alarm: { \n backgroundColor: theme.palette.grey['900'],\n color: theme.palette.getContrastText(theme.palette.grey['900']),\n },\n});\n\nconst DeadlineChipView = ({ className, classes, record, translate, ...props }) => {\n if (!record) return null;\n\n const status = getStatus(record.completedAt, record.completedDeadlineAt);\n const title = getTitle(status, record.completedDeadlineAt, translate);\n\n return (\n <Chip avatar={<Avatar>{(status === \"info\") ? <DeadlineOffIcon className={classes[status]}/> : <DeadlineOnIcon className={classes[status]}/>}</Avatar>} label={title} classes={{avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className} ${classes[status]}`} />\n );\n} \n\n\nDeadlineChipView.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n record: PropTypes.object,\n \n};\n\n\nDeadlineChipView.defaultProps = {\n classes: {},\n record: {},\n};\n\nexport const DeadlineChip = compose(\n translate,\n withStyles(deadlineChipStyles)\n)(DeadlineChipView);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, translate } from 'react-admin';\nimport classnames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { get } from 'lodash';\nimport sanitizeRestProps from './sanitizeRestProps';\n\nconst styles = theme => ({\n link: {\n color: theme.palette.primary.main,\n },\n});\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst LinkField = ({\n addLabel,\n allowEmpty,\n basePath,\n children,\n className,\n classes = {},\n emptyValue,\n record,\n reference,\n resource,\n source, \n linkType, \n translate,\n ...props \n}) =>{\n const referenceRecord = get(record, source)\n \n if (!referenceRecord) {\n if (!emptyValue) {\n return null;\n } else if (typeof emptyValue === 'string') {\n return <EmptyFieldPlaceholder placeholder={emptyValue} className={className} {...sanitizeRestProps(children.props)} />;\n } else {\n return React.cloneElement(emptyValue, { className, record, ...sanitizeRestProps(children.props)});\n }\n }\n\n const rootPath = basePath.replace(resource, reference);\n const resourceLinkPath = !linkType\n ? false\n : `${rootPath}/${encodeURIComponent(referenceRecord.id)}/${linkType}`;\n\n if (resourceLinkPath) {\n return (\n <Link\n to={resourceLinkPath}\n className={className}\n onClick={stopPropagation}\n className={className}\n\n >\n {React.cloneElement(children, {\n className: classnames(\n children.props.className,\n classes.link // force color override for Typography components\n ),\n record: referenceRecord,\n referenceRecord: record,\n resource: reference,\n allowEmpty,\n basePath,\n ...sanitizeRestProps(props),\n })}\n </Link>\n );\n }\n\n return React.cloneElement(children, {\n className: `${className} ${children.props.className}`,\n record: referenceRecord,\n referenceRecord: record,\n resource: reference,\n allowEmpty,\n basePath,\n ...sanitizeRestProps(props),\n });\n} \n\n\nLinkField.propTypes = {\n addLabel: PropTypes.bool,\n allowEmpty: PropTypes.bool.isRequired,\n basePath: PropTypes.string.isRequired,\n children: PropTypes.element.isRequired,\n emptyValue: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n reference: PropTypes.string.isRequired,\n resource: PropTypes.string,\n source: PropTypes.string.isRequired,\n linkType: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\n\nLinkField.defaultProps = {\n allowEmpty: false,\n classes: {},\n linkType: 'show',\n record: {},\n};\n\nconst EnhancedLinkField = withStyles(styles)(LinkField);\n\nEnhancedLinkField.defaultProps = {\n addLabel: true,\n};\n\nexport default EnhancedLinkField;\n\n\n\nconst EmptyFieldPlaceholder = translate(({ placeholder, translate, ...props}) => (<Typography variant=\"body1\" color=\"textSecondary\" {...props}>{translate(placeholder)}</Typography>));","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport { translate } from 'react-admin';\nimport sanitizeRestProps from './sanitizeRestProps';\n\nconst MeterField = translate(({ record, referenceRecord, className, translate, addLabel, ...props }) => {\n if (!record) return null;\n return (<Typography className={className} noWrap {...sanitizeRestProps(props)}>{`${translate(`resources.Meter.enums.type.${record.type}`)} ${record.name}`}</Typography>);\n});\n\nMeterField.defaultProps = {\n addLabel: true,\n};\n\nexport const MeterWithLocationField = translate(({ record, referenceRecord, className, translate, ...props }) => {\n return (\n <div>\n <Typography className={className} noWrap>{(record && record.id) ? `${translate(`resources.Meter.enums.type.${record.type}`)} ${record.name}` : translate(\"resources.Meter.empty\")}</Typography>\n <Typography variant=\"caption\" >{translate(`resources.Order.enums.meterLocation.${(!!referenceRecord.meterLocation) ? referenceRecord.meterLocation : \"UNKNOWN\"}`)}</Typography>\n </div>\n );\n});\n\nMeterWithLocationField.defaultProps = {\n addLabel: true,\n};\n\nexport const OptionMeter = translate(({ record, translate }) => {\n if (!record) return null;\n return (<span>{`${translate(`resources.Meter.enums.type.${record.type}`)} ${record.name}`}</span>);\n});\n\nexport const optionMeter = translate => choice => `${translate(`resources.Meter.enums.type.${choice.type}`)} ${choice.name}`;\n\n\n\nexport default MeterField;","export default ({\n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n formClassName,\n headerClassName,\n label,\n linkType,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n source,\n textAlign,\n translateChoice,\n ...rest\n}) => rest;\n","\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport PhoneField from '../Fields/PhoneField';\n\nconst UserField = ({ record = {}, ...props }) => (\n <div style={props.style}>\n <Typography variant=\"body1\" color=\"inherit\">{record.name}</Typography>\n <PhoneField source=\"phone\" variant=\"caption\" noWrap record={record}/>\n </div>\n \n);\n\nexport const UserOption = ({ record = {}, className, classes, ...props }) => (\n <div style={{display:\"flex\", flexDirection: \"column\"}}>\n <span>{record.name}</span>\n <PhoneField source=\"phone\" variant=\"caption\" noWrap record={record}/>\n </div>\n \n);\n\nUserField.defaultProps = {\n linkType: false,\n addLabel: true,\n};\n\nexport default UserField;\n\n\n\n\n","import React from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport Tooltip from '@material-ui/core/Tooltip';\n//import { Link } from \"react-admin\";\nimport { Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\n\nimport EditIcon from '@material-ui/icons/Create';\nimport CloneIcon from '@material-ui/icons/Queue';\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport UnarchiveIcon from '@material-ui/icons/Unarchive';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\n\nimport { ability } from '../../ability'\n\nimport { linkToRecord, translate, crudDelete, startUndoable } from 'ra-core';\nimport { archive, unarchive } from '../Actions/ArchiveAction';\n\nconst omitId = ({ id, statusRef, ...rest }) => rest;\n\nconst styles = theme => ({\n menuItem: {\n color: theme.palette.grey[700],\n \n },\n deleteItem: {\n color: theme.palette.error.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n // Reset on mouse devices\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n menuText: {\n flex: '1 1 auto',\n paddingLeft: '0.5rem',\n minWidth: '0'\n },\n menuIcon: {\n display: 'inline-flex',\n flexShrink: '0',\n },\n});\n\n\n\nclass MoreButton extends React.Component {\n state = {\n anchorEl: null,\n };\n \n handleClick = event => {\n event.stopPropagation();\n this.setState({ anchorEl: event.currentTarget });\n };\n \n handleClose = event => {\n event.stopPropagation();\n this.setState({ anchorEl: null });\n };\n \n handleDelete = event => {\n event.stopPropagation();\n event.preventDefault(); \n this.setState({ anchorEl: null });\n const { startUndoable, resource, record, basePath, redirect = false,} = this.props;\n\n startUndoable(crudDelete(resource, record.id, record, basePath, redirect));\n };\n\n handleArchive = event => {\n event.stopPropagation();\n event.preventDefault(); \n this.setState({ anchorEl: null });\n const { startUndoable, resource, record, basePath, redirect = false, } = this.props;\n\n startUndoable(archive(resource, record.id, record, basePath, redirect));\n };\n\n handleUnarchive = event => {\n event.stopPropagation();\n event.preventDefault(); \n this.setState({ anchorEl: null });\n const { startUndoable, resource, record, basePath, redirect = false, } = this.props;\n\n startUndoable(unarchive(resource, record.id, record, basePath, redirect));\n };\n \n\n render() {\n const { anchorEl } = this.state;\n const { basePath, resource, record, translate, classes = {} } = this.props;\n\n return (\n <div>\n <Tooltip placement=\"top\" title={translate('raExt.action.more')} >\n <IconButton\n aria-owns={anchorEl ? 'more-menu' : undefined}\n aria-haspopup=\"true\"\n onClick={this.handleClick}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n \n <Menu\n id=\"more-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={this.handleClose}\n > \n { ability.can('update', resource) && (\n <MenuItem component={Link} to={`${linkToRecord(basePath, record.id)}`} onClick={this.handleClose} className={classes.menuItem} >\n <EditIcon className={classes.menuIcon}/><span className={classes.menuText}>{translate('ra.action.edit')}</span>\n </MenuItem>\n )}\n { ability.can('create', resource) && (\n <MenuItem component={Link} to={{ pathname: `${basePath}/create`, state: { record: omitId(record) } }} onClick={this.handleClose} className={classes.menuItem} >\n <CloneIcon className={classes.menuIcon}/><span className={classes.menuText}>{translate('ra.action.clone')}</span>\n </MenuItem>\n )}\n { ability.can('archive', resource) && !record.isArchive && (\n <MenuItem className={classes.deleteItem} onClick={this.handleArchive} >\n <ArchiveIcon className={classes.menuIcon}/><span className={classes.menuText}>{translate(\"raExt.action.archive\")}</span>\n </MenuItem>\n )}\n { ability.can('archive', resource) && record.isArchive && (\n <MenuItem className={classes.menuItem} onClick={this.handleUnarchive} >\n <UnarchiveIcon className={classes.menuIcon}/><span className={classes.menuText}>{translate(\"raExt.action.unarchive\")}</span>\n </MenuItem>\n )}\n { ability.can('delete', resource) && (\n <MenuItem className={classes.deleteItem} onClick={this.handleDelete} >\n <DeleteIcon className={classes.menuIcon}/><span className={classes.menuText}>{translate('ra.action.delete')}</span>\n </MenuItem>\n )}\n </Menu>\n </div>\n ) \n }\n}\n \n\nexport default compose(\n connect(\n null,\n { startUndoable, dispatchCrudDelete: crudDelete }\n ),\n translate,\n withStyles(styles)\n)(MoreButton);\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M14,2H6C4.89,2 4,2.89 4,4V20C4,21.11 4.89,22 6,22H18C19.11,22 20,21.11 20,20V8L14,2M12,19L8,15H10.5V12H13.5V15H16L12,19M13,9V3.5L18.5,9H13Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import radatagraphqlsimple from '../customdatagraphql'\nimport { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { setContext } from 'apollo-link-context';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { GetAccessToken} from '../authProvider';\nimport { URI_FIAS } from '../../appsettings';\nimport fiasBuiltQuery from './builtQuery';\n\nconst httpLink = createHttpLink({\n uri: URI_FIAS\n})\n\nconst fiasLink = setContext(async (_, { headers }) => { \n const token = await GetAccessToken(); \n //console.log('++++> ['+URI_FIAS+'] header get TOKEN from localStorage ('+token+')');\n \n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nexport const apolloFiasClient = new ApolloClient({\n link: fiasLink.concat(httpLink), \n cache: new InMemoryCache()\n})\n\nexport const resourcebindingFias = ['Location']\nexport default () => radatagraphqlsimple({ \n client : apolloFiasClient, \n buildQuery : fiasBuiltQuery(apolloFiasClient)\n})","import merge from 'lodash/merge';\nimport buildDataProvider from 'ra-data-graphql';\nimport { buildQuery } from 'ra-data-graphql-simple'\nimport { DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\n\nconst defaultOptions = {\n buildQuery,\n};\n\nexport default options => {\n return buildDataProvider(merge({}, defaultOptions, options)).then(\n defaultDataProvider => {\n return (fetchType, resource, params) => {\n // This provider does not support multiple deletions so instead we send multiple DELETE requests\n // This can be optimized using the apollo-link-batch-http link\n \n \n if (fetchType === DELETE_MANY) {\n const { ids, ...otherParams } = params;\n return Promise.all(\n params.ids.map(id =>\n defaultDataProvider(DELETE, resource, {\n id,\n ...otherParams,\n })\n )\n ).then(results => {\n const data = results.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n\n return { data };\n }); \n }\n\n // This provider does not support multiple deletions so instead we send multiple UPDATE requests\n // This can be optimized using the apollo-link-batch-http link\n if (fetchType === UPDATE_MANY) {\n const { ids, data, ...otherParams } = params; \n return Promise.all(\n ids.map(id => defaultDataProvider(UPDATE, resource, { \n id,\n data : { \n id,\n ...data\n },\n ...otherParams,\n }))\n ).then(results => {\n const data = results.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n\n return { data };\n });\n }\n\n return defaultDataProvider(fetchType, resource, params);\n };\n }\n );\n};","\nimport { buildQuery } from 'ra-data-graphql-simple'\nimport globalBuiltQuery from '../globalBuiltQuery'\nimport gql from 'graphql-tag'\nimport { apolloFiasClient } from '../Fias/graphqlProvider';\nimport { orderBy } from 'lodash';\n\nconst GET_LIST_ORDER = gql`\n query allOrders($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: OrderFilter) {\n items: allOrders(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n },\n total: _allOrdersMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_MANY_ORDERS = gql`\n query allOrders($filter: OrderFilter) {\n items: allOrders(filter: $filter) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n },\n total: _allOrdersMeta(filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_ORDER = gql`\n query Order($id: ID!) {\n data: Order(id: $id) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n miYear\n miTypeNumber\n miManufactureNum\n miName\n miYearMpi\n miMonthMpi\n miManufacturer\n signCipher\n isSIOwnedByVerifier\n signMi\n signPass\n validAt\n certificateNumber\n stickerNumber\n gsiType\n gsiNumber\n gsiName\n meansUveNumber\n }\n }\n`\nconst UPDATE_ORDER = gql`\n mutation updateOrder( $id: ID!, $isArchive: Boolean, $isFavorite: Boolean, $statusRef:String, $customer:UserOrder, $verifier:UserOrder, $dispatcher:UserOrder, $addrManual: String, $regionId: String, $districtIdOrCityId: String, $districtId: String, $cityId: String, $streetId:String, $houseNum: String, $houseCorp: String, $houseFlat: String, $meter: MeterWhereUniqueInput, $meterLocation: String, $meterUninstallAt: DateTime, $comment: String, $files:FilesInput, $resultRef:String, $resultDesc:String, $invoice: String, $personalAccount: String, $isSealNotInstalled: Boolean, $completedDeadlineAt: DateTime, $nextCompletedDeadlineAt: DateTime ){\n data: updateOrder( id: $id, isArchive: $isArchive, isFavorite: $isFavorite, statusRef: $statusRef, customer: $customer, verifier: $verifier, dispatcher: $dispatcher, addrManual: $addrManual, regionId: $regionId, districtIdOrCityId: $districtIdOrCityId, districtId: $districtId, cityId: $cityId, streetId: $streetId, houseNum: $houseNum, houseCorp: $houseCorp, houseFlat: $houseFlat, meter: $meter, meterLocation: $meterLocation, meterUninstallAt: $meterUninstallAt, comment: $comment, files:$files, resultRef: $resultRef, resultDesc: $resultDesc, invoice: $invoice, personalAccount: $personalAccount, isSealNotInstalled: $isSealNotInstalled, completedDeadlineAt: $completedDeadlineAt, nextCompletedDeadlineAt: $nextCompletedDeadlineAt) {\n id\n humanId\n createdAt\n updatedAt\n completedAt\n statusRef\n resultRef\n resultDesc\n meter {\n id\n type\n name\n verifyInterval\n }\n meterLocation\n meterUninstallAt\n comment\n customer {\n id\n name\n phone\n }\n verifier {\n id\n name\n phone\n }\n dispatcher {\n id\n name\n phone\n }\n creator {\n id\n name\n phone\n }\n regionId\n districtIdOrCityId\n districtId\n cityId\n streetId\n houseNum\n houseCorp\n houseFlat\n addrManual\n files{\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n created\n createdAt\n createdBy\n createdByAuth\n }\n isArchive\n completedDeadlineAt\n invoice\n personalAccount\n isSealNotInstalled\n }\n }\n`\n\n\n\nconst GET_LIST_ORDERHISTORIES = gql`\n query allOrderHistories($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: OrderHistoryFilter) {\n items: allOrderHistories(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n order {\n id\n humanId\n }\n orderHumanId\n user {\n id\n name\n phone\n }\n userName\n action\n changes\n meta\n updated\n createdAt\n },\n total: _allOrderHistoriesMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_ORDERHISTORY = gql`\n query OrderHistory($id: ID!) {\n data: OrderHistory(id: $id) {\n id\n order {\n id\n humanId\n }\n orderHumanId\n user {\n id\n name\n phone\n }\n userName\n action\n updated\n changes\n meta\n createdAt\n }\n }\n`\n\n\nconst GET_LIST_METERS = gql`\n query allMeters($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: MeterFilter) {\n items: allMeters(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n type\n name\n description\n documentation {\n id\n url\n desc\n ext\n size\n }\n verifyInterval\n },\n total: _allMetersMeta(page: $page, perPage: $perPage, filter: $filter) {\n count \n }\n }\n`\nconst GET_ONE_METER = gql`\n query Meter($id: ID!) {\n data: Meter(id: $id) {\n id\n type\n name\n description\n documentation {\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n verifyInterval\n }\n }\n`\n\nconst UPDATE_METER = gql`\n mutation updateMeter( $id: ID!, $type: String!, $name: String!, $description: String, $verifyInterval: Int, $documentation: FilesInput ){\n data: updateMeter( id: $id, type: $type, name: $name, description: $description, verifyInterval: $verifyInterval, documentation: $documentation) {\n id\n type\n name\n description\n documentation {\n id\n idBlob\n url\n urlThumbnail\n desc\n catalog\n ext\n size\n createdAt\n createdBy\n createdByAuth\n }\n verifyInterval\n }\n }\n`\n\nconst GET_ONE_USER = gql`\n query User($id: ID!) {\n data: User(id: $id) {\n id\n name\n email\n phone\n role\n authId\n authStatus\n createdAt\n updatedAt\n regionIds\n districtIdOrCityIds\n notificationTags\n isArchive\n online\n customer {\n id\n type\n organizationName\n organizationInn\n payment\n }\n }\n }\n`\n\nconst GET_PROFILE = gql`\n query Profile($id: ID!) {\n data: Profile(id: $id) {\n id\n name\n email\n phone\n role\n authId\n authStatus\n createdAt\n updatedAt\n regionIds\n districtIdOrCityIds\n notificationTags\n isArchive\n online\n customer {\n id\n type\n organizationName\n organizationInn\n payment\n }\n }\n }\n`\n\nexport default (apolloCoreClient) => introspection => (fetchType, resource, params) => {\n\n const builtQuery = globalBuiltQuery(buildQuery(introspection)(fetchType, resource, params), fetchType, resource, params);\n\n if (resource === 'Statistic' && fetchType === 'GET_LIST') {\n let result = {\n ...builtQuery,\n parseResponse: async function (response) {\n\n let result = [];\n let total_item = { id: 'Total' };\n const locationIds = response.data.items.map(item => item.id);\n\n const allLocations = await apolloFiasClient.query({\n query: gql`\n query allLocations($filter: LocationFilter) {\n allLocations(filter: $filter) {\n id\n typeShort\n name\n unrestrictedName\n level \n }\n }\n `,\n variables: {\n filter: {\n ids: locationIds\n }\n },\n onError: (error) => {\n alert(error)\n }\n });\n\n const locations = allLocations.data.allLocations\n\n result = response.data.items.filter(item => item.id !== 'Total').map(item => {\n\n Object.keys(item).forEach(prop => {\n if (prop === 'id') return;\n if (total_item[prop] === undefined) {\n total_item[prop] = item[prop];\n } else {\n total_item[prop] += item[prop];\n }\n });\n\n const location = locations.find(location => item.id === location.id);\n\n return { ...item, ...location }\n\n });\n\n const sortField = builtQuery.variables.sortField || \"id\"\n const sortOrder = builtQuery.variables.sortOrder || \"DESC\"\n\n result = orderBy(result, [sortField], [sortOrder.toLowerCase()]);\n\n result.push(total_item);\n\n response.data.items = result\n\n return builtQuery.parseResponse(response);\n }\n }\n\n return result;\n }\n\n if (resource === 'Profile') {\n\n if (fetchType === 'GET_ONE') {\n return {\n ...builtQuery,\n query: GET_PROFILE,\n };\n\n }\n\n if (fetchType === 'UPDATE') {\n return {\n ...builtQuery,\n parseResponse: response => {\n const { data: { data: user } } = response;\n localStorage.setItem('regionIds', user.regionIds);\n localStorage.setItem('districtIdOrCityIds', user.districtIdOrCityIds);\n return builtQuery.parseResponse(response);\n },\n };\n }\n };\n\n if (resource === 'User') {\n switch (fetchType) {\n case 'GET_ONE':\n return {\n ...builtQuery,\n query: GET_ONE_USER\n };\n break;\n\n default: break;\n\n }\n\n\n }\n\n if (resource === 'Order') {\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n\n if (builtQuery.variables.filter.oneOfUserManyId) {\n let id = builtQuery.variables.filter.oneOfUserManyId;\n delete builtQuery.variables.filter.oneOfUserManyId;\n if (!builtQuery.variables.filter.oneOfUserMany) { builtQuery.variables.filter.oneOfUserMany = {} }\n builtQuery.variables.filter.oneOfUserMany.id = id;\n }\n\n return {\n ...builtQuery,\n query: GET_LIST_ORDER,\n };\n }\n\n case 'GET_MANY': {\n return {\n ...builtQuery,\n query: GET_MANY_ORDERS,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_ORDER,\n\n };\n }\n\n case 'UPDATE': {\n return {\n ...builtQuery,\n query: UPDATE_ORDER,\n\n };\n }\n default: break;\n }\n }\n\n if (resource === 'OrderHistory') {\n\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n //TODO: Костыль для отображения истории\n //поле orderId начало появляться после обновления ra-data-graphql-simple на версию 2.9.0 \n\n if (builtQuery.variables.filter.orderId) {\n let id = builtQuery.variables.filter.orderId;\n delete builtQuery.variables.filter.orderId;\n if (!builtQuery.variables.filter.order) { builtQuery.variables.filter.order = {} }\n builtQuery.variables.filter.order.id = id;\n }\n\n if (builtQuery.variables.filter.userId) {\n let id = builtQuery.variables.filter.userId;\n delete builtQuery.variables.filter.userId;\n if (!builtQuery.variables.filter.user) { builtQuery.variables.filter.user = {} }\n builtQuery.variables.filter.user.id = id;\n }\n\n return {\n ...builtQuery,\n query: GET_LIST_ORDERHISTORIES,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_ORDERHISTORY,\n\n };\n }\n default: break;\n }\n }\n\n if (resource === 'Meter') {\n\n switch (fetchType) {\n case 'GET_LIST':\n case 'GET_MANY_REFERENCE': {\n return {\n ...builtQuery,\n query: GET_LIST_METERS,\n };\n }\n\n case 'GET_ONE': {\n return {\n ...builtQuery,\n query: GET_ONE_METER,\n\n };\n }\n\n case 'UPDATE': {\n return {\n ...builtQuery,\n query: UPDATE_METER,\n\n };\n }\n default: break;\n }\n }\n\n return builtQuery;\n}\n\n","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport { ApolloClient } from 'apollo-client';\nimport { createHttpLink } from 'apollo-link-http'\nimport { WebSocketLink } from 'apollo-link-ws'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport { split } from 'apollo-link';\nimport { getMainDefinition } from 'apollo-utilities'\nimport { GetAccessToken } from '../authProvider';\nimport { URI_DATA, WS_DATA } from '../../appsettings';\nimport coreBuiltQuery from './builtQuery';\n\nconst httpLink = createHttpLink({\n uri: URI_DATA\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n const token = await GetAccessToken();\n //console.log('++++> ['+URI_DATA+'] header get TOKEN from localStorage ('+token+')');\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_DATA,\n options: {\n lazy: true,\n reconnect: true,\n connectionParams: async () => {\n const token = await GetAccessToken();\n\n return {\n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nexport const apolloCoreClient = new ApolloClient({\n link,\n cache: new InMemoryCache()\n})\n\nexport const resourcebindingCore = ['Counterparty', 'User', 'Order', 'File', 'Meter', 'MeterLocation', 'Statistic', 'Status', 'Result', 'OrderHistory', 'Profile', 'VersionsInfo']\nexport default () => buildGraphQLProvider({\n client: apolloCoreClient,\n buildQuery: coreBuiltQuery(apolloCoreClient)\n})\n\n","import { NAME_APP, URI_CASL } from '../appsettings'\nimport { ApolloClient } from 'apollo-client';\nimport { GetAccessToken} from './authProvider';\nimport { createHttpLink } from 'apollo-link-http'\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { setContext } from 'apollo-link-context';\nimport gql from 'graphql-tag';\n\nconst CASL_QUERY_GETABILITY = gql`\n query getAbility {\n getAbility {\n actions\n subject\n conditions\n fields\n inverted\n reason\n }\n }\n`\n\nconst httpLink = createHttpLink({\n uri: URI_CASL\n})\n\nconst caslLink = setContext(async (_, { headers }) => { \n const token = await GetAccessToken(); \n //console.log('++++> ['+URI_CASL+'] header get TOKEN from localStorage ('+token+')');\n \n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n appName: NAME_APP\n }\n }\n});\n\nconst defaultOptions = {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n}\n\nexport const apolloCaslClient = new ApolloClient({\n link: caslLink.concat(httpLink), \n cache: new InMemoryCache(),\n defaultOptions: defaultOptions\n})\n\nexport async function getAbility() {\n const abilities = await apolloCaslClient.query({\n query: CASL_QUERY_GETABILITY \n });\n\n if(abilities) {\n return abilities.data.getAbility;\n }\n\n return [];\n}","import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK, AUTH_ERROR, AUTH_GET_PERMISSIONS } from 'react-admin'\nimport { AUTH_TOKEN, AUTH_REFRESH_TOKEN, URI_AUTH } from '../appsettings'\nimport { apolloCoreClient } from './Core/graphqlProvider'\nimport gql from 'graphql-tag'\nimport ApolloClient from \"apollo-boost\"\nimport decodeJwt from 'jwt-decode'\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport { ability, defineAbilityFor } from '../ability' //++доступ по роли\nimport { getAbility } from './caslProvider'\n\nexport const apolloAuthClient = new ApolloClient({\n uri: URI_AUTH\n});\n\n\nconst LOGIN_MUTATION = gql`\n mutation LoginMutation($login: String!, $password: String!) {\n login(login: $login, password: $password) {\n token,\n refreshToken,\n user {\n id,\n email,\n phone,\n name,\n role\n }\n }\n }\n`\nconst REFRESH_TOKEN_MUTATION = gql`\n mutation refresh($refreshToken: String!) {\n refresh(refreshToken: $refreshToken) { \n token,\n refreshToken, \n }\n }\n`\n\nfunction checkUserBanned(checkUser) {\n if (checkUser.authStatus === \"BANNED\") throw new Error(`User is banned`); \n}\n\nexport function authProvider(type, params) {\n if (type === AUTH_LOGIN) { \n \n return Promise.resolve(params).then(function(params){ \n const { login, password } = params\n\n const phoneNumber = parsePhoneNumberFromString(login, 'RU')\n\n return apolloAuthClient.mutate({\n mutation: LOGIN_MUTATION,\n variables: {\n login: (phoneNumber && phoneNumber.isValid()) ? phoneNumber.number : login,\n password: password,\n },\n onError: (error) => {\n alert(error)\n },\n })\n }).then(async({data, apolloAuthClient, error}) => { \n\n \n if (error) throw new Error(error)\n \n const { token, refreshToken, user } = data.login;\n \n const coreUser = await apolloCoreClient.mutate({\n mutation: gql`\n mutation loginUser($id: ID!, $email: String, $name: String, $phone: String, $role: String) {\n loginUser(authId: $id, email: $email, name: $name, phone: $phone, role: $role) {\n id\n name\n email\n phone\n role\n regionIds\n districtIdOrCityIds\n authStatus \n }\n }\n `,\n variables: { \n ...user\n } \n }); \n\n checkUserBanned(coreUser.data.loginUser);\n\n localStorage.setItem(AUTH_TOKEN, token)\n localStorage.setItem(AUTH_REFRESH_TOKEN, refreshToken)\n\n defineAbilityFor(await getAbility()) //++доступ по роли \n\n return coreUser\n }).then(function(result){\n \n const loginUser = result.data.loginUser\n if(!!loginUser) {\n localStorage.setItem('regionIds', loginUser.regionIds || []);\n localStorage.setItem('districtIdOrCityIds', loginUser.districtIdOrCityIds|| []); \n }\n\n return Promise.resolve();\n })\n .catch((error) => {\n \n throw new Error(`Error.${error.message.replace('Error: ', '').replace('GraphQL error: ', '')}`) \n \n }) \n }\n if (type === AUTH_LOGOUT) {\n localStorage.removeItem(AUTH_REFRESH_TOKEN);\n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem('regionIds');\n localStorage.removeItem('districtIdOrCityIds');\n return Promise.resolve()\n }\n if (type === AUTH_ERROR) {\n const status = params.status;\n if (status === 401 || status === 403) {\n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem(AUTH_REFRESH_TOKEN);\n localStorage.removeItem('regionIds');\n localStorage.removeItem('districtIdOrCityIds');\n return Promise.reject()\n }\n return Promise.resolve()\n }\n if (type === AUTH_CHECK) { \n return ((localStorage.getItem(AUTH_TOKEN) && !IsExpiredToken(localStorage.getItem(AUTH_REFRESH_TOKEN))))\n ? Promise.resolve() \n : Promise.reject(); \n }\n if (type === AUTH_GET_PERMISSIONS) {\n \n const token = localStorage.getItem(AUTH_TOKEN)\n\n // if (!token) {\n // ability.update([]);\n // return Promise.resolve({role: \"GUEST\"});\n // };\n\n const permissions = {};\n const decodedToken = decodeJwt(token);\n const role = decodedToken.role\n \n if (!!role) permissions.role = role\n\n return role ? Promise.resolve(permissions).then(async function(permissions){\n ability.update(defineAbilityFor(await getAbility())) \n return Promise.resolve(permissions);\n }) : Promise.reject();\n }\n \n return Promise.reject('Unkown method') \n}\n\nexport async function GetAccessToken() {\n var authtoken = localStorage.getItem(AUTH_TOKEN);\n var authrefreshtoken = localStorage.getItem(AUTH_REFRESH_TOKEN);\n \n if(IsExpiredToken(authtoken) && !IsExpiredToken(authrefreshtoken, 'refresh')) {\n \n //console.log('====> ['+URI_AUTH+'] Start get NEW TOKEN');\n \n try {\n var response = await apolloAuthClient.mutate({\n mutation: REFRESH_TOKEN_MUTATION,\n variables: {\n refreshToken: authrefreshtoken, \n },\n onError: (error) => {\n alert(error)\n },\n });\n \n const { token, refreshToken } = response.data.refresh\n \n localStorage.setItem(AUTH_TOKEN, token) \n localStorage.setItem(AUTH_REFRESH_TOKEN, refreshToken)\n \n authtoken = token;\n\n } catch (error) { \n localStorage.removeItem(AUTH_TOKEN);\n localStorage.removeItem(AUTH_REFRESH_TOKEN); \n return null;\n }\n \n \n //console.log('====> ['+URI_AUTH+'] End get NEW TOKEN ('+token+')');\n }\n \n return authtoken;\n}\n\nexport function IsExpiredToken(token, arg) {\n if(token) {\n const decodedToken = decodeJwt(token);\n const current_time = Date.now() / 1000; \n const result = (decodedToken.exp - 20) < current_time; \n return result;\n } else { \n return true;\n }\n}","import radatagraphqlsimple from '../customdatagraphql'\nimport { ApolloClient } from 'apollo-client';\nimport { createUploadLink } from 'apollo-upload-client'\nimport { setContext } from 'apollo-link-context';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport blobBuiltQuery from './builtQuery';\nimport { GetAccessToken} from '../authProvider';\nimport { URI_BLOB } from '../../appsettings';\n\nArray.prototype.selectMany = function (fn) {\n return this.map(fn).reduce(function (x, y) { return x.concat(y); }, []);\n};\n\nconst httpLink = createUploadLink({\n uri: URI_BLOB\n})\n\nconst blobLink = setContext(async (_, { headers }) => { \n const token = await GetAccessToken(); \n //console.log('++++> ['+URI_BLOB+'] header get TOKEN from localStorage ('+token+')');\n \n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nexport const apolloBlobClient = new ApolloClient({\n link: blobLink.concat(httpLink), \n cache: new InMemoryCache()\n})\n\nexport const resourcebindingBlob = []\nexport default () => radatagraphqlsimple({ \n client : apolloBlobClient, \n buildQuery : blobBuiltQuery(apolloBlobClient)\n})","import gql from 'graphql-tag'\nimport { apolloBlobClient } from './graphqlProvider';\n\nexport default (orders) => {\n return apolloBlobClient.mutate({\n mutation: gql`\n mutation getUrlArchiveFiles($filesInfo: [ArchiveFilesInfo!]!) {\n getUrlArchiveFiles(filesInfo: $filesInfo) {\n url\n }\n }\n `,\n variables: { filesInfo: orders },\n onError: (error) => {\n alert(error)\n }\n });\n}","import React from 'react';\nimport compose from 'recompose/compose';\nimport { Button, withDataProvider, GET_MANY, showNotification } from 'react-admin';\nimport FileDownloadIcon from '../Icons/FileDownload';\nimport getUrlArchive from '../../providers/Blob/archiveFiles';\nimport { GetAccessToken } from '../../providers/authProvider';\nimport { BLOB_SETHOST } from '../../appsettings';\n\nconst getUrlWithToken = (url, token) => {\n return url.indexOf('blob:') < 0 ? `${url}?${token}` : url;\n};\n\nconst renameUrl = (url) => {\n if (BLOB_SETHOST && BLOB_SETHOST !== '') {\n const parsed_url = new URL(url);\n const new_url = url.replace(parsed_url.origin, BLOB_SETHOST);\n return new_url;\n }\n\n return url;\n}\n\nconst BulkDownloadFilesButton = ({ resource, basePath, filterValues, selectedIds, dataProvider, dispatch, ...props }) => {\n\n const handleBulkDownloadFiles = () => {\n\n dataProvider(GET_MANY, resource, { ids: selectedIds })\n .then(async ({ data, total }) => {\n\n let orders = data.map(order => ({\n humanId: order.humanId,\n addrManual: order.addrManual,\n idsBlob: order.files.map(file => (file.idBlob))\n }));\n\n\n orders = orders.filter(order => order.idsBlob.length > 0);\n\n if (total - orders.length > 0) {\n dispatch(showNotification('raExt.notification.download_files_empty', 'info', { messageArgs: { smart_count: total - orders.length } }));\n };\n\n if (orders.length > 0) {\n /////////////////////// тут будет вызов клиента /////////////////\n var responce = await getUrlArchive(orders);\n const token = await GetAccessToken();\n const url = renameUrl(responce.data.getUrlArchiveFiles.url);\n const urlWithToken = getUrlWithToken(url, token)\n\n window.open(urlWithToken, '_blank');\n\n };\n })\n .catch((e) => {\n dispatch(showNotification(e.message, 'warning'));\n });\n };\n\n return (\n <Button label=\"raExt.action.download_files\" onClick={handleBulkDownloadFiles} {...props} >\n <FileDownloadIcon />\n </Button>\n );\n}\n\nexport default compose(\n withDataProvider,\n)(BulkDownloadFilesButton);\n\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { Button, crudUpdateMany, startUndoable } from 'react-admin';\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport UnarchiveIcon from '@material-ui/icons/Unarchive';\n\nconst styles = theme => ({\n button: {\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n },\n archiveButton: {\n color: theme.palette.error.main,\n borderColor: fade(theme.palette.error.main, 0.5),\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n borderColor: theme.palette.error.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n \n },\n unarchiveButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n }, \n },\n});\nclass BulkArchiveButton extends Component {\n handleArchive = () => {\n const { basePath, resource, selectedIds, startUndoable } = this.props;\n startUndoable(\n crudUpdateMany(resource, selectedIds, { isArchive: true }, basePath)\n );\n };\n\n handleUnarchive = () => {\n const { basePath, resource, selectedIds, startUndoable } = this.props;\n startUndoable(\n crudUpdateMany(resource, selectedIds, { isArchive: false }, basePath)\n );\n };\n\n render() {\n const { className, classes, filterValues } = this.props;\n return filterValues.tab ===\"archived\" ? (\n <Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.unarchive\"\n onClick={this.handleUnarchive}\n className={`${classes.button} ${classes.unarchiveButton} ${className}`}\n >\n <UnarchiveIcon />\n </Button>\n ) : (\n <Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.archive\"\n onClick={this.handleArchive}\n className={`${classes.button} ${classes.archiveButton} ${className}`}\n >\n <ArchiveIcon />\n </Button>\n );\n }\n}\n\nconst enhance = compose(\n withStyles(styles),\n connect(\n null,\n {\n startUndoable\n }\n )\n);\n\nexport default enhance(BulkArchiveButton);","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { Button, crudUpdateMany } from 'react-admin';\nimport FavoriteIcon from '@material-ui/icons/Star';\nimport UnfavoriteIcon from '@material-ui/icons/StarBorder';\n\n\n\nconst styles = theme => ({\n button: {\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n },\n favoriteButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n }, \n },\n unfavoriteButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n }, \n },\n});\nclass BulkFavoriteButton extends Component {\n \n isFavorite(udatedUser, id) {\n if(!udatedUser.favoriteOrders) return undefined;\n \n return udatedUser.favoriteOrders.find(x => { \n return x.id == id \n });\n }\n \n handleFavorite = () => {\n const { basePath, resource, selectedIds, crudUpdateMany, user } = this.props; \n crudUpdateMany(resource, selectedIds, { isFavorite: true }, basePath);\n\n selectedIds.forEach(id => {\n if(!this.isFavorite(user,id)) {\n user.favoriteOrders.push({ id }); \n } \n });\n };\n\n handleUnfavorite = () => {\n const { basePath, resource, selectedIds, crudUpdateMany, user } = this.props; \n crudUpdateMany(resource, selectedIds, { isFavorite: false }, basePath); \n \n selectedIds.forEach(id => {\n if(this.isFavorite(user,id)) {\n user.favoriteOrders = user.favoriteOrders.filter(x => x.id != id);\n }\n }); \n };\n\n render() {\n const { className, classes, filterValues } = this.props;\n return filterValues.tab === \"favorite\" ? (\n <Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.unfavorite\"\n onClick={this.handleUnfavorite}\n className={`${classes.button} ${classes.unfavoriteButton} ${className}`}\n > \n <UnfavoriteIcon /> \n </Button>\n ) : (\n <Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.favorite\"\n onClick={this.handleFavorite}\n className={`${classes.button} ${classes.favoriteButton} ${className}`}\n > \n <FavoriteIcon /> \n </Button>\n );\n }\n}\n\nconst mapStateToProps = state => {\n return { user: state.user }\n};\n\nconst enhance = compose(\n withStyles(styles),\n connect(\n mapStateToProps,\n { \n crudUpdateMany \n }\n )\n);\n\nexport default enhance(BulkFavoriteButton);","import { GetAccessToken } from '../authProvider';\nimport { URI_ORDERS_TO_XML } from '../../appsettings';\n\nconst exportOrdersToXml = async ({ ids }) => {\n\n const url = `${URI_ORDERS_TO_XML}/convert`;\n const token = await GetAccessToken();\n const raw = JSON.stringify({ ids });\n\n\n const requestOptions = {\n method: \"POST\",\n headers: {\n \"Authorization\": token ? `Bearer ${token}` : \"\",\n \"Content-Type\": \"application/json\",\n },\n body: raw,\n };\n\n return fetch(url, requestOptions)\n .then(response => {\n if (!response.ok) throw response;\n const contentType = response.headers.get(\"content-type\");\n if (contentType === \"application/json\") {\n return response.json()\n } else {\n const сontentDisposition = response.headers.get(\"Content-disposition\");\n const filenameRegexp = /filename=\"(.*)\"/\n const filename = сontentDisposition.match(filenameRegexp)[1] || \"orders.zip\"\n\n return response.blob().then(blob => {\n return {\n blob,\n filename\n }\n });\n }\n\n })\n .catch(error => {\n throw Error(error)\n });\n}\n\nexport default exportOrdersToXml","export default (blob, filename) => {\n const fakeLink = document.createElement('a');\n fakeLink.style.display = 'none';\n document.body.appendChild(fakeLink);\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n // Manage IE11+ & Edge\n window.navigator.msSaveOrOpenBlob(blob, filename);\n } else {\n fakeLink.setAttribute('href', URL.createObjectURL(blob));\n fakeLink.setAttribute('download', filename);\n fakeLink.click();\n }\n};\n","import React from 'react';\nimport { Button } from 'react-admin';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport exportOrdersToXml from '../../dataProviders/OrdersToXml/exportOrdersToXml';\nimport downloadFile from '../../dataProviders/OrdersToXml/downloadFile';\n\n\nconst OrdersToXmlBulkActionsButton = ({ selectedIds, ...props }) => {\n\n // if (!selectedIds) return null;\n\n const handleExport = async () => {\n\n\n exportOrdersToXml({\n ids: selectedIds\n }).then(({ blob, filename }) => {\n if (blob instanceof Blob) {\n downloadFile(blob, filename)\n }\n })\n\n };\n\n return (\n <Button label=\"raExt.action.export_orders_to_xml\" onClick={handleExport} {...props} >\n <GetAppIcon />\n </Button>\n );\n}\n\nexport default OrdersToXmlBulkActionsButton;\n","import React from 'react';\nimport { ExportButton } from 'react-admin';\n\n\nconst BulkExportButton = ({ selectedIds, filterValues, ...props }) => {\n const filter = {\n ...filterValues,\n ids: selectedIds,\n }\n return ( <ExportButton {...props } sort={{field: \"createdAt\", order: \"ASC\"}} filter={filter} />);\n}\n\n\n\nexport default BulkExportButton;","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport PhoneIcon from '@material-ui/icons/Call';\nimport match from 'autosuggest-highlight/match';\nimport parse from 'autosuggest-highlight/parse';\nimport AdminIcon from '@material-ui/icons/Android';\nimport DispatcherIcon from '@material-ui/icons/HeadsetMic';\nimport VerifierIcon from '@material-ui/icons/Build';\nimport CustomerIcon from '@material-ui/icons/AccountCircle';\n\n// const getRoleIcon = role => {\n// switch (role) {\n// case \"SUPERADMIN\":\n// case \"ADMIN\":\n// case \"MANAGER\":{\n// return <AdminIcon />\n// }\n// break;\n\n// case \"DISPATCHER\":{\n// return <DispatcherIcon />\n// }\n// break;\n\n// case \"VERIFIER\":{\n// return <VerifierIcon />\n// }\n// break;\n\n// case \"EMPLOYEE\":{\n// return <DispatcherIcon />\n// }\n// break;\n\n// case \"CUSTOMER\":{\n// return <CustomerIcon />\n// }\n// break;\n\n// default:{\n// return <CustomerIcon />\n// }\n// break;\n\n// }\n// }\n\nconst styles = theme => ({\n highlight: {\n fontWeight: 600,\n color: \"000\"\n },\n root: {\n height: \"unset\",\n flexDirection: \"column\",\n alignItems: \"start\",\n },\n flex: {\n display: \"flex\",\n },\n PhoneIcon: {\n fontSize: \"1rem\",\n marginRight: \"0.25rem\",\n color: theme.palette.grey[\"500\"]\n },\n});\n\n\nconst UserSuggestionComponent = withStyles(styles)(({\n suggestion,\n query,\n isHighlighted,\n classes,\n ...props\n}) => {\n const suggestionText = `${suggestion.name}`;\n const matches = match(suggestionText, query);\n const parts = parse(suggestionText, matches);\n const {className, ...rest} = props;\n \n return(\n <div className={`${className} ${classes.root}`} {...rest}>\n <span>\n {parts.map((part, index) => {\n const className = part.highlight ? classes.highlight : null;\n\n return (<span className={className} key={index}>{part.text}</span>);\n })}\n </span>\n <div className={`${classes.flex}`}>\n <PhoneIcon className={`${classes.PhoneIcon}`}/>\n <Typography variant=\"caption\" noWrap >{suggestion.phone}</Typography>\n </div>\n \n \n </div>\n )\n});\n\nexport default UserSuggestionComponent;","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport { translate } from 'react-admin';\n\nconst ResultField = ({ record = {},translate, ...props }) => (\n <div>\n {(!!record.resultRef) && (<Typography color=\"inherit\" noWrap>{translate(`resources.Order.results.${record.resultRef}`)}</Typography>)}\n {(!!record.resultDesc) && (<Typography variant=\"caption\" >{record.resultDesc}</Typography>)}\n </div>\n);\n\nResultField.defaultProps = {\n source: 'resultRef',\n};\n\n\nexport default translate(ResultField);","import React from 'react';\nimport { ReferenceField, FunctionField } from 'react-admin';\nimport Typography from '@material-ui/core/Typography';\n\nconst AddressField = ({ record, ...props }) => (\n <div>\n <Typography>{`${(!!record)? record.addrManual:\"\"}`}</Typography>\n {(record.districtIdOrCityId !== record.districtId) && (\n <ReferenceField {...props} record={record} source=\"districtId\" reference=\"Location\" linkType={false}>\n <FunctionField render={record => (<Typography variant=\"caption\" >{`• ${record.unrestrictedName}`}</Typography>)} /> \n </ReferenceField >\n )}\n </div>\n);\n\n\nAddressField.defaultProps = {\n addLabel: true,\n};\n\n\nexport default AddressField;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport IconButton from '@material-ui/core/IconButton';\nimport { withStyles } from '@material-ui/core/styles';\nimport { crudUpdate } from 'react-admin';\nimport FavoriteIcon from '@material-ui/icons/Star';\nimport UnfavoriteIcon from '@material-ui/icons/StarBorder';\n\nconst styles = theme => ({\n favoriteIcon: {},\n unfavoriteIcon: {}\n});\n\nclass FavoriteButton extends Component { \n isFavorite(udatedUser, id) {\n if(udatedUser && udatedUser.favoriteOrders && udatedUser.favoriteOrders.find) {\n return udatedUser.favoriteOrders.find(x => x.id === id );\n } else {\n return false;\n }\n }\n \n handleFavorite = (event) => {\n event.stopPropagation();\n \n const { resource, record, basePath, crudUpdateAction, user } = this.props; \n crudUpdateAction(resource, record.id, { id:record.id, isFavorite: true }, record, basePath, false) \n \n if(!this.isFavorite(user,record.id)) {\n user.favoriteOrders.push({ id: record.id});\n //userLogin(user);\n } \n };\n\n handleUnfavorite = (event) => {\n event.stopPropagation();\n \n const { resource, record, basePath, crudUpdateAction, user } = this.props; \n crudUpdateAction(resource, record.id, { id:record.id, isFavorite: false }, record, basePath, false) \n\n if(this.isFavorite(user,record.id)) {\n user.favoriteOrders = user.favoriteOrders.filter(x => x.id !== record.id);\n //userLogin(user);\n }\n };\n\n render() {\n const { record, user, classes, favoriteColor } = this.props;\n if (!record) return null;\n \n\n if (!this.isFavorite(user,record.id)) {\n return (\n <IconButton className={classes.unfavoriteIcon} onClick={this.handleFavorite}>\n <UnfavoriteIcon />\n </IconButton> \n )\n } else {\n return ( \n <IconButton className={classes.favoriteIcon} onClick={this.handleUnfavorite}>\n <FavoriteIcon />\n </IconButton>\n )\n } \n }\n}\n\nFavoriteButton.defaultProps = {\n favoriteColor: 'inherit',\n};\n\nconst mapStateToProps = state => {\n return { user: state.user }\n};\n\nconst enhance = compose( \n connect(\n mapStateToProps,\n {\n crudUpdateAction: crudUpdate \n }\n ),\n withStyles(styles)\n);\n\nexport default enhance(FavoriteButton);","import React from 'react';\nimport { Pagination } from 'react-admin';\n\nconst MyPagination = props => <Pagination rowsPerPageOptions={[10, 25, 50, 100]} {...props} />\n\nexport default MyPagination;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { reduxForm, Field } from 'redux-form';\nimport Input from '@material-ui/core/Input';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport SearchIcon from '@material-ui/icons/Search';\nimport {translate} from 'react-admin';\n\n\n\nconst styles = theme => ({\n search: {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: fade(theme.palette.common.white, 0.15),\n '&:hover': {\n backgroundColor: fade(theme.palette.common.white, 0.25),\n },\n \n marginLeft: 8,\n width: '100%',\n\n [theme.breakpoints.up('sm')]: {\n marginLeft: \"auto\",\n width: 'auto',\n },\n },\n searchIcon: {\n marginLeft:0,\n width: theme.spacing.unit * 6,\n justifyContent: 'center',\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n paddingLeft: theme.spacing.unit * 2,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n width: 192,\n '&:focus': {\n width: 256,\n },\n },\n },\n});\n\n\n\nconst renderTextField = ({ input, translate, classes, ...props }) => (\n <Input\n placeholder={translate('ra.action.search')}\n classes={{\n root: classes.inputRoot,\n input: classes.inputInput,\n }}\n disableUnderline\n endAdornment={\n <InputAdornment position=\"end\" className={classes.searchIcon}>\n <SearchIcon />\n </InputAdornment>\n }\n {...input}\n {...props}\n />\n);\n\nconst TitleSearchField = ({ classes, translate, ...props }) => (\n <div className={classes.search}>\n <Field name=\"q\" component={renderTextField} translate={translate} classes={classes}/>\n </div>\n);\n\n\n\nconst enhance = compose(\n withStyles(styles),\n translate,\n reduxForm({\n form: 'filterForm',\n enableReinitialize: true,\n destroyOnUnmount: false,\n onChange: (values, dispatch, props) => props && props.setFilters(values), \n })\n);\n\nconst EnhancedTitleSearchField = enhance(TitleSearchField);\n\nEnhancedTitleSearchField.propTypes = {\n classes: PropTypes.object,\n setFilters: PropTypes.func.isRequired,\n};\n\nexport default EnhancedTitleSearchField;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TitleSearchField from '../Inputs/TitleSearchInput';\n\n\n\nconst styles = theme => ({\n title:{\n display: \"flex\",\n alignItems: \"center\"\n },\n});\n\nconst Title = ({ defaultTitle, setFilters, classes }) => {\n return (\n <div className={classes.title} >\n {defaultTitle}\n <TitleSearchField setFilters={setFilters}/>\n </div>\n );\n};\n\nTitle.propTypes = {\n classes: PropTypes.object,\n setFilters: PropTypes.func.isRequired,\n};\n\n\nexport default withStyles(styles)(Title);\n\n","import grey from '@material-ui/core/colors/grey';\nimport amber from '@material-ui/core/colors/amber';\nimport lightBlue from '@material-ui/core/colors/lightBlue';\nimport blue from '@material-ui/core/colors/blue';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\n\nconst rowStyle = (record, index, defaultStyle = {}) => {\n if (!record) return defaultStyle\n if (record.isArchive)\n return {\n ...defaultStyle,\n borderLeftColor: grey[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n backgroundColor:grey[200],\n '&:hover': {\n backgroundColor: grey[300],\n },\n };\n if (record.statusRef === 'new')\n return {\n ...defaultStyle,\n borderLeftColor: amber[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n if (record.statusRef === 'processed')\n return {\n ...defaultStyle,\n borderLeftColor: lightBlue[300],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n if (record.statusRef === 'inWork')\n return {\n ...defaultStyle,\n borderLeftColor: blue[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n if (record.statusRef === 'completed')\n return {\n ...defaultStyle,\n borderLeftColor: green[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n if (record.statusRef === 'cancelled')\n return {\n ...defaultStyle,\n borderLeftColor: red[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n return defaultStyle;\n};\n\nexport default rowStyle;","import React, { Fragment } from 'react';\nimport compose from 'recompose/compose';\nimport { translate, CreateButton, List, ListView, ListController, Responsive, BulkDeleteButton, Filter, AutocompleteInput, DateField, DateInput, Datagrid, ReferenceField, ReferenceInput, SelectInput, CardActions, ExportButton, RefreshButton, TextField } from 'react-admin';\nimport { Tabs, Tab, Divider } from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport red from '@material-ui/core/colors/red';\nimport moment from 'moment'\nimport { ability } from '../../ability';\nimport { exporter } from '../../exporter';\nimport LabelsField from '../Fields/LabelsField';\nimport FileAttachedField from '../Fields/FileAttachedField';\nimport { DeadlineIcon } from '../Fields/DeadlineField';\nimport LinkField from '../Fields/linkField';\nimport { MeterWithLocationField } from '../Meter/MeterField';\n\nimport UserField from '../User/UserField';\nimport { OptionMeter } from '../Meter/MeterField';\nimport MoreButton from '../Buttons/MoreButton';\nimport BulkDownloadFilesButton from '../Buttons/BulkDownloadFilesButton';\nimport BulkArchiveButton from '../Buttons/BulkArchiveButton';\nimport BulkFavoriteButton from '../Buttons/BulkFavoriteButton';\nimport OrdersToXmlBulkActionsButton from './OrdersToXmlBulkActionsButton';\n\nimport BulkExportButton from '../Buttons/BulkExportButton';\nimport UserSuggestionComponent from '../User/UserSuggestionComponent';\nimport ResultField from './ResultField';\nimport AddressField from './AddressField';\nimport FavoriteButton from '../Buttons/FavoriteButton';\nimport Pagination from '../Layout/Pagination';\nimport TitleWithSearch from '../Layout/TitleWithSearch';\n\n\nimport { AddressSuggestionComponent } from './AddressComponents';\nimport rowStyle from './rowStyle';\n\nconst styles = theme => ({\n headerRow: {\n borderLeftColor: 'white',\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n },\n ml2: { marginLeft: \".5rem\" },\n deleteButton: {\n color: theme.palette.getContrastText(red[500]),\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n cellMinWidth: {\n width: '1px',\n padding: 0,\n },\n favoriteIcon: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n unfavoriteIcon: {\n color: theme.palette.divider,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n }\n});\nconst exportBuilder = (records, fetchRelatedRecords, translate, filterValues) => {\n\n exporter(records, 'Order', [\n { field: \"humanId\" },\n { field: \"createdAt\", format: 'L' },\n { field: \"completedAt\", format: 'L' },\n { field: \"completedDeadlineAt\", format: 'L' },\n { field: \"addrManual\" },\n { field: \"customer.name\" },\n { field: \"customer.phone\" },\n { field: \"verifier.name\" },\n { field: \"verifier.phone\" },\n { field: \"dispatcher.name\" },\n { field: \"dispatcher.phone\" },\n { field: \"meter.type\", translateValues: \"resources.Meter.enums.type\" },\n { field: \"meter.name\" },\n { field: \"meterLocation\", translateValues: \"resources.Order.enums.meterLocation\" },\n { field: \"meterUninstallAt\", format: 'L' },\n { field: \"statusRef\", translateValues: \"resources.Order.statuses\" },\n { field: \"resultRef\", translateValues: \"resources.Order.results\" },\n { field: \"resultDesc\" },\n { field: \"personalAccount\" },\n { field: \"invoice\" },\n { field: \"isSealNotInstalled\", translateValues: \"ra.boolean\" },\n { field: \"comment\" },\n ], translate, filterValues)\n};\n\nconst dateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric' };\n\nconst customerTypes = [\n { type: 'PHIS', name: 'Физическое лицо' },\n { type: 'JURE', name: 'Юридическое лицо' },\n];\n\n\nconst OrderFilter = (props) => {\n const regionIds = localStorage.getItem('regionIds').split(',');\n const districtIdOrCityIds = localStorage.getItem('districtIdOrCityIds').split(',');\n return (\n <Filter {...props}>\n {/* <SearchInput source=\"q\" alwaysOn /> */}\n <ReferenceInput source=\"statusRef\" reference=\"Status\" resettable alwaysOn >\n <SelectInput optionText=\"description\" />\n </ReferenceInput>\n <ReferenceInput source=\"regionId\" reference=\"Location\" filter={{ type: 'REGION', ids: regionIds }} allowEmpty>\n <AutocompleteInput suggestionComponent={AddressSuggestionComponent} optionText={record => (`${record.typeShort}. ${record.name}`)} />\n </ReferenceInput>\n <ReferenceInput source=\"districtIdOrCityId\" reference=\"Location\" filter={{ type: 'DISTRICT', ids: districtIdOrCityIds }} allowEmpty>\n <AutocompleteInput suggestionComponent={AddressSuggestionComponent} optionText={record => (`${record.typeShort}. ${record.name}`)} />\n </ReferenceInput>\n <ReferenceInput source=\"districtId\" reference=\"Location\" filter={{ type: 'DISTRICT', ids: districtIdOrCityIds }} allowEmpty >\n <AutocompleteInput suggestionComponent={AddressSuggestionComponent} optionText={record => (`${record.typeShort}. ${record.name}`)} />\n </ReferenceInput>\n <ReferenceInput source=\"creator\" reference=\"User\" sort={{ field: 'name', order: 'ASC' }} >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} />\n </ReferenceInput>\n <ReferenceInput source=\"dispatcher\" reference=\"User\" filter={{ role: \"DISPATCHER\" }} sort={{ field: 'name', order: 'ASC' }} >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} />\n </ReferenceInput>\n <ReferenceInput source=\"verifier\" reference=\"User\" filter={{ role: \"VERIFIER\" }} sort={{ field: 'name', order: 'ASC' }} >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} />\n </ReferenceInput>\n <ReferenceInput source=\"customer\" reference=\"User\" filter={{ role: \"CUSTOMER\" }} sort={{ field: 'name', order: 'ASC' }} >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} />\n </ReferenceInput>\n <SelectInput source=\"customerType\" choices={customerTypes} optionText=\"name\" optionValue=\"type\" />\n <ReferenceInput source=\"oneOfUser\" reference=\"User\" sort={{ field: 'name', order: 'ASC' }}>\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" />\n </ReferenceInput>\n <ReferenceInput source=\"resultRef\" reference=\"Result\" resettable >\n <SelectInput optionText=\"description\" />\n </ReferenceInput>\n <DateInput source=\"createdAt_gte\" defaultValue={moment().startOf('year').format()} />\n <DateInput source=\"createdAt_lte\" defaultValue={moment().endOf('year').format()} />\n <DateInput source=\"completedAt_gte\" />\n <DateInput source=\"completedAt_lte\" />\n <DateInput source=\"completedDeadlineAt_gte\" />\n <DateInput source=\"completedDeadlineAt_lte\" />\n <ReferenceInput source=\"meter\" reference=\"Meter\" >\n <SelectInput optionText={<OptionMeter />} />\n </ReferenceInput>\n </Filter>\n );\n\n};\n\nconst OrderActions = ({\n bulkActions,\n currentSort,\n className,\n resource,\n filters,\n displayedFilters,\n exporter,\n filterValues,\n permanentFilter,\n hasCreate,\n basePath,\n selectedIds,\n onUnselectItems,\n showFilter,\n total,\n ...rest\n}) => (\n <CardActions >\n {bulkActions && React.cloneElement(bulkActions, {\n basePath,\n filterValues,\n resource,\n selectedIds,\n onUnselectItems,\n })}\n {filters && React.cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n {hasCreate && <CreateButton basePath={basePath} />}\n {exporter !== false && (\n <ExportButton\n disabled={total === 0}\n maxResults={5000}\n resource={resource}\n sort={currentSort}\n filter={{ ...filterValues, ...permanentFilter }}\n exporter={exporter}\n />\n )}\n </CardActions>\n);\n\nconst OrderTabs = translate(({ filterValues, setFilters, translate, ...props }) => {\n const handleChange = (event, value) => {\n setFilters({ ...filterValues, tab: value });\n };\n\n return (\n <Fragment>\n <Tabs value={filterValues.tab} onChange={handleChange} centered >\n {/* РАБОТАЕТ ТАМ И ТАМ */}\n {ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"favorite\" }) && <Tab label={translate('resources.Order.tabs.favorite')} value=\"favorite\" />}\n {ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"current\" }) && <Tab label={translate('resources.Order.tabs.current')} value=\"current\" />}\n {ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"cancelled\" }) && <Tab label={translate('resources.Order.tabs.cancelled')} value=\"cancelled\" />}\n {ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"completed\" }) && <Tab label={translate('resources.Order.tabs.completed')} value=\"completed\" />}\n {ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"archived\" }) && <Tab label={translate('resources.Order.tabs.archived')} value=\"archived\" />}\n\n {/* НЕ РАБОТАЕТ В ПРОДКШЕНЕ!!! \n { ability.can(\"List\", new Order({tab:\"favorite\"})) && <Tab label={translate('resources.Order.tabs.favorite')} value=\"favorite\" /> } \n { ability.can(\"List\", new Order({tab:\"current\"})) && <Tab label={translate('resources.Order.tabs.current')} value=\"current\" /> }\n { ability.can(\"List\", new Order({tab:\"cancelled\"})) && <Tab label={translate('resources.Order.tabs.cancelled')} value=\"cancelled\" /> }\n { ability.can(\"List\", new Order({tab:\"completed\"})) && <Tab label={translate('resources.Order.tabs.completed')} value=\"completed\" /> }\n { ability.can(\"List\", new Order({tab:\"archived\"})) && <Tab label={translate('resources.Order.tabs.archived')} value=\"archived\" /> } */}\n </Tabs>\n <Divider />\n <Responsive\n small={\n <Fragment>\n {filterValues.tab === 'favorite' && <DatadridSimple {...props} />}\n {filterValues.tab === 'current' && <DatadridSimple {...props} />}\n {filterValues.tab === 'cancelled' && <DatadridSimple2 {...props} />}\n {filterValues.tab === 'completed' && <DatadridSimple2 {...props} />}\n {filterValues.tab === 'archived' && <DatadridSimple2 {...props} />}\n </Fragment>\n\n }\n />\n </Fragment>\n )\n});\n\nconst DatadridSimple = withStyles(styles)(({ classes, ...props }) => (\n <Datagrid rowClick=\"show\" rowStyle={rowStyle} classes={{ headerRow: classes.headerRow }} {...props}>\n <FavoriteButton classes={{ favoriteIcon: classes.favoriteIcon, unfavoriteIcon: classes.unfavoriteIcon }} cellClassName={classes.cellMinWidth} />\n <ReferenceField source=\"id\" reference=\"Order\" label=\"resources.Order.fields.humanId\" linkType=\"show\">\n <TextField source=\"humanId\" />\n </ReferenceField>\n <LinkField source=\"dispatcher\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"customer\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"verifier\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <AddressField source=\"addrManual\" />\n <LinkField source=\"meter\" reference=\"Meter\" linkType={false} sortable={false} >\n <MeterWithLocationField />\n </LinkField>\n <TextField source=\"comment\" />\n <DateField source=\"createdAt\" textAlign=\"right\" color=\"textSecondary\" showTime />\n <DateField source=\"completedDeadlineAt\" textAlign=\"right\" color=\"textSecondary\" />\n <LabelsField cellClassName={classes.cellMinWidth}>\n <DeadlineIcon />\n <FileAttachedField />\n </LabelsField>\n <MoreButton />\n </Datagrid>\n));\n\nconst DatadridSimple2 = withStyles(styles)(({ classes, ...props }) => (\n <Datagrid rowClick=\"show\" rowStyle={rowStyle} classes={{ headerRow: classes.headerRow }} {...props}>\n <FavoriteButton classes={{ favoriteIcon: classes.favoriteIcon, unfavoriteIcon: classes.unfavoriteIcon }} cellClassName={classes.cellMinWidth} />\n <ReferenceField source=\"id\" reference=\"Order\" label=\"resources.Order.fields.humanId\" linkType=\"show\">\n <TextField source=\"humanId\" />\n </ReferenceField>\n <LinkField source=\"dispatcher\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"customer\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"verifier\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <AddressField source=\"addrManual\" />\n <LinkField source=\"meter\" reference=\"Meter\" linkType={false} sortable={false} >\n <MeterWithLocationField />\n </LinkField>\n <TextField source=\"comment\" />\n <ResultField source=\"resultRef\" />\n <DateField source=\"createdAt\" textAlign=\"right\" color=\"textSecondary\" />\n <DateField source=\"completedAt\" textAlign=\"right\" color=\"textSecondary\" />\n <LabelsField cellClassName={classes.cellMinWidth}>\n <DeadlineIcon />\n <FileAttachedField />\n </LabelsField>\n <MoreButton />\n </Datagrid>\n));\n\nexport const DatagridUser = withStyles(styles)(({ classes, ...props }) => (\n <Datagrid rowClick=\"show\" rowStyle={rowStyle} classes={{ headerRow: classes.headerRow }} {...props}>\n <TextField source=\"humanId\" />\n <LinkField source=\"dispatcher\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"customer\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <LinkField source=\"verifier\" reference=\"User\" linkType={false} sortable={false} >\n <UserField />\n </LinkField>\n <AddressField source=\"addrManual\" />\n <LinkField source=\"meter\" reference=\"Meter\" linkType={false} sortable={false} >\n <MeterWithLocationField />\n </LinkField>\n <TextField source=\"comment\" />\n <DateField source=\"createdAt\" textAlign=\"right\" color=\"textSecondary\" showTime />\n <DateField source=\"completedAt\" textAlign=\"right\" color=\"textSecondary\" showTime />\n </Datagrid>\n));\n\n\nconst BulkActionToolbarView = ({ classes, translate, ...props }) => {\n\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate,)\n }\n\n return (\n <Fragment>\n <BulkFavoriteButton {...props} />\n <BulkDownloadFilesButton variant=\"outlined\" className={`${classes.ml2}`} {...props} />\n <BulkExportButton variant=\"outlined\" exporter={exportBuilderWithTranslate} className={`${classes.ml2}`} {...props} />\n { ability.can('exportfgis', 'Order') && <OrdersToXmlBulkActionsButton variant=\"outlined\" className={`${classes.ml2}`} {...props} />}\n { ability.can('archive', 'Order') && <BulkArchiveButton className={`${classes.ml2}`} {...props} />}\n { ability.can('delete', 'Order') && <BulkDeleteButton className={`${classes.deleteButton} ${classes.ml2}`} {...props} />}\n\n </Fragment>\n );\n};\n\nexport const BulkActionToolbar = compose(withStyles(styles), translate)(BulkActionToolbarView);\n\nconst getDefaultTab = () => {\n if (ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"current\" })) return \"current\";\n if (ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"cancelled\" })) return \"cancelled\";\n if (ability.can(\"List\", { constructor: { name: \"Order\" }, tab: \"completed\" })) return \"completed\";\n return \"current\";\n}\n\nconst OrderListView = ({ translate, filterValues, dispatch, ...props }) => {\n\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate, filterValues)\n }\n\n return (\n <ListController sort={{ field: 'createdAt', order: 'ASC' }} filterDefaultValues={{ tab: getDefaultTab() }} {...props}>\n {controllerProps => (\n <ListView\n actions={<OrderActions />}\n bulkActionButtons={<BulkActionToolbar />}\n exporter={exportBuilderWithTranslate}\n filters={<OrderFilter />}\n pagination={<Pagination />}\n title={<TitleWithSearch {...controllerProps} />}\n {...props}\n {...controllerProps}\n >\n <OrderTabs />\n </ListView>\n )\n }\n </ListController>\n );\n\n\n // return (\n // <List {...props}\n // bulkActionButtons={<BulkActionToolbar />}\n // sort={{field: 'createdAt', order: 'ASC'}}\n // filters={<OrderFilter />}\n // filterDefaultValues={{ tab: getDefaultTab()}}\n // exporter={exportBuilderWithTranslate}\n // >\n // <OrderTabs /> \n // </List>\n // );\n};\n\n\n\nconst mapStateToProps = (state) => ({ filterValues: (!state.form.filterForm) ? undefined : state.form.filterForm.values });\n\nconst enhance = compose(\n translate,\n connect(mapStateToProps)\n);\n\n\nconst OrderList = enhance(OrderListView);\n\n\n\nexport default OrderList;","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport green from '@material-ui/core/colors/green';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport Favorite from '@material-ui/icons/Favorite';\nimport FavoriteBorder from '@material-ui/icons/FavoriteBorder';\n\nimport { addField, translate, FieldTitle } from 'ra-core';\n\n\n\nconst CheckBoxConditionsInput = ( { checked, invert, children, onChange, translate, label, ...props}) => {\n \n const [isChecked, setChecked] = useState(checked);\n useEffect(() => {\n setChecked(checked)\n }, [checked]);\n \n if (React.Children.count(children) !== 1) {\n throw new Error('<CheckBoxConditionsInput> only accepts a single child');\n }\n\n return (\n <div>\n <FormControlLabel\n control={\n <Checkbox\n checked={isChecked}\n onChange={(e) => {\n setChecked(e.target.checked)\n if (onChange) onChange(e);\n }}\n value={\"check\"}\n color=\"primary\"\n />\n }\n label={ translate(label, { _: label })}\n />\n { (!!(isChecked^invert)) && React.cloneElement(children, { ...props }) }\n\n </div>\n \n );\n}\n\nCheckBoxConditionsInput.propTypes = {\n basePath: PropTypes.string,\n children: PropTypes.element.isRequired,\n className: PropTypes.string,\n classes: PropTypes.object,\n label: PropTypes.string,\n record: PropTypes.object,\n resource: PropTypes.string.isRequired,\n source: PropTypes.string,\n translate: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n};\n\n\nCheckBoxConditionsInput.defaultProps = {\n checked: false,\n invert: false,\n label: 'conditions is done?',\n};\n\nexport default compose( translate )(CheckBoxConditionsInput);","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nexport default (args) => {\n return apolloCoreClient.query({\n query: gql`\n query findOrders($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: OrderFilter) {\n findOrders(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\n id\n humanId\n statusRef\n customer {\n id\n name\n phone\n }\n addrManual\n updatedAt\n }\n }\n `,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport amber from '@material-ui/core/colors/amber';\nimport lightBlue from '@material-ui/core/colors/lightBlue';\nimport blue from '@material-ui/core/colors/blue';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport NewIcon from '@material-ui/icons/NewReleases';\nimport ProcessedIcon from '@material-ui/icons/HeadsetMic';\nimport InWorkIcon from '@material-ui/icons/Build';\nimport CompletedIcon from '@material-ui/icons/CheckCircle';\nimport CancelledIcon from '@material-ui/icons/Cancel';\n\n\n\nconst styles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n new:{\n backgroundColor:amber[500],\n color: theme.palette.getContrastText(amber[500]),\n },\n processed:{\n backgroundColor:lightBlue[500],\n color: theme.palette.getContrastText(lightBlue[500]),\n },\n inWork:{\n backgroundColor:blue[500],\n color: theme.palette.getContrastText(blue[500]),\n },\n completed:{\n backgroundColor:green[500],\n color: theme.palette.getContrastText(green[500]),\n },\n cancelled:{\n backgroundColor:red[500],\n color: theme.palette.getContrastText(red[500]),\n }\n});\n\n\nconst getStatusIcon = status => {\n switch (status) {\n case \"new\":{\n return <NewIcon />\n }\n break;\n case \"processed\":{\n return <ProcessedIcon />\n }\n break;\n case \"inWork\":{\n return <InWorkIcon />\n }\n break;\n case \"completed\":{\n return <CompletedIcon />\n }\n break;\n\n case \"cancelled\":{\n return <CancelledIcon />\n }\n break;\n\n default:{\n return <newIcon />\n }\n break;\n\n }\n}\n\n\nconst StatusChip = ({ className, classes, record, translate,}) => {\n if (!record) return null;\n \n return (\n <Chip avatar={<Avatar>{getStatusIcon(record.statusRef)}</Avatar>} label={translate(`resources.Order.statuses.${record.statusRef}`)} classes={{ avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className} ${classes[record.statusRef]}`} />\n );\n}\n\n\nexport default compose( withStyles(styles), translate, )(StatusChip);\n\n\n\nconst stylesStatusIcon = theme => ({\n new:{ color:amber[500] },\n processed:{ color:lightBlue[500] },\n inWork:{ color:blue[500] },\n completed:{ color:green[500] },\n cancelled:{ color:red[500] }\n});\n\n\nexport const StatusIcon = compose( withStyles(stylesStatusIcon), translate, )(({ className, classes, record, translate,}) => {\n if (!record) return null;\n \n return (\n <Tooltip title={translate(`resources.Order.statuses.${record.statusRef}`)} placement=\"top\">\n {\n React.cloneElement(getStatusIcon(record.statusRef), {\n className: classes[record.statusRef]\n }) \n }\n </Tooltip>\n );\n});","import React, { Fragment } from 'react';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Button, Link, linkToRecord, GET_LIST, withDataProvider, showNotification, translate } from 'react-admin';\nimport CompareIcon from '@material-ui/icons/Compare';\nimport Typography from '@material-ui/core/Typography';\nimport moment from 'moment'\nimport findDuplicateOrders from '../../dataProviders/Core/findDuplicateOrders';\nimport PhoneField from '../Fields/PhoneField';\nimport { StatusIcon } from '../Fields/StatusChip';\n\n\n\nconst styles = theme => ({\n link: {\n color: \"inherit\"\n },\n container: {\n minWidth: 400,\n marginTop: \"1rem\",\n },\n header: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n },\n title: {\n color: theme.palette.grey['400'],\n },\n body: {\n display: \"flex\",\n alignItems: \"center\",\n },\n PhoneIcon: {\n fontSize: \"1rem\",\n marginRight: \"0.25rem\",\n color: theme.palette.grey[\"500\"]\n },\n caption: { color: theme.palette.grey['500'] },\n ml2: { marginLeft: \"0.5rem\" },\n ml3: { marginLeft: \"1rem\" },\n mt2: { marginTop: \"0.5rem\" },\n});\n\nconst DuplicateOrder = withStyles(styles)(({ record, classes, ...props }) => {\n return (\n <Link to={`${linkToRecord(\"/Order\", record.id, \"show\")}`} className={classes.link}>\n <div className={classes.container}>\n <div className={classes.header}>\n <Typography variant=\"body1\" className={classes.title}>{record.humanId}</Typography>\n <Typography variant=\"caption\" className={classes.caption} >{moment(record.updatedAt).format('L')}</Typography>\n </div>\n <div className={classes.body}>\n <StatusIcon record={record} />\n <Typography variant=\"body1\" color=\"inherit\" className={classes.ml2} >{record.customer.name}</Typography>\n <PhoneField source=\"phone\" variant=\"caption\" className={`${classes.caption} ${classes.ml2}`} record={record.customer} />\n </div>\n </div>\n </Link>\n );\n});\n\n\nconst FindDuplicateButton = ({ address, dataProvider, dispatch, classes, translate, ...props }) => {\n\n const handleFindDuplicate = () => {\n findDuplicateOrders({\n page: 0,\n perPage: 10,\n sortField: 'updatedAt',\n sortOrder: 'DESC',\n filter: {\n addrManual: address,\n statusRefs: [\"new\", \"processed\", \"inWork\", \"cancelled\"],\n updatedAt_gte: moment().subtract(6, 'months').format(),\n },\n })\n .then(({ data }) => {\n\n const orders = data.findOrders\n const total = orders.length\n\n if (total === 0) return dispatch(showNotification('raExt.notification.duplicates_not_found'));\n\n dispatch(showNotification(\n <Fragment>\n <Typography variant=\"body1\" color=\"inherit\" gutterBottom>{translate('raExt.notification.duplicates_found', { smart_count: total })}</Typography>\n {orders.map(order => {\n return (\n <DuplicateOrder record={order} key={order.id} />\n );\n\n })}\n </Fragment>,\n 'info',\n { autoHideDuration: 7000 }\n ));\n\n })\n .catch((e) => {\n dispatch(showNotification(e.message, 'warning'));\n });\n };\n\n return (\n <Button\n variant=\"outlined\"\n label=\"raExt.action.findDuplicate\"\n onClick={handleFindDuplicate}\n disabled={!address}\n {...props}\n >\n <CompareIcon />\n </Button>\n\n\n );\n}\n\nexport default compose(\n withDataProvider,\n translate,\n withStyles(styles)\n)(FindDuplicateButton);\n","import React from 'react';\nimport Grid from '@material-ui/core/Grid';\n//import { withStyles } from '@material-ui/core/styles';\nimport { connect } from 'react-redux';\nimport { change,getFormValues } from 'redux-form';\nimport {\n EditButton,\n AutocompleteInput,\n ReferenceInput,\n TextInput,\n DisabledInput,\n required,\n REDUX_FORM_NAME\n} from 'react-admin';\n//import AutocompleteInput2 from '../Inputs/AutocompleteInput'\nimport { AddressSuggestionComponent } from './AddressComponents'\nimport CheckBoxConditionsInput from '../Inputs/CheckBoxConditionsInput';\nimport FindDuplicateButton from '../Buttons/FindDuplicateButton';\n\n\nlet _arrCities = [];\nlet _arrStreets = [];\nlet _cityId = null\n\nexport class AddressInput extends React.Component {\n\n changeAddress = (e, value, prev, prop) => {\n\n if (value === prev) return false;\n\n let {formData, change} = this.props;\n let {cityId, streetId, houseNum, houseCorp, houseFlat} = formData;\n\n switch( prop ){\n case 'cityId':\n const cityChoise = _arrCities.find(choice => choice.id === value);\n if (!cityChoise) return false;\n change(REDUX_FORM_NAME, 'streetId', null);\n change(REDUX_FORM_NAME, 'houseNum', null);\n change(REDUX_FORM_NAME, 'houseCorp', null);\n change(REDUX_FORM_NAME, 'houseFlat', null);\n change(REDUX_FORM_NAME, 'regionId', cityChoise.regionId);\n change(REDUX_FORM_NAME, 'districtId', cityChoise.districtIdOrCityId);\n change(REDUX_FORM_NAME, 'districtIdOrCityId', cityChoise.districtIdOrCityId);\n change(REDUX_FORM_NAME, 'addrManual', addressGenerate(value, null, null, null, null));\n break;\n\n case 'streetId':\n change(REDUX_FORM_NAME, 'houseNum', null);\n change(REDUX_FORM_NAME, 'houseCorp', null);\n change(REDUX_FORM_NAME, 'houseFlat', null);\n change(REDUX_FORM_NAME, 'addrManual', addressGenerate(cityId, value, null, null, null));\n break;\n\n case 'houseNum':\n change(REDUX_FORM_NAME, 'addrManual', addressGenerate(cityId, streetId, value, houseCorp, houseFlat));\n break;\n\n case 'houseCorp':\n change(REDUX_FORM_NAME, 'addrManual', addressGenerate(cityId, streetId, houseNum, value, houseFlat));\n break;\n\n case 'houseFlat':\n change(REDUX_FORM_NAME, 'addrManual', addressGenerate(cityId, streetId, houseNum, houseCorp, value));\n break;\n default: break;\n }\n \n }\n\n onChangeCheckBoxConditions = (e) => {\n const { formData, change } = this.props;\n if (e.target.checked) change(REDUX_FORM_NAME, 'districtId', formData.districtIdOrCityId);\n }\n\n render(){\n const {change, formData, className, ...props} = this.props;\n \n const regionIds = localStorage.getItem('regionIds').split(',');\n const districtIdOrCityIds = localStorage.getItem('districtIdOrCityIds').split(',');\n\n return (\n <Grid container spacing={16}>\n <Grid item xs={12} sm={6} lg>\n <ReferenceInput validate={required()} source=\"cityId\" allowEmpty reference=\"Location\" sort={{ field: 'level', order: 'ASC' }} perPage={300} filter={{ type: 'CITY', regionIds: regionIds , districtIdsOrCityIds: districtIdOrCityIds }} onChange={this.changeAddress} options={{ fullWidth: true, helperText:`Например: \"Краснодар\"` }} {...props} >\n <CityAutocompleteInput /> \n </ReferenceInput>\n </Grid>\n <Grid item xs={12} sm={6} lg={4}>\n <ReferenceInput source=\"streetId\" allowEmpty reference=\"Location\" sort={{ field: 'level', order: 'ASC' }} perPage={300} filter={{ type: 'STREET', parentIds: !!formData.cityId ? [formData.cityId] : null }} onChange={this.changeAddress} options={{ fullWidth: true, disabled:!formData.cityId, }} {...props} >\n <StreetAutocompleteInput formData={formData} /> \n </ReferenceInput>\n </Grid>\n <Grid item xs={4} lg={1}>\n <TextInput source=\"houseNum\" disabled={!formData.cityId} onChange={this.changeAddress} fullWidth {...props} />\n </Grid>\n <Grid item xs={4} lg={1}>\n <TextInput source=\"houseCorp\" disabled={!formData.cityId} onChange={this.changeAddress} fullWidth {...props} /> \n </Grid>\n <Grid item xs={4} lg={1}>\n <TextInput source=\"houseFlat\" disabled={!formData.cityId} onChange={this.changeAddress} fullWidth {...props} /> \n </Grid>\n <Grid item xs={12}> \n <CheckBoxConditionsInput onChange={this.onChangeCheckBoxConditions} checked={(formData.districtId === formData.districtIdOrCityId)} invert label=\"resources.Order.helper.addressMatches\" className={className} {...props}>\n <ReferenceInput\n source=\"districtId\"\n filter={{ type: 'DISTRICT', regionIds: regionIds , districtIdsOrCityIds: districtIdOrCityIds }}\n reference=\"Location\"\n perPage={30}\n allowEmpty\n >\n <AutocompleteInput suggestionComponent={AddressSuggestionComponent} optionText={record => (`${record.typeShort}. ${record.name}`)} \n /> \n </ReferenceInput>\n </CheckBoxConditionsInput>\n <div style={{ display: 'flex', alignItems: 'flex-end' }} >\n <DisabledInput source=\"addrManual\" {...props} style={{ flexGrow: 1 }}/>\n <FindDuplicateButton style={{ marginLeft: 8, marginBottom: 8 }} address={formData.addrManual}/>\n </div>\n \n <DisabledInput source=\"regionId\" style={{display: 'none'}} />\n <DisabledInput source=\"districtIdOrCityId\" style={{display: 'none'}} />\n </Grid>\n\n </Grid>\n );\n };\n}\n\nconst addressGenerate = ( cityId=null, streetId=null, houseNum=null, houseCorp=null, houseFlat=null) => {\n let city = null;\n let street = null;\n \n if (!!cityId) {\n const cityChoise = _arrCities.find(choice => choice.id === cityId);\n city = cityOptionRenderer(cityChoise);\n }\n\n if (!!streetId) {\n const streetChoise = _arrStreets.find(choice => choice.id === streetId);\n street = optionRendererStreet(streetChoise);\n }\n\n \n return `${city ? city : \"\"}${street ? \", \" + street : \"\"}${houseNum ? \", д. \"+houseNum : \"\"}${houseCorp ? \", корп. \" + houseCorp : \"\"}${ houseFlat ? \", кв. \" + houseFlat + \".\" : \"\"}`\n \n};\n\n\nconst cityOptionRenderer = choice => {\n if (!choice) return null\n let prefix = '';\n if(choice.parents != null) {\n for(let i=choice.parents.length-1; i>=0; i--) { \n prefix+= choice.parents[i].name+ ' '+choice.parents[i].typeShort + ', ';\n }\n }\n \n var result = prefix + `${choice.typeShort}. ${choice.name}`;\n return result;\n};\n\nconst CityAutocompleteInput = ( props ) => {\n const { choices } = props\n _arrCities = choices;\n \n return <AutocompleteInput optionText=\"unrestrictedName\" suggestionComponent={AddressSuggestionComponent} shouldRenderSuggestions={(val) => { return val.trim().length > 2 }} {...props}/>\n\n}\n\nconst optionRendererStreet = choice => { \n let prefix = ''\n if(choice.parents != null) { \n if(choice.parents.length > 1) {\n let flSt = false;\n for(let i=choice.parents.length-1; i>=0; i--) { \n let item = choice.parents[i]; \n if(item.id === _cityId) { flSt=true; continue; }\n if(flSt) prefix+= item.typeShort + '. ' + item.name + ', '; \n }\n }\n }\n\n var result = prefix + `${choice.typeShort}. ${choice.name}`;\n return result;\n};\n\n\n\n\n\nconst StreetAutocompleteInput = ( props ) => {\n const { choices, formData } = props\n _arrStreets = choices;\n _cityId = formData.cityId\n\n return <AutocompleteInput optionText={optionRendererStreet} suggestionComponent={AddressSuggestionComponent} shouldRenderSuggestions={(val) => { return val.trim().length > 0 }} inputValueMatcher={() => null} {...props} /> \n \n}\n\n\nconst mapStateToProps = (state, { record }) => ({\n formData: getFormValues(REDUX_FORM_NAME)(state) || record,\n});\n\nconst mapDispatchToProps = {\n change,\n}\n\nexport default connect( mapStateToProps, mapDispatchToProps )( AddressInput );","import React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { change, submit, isSubmitting, reset } from 'redux-form';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\n\nimport {\n required,\n minLength,\n email,\n translate,\n fetchEnd,\n fetchStart,\n showNotification,\n FormDataConsumer,\n Button,\n SaveButton,\n SimpleForm,\n TextInput,\n SelectInput,\n CREATE,\n resetForm,\n REDUX_FORM_NAME,\n crudGetMatching, // функция которая заставлякт обновить ReferenceInput\n} from 'react-admin';\nimport IconContentAdd from '@material-ui/icons/Add';\nimport IconCancel from '@material-ui/icons/Cancel';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport TypeField from '../Customer/TypeField';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport PaymentField from '../Customer/PaymentField';\nimport { dataProviderFactory } from '../../dataProviders/dataProviderFactory';\n\nconst styles = theme => ({\n toolbar: {\n margin: 0,\n backgroundColor: theme.palette.grey['100'],\n paddingLeft: theme.spacing.unit * 3,\n paddingRight: theme.spacing.unit * 3,\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n justifyContent: \"space-between\",\n },\n cancelButton: {\n color: fade(theme.palette.grey[900], 0.64),\n\n },\n});\n\nclass UserQuickCreateButton extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n error: false,\n showDialog: false\n };\n }\n\n role = this.props.source.substring(0, this.props.source.indexOf('.')).toUpperCase();\n\n handleClick = () => {\n const { reset, resetForm } = this.props;\n resetForm('user-quick-create')\n reset('user-quick-create')\n this.setState({ showDialog: true });\n };\n\n handleCloseClick = () => {\n const { reset, resetForm } = this.props;\n resetForm('user-quick-create')\n reset('user-quick-create')\n this.setState({ showDialog: false });\n\n };\n\n handleSaveClick = () => {\n const { submit } = this.props;\n submit('user-quick-create');\n };\n\n handleSubmit = values => {\n const { change, crudGetMatching, fetchStart, fetchEnd, showNotification, source, reset, resetForm, } = this.props;\n\n\n\n fetchStart();\n\n dataProviderFactory().then(dataProvider => {\n\n if (this.role !== \"CUSTOMER\") delete values.customer;\n\n dataProvider(CREATE, 'User', {\n data: {\n ...values,\n role: this.role,\n }\n })\n .then(({ data }) => {\n\n\n crudGetMatching(\n 'User',\n 'Order@' + source,\n { page: 1, perPage: 25 },\n { field: 'createdAt', order: 'DESC' },\n { role: this.role }\n );\n\n //change(REDUX_FORM_NAME, source, data.id); \n //resetForm('user-quick-create');\n //reset('user-quick-create'); \n //this.setState({ showDialog: false });\n\n //TODO: временное решение до исправления !!! \n let self = this;\n //change(REDUX_FORM_NAME, source, data.id); \n setTimeout(function () {\n change(REDUX_FORM_NAME, source, data.id);\n self.setState({ showDialog: false });\n\n //resetForm('user-quick-create')\n //reset('user-quick-create') \n }, 1000);\n\n })\n .catch(error => {\n showNotification(error.message, 'error');\n\n })\n .finally(() => {\n fetchEnd();\n });\n });\n };\n\n render() {\n const { showDialog } = this.state;\n const { isSubmitting, classes } = this.props;\n\n\n const validateName = [required(), minLength(2)];\n const validateEmail = [email()];\n\n const arrTypes = [\n { type: 'PHIS' },\n { type: 'JURE' },\n ];\n\n const arrPayments = [\n { payment: 'CASH' },\n { payment: 'CASHLESS' },\n ];\n\n return (\n <Fragment>\n <Button onClick={this.handleClick} label=\"ra.action.create\">\n <IconContentAdd />\n </Button>\n <Dialog fullWidth open={showDialog} onClose={this.handleCloseClick} aria-label=\"Create user\">\n\n <DialogTitle><TitleHeader role={this.role}></TitleHeader></DialogTitle>\n\n <DialogContent>\n <SimpleForm form=\"user-quick-create\" resource=\"User\" onSubmit={this.handleSubmit} toolbar={null} >\n\n <TextInput source=\"name\" fullWidth validate={validateName} />\n <PhoneInput source=\"phone\" inputProps={{ autoComplete: \"new-password\" }} />\n <TextInput source=\"email\" type=\"email\" validate={validateEmail} inputProps={{ autoComplete: \"new-password\" }} />\n <TextInput source=\"password\" type=\"password\" inputProps={{ autoComplete: \"new-password\" }} />\n <FormDataConsumer style={{ display: \"flex\", flexDirection: \"column\" }}>{\n ({ formData, ...props }) => {\n\n if (this.role === \"CUSTOMER\") {\n let arrCustomerInputs = [\n <SelectInput key=\"type\" source=\"customer.type\" choices={arrTypes} optionValue=\"type\" optionText={<TypeField />} defaultValue={\"PHIS\"} {...props} />,\n ]\n\n if (formData.customer !== undefined && (formData.customer.type === undefined || formData.customer.type === \"JURE\")) {\n arrCustomerInputs.push(\n <TextInput key=\"organizationName\" source=\"customer.organizationName\" {...props} />,\n <TextInput key=\"organizationInn\" source=\"customer.organizationInn\" {...props} />,\n <SelectInput key=\"payment\" source=\"customer.payment\" choices={arrPayments} optionValue=\"payment\" optionText={<PaymentField />} defaultValue={\"CASH\"} {...props} />\n )\n }\n\n return arrCustomerInputs\n }\n\n }\n }\n </FormDataConsumer>\n </SimpleForm>\n </DialogContent>\n\n <DialogActions className={`${classes.toolbar}`}>\n <SaveButton\n label=\"ra.action.create\"\n saving={isSubmitting}\n onClick={this.handleSaveClick}\n />\n <Button className={`${classes.cancelButton}`} label=\"ra.action.cancel\" onClick={this.handleCloseClick}>\n <IconCancel />\n </Button>\n </DialogActions>\n </Dialog>\n </Fragment>\n );\n }\n}\n\nconst TitleHeader = translate(({ translate, role }) => (\n <span>{translate(`resources.User.dialogTitle.create.${role}`)}</span>\n))\n\nconst mapStateToProps = state => {\n return ({\n isSubmitting: isSubmitting('user-quick-create')(state)\n });\n}\n\nconst mapDispatchToProps = {\n change,\n crudGetMatching,\n fetchEnd,\n fetchStart,\n showNotification,\n submit,\n reset,\n resetForm,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(\n withStyles(styles)(UserQuickCreateButton)\n\n);","import React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport Drawer from '@material-ui/core/Drawer';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardActions from '@material-ui/core/CardActions';\nimport IconButton from '@material-ui/core/IconButton';\nimport IconImageEye from '@material-ui/icons/RemoveRedEye';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Button, SimpleShowLayout, TextField} from 'react-admin';\n\nimport RoleField from './RoleField';\nimport PhoneField from '../Fields/PhoneField';\n\n\nconst styles = theme => ({\n paper: {\n minWidth:\"16rem\",\n },\n mlAuto:{ marginLeft:\"auto\" }\n});\n\nconst UserPreviewView = ({ classes, ...props }) => (\n <SimpleShowLayout {...props}>\n <TextField source=\"name\" className={classes.field} />\n <RoleField source=\"role\" />\n <PhoneField source=\"phone\"/>\n <TextField source=\"email\" />\n </SimpleShowLayout>\n);\n\nconst mapStateToProps = (state, props) => ({\n // Get the record by its id from the react-admin state.\n record: state.admin.resources[props.resource]\n ? state.admin.resources[props.resource].data[props.id]\n : null,\n version: state.admin.ui.viewVersion\n});\n\nconst UserPreview = connect(mapStateToProps, {})(\n withStyles(styles)(UserPreviewView)\n);\n\nclass UserQuickPreviewButton extends Component {\n state = { showPanel: false };\n\n \n handleClick = () => {\n this.setState({ showPanel: true });\n };\n\n handleCloseClick = () => {\n this.setState({ showPanel: false });\n };\n\n render() {\n const { showPanel } = this.state;\n const { id, classes } = this.props;\n return (\n <Fragment>\n <Button onClick={this.handleClick} label=\"ra.action.show\">\n <IconImageEye />\n </Button>\n <Drawer anchor=\"right\" open={showPanel} onClose={this.handleCloseClick} classes={{paper: classes.paper}}>\n <CardActions>\n <IconButton onClick={this.handleCloseClick} aria-label=\"Close\" className={classes.mlAuto}>\n <CloseIcon />\n </IconButton>\n </CardActions>\n <UserPreview id={id} basePath=\"/User\" resource=\"User\" />\n </Drawer>\n </Fragment>\n );\n }\n}\n\nexport default connect()(withStyles(styles)(UserQuickPreviewButton));","import React, { Fragment } from 'react';\nimport { ReferenceInput, AutocompleteInput } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Field } from 'redux-form';\nimport UserQuickCreateButton from './UserQuickCreateButton';\nimport UserQuickPreviewButton from './UserQuickPreviewButton';\nimport UserSuggestionComponent from './UserSuggestionComponent';\nimport { ability } from '../../ability';\n\n\n\nconst styles = theme => ({\n container: {\n display:\"inline-block\"\n },\n root: {\n height: \"unset\",\n flexDirection: \"column\",\n alignItems: \"start\",\n },\n});\n\nconst UserReferenceInput = ({classes, ...props}) => {\n\n return (\n <Fragment >\n {/* <ReferenceInput {...props} reference=\"User\" sort={{ field: 'createdAt', order: 'DESC' }} allowEmpty >\n <SelectInput optionText={<UserOption />} classes={{root: classes.root}}/> \n </ReferenceInput> */}\n \n <ReferenceInput {...props} reference=\"User\" sort={{ field: 'name', order: 'ASC' }} allowEmpty classes={{container: classes.container}} >\n <AutocompleteInput optionText=\"name\" suggestionComponent={UserSuggestionComponent} /> \n </ReferenceInput>\n\n { ability.can(\"create\", { constructor:{name:\"User\"},role: props.source.substring(0, props.source.indexOf('.')).toUpperCase()}) && (\n <UserQuickCreateButton source={props.source} />\n )}\n { ability.can(\"read\", { constructor:{name:\"User\"},role: props.source.substring(0, props.source.indexOf('.')).toUpperCase()}) && (\n <Field name={props.source} component={({ input }) => input.value && <UserQuickPreviewButton id={input.value} />}/>\n )}\n \n </Fragment>\n );\n} \n\nexport default withStyles(styles)(UserReferenceInput);\n\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { crudCreate, SaveButton, Toolbar } from 'react-admin';\nimport ProcessIcon from '@material-ui/icons/HeadsetMic';\n\n// A custom action creator which modifies the values before calling the default crudCreate action creator\nconst createWithProcess = (values, resource, basePath, redirectTo) =>\n crudCreate(resource, { ...values, statusRef: \"processed\" }, basePath, redirectTo);\n\nclass CreateWithProcessButtonView extends Component {\n handleClick = () => {\n const { resource, basePath, handleSubmit, redirect, createWithProcess } = this.props;\n\n return handleSubmit(values => {\n createWithProcess(values, resource, basePath, redirect);\n });\n };\n\n render() {\n const { handleSubmitWithRedirect, createWithProcess, user, ...props } = this.props;\n\n return (\n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.process\"\n icon={<ProcessIcon />}\n {...props}\n />\n );\n }\n}\n\nconst mapStateToProps = state => ({ user: state.user });\nconst mapDispatchToProps = { createWithProcess };\n\n\nconst CreateWithProcessButton = connect( mapStateToProps, mapDispatchToProps, )(CreateWithProcessButtonView);\n\n\nexport default CreateWithProcessButton;","import { useEffect, useState } from 'react'\nimport gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nconst GET_ENUMS = gql`\nquery getEnums($name: String!) {\n __type(name: $name) {\n name\n enumValues{\n name\n description\n } \n }\n}\n`\n\nexport default function (enumName) {\n const [enums, updateEnums] = useState([])\n\n useEffect(() => {\n\n async function fetchData() {\n try {\n const enumData = await apolloCoreClient.query({\n query: GET_ENUMS,\n variables: { name: enumName },\n onError: (error) => {\n alert(error)\n }\n });\n\n updateEnums(enumData.data.__type.enumValues)\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n\n }, [])\n return enums;\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { SelectInput } from \"react-admin\";\nimport useEnum from '../../dataProviders/Core/useEnum'\n\nconst EnumInput = ({ Enum, filter, record, resource, source, translate, useEnum, option, ...props }) => {\n\n const enums = useEnum(Enum);\n\n const selected = enums.filter(choice => choice.name === get(record, source));\n\n const choices = (filter) ? [...new Set([...selected, ...enums.filter(filter)])] : enums\n\n const getOption = choice => option ? `${option}.${choice.name}` : `resources.${resource}.enums.${source}.${choice.name}`;\n\n\n return (\n <SelectInput source={source} resource={resource} choices={choices} optionValue=\"name\" optionText={getOption} {...props} />\n );\n\n}\n\nEnumInput.defaultProps = {\n useEnum\n};\n\nEnumInput.propTypes = {\n source: PropTypes.string,\n Enum: PropTypes.string.isRequired,\n};\n\n\nexport default EnumInput;","import React from 'react';\nimport { AutocompleteInput, Create, SimpleForm, LongTextInput, ReferenceInput, DateInput, Toolbar, SaveButton, translate, required, } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddressInput from './AddressInput';\nimport UserReferenceInput from '../User/UserReferenceInput';\nimport CreateWithProcessButton from '../Buttons/CreateWithProcessButton';\nimport { ability } from '../../ability';\nimport EnumInput from '../Inputs/EnumInput';\nimport { optionMeter } from '../Meter/MeterField';\n\nimport { requiredCustom } from '../../utils';\n\n\nconst styles = theme => ({\n mr2: { marginRight: \".5rem\" },\n});\n\n\nconst OrderCreate = translate(({ permissions, translate, ...props }) => {\n\n\n return (\n <Create {...props} title=\"raExt.page.createOrderTitle\" >\n <SimpleForm toolbar={<CreateToolbar permissions={permissions} />} redirect=\"list\" >\n <UserReferenceInput source=\"customer.id\" reference=\"User\" allowEmpty filter={{ role: \"CUSTOMER\" }} validate={requiredCustom()} />\n <AddressInput />\n <ReferenceInput source=\"meter.id\" reference=\"Meter\" sort={{ field: 'name', order: 'ASC' }} allowEmpty>\n <AutocompleteInput optionText={optionMeter(translate)} />\n </ReferenceInput>\n <EnumInput source=\"meterLocation\" Enum=\"MeterLocation\" allowEmpty emptyValue={null} />\n <LongTextInput source=\"comment\" helperText={translate(\"resources.Order.helper.comment\")} />\n <DateInput source=\"meterUninstallAt\" />\n <DateInput source=\"completedDeadlineAt\" validate={required()} helperText={translate(\"resources.Order.helper.completedDeadlineAt\")} />\n </SimpleForm>\n </Create>\n );\n});\n\n// class Order {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\nconst CreateToolbar = withStyles(styles)(({ classes, ...props }) => {\n const { permissions, record } = props;\n\n return (\n <Toolbar {...props} >\n { ability.can(\"process\", { constructor: { name: \"Order\" }, status: record.statusRef }) && (\n <CreateWithProcessButton className={`${classes.mr2}`} label=\"raExt.action.create_and_process\" redirect=\"list\" submitOnEnter={false} />\n )}\n { ability.can(\"create\", { constructor: { name: \"Order\" }, status: record.statusRef }) && (\n <SaveButton className={`${classes.mr2}`} label=\"ra.action.create\" redirect=\"list\" submitOnEnter={true} />\n )}\n { ability.can(\"create\", { constructor: { name: \"Order\" }, status: record.statusRef }) && (\n <SaveButton label=\"raExt.action.create_and_continue\" redirect={false} submitOnEnter={false} variant=\"outlined\" />\n )}\n\n </Toolbar>\n );\n});\n\nexport default OrderCreate;","import React from 'react';\nimport moment from 'moment'\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { translate } from 'react-admin';\nimport FavoriteButton from '../Buttons/FavoriteButton';\n\nconst styles = theme => ({\n title:{\n display: \"flex\",\n alignItems: \"center\"\n },\n titleSecondary:{\n fontSize: \"0.875rem\",\n color: fade(theme.palette.primary.contrastText, 0.87) \n },\n ml2:{ marginLeft: \".5rem\" },\n mlAuto:{ marginLeft: \"auto\" },\n favoriteIcon: {\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.contrastText, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n unfavoriteIcon: {\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.contrastText, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n }\n});\n\n\n\nconst Title = ({ record, translate, className, classes,locales,options={}, ...props }) => {\n\n\n let helperText = `${(!!record.resultRef) ? `${translate(`resources.Order.results.${record.resultRef}`)}` : `${translate(`resources.Order.statuses.${record.statusRef}`)}`}`\n \n \n \n return (\n <div className={classes.title} >\n <FavoriteButton {...props} classes={{favoriteIcon: classes.favoriteIcon, unfavoriteIcon: classes.unfavoriteIcon}} record={record}/>\n <Typography variant=\"title\" color=\"inherit\" noWrap>\n <span>{`${translate('resources.Order.name', { smart_count: 1 })} ${record.humanId}`}</span>\n <span className={`${classes.titleSecondary} ${classes.ml2}`}>{`${helperText}`}</span>\n </Typography>\n </div>\n );\n};\n\nexport default compose( withStyles(styles), translate, )( Title );","import React from 'react';\nimport compose from 'recompose/compose';\nimport moment from 'moment'\nimport { withStyles } from '@material-ui/core/styles';\nimport CardContent from '@material-ui/core/CardContent';\nimport PhoneIcon from '@material-ui/icons/Call';\nimport MeterIcon from '@material-ui/icons/DevicesOther';\nimport { ability } from '../../ability'\n\nimport AddressIcon from '@material-ui/icons/Place';\nimport CommentIcon from '@material-ui/icons/Comment';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport { translate } from 'react-admin';\nimport Avatar from '@material-ui/core/Avatar';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport StatusChip from '../Fields/StatusChip';\nimport { DeadlineChip } from '../Fields/DeadlineField';\nimport ArchiveChip from '../Fields/ArchiveChip';\nimport MeterField from '../Meter/MeterField';\nimport LinkField from '../Fields/linkField';\nimport PhoneField from '../Fields/PhoneField';\n\nconst styles = theme => ({\n avatar: {\n width: 40,\n height: 40,\n backgroundColor:theme.palette.grey[\"400\"],\n },\n headline:{\n display: \"flex\",\n },\n textSecondary:{\n color: theme.palette.text.secondary,\n },\n subheading:{\n display: \"flex\",\n },\n flex: {\n display: \"flex\",\n },\n flexColumn: {\n flexDirection: \"column\"\n },\n justifyEnd: {\n justifyContent: \"flex-end\"\n },\n mlAuto: {\n marginLeft: \"auto\",\n },\n ml1:{\n marginLeft: \"0.25rem\"\n },\n ml2:{\n marginLeft: \"0.5rem\"\n },\n ml3:{\n marginLeft: \"1rem\"\n },\n mt2:{\n marginTop: \"0.5rem\"\n },\n mt3:{\n marginTop: \"1rem\"\n },\n iconHeadline:{\n fontSize:\"inherit\",\n marginRight:\"0.5rem\",\n height: \"1.35417em\"\n },\n iconSubheading:{\n fontSize:\"inherit\",\n marginRight:\"0.25rem\",\n height: \"1.5em\"\n },\n iconTextSecondary:{\n color:theme.palette.grey[\"400\"],\n },\n chipSuccess:{\n backgroundColor: green[\"400\"],\n },\n chipError:{\n backgroundColor: red[\"400\"],\n },\n iconChip:{\n marginLeft:\"4px\",\n height: 24,\n width: 24,\n \n },\n});\n\nconst FastView = ({ className, classes, locales, options={}, translate, record, ...props }) =>{\n\n if (!record) return null;\n \n return(\n <CardContent >\n <Grid container spacing={16}>\n <Grid item xs={12} sm className={`${classes.flex} ${classes.flexColumn}`}>\n {(!!record.customer && ability.can('read', \"Order\", \"customer\")) && (\n <div className={`${classes.flex}`}> \n <Avatar className={classes.avatar} >NN</Avatar>\n <div className={`${classes.ml2}`}>\n <Typography className={classes.headline} variant=\"title\">{record.customer.name}</Typography>\n <Typography className={classes.subheading} variant=\"caption\" noWrap><PhoneIcon className={classes.iconSubheading}/><PhoneField record={record.customer} source=\"phone\" variant=\"caption\" color=\"inherit\"/></Typography>\n </div>\n </div>\n )}\n { ability.can('read', \"Order\", \"addrManual\") && (\n <div className={`${classes.flex} ${classes.ml2} ${classes.mt3}`}>\n <AddressIcon className={`${classes.iconTextSecondary}`}/>\n <Typography className={`${classes.ml2}`} variant=\"subheading\" >{record.addrManual}</Typography>\n </div>\n )}\n { ability.can('read', \"Order\", \"meter\") && (\n <div className={`${classes.flex} ${classes.ml2} ${classes.mt3}`}>\n <MeterIcon className={`${classes.iconTextSecondary}`}/>\n <LinkField basePath={props.basePath} record={record} source=\"meter\" reference=\"Meter\" emptyValue=\"raExt.notification.order_meter_empty_data\" className={`${classes.ml2}`} linkType={false}><MeterField variant=\"subheading\" /></LinkField>\n </div>\n )}\n { ability.can('read', \"Order\", \"comment\") && (\n <div className={`${classes.flex} ${classes.ml2} ${classes.mt3}`}> \n <CommentIcon className={`${classes.iconTextSecondary}`}/>\n <Typography className={`${classes.ml2}`} variant=\"subheading\" >{(!!record.comment)? record.comment : <span className={`${classes.textSecondary}`}>Без комментариев</span>}</Typography>\n </div>\n )}\n </Grid>\n <Grid item xs={12} sm className={`${classes.flex} ${classes.justifyEnd}`}>\n <StatusChip record={record} />\n { ability.can('read', \"Order\", \"completedDeadlineAt\") && <DeadlineChip record={record} className={`${classes.ml1}`} />}\n <ArchiveChip record={record} className={`${classes.ml1}`} />\n </Grid>\n </Grid>\n <div className={`${classes.flex} ${classes.justifyEnd}`}>\n { ability.can('read', \"Order\", \"creator\") && <Typography color=\"textSecondary\" variant=\"caption\" >{`${translate('resources.Order.fields.created')}: ${record.creator.name}`}</Typography> }\n { ability.can('read', \"Order\", \"createdAt\") && <Typography color=\"textSecondary\" variant=\"caption\" className={`${classes.ml2}`} >{`${translate('resources.Order.fields.createdAt')}: ${moment(record.createdAt).format('L')}`}</Typography> }\n { ability.can('read', \"Order\", \"updatedAt\") && <Typography color=\"textSecondary\" variant=\"caption\" className={`${classes.ml2}`} >{`${translate('resources.Order.fields.updatedAt')}: ${moment(record.updatedAt).format('L')}`}</Typography> }\n { ability.can('read', \"Order\", \"completedDeadlineAt\") && <Typography color=\"textSecondary\" variant=\"caption\" className={`${classes.ml2}`} >{`${translate('resources.Order.fields.completedDeadlineAt')}: ${moment(record.completedDeadlineAt).format('L')}`}</Typography> }\n { ability.can('read', \"Order\", \"completedAt\") && <Typography color=\"textSecondary\" variant=\"caption\" className={`${classes.ml2}`} >{`${translate('resources.Order.fields.completedAt')}: ${(!record.completedAt) ? translate('raExt.notification.noData') : moment(record.completedAt).format('L')}`}</Typography> }\n </div>\n </CardContent>\n )\n};\n\n\nexport default compose( withStyles(styles), translate, )(FastView);\n\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { crudUpdate, SaveButton, Toolbar } from 'react-admin';\nimport ProcessIcon from '@material-ui/icons/HeadsetMic';\n\n// A custom action creator which modifies the values before calling the default crudCreate action creator\nconst saveWithProcess = (values, record, resource, basePath, redirectTo) =>\n crudUpdate(resource, record.id, { ...values, statusRef: \"processed\" }, record, basePath, redirectTo);\n\nclass SaveWithProcessButtonView extends Component {\n handleClick = () => {\n const { resource, record, basePath, handleSubmit, redirect, saveWithProcess } = this.props;\n\n return handleSubmit(values => {\n saveWithProcess(values, record, resource, basePath, redirect);\n });\n };\n\n render() {\n const { handleSubmitWithRedirect, saveWithProcess, ...props } = this.props;\n\n return (\n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.process\"\n icon={<ProcessIcon />}\n {...props}\n />\n );\n }\n}\n\nconst SaveWithProcessButton = connect(\n undefined,\n { saveWithProcess }\n)(SaveWithProcessButtonView);\n\n\nexport default SaveWithProcessButton;","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { crudUpdate, SaveButton, Toolbar } from 'react-admin';\nimport InWorkIcon from '@material-ui/icons/Build';\n\n// A custom action creator which modifies the values before calling the default crudCreate action creator\nconst saveWithInWork = (values, record, resource, basePath, redirectTo) =>\n crudUpdate(resource, record.id, { ...values, statusRef: \"inWork\" }, record, basePath, redirectTo);\n\nclass SaveWithInWorkButtonView extends Component {\n handleClick = () => {\n const { resource, record, basePath, handleSubmit, redirect, saveWithInWork } = this.props;\n\n return handleSubmit(values => {\n saveWithInWork(values, record, resource, basePath, redirect);\n });\n };\n\n render() {\n const { handleSubmitWithRedirect, saveWithInWork, ...props } = this.props;\n\n return (\n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.in_work\"\n icon={<InWorkIcon />}\n {...props}\n />\n );\n }\n}\n\nconst SaveWithInWorkButton = connect(\n undefined,\n { saveWithInWork }\n)(SaveWithInWorkButtonView);\n\n\nexport default SaveWithInWorkButton;","import React, { Component } from 'react';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { crudUpdate, startUndoable, SaveButton, translate, showNotification } from 'react-admin';\nimport CompleteIcon from '@material-ui/icons/CheckCircle';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { SubmissionError } from 'redux-form';\n\nconst validate = (values, translate) => {\n const errors = {};\n\n if (!values.resultRef) errors.resultRef = translate('resources.Order.errors.resultRef');\n if (!values.invoice && values.isSealNotInstalled === false) errors.invoice = translate('resources.Order.errors.invoice');\n if (values.files < 1) errors.files = 'resources.Order.errors.files';\n \n \n return Object.keys(errors).length !== 0 ? errors : undefined;\n};\n\n\nconst saveWithComplete = (values, record, resource, basePath, redirectTo) =>\n crudUpdate(resource, record.id, { ...values, statusRef: \"completed\" }, record, basePath, redirectTo);\n\nclass SaveWithCompleteButton extends Component {\n handleClick = () => {\n const { resource, record, basePath, handleSubmit, redirect, startUndoable, showNotification, translate } = this.props;\n \n return handleSubmit(values => {\n \n return new Promise((resolve, reject) => {\n const errors = validate(values, translate);\n if (errors) {\n showNotification('ra.message.invalid_form', 'warning');\n reject(new SubmissionError(errors));\n } else {\n resolve(\n startUndoable(\n saveWithComplete(values, record, resource, basePath, redirect)\n )\n );\n }\n });\n\n \n });\n };\n\n render() {\n const { handleSubmitWithRedirect, startUndoable, showNotification, translate, ...props } = this.props;\n \n if (this.props.disabled) {\n return ( \n <Tooltip title={translate('resources.Order.helper.changeResult')} placement=\"top\">\n <div>\n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.complete\"\n icon={<CompleteIcon />}\n {...props}\n />\n </div>\n </Tooltip> );\n } else {\n return ( \n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.complete\"\n icon={<CompleteIcon />}\n {...props}\n /> );\n };\n }\n}\n\n\n\n\n\n\nconst mapDispatchToProps = {\n startUndoable,\n showNotification,\n}\n\nconst enhance = compose(\n connect( undefined, mapDispatchToProps),\n translate,\n);\n\n\nexport default enhance(SaveWithCompleteButton);\n\n","import React, { Component } from 'react';\nimport compose from 'recompose/compose';\nimport { connect } from 'react-redux';\nimport { crudUpdate, startUndoable, SaveButton, translate, showNotification } from 'react-admin';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { SubmissionError } from 'redux-form';\n\n\nconst validate = (values, translate) => {\n const errors = {};\n \n if (!values.resultRef) errors.resultRef = translate('resources.Order.errors.resultRef');\n if (!values.resultDesc) errors.resultDesc = translate('resources.Order.errors.resultDesc');\n \n \n return Object.keys(errors).length !== 0 ? errors : undefined;\n};\n\nconst saveWithCancel = (values, record, resource, basePath, redirectTo) =>\n crudUpdate(resource, record.id, { ...values, statusRef: \"cancelled\" }, record, basePath, redirectTo);\n\nclass SaveWithCancelButton extends Component {\n handleClick = () => {\n const { resource, record, basePath, handleSubmit, redirect, startUndoable, translate, showNotification } = this.props;\n\n return handleSubmit(values => {\n return new Promise((resolve, reject) => {\n const errors = validate(values, translate);\n if (errors) {\n showNotification('ra.message.invalid_form', 'warning');\n reject(new SubmissionError(errors));\n } else {\n resolve( \n startUndoable(\n saveWithCancel(values, record, resource, basePath, redirect)\n )\n );\n }\n });\n });\n };\n\n render() {\n const { handleSubmitWithRedirect, startUndoable, showNotification, translate, ...props } = this.props;\n\n\n if (this.props.disabled) {\n return ( \n <Tooltip title={translate('resources.Order.helper.changeResult')} placement=\"top\">\n <div>\n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.cancel\"\n icon={<CancelIcon />}\n {...props}\n />\n </div>\n </Tooltip> );\n } else {\n return ( \n <SaveButton\n handleSubmitWithRedirect={this.handleClick}\n label=\"raExt.action.cancel\"\n icon={<CancelIcon />}\n {...props}\n /> );\n };\n }\n}\n\nconst enhance = compose(\n connect( undefined, {\n startUndoable,\n showNotification,\n }),\n translate,\n);\n\n\nexport default enhance(SaveWithCancelButton);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport UnarchiveIcon from '@material-ui/icons/Unarchive';\n// import { archive, unarchive } from '../Actions/ArchiveAction';\n\nimport { Button, crudUpdate } from 'react-admin';\nimport { startUndoable } from 'ra-core';\n\nconst styles = theme => ({\n button: {\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n },\n archiveButton: {\n color: theme.palette.error.main,\n borderColor: fade(theme.palette.error.main, 0.5),\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n borderColor: theme.palette.error.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n\n },\n unarchiveButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n});\n\nclass ArchiveButton extends Component {\n\n\n handleArchive = () => {\n const { startUndoable, resource, record, basePath, redirect } = this.props;\n startUndoable(\n // archive(resource, record.id, record, basePath, redirect)\n crudUpdate(resource, record.id, { id: record.id, isArchive: true, authStatus: \"BANNED\" }, record, basePath, redirect)\n );\n };\n\n handleUnarchive = () => {\n const { startUndoable, resource, record, basePath, redirect } = this.props;\n startUndoable(\n // unarchive(resource, record.id, record, basePath, redirect)\n crudUpdate(resource, record.id, { id: record.id, isArchive: false }, record, basePath, redirect)\n );\n\n };\n\n render() {\n const { record, className, classes } = this.props;\n if (!record || record.isArchive === undefined) return null;\n\n\n return !record.isArchive\n ? (<Button\n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.archive\"\n onClick={this.handleArchive}\n className={`${classes.button} ${classes.archiveButton} ${className}`}\n >\n <ArchiveIcon />\n </Button>)\n : (<Button\n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.unarchive\"\n onClick={this.handleUnarchive}\n className={`${classes.button} ${classes.unarchiveButton} ${className}`}\n >\n <UnarchiveIcon />\n </Button>);\n\n }\n}\n\nArchiveButton.propTypes = {\n record: PropTypes.object,\n startUndoable: PropTypes.func,\n\n};\n\nconst enhance = compose(\n withStyles(styles),\n connect(\n null,\n {\n startUndoable,\n }\n )\n);\n\nexport default enhance(ArchiveButton);","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M15.5,17H14L12,9.5L10,17H8.5L6.1,7H7.8L9.34,14.5L11.3,7H12.7L14.67,14.5L16.2,7H17.9M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M16.2,17H14.2L12,13.2L9.8,17H7.8L11,12L7.8,7H9.8L12,10.8L14.2,7H16.2L13,12M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19M10.59,10.08C10.57,10.13 10.3,11.84 8.5,14.77C8.5,14.77 5,16.58 5.83,17.94C6.5,19 8.15,17.9 9.56,15.27C9.56,15.27 11.38,14.63 13.79,14.45C13.79,14.45 17.65,16.19 18.17,14.34C18.69,12.5 15.12,12.9 14.5,13.09C14.5,13.09 12.46,11.75 12,9.89C12,9.89 13.13,5.95 11.38,6C9.63,6.05 10.29,9.12 10.59,10.08M11.4,11.13C11.43,11.13 11.87,12.33 13.29,13.58C13.29,13.58 10.96,14.04 9.9,14.5C9.9,14.5 10.9,12.75 11.4,11.13M15.32,13.84C15.9,13.69 17.64,14 17.58,14.32C17.5,14.65 15.32,13.84 15.32,13.84M8.26,15.7C7.73,16.91 6.83,17.68 6.6,17.67C6.37,17.66 7.3,16.07 8.26,15.7M11.4,8.76C11.39,8.71 11.03,6.57 11.4,6.61C11.94,6.67 11.4,8.71 11.4,8.76Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M14,17H12V15H10V13H12V15H14M14,9H12V11H14V13H12V11H10V9H12V7H10V5H12V7H14M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport { withStyles } from '@material-ui/core/styles';\nimport { AUTH_TOKEN } from '../../appsettings'\nimport TextIcon from '../Icons/DocumentBox';\nimport WordIcon from '../Icons/WordBox';\nimport ExcelIcon from '../Icons/ExcelBox';\nimport PdfIcon from '../Icons/PdfBox';\nimport ImageIcon from '@material-ui/icons/Image';\nimport ZipIcon from '../Icons/ZipBox';\nimport get from 'lodash/get';\nimport { GetAccessToken } from '../../dataProviders/authProvider';\n\nconst styles = theme => ({\n root: {\n maxWidth: theme.spacing.unit * 32,\n margin: \".125rem\",\n backgroundColor: \"rgba(0, 0, 0, 0.08)\",\n },\n label: {\n display: \"block\",\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n avatar: {\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n\n },\n avatarChildren: {\n width: '1em',\n height: '1em',\n }\n});\n\n\nconst getIcon = ext => {\n\n switch (ext) {\n case 'doc':\n case 'docm':\n case 'docx':\n return (<WordIcon style={{ color: \"#366DBC\" }} />)\n break;\n\n case 'pdf':\n return (<PdfIcon style={{ color: \"#E21E00\" }} />)\n break;\n\n case 'text':\n case 'txt':\n return (<TextIcon style={{ color: \"#576D7E\" }} />)\n break;\n\n case 'xls':\n case 'xlsb':\n case 'xlsm':\n case 'xlsx':\n return (<ExcelIcon style={{ color: \"#1D7E44\" }} />)\n break;\n\n case '7z':\n case 'rar':\n case 'zip':\n case 'zipx':\n return (<ZipIcon style={{ color: \"#FDCC77\" }} />)\n break;\n\n case 'jpg':\n case 'svg':\n case 'png':\n return (<ImageIcon style={{ color: \"#EB5757\" }} />)\n break;\n\n default:\n return (<TextIcon />)\n break;\n\n }\n}\n\n\n\nconst FileChip = withStyles(styles)(({ className, classes, record, source, title, canOpen, onDelete, ...props }) => {\n if (!record) return null;\n const label = get(record, title) || title;\n const url = get(record, source) || source;\n\n const handleClick = async (event) => {\n event.stopPropagation();\n const TOKEN = await GetAccessToken();\n window.open(url.indexOf('blob:') < 0 ? `${url}?${TOKEN}` : url)\n };\n\n const openProps = (canOpen) ? { clickable: true, onClick: handleClick } : {}\n\n\n\n return (\n <Tooltip title={label} placement=\"top\" enterDelay={800}>\n <Chip {...openProps} onDelete={onDelete} avatar={<Avatar>{getIcon(record.ext)}</Avatar>} label={label} classes={{ root: classes.root, avatar: classes.avatar, avatarChildren: classes.avatarChildren, label: classes.label }} className={className} />\n </Tooltip>\n );\n});\n\n\nFileChip.defaultProps = {\n canOpen: false,\n addLabel: true,\n};\n\n\n\nexport default FileChip;","import React, { Component, Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { shallowEqual } from 'recompose';\nimport Dropzone from 'react-dropzone';\nimport compose from 'recompose/compose';\nimport { withStyles, createStyles } from '@material-ui/core/styles';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport classnames from 'classnames';\nimport { Labeled, addField, translate } from 'react-admin';\n\nimport sanitizeRestProps from './sanitizeRestProps';\n\nconst styles = createStyles({\n dropZone: {\n background: '#efefef',\n cursor: 'pointer',\n padding: '1rem',\n textAlign: 'center',\n color: '#999',\n marginBottom: \"0.5rem\",\n },\n preview: {},\n removeButton: {},\n root: { width: '100%' },\n});\n\nexport class FileInput extends Component {\n static propTypes = {\n accept: PropTypes.string,\n children: PropTypes.element,\n classes: PropTypes.object,\n className: PropTypes.string,\n disableClick: PropTypes.bool,\n id: PropTypes.string,\n input: PropTypes.object,\n isRequired: PropTypes.bool,\n label: PropTypes.string,\n labelMultiple: PropTypes.string,\n labelSingle: PropTypes.string,\n maxSize: PropTypes.number,\n minSize: PropTypes.number,\n multiple: PropTypes.bool,\n options: PropTypes.object,\n resource: PropTypes.string,\n source: PropTypes.string,\n translate: PropTypes.func.isRequired,\n placeholder: PropTypes.node,\n };\n\n static defaultProps = {\n labelMultiple: 'ra.input.file.upload_several',\n labelSingle: 'ra.input.file.upload_single',\n multiple: false,\n onUpload: () => {},\n translate: id => id,\n };\n\n constructor(props) {\n super(props);\n let files = props.input.value || [];\n if (!Array.isArray(files)) {\n files = [files];\n }\n\n this.state = {\n files: files.map(this.transformFile),\n };\n }\n\n componentWillReceiveProps(nextProps) {\n let files = nextProps.input.value || [];\n if (!Array.isArray(files)) {\n files = [files];\n }\n\n this.setState({ files: files.map(this.transformFile) });\n }\n\n onDrop = files => {\n const updatedFiles = this.props.multiple\n ? [...this.state.files, ...files.map(this.transformFile)]\n : [...files.map(this.transformFile)];\n\n this.setState({ files: updatedFiles });\n\n if (this.props.multiple) {\n // Use onBlur to ensure redux-form set the input as touched\n this.props.input.onBlur(updatedFiles);\n } else {\n this.props.input.onBlur(updatedFiles[0]);\n }\n };\n\n onRemove = file => () => {\n const filteredFiles = this.state.files.filter(\n stateFile => !shallowEqual(stateFile, file)\n );\n\n this.setState({ files: filteredFiles });\n\n // Use onBlur to ensure redux-form set the input as touched\n if (this.props.multiple) {\n this.props.input.onBlur(filteredFiles);\n } else {\n this.props.input.onBlur(null);\n }\n };\n\n // turn a browser dropped file structure into expected structure\n transformFile = file => {\n if (!(file instanceof File)) {\n return file;\n }\n\n const { source, title } = Children.only(this.props.children).props;\n\n const transformedFile = {\n rawFile: file,\n [source]: file.preview,\n };\n\n if (title) {\n transformedFile[title] = file.name;\n }\n\n return transformedFile;\n };\n\n label() {\n const {\n translate,\n placeholder,\n labelMultiple,\n labelSingle,\n } = this.props;\n\n if (placeholder) {\n return placeholder;\n }\n\n if (this.props.multiple) {\n return <p>{translate(labelMultiple)}</p>;\n }\n\n return <p>{translate(labelSingle)}</p>;\n }\n\n render() {\n const {\n accept,\n children,\n classes = {},\n className,\n disableClick,\n id,\n isRequired,\n label,\n maxSize,\n meta,\n minSize,\n multiple,\n resource,\n source,\n translate,\n options = {},\n ...rest\n } = this.props;\n\n return (\n <Labeled\n id={id}\n label={label}\n className={classnames(classes.root, className)}\n source={source}\n resource={resource}\n isRequired={isRequired}\n meta={meta}\n {...sanitizeRestProps(rest)}\n >\n <span>\n <Dropzone\n onDrop={this.onDrop}\n accept={accept}\n disableClick={disableClick}\n maxSize={maxSize}\n minSize={minSize}\n multiple={multiple}\n className={classes.dropZone}\n {...options}\n inputProps={{ id, ...options.inputProps }}\n >\n {this.label()}\n </Dropzone>\n {children && (\n <div className=\"previews\">\n {this.state.files.map((file, index) => (\n cloneElement(Children.only(children), {\n key: index,\n onDelete: this.onRemove(file),\n record: file,\n className: classes.preview,\n }\n )\n \n ))}\n </div>\n )}\n {meta && meta.touched && meta.error && (\n <FormHelperText>{translate(meta.error)}</FormHelperText>\n )}\n </span>\n </Labeled>\n );\n }\n}\n\nexport default compose(\n addField,\n translate,\n withStyles(styles)\n)(FileInput);\n","export default ({\n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n formClassName,\n headerClassName,\n label,\n linkType,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n source,\n textAlign,\n translateChoice,\n ...rest\n}) => rest;\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { withStyles } from '@material-ui/core/styles';\nimport { AutocompleteInput, NumberInput, ReferenceInput, TextInput } from 'react-admin';\nimport { getFormValues, FormName, change } from 'redux-form';\nimport get from 'lodash/get';\nimport { ability } from '../../ability';\n\n\n\nconst styles = theme => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n flex: { display: \"flex\" },\n spacer: { width: \"1em\" },\n icon: {\n fontSize: 20,\n marginRight: theme.spacing.unit,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\n\n\nexport const SITypeInput = ({ form, formData, change, siType, siTypeId, designation, className, classes, ...props }) => {\n\n const [manual, setManual] = useState(false);\n const blocked = !manual || !!siTypeId;\n\n useEffect(() => {\n if (!siType) return;\n\n change(form, 'siTypeNumber', siType.number);\n change(form, 'siTypeMPIYears', siType.mpiyears);\n change(form, 'siTypeMPIMonths', siType.mpimonths);\n change(form, 'siTypeName', siType.name);\n change(form, 'siTypeManufacturerTotal', siType.manufacturerTotal);\n }, [siType])\n\n const handleManual = (event) => {\n if (!manual) {\n change(form, 'siTypeId', null);\n }\n\n setManual(!manual);\n };\n return (\n <div className={classes.root}>\n <div className={classes.flex}>\n {ability.can('update', \"Order\", \"siTypeId\") && <ReferenceInput {...props} className={className} source=\"siTypeId\" reference=\"SIType\" filter={{ designation }} filterToQuery={searchText => ({ number: searchText })} allowEmpty options={{ disabled: !blocked }} >\n <AutocompleteInput optionText=\"number\" />\n </ReferenceInput>}\n\n <Typography className={classes.message} color=\"textSecondary\">\n <InfoIcon className={classes.icon} />\n <span>Это поле получает данные из госреестра ФГИС \"АРШИН\" УТВЕРЖДЁННЫЕ ТИПЫ СРЕДСТВ ИЗМЕРЕНИЙ, согласно выбранной Модификации. Если список Номеров СИ пуст, проверьте выбранную модификацию или введите данные вручную. Дополнительная информация на <a href=\"https://fgis.gost.ru/fundmetrology/registry/4\">https://fgis.gost.ru/fundmetrology/registry/4</a></span>\n </Typography>\n </div>\n\n <FormControlLabel control={<Checkbox checked={manual} onChange={handleManual} value=\"manual\" color=\"primary\" />} label=\"Ввести данные типа Средства измерения вручную\" />\n\n <Grid container spacing={16}>\n <Grid item xs={12} sm={4}>\n {ability.can('update', \"Order\", \"siTypeNumber\") && <TextInput {...props} disabled={blocked} source=\"siTypeNumber\" options={{ fullWidth: true }} />}\n </Grid>\n <Grid item xs={12} sm={4}>\n {ability.can('update', \"Order\", \"siTypeMPIYears\") && <NumberInput {...props} disabled={blocked} source=\"siTypeMPIYears\" step={1} options={{ fullWidth: true }} />}\n </Grid>\n <Grid item xs={12} sm={4}>\n {ability.can('update', \"Order\", \"siTypeMPIMonths\") && <NumberInput {...props} disabled={blocked} source=\"siTypeMPIMonths\" step={1} options={{ fullWidth: true }} />}\n </Grid>\n <Grid item xs={12} sm={6}>\n {ability.can('update', \"Order\", \"siTypeName\") && <TextInput {...props} disabled={blocked} source=\"siTypeName\" options={{ fullWidth: true }} />}\n </Grid>\n <Grid item xs={12} sm={6}>\n {ability.can('update', \"Order\", \"siTypeManufacturerTotal\") && <TextInput {...props} disabled={blocked} source=\"siTypeManufacturerTotal\" options={{ fullWidth: true }} />}\n </Grid>\n </Grid>\n </div>\n\n\n )\n};\n\nconst mapStateToProps = (state, { form, record }) => {\n\n const formData = getFormValues(form)(state) || record;\n const siTypeId = get(formData, [\"siTypeId\"])\n const meterId = get(formData, [\"meter\", \"id\"])\n const siType = siTypeId ? get(state, [\"admin\", \"resources\", \"SIType\", \"data\", siTypeId]) : undefined;\n const designation = meterId ? get(state, [\"admin\", \"resources\", \"Meter\", \"data\", meterId, \"name\"]) : undefined;\n\n return {\n formData,\n siType,\n siTypeId,\n designation,\n }\n};\n\nconst mapDispatchToProps = {\n change,\n}\n\n\n\n\n\n\nconst enhance = compose(\n withStyles(styles),\n connect(mapStateToProps, mapDispatchToProps)\n);\n\nconst ConnectedFormDataConsumerView = enhance(SITypeInput);\n\nconst FormDataConsumer = (props) => (\n <FormName>\n {({ form }) => <ConnectedFormDataConsumerView form={form} {...props} />}\n </FormName>\n);\n\n\n\n\nexport default FormDataConsumer;\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport get from 'lodash/get';\nimport { getFormValues, FormName, change } from 'redux-form';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { withStyles } from '@material-ui/core/styles';\nimport { AutocompleteInput, ReferenceInput, TextInput } from 'react-admin';\n\n\n\nconst styles = theme => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n flex: { display: \"flex\" },\n spacer: { width: \"1em\" },\n icon: {\n fontSize: 20,\n marginRight: theme.spacing.unit,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\n\n\nexport const CCSVTypeInput = ({ form, formData, change, className, classes, ...props }) => {\n const { ccsvType } = formData;\n const ccsvTypeId = get(formData, [\"ccsvTypeId\"])\n const counterpartyName = get(formData, [\"verifier\", \"counterparty\", \"name\"])\n const [manual, setManual] = useState(false);\n const blocked = !manual || !!ccsvTypeId;\n\n useEffect(() => {\n if (!ccsvType) return;\n change(form, 'ccsvTypeCCSV', ccsvType.ccsv);\n }, [ccsvType])\n\n const handleManual = (event) => {\n if (!manual) {\n change(form, 'ccsvTypeId', null);\n }\n\n setManual(!manual);\n };\n\n return (\n <div className={classes.root}>\n\n <div className={classes.flex}>\n <ReferenceInput {...props} className={className} source=\"ccsvTypeId\" reference=\"CCSVType\" filter={{ nameOrg: counterpartyName }} filterToQuery={searchText => ({ ccsv: searchText })} allowEmpty options={{ disabled: !blocked }} >\n <AutocompleteInput optionText=\"ccsv\" />\n </ReferenceInput>\n <Typography className={classes.message} color=\"textSecondary\">\n <InfoIcon className={classes.icon} />\n <span>Это поле получает данные из госреестра ФГИС \"АРШИН\" УСЛОВНЫЕ ШИФРЫ ЗНАКОВ ПОВЕРКИ, согласно наименованию контрагента Поверителя. Если список шифров пуст, проверьте наименование контрагента Поверителя или введите данные вручную. Дополнительная информация на <a href=\"https://fgis.gost.ru/fundmetrology/registry/15\">https://fgis.gost.ru/fundmetrology/registry/15</a></span>\n </Typography>\n </div>\n\n <FormControlLabel control={<Checkbox checked={manual} onChange={handleManual} value=\"manual\" color=\"primary\" />} label=\"Ввести данные шифра знака поверки вручную\" />\n\n <Grid container spacing={16}>\n <Grid item xs={12} sm={4}>\n <TextInput {...props} disabled={blocked} source=\"ccsvTypeCCSV\" options={{ fullWidth: true }} />\n </Grid>\n </Grid>\n </div>\n\n\n )\n};\n\nconst mapStateToProps = (state, { form, record }) => {\n\n const formData = getFormValues(form)(state) || record;\n\n const ccsvTypeId = get(formData, [\"ccsvTypeId\"])\n const ccsvType = ccsvTypeId ? get(state, [\"admin\", \"resources\", \"CCSVType\", \"data\", ccsvTypeId]) : undefined;\n\n return {\n formData: {\n ...formData,\n ccsvType,\n },\n }\n};\n\nconst mapDispatchToProps = {\n change,\n}\n\n\n\n\n\n\nconst enhance = compose(\n withStyles(styles),\n connect(mapStateToProps, mapDispatchToProps)\n);\n\nconst ConnectedFormDataConsumerView = enhance(CCSVTypeInput);\n\nconst FormDataConsumer = (props) => (\n <FormName>\n {({ form }) => <ConnectedFormDataConsumerView form={form} {...props} />}\n </FormName>\n);\n\n\n\n\nexport default FormDataConsumer;\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport get from 'lodash/get';\nimport { getFormValues, FormName, change } from 'redux-form';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { withStyles } from '@material-ui/core/styles';\nimport { AutocompleteInput, ReferenceInput, TextInput } from 'react-admin';\n\nconst styles = theme => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n flex: { display: \"flex\" },\n spacer: { width: \"1em\" },\n icon: {\n fontSize: 20,\n marginRight: theme.spacing.unit,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\n\n\nexport const SUTypeInput = ({ form, formData, change, className, classes, ...props }) => {\n const { suType } = formData;\n const suTypeId = get(formData, [\"suTypeId\"])\n const counterpartyName = get(formData, [\"verifier\", \"counterparty\", \"name\"])\n const [manual, setManual] = useState(false);\n const blocked = !manual || !!suTypeId;\n\n\n\n useEffect(() => {\n if (!suType) return;\n\n change(form, 'suTypeName', suType.name);\n change(form, 'suTypeNumber', suType.number);\n }, [suType])\n\n const handleManual = (event) => {\n if (!manual) {\n change(form, 'suTypeId', null);\n }\n setManual(!manual);\n };\n\n return (\n <div className={classes.root}>\n <div className={classes.flex}>\n <ReferenceInput {...props} className={className} source=\"suTypeId\" reference=\"SUType\" filter={{ nameOrg: counterpartyName }} filterToQuery={searchText => ({ number: searchText })} allowEmpty options={{ disabled: !blocked }} >\n <AutocompleteInput optionText=\"number\" />\n </ReferenceInput>\n <Typography className={classes.message} color=\"textSecondary\">\n <InfoIcon className={classes.icon} />\n <span>Это поле получает данные из госреестра ФГИС \"АРШИН\" ЭТАЛОНЫ ЕДИНИЦ ВЕЛИЧИН, согласно наименованию контрагента Поверителя. Если список номеров пуст, проверьте наименование контрагента Поверителя или введите данные вручную. Дополнительная информация на <a href=\"https://fgis.gost.ru/fundmetrology/registry/11\">https://fgis.gost.ru/fundmetrology/registry/11</a></span>\n </Typography>\n </div>\n\n <FormControlLabel control={<Checkbox checked={manual} onChange={handleManual} value=\"manual\" color=\"primary\" />} label=\"Ввести номер эталона по реестру вручную\" />\n\n <Grid container spacing={16}>\n <Grid item xs={12} sm={4}>\n <TextInput {...props} disabled={blocked} source=\"suTypeNumber\" options={{ fullWidth: true }} />\n <TextInput {...props} disabled={blocked} source=\"suTypeName\" options={{ fullWidth: true }} />\n </Grid>\n </Grid>\n </div>\n\n\n )\n};\n\nconst mapStateToProps = (state, { form, record }) => {\n\n const formData = getFormValues(form)(state) || record;\n\n const suTypeId = get(formData, [\"suTypeId\"])\n const suType = suTypeId ? get(state, [\"admin\", \"resources\", \"SUType\", \"data\", suTypeId]) : undefined;\n\n return {\n formData: {\n ...formData,\n suType,\n },\n }\n};\n\nconst mapDispatchToProps = {\n change,\n}\n\n\n\n\n\n\nconst enhance = compose(\n withStyles(styles),\n connect(mapStateToProps, mapDispatchToProps)\n);\n\nconst ConnectedFormDataConsumerView = enhance(SUTypeInput);\n\nconst FormDataConsumer = (props) => (\n <FormName>\n {({ form }) => <ConnectedFormDataConsumerView form={form} {...props} />}\n </FormName>\n);\n\n\n\n\nexport default FormDataConsumer;\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport get from 'lodash/get';\nimport { getFormValues, FormName, change } from 'redux-form';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { withStyles } from '@material-ui/core/styles';\nimport { AutocompleteInput, ReferenceInput, TextInput } from 'react-admin';\n\nconst styles = theme => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n flex: { display: \"flex\" },\n spacer: { width: \"1em\" },\n icon: {\n fontSize: 20,\n marginRight: theme.spacing.unit,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n },\n});\n\n\n\nexport const GSITypeInput = ({ form, formData, change, className, classes, ...props }) => {\n const { gsiType } = formData;\n const gsiTypeId = get(formData, [\"gsiTypeId\"])\n const [manual, setManual] = useState(false);\n const blocked = !manual || !!gsiTypeId;\n\n useEffect(() => {\n if (!gsiType) return;\n\n change(form, 'gsiTypeNumber', gsiType.number);\n change(form, 'gsiTypeName', gsiType.name);\n change(form, 'gsiTypeType', gsiType.type);\n }, [gsiType])\n\n const handleManual = (event) => {\n if (!manual) {\n change(form, 'gsiTypeId', null);\n }\n setManual(!manual);\n };\n\n return (\n <div className={classes.root}>\n <div className={classes.flex}>\n <ReferenceInput {...props} className={className} source=\"gsiTypeId\" reference=\"GSIType\" filterToQuery={searchText => ({ number: searchText })} allowEmpty options={{ disabled: !blocked }} >\n <AutocompleteInput optionText=\"number\" />\n </ReferenceInput>\n <Typography className={classes.message} color=\"textSecondary\">\n <InfoIcon className={classes.icon} />\n <span>Это поле получает данные из госреестра ФГИС \"АРШИН\" СТАНДАРТЫ ГОСУДАРСТВЕННОЙ СИСТЕМЫ ОБЕСПЕЧЕНИЯ ЕДИНСТВА ИЗМЕРЕНИЙ. Если список номеров пуст, введите данные вручную. Дополнительная информация на <a href=\"https://fgis.gost.ru/fundmetrology/registry/3\">https://fgis.gost.ru/fundmetrology/registry/3</a></span>\n </Typography>\n </div>\n\n <FormControlLabel control={<Checkbox checked={manual} onChange={handleManual} value=\"manual\" color=\"primary\" />} label=\"Ввести номер документа вручную\" />\n\n <Grid container spacing={16}>\n <Grid item xs={12} sm={4}>\n <TextInput {...props} disabled={blocked} source=\"gsiTypeNumber\" options={{ fullWidth: true }} />\n <TextInput {...props} disabled={blocked} source=\"gsiTypeName\" options={{ fullWidth: true }} />\n <TextInput {...props} disabled={blocked} source=\"gsiTypeType\" options={{ fullWidth: true }} />\n </Grid>\n </Grid>\n </div>\n\n\n )\n};\n\nconst mapStateToProps = (state, { form, record }) => {\n\n const formData = getFormValues(form)(state) || record;\n\n const gsiTypeId = get(formData, [\"gsiTypeId\"])\n const gsiType = gsiTypeId ? get(state, [\"admin\", \"resources\", \"GSIType\", \"data\", gsiTypeId]) : undefined;\n\n return {\n formData: {\n ...formData,\n gsiType,\n },\n }\n};\n\nconst mapDispatchToProps = {\n change,\n}\n\n\n\n\n\n\nconst enhance = compose(\n withStyles(styles),\n connect(mapStateToProps, mapDispatchToProps)\n);\n\nconst ConnectedFormDataConsumerView = enhance(GSITypeInput);\n\nconst FormDataConsumer = (props) => (\n <FormName>\n {({ form }) => <ConnectedFormDataConsumerView form={form} {...props} />}\n </FormName>\n);\n\n\n\n\nexport default FormDataConsumer;\n","import React, { Fragment } from 'react';\nimport { AutocompleteInput, Edit, Toolbar, SaveButton, DeleteButton, TabbedForm, NumberInput, FormTab, LongTextInput, maxLength, ReferenceInput, SelectInput, REDUX_FORM_NAME, TextInput, DateInput, BooleanInput, translate, required, } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport compose from 'recompose/compose';\nimport pure from 'recompose/pure';\nimport { connect } from 'react-redux';\nimport { change, getFormValues } from 'redux-form';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport DateIcon from '@material-ui/icons/InsertInvitation';\nimport Title from './Title';\nimport FastView from './FastView';\nimport AddressInput from './AddressInput';\nimport UserReferenceInput from '../User/UserReferenceInput';\nimport SaveWithProcessButton from '../Buttons/SaveWithProcessButton';\nimport SaveWithInWorkButton from '../Buttons/SaveWithInWorkButton';\nimport SaveWithCompleteButton from '../Buttons/SaveWithCompleteButton';\nimport SaveWithCancelButton from '../Buttons/SaveWithCancelButton';\nimport ArchiveButton from '../Buttons/ArchiveButton';\nimport { ability } from '../../ability';\nimport EnumInput from '../Inputs/EnumInput';\nimport FileChip from '../Fields/FileChip';\nimport FileInput from '../Inputs/FileInput';\nimport { requiredCustom } from '../../utils';\n\nimport SITypeInput from './SITypeInput';\nimport CCSVTypeInput from './CCSVTypeInput';\nimport SUTypeInput from './SUTypeInput';\nimport GSITypeInput from './GSITypeInput';\n\n\n\n\n\n// class Order {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\nconst styles = theme => ({\n mr2: { marginRight: \".5rem\" },\n mlAuto: { marginLeft: \"auto\" },\n option: {\n width: \" 100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n captionText: {\n ...theme.typography.caption,\n lineHeight: \"unset\",\n },\n deleteButton: {\n color: theme.palette.error.contrastText,\n backgroundColor: theme.palette.error.main,\n '&:hover': {\n backgroundColor: theme.palette.error.dark,\n },\n },\n});\n\nconst validateOrderEdit = (values, { translate, clearSubmitErrors }) => {\n const errors = {};\n clearSubmitErrors();\n if (values.statusRef === 'completed' || values.statusRef === 'cancelled') {\n if (!values.resultRef) errors.resultRef = translate('resources.Order.errors.result');\n if (!values.invoice && values.isSealNotInstalled === false) errors.invoice = translate('resources.Order.errors.invoice');\n if (values.files < 1) errors.files = 'resources.Order.errors.files';\n }\n\n return errors;\n};\n\nconst OptionResult = withStyles(styles)(({ record, classes }) => {\n let caption = \"\"\n switch (record.id) {\n case 'verified':\n case 'notVerified':\n case 'noneSeal':\n case 'swap':\n caption = \"Выполнена\"\n break;\n case 'refused':\n case 'duplicate':\n caption = \"Отменена\"\n break;\n default:\n caption = \"\";\n }\n\n return (\n <div className={`${classes.option}`}>\n <span className={`${classes.mr2}`}>{record.description}</span>\n <span className={`${classes.captionText}`}>{caption}</span>\n </div>\n )\n});\n\nconst EditLayoutView = ({ permissions, classes, translate, form, ...props }) => {\n\n return (\n <Fragment>\n <FastView {...props} />\n <TabbedForm toolbar={<EditToolbar permissions={permissions} form={form} />} /*validate={validateOrderEdit}*/ {...props} >\n\n\n\n <FormTab label=\"resources.Order.tabs.general\">\n {ability.can('update', \"Order\", \"status\") &&\n <ReferenceInput source=\"statusRef\" reference=\"Status\" sort={{ field: 'description', order: 'ASC' }} >\n <SelectInput optionText=\"description\" />\n </ReferenceInput>}\n {ability.can('update', \"Order\", \"completedDeadlineAt\") && <DateInput source=\"completedDeadlineAt\" helperText={translate(\"resources.Order.helper.completedDeadlineAt\")} />}\n {ability.can('update', \"Order\", \"customer\") && <UserReferenceInput source=\"customer.id\" filter={{ role: \"CUSTOMER\" }} validate={requiredCustom()} />}\n {ability.can('update', \"Order\", \"addrManual\") && <AddressInput />}\n {ability.can('update', \"Order\", \"verifier\") && <UserReferenceInput source=\"verifier.id\" filter={{ role: \"VERIFIER\" }} />}\n {ability.can('update', \"Order\", \"dispatcher\") && <UserReferenceInput source=\"dispatcher.id\" filter={{ roles: [\"SENIORDISPATCHER\", \"DISPATCHER\"] }} />}\n {ability.can('update', \"Order\", \"comment\") && <LongTextInput source=\"comment\" helperText={translate(\"resources.Order.helper.comment\")} validate={maxLength(200)} />}\n\n </FormTab>\n <FormTab label=\"resources.Order.tabs.measuringInstrument\" path=\"measuringInstrument\">\n\n {ability.can('update', \"Order\", \"meterRef\") && <ReferenceInput source=\"meter.id\" reference=\"Meter\" sort={{ field: 'name', order: 'ASC' }} allowEmpty >\n <AutocompleteInput />\n </ReferenceInput>}\n {ability.can('update', \"Order\", \"miTypeNumber\") && <SITypeInput source=\"siTypeId\" />}\n {ability.can('update', \"Order\", \"miYear\") && <NumberInput source=\"manufactureYear\" inputProps={{ min: \"1900\", max: \"2099\" }} step={1} />}\n {ability.can('update', \"Order\", \"miManufactureNum\") && <TextInput source=\"manufactureNum\" />}\n {ability.can('update', \"Order\", \"meterLocation\") && <EnumInput source=\"meterLocation\" Enum=\"MeterLocation\" allowEmpty emptyValue={null} />}\n {ability.can('update', \"Order\", \"meterUninstallAt\") && <DateInput source=\"meterUninstallAt\" />}\n\n </FormTab>\n {ability.can(\"Edit\", { constructor: { name: \"Order\" }, tab: \"result\" }) &&\n <FormTab label=\"resources.Order.tabs.result\" path=\"result\">\n\n {ability.can('update', \"Order\", \"resultRef\") && <ReferenceInput source=\"resultRef\" reference=\"Result\" sort={{ field: 'description', order: 'DESC' }} allowEmpty><SelectInput optionText={<OptionResult />} /></ReferenceInput>}\n {ability.can('update', \"Order\", \"resultDesc\") && <LongTextInput source=\"resultDesc\" helperText={translate(\"resources.Order.helper.resultDesc\")} validate={maxLength(200)} />}\n {ability.can('update', \"Order\", \"personalAccount\") && <TextInput source=\"personalAccount\" />}\n {ability.can('update', \"Order\", \"invoice\") && <TextInput source=\"invoice\" />}\n {ability.can('update', \"Order\", \"certificateNumber\") && <TextInput source=\"certificateNumber\" />}\n {ability.can('update', \"Order\", \"stickerNumber\") && <TextInput source=\"stickerNumber\" />}\n {ability.can('update', \"Order\", \"isSealNotInstalled\") && <BooleanInput source=\"isSealNotInstalled\" fullWidth />}\n {ability.can('update', \"Order\", \"isSIOwnedByVerifier\") && <BooleanInput source=\"isSIOwnedByVerifier\" fullWidth />}\n {ability.can('update', \"Order\", \"signMi\") && <BooleanInput source=\"signMi\" fullWidth />}\n {ability.can('update', \"Order\", \"signPass\") && <BooleanInput source=\"signPass\" fullWidth />}\n <CCSVTypeInput source=\"ccsv\" />\n <SUTypeInput source=\"suTypeid\" />\n <GSITypeInput source=\"gsiTypeId\" />\n\n </FormTab>\n }\n {ability.can(\"Edit\", { constructor: { name: \"Order\" }, tab: \"files\" }) &&\n <FormTab label=\"resources.Order.tabs.files\" path=\"files\">\n {ability.can('update', \"Order\", \"files\") &&\n <FileInput source=\"files\" multiple={true} addLabel={false}>\n <FileChip canOpen source=\"url\" title=\"desc\" />\n </FileInput>\n }\n </FormTab>\n }\n </TabbedForm>\n </Fragment>\n )\n};\n\nconst mapStateToProps = (state, { record }) => ({\n form: getFormValues(REDUX_FORM_NAME)(state) || record,\n});\n\nconst enhance = compose(\n connect(mapStateToProps),\n translate,\n pure\n);\n\n\nconst EditLayout = enhance(EditLayoutView);\n\n\n\nconst OrderEdit = ({ permissions, ...props }) => {\n return (\n <Edit title={<Title {...props} />} {...props} >\n <EditLayout permissions={permissions} />\n </Edit>\n );\n}\n\n\nexport const EditToolbar = pure(withStyles(styles)(({ classes, submitOnEnter, form, ...props }) => {\n const { permissions, record } = props;\n\n return (\n <Toolbar {...props} >\n { ability.can(\"process\", { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && record.statusRef !== \"processed\" && (\n <SaveWithProcessButton className={`${classes.mr2}`} redirect=\"list\" submitOnEnter={false} />\n )}\n {ability.can(\"inWork\", { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && record.statusRef !== \"inWork\" && (\n <SaveWithInWorkButton className={`${classes.mr2}`} redirect=\"list\" submitOnEnter={false} />\n )}\n { ability.can(\"complete\", { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && record.statusRef !== \"completed\" && (\n <SaveWithCompleteButton className={`${classes.mr2}`} redirect=\"list\" submitOnEnter={false} disabled={form.resultRef !== 'verified' && form.resultRef !== 'notVerified' && form.resultRef !== 'noneSeal' && form.resultRef !== 'swap'} />\n )}\n { ability.can(\"cancel\", { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && record.statusRef !== \"cancelled\" && (\n <SaveWithCancelButton className={`${classes.mr2}`} redirect=\"list\" submitOnEnter={false} disabled={form.resultRef !== 'refused' && form.resultRef !== 'duplicate'} />\n )}\n { ability.can('update', { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && (\n <SaveButton className={`${classes.mr2}`} redirect=\"list\" submitOnEnter={true} variant=\"outlined\" />\n )}\n { ability.can('update', { constructor: { name: \"Order\" }, status: record.statusRef }) && !record.isArchive && (\n <SaveButton className={`${classes.mr2}`} redirect={false} label=\"raExt.action.save_and_continue\" submitOnEnter={true} variant=\"outlined\" />\n )}\n { ability.can(\"archive\", { constructor: { name: \"Order\" }, status: record.statusRef }) && (\n <ArchiveButton redirect=\"list\" record={props.record} resource={props.resource} className={`${classes.mlAuto} ${classes.mr2}`} />\n )}\n { ability.can(\"delete\", { constructor: { name: \"Order\" }, status: record.statusRef }) && (\n <WrappedDeleteButton redirect=\"list\" className={classes.deleteButton} />\n )}\n </Toolbar>\n )\n}));\n\nconst WrappedDeleteButton = ({ submitOnEnter, ...props }) => (<DeleteButton {...props} />)\n\nexport default OrderEdit;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport { translate } from 'ra-core';\nimport { withStyles } from '@material-ui/core/styles';\n\n\n\nconst styles = theme => ({\n container:{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: \"3rem\",\n paddingBottom: \"3rem\",\n \n },\n subtitle:{\n maxWidth: \"16rem\"\n },\n mt3:{\n marginTop: \"1rem\"\n },\n mb3:{\n marginBottom: \"1rem\"\n },\n \n});\n\n\nconst EmptyState = ({ className, classes = {}, translate, imageUrl, title, subtitle, button, ...rest }) => (\n <div className={classes.container}>\n {!!imageUrl && <img src={imageUrl} alt={translate(title, { _: title })} />}\n <Typography variant=\"body1\" align=\"center\" gutterBottom className={classes.mt3}>{translate(title, { _: title })}</Typography>\n {!!subtitle && <Typography variant=\"caption\" align=\"center\" gutterBottom className={`${classes.subtitle} ${classes.mb3}`} >{translate(subtitle, { _: subtitle })}</Typography>}\n {!!button && React.cloneElement(button, { className, ...rest })}\n </div>\n);\n\nEmptyState.defaultProps = {\n imageUrl: undefined,\n title: \"Empty data\",\n subtitle: undefined,\n button: undefined,\n\n};\n\nEmptyState.propTypes = {\n imageUrl: PropTypes.string,\n title: PropTypes.string,\n subtitle: PropTypes.string,\n button: PropTypes.element,\n\n};\n\nexport default compose( withStyles(styles), translate )(EmptyState);","import React from 'react';\nimport get from 'lodash/get';\nimport { AUTH_TOKEN, BLOB_SETHOST } from '../../appsettings';\nimport { GetAccessToken } from '../../dataProviders/authProvider';\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport { translate } from 'ra-core';\nimport moment from 'moment'\nimport 'moment/locale/ru';\nimport notFoundImage from '../../files/documents_not_found.svg';\nimport emptyImage from '../../files/EmptyStateFiles.svg';\nimport docImage from '../../files/doc.svg';\nimport fileImage from '../../files/file.svg';\nimport jpgImage from '../../files/jpg.svg';\nimport pdfImage from '../../files/pdf.svg';\nimport pngImage from '../../files/png.svg';\nimport svgImage from '../../files/svg.svg';\nimport txtImage from '../../files/txt.svg';\nimport xlsImage from '../../files/xls.svg';\nimport zipImage from '../../files/zip.svg';\nimport MuiGridList from '@material-ui/core/GridList';\nimport GridListTile from '@material-ui/core/GridListTile';\nimport GridListTileBar from '@material-ui/core/GridListTileBar';\nimport { withStyles } from '@material-ui/core/styles';\nimport withWidth from '@material-ui/core/withWidth';\nimport IconButton from '@material-ui/core/IconButton';\nimport ShowIcon from '@material-ui/icons/Visibility';\nimport EmptyState from './EmptyState';\nimport EditIcon from '@material-ui/icons/Create';\nimport { Link } from 'react-router-dom';\nimport { ability } from '../../ability';\n\nimport { EditButton } from 'react-admin';\n\n\nmoment.locale('ru');\n\nconst styles = theme => ({\n emptyContainer: {\n width: \"100%\",\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n\n },\n emptyContainerImage: {\n paddingTop: '1rem',\n\n },\n noResult: {\n paddingBottom: '1rem',\n textAlign: 'center',\n color: theme.palette.text.secondary\n },\n tileBar: {\n background: 'linear-gradient(to bottom, rgba(51,51,51,0.8) 4%, rgba(51,51,51,0.38) 47%, rgba(44,44,44,0.01) 85%)',\n },\n link: {\n color: '#fff',\n },\n GridList_root: {\n paddingTop: '1rem'\n },\n GridListTile_tile: {\n cursor: 'pointer',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden',\n border: '1px solid #EAEAEA',\n borderRadius: 6,\n },\n GridListTile_imgFullWidth: {\n top: 'unset',\n width: 'unset',\n position: 'relative',\n transform: 'unset',\n },\n placeholderImage: {\n cursor: 'pointer',\n },\n});\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst getColsForWidth = width => {\n if (width === 'xs') return 2;\n if (width === 'sm') return 3;\n if (width === 'md') return 4;\n if (width === 'lg') return 5;\n if (width === 'xl') return 6;\n return 7;\n};\n\nconst getUrlWithToken = (url, token) => {\n return url.indexOf('blob:') < 0 ? `${url}?${token}` : url;\n};\n\nconst getFileImage = (ext, url) => {\n\n switch (ext) {\n case 'doc':\n case 'docm':\n case 'docx':\n return docImage;\n break;\n\n case 'pdf':\n return pdfImage;\n break;\n\n case 'text':\n case 'txt':\n return txtImage;\n break;\n\n case 'xls':\n case 'xlsb':\n case 'xlsm':\n case 'xlsx':\n return xlsImage;\n case '7z':\n case 'rar':\n case 'zip':\n case 'zipx':\n return zipImage;\n case 'jpg':\n case 'jpeg':\n case 'png': {\n return getUrlWithToken(url, localStorage.getItem(AUTH_TOKEN));\n }\n case 'svg':\n return svgImage;\n }\n return fileImage;\n};\n\nconst renameUrlImage = (url) => {\n if (BLOB_SETHOST && BLOB_SETHOST != '') {\n const parsed_url = new URL(url);\n const new_url = url.replace(parsed_url.origin, BLOB_SETHOST);\n return new_url;\n }\n\n return url;\n}\n\n\nconst FilesGridList = ({ basePath, record, source, resourse, linkType, className, classes = {}, translate, width, addLabel, ...rest }) => {\n\n\n const files = get(record, source) || [];\n if (!files || files.length == 0) return <EmptyState imageUrl={emptyImage} title=\"resources.File.navigation.files_not_found\" subtitle=\"resources.File.navigation.add_several_files\" button={<EditButton to={`${basePath}/${record.id}/files`} variant=\"outlined\" color=\"secondary\" />} />\n\n\n\n\n //window.location.protocol\n return (\n <MuiGridList cellHeight={192} spacing={8} cols={getColsForWidth(width)} classes={{ root: (addLabel) ? \"\" : classes.GridList_root }}>{\n\n // createdAt: \"2019-01-30T13:43:40.149Z\"\n // desc: \"{CB6F900A-F241-42CB-9D13-D455317055B5}.png.jpg\"\n // ext: \"png\"\n // idDocument: \"cjrj6xuoj00aa07256eij08y2\"\n // url: \"http://79.174.70.107:8125/Order/cjrj6xuoj00aa07256eij08y2\"\n // userIdAdded: \"cjrgafx7k000k0769f0topbir\"\n\n files.map((file, index) => {\n\n let title = file.desc;\n let subtitle = file.created ? `Создан ${moment(file.created).format(\"L\")}` : `Загружен ${moment(file.createdAt).format(\"L\")}`\n let id = file.id;\n let ext = file.ext ? file.ext.replace('.', '') : '';\n let url = renameUrlImage(file.url);\n let urlThumbnail = renameUrlImage(file.urlThumbnail ? file.urlThumbnail : file.url);\n\n const openHandler = async () => {\n window.open(getUrlWithToken(url, await GetAccessToken()), '_blank')\n };\n\n return (\n <GridListTile key={index} onClick={openHandler} classes={{ tile: classes.GridListTile_tile, }}>\n\n { (ext === 'png' || ext === 'jpg' || ext === 'jpeg') ? <img src={getFileImage(ext, urlThumbnail)} alt=\"\" /> : <div><img src={getFileImage(ext, urlThumbnail)} alt=\"\" /></div>}\n <GridListTileBar\n titlePosition='top'\n className={classes.tileBar}\n title={title}\n subtitle={<span>{subtitle}</span>}\n actionIcon={ability.can('Show', \"File\")\n ? <IconButton\n onClick={stopPropagation}\n to={`/${resourse}/${id}/${linkType}`}\n className={classes.link}\n component={Link}\n >\n <ShowIcon />\n </IconButton>\n : null\n }\n />\n </GridListTile>\n )\n })\n }\n </MuiGridList>\n )\n}\n\nFilesGridList.defaultProps = {\n resourse: \"File\",\n linkType: \"show\"\n};\n\nconst enhance = compose(\n withWidth(),\n withStyles(styles),\n translate\n);\n\nconst EnhancedFilesGridList = enhance(FilesGridList);\n\nEnhancedFilesGridList.defaultProps = {\n addLabel: true,\n};\n\nexport default EnhancedFilesGridList;\n\n","import React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\n\nconst getTabFullPath = (tab, index, baseUrl) =>\n `${baseUrl}${\n tab.props.path ? `/${tab.props.path}` : index > 0 ? `/${index}` : ''\n }`;\n\nconst OrderTabbedShowLayoutTabs = ({ children, match, ...rest }) => (\n <Tabs centered {...rest} >\n {Children.map(children, (tab, index) => {\n if (!tab) return null;\n // Builds the full tab tab which is the concatenation of the last matched route in the\n // TabbedShowLayout hierarchy (ex: '/posts/create', '/posts/12', , '/posts/12/show')\n // and the tab path.\n // This will be used as the Tab's value\n const tabPath = getTabFullPath(tab, index, match.url);\n\n return cloneElement(tab, {\n context: 'header',\n value: tabPath,\n });\n })}\n </Tabs>\n);\n\nOrderTabbedShowLayoutTabs.propTypes = {\n children: PropTypes.node,\n match: PropTypes.object,\n value: PropTypes.string,\n};\n\nexport default OrderTabbedShowLayoutTabs;\n","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport amber from '@material-ui/core/colors/amber';\nimport lightBlue from '@material-ui/core/colors/lightBlue';\nimport blue from '@material-ui/core/colors/blue';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport { translate } from 'react-admin';\nimport CreatedIcon from '@material-ui/icons/NewReleases';\nimport UpdatedIcon from '@material-ui/icons/Save';\nimport DeletedIcon from '@material-ui/icons/Delete';\nimport OtherIcon from '@material-ui/icons/Create';\nimport ArchivedIcon from '@material-ui/icons/Archive';\nimport UnarchivedIcon from '@material-ui/icons/Unarchive';\nimport ProcessedIcon from '@material-ui/icons/HeadsetMic';\nimport InWorkIcon from '@material-ui/icons/Build';\nimport CompletedIcon from '@material-ui/icons/CheckCircle';\nimport CancelledIcon from '@material-ui/icons/Cancel';\nimport SyncIcon from '@material-ui/icons/Sync';\nimport SyncErrIcon from '@material-ui/icons/SyncProblem';\n\n\nconst styles = theme => ({\n avatar:{\n color: \"inherit\",\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n },\n CREATED:{\n backgroundColor:amber[500],\n color: theme.palette.getContrastText(amber[500])\n },\n UPDATED:{\n backgroundColor:lightBlue[500], \n color: \"#fff\",\n },\n DELETED:{\n backgroundColor:red[500], \n color: theme.palette.getContrastText(red[500])\n },\n ARCHIVED:{\n backgroundColor:red[500], \n color: theme.palette.getContrastText(red[500])\n },\n UNARCHIVED:{\n backgroundColor:lightBlue[500], \n color: \"#fff\",\n },\n PROCESSED:{\n backgroundColor:lightBlue[500], \n color: theme.palette.getContrastText(lightBlue[500])\n },\n INWORK:{\n backgroundColor:blue[500], \n color: theme.palette.getContrastText(blue[500])\n },\n COMPLETED:{\n backgroundColor:green[500], \n color: theme.palette.getContrastText(green[500])\n },\n CANCELLED:{\n backgroundColor:red[500], \n color: theme.palette.getContrastText(red[500])\n },\n});\n\nconst getIcon = action => {\n switch (action) { \n case \"CREATED\":{ return <CreatedIcon /> } break;\n case \"UPDATED\":{ return <UpdatedIcon /> } break;\n case \"DELETED\":{ return <DeletedIcon /> } break;\n case \"ARCHIVED\":{ return <ArchivedIcon /> } break;\n case \"UNARCHIVED\":{ return <UnarchivedIcon /> } break;\n case \"PROCESSED\":{ return <ProcessedIcon /> } break;\n case \"INWORK\":{ return <InWorkIcon /> } break;\n case \"COMPLETED\":{ return <CompletedIcon /> } break;\n case \"CANCELLED\":{ return <CancelledIcon /> } break;\n case \"SYNCHRONIZED\":{ return <SyncIcon /> } break;\n case \"SYNCHRONIZEDERROR\":{ return <SyncErrIcon /> } break;\n default:{ return <OtherIcon /> } break;\n }\n}\n\n\nconst ActionChip = ({ className, classes, translate, record, }) => {\n if (!record) return null;\n \n return (\n <Chip avatar={<Avatar>{getIcon(record.action)}</Avatar>} label={translate(`resources.OrderHistory.actions.${record.action}`)} classes={{avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className}`} />\n );\n}\n\n\n\nconst enhaenceActionChip = compose( withStyles(styles), translate, )(ActionChip)\nenhaenceActionChip.defaultProps = {\n source: 'action',\n addLabel: true\n};\n\nexport default enhaenceActionChip;","import React from 'react';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport Typography from '@material-ui/core/Typography';\nimport { get } from 'lodash';\nimport Chip from '@material-ui/core/Chip';\n\nconst styles = theme => ({\n dflex:{\n display:\"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n padding:\"0.25rem 0\",\n },\n root:{\n height:\"unset\",\n margin:\"0.125rem\",\n backgroundColor: \"rgba(0, 0, 0, 0.06)\", \n cursor: \"inherit\",\n \n },\n label:{\n padding:\"0.125rem 0.5rem\",\n },\n});\n\nconst AbbrChanges = ({ record, source, translate, classes, ...props }) => {\n const data = get(record, source, {});\n const renderField = field => (<Chip key={field} classes={{root: classes.root, label:classes.label,}} label={translate(`resources.Order.fields.${field}`)} />)\n const renderChange = (action) => {\n \n switch (action) { \n case \"CREATED\":{ \n return ( \n <div className={classes.dflex}>\n <Typography variant=\"body1\">\n {`${translate(`resources.OrderHistory.helper.CREATED`)} ${translate(`resources.OrderHistory.helper.CREATED_FIELD`)}`}\n </Typography>\n {Object.keys(data).filter(field => data[field] !== null).map(field => { return renderField(field)})}\n </div>\n )\n } break;\n\n case \"UPDATED\":\n case \"PROCESSED\":\n case \"INWORK\":\n case \"COMPLETED\":\n case \"CANCELLED\":{ \n return ( \n <div className={classes.dflex}>\n <Typography variant=\"body1\">\n {`${translate(`resources.OrderHistory.helper.${action}`)} ${ (Object.keys(data).length > 0) ? translate(`resources.OrderHistory.helper.UPDATED_FIELD`) :\"\"}`}\n </Typography>\n {Object.keys(data).filter(field => data[field] !== null).map(field => { return renderField(field)})}\n </div>\n )\n } break;\n\n\n default: { \n return ( \n <div className={classes.dflex}>\n <Typography variant=\"body1\">\n {`${translate(`resources.OrderHistory.helper.${action}`)}`}\n </Typography>\n </div>\n )\n } break;\n\n }\n \n }\n\n return renderChange(record.action);\n \n}\n\n\n\n\n\nconst enhaenceAbbrChanges = compose( withStyles(styles), translate, )(AbbrChanges)\nenhaenceAbbrChanges.defaultProps = {\n addLabel: true,\n};\n\nexport default enhaenceAbbrChanges;","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\nconst EmptyFieldPlaceholder = ({ record, source }) => {\n if (!record) return null\n return (<Typography variant=\"body1\" color=\"textSecondary\" noWrap>{record[source]}</Typography>);\n}\n\nexport default EmptyFieldPlaceholder;","import React, { Fragment } from 'react';\nimport { List, Datagrid, TextField, SearchInput, DateField, Filter, BulkDeleteButton, translate } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ability } from '../../ability'\nimport { exporter } from '../../exporter';\nimport BulkExportButton from '../Buttons/BulkExportButton';\nimport LinkField from '../Fields/linkField';\nimport UserField from '../User/UserField';\nimport ActionChip from './ActionChip';\nimport AbbrChanges from './AbbrChanges';\nimport EmptyFieldPlaceholder from './EmptyFieldPlaceholder';\nimport Pagination from '../Layout/Pagination';\n\n\nconst styles = theme => ({\n textOverflow: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n lineClamp: 2,\n boxOrient: \"vertical\"\n },\n textSecondary: { color: theme.palette.text.textSecondary, },\n ml2:{ marginLeft: \".5rem\"},\n deleteButton: {\n color: theme.palette.getContrastText(theme.palette.error.main),\n backgroundColor: theme.palette.error.main,\n '&:hover': {\n backgroundColor: theme.palette.error.dark,\n },\n },\n});\n\nconst exportBuilder = (records, fetchRelatedRecords, translate) => { \n exporter(records, 'OrderHistory', [\n { field: \"id\" }, \n { field: \"action\", translateValues:\"resources.OrderHistory.actions\" },\n { field: \"orderHumanId\"},\n { field: \"order.humanId\"},\n { field: \"userName\"},\n { field: \"user.name\"}, \n { field: \"updated\" },\n ], translate) \n};\n\nconst DatadridSimple = props => (\n <Datagrid rowClick=\"show\" {...props}>\n <ActionChip />\n <LinkField source=\"order\" sortBy=\"orderHumanId\" reference=\"Order\" linkType={false} emptyValue={<EmptyFieldPlaceholder source=\"orderHumanId\"/>} >\n <TextField source=\"humanId\" noWrap/>\n </LinkField>\n <LinkField source=\"user\" sortBy=\"userName\" reference=\"User\" linkType={false} emptyValue={<EmptyFieldPlaceholder source=\"userName\"/>} >\n <UserField />\n </LinkField>\n <AbbrChanges source=\"changes\"/>\n <DateField source=\"updated\" color=\"textSecondary\" textAlign=\"right\" showTime options={{ year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'}}/> \n </Datagrid>\n);\n\nexport const OrderHistoryDatagridForOrder = props => (\n <Datagrid rowClick=\"show\" {...props}>\n <ActionChip />\n <LinkField source=\"user\" sortBy=\"userName\" reference=\"User\" linkType={false} emptyValue={<EmptyFieldPlaceholder source=\"userName\"/>} >\n <UserField />\n </LinkField>\n <AbbrChanges source=\"changes\"/>\n <DateField source=\"updated\" color=\"textSecondary\" textAlign=\"right\" showTime options={{ year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'}}/> \n </Datagrid>\n);\n\nexport const OrderHistoryDatagridForUser = props => (\n <Datagrid rowClick=\"show\" {...props}>\n <ActionChip />\n <LinkField source=\"order\" sortBy=\"orderHumanId\" reference=\"Order\" linkType={false} emptyValue={<EmptyFieldPlaceholder source=\"orderHumanId\"/>} >\n <TextField source=\"humanId\" noWrap/>\n </LinkField>\n <AbbrChanges source=\"changes\"/>\n <DateField source=\"updated\" color=\"textSecondary\" textAlign=\"right\" showTime options={{ year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'}}/> \n </Datagrid>\n);\n\nconst OrderHistoryFilter = (props) => (\n <Filter {...props}>\n <SearchInput source=\"search\" alwaysOn />\n </Filter>\n);\n\nexport const BulkActionToolbar = translate(withStyles(styles)(({classes, translate, ...props}) => {\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate) \n }\n \n return (\n <Fragment>\n <BulkExportButton variant=\"outlined\" exporter={exportBuilderWithTranslate} {...props}/>\n { ability.can('delete', 'OrderHistory') && <BulkDeleteButton className={`${classes.deleteButton} ${classes.ml2}`} {...props} />}\n </Fragment>\n );\n}));\n\nconst OrderHistoryList = translate(({ classes, translate, ...props }) => {\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate) \n }\n\n return (\n <List {...props}\n bulkActionButtons={<BulkActionToolbar />}\n filters={<OrderHistoryFilter />}\n sort={{ field: 'updated', order: 'DESC' }}\n exporter={exportBuilderWithTranslate}\n pagination={<Pagination />}\n\n > \n <DatadridSimple />\n </List>\n );\n});\n\n\n\nexport default OrderHistoryList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { get } from 'lodash';\nimport JSONPretty from 'react-json-prettify';\nimport {github} from 'react-json-prettify/dist/themes';\n\n\nconst styles = theme => ({\n root: {\n backgroundColor: github.background,\n padding:\"0.125em 1.5em\", \n borderRadius: theme.shape.borderRadius\n },\n});\n\n\nconst JsonField = ({ className, classes, record, source, ...props }) => {\n const data = get(record, source)\n const json = (typeof data === 'object') ? data : JSON.parse(data);\n\n return (\n <div className={classes.root}> \n <JSONPretty json={json} theme={github} padding={4} />\n </div>\n );\n \n \n\n} \n\n\nJsonField.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string, \n record: PropTypes.object,\n source: PropTypes.string.isRequired,\n\n};\n\n\nconst EnhancedJsonField = withStyles(styles)(JsonField);\n\nEnhancedJsonField.defaultProps = {\n addLabel: true,\n};\n\nexport default EnhancedJsonField;\n","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { translate } from 'react-admin';\n\nconst MutationField = ({ record = {}, translate }) => {\n \n const style = {\n CREATED:{\n backgroundColor:\"#4CAF50\",\n color:\"#fff\"\n },\n UPDATED:{\n backgroundColor:\"#2F80ED\",\n color:\"#fff\"\n },\n DELETED:{\n backgroundColor:\"#DB4437\",\n color:\"#fff\"\n }\n }\n \n return (<Chip label={translate(`resources.OrderHistory.mutations.${record.mutation}`)} style={style[record.mutation]} />);\n}\n\n\nMutationField.defaultProps = {\n source: 'mutation',\n addLabel: true\n};\n\nexport default translate(MutationField);\n\n\n\n\n","import React from 'react';\nimport {\n Show,\n SimpleShowLayout,\n\n TextField, \n RichTextField,\n\n DateField,\n\n} from 'react-admin';\nimport LinkField from '../Fields/linkField';\nimport JsonField from '../Fields/JsonField';\nimport UserField from '../User/UserField';\nimport MutationField from './MutationField';\nimport ActionChip from './ActionChip';\nimport AbbrChanges from './AbbrChanges';\nimport EmptyFieldPlaceholder from './EmptyFieldPlaceholder';\nimport { withStyles } from '@material-ui/core/styles';\n\n\nconst styles = {\n textOverflow: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n lineClamp: 2,\n boxOrient: \"vertical\"\n },\n textSecondary: {\n color: \"rgba(0, 0, 0, 0.54)\",\n },\n w100: {\n width: \"100%\",\n },\n};\n\n\n\nconst OrderHistoryShow = ({classes, ...props}) => (\n <Show {...props}>\n <SimpleShowLayout>\n <ActionChip source=\"action\"/>\n\n <LinkField source=\"user\" sortBy=\"userName\" reference=\"User\" emptyValue={<EmptyFieldPlaceholder source=\"userName\"/>} >\n <UserField />\n </LinkField>\n <LinkField source=\"order\" sortBy=\"orderHumanId\" reference=\"Order\" emptyValue={<EmptyFieldPlaceholder source=\"orderHumanId\"/>} >\n <TextField source=\"humanId\" noWrap/>\n </LinkField>\n <AbbrChanges source=\"changes\"/>\n <DateField source=\"updated\" color=\"textSecondary\" textAlign=\"right\" showTime options={{ year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'}}/> \n <JsonField source=\"changes\"/>\n <JsonField source=\"meta\"/>\n </SimpleShowLayout>\n </Show>\n);\n\nexport default withStyles(styles)(OrderHistoryShow);","import Icon from '@material-ui/icons/History';\nimport OrderHistoryList from './OrderHistoryList';\nimport OrderHistoryShow from './OrderHistoryShow';\nimport { OrderHistoryDatagridForUser, OrderHistoryDatagridForOrder } from './OrderHistoryList';\n\nconst OrderHistoryIcon = Icon;\n\nexport {\n OrderHistoryIcon,\n OrderHistoryList,\n OrderHistoryShow,\n OrderHistoryDatagridForUser,\n OrderHistoryDatagridForOrder,\n};","import React from 'react';\nimport compose from 'recompose/compose';\nimport { Button, withDataProvider, showNotification, } from 'react-admin';\nimport FileDownloadIcon from '../Icons/FileDownload';\nimport getUrlArchive from '../../providers/Blob/archiveFiles';\nimport { GetAccessToken } from '../../providers/authProvider';\nimport { BLOB_SETHOST } from '../../appsettings';\n\nconst getUrlWithToken = (url, token) => {\n return url.indexOf('blob:') < 0 ? `${url}?${token}` : url;\n};\n\nconst renameUrl = (url) => {\n if (BLOB_SETHOST && BLOB_SETHOST !== '') {\n const parsed_url = new URL(url);\n const new_url = url.replace(parsed_url.origin, BLOB_SETHOST);\n return new_url;\n }\n\n return url;\n}\n\n\nconst DownloadFilesButton = ({ record, dataProvider, dispatch, ...props }) => {\n\n const handleDownloadFiles = async () => {\n\n let orders = [];\n\n orders.push({\n //id: record.id,\n humanId: record.humanId,\n addrManual: record.addrManual,\n idsBlob: record.files.map(file => (file.idBlob)),\n });\n\n orders = orders.filter(order => {\n if (order.idsBlob.length > 0) return true;\n dispatch(showNotification('raExt.notification.download_files_empty', 'info', { messageArgs: { smart_count: 1 } }));\n return false;\n });\n\n if (orders.length > 0) {\n /////////////////////// тут будет вызов клиента /////////////////\n\n var responce = await getUrlArchive(orders);\n const token = await GetAccessToken();\n const url = renameUrl(responce.data.getUrlArchiveFiles.url);\n const urlWithToken = getUrlWithToken(url, token)\n\n window.open(urlWithToken, '_blank');\n };\n\n };\n\n return (\n <Button label=\"raExt.action.download_files\" onClick={handleDownloadFiles} {...props} >\n <FileDownloadIcon />\n </Button>\n );\n}\n\nexport default compose(\n withDataProvider,\n)(DownloadFilesButton);\n","import React from 'react';\nimport { Button } from 'react-admin';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport exportOrdersToXml from '../../dataProviders/OrdersToXml/exportOrdersToXml';\nimport downloadFile from '../../dataProviders/OrdersToXml/downloadFile';\n\n\nconst OrdersToXmlButton = ({ record, ...props }) => {\n\n if (!record) return null;\n\n const handleExport = async () => {\n\n\n exportOrdersToXml({\n ids: [record.id]\n }).then(({ blob, filename }) => {\n if (blob instanceof Blob) {\n downloadFile(blob, filename)\n }\n })\n\n };\n\n return (\n <Button label=\"raExt.action.export_orders_to_xml\" onClick={handleExport} {...props} >\n <GetAppIcon />\n </Button>\n );\n}\n\nexport default OrdersToXmlButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport sanitizeRestProps from './sanitizeRestProps';\nimport compose from 'recompose/compose';\nimport { translate } from 'react-admin';\n\n\nconst EnumField = ({ className, resource, source, record = {}, option, translate, ...props }) => {\n const enumValue = get(record, source);\n if (!enumValue) { return null };\n\n const value = option ? translate(`${option}.${enumValue}`, { _: enumValue }) : translate(`resources.${resource}.enums.${source}.${enumValue}`, { _: enumValue });\n\n return (\n <Typography\n variant=\"body2\"\n className={className}\n {...sanitizeRestProps(props)}\n >\n {value}\n </Typography>\n )\n};\n\nEnumField.propTypes = {\n label: PropTypes.string,\n record: PropTypes.object,\n source: PropTypes.string.isRequired,\n};\n\nEnumField.defaultProps = {\n addLabel: true,\n};\n\nexport default compose(translate)(EnumField);","import React, { Fragment } from 'react';\nimport { Show, EditButton, CloneButton, TabbedShowLayout, Tab, BooleanField, DateField, Pagination, ReferenceField, ReferenceManyField, TextField, NumberField } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardActions from '@material-ui/core/CardActions';\nimport FilesGridList from '../Layout/FilesGridList';\nimport LinkField from '../Fields/linkField';\nimport { MeterWithLocationField } from '../Meter/MeterField';\nimport UserField from '../User/UserField';\nimport Title from './Title';\nimport FastView from './FastView';\nimport OrderTabbedShowLayoutTabs from './OrderTabbedShowLayoutTabs';\nimport AddressField from './AddressField';\nimport { OrderHistoryDatagridForOrder } from '../OrderHistory';\nimport { ability } from '../../ability';\nimport DownloadFilesButton from '../Buttons/DownloadFilesButton';\nimport OrdersToXmlButton from './OrdersToXmlButton';\nimport EnumField from '../Fields/EnumField';\n\n\n\n// class Order {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\n\nconst ShowLayoutView = ({ classes, ...props }) => {\n return (\n <Fragment>\n <FastView {...props} />\n <TabbedShowLayout tabs={<OrderTabbedShowLayoutTabs />} {...props}>\n <Tab label=\"resources.Order.tabs.general\">\n\n {ability.can('read', \"Order\", \"dispatcher\") && <LinkField source=\"dispatcher\" reference=\"User\" emptyValue=\"raExt.notification.order_user_empty_data\"><UserField /></LinkField>}\n {ability.can('read', \"Order\", \"customer\") && <LinkField source=\"customer\" reference=\"User\" emptyValue=\"raExt.notification.order_user_empty_data\"><UserField /></LinkField>}\n {ability.can('read', \"Order\", \"verifier\") && <LinkField source=\"verifier\" reference=\"User\" emptyValue=\"raExt.notification.order_user_empty_data\"><UserField /></LinkField>}\n {ability.can('read', \"Order\", \"addrManual\") && <AddressField source=\"addrManual\" />}\n {ability.can('read', \"Order\", \"comment\") && <TextField source=\"comment\" />}\n </Tab>\n <Tab label=\"resources.Order.tabs.measuringInstrument\" path=\"measuringInstrument\">\n {ability.can('read', \"Order\", \"meterRef\") && <LinkField source=\"meter\" reference=\"Meter\" emptyValue=\"raExt.notification.order_meter_empty_data\">\n <TextField source=\"name\" />\n </LinkField>}\n {ability.can('read', \"Order\", \"manufactureYear\") && <NumberField source=\"manufactureYear\" />}\n {ability.can('read', \"Order\", \"manufactureNum\") && <TextField source=\"manufactureNum\" />}\n {ability.can('read', \"Order\", \"siTypeName\") && <TextField source=\"siTypeName\" />}\n {ability.can('read', \"Order\", \"siTypeNumber\") && <TextField source=\"siTypeNumber\" />}\n {ability.can('read', \"Order\", \"siTypeMPIYears\") && <NumberField source=\"siTypeMPIYears\" />}\n {ability.can('read', \"Order\", \"siTypeMPIMonths\") && <NumberField source=\"siTypeMPIMonths\" />}\n {ability.can('read', \"Order\", \"siTypeManufacturerTotal\") && <TextField source=\"siTypeManufacturerTotal\" />}\n {ability.can('read', \"Order\", \"meterLocation\") && <EnumField source=\"meterLocation\" Enum=\"MeterLocation\" allowEmpty emptyValue={null} />}\n {ability.can('read', \"Order\", \"meterUninstallAt\") && <DateField source=\"meterUninstallAt\" />}\n </Tab>\n {ability.can(\"Show\", { constructor: { name: \"Order\" }, tab: \"result\" }) &&\n <Tab label=\"resources.Order.tabs.result\" path=\"result\">\n {ability.can('read', \"Order\", \"resultRef\") &&\n <ReferenceField source=\"resultRef\" reference=\"Result\" linkType={false} allowEmpty {...props}>\n <TextField source=\"description\" />\n </ReferenceField>}\n {ability.can('read', \"Order\", \"resultDesc\") && <TextField source=\"resultDesc\" />}\n {ability.can('read', \"Order\", \"personalAccount\") && <TextField source=\"personalAccount\" />}\n {ability.can('read', \"Order\", \"invoice\") && <TextField source=\"invoice\" />}\n {ability.can('read', \"Order\", \"isSealNotInstalled\") && <BooleanField source=\"isSealNotInstalled\" />}\n {ability.can('read', \"Order\", \"isSIOwnedByVerifier\") && <BooleanField source=\"isSIOwnedByVerifier\" />}\n {ability.can('read', \"Order\", \"signMi\") && <BooleanField source=\"signMi\" />}\n {ability.can('read', \"Order\", \"signPass\") && <BooleanField source=\"signPass\" />}\n\n {ability.can('read', \"Order\", \"ccsvTypeCCSV\") && <TextField source=\"ccsvTypeCCSV\" />}\n {ability.can('read', \"Order\", \"certificateNumber\") && <TextField source=\"certificateNumber\" />}\n {ability.can('read', \"Order\", \"stickerNumber\") && <TextField source=\"stickerNumber\" />}\n {ability.can('read', \"Order\", \"gsiTypeType\") && <TextField source=\"gsiTypeType\" />}\n {ability.can('read', \"Order\", \"gsiTypeNumber\") && <TextField source=\"gsiTypeNumber\" />}\n {ability.can('read', \"Order\", \"gsiTypeName\") && <TextField source=\"gsiTypeName\" />}\n {ability.can('read', \"Order\", \"suTypeNumber\") && <TextField source=\"suTypeNumber\" />}\n {ability.can('read', \"Order\", \"suTypeName\") && <TextField source=\"suTypeName\" />}\n {ability.can('read', \"Order\", \"validAt\") && <DateField source=\"validAt\" />}\n </Tab>\n }\n {ability.can(\"Show\", { constructor: { name: \"Order\" }, tab: \"files\" }) &&\n <Tab label=\"resources.Order.tabs.files\" path=\"files\">\n {ability.can('read', \"Order\", \"files\") && <FilesGridList source=\"files\" addLabel={false} />}\n </Tab>\n }\n {ability.can(\"Show\", { constructor: { name: \"Order\" }, tab: \"history\" }) &&\n <Tab label=\"resources.Order.tabs.history\" path=\"history\" >\n {ability.can('read', \"Order\", \"history\") &&\n <ReferenceManyField reference=\"OrderHistory\" target=\"order.id\" sort={{ field: 'updated', order: 'DESC' }} perPage={10} pagination={<Pagination />} addLabel={false} >\n <OrderHistoryDatagridForOrder />\n </ReferenceManyField>}\n </Tab>\n }\n </TabbedShowLayout>\n\n </Fragment>\n )\n};\n\nvar styles = theme => ({\n contaiter: {\n zIndex: 2,\n display: 'flex',\n padding: 0,\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n },\n});\n\nconst OrderShowActions = withStyles(styles)(({ classes, className, basePath, data, resource }) => {\n if (!data) return null;\n const omitId = ({ id, statusRef, ...rest }) => rest;\n return (\n <CardActions className={`${classes.contaiter}`}>\n { ability.can('read', \"Order\", \"files\") && <DownloadFilesButton record={data} />}\n { ability.can('Create', 'Order') && <CloneButton basePath={basePath} record={{ ...omitId(data) }} />}\n { ability.can('exportfgis', 'Order') && <OrdersToXmlButton record={data} />}\n { ability.can('Edit', 'Order') && <EditButton basePath={basePath} record={data} />}\n\n </CardActions >\n );\n});\n\nconst OrderShow = (props) => {\n return (\n <Show title={<Title {...props} />} actions={<OrderShowActions />} {...props}>\n <ShowLayoutView />\n </Show>\n );\n};\n\nexport default OrderShow;","import Icon from '@material-ui/icons/AttachMoney';\nimport OrderList from './OrderList';\nimport OrderCreate from './OrderCreate';\nimport OrderEdit from './OrderEdit';\nimport OrderShow from './OrderShow';\n\nconst OrderIcon = Icon;\n\n\nexport {\n OrderIcon,\n OrderList,\n OrderShow,\n OrderCreate,\n OrderEdit,\n};\n\n\n","import React from 'react';\nimport { List, ListView, ListController, Datagrid, TextField, DateField, translate } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport TitleWithSearch from '../Layout/TitleWithSearch';\n\nimport { exporter } from '../../exporter';\n\nimport PhoneField from '../Fields/PhoneField';\nimport Pagination from '../Layout/Pagination';\nimport { ability } from '../../ability';\n\n\n\nconst styles = theme => ({\n cellMinWidth: {\n width: '1px',\n padding: 0,\n }\n});\n\nconst exportBuilder = (records, fetchRelatedRecords, translate) => {\n exporter(records, 'File', [\n { field: \"id\" },\n { field: \"catalog\" },\n { field: \"createdAt\", format: 'L' },\n { field: \"createdBy\" },\n { field: \"desc\" },\n { field: \"ext\" },\n { field: \"idBlob\" },\n { field: \"size\" },\n { field: \"url\" },\n { field: \"urlThumbnail\" },\n ], translate)\n};\n\n\n\nconst CounterpartyList = translate(withStyles(styles)(({ classes, translate, ...props }) => {\n // const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n // exportBuilder(records, fetchRelatedRecords, translate) \n // }\n\n return (\n // <List\n // exporter={false}\n // pagination={<Pagination />}\n // title={<TitleWithSearch />}\n // {...props}\n // >\n // <Datagrid rowClick=\"show\">\n // {ability.can('List', 'Counterparty', 'name') && <TextField source=\"name\" />}\n // {ability.can('List', 'Counterparty', 'description') && <TextField source=\"description\" />}\n // {ability.can('List', 'Counterparty', 'phone') && <PhoneField source=\"phone\" />}\n // {ability.can('List', 'Counterparty', 'email') && <TextField source=\"email\" />}\n // <DateField source=\"createdAt\" textAlign=\"right\" cellClassName={classes.cellMinWidth} />\n // <DateField source=\"updatedAt\" textAlign=\"right\" cellClassName={classes.cellMinWidth} />\n // {/* <MoreButton cellClassName={`${classes.cellMinWidth} ${classes.cellButton}`}>\n // {ability.can('getOne', 'Counterparty') && <ShowBlankItem />}\n // {ability.can('update', 'Counterparty') && <EditMenuItem />}\n // {ability.can('remove', 'Counterparty') && <RemoveMenuItem />}\n // </MoreButton> */}\n // </Datagrid>\n // </List>\n <ListController {...props}>\n {controllerProps => (\n <ListView\n title={<TitleWithSearch {...controllerProps} />}\n exporter={false}\n pagination={<Pagination />}\n {...props}\n {...controllerProps}\n >\n <Datagrid rowClick=\"show\">\n {ability.can('List', 'Counterparty', 'name') && <TextField source=\"name\" />}\n {ability.can('List', 'Counterparty', 'description') && <TextField source=\"description\" />}\n {ability.can('List', 'Counterparty', 'phone') && <PhoneField source=\"phone\" />}\n {ability.can('List', 'Counterparty', 'email') && <TextField source=\"email\" />}\n <DateField source=\"createdAt\" textAlign=\"right\" cellClassName={classes.cellMinWidth} />\n <DateField source=\"updatedAt\" textAlign=\"right\" cellClassName={classes.cellMinWidth} />\n </Datagrid>\n </ListView>\n )\n }\n </ListController>\n )\n\n}));\n\n\nexport default CounterpartyList;","import React, { cloneElement, Children, isValidElement } from 'react';\nimport get from 'lodash/get';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { translate } from 'react-admin';\nimport compose from 'recompose/compose';\n\n\nconst sanitizeGridItemProps = ({\n lg,\n md,\n sm,\n xs,\n zeroMinWidth,\n ...props\n}) => props;\n\n\nconst styles = theme => ({\n root: {\n minWidth: 256,\n }\n});\n\nconst NestedGridField = ({ children, classes: classesOverride, record, source, className, label, classes, translate, ...props }) => {\n\n return (\n <Grid container spacing={2}>\n {Children.map(children, (field, index) => {\n\n const {\n lg,\n md,\n sm,\n xs,\n zeroMinWidth,\n className,\n ...inputProps\n } = field.props;\n\n const gridItemProps = {\n lg,\n md,\n sm,\n xs,\n zeroMinWidth\n };\n\n return isValidElement(field) ? (\n <Grid item key={field.props.source || index} {...gridItemProps} >\n {React.cloneElement(field, {\n ...inputProps,\n className: classes.root,\n fullWidth: true,\n })}\n </Grid>\n ) : null\n\n }\n\n )}\n </Grid>\n );\n};\n\n\nexport default compose(withStyles(styles), translate,)(NestedGridField);","import React from 'react';\nimport { Create, DateInput, SimpleForm, TextInput, ReferenceArrayInput, AutocompleteArrayInput, required, FormDataConsumer, email } from 'react-admin';\nimport EnumInput from '../Inputs/EnumInput';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport GridField from '../Fields/GridField';\n\nconst validateEmail = [email()];\n\nconst CounterpartyCreate = (props) => (\n <Create {...props}>\n <SimpleForm redirect=\"show\">\n <TextInput source=\"name\" validate={required()} fullWidth />\n <TextInput source=\"description\" multiline fullWidth />\n <TextInput source=\"inn\" validate={required()} />\n <EnumInput source=\"type\" Enum=\"CounterpartyType\" validate={required()} />\n <FormDataConsumer>\n {({ formData, ...rest }) => (formData.type === \"LEGALENTITY\" || formData.type === \"GOVERNMENTAGENCY\") &&\n <GridField>\n\n <TextInput source=\"kpp\" xs {...rest} />\n <TextInput source=\"okpo\" xs {...rest} />\n <TextInput source=\"ogrn\" xs {...rest} />\n </GridField>\n }\n </FormDataConsumer>\n\n <FormDataConsumer>\n {({ formData, ...rest }) => formData.type === \"INDIVIDUAL\" &&\n <GridField>\n <TextInput source=\"fio\" xs={6} {...rest} />\n <TextInput source=\"passport\" xs {...rest} />\n <DateInput source=\"passdateissue\" xs {...rest} />\n </GridField>\n }\n </FormDataConsumer>\n <FormDataConsumer>\n {({ formData, ...rest }) => formData.type === \"SEPARATEDIVISION\" &&\n <>\n <TextInput source=\"parentId\" {...rest} />\n </>\n }\n </FormDataConsumer>\n <TextInput source=\"addressLegal\" fullWidth />\n <TextInput source=\"addressActual\" fullWidth />\n <TextInput source=\"addressPostal\" fullWidth />\n <PhoneInput source=\"phone\" />\n <PhoneInput source=\"phoneMobile\" />\n <TextInput source=\"email\" type=\"email\" validate={validateEmail} />\n <ReferenceArrayInput source=\"usersIds\" reference=\"User\" filter={{ counterparty: null }} sort={{ field: 'name', order: 'ASC' }} label=\"resources.Counterparty.fields.users\" fullWidth>\n <AutocompleteArrayInput />\n </ReferenceArrayInput>\n </SimpleForm>\n </Create>\n);\n\nexport default CounterpartyCreate;\n\n\n\n","import React from 'react';\nimport { SimpleForm, DateInput, TextInput, FormDataConsumer, Edit, ReferenceArrayInput, AutocompleteArrayInput, required, email } from 'react-admin';\nimport EnumInput from '../Inputs/EnumInput';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport GridField from '../Fields/GridField';\n\n\n\nconst validateEmail = [email()];\n\n\nconst CounterpartyEdit = (props) => {\n return (\n <Edit {...props}>\n <SimpleForm redirect=\"show\">\n <TextInput source=\"name\" validate={required()} fullWidth />\n <TextInput source=\"description\" multiline fullWidth />\n <TextInput source=\"inn\" validate={required()} />\n <EnumInput source=\"type\" Enum=\"CounterpartyType\" validate={required()} />\n <FormDataConsumer>\n {({ formData, ...rest }) => (formData.type === \"LEGALENTITY\" || formData.type === \"GOVERNMENTAGENCY\") &&\n <GridField>\n\n <TextInput source=\"kpp\" xs {...rest} />\n <TextInput source=\"okpo\" xs {...rest} />\n <TextInput source=\"ogrn\" xs {...rest} />\n </GridField>\n }\n </FormDataConsumer>\n\n <FormDataConsumer>\n {({ formData, ...rest }) => formData.type === \"INDIVIDUAL\" &&\n <GridField>\n <TextInput source=\"fio\" xs={6} {...rest} />\n <TextInput source=\"passport\" xs {...rest} />\n <DateInput source=\"passdateissue\" xs {...rest} />\n </GridField>\n }\n </FormDataConsumer>\n <FormDataConsumer>\n {({ formData, ...rest }) => formData.type === \"SEPARATEDIVISION\" &&\n <>\n <TextInput source=\"parentId\" {...rest} />\n </>\n }\n </FormDataConsumer>\n <TextInput source=\"addressLegal\" fullWidth />\n <TextInput source=\"addressActual\" fullWidth />\n <TextInput source=\"addressPostal\" fullWidth />\n <PhoneInput source=\"phone\" />\n <PhoneInput source=\"phoneMobile\" />\n <TextInput source=\"email\" type=\"email\" validate={validateEmail} />\n <ReferenceArrayInput source=\"usersIds\" reference=\"User\" filter={{ counterparty: null }} sort={{ field: 'name', order: 'ASC' }} label=\"resources.Counterparty.fields.users\" fullWidth>\n <AutocompleteArrayInput />\n </ReferenceArrayInput>\n </SimpleForm>\n </Edit>\n );\n};\n\nexport default CounterpartyEdit\n\n\n","import React from 'react';\nimport { ShowController, ShowView, SimpleShowLayout, TextField, DateField, ReferenceArrayField, SingleFieldList, ChipField } from 'react-admin';\nimport { ability } from '../../ability';\nimport EnumField from '../Fields/EnumField';\nimport PhoneField from '../Fields/PhoneField';\n\n\nconst CounterpartyShow = (props) => (\n <ShowController {...props}>\n {controllerProps => {\n const type = controllerProps.record && controllerProps.record.type;\n return (\n <ShowView {...props} {...controllerProps} >\n <SimpleShowLayout>\n {ability.can('read', 'Counterparty', 'name') && <TextField source=\"name\" />}\n {ability.can('read', 'Counterparty', 'description') && <TextField source=\"description\" />}\n {ability.can('read', 'Counterparty', 'type') && <EnumField source=\"type\" />}\n {ability.can('read', 'Counterparty', 'inn') && <TextField source=\"inn\" />}\n {ability.can('read', 'Counterparty', 'kpp') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && <TextField source=\"kpp\" />}\n {ability.can('read', 'Counterparty', 'okpo') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && <TextField source=\"okpo\" />}\n {ability.can('read', 'Counterparty', 'ogrn') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && <TextField source=\"ogrn\" />}\n {ability.can('read', 'Counterparty', 'fio') && type === \"INDIVIDUAL\" && <TextField source=\"fio\" />}\n {ability.can('read', 'Counterparty', 'passport') && type === \"INDIVIDUAL\" && <TextField source=\"passport\" />}\n {ability.can('read', 'Counterparty', 'passdateissue') && type === \"INDIVIDUAL\" && <DateField source=\"passdateissue\" />}\n {ability.can('read', 'Counterparty', 'parentId') && type === \"SEPARATEDIVISION\" && <TextField source=\"parentId\" />}\n {ability.can('read', 'Counterparty', 'addressLegal') && <TextField source=\"addressLegal\" />}\n {ability.can('read', 'Counterparty', 'addressActual') && <TextField source=\"addressActual\" />}\n {ability.can('read', 'Counterparty', 'addressPostal') && <TextField source=\"addressPostal\" />}\n {ability.can('read', 'Counterparty', 'phone') && <PhoneField source=\"phone\" />}\n {ability.can('read', 'Counterparty', 'phoneMobile') && <PhoneField source=\"phoneMobile\" />}\n {ability.can('read', 'Counterparty', 'email') && <TextField source=\"email\" />}\n {ability.can('read', 'Counterparty', 'users') && <ReferenceArrayField source=\"usersIds\" reference=\"User\" linkType=\"show\" >\n <SingleFieldList>\n <ChipField source=\"name\" />\n </SingleFieldList>\n </ReferenceArrayField >}\n </SimpleShowLayout>\n </ShowView>\n )\n }}\n </ShowController>\n\n);\n\nexport default CounterpartyShow;\n","import Icon from '@material-ui/icons/Work';\nimport CounterpartyList from './CounterpartyList';\nimport CounterpartyCreate from './CounterpartyCreate';\nimport CounterpartyEdit from './CounterpartyEdit';\nimport CounterpartyShow from './CounterpartyShow';\n\nconst CounterpartyIcon = Icon;\n\nexport {\n CounterpartyIcon,\n CounterpartyList,\n CounterpartyShow,\n CounterpartyCreate,\n CounterpartyEdit,\n};","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport Avatar from '@material-ui/core/Avatar';\nimport grey from '@material-ui/core/colors/grey';\nimport amber from '@material-ui/core/colors/amber';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport Badge from '@material-ui/core/Badge';\nimport { withStyles } from '@material-ui/core/styles';\nimport compose from 'recompose/compose';\n\nimport { connect } from 'react-redux';\n\nconst styles = theme => ({\n container:{\n display: \"flex\",\n alignItems: \"center\",\n },\n name:{\n marginLeft: theme.spacing.unit*2,\n },\n avatar: {\n fontSize: \"1rem\",\n height: 32,\n width: 32,\n },\n onlineBadge:{\n top: \"unset\",\n bottom: \"-2px\",\n right: \"-2px\",\n width: \"10px\",\n height: \"10px\",\n border: `2px solid ${theme.palette.background.paper}`,\n backgroundColor: green[500],\n },\n offlineBadge:{\n top: \"unset\",\n bottom: \"-2px\",\n right: \"-2px\",\n width: \"10px\",\n height: \"10px\",\n border: `2px solid ${theme.palette.background.paper}`,\n backgroundColor: grey[500],\n },\n\n});\n\nconst getInitials = name => {\n var initials = name.split(\" \") || [];\n var first = initials.shift()\n var second = initials.pop()\n initials = (first.charAt(0) + ( second ? second.charAt(0) : first.charAt(1) )).toUpperCase();\n return initials;\n}\n\nconst UserNameWithAvatarField = ({ record, classes, className, onlineUsers, ...props }) => {\n \n if (!record) return null\n const online = onlineUsers.some(id => id === record.id)\n \n if (record.authStatus == \"NONE\") {\n return (\n <div className={classes.container}> \n <Avatar className={classes.avatar} >{getInitials(record.name)}</Avatar>\n <Typography variant=\"body1\" className={classes.name}>{record.name}</Typography>\n </div>\n );\n };\n\n return (\n <div className={classes.container}>\n <Badge badgeContent={false} classes={{ badge: (online) ? classes.onlineBadge: classes.offlineBadge }}>\n <Avatar className={classes.avatar} >{getInitials(record.name)}</Avatar>\n </Badge>\n <Typography variant=\"body1\" className={classes.name}>{record.name}</Typography>\n </div>\n );\n \n} \n\n\nUserNameWithAvatarField.defaultProps = {\n source: 'name',\n};\n\nconst mapStateToProps = state => {\n return { \n onlineUsers: state.onlineUsers,\n }\n};\n\nconst enhance = compose(\n withStyles(styles),\n connect(mapStateToProps),\n \n);\n\nexport default enhance(UserNameWithAvatarField);\n\n","import amber from '@material-ui/core/colors/amber';\nimport grey from '@material-ui/core/colors/grey';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\n\nconst rowStyle = (record, index, defaultStyle = {}) => {\n if (!record) return defaultStyle;\n if (record.isArchive)\n return {\n ...defaultStyle,\n borderLeftColor: grey[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n backgroundColor:grey[200],\n '&:hover': {\n backgroundColor: grey[300],\n },\n };\n if (record.authStatus === \"NONE\")\n return {\n ...defaultStyle,\n borderLeftColor: amber[500],\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n };\n if (record.authStatus === \"ACTIVE\")\n return {\n ...defaultStyle,\n borderLeft: `6px solid ${green[500]}`,\n };\n if (record.authStatus === \"BANNED\")\n return {\n ...defaultStyle,\n borderLeft: `6px solid ${red[500]}`,\n };\n return defaultStyle;\n};\n\nexport default rowStyle;","\nimport { ability } from '../../ability';\n\n\nconst arrRoles = [\n { role: 'ADMIN' },\n { role: 'MANAGER' },\n { role: 'SENIORDISPATCHER' },\n { role: 'DISPATCHER' },\n { role: 'VERIFIER' },\n { role: 'INSPECTOR' },\n { role: 'SUPERVISOR' },\n { role: 'CUSTOMER' },\n { role: 'DEMO' }\n];\n\n\n// SUPERADMIN\n// ADMIN\n// MANAGER\n// SENIORDISPATCHER\n// DISPATCHER\n// SENIORVERIFIER\n// VERIFIER\n// INSPECTOR\n// CUSTOMER\n// GUEST\n// DEMO\n// class User {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\n\nexport const getListRoles = () => arrRoles.filter(role => ability.can(\"read\", { constructor: { name: \"User\" }, ...role }));\n\nexport const getCreateRoles = () => arrRoles.filter(role => ability.can(\"create\", { constructor: { name: \"User\" }, ...role }));\n\nexport const getEditRoles = () => arrRoles.filter(role => ability.can(\"update\", { constructor: { name: \"User\" }, ...role }));","import React, { Fragment } from 'react';\nimport { BulkDeleteButton, Datagrid, DateField, TextField, Filter, List, ListView, ListController, Responsive, SearchInput, SelectInput, translate, } from 'react-admin';\nimport { Tabs, Tab, Divider, } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport red from '@material-ui/core/colors/red';\nimport compose from 'recompose/compose';\nimport { exporter } from '../../exporter';\nimport { ability } from '../../ability';\nimport BulkArchiveButton from '../Buttons/BulkArchiveButton';\nimport BulkExportButton from '../Buttons/BulkExportButton';\nimport MoreButton from '../Buttons/MoreButton';\nimport PhoneField from '../Fields/PhoneField';\nimport UserNameWithAvatarField from './UserNameWithAvatarField';\nimport RoleField from './RoleField';\nimport rowStyle from './rowStyle';\nimport { getListRoles } from './roles';\nimport TitleWithSearch from '../Layout/TitleWithSearch';\nimport Pagination from '../Layout/Pagination';\n\n// class User {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\n\nconst styles = theme => ({\n textSecondary: {\n color: \"rgba(0, 0, 0, 0.54)\",\n },\n headerRow: {\n borderLeftColor: 'white',\n borderLeftWidth: 6,\n borderLeftStyle: 'solid',\n },\n ml2:{ marginLeft: \".5rem\"},\n deleteButton: {\n color: theme.palette.getContrastText(red[500]),\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n cellMinWidth:{\n width: '1px',\n }\n});\n\n\n\nconst exportBuilder = (records, fetchRelatedRecords, translate) => { \n\n exporter(records, 'User', [\n { field: \"id\" }, \n { field: \"name\" }, \n { field: \"role\", translateValues:\"resources.User.roles\"}, \n { field: \"email\"}, \n { field: \"phone\"},\n { field: \"createdAt\", format: 'L'}, \n { field: \"customer.type\" , translateValues:\"resources.Customer.types\"}, \n { field: \"customer.organizationName\" }, \n { field: \"customer.organizationInn\"}, \n {field: \"customer.payment\", translateValues:\"resources.Customer.payments\"},\n ], translate) \n};\n\nconst UserFilter = (props) => (\n <Filter {...props}>\n {/* <SearchInput source=\"q\" alwaysOn /> */}\n <SelectInput source=\"role\" choices={getListRoles()} optionValue=\"role\" optionText={<RoleField />}/> \n </Filter>\n);\n\nconst UserTabsView = ({ filterValues, setFilters, translate, classes, className, ...props }) => {\n const handleChange = (event, value) => {\n setFilters({ ...filterValues, tab: value });\n };\n\n return ( \n <Fragment>\n <Tabs value={ filterValues.tab } onChange={ handleChange } centered >\n { ability.can('List', { constructor:{name:\"User\"},tab:\"all\"}) && <Tab label={translate('resources.User.tabs.all')} value=\"all\" /> }\n { ability.can('List', { constructor:{name:\"User\"},tab:\"customers\"}) && <Tab label={translate('resources.User.tabs.customers')} value=\"customers\" /> }\n { ability.can('List', { constructor:{name:\"User\"},tab:\"employees\"}) && <Tab label={translate('resources.User.tabs.employees')} value=\"employees\" /> }\n { ability.can('List', { constructor:{name:\"User\"},tab:\"admins\"}) && <Tab label={translate('resources.User.tabs.admins')} value=\"admins\" /> }\n { ability.can('List', { constructor:{name:\"User\"},tab:\"archived\"}) && <Tab label={translate('resources.User.tabs.archived')} value=\"archived\" /> }\n </Tabs>\n <Divider />\n <Responsive\n small={\n\n <Datagrid rowClick=\"show\" rowStyle={rowStyle} classes={{ headerRow: classes.headerRow }} {...props}>\n <UserNameWithAvatarField source=\"name\" />\n <PhoneField source=\"phone\" noWrap/>\n <TextField source=\"email\" />\n <RoleField source=\"role\" />\n <DateField source=\"createdAt\" textAlign=\"right\" className={classes.textSecondary} showTime /> \n <MoreButton label=\"\" cellClassName={classes.cellMinWidth}/>\n </Datagrid>\n \n }\n />\n </Fragment>\n )\n};\n\nconst UserTabs = compose(\n translate,\n withStyles(styles)\n)(UserTabsView);\n\n\n\n\n\nconst BulkActionToolbarView = withStyles(styles)(({classes, translate, ...props}) => {\n\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate) \n }\n\n return (\n <Fragment>\n <BulkExportButton variant=\"outlined\" exporter={exportBuilderWithTranslate} {...props}/>\n { ability.can('archive', 'User') && <BulkArchiveButton className={`${classes.ml2}`} {...props} />}\n { ability.can('delete', 'User') && <BulkDeleteButton className={`${classes.deleteButton} ${classes.ml2}`} {...props} />} \n </Fragment>\n );\n});\n\nconst BulkActionToolbar = compose(withStyles(styles), translate)(BulkActionToolbarView);\n\n\nexport const UserListView = ({translate, ...props}) => {\n\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate) \n }\n\n return (\n // <List {...props}\n // bulkActionButtons={<BulkActionToolbar />}\n // sort={{field: 'name', order: 'DESC'}}\n // filters={<UserFilter />}\n // filterDefaultValues={{ tab: 'customers' }}\n // exporter={exportBuilderWithTranslate}\n // >\n // <UserTabs />\n // </List>\n\n\n <ListController sort={{field: 'name', order: 'DESC'}} filterDefaultValues={{ tab: 'customers' }} {...props}>\n {controllerProps => (\n <ListView \n title={<TitleWithSearch {...controllerProps} />}\n bulkActionButtons={<BulkActionToolbar />} \n filters={<UserFilter />}\n pagination={<Pagination />}\n exporter={exportBuilderWithTranslate} \n {...props} \n {...controllerProps}\n >\n <UserTabs /> \n </ListView>\n )\n }\n </ListController>\n\n );\n}; \n\nconst UserList = compose(translate)(UserListView);\n\nexport default UserList;\n\n\n","import React from 'react';\nimport { AutocompleteInput, AutocompleteArrayInput, Create, FormDataConsumer, ReferenceInput, ReferenceArrayInput, SaveButton, SelectInput, SimpleForm, TextInput, Toolbar, required, minLength, email, } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ability } from '../../ability'\nimport CheckBoxGroupInputWithCheckAll from '../Inputs/CheckBoxGroupInputWithCheckAll';\nimport { AddressSuggestionComponent, AddressCheckComponent } from '../Order/AddressComponents';\nimport TypeField from '../Customer/TypeField';\nimport PaymentField from '../Customer/PaymentField';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport RoleField from './RoleField';\nimport { getCreateRoles } from './roles';\n\nconst arrTypes = [\n { type: 'PHIS' },\n { type: 'JURE' },\n];\n\nconst arrPayments = [\n { payment: 'CASH' },\n { payment: 'CASHLESS' },\n];\n\n// class User {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\n\nconst validateName = [required(), minLength(2)];\n// const nameFormat = (value) => {\n// if (!value) return value\n// return value.replace(/\\s+/g, \" \").replace(/([.!?\\s]+)(?=\\S)/g, \"$1 \")\n// }\nconst validateEmail = [email()];\n\nconst styles = theme => ({\n mr2: { marginRight: \".5rem\" },\n});\n\n\n\n\nconst UserCreate = (props) => {\n return (\n <Create {...props}>\n <SimpleForm toolbar={<CreateToolbar />}>\n <TextInput source=\"name\" /*format={nameFormat}*/ validate={validateName} />\n <PhoneInput source=\"phone\" inputProps={{ autoComplete: \"new-password\" }} />\n <SelectInput source=\"role\" choices={getCreateRoles()} optionValue=\"role\" optionText={<RoleField />} validate={required()} />\n <FormDataConsumer style={{ display: \"flex\", flexDirection: \"column\" }}>{\n ({ formData, ...rest }) => formData.role === \"CUSTOMER\" && [\n <SelectInput key=\"type\" source=\"customer.type\" choices={arrTypes} optionValue=\"type\" optionText={<TypeField />} validate={required()} {...rest} />,\n <FormDataConsumer style={{ display: \"flex\", flexDirection: \"column\" }}>{\n ({ formData }) => (!!formData.customer && (formData.customer.type === undefined || formData.customer.type === \"JURE\")) && [\n <TextInput key=\"organizationName\" source=\"customer.organizationName\" {...rest} />,\n <TextInput key=\"organizationInn\" source=\"customer.organizationInn\" {...rest} />,\n <SelectInput key=\"payment\" source=\"customer.payment\" choices={arrPayments} optionValue=\"payment\" optionText={<PaymentField />} {...rest} />,\n ]\n }\n </FormDataConsumer>,\n ]\n }\n </FormDataConsumer>\n <TextInput source=\"email\" type=\"email\" validate={validateEmail} inputProps={{ autoComplete: \"new-password\" }} />\n <TextInput source=\"password\" type=\"password\" inputProps={{ autoComplete: \"new-password\" }} />\n {ability.can('create', 'User', 'counterparty') && <ReferenceInput source=\"counterparty.id\" reference=\"Counterparty\" sort={{ field: 'name', order: 'ASC' }} filterToQuery={searchText => ({ name: searchText })} label=\"resources.User.fields.counterparty\" allowEmpty >\n <AutocompleteInput optionText=\"name\" />\n </ReferenceInput>}\n {ability.can(\"create\", \"User\", \"regionIds\") && (\n <ReferenceArrayInput source=\"regionIds\" reference=\"Location\" filter={{ type: 'REGION' }} options={{ fullWidth: true }}>\n <AutocompleteArrayInput suggestionComponent={AddressSuggestionComponent} optionText={choice => `${choice.name} ${choice.typeShort}`} />\n </ReferenceArrayInput>\n )}\n {ability.can(\"create\", \"User\", \"districtIdOrCityIds\") && (\n <FormDataConsumer>{\n ({ formData, className, ...rest }) =>\n <ReferenceArrayInput key={formData.regionIds} source=\"districtIdOrCityIds\" reference=\"Location\" filter={{ type: 'DISTRICT', parentIds: !!formData.regionIds ? formData.regionIds : [] }} perPage={1000} {...rest} >\n <CheckBoxGroupInputWithCheckAll optionText={AddressCheckComponent} />\n </ReferenceArrayInput>\n }\n </FormDataConsumer>\n )}\n\n </SimpleForm>\n </Create>\n )\n};\n\n\nconst CreateToolbar = withStyles(styles)(({ classes, ...props }) => {\n const { permissions, record } = props;\n\n return (\n <Toolbar {...props} >\n { ability.can(\"create\", { constructor: { name: \"User\" }, role: record.role }) && (\n <SaveButton className={`${classes.mr2}`} label=\"ra.action.create\" redirect=\"list\" submitOnEnter={true} />\n )}\n { ability.can(\"create\", { constructor: { name: \"User\" }, role: record.role }) && (\n <SaveButton label=\"raExt.action.create_and_continue\" redirect={false} submitOnEnter={false} variant=\"outlined\" />\n )}\n </Toolbar>\n );\n});\n\nexport default UserCreate;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { Button, crudUpdate } from 'react-admin';\nimport BanIcon from '@material-ui/icons/Report';\nimport UnbanIcon from '@material-ui/icons/ReportOff';\nimport { startUndoable } from 'ra-core';\n\nconst styles = theme => ({\n button: {\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n },\n banButton: {\n color: theme.palette.error.main,\n borderColor: fade(theme.palette.error.main, 0.5),\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n borderColor: theme.palette.error.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n \n },\n unbanButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n \n },\n});\n\nclass BanButton extends Component {\n\n\n handleBan = () => {\n const { startUndoable, resource, record, basePath, redirect } = this.props;\n startUndoable(\n crudUpdate(resource, record.id, { id: record.id, authStatus: \"BANNED\" }, record, basePath, redirect)\n );\n };\n\n handleUnban = () => {\n const { startUndoable, resource, record, basePath, redirect } = this.props;\n startUndoable(\n crudUpdate(resource, record.id, { id: record.id, authStatus: \"ACTIVE\" }, record, basePath, redirect)\n );\n \n };\n\n render() {\n const { record, className, classes } = this.props;\n if (!record || record.authStatus === \"NONE\" || record.isArchive) return null;\n\n \n return record.authStatus === \"ACTIVE\"\n ? (<Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.ban\"\n onClick={this.handleBan}\n className={`${classes.button} ${classes.banButton} ${className}`}\n >\n <BanIcon />\n </Button>)\n : (<Button \n size=\"small\"\n variant=\"outlined\"\n label=\"raExt.action.unban\"\n onClick={this.handleUnban} \n className={`${classes.button} ${classes.unbanButton} ${className}`}\n >\n <UnbanIcon />\n </Button>);\n \n }\n}\n\nBanButton.propTypes = {\n record: PropTypes.object,\n startUndoable: PropTypes.func,\n\n};\n\nconst enhance = compose(\n withStyles(styles),\n connect(\n null,\n {\n startUndoable,\n }\n )\n);\n\nexport default enhance(BanButton);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport compose from 'recompose/compose';\nimport pure from 'recompose/pure';\nimport OrderIcon from '@material-ui/icons/AttachMoney';\nimport { Link } from 'react-router-dom';\nimport { Button } from 'react-admin';\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst sanitizeRestProps = ({\n // the next 6 props are injected by Toolbar\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n pristine,\n saving,\n submitOnEnter,\n ...rest\n}) => rest;\n\nexport const CreateRelatedOrderButton = ({\n basePath = '',\n label = 'raExt.action.create_related_order',\n record = {},\n resource,\n ...rest\n}) => {\n if (record.role !== \"CUSTOMER\") return null\n\n return (\n <Button\n component={Link}\n to={{\n pathname: `/Order/create`,\n state: { \n record: {\n customer: {\n id: record.id,\n name: record.name,\n phone: record.phone,\n }\n }\n },\n }}\n label={label}\n onClick={stopPropagation}\n {...sanitizeRestProps(rest)}\n >\n <OrderIcon />\n </Button>\n );\n}\n\n\n\n\nCreateRelatedOrderButton.propTypes = {\n basePath: PropTypes.string,\n className: PropTypes.string,\n classes: PropTypes.object,\n label: PropTypes.string,\n record: PropTypes.object,\n icon: PropTypes.element,\n};\n\nconst enhance = compose(\n pure,\n);\n\nexport default enhance(CreateRelatedOrderButton);","import React from 'react';\nimport compose from 'recompose/compose';\nimport moment from 'moment'\nimport { withStyles } from '@material-ui/core/styles';\nimport CardContent from '@material-ui/core/CardContent';\nimport PhoneIcon from '@material-ui/icons/Call';\nimport EmailIcon from '@material-ui/icons/Mail';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport { translate } from 'react-admin';\nimport Avatar from '@material-ui/core/Avatar';\nimport { ability } from '../../ability'\n\nimport ArchiveChip from '../Fields/ArchiveChip';\nimport PhoneField from '../Fields/PhoneField';\nimport green from '@material-ui/core/colors/green';\nimport red from '@material-ui/core/colors/red';\nimport { white } from 'ansi-colors';\n\nimport RoleChip from '../Fields/RoleChip';\nimport AuthChip from '../Fields/AuthChip';\n\n\nconst styles = theme => ({\n avatar: {\n width: 128,\n height: 128,\n backgroundColor:theme.palette.grey[\"400\"],\n },\n headline:{\n display: \"flex\",\n },\n subheading:{\n display: \"flex\",\n color:theme.palette.text.secondary\n },\n flex: {\n display: \"flex\",\n },\n flexColumn: {\n flexDirection: \"column\"\n },\n justifyEnd: {\n justifyContent: \"flex-end\"\n },\n mlAuto: {\n marginLeft: \"auto\",\n },\n ml1:{\n marginLeft: \"0.25rem\"\n },\n ml2:{\n marginLeft: \"0.5rem\"\n },\n ml3:{\n marginLeft: \"1rem\"\n },\n iconHeadline:{\n fontSize:\"inherit\",\n marginRight:\"0.5rem\",\n height: \"1.35417em\"\n },\n iconSubheading:{\n fontSize:\"inherit\",\n marginRight:\"0.5rem\",\n height: \"1.5em\"\n },\n chipSuccess:{\n color: white,\n backgroundColor: green[\"400\"],\n },\n chipError:{\n backgroundColor: red[\"400\"],\n },\n iconChip:{\n marginLeft:\"4px\",\n height: 24,\n width: 24,\n \n },\n});\n\n\n\nconst FastView = ({ className, classes, locales, options={}, translate, record, ...props }) =>{\n\n if (!record) return null;\n \n const createdAt = moment(record.createdAt).format('L');\n const updatedAt = moment(record.updatedAt).format('L');\n\n return(\n <CardContent >\n <Grid container spacing={16}>\n <Grid item xs className={`${classes.flex}`} >\n <Avatar className={classes.avatar} >NN</Avatar>\n <div className={`${classes.ml3}`}>\n <Typography className={classes.headline} variant=\"headline\" component=\"h2\" gutterBottom>{record.name}</Typography>\n <Typography className={classes.subheading} variant=\"subheading\" component=\"span\"><PhoneIcon className={classes.iconSubheading}/><PhoneField record={record} source=\"phone\" variant=\"subheading\" color=\"inherit\"/></Typography>\n \n {(ability.can('read', \"User\", \"email\") && record.email) && <Typography className={classes.subheading} variant=\"subheading\" component=\"span\" ><EmailIcon className={classes.iconSubheading}/>{record.email}</Typography>}\n </div>\n </Grid>\n <Grid item sm className={`${classes.flex} ${classes.justifyEnd}`}>\n <RoleChip record={record}/>\n {ability.can('read', \"User\", \"authStatus\") && <AuthChip record={record} className={`${classes.ml1}`}/> }\n <ArchiveChip record={record} className={`${classes.ml1}`} />\n \n </Grid>\n </Grid>\n <div className={`${classes.flex} ${classes.justifyEnd}`}>\n {ability.can('read', \"User\", \"createdAt\") && <Typography color=\"textSecondary\" variant=\"caption\" >{`${translate('resources.User.fields.createdAt')}: ${createdAt}`}</Typography> }\n {ability.can('read', \"User\", \"updatedAt\") && <Typography color=\"textSecondary\" variant=\"caption\" className={`${classes.ml2}`} >{`${translate('resources.User.fields.updatedAt')}: ${updatedAt}`}</Typography> }\n </div>\n\n \n </CardContent>\n )\n};\n\n\nexport default compose( withStyles(styles), translate, )(FastView);\n\n","import React from 'react';\nimport moment from 'moment'\nimport 'moment/locale/ru';\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport { withStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { translate } from 'react-admin';\nimport FavoriteButton from '../Buttons/FavoriteButton';\n\nconst styles = theme => ({\n title:{\n display: \"flex\",\n alignItems: \"center\"\n },\n titleSecondary:{\n color: fade(theme.palette.primary.contrastText, 0.87),\n },\n ['ml-2']:{\n marginLeft: \"1rem\"\n },\n});\n\n\n\nconst Title = ({ record, translate, className, classes, ...props }) => {\n const lastUpdated = moment(record.updatedAt).fromNow()\n return (\n <div className={classes.title} >\n <span>{record ? `${record.name}` : `${translate('resources.User.name'), { smart_count: 1 }} ${record.id}` }</span>\n <Typography className={`${classes.titleSecondary} ${classes['ml-2']}`} >{(record.online) ? translate('resources.User.online') : translate('resources.User.offline', { timeAgo: lastUpdated })}</Typography>\n </div>\n );\n};\n\nexport default compose( withStyles(styles), translate, )( Title );\n\n","import React, { Fragment } from 'react';\nimport {\n AutocompleteInput,\n AutocompleteArrayInput,\n DeleteButton,\n Edit,\n ShowButton,\n FormDataConsumer,\n FormTab,\n ReferenceInput,\n ReferenceArrayInput,\n SaveButton,\n SelectInput,\n TabbedForm,\n TextInput,\n Toolbar,\n required,\n minLength,\n email,\n} from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardActions from '@material-ui/core/CardActions';\nimport { ability } from '../../ability'\nimport { AddressSuggestionComponent, AddressCheckComponent } from '../Order/AddressComponents';\nimport CheckBoxGroupInputWithCheckAll from '../Inputs/CheckBoxGroupInputWithCheckAll';\nimport TypeField from '../Customer/TypeField';\nimport PaymentField from '../Customer/PaymentField';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport ArchiveButton from '../Buttons/ArchiveButton';\nimport BanButton from '../Buttons/BanButton';\nimport CreateRelatedOrderButton from '../Buttons/CreateRelatedOrderButton';\nimport FastView from './FastView';\nimport UserTitle from './Title';\n\n\nconst arrTypes = [\n { type: 'PHIS' },\n { type: 'JURE' },\n];\n\nconst arrPayments = [\n { payment: 'CASH' },\n { payment: 'CASHLESS' },\n];\n\n// class User {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\nconst styles = theme => ({\n mr2: { marginRight: \".5rem\" },\n mlAuto: { marginLeft: \"auto\" },\n deleteButton: {\n color: theme.palette.error.contrastText,\n backgroundColor: theme.palette.error.main,\n '&:hover': {\n backgroundColor: theme.palette.error.dark,\n },\n },\n contaiter: {\n zIndex: 2,\n display: 'flex',\n padding: 0,\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n },\n});\n\n\nconst validateName = [required(), minLength(2)];\nconst validateEmail = [email()];\n\n\nexport const EditLayoutView = ({ classes, ...props }) => {\n const { record } = props;\n\n\n return (\n <Fragment>\n <FastView {...props} />\n <TabbedForm toolbar={<EditToolbar />} {...props} >\n <FormTab label=\"resources.User.tabs.general\" >\n <TextInput source=\"name\" fullWidth validate={validateName} />\n {/* <TextInput source=\"phone\" validate={validatePhone} inputProps={{ autocomplete: \"new-password\"}} /> */}\n <PhoneInput source=\"phone\" inputProps={{ autoComplete: \"new-password\" }} />\n <TextInput source=\"email\" type=\"email\" validate={validateEmail} inputProps={{ autoComplete: \"new-password\" }} />\n <TextInput source=\"password\" type=\"password\" inputProps={{ autoComplete: \"new-password\" }} />\n </FormTab>\n {(record.role === 'CUSTOMER') && (\n <FormTab label=\"resources.User.roles.CUSTOMER\" path=\"customer\">\n <SelectInput key=\"type\" source=\"customer.type\" choices={arrTypes} optionValue=\"type\" optionText={<TypeField />} validate={required()} />\n <FormDataConsumer style={{ display: \"flex\", flexDirection: \"column\" }}>{\n ({ formData, ...rest }) => {\n if (!!formData.customer && (formData.customer.type === undefined || formData.customer.type === \"JURE\")) {\n return [\n <TextInput key=\"organizationName\" source=\"customer.organizationName\" {...rest} />,\n <TextInput key=\"organizationInn\" source=\"customer.organizationInn\" {...rest} />,\n <SelectInput key=\"payment\" source=\"customer.payment\" choices={arrPayments} optionValue=\"payment\" optionText={<PaymentField />} {...rest} />,\n ];\n }\n }}\n </FormDataConsumer>\n </FormTab>)}\n <FormTab label=\"resources.User.tabs.accessLocation\" path=\"accessLocation\">\n {ability.can('update', 'User', 'counterparty') && <ReferenceInput source=\"counterparty.id\" reference=\"Counterparty\" sort={{ field: 'name', order: 'ASC' }} filterToQuery={searchText => ({ name: searchText })} label=\"resources.User.fields.counterparty\" allowEmpty emptyText=\"ra.message.no\" >\n <AutocompleteInput optionText=\"name\" />\n </ReferenceInput>}\n {ability.can('update', \"User\", \"regionIds\") && (\n <ReferenceArrayInput source=\"regionIds\" reference=\"Location\" filter={{ type: 'REGION' }} options={{ fullWidth: true }}>\n <AutocompleteArrayInput suggestionComponent={AddressSuggestionComponent} optionText={choice => `${choice.name} ${choice.typeShort}`} />\n </ReferenceArrayInput>\n )}\n {ability.can('update', \"User\", \"districtIdOrCityIds\") && (\n <FormDataConsumer>{\n ({ formData, className, ...rest }) =>\n <ReferenceArrayInput key={formData.regionIds} source=\"districtIdOrCityIds\" reference=\"Location\" filter={{ type: 'DISTRICT', parentIds: !!formData.regionIds ? formData.regionIds : [] }} perPage={1000} {...rest} >\n <CheckBoxGroupInputWithCheckAll optionText={AddressCheckComponent} />\n </ReferenceArrayInput>\n }\n </FormDataConsumer>\n )}\n </FormTab>\n </TabbedForm>\n </Fragment>\n )\n};\n\nconst UserEditActions = withStyles(styles)(({ classes, className, basePath, data, resource }) => {\n if (!data) return null;\n return (\n <CardActions className={`${classes.contaiter}`}>\n { ability.can(\"Create\", \"Order\") && <CreateRelatedOrderButton basePath={basePath} record={data} className={`${classes.mr2}`} />}\n { ability.can(\"Edit\", { constructor: { name: \"User\" }, role: data.role }) && <ShowButton basePath={basePath} record={data} />}\n </CardActions >\n )\n});\n\nconst UserEdit = props => {\n return (\n <Edit actions={<UserEditActions />} title={<UserTitle />} {...props} >\n <EditLayoutView />\n </Edit>\n );\n}\n\nexport const EditToolbar = withStyles(styles)(({ classes, submitOnEnter, ...props }) => {\n const { record } = props;\n\n return (\n <Toolbar {...props} >\n { ability.can(\"update\", { constructor: { name: \"User\" }, role: record.role }) && !record.isArchive && (\n <SaveButton className={`${classes.mr2}`} redirect=\"show\" submitOnEnter={true} />\n )}\n { ability.can(\"archive\", { constructor: { name: \"User\" }, role: record.role }) && (\n <ArchiveButton record={props.record} resource={props.resource} className={`${classes.mlAuto} ${classes.mr2}`} />\n )}\n { ability.can(\"delete\", { constructor: { name: \"User\" }, role: record.role }) && (\n <BanButton record={props.record} resource={props.resource} className={`${classes.mr2}`} />\n )}\n { ability.can(\"delete\", { constructor: { name: \"User\" }, role: record.role }) && (\n <WrappedDeleteButton className={classes.deleteButton} />\n )}\n </Toolbar>\n )\n});\n\nconst WrappedDeleteButton = ({ submitOnEnter, ...props }) => (<DeleteButton {...props} />)\n\nexport default UserEdit;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport Avatar from '@material-ui/core/Avatar';\nimport { withStyles } from '@material-ui/core/styles';\nimport RegionIcon from '@material-ui/icons/Layers';\nimport DistrictIcon from '@material-ui/icons/Texture';\nimport CityIcon from '@material-ui/icons/LocationCity';\nimport TownIcon from '@material-ui/icons/Home';\nimport StreetIcon from '@material-ui/icons/Place';\nimport LocationIcon from '@material-ui/icons/Directions';\n\nconst styles = theme => ({\n root: {\n margin: \".125rem\",\n },\n avatar:{\n color: theme.palette.grey[\"500\"],\n backgroundColor: \"transparent\",\n marginLeft: \"4px\",\n marginRight: \"-8px\",\n \n },\n avatarChildren:{\n width: '1em',\n height: '1em',\n }\n});\n\n\nconst getLocationIcon = level => {\n switch( level ){\n case 1:\n case 2:\n return (<RegionIcon />)\n break;\n case 3:\n return (<DistrictIcon />)\n break;\n case 4:\n return (<CityIcon />)\n break;\n case 5:\n case 6:\n return (<TownIcon />)\n break;\n case 7:\n return (<StreetIcon />)\n break;\n default:\n return (<LocationIcon />)\n break;\n }\n}\n\n\nconst AddressChip = ({ className, classes, record}) => {\n if (!record) return null;\n \n return (\n <Chip clickable avatar={<Avatar>{getLocationIcon(record.level)}</Avatar>} label={`${record.typeShort}. ${record.name}`} classes={{root:classes.root, avatar:classes.avatar, avatarChildren: classes.avatarChildren}} className={`${className}`} />\n );\n}\n\n\nexport default withStyles(styles)(AddressChip);","import React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\n\nconst getTabFullPath = (tab, index, baseUrl) =>\n `${baseUrl}${\n tab.props.path ? `/${tab.props.path}` : index > 0 ? `/${index}` : ''\n }`;\n\nconst OrderTabbedShowLayoutTabs = ({ children, match, ...rest }) => (\n <Tabs centered {...rest} >\n {Children.map(children, (tab, index) => {\n if (!tab) return null;\n // Builds the full tab tab which is the concatenation of the last matched route in the\n // TabbedShowLayout hierarchy (ex: '/posts/create', '/posts/12', , '/posts/12/show')\n // and the tab path.\n // This will be used as the Tab's value\n const tabPath = getTabFullPath(tab, index, match.url);\n\n return cloneElement(tab, {\n context: 'header',\n value: tabPath,\n });\n })}\n </Tabs>\n);\n\nOrderTabbedShowLayoutTabs.propTypes = {\n children: PropTypes.node,\n match: PropTypes.object,\n value: PropTypes.string,\n};\n\nexport default OrderTabbedShowLayoutTabs;\n","import React, { Fragment } from 'react';\nimport { CloneButton, EditButton, EmailField, Pagination, ReferenceArrayField, ReferenceManyField, Show, SingleFieldList, Tab, TabbedShowLayout, TextField, } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardActions from '@material-ui/core/CardActions';\nimport { ability } from '../../ability'\nimport { DatagridUser } from '../Order/OrderList';\nimport { OrderHistoryDatagridForUser } from '../OrderHistory';\nimport CreateRelatedOrderButton from '../Buttons/CreateRelatedOrderButton';\nimport PhoneField from '../Fields/PhoneField';\nimport AddressChip from '../Fields/AddressChip';\nimport UserTabbedShowLayoutTabs from './UserTabbedShowLayoutTabs';\nimport FastView from './FastView';\nimport UserTitle from './Title';\n\n// class User {\n// constructor(attrs) {\n// Object.assign(this, attrs)\n// }\n// }\n\nvar styles = theme => ({\n contaiter: {\n zIndex: 2,\n display: 'flex',\n padding: 0,\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n },\n});\n\nconst ShowLayout = (props) => {\n const { record } = props;\n return (\n <Fragment>\n <FastView {...props} />\n\n <TabbedShowLayout tabs={<UserTabbedShowLayoutTabs />} {...props}>\n {ability.can('Show', { constructor: { name: \"User\" }, tab: \"general\" }) &&\n <Tab label=\"resources.User.tabs.general\">\n {ability.can('read', 'User', \"name\") && <TextField source=\"name\" />}\n {ability.can('read', 'User', \"phone\") && <PhoneField source=\"phone\" noWrap />}\n {ability.can('read', 'User', \"email\") && <EmailField source=\"email\" />}\n </Tab>\n }\n {(record.role === 'CUSTOMER' && ability.can('read', 'User', \"customer.type\")) && (\n <Tab label=\"resources.User.roles.CUSTOMER\" path=\"customer\" >\n <TextField source=\"customer.type\" />{\n (!!record.customer && record.customer.type === \"JURE\") && (\n [\n <TextField source=\"customer.organizationName\" {...props} />,\n <TextField source=\"customer.organizationInn\" {...props} />,\n <TextField source=\"customer.payment\" {...props} />\n ])\n }\n </Tab>\n )}\n {ability.can('Show', { constructor: { name: \"User\" }, tab: \"accessLocation\" }) &&\n <Tab label=\"resources.User.tabs.accessLocation\" path=\"accessLocation\">\n {ability.can('read', 'User', 'counterparty') && <TextField source=\"counterparty.name\" label=\"resources.User.fields.counterparty\" />}\n {ability.can('read', 'User', \"regionIds\") && (\n <ReferenceArrayField source=\"regionIds\" reference=\"Location\">\n <SingleFieldList linkType={'show'}>\n <AddressChip />\n </SingleFieldList>\n </ReferenceArrayField>\n )}\n {ability.can('read', 'User', \"districtIdOrCityIds\") && (\n <ReferenceArrayField source=\"districtIdOrCityIds\" reference=\"Location\">\n <SingleFieldList linkType={'show'}>\n <AddressChip />\n </SingleFieldList>\n </ReferenceArrayField>\n )}\n\n </Tab>\n }\n {ability.can('Show', { constructor: { name: \"User\" }, tab: \"orders\" }) &&\n <Tab label=\"resources.User.tabs.orders\" path=\"orders\">\n <ReferenceManyField\n reference=\"Order\"\n target=\"oneOfUserMany\"\n addLabel={false}\n perPage={10}\n pagination={<Pagination />}\n >\n <DatagridUser />\n </ReferenceManyField>\n </Tab>\n }\n <Tab label=\"resources.User.tabs.history\" path=\"history\" >\n <ReferenceManyField reference=\"OrderHistory\" target=\"user.id\" sort={{ field: 'createdAt', order: 'DESC' }} pagination={<Pagination />} addLabel={false} >\n <OrderHistoryDatagridForUser />\n </ReferenceManyField>\n </Tab>\n </TabbedShowLayout>\n </Fragment>\n\n )\n};\n\nconst UserShowActions = withStyles(styles)(({ classes, className, basePath, data, resource }) => {\n if (!data) return null;\n return (\n <CardActions className={`${classes.contaiter}`}>\n { ability.can(\"Create\", \"Order\") && <CreateRelatedOrderButton basePath={basePath} record={data} />}\n { ability.can(\"Create\", { constructor: { name: \"User\" }, role: data.role }) && <CloneButton basePath={basePath} record={data} />}\n { ability.can(\"Edit\", { constructor: { name: \"User\" }, role: data.role }) && <EditButton basePath={basePath} record={data} />}\n </CardActions >\n )\n});\n\nconst UserShow = (props) => {\n return (\n <Show title={<UserTitle />} actions={<UserShowActions />} {...props}>\n <ShowLayout />\n </Show>\n );\n};\n\nexport default UserShow;","import Icon from '@material-ui/icons/People';\nimport UserList from './UserList';\nimport UserCreate from './UserCreate';\nimport UserEdit from './UserEdit';\nimport UserShow from './UserShow';\n\nconst UserIcon = Icon;\n\nexport {\n UserIcon,\n UserList,\n UserShow,\n UserCreate,\n UserEdit,\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { translate } from 'react-admin';\nimport Typography from '@material-ui/core/Typography';\nimport compose from 'recompose/compose';\nimport pure from 'recompose/pure';\n\nimport { withStyles } from '@material-ui/core/styles';\n\n\n\nconst styles = theme => ({\n emptyContainer:{\n width:\"100%\",\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n \n },\n emptyContainerImage:{\n paddingTop: '1rem',\n \n },\n noResult:{\n paddingBottom: '1rem',\n textAlign: 'center',\n color:theme.palette.text.secondary\n },\n tileBar: {\n background:'linear-gradient(to bottom, rgba(51,51,51,0.8) 4%, rgba(51,51,51,0.38) 47%, rgba(44,44,44,0.01) 85%)',\n },\n link: {\n color: '#fff',\n },\n GridList_root: {\n paddingTop: '1rem'\n },\n GridListTile_tile: {\n cursor: 'pointer',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden',\n border: '1px solid #EAEAEA',\n borderRadius: '0.25rem',\n },\n GridListTile_imgFullWidth: {\n top: 'unset',\n width: 'unset',\n position: 'relative',\n transform: 'unset',\n },\n placeholderImage: {\n cursor: 'pointer',\n },\n});\n\n\n\n\n\n\n\nconst ArrayMapField = ({ basePath, record, source, resource, children, className, classes, empty, translate, ...props }) => {\n \n if (React.Children.count(children) !== 1) throw new Error('<ArrayMapField> only accepts a single child');\n const array = get(record, source);\n if (!array || !Array.isArray(array)) throw new Error('Source is not an array'); \n \n \n if (array.length === 0) {\n if (!empty) return null;\n if (typeof empty === 'string') return <Typography variant=\"caption\">{translate(empty, { _: empty })}</Typography>;\n if (typeof empty === 'object') return React.cloneElement(empty, { className, record, ...props });\n } \n \n return (\n <div>\n {array.map( (item, i) => { \n return React.cloneElement(children, {\n key: i,\n basePath,\n resource,\n record: item,\n ...props\n }); \n })}\n </div>\n )\n\n} \n\nArrayMapField.propTypes = {\n basePath: PropTypes.string,\n children: PropTypes.element.isRequired,\n className: PropTypes.string,\n classes: PropTypes.object,\n record: PropTypes.object,\n resource: PropTypes.string.isRequired,\n source: PropTypes.string,\n empty: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.bool])\n};\n\nArrayMapField.defaultProps = {\n empty: false,\n};\n\nconst EnhancArrayMapField = compose(\n withStyles(styles),\n translate,\n pure,\n)(ArrayMapField);\n\nEnhancArrayMapField.defaultProps = {\n addLabel: true,\n};\n\nexport default EnhancArrayMapField;\n\n","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport moment from 'moment'\nimport 'moment/locale/ru';\n\nconst VerifyIntervalField = ({ record, className, }) => {\n if (!record || !record.verifyInterval) return null;\n return (<Typography className={className} >{moment.duration(record.verifyInterval, 'years').humanize()}</Typography>);\n}\n\nVerifyIntervalField.defaultProps = {\n addLabel: true,\n};\n\nexport default VerifyIntervalField;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { SelectInput } from \"react-admin\";\nimport moment from 'moment'\nimport 'moment/locale/ru';\n\nconst choices = [\n { id: 2, name: moment.duration(2, 'years').humanize() },\n { id: 3, name: moment.duration(3, 'years').humanize() },\n { id: 4, name: moment.duration(4, 'years').humanize() },\n { id: 5, name: moment.duration(5, 'years').humanize() },\n { id: 6, name: moment.duration(6, 'years').humanize() },\n { id: 7, name: moment.duration(7, 'years').humanize() },\n { id: 8, name: moment.duration(8, 'years').humanize() },\n { id: 9, name: moment.duration(9, 'years').humanize() },\n { id: 10, name: moment.duration(10, 'years').humanize() },\n { id: 11, name: moment.duration(11, 'years').humanize() },\n { id: 12, name: moment.duration(12, 'years').humanize() },\n]\n\nconst VerifyIntervalInput = props => <SelectInput {...props} choices={choices} />\n\nVerifyIntervalInput.propTypes = {\n source: PropTypes.string,\n};\n\n\nexport default VerifyIntervalInput;","import React from 'react';\nimport {\n translate,\n required,\n List, ListView, ListController,\n Create,\n Show,\n SelectInput,\n ArrayField,\n SingleFieldList,\n ChipField,\n Edit,\n SearchInput,\n SimpleShowLayout,\n SimpleForm,\n Datagrid,\n TextField,\n TextInput,\n LongTextInput,\n Filter\n} from 'react-admin';\nimport { ability } from '../../ability'\nimport Icon from '@material-ui/icons/DevicesOther';\nimport { exporter } from '../../exporter';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Toolbar, FileField, SaveButton, DeleteButton } from 'react-admin';\nimport MeterField from './MeterField'\nimport { OptionMeter } from './MeterField'\n\nimport EnumInput from '../Inputs/EnumInput';\nimport ArrayMapField from '../Fields/ArrayMapField';\nimport FileChip from '../Fields/FileChip';\nimport VerifyIntervalField from './VerifyIntervalField';\nimport FileInput from '../Inputs/FileInput';\nimport TitleWithSearch from '../Layout/TitleWithSearch';\n\nimport VerifyIntervalInput from './VerifyIntervalInput';\nimport Pagination from '../Layout/Pagination';\n\n\n\nexport const MeterIcon = Icon;\n\nconst styles = theme => ({\n mr2: { marginRight: \".5rem\" },\n mlAuto: { marginLeft: \"auto\" },\n removeButton: {\n display: \"flex\",\n alignItems: \"center\"\n }\n});\n\nconst exportBuilder = (records, fetchRelatedRecords, translate) => {\n exporter(records, 'Meter', [\n { field: \"id\" },\n { field: \"type\", translateValues: \"resources.Meter.enums.type\" },\n { field: \"name\" },\n { field: \"description\" },\n { field: \"verifyInterval\" },\n ], translate)\n};\n\nexport const MeterList = translate(({ translate, ...props }) => {\n let isbulkActionView = ability.can('delete', 'Meter') ? null : { bulkActionButtons: false };\n\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate)\n }\n\n return (\n // <List {...props}\n // {...isbulkActionView}\n // filters={<MeterFilter />}\n // exporter={exportBuilderWithTranslate}>\n // <Datagrid rowClick=\"show\">\n // <MeterField source=\"name\" />\n // <TextField source=\"description\" />\n // <VerifyIntervalField source=\"verifyInterval\" />\n // <ArrayMapField source=\"documentation\">\n // <FileChip title=\"desc\" />\n // </ArrayMapField>\n // </Datagrid>\n // </List>\n\n\n <ListController {...props}>\n {controllerProps => (\n <ListView\n title={<TitleWithSearch {...controllerProps} />}\n {...isbulkActionView}\n filters={<MeterFilter />}\n exporter={exportBuilderWithTranslate}\n pagination={<Pagination />}\n {...props}\n {...controllerProps}\n >\n <Datagrid rowClick=\"show\">\n <MeterField source=\"name\" />\n <TextField source=\"description\" />\n <VerifyIntervalField source=\"verifyInterval\" />\n <ArrayMapField source=\"documentation\">\n <FileChip title=\"desc\" />\n </ArrayMapField>\n </Datagrid>\n </ListView>\n )\n }\n </ListController>\n );\n});\n\nexport const MeterShow = (props) => (\n <Show {...props} title={<OptionMeter />}>\n <SimpleShowLayout>\n <MeterField source=\"name\" />\n <TextField source=\"description\" />\n <VerifyIntervalField source=\"verifyInterval\" />\n <ArrayMapField source=\"documentation\" empty=\"raExt.notification.empty\">\n <FileChip canOpen source=\"url\" title=\"desc\" />\n </ArrayMapField>\n </SimpleShowLayout>\n </Show>\n);\n\nexport const MeterEdit = props => (\n <Edit {...props} title={<OptionMeter />}>\n <SimpleForm toolbar={<EditToolbar />} >\n <EnumInput source=\"type\" Enum=\"MeterType\" validate={required()} />\n <TextInput source=\"name\" validate={required()} />\n <VerifyIntervalInput source=\"verifyInterval\" allowEmpty emptyValue={null} />\n <LongTextInput source=\"description\" />\n <FileInput source=\"documentation\" multiple={true}>\n <FileChip canOpen source=\"url\" title=\"desc\" />\n </FileInput>\n </SimpleForm>\n </Edit>\n);\n\nexport const MeterCreate = props => (\n <Create {...props}>\n <SimpleForm toolbar={<CreateToolbar />}>\n <EnumInput source=\"type\" Enum=\"MeterType\" validate={required()} />\n <TextInput source=\"name\" validate={required()} />\n <VerifyIntervalInput source=\"verifyInterval\" allowEmpty emptyValue={null} />\n <LongTextInput source=\"description\" />\n <FileInput source=\"documentation\" multiple={true}>\n <FileChip canOpen source=\"url\" title=\"desc\" />\n </FileInput>\n </SimpleForm>\n </Create>\n);\n\nconst MeterFilter = (props) => (\n <Filter {...props}>\n {/* <SearchInput source=\"q\" alwaysOn /> */}\n </Filter>\n);\n\nexport const EditToolbar = withStyles(styles)(({ classes, ...props }) => {\n\n return (\n <Toolbar {...props} >\n { ability.can(\"create\", \"Meter\") && (\n <SaveButton\n className={`${classes.mr2}`}\n label=\"ra.action.save\"\n redirect=\"list\"\n submitOnEnter={true}\n />\n )}\n { ability.can(\"delete\", \"Meter\") && (\n <DeleteButton\n basePath={props.basePath}\n record={props.record}\n resource={props.resource}\n className={`${classes.deleteButton} ${classes.mr2}`}\n />\n )}\n </Toolbar>\n )\n});\n\n\n\nconst CreateToolbar = withStyles(styles)(({ classes, ...props }) => {\n return (\n <Toolbar {...props} >\n { ability.can(\"create\", \"Meter\") && (\n <SaveButton className={`${classes.mr2}`} label=\"ra.action.create\" redirect=\"list\" submitOnEnter={true} />\n )}\n { ability.can(\"create\", \"Meter\") && (\n <SaveButton label=\"raExt.action.create_and_continue\" redirect={false} submitOnEnter={false} variant=\"outlined\" />\n )}\n </Toolbar>\n );\n});\n","import React from 'react';\nimport { stringify } from 'query-string';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Link } from 'react-router-dom';\nimport { withStyles } from '@material-ui/core/styles';\n\n\nconst styles = theme => ({\n wrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n },\n button: {\n fontSize: \"0.875rem\",\n color: \"inherit\",\n },\n link: {\n textDecoration: 'none',\n color: theme.palette.primary.main,\n },\n});\n\nconst ButtonLink = ({ record = {}, source, to, basePath, filter, className, classes, ...props }) =>{\n \n const {page=1, perPage=10, filterValues={}} = props;\n \n\n const FILTER = (record.id !== \"Total\") \n ? {\n ...filterValues,\n ...filter,\n districtIdOrCityId: record.id,\n }\n : {\n ...filterValues,\n ...filter,\n }\n\n return (\n\n <div className={classes.wrapper}>\n <IconButton className={classes.button} component={Link} to={{\n pathname: to,\n search: stringify({\n page: page,\n perPage: perPage,\n filter: JSON.stringify(FILTER),\n }),\n }}>\n {record[source]}\n </IconButton >\n </div>\n \n );\n} \n\nButtonLink.defaultProps = {\n source: 'resultRef',\n pathname:'/',\n\n};\n\n\nexport default withStyles(styles)(ButtonLink);","import React from 'react';\nimport { connect } from 'react-redux';\nimport compose from 'recompose/compose';\nimport moment from 'moment'\nimport { List, AutocompleteInput, DatagridBody, Filter, SelectInput, DateInput, ReferenceInput, Datagrid, TextField, FunctionField, translate, } from 'react-admin';\nimport { exporter } from '../../exporter';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\nimport Icon from '@material-ui/icons/Poll';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport {AddressSuggestionComponent} from '../Order/AddressComponents';\nimport UserSuggestionComponent from '../User/UserSuggestionComponent';\nimport ButtonLink from './ButtonLink';\n\nimport { ability } from '../../ability';\n\nconst styles = theme => ({\n minWidth:{\n width: 100,\n textAlign: \"center\",\n }\n});\n\n\nexport const StatisticIcon = Icon;\n\nconst customerTypes = [\n { type: 'PHIS', name:'Физическое лицо'},\n { type: 'JURE', name:'Юридическое лицо'},\n];\n\nconst StatisticFilter = (props) => {\n const regionIds = localStorage.getItem('regionIds'); \n return (\n <Filter {...props}>\n <ReferenceInput source=\"regionId\" reference=\"Location\" filter={{ type: 'REGION', ids: regionIds != null ? regionIds.split(',') : undefined }} alwaysOn >\n <AutocompleteInput suggestionComponent={AddressSuggestionComponent} optionText={record => (`${record.typeShort}. ${record.name}`)} /> \n </ReferenceInput>\n <ReferenceInput source=\"dispatcher\" reference=\"User\" filter={{ role: \"DISPATCHER\" }} sort={{ field: 'name', order: 'ASC' }} alwaysOn >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} /> \n </ReferenceInput>\n <ReferenceInput source=\"verifier\" reference=\"User\" filter={{ role: \"VERIFIER\" }} sort={{ field: 'name', order: 'ASC' }} alwaysOn >\n <AutocompleteInput suggestionComponent={UserSuggestionComponent} optionText=\"name\" inputValueMatcher={() => null} /> \n </ReferenceInput>\n <SelectInput source=\"customerType\" choices={customerTypes} optionText=\"name\" optionValue=\"type\" />\n <DateInput source=\"completedDeadlineAt_gte\" />\n <DateInput source=\"completedDeadlineAt_lte\" />\n <DateInput source=\"createdAt_gte\" defaultValue={moment().startOf('year').format()} />\n <DateInput source=\"createdAt_lte\" defaultValue={moment().endOf('year').format()} />\n <DateInput source=\"completedAt_gte\" alwaysOn />\n <DateInput source=\"completedAt_lte\" alwaysOn />\n </Filter>\n ); \n};\n\n\n\nconst CastomDatagridRowView = ({ record, resource, id, onToggleItem, children, selected, basePath, translate, classes, className, hover, ...props }) => {\n if ( id === 'Total' ) {\n return (\n <TableRow className={`${className}`} key={id}>\n {React.Children.map(children, field => {\n if (!field) return null;\n if (field.props.source === 'name') return <TableCell className={`${classes.rowCell} ${field.props.cellClassName}`} key={`${id}-${field.props.source}`} ><Typography variant=\"body1\" color=\"textSecondary\">{`${translate('resources.Statistic.fields.total')}`}</Typography></TableCell>\n \n // return <TableCell className={`${classes.rowCell}`} style={{ textAlign: \"center\", }} key={`${id}-${field.props.source}`} ><Typography variant=\"body1\" color=\"textSecondary\">{record[field.props.source]}</Typography></TableCell> \n return (\n <TableCell className={`${classes.rowCell} ${field.props.cellClassName} ${(field.props.source !== 'id') ? classes.textCenter: \"\"}`} key={`${id}-${field.props.source}`}> \n { React.cloneElement(field, {\n record,\n basePath,\n resource,\n })} \n </TableCell>\n )\n })}\n </TableRow>\n )\n }\n \n return (\n <TableRow className={`${className}`} hover={hover} key={id}>\n {React.Children.map(children, field => {\n if (!field) return null;\n return (\n <TableCell className={`${classes.rowCell} ${field.props.cellClassName} ${(field.props.source !== 'id') ? classes.textCenter: \"\"}`} key={`${id}-${field.props.source}`}> \n { React.cloneElement(field, {\n record,\n basePath,\n resource,\n })} \n </TableCell> \n ); \n \n })}\n </TableRow>\n );\n};\n\nconst CastomDatagridRow = translate(CastomDatagridRowView);\n\nconst CastomDatagridBody = props => <DatagridBody {...props} row={<CastomDatagridRow />} />;\n\nconst renderLocation = record => (`${record.typeShort}.${record.name}`);\n\nconst CastomDatagrid = withStyles(styles)(({classes, ...props}) => {\n return (\n <Datagrid {...props} hover body={<CastomDatagridBody />}>\n <FunctionField key=\"name\" source=\"name\" render={renderLocation} />\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"cancelled\"}) && <ButtonLink key=\"refused\" source=\"refused\" to=\"/Order\" filter={{tab:\"cancelled\", resultRef:\"refused\", ...props.filterValues}} />}\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"current\"}) && <ButtonLink key=\"incompleted\" source=\"incompleted\" to=\"/Order\" filter={{tab:\"current\", ...props.filterValues}} />}\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"completed\"}) && <ButtonLink key=\"verified\" source=\"verified\" to=\"/Order\" filter={{tab:\"completed\", resultRef:\"verified\", ...props.filterValues}} />}\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"completed\"}) && <ButtonLink key=\"notVerified\" source=\"notVerified\" to=\"/Order\" filter={{tab:\"completed\", resultRef:\"notVerified\", ...props.filterValues}} />}\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"completed\"}) && <ButtonLink key=\"noneSeal\" source=\"noneSeal\" to=\"/Order\" filter={{tab:\"completed\", resultRef:\"noneSeal\", ...props.filterValues}} />} \n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"completed\"}) && <ButtonLink key=\"swap\" source=\"swap\" to=\"/Order\" filter={{tab:\"completed\", resultRef:\"swap\", ...props.filterValues}}/>}\n { ability.can(\"List\", {constructor:{name:\"Order\"},tab:\"completed\"}) && <TextField key=\"completed\" source=\"completed\" style={{ textAlign: \"center\" }} />}\n <TextField key=\"deadlined\" source=\"deadlined\" style={{ textAlign: \"center\" }} cellClassName={classes.minWidth} />\n </Datagrid>\n );\n});\n\nconst StatisticPagination = () => null;\n\n\n\nconst exportBuilder = (records, fetchRelatedRecords, translate, filterValues) => { \n\n exporter(records, 'Statistic', [\n { field: \"id\" }, \n { field: \"typeShort\" },\n { field: \"name\"},\n { field: \"unrestrictedName\"},\n { field: \"refused\"}, \n { field: \"incompleted\"}, \n { field: \"verified\"}, \n { field: \"notVerified\"}, \n { field: \"noneSeal\"}, \n { field: \"swap\"}, \n { field: \"completed\"},\n { field: \"totalDistrictOrCity\"}, \n ], translate, filterValues) \n};\n\nexport const StatisticListView = ({ permissions, translate, filterValues, dispatch, ...props }) => {\n\n \n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate, filterValues) \n }\n\n return (\n <List {...props}\n pagination={<StatisticPagination />}\n bulkActionButtons = {false}\n filters={<StatisticFilter />}\n sort={{ field: 'name', order: 'ASC' }}\n exporter={exportBuilderWithTranslate}>\n <CastomDatagrid /> \n </List> \n );\n\n};\n\n\nconst mapStateToProps = (state) => {\n\n return { filterValues: (!state.form.filterForm) ? undefined : state.form.filterForm.values };\n};\n\nconst enhance = compose(\n translate,\n connect( mapStateToProps )\n);\n\n\nexport const StatisticList = enhance(StatisticListView);","import React from 'react';\nimport { List, Datagrid, Filter, TextInput, TextField, Show, SimpleShowLayout } from 'react-admin';\nimport Icon from '@material-ui/icons/LocationOn';\nimport { exporter } from '../../exporter';\nimport Pagination from '../Layout/Pagination';\n\n\nexport const LocationIcon = Icon;\n\nconst LocationFilter = (props) => (\n <Filter {...props}>\n <TextInput label=\"Search\" source=\"q\" alwaysOn /> \n </Filter>\n);\n\nconst TagsField = ({ record }) => { \n let prefix = ''\n if(record.parents != null && record.parents.length > 0) {\n for(let i=record.parents.length-1; i>=0; i--) { \n prefix+= record.parents[i].typeShort + '. ' + record.parents[i].name + ', ';\n }\n }\n\n var result = prefix + `${record.typeShort}. ${record.name}`;\n return result;\n}\n\nexport const LocationList = ({ permissions, ...props }) => ( \n <List \n {...props}\n filters={<LocationFilter />}\n filterDefaultValues={{type: 'REGION'}}\n exporter={(dataraws) => { exporter(dataraws, 'Locations') }}\n pagination={<Pagination />}\n >\n <Datagrid rowClick=\"show\">\n <TextField source=\"id\" />\n <TextField source=\"typeShort\" />\n <TextField source=\"name\" />\n <TagsField></TagsField>\n </Datagrid>\n </List>\n);\n\n\n\nexport const LocationShow = ({ permissions, ...props }) => (\n <Show {...props}>\n <SimpleShowLayout>\n <TextField source=\"id\" />\n <TextField source=\"typeShort\" />\n <TextField source=\"name\" />\n <TagsField></TagsField>\n </SimpleShowLayout> \n </Show>\n);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { GetAccessToken } from '../../dataProviders/authProvider';\n\nconst sanitizeRestProps = ({\n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n formClassName,\n headerClassName,\n label,\n linkType,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n source,\n textAlign,\n translateChoice,\n ...rest\n}) => rest;\n\nconst styles = {\n root: { display: 'inline-block' },\n};\n\nexport const TokenFileField = ({\n classes = {},\n className,\n record,\n source,\n title,\n src,\n target,\n ...rest\n}) => {\n const sourceValue = get(record, source);\n\n if (!sourceValue) {\n return (\n <div style={{ display: 'inline-block' }}\n className={classnames(classes.root, className)}\n {...sanitizeRestProps(rest)}\n />\n );\n }\n\n\n\n if (Array.isArray(sourceValue)) {\n return (\n <ul style={{ display: 'inline-block' }}\n className={classnames(classes.root, className)}\n {...sanitizeRestProps(rest)}\n >\n {sourceValue.map((file, index) => {\n const titleValue = get(file, title) || title;\n const srcValue = get(file, src) || title;\n\n return (\n <li key={index}>\n <a\n //href={srcValue}\n href=\"javascript:void(0);\"\n title={titleValue}\n target={target}\n onClick={async (event) => {\n const TOKEN = await GetAccessToken();\n window.open(srcValue.indexOf('blob:') < 0 ? `${srcValue}?${TOKEN}` : srcValue, '_blank');\n }}\n >\n {titleValue}\n </a>\n </li>\n );\n })}\n </ul>\n );\n }\n\n const titleValue = get(record, title) || title;\n\n return (\n <div style={{ display: 'inline-block' }}\n className={classnames(classes.root, className)}\n {...sanitizeRestProps(rest)}>\n\n <a href=\"javascript:void(0);\" title={titleValue} onClick={async (event) => {\n const TOKEN = await GetAccessToken();\n window.open(sourceValue.indexOf('blob:') < 0 ? `${sourceValue}?${TOKEN}` : sourceValue, '_blank');\n }} >\n {titleValue}\n </a>\n </div>\n );\n};\n\nTokenFileField.propTypes = {\n addLabel: PropTypes.bool,\n basePath: PropTypes.string,\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n record: PropTypes.object,\n sortBy: PropTypes.string,\n source: PropTypes.string.isRequired,\n src: PropTypes.string,\n title: PropTypes.string,\n target: PropTypes.string,\n};\n\nexport default withStyles(styles)(TokenFileField);","import React from 'react';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\n\nconst formatSizeUnits = function(bytes){\n if(bytes == undefined || bytes == null) {\n return '';\n }\n\n if (bytes >= 1073741824) { bytes = (bytes / 1073741824).toFixed(2) + \" ГБ\"; }\n else if (bytes >= 1048576) { bytes = (bytes / 1048576).toFixed(2) + \" МБ\"; }\n else if (bytes >= 1024) { bytes = (bytes / 1024).toFixed(2) + \" Кб\"; }\n else if (bytes > 1) { bytes = bytes + \" байтов\"; }\n else if (bytes == 1) { bytes = bytes + \" байт\"; }\n else { bytes = \"0 байт\"; }\n return bytes;\n}\n\nconst FileSizeField = ({ className, source, record = {} }) => {\n return ( <Typography className={className} >{formatSizeUnits(get(record, source))}</Typography> );\n}\n\nFileSizeField.defaultProps = {\n addLabel: true,\n};\n\nexport default FileSizeField","\nimport React from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport OpenIcon from '@material-ui/icons/OpenInNew';\nimport get from 'lodash/get';\nimport { GetAccessToken } from '../../dataProviders/authProvider';\n\nconst OpenButton = ({ record, source, ...props }) => {\n\n const url = get(record, source);\n\n const onClick = async (event) => {\n event.stopPropagation();\n const TOKEN = await GetAccessToken();\n window.open(url.indexOf('blob:') < 0 ? `${url}?${TOKEN}` : url, '_blank');\n }\n\n return (\n <IconButton onClick={onClick} >\n <OpenIcon />\n </IconButton >\n );\n}\n\nOpenButton.defaultProps = {\n source: 'url',\n addLabel: false,\n};\n\n\nexport default OpenButton;","import React from 'react';\nimport { ReferenceField } from 'react-admin';\n\nimport UserField from './UserField';\n\nconst styles = {\n userField: {\n paddingTop:\"0.25rem\",\n paddingBottom:\"0.25rem\",\n\n },\n};\n\nconst UserReferenceField = props => {\n const {record, source} = props;\n\n if (!record[source]) return null;\n return (\n <ReferenceField reference=\"User\" sortBy=\"name\" linkType=\"show\" {...props}>\n <UserField style={styles.userField}/>\n </ReferenceField>\n )\n};\nUserReferenceField.defaultProps = {\n addLabel: true,\n};\n\nexport default UserReferenceField;","import React from 'react';\nimport { List,Show,SimpleShowLayout, Datagrid, TextField, DateField, ReferenceField, translate } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport { TokenFileField } from './tokenFileField';\nimport FileChip from '../Fields/FileChip'\nimport FileSizeField from './fileSizeField';\nimport OpenButton from './OpenButton';\nimport Icon from '@material-ui/icons/Folder';\nimport { exporter } from '../../exporter';\nimport { BLOB_NAME_APP } from '../../appsettings';\nimport UserReferenceField from '../User/UserReferenceField';\nimport Pagination from '../Layout/Pagination';\n\nexport const FileIcon = Icon;\n\n\nconst styles = theme => ({\n cellMinWidth:{\n width: '1px',\n padding: 0,\n }\n});\n\nconst exportBuilder = (records, fetchRelatedRecords, translate) => { \n exporter(records, 'File', [\n { field: \"id\" }, \n { field: \"catalog\"},\n { field: \"createdAt\" , format: 'L'},\n { field: \"createdBy\"},\n { field: \"desc\"},\n { field: \"ext\"}, \n { field: \"idBlob\" },\n { field: \"size\" },\n { field: \"url\" },\n { field: \"urlThumbnail\" },\n ], translate) \n};\n\n\nexport const FileList = translate(withStyles(styles)(({ classes, translate, ...props }) => {\n const exportBuilderWithTranslate = (records, fetchRelatedRecords) => {\n exportBuilder(records, fetchRelatedRecords, translate) \n }\n\n return ( \n <List \n {...props} \n exporter={exportBuilderWithTranslate}\n pagination={<Pagination />}\n >\n <Datagrid rowClick=\"show\">\n <TextField source=\"catalog\" />\n <TextField source=\"desc\" />\n <FileSizeField source=\"size\" />\n <UserReferenceField source=\"createdBy\" sortable={false}/>\n <DateField source=\"createdAt\" color=\"textSecondary\" textAlign=\"right\" showTime options={{ year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'}}/>\n <OpenButton source=\"url\" label=\"\" cellClassName={classes.cellMinWidth}/>\n </Datagrid>\n </List>\n )\n\n}));\n\nexport const FileShow = ({ permissions, ...props }) => (\n <Show {...props}>\n <SimpleShowLayout>\n <TextField source=\"id\" />\n <FileChip canOpen source=\"url\" title=\"desc\"/>\n <TextField source=\"catalog\" />\n <FileSizeField source=\"size\" />\n <DateField source=\"created\" showTime />\n <DateField source=\"createdAt\" showTime />\n <ReferenceField linkType=\"show\" source=\"createdBy\" reference=\"User\">\n <TextField source=\"name\" />\n </ReferenceField>\n </SimpleShowLayout>\n \n </Show>\n);\n","import React, { useEffect, useState } from 'react';\nimport { Admin, Resource /* Loading */ } from 'react-admin';\nimport { authProvider } from './dataProviders/authProvider';\nimport { dataProviderFactory } from './dataProviders/dataProviderFactory';\nimport i18nProvider from './i18nProvider';\nimport sagas from './sagas';\nimport user from './redux/user/reducer';\nimport onlineUsers from './redux/onlineUsers/reducer';\nimport notifications from './redux/notifications/reducer';\nimport customRoutes from './customRoutes';\nimport Menu from './components/Layout/Menu';\nimport { ability, AbilityContext } from './ability'\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { MyLayout } from './components/Layout';\nimport MyLoginPage from './components/LoginPage';\nimport Dashboard from './components/Dashboard';\nimport { OrderList, OrderShow, OrderEdit, OrderIcon, OrderCreate } from './components/Order';\nimport { CounterpartyIcon, CounterpartyList, CounterpartyShow, CounterpartyEdit, CounterpartyCreate } from './components/Counterparty';\nimport { UserList, UserShow, UserEdit, UserIcon, UserCreate } from './components/User';\nimport { MeterList, MeterShow, MeterEdit, MeterIcon, MeterCreate } from './components/Meter';\nimport { OrderHistoryList, OrderHistoryShow, OrderHistoryIcon } from './components/OrderHistory';\nimport { StatisticList, StatisticIcon } from './components/Statistic';\nimport { LocationList, LocationShow, LocationIcon } from './components/Fias';\nimport { FileList, FileShow, FileIcon } from './components/File';\nimport { createMuiTheme } from '@material-ui/core/styles';\n\nconst theme = createMuiTheme({\n palette: {\n //type: \"dark\",\n secondary: {\n light: '#6ec6ff',\n main: '#2196f3',\n dark: '#0069c0',\n contrastText: '#fff',\n },\n },\n typography: {\n title: {\n fontWeight: 400,\n },\n },\n});\nconst App = () => {\n\n const [dataProvider, setDataProvider] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n const onMount = () => {\n dataProviderFactory().then(dataProvider => {\n setDataProvider(() => dataProvider);\n setLoading(false);\n });\n }\n\n onMount();\n\n return () => {\n setDataProvider(null);\n };\n\n }, []);\n\n if (loading) {\n return (\n <div style={{ height: '100vh', display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }}>\n <div style={{ textAlign: 'center', fontFamily: 'Roboto, sans-serif', margin: '0 1em' }}>\n <CircularProgress color=\"primary\" />\n <h1>Загрузка</h1>\n <div >Страница загружается</div>\n </div>\n </div>\n /* <Loading loadingPrimary='Загрузка' loadingSecondary ='Страница загружается' /> */\n );\n }\n\n\n return (\n <AbilityContext.Provider value={ability}>\n <Admin\n theme={theme}\n locale=\"ru\"\n menu={Menu}\n dashboard={Dashboard}\n customRoutes={customRoutes}\n i18nProvider={i18nProvider}\n dataProvider={dataProvider}\n authProvider={authProvider}\n loginPage={MyLoginPage}\n appLayout={MyLayout}\n customSagas={sagas}\n customReducers={{ user, onlineUsers, notifications }}\n >\n {\n (permissions) => {\n\n return [\n <Resource name=\"Statistic\"\n list={ability.can('List', 'Statistic') ? StatisticList : null}\n icon={StatisticIcon}\n />,\n <Resource name=\"Order\"\n list={ability.can('List', 'Order') ? OrderList : null}\n show={ability.can('Show', 'Order') ? OrderShow : null}\n create={ability.can('Create', 'Order') ? OrderCreate : null}\n edit={ability.can('Edit', 'Order') ? OrderEdit : null}\n icon={OrderIcon}\n />,\n <Resource name=\"Counterparty\"\n list={ability.can('List', 'Counterparty') ? CounterpartyList : null}\n show={ability.can('Show', 'Counterparty') ? CounterpartyShow : null}\n edit={ability.can('Edit', 'Counterparty') ? CounterpartyEdit : null}\n create={ability.can('Create', 'Counterparty') ? CounterpartyCreate : null}\n icon={CounterpartyIcon}\n />,\n <Resource name=\"User\"\n list={ability.can('List', 'User') ? UserList : null}\n show={ability.can('Show', 'User') ? UserShow : null}\n edit={ability.can('Edit', 'User') ? UserEdit : null}\n create={ability.can('Create', 'User') ? UserCreate : null}\n icon={UserIcon}\n />,\n <Resource name=\"Meter\"\n list={ability.can('List', 'Meter') ? MeterList : null}\n show={ability.can('Show', 'Meter') ? MeterShow : null}\n edit={ability.can('Edit', 'Meter') ? MeterEdit : null}\n create={ability.can('Create', 'Meter') ? MeterCreate : null}\n icon={MeterIcon}\n />,\n <Resource name=\"Status\" />,\n <Resource name=\"Result\" />,\n <Resource name=\"OrderHistory\"\n list={ability.can('List', 'OrderHistory') ? OrderHistoryList : null}\n show={ability.can('Show', 'OrderHistory') ? OrderHistoryShow : null}\n icon={OrderHistoryIcon}\n />,\n <Resource name=\"File\"\n list={ability.can('List', 'File') ? FileList : null}\n show={ability.can('Show', 'File') ? FileShow : null}\n icon={FileIcon}\n />,\n <Resource name=\"Location\"\n list={ability.can('List', 'Location') ? LocationList : null}\n show={ability.can('Show', 'Location') ? LocationShow : null}\n icon={LocationIcon}\n />,\n <Resource name=\"Profile\" />,\n <Resource name=\"SIType\" />,\n <Resource name=\"CCSVType\" />,\n <Resource name=\"SUType\" />,\n <Resource name=\"GSIType\" />,\n\n ];\n }\n }\n\n </Admin>\n </AbilityContext.Provider>\n );\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(<App />, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/CHANGELOG.a68e0892.md\";","module.exports = __webpack_public_path__ + \"static/media/LoginPageImage.e1b64065.svg\";","module.exports = __webpack_public_path__ + \"static/media/CreateOrderImage.6677ebf2.svg\";","module.exports = __webpack_public_path__ + \"static/media/Rocket.530e6b84.svg\";","module.exports = __webpack_public_path__ + \"static/media/LoginCardImage.eae7374f.svg\";","module.exports = __webpack_public_path__ + \"static/media/NewYearImage.1c017b4d.png\";","module.exports = __webpack_public_path__ + \"static/media/EmptyStateFiles.9fd41b53.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc.159bcbe4.svg\";","module.exports = __webpack_public_path__ + \"static/media/file.e9909dda.svg\";","module.exports = __webpack_public_path__ + \"static/media/pdf.85ed9c62.svg\";","module.exports = __webpack_public_path__ + \"static/media/svg.fa3eb39f.svg\";","module.exports = __webpack_public_path__ + \"static/media/txt.8ae51aae.svg\";","module.exports = __webpack_public_path__ + \"static/media/xls.b61f6cc0.svg\";","module.exports = __webpack_public_path__ + \"static/media/zip.d85d1b05.svg\";"],"sourceRoot":""}