{"version":3,"sources":["shared/ui/light-table/light-table.module.scss","shared/ui/date-range-picker/date-text-input.module.scss","shared/ui/search-field/search-field.module.scss","shared/ui/paginator/paginator-arrow/styles.module.scss","pages/BankEinvoicePage/EinvoiceFilter/einvoice-filter.module.scss","entities/help/ui/section-card/section-card.module.scss","features/selecting-items-from-list/ui/modal-ui-header/modal-ui-header.module.scss","entities/help/ui/content/content.module.scss","shared/ui/changelog-modal/modal/styles.module.scss","shared/ui/layouts/article-layout/article-layout.module.scss","shared/ui/badge/badge.module.scss","shared/ui/switcher/switcher.module.scss","shared/ui/title/title.module.scss","shared/ui/textarea/textarea.module.scss","entities/selector-with-groups/ui/selector/styles.module.scss","entities/selector-with-groups/ui/group-row/styles.module.scss","entities/selector-with-groups/ui/switcher/switcher.module.scss","widgets/public-form/public-form.module.scss","features/selecting-items-from-list/ui/selecting-items-from-list/selecting-items-from-list.module.scss","pages/MerchantUserListPage/modals/edit-user/edit-user.module.scss","entities/operation/ui/details-item/details-item.module.scss","pages/OperationsSBPPage/OperationsFilter/styles.module.scss","pages/ReversalPage/ReversalPageFilter/styles.module.scss","shared/ui/layouts/page-layout/navigation/navigation.module.scss","shared/ui/input/stacked-inputs/stacked-inputs.module.scss","shared/ui/checkbox/ui/checkbox/check-box.module.scss","features/public-forms/login/ui/login-form.module.scss","features/new-password-input/ui/new-password-input.module.scss","entities/help/ui/light-table/light-table.module.scss","pages/OperationsPage/OperationsFilter/styles.module.scss","pages/SettlementDetailsPage/SetttlementDetailsFilter/styles.module.scss","pages/StatisticPage/StatisticFilter/styles.module.scss","shared/ui/filter-dropdown/styles.module.scss","shared/ui/layouts/page-layout/footer/footer.module.scss","features/fetch-info-about-terminal/ui/fetch-info-about-terminal/fetch-info-about-terminal.module.scss","features/shows-message-from-bank/ui/shows-message-from-bank/shows-message-from-bank.module.scss","shared/ui/feedback-menu/feedback-menu.module.scss","shared/ui/date-picker/date-picker.module.scss","shared/ui/form-field/form-field.module.scss","shared/ui/popup/popup.module.scss","shared/ui/fixed-position-tooltip/styles.module.scss","shared/ui/add-icon/styles.module.scss","features/advertising-of-ecommerce-service/ui/advertising-of-ecommerce-service/advertising-of-ecommerce-service.module.scss","features/select-terminals/ui/terminal-status-icon/styles.module.scss","components/AwareTable/ui/quick-action-button/styles.module.scss","widgets/filters-container/filters-container.module.scss","features/public-forms/login/ui/help-link.module.scss","features/public-forms/activation/form.module.scss","features/download-report/ui/trigger-button/trigger-button.module.scss","pages/EpaymentsPage/EpaymentsFilter/styles.module.scss","pages/TerminalsPage/terminals-filter/styles.module.scss","features/document-links/ui/document-links.module.scss","pages/BankUserListPage/bank-user-filter/styles.module.scss","shared/ui/date-range-picker/date-range-picker.module.scss","pages/CompanyListPage/styles.module.scss","widgets/page-error/ui/page-error.module.scss","shared/ui/filters-selector/filters-selector.module.scss","features/select-terminals/ui/bank-terminals-selector/styles.module.scss","entities/operation/ui/operation-details/operation-details.module.scss","entities/operation/ui/operation-description/operation-description.module.scss","shared/ui/layouts/page-layout/navigation/mobile-navigation.module.scss","shared/ui/button/button.module.scss","shared/ui/modal-field/modal-field.module.scss","shared/ui/dropdown/dropdown.module.scss","shared/ui/checkbox/ui/new-checkbox/new-checkbox.module.scss","shared/ui/modal/modal.module.scss","features/select-terminals/ui/terminal-tip/styles.module.scss","shared/ui/input/input.module.scss","features/selecting-items-from-list/ui/modal-ui-popup/modal-ui-popup.module.scss","shared/ui/layouts/page-layout/header/header.module.scss","shared/ui/changelog-modal/changelog-entry/styles.module.scss","shared/ui/layouts/page-layout/page-layout.module.scss","shared/ui/select/NewSelect.module.scss","shared/ui/paginator/styles.module.scss","app/config/URL.ts","shared/lib/ErrorTypes.js","shared/lib/localStorage.js","shared/lib/operationStatuses.js","shared/lib/operationTypes.js","redux/constants.js","redux/reducers/auth.js","redux/reducers/terminals.js","redux/reducers/charts.js","redux/reducers/operation.js","redux/reducers/fetch.js","redux/reducers/settings.js","redux/reducers/table.js","redux/reducers/requestCancelation.js","redux/reducers/reducers.js","store/index.js","redux/actions/notification.js","redux/actions/fetch.js","shared/lib/util.jsx","shared/lib/request-wrapper.js","shared/lib/rusDate.js","shared/lib/renderCustomTooltip.ts","shared/lib/getInitialFilter.ts","shared/lib/getAppTitle.tsx","shared/lib/classNames.ts","shared/lib/sortArray.ts","shared/lib/getOptionsForSelect.ts","shared/lib/checkLengthString.ts","shared/lib/phone/maskPhone.ts","shared/lib/useCloseCustomModal.ts","shared/lib/useComponentDidMount.ts","shared/lib/validationMessages.ts","shared/lib/useClickOutside.ts","shared/lib/localstorage-table-names.ts","features/shows-message-from-bank/ui/shows-message-from-bank/shows-message-from-bank.tsx","shared/ui/media/logotypes/sdm-full-logo.tsx","shared/ui/media/navigation-icons/bell-icon.tsx","shared/ui/feedback-menu/feedback-menu.tsx","shared/ui/media/navigation-icons/help-icon.tsx","shared/ui/media/navigation-icons/stats-icon.tsx","shared/ui/media/navigation-icons/menu-icon.tsx","shared/ui/media/navigation-icons/close-icon.tsx","shared/ui/media/navigation-icons/user-dropdown-icon.tsx","shared/ui/media/navigation-icons/sdm-logo.tsx","shared/ui/media/navigation-icons/call-icon.tsx","shared/ui/media/navigation-icons/inventory-icon.tsx","shared/ui/media/social-media-icons/ok.tsx","shared/ui/media/social-media-icons/vk.tsx","shared/ui/media/social-media-icons/telegram.tsx","shared/ui/media/logotypes/mc.tsx","shared/ui/media/logotypes/visa.tsx","shared/ui/media/logotypes/mir.tsx","shared/ui/media/control-icons/selected.tsx","shared/ui/media/control-icons/search-icon.tsx","shared/ui/media/control-icons/filter-selector-icon.tsx","shared/ui/media/control-icons/reset-filters-icon.tsx","shared/ui/media/support-icons/user.tsx","shared/ui/media/support-icons/access.tsx","shared/ui/media/support-icons/security.tsx","shared/ui/media/support-icons/system.tsx","shared/ui/media/support-icons/email.tsx","shared/ui/media/support-icons/phone.tsx","shared/ui/media/support-icons/documents.tsx","shared/ui/media/support-icons/link.tsx","shared/ui/media/support-icons/info.tsx","shared/ui/media/support-icons/point.tsx","shared/ui/media/mps-icons/card.tsx","shared/ui/media/mps-icons/cirrus.tsx","shared/ui/media/mps-icons/sbp.tsx","shared/ui/layouts/page-layout/navigation/mobile-navigation.tsx","shared/ui/layouts/page-layout/navigation/navigation.tsx","shared/ui/layouts/page-layout/header/header.tsx","shared/ui/changelog-modal/change-row/index.tsx","shared/ui/changelog-modal/changelog-entry/index.tsx","shared/lib/user-changelog/bank-changelog.ts","shared/ui/changelog-modal/modal/index.tsx","shared/ui/layouts/page-layout/footer/footer.tsx","shared/ui/layouts/page-layout/lib.ts","shared/ui/layouts/page-layout/page-layout.tsx","shared/ui/layouts/public-page-layout/public-page-layout.tsx","shared/ui/layouts/article-layout/article-layout.tsx","shared/ui/button/button.tsx","shared/ui/date-range-picker/utils.ts","shared/ui/date-range-picker/date-text-input.tsx","shared/ui/date-range-picker/use-date-text-input.tsx","redux/actions/requestCancelation.js","redux/actions/table.js","redux/selectors/token.js","shared/ui/date-range-picker/date-range-picker.tsx","shared/ui/input/input.tsx","shared/ui/input/icons/eye.svg","shared/ui/input/icons/eyeOff.svg","shared/ui/input/input-password.tsx","shared/ui/date-picker/date-picker.tsx","shared/ui/dropdown/chevron.tsx","shared/ui/dropdown/dropdown.tsx","shared/ui/filters-selector/filters-selector.tsx","shared/ui/form-field/form-field.tsx","shared/ui/search-field/search-field.tsx","shared/ui/portal/portal.tsx","shared/ui/popup/popup.tsx","shared/ui/select/NewSelect.tsx","redux/actions/charts.js","shared/ui/switcher/switcher.tsx","shared/ui/title/title.tsx","shared/ui/checkbox/ui/checkbox/CheckBox.tsx","shared/ui/checkbox/ui/new-checkbox/new-checkbox.tsx","shared/ui/multiple-select/MultipleSelect.tsx","shared/ui/spin/Spin.tsx","shared/ui/comission-info/CommissionInfo.tsx","shared/ui/light-table/light-table.tsx","shared/ui/light-table/light-table-row.tsx","shared/ui/modal/modal.tsx","shared/ui/modal-field/modal-field.tsx","shared/ui/textarea/textarea.tsx","shared/ui/dropdown-multiselect/index.tsx","shared/ui/selector-icon/index.tsx","shared/ui/fixed-position-tooltip/index.tsx","shared/ui/overflow-container/index.tsx","shared/ui/paginator/paginator-arrow/index.tsx","shared/ui/paginator/paginator-select/index.tsx","shared/ui/paginator/index.tsx","shared/ui/add-icon/index.tsx","features/advertising-of-ecommerce-service/ui/advertising-of-ecommerce-service/advertising-of-ecommerce-service.tsx","app/config/navigation.tsx","redux/actions/terminals.js","redux/actions/auth.js","shared/ui/dropdown/arrow-right.tsx","app/config/user-dropdown-navigation.tsx","app/config/footer-navigation.tsx","app/config/RoleTypes.ts","components/Container/index.js","pages/DynamicPage/DynamicChart/index.js","entities/selector-with-groups/config.ts","entities/selector-with-groups/ui/empty-rows-icon.tsx","entities/selector-with-groups/ui/group-row/index.tsx","entities/selector-with-groups/ui/individual-row/index.tsx","shared/lib/detect-touch-event-hold.ts","entities/selector-with-groups/ui/selector/index.tsx","entities/selector-with-groups/ui/switcher/index.tsx","features/select-terminals/ui/bank-terminals-selector/index.tsx","features/select-terminals/config.ts","features/select-terminals/lib.ts","entities/terminal/lib/getAllTerminals.ts","entities/terminal/model/types/terminal.ts","features/select-terminals/ui/terminal-status-icon/index.tsx","features/select-terminals/ui/reworked-terminals-list/index.tsx","shared/ui/filter-dropdown/index.tsx","features/select-terminals/ui/merchant-terminals-selector/index.tsx","features/select-terminals/ui/terminal-tip/index.tsx","pages/DynamicPage/DynamicFilter/index.js","pages/DynamicPage/index.js","components/TableHeader/TableHeader.tsx","components/AwareTable/state-table.js","shared/lib/checkAppTitle.tsx","shared/ui/media/table-icons/no-data-icon.tsx","components/AwareTable/ui/quick-action-button/index.tsx","shared/ui/media/table-icons/data-fetching-icon.tsx","components/AwareTable/ui/display-data-status/index.tsx","shared/lib/cache.ts","components/AwareTable/store-table.js","components/AwareTable/index.js","pages/EcommPage/index.js","widgets/public-form/ui.tsx","widgets/filters-container/ui.tsx","features/public-forms/login/config.ts","features/public-forms/login/ui/help-link.tsx","features/public-forms/login/ui/login-form.tsx","features/new-password-input/ui/levels-bar.tsx","features/new-password-input/config.tsx","shared/lib/uniquePasswordValidator.js","features/new-password-input/ui/icons/eye.svg","features/new-password-input/ui/icons/eyeOff.svg","features/new-password-input/ui/new-password-input.tsx","features/new-password-input/lib.tsx","features/public-forms/activation/config.ts","features/public-forms/activation/ui.tsx","features/public-forms/forgot-password/config.tsx","features/public-forms/forgot-password/ui/form.tsx","features/public-forms/change-password/config.ts","features/public-forms/change-password/ui.tsx","features/download-report/lib/getUrl.ts","features/download-report/model/consts.ts","features/download-report/ui/modal-body/modal-body.tsx","features/download-report/lib/getDownloadedFileName.ts","features/download-report/ui/trigger-button/trigger-button.tsx","features/download-report/ui/download-report/download-report.tsx","features/download-report/ui/download-report/download-report-store.tsx","shared/lib/filterObject.ts","pages/EinvoiceDetailsPage/index.js","pages/MerchantEinvoicePage/EinvoiceFilter/index.js","widgets/einvoice-table/ui/index.jsx","pages/MerchantEinvoicePage/index.js","components/CompanySelect/index.js","pages/BankEinvoicePage/EinvoiceFilter/index.js","pages/BankEinvoicePage/index.js","pages/EpaymentDetailsPage/index.js","pages/EpaymentsPage/EpaymentsFilter/index.js","pages/EpaymentsPage/index.js","entities/help/ui/section-card/section-card.tsx","entities/help/ui/layout/layout.tsx","entities/help/ui/sidebar/sidebar.tsx","entities/help/ui/content/search.tsx","entities/help/config/texts.ts","entities/help/config/navigation.tsx","entities/help/config/browserConfig.ts","entities/help/config/supportedBrowsersText.ts","entities/help/ui/content/empty-content.tsx","entities/help/ui/content/navigation.tsx","entities/help/ui/content/content.tsx","entities/help/ui/light-table/light-table.tsx","entities/help/ui/about-system/about-system.tsx","pages/HelpPage/ui.tsx","pages/HelpPage/SystemPage/ui.tsx","pages/MainPage/index.js","pages/MerchantUserListPage/MerchantUserFilter.tsx","features/selecting-items-from-list/lib/helper-functions.ts","features/selecting-items-from-list/ui/modal-ui-header/modal-ui-header.tsx","features/selecting-items-from-list/ui/modal-ui-popup/modal-ui-popup.tsx","features/selecting-items-from-list/ui/selecting-items-from-list/selecting-items-from-list.tsx","shared/lib/normalizeData.ts","pages/MerchantUserListPage/modals/add-user/add-user.tsx","pages/MerchantUserListPage/modals/edit-user/edit-user.tsx","pages/MerchantUserListPage/index.js","features/send-receipt-about-operation/lib/validationScheme.ts","features/send-receipt-about-operation/ui/send-receipt-about-operation/send-receipt-about-operation.tsx","features/send-refund-request/lib/validationScheme.ts","features/send-refund-request/model/consts.ts","features/send-refund-request/ui/send-refund-request.tsx","features/shows-info-about-receipt/ui/receipt-item.tsx","features/shows-info-about-receipt/ui/shows-info-about-receipt.tsx","entities/operation/lib/format-currency/format-currency.ts","entities/operation/lib/format-date/format-date.ts","entities/operation/ui/details-item/index.tsx","entities/operation/ui/operation-details/operation-details.tsx","entities/operation/ui/operation-details/operation-details-sbp.tsx","entities/operation/ui/operation-description/operation-description.tsx","entities/operation/ui/operation-description/operation-description-sbp.tsx","pages/OperationDetailPage/index.js","redux/actions/operation.js","pages/OperationSBPDetailPage/index.js","pages/OperationsPage/OperationsFilter/index.js","pages/OperationsPage/index.js","features/select-sbp-identificators/lib.ts","features/select-sbp-identificators/sbp-identificator-selector/index.tsx","features/select-sbp-identificators/index.tsx","pages/OperationsSBPPage/OperationsFilter/index.js","pages/OperationsSBPPage/index.js","features/edit-registry-mailing-schedule/model/consts.ts","features/edit-registry-mailing-schedule/ui/edit-registry-mailing-schedule.tsx","pages/SchedulePage/index.js","features/fetch-info-about-terminal/model/consts/consts.ts","features/fetch-info-about-terminal/lib/getOptionsGroups.ts","features/fetch-info-about-terminal/lib/requestSuccessTextMapper.ts","features/fetch-info-about-terminal/ui/fetch-info-about-terminal/fetch-info-about-terminal.tsx","shared/lib/phone/validatePhone.ts","features/add-terminal-group/lib/validationScheme.ts","features/add-terminal-group/model/consts.ts","features/add-terminal-group/ui/add-terminal-group.tsx","features/edit-group-of-terminals/lib/validationScheme.ts","features/edit-group-of-terminals/model/consts/consts.ts","features/edit-group-of-terminals/ui/edit-group-of-terminals/edit-group-of-terminals.tsx","pages/TerminalsPage/terminals-filter/index.js","pages/TerminalsPage/index.js","features/document-links/ui/document-links.tsx","entities/user/ui/user-profile/user-profile.tsx","pages/UserConfigPage/index.js","pages/SettingsPage/index.js","pages/SettlementDetailsPage/SetttlementDetailsFilter/index.js","pages/SettlementDetailsPage/index.js","pages/SettlementPage/SettlementFilter/index.js","pages/SettlementPage/index.js","features/notification-of-inactive-terminals/ui/notification-of-inactive-terminals/notification-of-inactive-terminals.tsx","pages/StatisticPage/StatisticFilter/index.js","pages/StatisticPage/ConversionChart/index.js","pages/StatisticPage/MpsChart/index.js","shared/lib/roundsNumber.ts","pages/StatisticPage/DeclineChart/index.js","pages/StatisticPage/index.js","pages/SupportPage/faq.js","pages/SupportPage/index.js","redux/actions/feed.js","pages/BankUserListPage/bank-user-filter/index.tsx","pages/BankUserListPage/index.js","pages/GroupListPage/index.js","pages/CompanyListPage/index.js","components/LightTable/index.js","features/add-merchant-cashbox/lib/validateScheme.ts","features/add-merchant-cashbox/model/consts/index.ts","pages/PlatformCashBoxPage/CashBoxWithRoles/index.js","features/add-merchant-cashbox/ui/add-merchant-cashbox.tsx","features/add-merchants-key/lib/validateScheme.ts","features/add-merchants-key/model/consts/index.ts","features/add-merchants-key/ui/add-merchants-key/add-merchants-key.tsx","features/add-merchants-key/lib/createBody.ts","features/edit-merchant-keys/lib/validateScheme.ts","features/edit-merchant-keys/lib/getDefaultValues.ts","features/edit-merchant-keys/ui/edit-merchant-keys.tsx","features/edit-merchant-keys/lib/createBody.ts","pages/CompanyDetailsPage/index.js","pages/CashBoxReceiptPage/index.js","pages/CashBoxRegistriesPage/index.js","pages/PlatformCashBoxPage/index.js","pages/PlatformCashBoxErrorsPage/index.js","pages/ReversalPage/ReversalPageFilter/index.js","entities/terminal/lib/getAllTerminalIds.ts","pages/ReversalPage/index.js","pages/CashBoxes/index.js","pages/InventoryPage/InventoryPage.tsx","app/config/protected-routes.tsx","app/config/public-footer-navigation.tsx","app/config/public-routes.tsx","app/providers/withChartConfig.tsx","components/Notification/index.js","app/providers/withNotifications.tsx","features/browser-check/model/notification-showed-storage.ts","features/browser-check/ui/index.tsx","widgets/page-error/ui/page-error.tsx","app/providers/withErrorBoundary.tsx","App.tsx","app/providers/index.ts","app/providers/withStore.tsx","app/providers/withBrowserCheck.tsx","app/providers/withLogVersionApp.tsx","index.tsx","features/shows-info-about-receipt/ui/shows-info-about-receipt.module.scss","shared/ui/dropdown-multiselect/styles.module.scss","shared/ui/selector-icon/styles.module.scss","shared/ui/paginator/paginator-select/styles.module.scss","entities/selector-with-groups/ui/individual-row/styles.module.scss","shared/ui/overflow-container/styles.module.scss","entities/help/ui/layout/layout.module.scss","features/edit-registry-mailing-schedule/ui/edit-registry-mailing-schedule.module.scss","shared/ui/layouts/public-page-layout/public-page-layout.module.scss","components/AwareTable/ui/display-data-status/styles.module.scss","widgets/einvoice-table/ui/einvoice-table.module.scss","entities/help/ui/sidebar/sidebar.module.scss","entities/help/ui/about-system/about-system.module.scss"],"names":["module","exports","URL","instructions","receiptUrl","loginUrl","logoutUrl","userInfoUrl","userActivationUrl","userActivateUrl","companyRolesUrl","merchantCreateUsersUrl","merchantUpdateUsersUrl","getMerchantUserInfo","merchantUserUrl","resetUserPasswordUrl","forgotPasswordPageUrl","forgotPasswordRequestUrl","changePasswordUrl","operationsUrl","operationDetailUrl","operationRevertUrl","operationsSBPUrl","operationsSBPIdentificatorsUrl","operationSBPDetailUrl","operationSBPRevertUrl","operationsFileDownloadUrl","operationsRcMessagesUrl","operationsSBPFileDownloadUrl","operationsSBPRcMessagesUrl","settlementUrl","settlementDetailsUrl","settlementDetailsSummaryUrl","settlementFileDownloadUrl","settlementDetailFileDownloadUrl","mpsChartUrl","conversionChartUrl","statisticTableUrl","declineChartUrl","statisticFileDownloadUrl","dynamicsChartUrl","terminalsUrl","inactivePeriodPerDays","terminalInfo","terminalPageGroupUrl","terminalPageAvailableGroups","terminalPageTerminalsUrl","terminalPageAddGroupUrl","terminalPageRemoveGroupUrl","terminalPageUpdateGroupUrl","terminalPageSetGroupUrl","terminalInactiveRequest","ecommCashboxes","addEcommCashbox","getEcommCashbox","updateEcommCashbox","getCashboxAvailableFfd","getCashboxRole","feedbackUrl","supportSubjects","bankSupportMsg","ecommKeys","getEcommKeyCashboxes","getEcommKey","updateEcommKey","payments","payment","recipes","recipe","schedules","setSchedule","einvoiceAll","einvoice","einvoiceData","einvoiceAdd","einvoiceSend","einvoiceDelete","einvoiceDownloadQrcUrl","reversal","reversalExport","companyCreateUsersUrl","companyTerminalsUrl","companyUsersUrl","resetMerchantUserPassword","updateMerchantUserUrl","merchantUserInfoUrl","bankUpdateUsersUrl","getBankUserInfo","platformCashBoxOneUrl","updatePlatformCashBox","cashboxAll","addCashbox","updateCashbox","getaCashboxInfo","getEcommStatus","saveEcommStatus","ecommkeyall","addEcommkey","updateEcommkey","getEcommkeyInfo","getEcommkeyCashboxes","userAttempts","companyUrl","companyGroups","companyRoles","subCompanyUrl","subCompanySetUrl","subCompanyRemoveUrl","companyFindSelectUrl","bankUserUrl","bankCreateUsersUrl","createPlatformCashBox","platformCashBoxUrl","platformCashBoxErrorUrl","cashBoxes","cashBoxRegistries","cashBoxReceipt","cashBoxReceiptInfo","navRoutes","statistic","dynamics","inventory","settlement","settlementLastUrl","settlementDate","operations","operationLastUrl","operationsId","operationsSBP","operationSBPLastUrl","operationsSBPId","support","root","faq","main","system","settings","settingsUser","settingsUsers","settingsTerminals","ecomm","paymentId","einvoiceId","schedule","companyId","company","users","platformCashBox","platformErrorCashBox","registresOfCashbox","receiptsOfCashbox","groups","settlementDateId","Errors","title","message","localSave","name","value","localStorage","setItem","localSaveSerialize","JSON","stringify","localLoad","def","item","getItem","parseFalsyValues","localLoadMoment","moment","Date","parse","localLoadInt","parseInt","localLoadSerialize","localLoadIntInArray","string","operationStatuses","operationTypes","LOG_IN","LOG_IN_SUCCESS","LOG_IN_FAILED","ACTIVATE_USER_SUCCESS","ACTIVATE_USER_FAILED","FORGOT_PASSWORD_USER_SUCCESS","FORGOT_PASSWORD_USER_FAILED","GET_USER_AFTER_LOGIN_ROLES_SUCCESS","LOG_OUT_AND_CLEAR_LOCAL","CHANGE_PASSWORD_USER_EXPIRED","CHANGE_PASSWORD_SUCCESS","CHANGE_PASSWORD_FAILED","TOGGLE_CHART","GET_MPS_CHARTS_SUCCESS","GET_MPS_CHARTS_FAILED","GET_DINAMIC_CHARTS_SUCCESS","GET_DINAMIC_CHARTS_FAIL","GET_DECLINE_CHARTS_SUCCESS","GET_DECLINE_CHARTS_FAIL","GET_CONVERSION_CHARTS_SUCCESS","GET_CONVERSION_CHARTS_FAIL","GET_OPERATION_DETAILS","GET_OPERATION_DETAILS_FAILED","GET_OPERATION_DETAILS_SUCCESS","CLEAR_OPERATION_DETAILS","GET_TERMINALS","GET_TERMINALS_FAILED","SET_TERMINALS_INACTIVE_PERIOD_PER_DAYS","SET_TERMINAL_INACTIVE","SET_IDN_SBP","GET_RCMSG","FETCH_START","FETCH_STOP","CHANGE_ROUTE","CHANGE_START_DATE","CHANGE_END_DATE","SET_OFFSET","SET_PAGE_SIZE","GO_NEXT_PAGE","GO_PREVIOUS_PAGE","SET_FILTERS","SET_TOTAL_COUNT_FOR_PAGINATION","SET_DATA_IS_FETCHING","SET_NEEDS_UPDATE","RESET_TOKEN","SET_PERSISTED_TABLE_DATA","SET_COMMON_TABLE_FILTERS","initState","logged","roles","assignedCompanies","fullName","id","cellPhone","email","companyName","submitted","terminals","rcMsg","idnSbp","inactive","conversion","failureCodes","mps","dynamic","toggle","detail","fetch","route","token","axios","CancelToken","source","reducers","combineReducers","notifications","notificationsReducer","form","formReducer","auth","state","arguments","length","undefined","action","type","payload","clear","error","charts","operation","path","table","tableId","totalCountForPagination","newState","pageSize","offset","_newState$tableId","filters","startDate","endDate","needsUpdate","findAll","Object","keys","forEach","key","startsWith","tableData","commonFilters","fetching","requestCancelation","middleware","push","thunkMiddleware","store","createStore","rootReducer","composeWithDevTools","applyMiddleware","subject","ReplaySubject","createNotification","template","dispatch","next","fetchStart","fetchStop","pipe","debounceTime","subscribe","event","autoDismiss","Notifications","removeAll","show","formatDateForInput","date","format","timeZoneOptions","text","isPermit","role","getAppTitle","getState","includes","Roles","ADMIN","isAdmin","getClassName","postFix","concat","sendToSubject","this","props","log","process","isEmptyObj","obj","hasOwnProperty","ticksFormatter","checkFloor","parseFloat","toFixed","replace","ticksMpsFormatter","roleNameMapper","COMPANY_INFO","USER_MANAGEMENT","OPERATIONS","CASHBOX","SETTLEMENT","REFUND","SETTING_TERMINAL","SETTING_USER","STATISTIC","DYNAMIC","OPERATIONS_SBP","ECOMM","EINVOICE","SCHEDULE","operationStatusMapper","status","IN_PROCESS","CLOSED","SETTLED","operationTypeMapper","PAY","PRE_PAY","REVERSAL","PRE_REVERSAL","Math","floor","validateEmail","test","String","toLowerCase","statusNameMapper","lang","en","Активно","Выключено","ru","Active","Disabled","einvoiceDelCases","einvoiceSendCases","PaymentTypeOptions","React","Fragment","_resultOption","hasSbpAndCardPaymentOptions","ecomKeys","resultOption","filter","option","Array","isArray","split","every","findIndex","paymentType","PaymentTypeFilterOptions","QRCodeTypeOptions","BankQRCodeTypeOptions","OperationSBPTypeOptions","client","create","withCredentials","baseURL","success","response","resolve","fail","reject","isCancel","data","addApiPrefix","url","post","params","headers","cancelToken","Promise","then","catch","get","rusDate","month","timeoutId","renderCustomTooltip","context","renderFunction","tooltipEl","document","getElementById","createElement","innerHTML","body","appendChild","clearTimeout","setTimeout","_tooltipEl","remove","tooltipModel","tooltip","opacity","style","classList","yAlign","add","innerHtml","tableRoot","querySelector","position","chart","canvas","getBoundingClientRect","backgroundColor","boxShadow","borderRadius","zIndex","padding","caretX","width","window","innerWidth","left","pageXOffset","top","pageYOffset","caretY","font","pointerEvents","getInitialValue","getInitialFilter","fields","pageTitle","initialFilter","field","localValue","map","Number","classNames","className","mods","Boolean","entries","_ref","_","_ref2","join","sortArray","array","order","result","getOptionsForSelect","valueKey","contentKey","options","_String","_String2","content","checkLengthString","lenght","index","maskPhone","valueWithoutNotDigitChars","slice","useCloseCustomModal","setState","callback","timerRef","useRef","useEffect","current","onClose","useComponentDidMount","ref","validationMessages","useClickOutside","clickOutsideCallback","exceptionRef","handleClickOutside","useCallback","contains","target","addEventListener","removeEventListener","LOCAL_STORAGE_TABLE_NAMES","ShowsMessageFromBank","memo","isShow","setShow","useState","setMessage","colorText","setColorText","r","color","firePageContentChangedEvent","styles","wrapper","Logo","height","viewBox","fill","xmlns","d","BellIcon","FeedbackMenu","HelpIcon","StatsIcon","MenuIcon","CloseIcon","x1","y1","x2","y2","stroke","strokeWidth","strokeLinecap","UserDropdownIcon","cx","cy","SdmLogo","CallIcon","InventoryIcon","ok","vk","fillRule","clipRule","telegram","mc","visa","gradientUnits","stopColor","mir","SelectedIcon","SearchIcon","FilterSelectorIcon","y","rx","ResetFiltersIcon","UserIcon","AccessIcon","SecurityIcon","SystemIcon","EmailIcon","PhoneIcon","DocumentsIcon","LinkIcon","InfoIcon","PointIcon","CardIcon","version","CirrusIcon","x","SBPIcon","MobileNavigation","children","homePageUrl","userName","userDropdownNavigation","open","setOpen","location","useLocation","onClick","NavLink","to","SDMFullLogo","Navigation","Header","_filter$","_filter$$toString$mat","_BACKWARDS_BUTTON_MAP","_BACKWARDS_BUTTON_MAP2","_BACKWARDS_BUTTON_MAP3","UserDropdownNavigation","BACKWARDS_BUTTON_MAP","useMemo","buttonText","getTitleText","backUrl","operationId","setOperationId","history","useHistory","currentDetailsPage","pathname","search","toString","match","useLayoutEffect","isBankApp","goBack","Link","call","Dropdown","circular","header","UserDropdownHeader","ChangeRow","changeDescription","ChangelogEntry","_entryRef$current2","dateAndVersion","description","displayFull","setDisplayFull","descriptionOverflown","setDescriptionOverflown","entryRef","detectEntryOverflow","_entryRef$current","scrollHeight","maxHeight","change","CHANGELOG","entriesCount","ChangelogModal","isClosed","isOpen","entriesDisplayedCount","setEntriesDisplayedCount","hasScroll","setHasScroll","clientHeight","Modal","closeButton","onScroll","e","currentTarget","scrollTop","prev","Footer","theme","changelogModalOpen","setChangelogModalOpen","changelogModalShown","setChangelogModalShown","computedClassName","currentYear","getFullYear","isBank","href","rel","PAGE_CONTENT_CHANGED","dispatchEvent","CustomEvent","bubbles","PageLayout","navigation","footerNavigation","isMerchantApp","pageElementScroll","setScrollbarWidth","documentElement","cssText","offsetWidth","clientWidth","PublicPageLayout","ArticleLayout","bigColumn","smallColumn","Button","fluid","disabled","loading","size","outline","rest","assign","normalizeDate","str","convertDateToString","year","getMonth","getDate","isIphoneSafari","isIos","navigator","userAgent","isSafari","DateTextInput","placeholder","handleBlur","onChange","onKeyDown","setDate","setValue","toDate","day","newValue","preventDefault","useDateTextInput","inputComponent","min","max","onBlur","resetCancelationToken","setStartDate","setEndDate","setTotalCountForPagination","setOffset","setPageSize","setFilters","setNeedsUpdate","setDataIsFetching","setPersistedTableState","setCommonTableFilters","getRequestCancelationToken","DateRangePicker","datepickers","onReset","formatter","criticalScreenWidth","popupClassName","useSelector","useDispatch","active","setActive","screenWidth","setScreenWidtn","isShowOneCalendar","setIsShowOneCalendar","setLeft","selectedStartDate","setSelectedStartDate","selectedEndDate","setSelectedEndDate","resetLocalStates","datepickersRef","setScreenWidth","screen","_datepickersRef$curre","stylesPopup","startDateOnChangeHandler","endDateOnChangeHandler","renderHeader","_ref3","start","isActive","stylesButton","handleButton","renderDatePicker","end","limit","maxDate","minDate","component","DatePicker","selected","selectsStart","selectsEnd","calendarClassName","inline","resetHandler","subtract","applyClickHandler","cancel","Input","forwardRef","background","warning","icon","customInput","readonly","readOnly","_path","_extends","bind","n","t","apply","SvgEye","svgRef","titleId","ForwardRef","SvgEyeOff","InputPassword","passwordVisible","setPasswordVisible","EyeOff","Eye","Datepicker","otherProps","isMobile","modal","chevron","items","redirectUrl","setRedirectUrl","Redirect","FiltersSelector","columns","reset","columnsState","setColumnsState","initColumnsState","newColumnsState","resetValue","count","total","column","_columnsState$column$","renderFilterColumn","renderOption","_columnsState$column$2","_columnsState$column$3","_columnsState$column$4","_columnsState$column$5","handleChange","_columnsState$column$6","currentSelected","isSingleSelect","handleMultipleOptionsChange","_columnsState$title","newSelected","idx","oldValue","splice","handleSingleOptionChange","_columnsState$title2","FormField","SearchField","fullsize","query","setQuery","finalClassName","onKeyPress","Portal","element","createPortal","Position","maxDistanceFromWindowBottom","bottomPopup","rect","distanceFromWindowBottom","innerHeight","bottom","Popup","triggerRef","idScrollElement","maxHeightPopup","defaultMaxHeightPopup","hiddenPopup","maxWidthPopup","maxWidth","marginFromTrigger","hideWhenResizing","isMounted","parentElementWithScroll","bodyRef","widthPopup","setWidthPopup","topPopup","setTopPopup","setBottomPopup","leftPopup","setLeftPopup","rightPopup","setRightPopup","setRectPopup","_parentElementWithScr","_parentElementWithScr2","fullWidthWindow","widthWindow","heightWindow","triggerRect","parentRect","widthScrollParentElement","ceil","scrollWidth","bodyRect","positionPopup","getPositionPopup","HIDDEN","TOP_LEFT","BOTTOM_LEFT","TOP_CENTER","TOP_RIGHT","right","BOTTOM_CENTER","BOTTOM_RIGHT","handleResize","childrenElement","_parentElementWithScr3","_parentElementWithScr4","styleProperties","popup","NewSelect","label","lengthDisplayValue","headerRef","currentValue","setCurrentValue","heightPopup","getMaxHeightPopup","heightOption","heightEmptyBlock","PADDING_POPUP","onToggle","onChangeValue","dataset","renderOptionsList","opt","searchField","find","defaultConversionChart","groupName","paramNames","tuples","defaultDeclineChart","defaultMpsChart","toggleCharts","Switcher","initialActiveId","elements","activeNow","_state$charts","renderElement","Title","subtitle","CheckBox","checked","NewCheckbox","isReverseOrder","alignCheckbox","reverse","MultipleSelect","Component","constructor","initialState","reduce","render","i","Spin","handleClick","CommissionInfo","ReactTooltip","place","effect","LightTable","borderTop","thead","LightTableRow","firstTD","lastTD","boldLastTD","actionButton","isConfirm","isForm","isConfirmToClose","disabledActionButton","onAction","isClosing","setIsClosing","setIsMounted","TagContent","openAnimationTimerRef","closeAnimationTimerRef","closeModal","func","onCloseHandler","onActionHandler","stylesModal","opened","closing","stylesContent","confirm","overlay","stopPropagation","onSubmit","close","footer","ModalField","numberOfColumns","errorMessage","dataTip","dataFor","justifyInput","alignField","textField","boldLabel","bold","input","Textarea","textarea","Checked","DropdownMultiselect","_contentRef$current","contentRef","toggleDropdown","copy","SelectorFillerVariant","SelectorIcon","selectorFillVariant","REGULAR","HALF_SELECTED","fillerVariant","FixedPositionTooltip","transformX","transformY","isDisplayed","transform","OverflowContainer","bounce","setBounce","performBounce","Variant","ARROW_VARIANT_TO_STYLE_MAP","BACKWARD","FORWARD","PaginatorArrow","variant","ChevronIcon","clipPath","PaginatorSelect","setIsOpen","optionsRef","inputRef","toggleIsOpen","Paginator","pageSizeLocalstorageName","_state$table","_state$table$name","_state$table2","_state$table2$name","_state$table3","_state$table3$name","totalCount","_state$table4","_state$table4$name","upperPaginationBoundary","bottomPaginationBoundary","number","AddIcon","customIcon","AdvertisingOfEcommerceService","showServiceAds","setShowServiceAds","isRoleEcomm","isRoleAdmin","stylesSectionLink","paddingLeft","display","marginTop","showAdvertisingEcommService","redirectedThroughNavbar","OPERATION_SBP","INVENTORY","getTerminals","terminalGroups","group","logIn","credentials","URLSearchParams","append","login","password","redirectUrlByPermission","code","logOut","commonRoles","indexOf","removeValFrom","filteredRoles","ArrowRight","config","bank","isDesktop","merchant","FooterNavigation","BankRoles","EINVOCE","Container","super","send","headerName","componentCls","containerCls","cloneElement","PageSelector","pagination","defaultClassName","changePage","getRange","getOffset","componentDidMount","subscription","s","dropOffset","isEmpty","sendMessage","range","setRange","updateOffset","trunc","componentWillUnmount","unsubscribe","DynamicChart","chartConfig","chartType","labels","datasets","borderColor","borderWidth","lineTension","pointRadius","tooltips","callbacks","yLabel","legend","scales","stacked","scaleLabel","labelString","ticks","beginAtZero","responsive","maintainAspectRatio","clearChart","destroy","componentWillReceiveProps","newProps","configureCharts","prepareData","ctx","getContext","Chart","newChart","values","IndicatorColorVariant","INDICATOR_COLOR_VARIANT_MAP","BLUE","GREEN","PURPLE","GRAY","EmptyRowsIcon","GroupRow","handleGroupClick","selectorColor","isSelected","isFullySelected","IndividualRow","terminalName","onTerminalClick","isCurrentlySelected","statusIcon","rowReference","displayTooltip","setDisplayTooltip","tooltipAbsolutePosition","setTooltipAbsolutePosition","scrollY","scrollX","cleanup","detectTouchEventHold","onHold","onRelease","timerId","handleTerminalHold","handleTerminalTouchEnd","onMouseEnter","onMouseLeave","colorVariants","SelectorWithGroups","handleRowClick","selectedOnly","inventoryDisplayFilters","rowsGetter","rowNameGetter","getRowId","groupNameGetter","isGroupFullySelected","isGroupSelected","isRowDisabled","emptyPlaceholderText","filterData","currentColorNumber","nextColor","filteredData","setFilteredData","renderGroup","renderGroupName","nameGetter","renderRows","rowsGrouped","renderedRows","rowOrRowsGroup","renderRow","row","organisationName","rowsGroup","mode","buttonClassName","buttonMode","renderButton","MAX_HEIGHT_POPUP","BankTerminalsSelector","terminalsList","showGroup","setShowGroup","allTerminals","flatMap","mainTerminal","terminal","resetTerminals","trigger","all","uid","toUpperCase","terminalId","handleTerminalClick","selectAllTerminals","groupTerminalsLength","inventoryFilteringOptions","getInactivePeriodPerDaysCorrectPostfix","daysCount","daysCountLastDigit","getAllTerminals","mainTerminals","TerminalStatus","InactiveIcon","TerminalStatusIcon","VARIANT_TO_ICON_MAP","INACTIVE","ReworkedTerminalsList","organisation","terminalGroup","handleOrganisationTitleClick","some","filterTerminals","terminalIsInQuery","terminalIsSelected","terminalFitsInventoryFilter","filtrateInventory","activity","organisationContainsQueriedTerminals","organisationCopy","terminalGroupCopy","groupsGetter","tooltipTitle","dotColor","TerminalTip","tipVariant","DISABLED","MAP_ACTIVITY_TO_VARIANT","ACTIVE","FilterDropdown","selectedCount","filterName","firstRowControls","secondRowControls","onApplyClick","actions","resetDisplayed","MerchantTerminalsSelector","tableName","setInventoryDisplayFilters","pickedTerminals","setPickedTerminals","_state$table$tableNam","_state$table$tableNam2","terminalIds","hardResetTerminals","handleApplyClick","pickedTerminalsCopy","getBadgesMap","DynamicFilter","getYearsFrom2017","clsName","firstGroup","secondGroup","focusedInput","getData","request","saveFilter","Card","CardBody","CardTitle","connect","DynamicPage","TableHeader","defaultTable","AwareTable","sizeLastPage","checkUrlAndTerminalIds","urlToСheck","clearUrl","componentDidUpdate","prevP","needUpdate","getTable","backendRequest","updateTableCallback","transformBody","emptyTerminalResetData","Optional","ofNullable","ifPresent","tableDataMapper","countPageToEnd","getSizeLastPage","onGetTable","makeScroll","pre","cur","forceRequest","reloadData","Table","onItemClick","convert","ID","_this","numericalColumn","editableRow","rowId","removeCompanyOption","deleting","mainCompanyId","editOption","editing","drawRow","link","redirect","rowCls","lastSelected","rowBlock","secondIndex","drawRowBlock","locationUrl","rowName","redirectKey","rowLength","cls","dangerouslySetInnerHTML","__html","justifyContent","companyHistory","alignItems","isNumericalColumn","sortData","sortOperationsData","cellPadding","cellSpacing","NoDataIcon","QuickActionButton","DataFetchingIcon","VARIANT_MAP","INITIAL","oldContent","LOADING","NO_DATA","DisplayDataStatus","newStatuses","lastMonthClickHandler","startOf","endOf","thisMonthClickHandler","dataCache","ttl","cache","Map","set","entry","expireAt","now","getKeyPath","lastKey","delete","createIfNotExists","currentLevel","has","nextLevel","StoreAwareTable","initialFetch","lastRequestCanceled","forceLoadingScreen","forceNoDataScreen","previousProps","_this$props$table","_this$props$table$thi","_this$props$table2","_this$props$table2$th","_this$props$table3","_this$props$table3$th","keysBySeparator","paginationChanged","_this$props$commonFil","_this$props$table4","_this$props$table4$th","_this$props$table4$th2","useCommonFilters","_this$props$table5","_this$props$table5$th","_this$props$table6","_this$props$table6$th","_this$props$table7","_this$props$table7$th","_this$props$commonFil2","_this$props$table8","_this$props$table8$th","_this$props$commonFil3","_this$props$table9","_this$props$table9$th","isRequestDisabled","cacheKey","generateCacheKey","cachedData","requestData","_payload$","_previousProps$table","_previousProps$table$","_this$props$table10","_this$props$table10$t","_previousProps$table2","_previousProps$table3","_this$props$table11","_this$props$table11$t","commonFiltersChanged","_previousProps$common","_this$props$commonFil4","_previousProps$common2","_this$props$commonFil5","_previousProps$common3","_this$props$commonFil6","needUpdateCommonFilters","needUpdateTableIdSpecific","filtersChanged","_previousProps$table4","_previousProps$table5","_this$props$table12","_this$props$table12$t","_previousProps$table6","_previousProps$table7","_this$props$table13","_this$props$table13$t","_previousProps$table8","_previousProps$table9","_this$props$table14","_this$props$table14$t","fromEntries","sort","_this$props$table15","_this$props$table15$t","_this$props","_this$props$location","_this$props$location$","_this$props$commonFil7","_this$props$table17","_this$props$table17$t","_this$props$table17$t2","_this$props$table18","_this$props$table18$t","_this$props$table19","_this$props$table19$t","_this$props$table16","_this$props$table16$t","replaceState","_this$props$table20","_this$props$table20$t","totalPaginationCountHidden","withRouter","AwareTableSelector","isStoreTable","useCommonTableFilters","tableProps","forwardedRef","cashboxesTableName","keysTableName","EcommPage","cashboxSubject","merchkeySubject","toggle_update_ecommKey","open_update_ecommKey","getEcommKeyCashbox","ecomkeyCashboxes","cashboxRequired","blocked","groupCode","toggle_add_cashbox","cashbox","open_add_cashbox","confirm_add_cashbox","toggle_update_cashbox","open_update_cashbox","reassignIdCompany","createCashbox","cashboxLogin","cashboxPassword","cashboxStatus","address","ffdVersion","toggle_confirm_add_cashbox","defCashbox","cashboxId","merchkeys","ecommkeyStatus","idDefaultETerminal","passwordDefaultETerminal","created","merchantId","merchantName","merchantUrl","defaultNotificationUrl","defaultSuccessUrl","defaultFailUrl","timeZone","allowWidgets","maxAmount","defaultNotificationEmail","notifyByEmail","notifyByUrl","open_add_ecommKey","statuses","passwordType","pswdHidden","cashboxAvailableFfdList","mcc","getCashbox","autoComplete","UI","FiltersContainer","schema","object","required","HelpLink","externalUrl","LoginForm","_errors$login","_errors$password","register","handleSubmit","formState","errors","useForm","defaultValues","resolver","yupResolver","PublicFormWidget","LevelsBar","levels","symbolsValidator","lettersValidator","lengthValidator","securityLevels","descriptionLabel","validator","oldPasswordSecurityLevel","currentPassword","uniquePasswordValidator","newPassword","counter","NewPasswordInput","inputProps","securityLevelVisible","setSecurityLevelVisible","capsLockOn","setCapsLockOn","setLevels","NiceInputPassword","showSecurityLevelDescription","showSecurityLevelBar","visible","InputComponent","InputComponentProps","handlePasswordBlur","getModifierState","renderLevelBarComponent","isPasswordStrong","regex","schemaBank","repeatPassword","oneOf","schemaMerchant","Form","_errors$repeatPasswor","_errors$code","isMerchant","useParams","control","activateUser","Controller","forgotPassword","_errors$currentPasswo","watch","changePassword","_errors$newPassword","getDay","getUrl","fileFormat","detailedReport","newUrl","checkUrl","invoiceId","getInvoiceId","infoMessage","ModalBody","defaultFileName","isDetailed","availableFormats","fileName","setFileName","setFileFormat","setDetailedReport","optionsFileFormat","requestUrl","currentFilter","prepareBodyReport","_filters$companyIds","appName","localcompanyIds","companyIds","pathDay","searchQuery","responseType","download","getDownloadedFileName","toLocaleLowerCase","TriggerButton","button","DownloadReport","themeTriggerButton","nameTriggerButton","filterSubject","changeToggleModal","_filterSubject$pipe","DownloadReportStore","getFilterCallback","qrcType","qrcTypes","filterObject","EinvoiceDetailsPage","redirectToOperationsSBP","orderId","sendEinvoiceDetail","deleteEinvoiceDetail","ecommKey","externalOrderId","customerEmail","customerPhone","amount","taxation","dueDate","paymentUrl","itemDtos","updated","copySuccess","urlPay","getEinvoiceInfo","copyToClipboard","companyRolesHasSBP","staticQrcCase","einvoiceStaticDownloadCase","einvoiceQrcEmptyCase","price","quantity","tax","paymentMethod","paymentObject","measurementUnit","random","EinvoiceFilter","localQrcTypeValue","localPaymentTypeValue","defaultFilter","additionalFilter","_this$props$table$fil","_this$props$table2$fi","getStartDate","getEndDate","_this$props$table$sta","_this$props$table$end","_this$props$table5$fi","_this$props$table6$fi","_this$props$table7$fi","CARD","EinvoiceTable","einvoiceSubject","toggle_add_einvoice","einvoiceItem","einvoiceAmmount","open_add_einvoice","confirm_add_einvoice","toggle_confirm_add_einvoice","toggle_update_einvoice","open_update_einvoice","createEinvoice","merchantEmail","paymentToInfoValue","paymentTo","handleIsNotStaticOrByCard","replaceAll","itemId","edit","defaultPaymentKey","allWithCardSbp","allWithCard","defaultEcommKey","isNeedPaymentTo","paymentToInfo","ecommKeyIdsOptions","paymentMethodOptions","paymentObjectOptions","taxOptions","taxationOptions","itemEmptyCheck","itemOnEditEmptyCheck","einvoiceItemRemove","einvoiceItemEdit","open_add_einvoice_item","einvoiceItemSave","einvoiceEmptyCheck","handleTerminalChange","ecommKeyIdsOption","handlePaymentTypeChange","_this$filteredEcommKe","filteredEcommKeys","handleTypeChange","_this$filteredEcommKe2","cReqOfSelectedEcommkey","handleFieldChangeSelect","handleFieldChangeInput","_ref4","handlePhoneChange","_ref5","sanitizedPhone","handleQuantityChange","_ref6","sanitizedQuantity","handlePriceChange","_ref7","sanitizedPrice","handleDescrChange","_ref8","handleEmailChange","_ref9","sanitizedEmail","handlePaymentToInfo","_ref10","handleAmmountChange","_ref11","sanitizedAmount","handleDueDate","saveEinvoiceItem","addEinvoiceItem","_ref12","allNoMir","noMirType","getEcommKeyIdsOptions","filteredEcommKeyIdsOptions","_ref13","_ref14","einvoiceOptions","splitButtonOpen","_this$props$newStatus","_this$state$ecommKeyI","_this$state$ecommKeyI2","onlyOneEcommKey","companyRolesHasECOM","companyRolesHasEINVOICE","EcommkeysSbporCardOnly","_ref15","EcommKeysHasSBPandCard","_ref16","EcommKeysHasCard","_ref17","isCompanyRolesHasNoSBP","isShowPaymentMethod","paymentTypeHasSBP","_ref18","ifOneSbp","paymentTypeIsNotEmpty","_ref19","defaultValuePaymentType","cancelationToken","errorKeys","rows","datepicker","withPortal","_ref20","MerchantEinvoicePage","CompanySelect","companySelect","list","companySelectList","companySelectInputChangeHandler","getCompanies","finally","onChangeSelect","Select","classNamePrefix","classSelect","isSearchable","isLoading","noOptionsMessage","loadingMessage","onInputChange","isClearable","components","ClearIndicator","_this$props$table8$fi","isSimpleMode","datePickerPopupClassName","ecommKeyId","BankEinvoicePage","EpaymentDetailsPage","onNameSave","EpaymentsFilter","defsIds","saveAndSend","EpaymentsPage","toggle_receipt_info","open_receipt_info","getCashboxReceiptInfo","rnn","receipt","inn","fiscalReceiptNumber","shiftNumber","phone","emailCompany","deviceCode","totalFiscal","cashless","fnNumber","ecrRegistrationNumber","fiscalDocumentNumber","fiscalDocumentAttribute","isEmptyReceipt","ModalHeader","amountTax","fnsSite","SectionCard","bgColor","setRedirect","Layout","links","topContent","SidebarLink","Sidebar","Search","texts","commonDescription","edge","firefox","chrome","ie","safari","osSafari","samsungInternet","chromeForAndroid","ucBrowserForAndroid","activateAccount","supportPartial","supportedBrowser","siteLink","headerPartOne","headerPartTwo","BrowserConfig","Chrome","Firefox","Edge","Safari","getText","browserName","supportedBrowsersText","EmptyContent","filteredItems","el","_el$content","Content","setSearchQuery","AboutSystem","colSpan","HelpPage","HelpPageContent","SystemPage","HelpPageLayout","HelpPageSidebar","MainPage","unlisten","getInactivePeriodPerDays","listen","changeRoute","setHead","ProtectedRoutes","MerchantUserFilter","addValueInObject","deleteKeyFromObject","ModalUiHeader","_Object$values","typeOptions","numberSelectedItems","selectedOptions","entitiesOptions","onClickSelectedOption","onClickButton","renderSelectedOptions","TypeOptions","ROLES","TERMINALS","getDisplayOption","ModalUiPopup","onSearch","onSelectedAll","buttons","DisplayTheme","SelectingItemsFromList","_filterArray","initOptions","FILTER","entities","normalizeData","ids","setUpdateComponent","setSearch","isComponentDidMount","updateComponent","onChangeHandler","newArray","_e$currentTarget$pare","parentElement","onClickOptionInList","initSelectedOptions","filterArray","regexp","RegExp","MODAL","AddUserModal","emailIsValid","adminChecked","toggleAddUser","createMerchantUser","validateForm","_this$props$successCa","successCallback","getErrorValidateEmail","filterRoles","getTerminalsOptions","fio","selectedRoles","nextProps","getUserInfo","changeAdminChecked","getUserStatus","bankBlocked","companyBlocked","temporaryBlocked","toggleUpdateUser","notify","updateMerchantUser","block","_this$props$successCa2","_this$props2","getModalHeader","MerchantUserListPage","awareTableRef","updateUserModalOpen","returnRoleAsObject","_this$awareTableRef","EditUserModal","_this$awareTableRef2","validationScheme","yup","shape","trim","lowercase","SendReceiptAboutOperation","_errors$email","setClosed","typeError","positive","lessThan","submitMessage","revertOptions","SendRefundRequest","_errors$amount","fullAmount","isPartial","setPartial","getValues","revert","ReceiptItem","product","ShowsInfoAboutReceipt","rrn","setReceipt","empty","formatCurrency","num","formatDate","DetailsItem","OperationDetails","responseCodeDescription","cardSystemId","cardNumber","operationTypeName","statusName","dateTime","authCode","cardTypeName","responseCodeStr","OperationDetailsSbp","amountNumerically","operationType","sndPam","sndPhone","operationDate","OperationDescription","mccDescription","fee","orderDescription","additionalData","tips","OperationDescriptionSbp","trxId","commission","OperationDetailPage","receiptModal","isAlreadyRevert","receiptModalToggle","permission","setRrn","closeReceiptModal","getOperation","clearOperation","linkedOperationRow","responseCode","hasReceipt","linkedOperations","reversalAmount","reversalDateTime","getOperationDetail","OperationSBPDetailPage","handleAmountChange","details","operationAmount","handleReceiptChange","a","b","revertAmount","revertOperation","_receipt$items","hasRefundOption","v","OperationsFilter","_props$location$state","_this$commonSavedStat","_this$commonSavedStat2","responseMessages","commonSavedState","locationTerminalId","rowID","operationStatusesAsObject","operationTypesAsObject","types","operationRcMsgAsObject","rcMessages","rcMessage","_this$props$table3$fi","_this$props$table4$fi","_this$props$table$fil2","_this$props$table$fil3","_this$props$table$fil4","_this$props$table9$fi","_this$props$commonFil8","_this$props$table10$f","OperationTypes","OperationStatuses","OperationRcMessages","OperationsPage","filterSBPIdentificators","identificatorsList","identificationsSbp","identification","filtrateSelectedOnly","identificator","identificatorProperty","_identificatorPropert","isIdentificatorInQuery","SbpIdentificatorSelector","handleIdentificationClick","identificationSbp","identificationId","allIdentifications","SelectSBPIdentificators","identificationsList","pickedIdentificators","setPickedIdentificators","allIdentificationsIds","hardResetSelectedIdentificators","selectAllidentificators","resetSelectedIdentificators","sbpIdentificatorId","getSBPIdentificators","merchantIds","_this$props$location2","_this$props$location3","companyIdsAreEqual","isEqual","_this$props$table12$f","_this$props$table13$f","_this$props$table14$f","_this$props$table14$f2","_this$props$table15$f","_this$props$table16$f","_this$props$table17$f","OperationsSBPPage","_this$props$table$pag","_this$props$table$pag2","_this$props$table$pag3","statusOptions","EditRegistryMailingSchedule","initInterval","resetId","setStatus","interval","setInterval","decreaseInterval","increaseInterval","SchedulePage","scheduleSubject","callbackOfEditSchedule","getInterval","turnedOff","INIT_TERMINAL","activityInfo","extraCommission","limitEndOfWeek","operationLimit","rates","simCommission","weekLimit","WITHOUT_GROUP","getOptionsGroups","rules","faultyAndLost","noOperation","FetchInfoAboutTerminal","isChangedGroup","setId","changingGroup","setTerminal","useReducer","newTerminal","setGroups","currentGroup","setCurrentGroup","phoneNumber","setPhoneNumber","applicationType","setApplicationType","validateCloseTerminal","setValidateCloseTerminal","changePhoneNumber","changeApplicationType","resetTerminal","groupId","sendRequestToCloseTerminal","FAULTY_TERMINAL","LOST_TERMINAL","NO_OPERATIONS_ON_TERMINAL","requestSuccessTextMapper","_groups$find","applicationTypes","cardName","rate","AddTerminalGroup","_errors$companyId","_errors$name","companies","companiesOptions","removeMessage","EditGroupOfTerminals","onRemove","TerminalsFilter","queryName","_this$props$table$fit","fitlers","mapStateToProps","terminalsTableName","groupsTableName","TerminalsPage","groupsSubject","BehaviorSubject","openAddGroup","setGroupRequest","resetGroupId","onClickOnGroup","toggleAddGroup","fetchUpdatedData","setTerminalHeader","showTerminalHeader","DocumentLinks","UserProfile","userRolesToString","UserConfigPage","centered","ChangePasswordForm","SettingsPage","Switch","Route","SettlementDetailsFilter","companyIdsSettlementPage","terminalIdsSettlementPage","notIncludedIds","_initialFilter$termin","SettlementDetailsTableName","SettlementDetails","summary","summaryRequest","SetttlementDetailsFilter","getSummary","feeAmount","settlAmount","SettlementFilter","_this$props$table2$fi2","SettlementPage","NotificationOfInactiveTerminals","isInactiveTerminals","setInactive","onCloseModal","StatisticFilter","isInitialDataRequest","propsChanged","_this$props$commonFil9","_this$props$commonFil10","getAllStatisticPageCharts","getDeclineChart","getConversionChart","_this$props$commonFil11","_this$props$commonFil12","legendMargin","beforeInit","fitValue","fit","hoverSectionBackgroundColor","beforeDatasetsDraw","chartArea","_active","_gridLineItems","currentX","nextX","newWidth","fillStyle","fillRect","ConversionChart","PureComponent","createRef","hoverBackgroundColor","maxBarThickness","hover","intersect","plugins","enabled","external","renderTooltipContent","align","usePointStyle","pointStyle","boxWidth","boxHeight","grid","tickColor","tickWidth","dataSets","currentDataIndex","dataPoints","dataIndex","chartRenderCheck","MpsChart","chartProps","colors","first","second","third","defaultColor","barThickness","barPercentage","categoryPercentage","borderSkipped","indexAxis","layout","autoPadding","refs","renderPs","renderLabel","gradient","createPsGradients","bar_ctx","createLinearGradient","addColorStop","_roundsNumber","newNumber","isInteger","roundsNumber","DeclineChart","StatisticPage","chartTooltip","q","SupportPage","feedback","subjectOrder","selectedSubject","messageList","clearFeedback","getMsgTemplateList","findTempBySubject","selectedContext","f","Faq","sub","whiteSpace","collapse","cursor","Collapse","BankUserFilter","_state$table$pageTitl","_state$table$pageTitl2","bankUserListTableName","BankUserListPage","open_add_user","open_update_user","toggle_add_user","toggle_update_user","createBankUser","permit","updateBankUser","bankStandartRoles","GroupListPage","CompanyListPage","CompanyFilter","bordered","striped","cashboxBlocked","boolean","CashBoxWithRoles","defaultRole","isPlatform","cashBoxRole","currentRole","componentUpdateLocal","idCompany","prevProps","prevState","snapshot","newUpdateState","onChangeCheckBox","valueItem","_this$state$currentRo","_this$state$currentRo2","createUpdateError","AddMerchantCashbox","_formState$errors$gro","_formState$errors$add","_formState$errors$cas","_formState$errors$cas2","onUpdate","setCashboxAvailableFfdList","setFfdVersion","setIsClosed","setRole","submitParams","innCompany","ffd","nameFfd","optional","extEntityId","merchantIdSbp","account","accAlias","eCommKeyBlocked","IS_MIR_PAY","AddMerchantKeys","_errors$idDefaultETer","_errors$passwordDefau","_errors$merchantId","_errors$merchantName","_errors$merchantUrl","_errors$defaultSucces","_errors$defaultFailUr","_errors$maxAmount","_errors$defaultNotifi","_errors$defaultNotifi2","showEmailInput","setShowEmailInput","showDefaultNotificationUrl","setShowDefaultNotificationUrl","setEcomkeyCashboxes","setPaymentType","isIdTerminalMirError","setIsIdTerminalMirError","pageId","newEcomkeyCashboxes","onChangePaymentType","selectedType","filterPayment","pt","cashboxOptions","timeSelectOptions","_body$mirPayTerminalI","createBody","mirPayKid","mirPayMerchantId","mirPayPrivateKey","mirPayTerminalId","nextValue","onChangeCashboxRequired","hasSBPRole","_event$target","_event$target$value","getDefaultValues","initialData","EditMerchantKeys","usersTableName","linkedCompaniesTableName","merchantKeysTableName","CompanyDetailsPage","ecomKeyFields","handleSBPOptionalChange","handlePaymentType","selectedPmType","editingMode","handleEditingEcommFields","handleEcommFields","selectAllPaymentTypes","cardIconSelect","МИР","VISA","MasterCard","toggle_add_ecommKey","ecomKeysChecked","cashboxChecked","cashboxFields","resetLocalReassignSelect","paramsReq","res","omit","hideForm","hideEditMerchantKeysForm","sendEcomKeysForceRequest","onSuccessCashboxAction","getInitialDataForMerchantKey","initialDataMerchant","subCompanyId","open_update_company_role","open_terminal_info","open_user_history","userHistory","info","showHistory","activateEcomm","activateEcommStatus","toggle_user_history","createCompanyUser","toggle_show_terminal_info","open_add_sub_group","deleteRequest","toggleSubCompany","toggle_update_company_role","getCompanyInfo","getTerminalInfo","_r$data$payload","currentReassignIdCompany","_this$state$info","hasSBPRoleInCompany","isRoleCashboxNotAdmin","mainCompanyName","getCompanyRoles","getUserHistory","userTokens","tokenDuration","usedAttemptCount","attemptCount","attempts","MaskedInput","mask","ListGroup","ListGroupItem","updateCompanyUser","resetMerchantUser","persist","flexDirection","updateCompanyRoles","cashboxesReceiptTableName","CashBoxReceiptPage","receiptOrderId","receiptCreated","receiptTotalFiscal","registryId","errorInfo","err","cashboxRegistriesTableName","CashBoxRegistriesPage","getPlatformCashboxInfo","platformCashboxTableName","PlatformCashBoxPage","defStatus","createUpdateCashBoxError","createPlatformCashbox","createParams","prepareParamsUpdateCashBox","paramsUpdate","currentCompanyIds","updatePlatformCashbox","nameFieldLocal","listSelect","listItem","_newState$companyIds","onChangeCashBoxWithRoles","_fields$companyIds","_fields$role","platformCashboxErrorTableName","PlatformCashBoxErrorsPage","ReversalPageFilter","createFilterFromState","companyTerminals","getAllTerminalIds","companyTerminalIds","_this$props$table6$fi2","ReversalPage","CashBoxes","CashBoxesFilter","queryLocalName","InventoryPage","protectedRoutesConfig","exact","SettlementDetailsPage","PublicFooterNavigation","publicRoutes","BrowserRouter","basename","ForgotPasswordForm","ActivationForm","defaults","family","ArcElement","LineElement","BarElement","PointElement","BarController","BubbleController","DoughnutController","LineController","PieController","PolarAreaController","RadarController","ScatterController","CategoryScale","LinearScale","LogarithmicScale","RadialLinearScale","TimeScale","TimeSeriesScale","Decimation","Filler","Legend","Tooltip","SubTitle","Notification","NotificationItem","DefaultStyle","margin","BrowserCheckShowedKey","BrowserCheck","wasShown","setWasShown","browserVersion","PageError","reloadPage","reload","ErrorBoundary","hasError","getDerivedStateFromError","componentDidCatch","console","Suspense","fallback","withProviders","compose","Provider","appTitle","pjson","require","App","prototype","toJSON","isValid"],"mappings":"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","file":"static/js/main.1971c929.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"light-table\":\"light-table_light-table__1msF8\",\"bold\":\"light-table_bold__26vqv\",\"border-top\":\"light-table_border-top__ew0Qq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"date-text-input\":\"date-text-input_date-text-input__3ZWsm\",\"date-text-input__safari-fix\":\"date-text-input_date-text-input__safari-fix__1uv7Q\",\"container\":\"date-text-input_container__2zeaK\",\"container__hider\":\"date-text-input_container__hider__Yen62\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search-field\":\"search-field_search-field__2hvs0\",\"input\":\"search-field_input__3mDnJ\",\"search-field--fullsize\":\"search-field_search-field--fullsize__2RO7E\",\"search-icon\":\"search-field_search-icon__1jEtW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__9xl4s\",\"disabled\":\"styles_disabled__33A6S\",\"backward\":\"styles_backward__1gG-S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"einvoice-filter\":\"einvoice-filter_einvoice-filter__r749P\",\"einvoice-filter__search-fields\":\"einvoice-filter_einvoice-filter__search-fields__2Lnn2\",\"einvoice-filter__search-field\":\"einvoice-filter_einvoice-filter__search-field__2iDB7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section-card\":\"section-card_section-card__kQbWf\",\"title\":\"section-card_title__2ibRa\",\"description\":\"section-card_description__3U5Ja\",\"icon\":\"section-card_icon__2iTTt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"modal-ui-header_header__3P18J\",\"selected-options\":\"modal-ui-header_selected-options__5xyhH\",\"selected-option\":\"modal-ui-header_selected-option__ZNuJ5\",\"counter\":\"modal-ui-header_counter__2qjvx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"search-header\":\"content_search-header__2gO5j\",\"navigation\":\"content_navigation__3JHee\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"show-more\":\"styles_show-more__4PS3g\",\"title\":\"styles_title__3_El3\",\"body\":\"styles_body__nAfzw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"article-layout_wrapper__ZwNrc\",\"big-column\":\"article-layout_big-column__3nmJq\",\"small-column\":\"article-layout_small-column__2vlau\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"badge\":\"badge_badge__wDO-6\",\"badge--warning\":\"badge_badge--warning__zI4rz\",\"badge--info\":\"badge_badge--info__2oMbv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switcher\":\"switcher_switcher__2pnWi\",\"switcher-element\":\"switcher_switcher-element__3IEuv\",\"switcher-element--active\":\"switcher_switcher-element--active__3xTax\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"title_wrapper__1W6Pn\",\"title\":\"title_title__2J9CN\",\"subtitle\":\"title_subtitle__puIxq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"textarea_textarea__338iE\",\"modal-input\":\"textarea_modal-input__2jUDK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3b-d7\",\"terminals\":\"styles_terminals__2HEvP\",\"terminal\":\"styles_terminal__1_xHV\",\"title-with-selector\":\"styles_title-with-selector__1sjkG\",\"organisation\":\"styles_organisation__3vIId\",\"selected\":\"styles_selected__2rwMB\",\"filter-row\":\"styles_filter-row__2-zE3\",\"name\":\"styles_name__1MufW\",\"disabled\":\"styles_disabled__2g07-\",\"no-selected-terminals\":\"styles_no-selected-terminals__3zaHE\",\"reset-button\":\"styles_reset-button__1syH0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title-with-selector\":\"styles_title-with-selector__2Z6Lc\",\"name\":\"styles_name__37B9h\",\"selected\":\"styles_selected__cLG1c\",\"disabled\":\"styles_disabled__1qXpx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switcher\":\"switcher_switcher__xm5Js\",\"switcher-button\":\"switcher_switcher-button__19kRI\",\"switcher-button--active\":\"switcher_switcher-button--active__2Q4i0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"public-form\":\"public-form_public-form__1EdV7\",\"header\":\"public-form_header__upzd3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"selecting-items-from-list_wrapper__JHOy7\",\"item\":\"selecting-items-from-list_item__NPV2h\",\"selected\":\"selecting-items-from-list_selected__yPVR9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"status\":\"edit-user_status__17Bs5\",\"active\":\"edit-user_active__1FdIy\",\"disabled\":\"edit-user_disabled__X_Lrc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"details-item_wrapper__20QQl\",\"title\":\"details-item_title__3z9nB\",\"icon\":\"details-item_icon__1nTcU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1KR30\",\"filter-wrapper\":\"styles_filter-wrapper__1CUXJ\",\"actions-wrapper\":\"styles_actions-wrapper__5yDym\",\"company-select\":\"styles_company-select__1fPVu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actions-wrapper\":\"styles_actions-wrapper__3mIHk\",\"wrapper\":\"styles_wrapper__1_-Gt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"base-link\":\"navigation_base-link__3zJDm\",\"navigation\":\"navigation_navigation__3uXAN\",\"logo\":\"navigation_logo__1c9Dn\",\"section-links\":\"navigation_section-links__3C8kH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stacked-inputs\":\"stacked-inputs_stacked-inputs__1ESWL\",\"stacked-inputs--fluid\":\"stacked-inputs_stacked-inputs--fluid__3Ls9F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkbox-block\":\"check-box_checkbox-block__anPpj\",\"label\":\"check-box_label__2dhq4\",\"checkbox\":\"check-box_checkbox__1VtJk\",\"checkbox_checked\":\"check-box_checkbox_checked__3KwIh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login-form\":\"login-form_login-form__p6N4p\",\"links\":\"login-form_links__VfDi5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"new-password-input\":\"new-password-input_new-password-input__1geQy\",\"icon\":\"new-password-input_icon__STaO5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"light-table\":\"light-table_light-table__1Kii0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3br0L\",\"actions-wrapper\":\"styles_actions-wrapper__1ENmq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__2-Z8o\",\"actions-wrapper\":\"styles_actions-wrapper__yO_8B\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3UkTZ\",\"actions-wrapper\":\"styles_actions-wrapper__3VrH7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trigger\":\"styles_trigger__pkD1Z\",\"trigger__reset-icon\":\"styles_trigger__reset-icon__mv5ca\",\"trigger--open\":\"styles_trigger--open__5NWoL\",\"trigger__header\":\"styles_trigger__header__3eTAX\",\"trigger__count\":\"styles_trigger__count__8wEpP\",\"popup\":\"styles_popup__3Sv61\",\"open\":\"styles_open__1kaoo\",\"search-field\":\"styles_search-field__FeSVt\",\"terminals\":\"styles_terminals__3a4CI\",\"terminal\":\"styles_terminal__3oew0\",\"selected-icon\":\"styles_selected-icon__O0Cjv\",\"terminal--selected\":\"styles_terminal--selected__y4EyE\",\"wrapper\":\"styles_wrapper__1HG7Z\",\"disabled\":\"styles_disabled__cF8Np\",\"actions-wrapper\":\"styles_actions-wrapper__cIg1L\",\"actions\":\"styles_actions__3Scqz\",\"controls-wrapper\":\"styles_controls-wrapper__3tkjM\",\"hide-overflow-x\":\"styles_hide-overflow-x__22boq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"footer_footer__2wtkv\",\"bank-info\":\"footer_bank-info__evSZJ\",\"logo-wrapper\":\"footer_logo-wrapper__1PcNI\",\"license\":\"footer_license__1_rAv\",\"link\":\"footer_link__1yxCK\",\"contacts\":\"footer_contacts__3b8_f\",\"phone-numbers\":\"footer_phone-numbers__2bGUM\",\"call-icon\":\"footer_call-icon__363qJ\",\"help\":\"footer_help__3fT5n\",\"media-and-version-wrapper\":\"footer_media-and-version-wrapper__3Kd82\",\"version-button\":\"footer_version-button__1ptpH\",\"version-button--bank\":\"footer_version-button--bank__1vPw0\",\"social-media\":\"footer_social-media__1zFM7\",\"footer--dark-theme\":\"footer_footer--dark-theme__3Vxts\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"status-terminal\":\"fetch-info-about-terminal_status-terminal__39qen\",\"active\":\"fetch-info-about-terminal_active__2ePWI\",\"inactive\":\"fetch-info-about-terminal_inactive__jxpt2\",\"disabled\":\"fetch-info-about-terminal_disabled__3-uuN\",\"title\":\"fetch-info-about-terminal_title__255zK\",\"field\":\"fetch-info-about-terminal_field__QF5G8\",\"last-field\":\"fetch-info-about-terminal_last-field__3X_aH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"shows-message-from-bank_wrapper__1qENb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"feedback-menu_wrapper__1I4As\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"date-picker_modal__2viBN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-field\":\"form-field_form-field__1Xxiy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"popup_popup__2BVSm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__2LRS1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3OCUA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"advertising-of-ecommerce-service_wrapper__S-CkF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1_wwJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3O6YA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filters-container\":\"filters-container_filters-container__2vO6H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"help-link\":\"help-link_help-link__2QhZp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"form_form__2kA7i\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"trigger-button_button__2Y-YL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3gMlz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1pxm0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"links\":\"document-links_links__IOVjM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3q3xi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"date-range-picker\":\"date-range-picker_date-range-picker__3wOum\",\"controls-wrapper\":\"date-range-picker_controls-wrapper__atrTk\",\"date-range-picker__headers\":\"date-range-picker_date-range-picker__headers__2uQg8\",\"date-range-picker__header\":\"date-range-picker_date-range-picker__header__Sp7er\",\"date-range-picker__header--active\":\"date-range-picker_date-range-picker__header--active__3o-JB\",\"title\":\"date-range-picker_title__3IBIS\",\"date-range-picker__popup\":\"date-range-picker_date-range-picker__popup__3g8Rj\",\"date-range-picker__popup--open\":\"date-range-picker_date-range-picker__popup--open__2Fago\",\"date-range-picker__popup--left\":\"date-range-picker_date-range-picker__popup--left__3PpBa\",\"reset-button\":\"date-range-picker_reset-button__39Ep9\",\"date\":\"date-range-picker_date__34MTN\",\"date-range-picker__datepickers\":\"date-range-picker_date-range-picker__datepickers__HyLmW\",\"date-picker-calender\":\"date-range-picker_date-picker-calender__3NQbs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3Ajrd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"page-error_wrapper__19uWU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trigger\":\"filters-selector_trigger__1CNeQ\",\"trigger--open\":\"filters-selector_trigger--open__2MO8z\",\"trigger__reset-icon\":\"filters-selector_trigger__reset-icon__vQq9j\",\"trigger__count\":\"filters-selector_trigger__count__2UAoF\",\"trigger__count--visible\":\"filters-selector_trigger__count--visible__2aNoG\",\"columns\":\"filters-selector_columns__vKMxg\",\"filter-column\":\"filters-selector_filter-column__31Bhm\",\"filter-column__title\":\"filters-selector_filter-column__title__2WODG\",\"filter-column__option\":\"filters-selector_filter-column__option__20YQ-\",\"filter-column__option--selected\":\"filters-selector_filter-column__option--selected__2X2An\",\"popup\":\"filters-selector_popup__jKkl9\",\"popup--open\":\"filters-selector_popup--open__1Uvlz\",\"search-field\":\"filters-selector_search-field__1cSfj\",\"terminal\":\"filters-selector_terminal__1FkXn\",\"selected-icon\":\"filters-selector_selected-icon__3szvO\",\"terminal--selected\":\"filters-selector_terminal--selected__1HX5U\",\"wrapper\":\"filters-selector_wrapper__1_QSc\",\"actions\":\"filters-selector_actions__3PVA0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trigger\":\"styles_trigger__1shcv\",\"trigger__reset-icon\":\"styles_trigger__reset-icon__2SWxj\",\"trigger--open\":\"styles_trigger--open__1p6By\",\"trigger__header\":\"styles_trigger__header__26fCC\",\"trigger__count\":\"styles_trigger__count__3QHX4\",\"popup\":\"styles_popup__3be8l\",\"search-field\":\"styles_search-field__2Qh5m\",\"terminals\":\"styles_terminals__1uhFD\",\"terminal\":\"styles_terminal__ehmGr\",\"selected-icon\":\"styles_selected-icon__1H2Z4\",\"terminal--selected\":\"styles_terminal--selected__2W6_l\",\"wrapper\":\"styles_wrapper__2ARu9\",\"actions\":\"styles_actions__1Amw4\",\"controls-wrapper\":\"styles_controls-wrapper__qodMg\",\"title\":\"styles_title__3yqxO\",\"with-selector\":\"styles_with-selector__1syiv\",\"name\":\"styles_name__2XTug\",\"hide-overflow-x\":\"styles_hide-overflow-x__1q267\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"operation-details_wrapper__2NRxv\",\"header\":\"operation-details_header__7GoIB\",\"green\":\"operation-details_green__3j2t0\",\"amount\":\"operation-details_amount__3N7_c\",\"sbp\":\"operation-details_sbp__32tBt\",\"buttons\":\"operation-details_buttons__3qUq5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"add-info\":\"operation-description_add-info__feizx\",\"add-info__item\":\"operation-description_add-info__item__10XDw\",\"links\":\"operation-description_links__MuVH6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"base-link\":\"mobile-navigation_base-link__3Fl4K\",\"mobile-navigation\":\"mobile-navigation_mobile-navigation__3M2kw\",\"links\":\"mobile-navigation_links__1-sHd\",\"backdrop\":\"mobile-navigation_backdrop__hmWL2\",\"backdrop--open\":\"mobile-navigation_backdrop--open__6DpIJ\",\"menu\":\"mobile-navigation_menu__TDPgg\",\"menu-icons\":\"mobile-navigation_menu-icons__2K0RT\",\"links--open\":\"mobile-navigation_links--open__2vDqB\",\"logo\":\"mobile-navigation_logo__2kXit\",\"user-menu__user\":\"mobile-navigation_user-menu__user__3PPBV\",\"close-icon\":\"mobile-navigation_close-icon__IbRu4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"button_button__1ZovQ\",\"button--medium\":\"button_button--medium__3na7s\",\"button--smedium\":\"button_button--smedium__32n4O\",\"button--xs\":\"button_button--xs__z3tqS\",\"button--tiny\":\"button_button--tiny__1cem_\",\"button--outline\":\"button_button--outline__2JDfG\",\"button--gray\":\"button_button--gray__19Al3\",\"button--clear\":\"button_button--clear__luIeP\",\"button--fluid\":\"button_button--fluid__2MfZT\",\"button--disabled\":\"button_button--disabled__2EUOB\",\"loading-icon\":\"button_loading-icon__2znma\",\"spinner-border\":\"button_spinner-border__2Zo-k\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"field\":\"modal-field_field__37wZj\",\"align-start\":\"modal-field_align-start__12rSf\",\"align-center\":\"modal-field_align-center__PakDb\",\"align-end\":\"modal-field_align-end__1T883\",\"label\":\"modal-field_label__2aEmt\",\"bold\":\"modal-field_bold__3oHND\",\"input\":\"modal-field_input__EXZ46\",\"right\":\"modal-field_right__1nCa9\",\"one-column\":\"modal-field_one-column__3NIt0\",\"text-field\":\"modal-field_text-field__2QTXc\",\"error\":\"modal-field_error__2FnEe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header-wrapper\":\"dropdown_header-wrapper__2V8-S\",\"dropdown-item\":\"dropdown_dropdown-item__3yC-9\",\"dropdown-wrapper\":\"dropdown_dropdown-wrapper__2iDcK\",\"dropdown__item\":\"dropdown_dropdown__item__2NPuE\",\"items\":\"dropdown_items__Ubi86\",\"placeholder\":\"dropdown_placeholder__1G4Hp\",\"outline\":\"dropdown_outline__3uu28\",\"circular\":\"dropdown_circular__10M9s\",\"trigger\":\"dropdown_trigger__1tTES\",\"trigger__header\":\"dropdown_trigger__header__2iPtQ\",\"trigger__arrow\":\"dropdown_trigger__arrow__1kLSv\",\"open\":\"dropdown_open__2mxJI\",\"closed\":\"dropdown_closed__1vgCQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"default-checkbox\":\"new-checkbox_default-checkbox__2Nowv\",\"custom-label\":\"new-checkbox_custom-label__CPyAd\",\"reverse\":\"new-checkbox_reverse__2fdZf\",\"custom-checkbox\":\"new-checkbox_custom-checkbox__18HKH\",\"left\":\"new-checkbox_left__1qBq1\",\"right\":\"new-checkbox_right__3uuCy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"modal_modal__3cqrF\",\"overlay\":\"modal_overlay__1xAqU\",\"content\":\"modal_content__3idTA\",\"opened\":\"modal_opened__3ZCOt\",\"confirm\":\"modal_confirm__QkQir\",\"closing\":\"modal_closing__nb6Be\",\"header\":\"modal_header__zsnwb\",\"title\":\"modal_title__12C14\",\"close\":\"modal_close__Q7VW8\",\"body\":\"modal_body__1YDiG\",\"footer\":\"modal_footer__1XIr0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1CS6k\",\"title\":\"styles_title__N1Hx_\",\"circle\":\"styles_circle__32S6D\",\"content\":\"styles_content__2Gznv\",\"text\":\"styles_text__idHuI\",\"icon\":\"styles_icon__1uMHm\",\"active\":\"styles_active__3ecsv\",\"disabled\":\"styles_disabled__uOaJe\",\"no-ops\":\"styles_no-ops__2viTP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input-wrapper\":\"input_input-wrapper__2Ls4B\",\"icon\":\"input_icon__3p9Fu\",\"input\":\"input_input__1-u58\",\"custom-input\":\"input_custom-input__19iro\",\"input--bg\":\"input_input--bg__klxr8\",\"custom-input--bg\":\"input_custom-input--bg__kEBYb\",\"input--error\":\"input_input--error__1PMXS\",\"custom-input--error\":\"input_custom-input--error__1u3gc\",\"input--fluid\":\"input_input--fluid__wF1hK\",\"custom-input--fluid\":\"input_custom-input--fluid__3xHL0\",\"input--with-icon\":\"input_input--with-icon__XOc7R\",\"custom-input--with-icon\":\"input_custom-input--with-icon__2v-7W\",\"error-message\":\"input_error-message__1v7-x\",\"warning-message\":\"input_warning-message__2bavW\",\"readonly\":\"input_readonly__2N-wd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"modal-ui-popup_popup__fOLHn\",\"modal\":\"modal-ui-popup_modal__3yOra\",\"control\":\"modal-ui-popup_control__28l90\",\"search\":\"modal-ui-popup_search__3d6fv\",\"buttons\":\"modal-ui-popup_buttons__1Z42S\",\"list\":\"modal-ui-popup_list__3SLcI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"header_header__1YKW-\",\"menu\":\"header_menu__1kWAa\",\"page-title\":\"header_page-title__3hvei\",\"title-button\":\"header_title-button__1f5FW\",\"user-dropdown-header\":\"header_user-dropdown-header__1-TS5\",\"user-dropdown-header__user-name\":\"header_user-dropdown-header__user-name__3Imv5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__3QXE8\",\"version-date-wrapper\":\"styles_version-date-wrapper__1u62n\",\"title-description-wrapper\":\"styles_title-description-wrapper__1WsK6\",\"title\":\"styles_title__1Qs11\",\"description\":\"styles_description__1Mbmu\",\"open\":\"styles_open__n31S9\",\"changes-list\":\"styles_changes-list__MJNNI\",\"show-all\":\"styles_show-all__15NIz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"page\":\"page-layout_page__13GNH\",\"main-part\":\"page-layout_main-part__2gvtH\",\"content\":\"page-layout_content__3mO1N\",\"footer\":\"page-layout_footer__1mil3\",\"container\":\"page-layout_container__31xhe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"NewSelect\":\"NewSelect_NewSelect__1rnS3\",\"header\":\"NewSelect_header__b_soc\",\"popup\":\"NewSelect_popup__3tFrn\",\"empty-block\":\"NewSelect_empty-block__2_QvX\",\"body\":\"NewSelect_body__32iLi\",\"option\":\"NewSelect_option__2DqgC\",\"disabled\":\"NewSelect_disabled__DV9YJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__wUWcS\",\"pagination-wrapper\":\"styles_pagination-wrapper__3O89C\",\"controls\":\"styles_controls__1FFLu\",\"controls-arrows-wrapper\":\"styles_controls-arrows-wrapper__7QbaG\",\"size-selector\":\"styles_size-selector__hMpqe\",\"highlight\":\"styles_highlight__-EYkz\",\"total-count-wrapper\":\"styles_total-count-wrapper__WYWsR\",\"select\":\"styles_select__F-SQJ\",\"title\":\"styles_title__36FzU\"};","export const URL = {\n instructions:\n 'https://www.sdm.ru/upload/iblock/34f/34fe0d1854227318abe3d2ab0b65b3e9.pdf',\n receiptUrl: '/operation/sendreceipt',\n\n // user\n loginUrl: '/login',\n logoutUrl: '/logout',\n userInfoUrl: '/user/info',\n userActivationUrl: '/login/activation/:uid',\n userActivateUrl: '/user/password/activate',\n companyRolesUrl: '/user/company/roles',\n merchantCreateUsersUrl: '/user/add',\n merchantUpdateUsersUrl: '/user/update',\n getMerchantUserInfo: '/user/',\n merchantUserUrl: '/user/users',\n resetUserPasswordUrl: '/user/reset/',\n forgotPasswordPageUrl: '/login/forgot',\n forgotPasswordRequestUrl: '/user/password/forgot',\n changePasswordUrl: '/user/password/change',\n\n // operations\n operationsUrl: '/operation/page',\n operationDetailUrl: '/operation/one/',\n operationRevertUrl: '/operation/reverse/',\n operationsSBPUrl: '/operation-sbp/page',\n operationsSBPIdentificatorsUrl: 'operation-sbp/page/idnSbp',\n operationSBPDetailUrl: '/operation-sbp/one/',\n operationSBPRevertUrl: '/operation-sbp/reverse/',\n operationsFileDownloadUrl: '/operation/export/',\n operationsRcMessagesUrl: '/operation/rc-messages/',\n operationsSBPFileDownloadUrl: '/operation-sbp/export',\n operationsSBPRcMessagesUrl: '/operation-sbp/rc-messages/',\n\n // settlement\n settlementUrl: '/settlement/page',\n settlementDetailsUrl: '/settlement/one/',\n settlementDetailsSummaryUrl: '/settlement/summary/',\n settlementFileDownloadUrl: '/settlement/export/',\n settlementDetailFileDownloadUrl: '/settlement/export/detail/',\n\n // statistic\n mpsChartUrl: '/statistic/mps',\n conversionChartUrl: '/statistic/conversion',\n statisticTableUrl: '/statistic/common',\n declineChartUrl: '/statistic/rc',\n statisticFileDownloadUrl: '/statistic/common/export/',\n\n dynamicsChartUrl: '/dynamics',\n\n // terminal\n terminalsUrl: '/terminal/all',\n inactivePeriodPerDays: 'terminal/inactivePeriodPerDays',\n terminalInfo: 'terminal/info/',\n terminalPageGroupUrl: '/terminal/group/all',\n terminalPageAvailableGroups: '/terminal/groups/',\n terminalPageTerminalsUrl: '/terminal/page',\n terminalPageAddGroupUrl: '/terminal/group/add',\n terminalPageRemoveGroupUrl: '/terminal/group/remove',\n terminalPageUpdateGroupUrl: '/terminal/change-group',\n terminalPageSetGroupUrl: '/terminal/set-group',\n terminalInactiveRequest: '/terminal/inactive-terminal',\n\n /*ecomm*/\n /*cashboxes*/\n\n ecommCashboxes: '/cashbox/all',\n addEcommCashbox: '/cashbox/create/',\n getEcommCashbox: '/cashbox/info/',\n updateEcommCashbox: '/cashbox/update/',\n getCashboxAvailableFfd: '/cashbox/available-ffd',\n getCashboxRole: '/cashbox/role/',\n\n // support\n feedbackUrl: '/support/feedback',\n supportSubjects: '/support/subjects',\n bankSupportMsg: '/support/header',\n\n /*merchantkeys*/\n\n ecommKeys: '/ecommkey/all',\n getEcommKeyCashboxes: '/ecommkey/cashboxes/',\n getEcommKey: '/ecommkey/info/',\n updateEcommKey: '/ecommkey/update/',\n\n /*payments*/\n\n /*paymentsall*/\n\n payments: '/orderEcomm/all',\n\n /*payment*/\n payment: '/payment/',\n /*recipes of payments*/\n recipes: '/orderEcomm/info/',\n recipe: '/receipt/info/',\n\n /*schedules*/\n\n schedules: '/schedule/all',\n setSchedule: '/schedule/update',\n\n einvoiceAll: '/einvoice/all',\n einvoice: '/einvoice',\n einvoiceData: '/einvoice/data',\n einvoiceAdd: '/einvoice/add',\n einvoiceSend: '/einvoice/send/',\n einvoiceDelete: '/einvoice/delete/',\n einvoiceDownloadQrcUrl: '/einvoice/export-qr',\n\n // bank urls:\n reversal: '/reversal/all/',\n reversalExport: '/reversal/export/',\n companyCreateUsersUrl: '/company/user/create/',\n companyTerminalsUrl: '/company/terminals/',\n companyUsersUrl: '/company/users/',\n resetMerchantUserPassword: '/user/merchant/reset/',\n updateMerchantUserUrl: '/user/merchant/',\n merchantUserInfoUrl: '/user/merchant/',\n bankUpdateUsersUrl: '/user/update/',\n getBankUserInfo: '/user/',\n platformCashBoxOneUrl: '/cashbox/info/',\n updatePlatformCashBox: 'cashbox/update/',\n\n cashboxAll: '/cashbox/all/',\n addCashbox: '/cashbox/create/',\n updateCashbox: '/cashbox/update/',\n getaCashboxInfo: '/cashbox/info/',\n getEcommStatus: '/ecommkey/role/ecomm/info/',\n saveEcommStatus: '/ecommkey/role/ecomm/createOrDelete/',\n ecommkeyall: '/ecommkey/all/',\n addEcommkey: '/ecommkey/create/',\n updateEcommkey: '/ecommkey/update/',\n getEcommkeyInfo: '/ecommkey/info/',\n getEcommkeyCashboxes: '/ecommkey/cashbox/all/',\n userAttempts: '/user/merchant/attempts/',\n companyUrl: '/company',\n companyGroups: '/company/groups',\n companyRoles: '/company/roles',\n subCompanyUrl: '/company/subcompany/',\n subCompanySetUrl: '/company/subcompany/set',\n subCompanyRemoveUrl: '/company/subcompany/remove',\n companyFindSelectUrl: '/company/find',\n bankUserUrl: '/user/users',\n bankCreateUsersUrl: '/user/add',\n createPlatformCashBox: 'cashbox/create/platform',\n\n /*реестры платформы*/\n platformCashBoxUrl: '/cashbox/allCreatedByBank',\n\n /*кассы платформы в работе*/\n platformCashBoxErrorUrl: '/cashbox/errors',\n\n /*кассы тсп*/\n cashBoxes: 'ecommkey/all',\n\n /*реестры кассы*/\n cashBoxRegistries: '/cashbox/registry/allRegistersInCashboxOfBank',\n\n /*чеки*/\n\n cashBoxReceipt: '/receipt/getAllReceiptsOnIdRegistry',\n\n cashBoxReceiptInfo: '/receipt/getAllErrorsOnIdReceipt/',\n};\n\nexport const navRoutes = {\n statistic: '/statistic',\n dynamics: '/dynamics',\n inventory: '/inventory',\n settlement: '/settlement/',\n settlementLastUrl: '/settlement',\n settlementDate: '/settlement/:date',\n operations: '/operations/',\n operationLastUrl: '/operations',\n operationsId: '/operations/:id',\n operationsSBP: '/operations-sbp/',\n operationSBPLastUrl: '/operations-sbp',\n operationsSBPId: '/operations-sbp/:id',\n\n support: {\n root: '/support',\n faq: '/support/faq',\n main: '/support/main',\n system: '/support/system',\n },\n\n settings: '/settings/',\n settingsUser: '/settings/user',\n settingsUsers: '/settings/users',\n settingsTerminals: '/settings/terminals',\n ecomm: '/ecomm/',\n payments: '/payment/',\n paymentId: '/payment/:id',\n recipes: '/recipes/',\n einvoice: '/einvoice',\n einvoiceId: '/einvoice/:id',\n schedule: '/schedule',\n\n // bank navigation\n\n companyId: '/company/:id',\n company: '/company',\n users: '/users',\n cashBoxes: '/cashboxes',\n platformCashBox: '/cashbox/allCreatedByBank',\n platformErrorCashBox: '/cashbox/errors',\n registresOfCashbox: '/cashbox/registry/allRegistersInCashboxOfBank/:id',\n receiptsOfCashbox: '/receipt/getAllReceiptsOnIdRegistry/:id',\n groups: '/groups',\n settlementDateId: '/settlement/:date/:id',\n reversal: '/reversal',\n};\n","export const Errors = {\n DEFAULT: { title: '⛔ Ошибка', message: 'Обратитесь к администратору.' },\n SERVER_NOT_AVAILABLE: {\n title: '⛔ Сервер недоступен',\n message: 'Попробуйте через несколько минут.',\n },\n};\n","import moment from 'moment';\n\nexport function localSave(name, value) {\n localStorage.setItem(name, value);\n}\n\nexport function localSaveSerialize(name, value) {\n localStorage.setItem(name, JSON.stringify(value));\n}\n\nexport function localLoad(name, def) {\n let item = localStorage.getItem(name);\n return item ? parseFalsyValues(item) : parseFalsyValues(def);\n}\n\nexport function localLoadMoment(name, def) {\n let item = localStorage.getItem(name);\n if (item === 'null') {\n return null;\n }\n return item ? moment(Date.parse(item)) : def;\n}\n\nexport function localLoadInt(name, def) {\n let item = localStorage.getItem(name);\n return item ? parseInt(item, 10) : def;\n}\n\nexport function localLoadSerialize(name, def) {\n let item = localStorage.getItem(name);\n return item && item !== 'undefined'\n ? parseFalsyValues(JSON.parse(item))\n : parseFalsyValues(def);\n}\n\nexport function localLoadIntInArray(name, def) {\n let item = localStorage.getItem(name);\n return item ? [parseInt(item, 10)] : def;\n}\n\nfunction parseFalsyValues(string) {\n switch (string) {\n case 'undefined':\n case 'null':\n return '';\n default:\n return string;\n }\n}\n","export const operationStatuses = ['IN_PROCESS', 'CLOSED', 'SETTLED'];\n","export const operationTypes = [\n 'PAY',\n 'PRE_PAY',\n 'REVERSAL',\n 'PRE_REVERSAL',\n 'REFUND',\n];\n","export const LOG_IN = 'LOG_IN';\nexport const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS';\nexport const LOG_IN_FAILED = 'LOG_IN_FAILED';\n\nexport const ACTIVATE_USER_SUCCESS = 'ACTIVATE_USER_SUCCESS';\nexport const ACTIVATE_USER_FAILED = 'ACTIVATE_USER_FAILED';\n\nexport const GET_COMPANY_ROLES = 'GET_COMPANY_ROLES';\nexport const GET_COMPANY_ROLES_FAILED = 'GET_COMPANY_ROLES_FAILED';\nexport const GET_COMPANY_ROLES_SUCCESS = 'GET_COMPANY_ROLES_SUCCESS';\n\nexport const FORGOT_PASSWORD_USER_SUCCESS = 'FORGOT_PASSWORD_USER_SUCCESS';\nexport const FORGOT_PASSWORD_USER_FAILED = 'FORGOT_PASSWORD_USER_FAILED';\n\nexport const GET_USER_AFTER_LOGIN_ROLES_SUCCESS =\n 'GET_USER_AFTER_LOGIN_ROLES_SUCCESS';\nexport const LOG_OUT_AND_CLEAR_LOCAL = 'LOG_OUT_AND_CLEAR_LOCAL';\nexport const CHANGE_PASSWORD = 'CHANGE_PASSWORD';\nexport const CHANGE_PASSWORD_USER_EXPIRED = 'CHANGE_PASSWORD_USER_EXPIRED';\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\nexport const CHANGE_PASSWORD_FAILED = 'CHANGE_PASSWORD_FAILED';\n\nexport const TOGGLE_CHART = 'TOGGLE_CHART';\nexport const GET_MPS_CHARTS_SUCCESS = 'GET_MPS_CHARTS_SUCCESS';\nexport const GET_MPS_CHARTS_FAILED = 'GET_MPS_CHARTS_FAILED';\nexport const GET_DINAMIC_CHARTS_SUCCESS = 'GET_DINAMIC_CHARTS_SUCCESS';\nexport const GET_DINAMIC_CHARTS_FAIL = 'GET_DINAMIC_CHARTS_FAIL';\nexport const GET_DECLINE_CHARTS_SUCCESS = 'GET_DECLINE_CHARTS_SUCCESS';\nexport const GET_DECLINE_CHARTS_FAIL = 'GET_DECLINE_CHARTS_FAIL';\nexport const GET_CONVERSION_CHARTS_SUCCESS = 'GET_CHARTS';\nexport const GET_CONVERSION_CHARTS_FAIL = 'GET_CHARTS';\n\nexport const GET_OPERATION_DETAILS = 'GET_OPERATION_DETAILS';\nexport const GET_OPERATION_DETAILS_FAILED = 'GET_OPERATION_DETAILS_FAILED';\nexport const GET_OPERATION_DETAILS_SUCCESS = 'GET_OPERATION_DETAILS_SUCCESS';\nexport const CLEAR_OPERATION_DETAILS = 'CLEAR_OPERATION_DETAILS';\n\nexport const GET_OPERATION_SBP_DETAILS = 'GET_OPERATION_SBP_DETAILS';\nexport const CHANGE_OPERATION_SBP_DETAILS = 'CHANGE_OPERATION_SBP_DETAILS';\nexport const GET_OPERATION_SBP_DETAILS_FAILED =\n 'GET_OPERATION_SBP_DETAILS_FAILED';\nexport const GET_OPERATION_SBP_DETAILS_SUCCESS =\n 'GET_OPERATION_SBP_DETAILS_SUCCESS';\nexport const CLEAR_OPERATION_SBP_DETAILS = 'CLEAR_OPERATION_SBP_DETAILS';\n\nexport const GET_TABLES = 'GET_TABLES';\nexport const GET_TABLES_FAILED = 'GET_TABLES_FAILED';\n\nexport const GET_TERMINALS = 'GET_TERMINALS';\nexport const GET_TERMINALS_FAILED = 'GET_TERMINALS_FAILED';\nexport const SET_TERMINALS_INACTIVE_PERIOD_PER_DAYS =\n 'SET_TERMINALS_INACTIVE_PERIOD_PER_DAYS';\nexport const SET_TERMINAL_INACTIVE = 'SET_TERMINAL_INACTIVE';\nexport const SET_IDN_SBP = 'SET_IDN_SBP';\n\nexport const GET_RCMSG = 'GET_RCMSG';\nexport const GET_RCMSG_FAILED = 'GET_RCMSG_FAILED';\n\nexport const GET_SBP_RCMSG = 'GET_SBP_RCMSG';\nexport const GET_SBP_RCMSG_FAILED = 'GET_SBP_RCMSG_FAILED';\n\nexport const FETCH_START = 'FETCH_START';\nexport const FETCH_STOP = 'FETCH_STOP';\n\nexport const CHANGE_ROUTE = 'CHANGE_ROUTE';\n\nexport const CHANGE_START_DATE = 'CHANGE_START_DATE';\nexport const CHANGE_END_DATE = 'CHANGE_END_DATE';\n\n// pagination\nexport const SET_OFFSET = 'SET_OFFSET';\nexport const SET_PAGE_SIZE = 'SET_PAGE_SIZE';\nexport const GO_NEXT_PAGE = 'GO_NEXT_PAGE';\nexport const GO_PREVIOUS_PAGE = 'GO_PREVIOUS_PAGE';\nexport const SET_FILTERS = 'SET_FILTERS';\nexport const SET_TOTAL_COUNT_FOR_PAGINATION = 'SET_TOTAL_COUNT_FOR_PAGINATION';\nexport const SET_DATA_IS_FETCHING = 'SET_DATA_IS_FETCHING'\n\nexport const SET_NEEDS_UPDATE = 'SET_NEEDS_UPDATE';\nexport const RESET_TOKEN = 'RESET_TOKEN';\nexport const SET_PERSISTED_TABLE_DATA = 'SET_PERSISTED_TABLE_DATA';\n\nexport const SET_COMMON_TABLE_FILTERS = 'SET_COMMON_TABLE_FILTERS';\n","import * as type from '../constants';\nimport {\n localLoad,\n localLoadSerialize,\n localSave,\n localSaveSerialize,\n} from '../../shared/lib/localStorage';\n\nconst initState = {\n logged: !!localLoad('logged'),\n roles: localLoadSerialize('roles', []),\n assignedCompanies: localLoadSerialize('assignedCompanies', []),\n companyRoles: localLoadSerialize('companyRoles', []),\n fullName: localLoad('fullName', 'Пользователь'),\n id: localLoad('id'),\n cellPhone: localLoad('cellPhone'),\n email: localLoad('email'),\n companyId: localLoad('companyId'),\n companyName: localLoad('companyName'),\n submitted: false,\n};\n\nexport default function auth(state = initState, action) {\n switch (action.type) {\n case type.LOG_IN:\n return {\n ...state,\n submitted: true,\n };\n case type.LOG_IN_SUCCESS:\n updateStorage(true);\n return {\n ...state,\n };\n case type.LOG_IN_FAILED:\n return {\n ...state,\n logged: false,\n submitted: false,\n };\n case type.ACTIVATE_USER_SUCCESS:\n return {\n ...state,\n submitted: false,\n };\n case type.ACTIVATE_USER_FAILED:\n return {\n ...state,\n submitted: false,\n };\n case type.FORGOT_PASSWORD_USER_SUCCESS:\n return {\n ...state,\n submitted: false,\n };\n case type.FORGOT_PASSWORD_USER_FAILED:\n return {\n ...state,\n submitted: false,\n };\n case type.CHANGE_PASSWORD_USER_EXPIRED:\n localSave('email', action.payload);\n return {\n ...state,\n email: action.payload,\n };\n case type.GET_USER_AFTER_LOGIN_ROLES_SUCCESS:\n localSaveSerialize('roles', action.payload.roles);\n localSaveSerialize(\n 'assignedCompanies',\n action.payload.assignedCompanies\n );\n localSaveSerialize('companyRoles', action.payload.companyRoles);\n localSave('fullName', action.payload.fullName);\n localSave('id', action.payload.id);\n localSave('cellPhone', action.payload.cellPhone);\n localSave('email', action.payload.email);\n localSave('companyId', action.payload.companyId);\n localSave('companyName', action.payload.companyName);\n return {\n ...state,\n logged: true,\n submitted: false,\n id: action.payload.id,\n cellPhone: action.payload.cellPhone,\n email: action.payload.email,\n roles: action.payload.roles,\n assignedCompanies: action.payload.assignedCompanies,\n fullName: action.payload.fullName,\n companyId: action.payload.companyId,\n companyName: action.payload.companyName,\n companyRoles: action.payload.companyRoles,\n };\n case type.LOG_OUT_AND_CLEAR_LOCAL:\n cleanStorage();\n return {\n ...state,\n logged: false,\n };\n case type.CHANGE_PASSWORD:\n return {\n ...state,\n submitted: true,\n };\n case type.CHANGE_PASSWORD_SUCCESS:\n return {\n ...state,\n submitted: false,\n };\n case type.CHANGE_PASSWORD_FAILED:\n return {\n ...state,\n error: action.error,\n submitted: false,\n };\n default:\n return state;\n }\n}\n\nfunction updateStorage(logged) {\n localSave('logged', logged);\n}\n\nfunction cleanStorage() {\n localStorage.clear();\n}\n","import * as type from '../constants';\nimport { localSaveSerialize } from 'src/shared/lib/localStorage';\n\nconst initState = {\n terminals: [],\n rcMsg: [],\n idnSbp: [],\n inactive: false,\n};\n\nexport default function terminals(state = initState, action) {\n switch (action.type) {\n case type.GET_TERMINALS:\n return {\n ...state,\n terminals: action.payload,\n };\n\n case type.GET_RCMSG:\n localSaveSerialize('rcMsg', action.payload);\n return {\n ...state,\n rcMsg: action.payload,\n };\n\n case type.SET_TERMINAL_INACTIVE:\n return {\n ...state,\n inactive: action.payload,\n };\n\n case type.SET_TERMINALS_INACTIVE_PERIOD_PER_DAYS:\n return {\n ...state,\n inactivePeriodPerDays: action.payload,\n };\n\n case type.SET_IDN_SBP:\n return {\n ...state,\n idnSbp: action.payload\n }\n\n default:\n return state;\n }\n}\n","import * as type from '../constants';\nimport { GET_DECLINE_CHARTS_FAIL, GET_MPS_CHARTS_FAILED } from '../constants';\n\nconst initState = {\n conversion: null,\n failureCodes: null,\n mps: null,\n dynamic: null,\n toggle: 'count',\n};\n\nexport default function charts(state = initState, action) {\n switch (action.type) {\n case type.GET_CONVERSION_CHARTS_SUCCESS:\n return {\n ...state,\n conversion: action.payload,\n };\n case type.GET_MPS_CHARTS_SUCCESS:\n return {\n ...state,\n mps: action.payload,\n };\n case type.GET_DECLINE_CHARTS_SUCCESS:\n return {\n ...state,\n failureCodes: action.payload,\n };\n case type.GET_DINAMIC_CHARTS_SUCCESS:\n return {\n ...state,\n dynamic: action.payload,\n };\n case type.TOGGLE_CHART:\n return {\n ...state,\n toggle: action.toggle,\n };\n case type.GET_CONVERSION_CHARTS_FAIL ||\n type.GET_DINAMIC_CHARTS_FAIL ||\n GET_DECLINE_CHARTS_FAIL ||\n GET_MPS_CHARTS_FAILED:\n return {\n ...state,\n };\n default:\n return state;\n }\n}\n","import * as type from '../constants';\n\nconst initState = {\n detail: {},\n};\n\nexport default function charts(state = initState, action) {\n switch (action.type) {\n case type.GET_OPERATION_DETAILS:\n return {\n ...state,\n };\n case type.GET_OPERATION_DETAILS_FAILED:\n return {\n ...state,\n error: action.payload,\n };\n case type.GET_OPERATION_DETAILS_SUCCESS:\n return {\n ...state,\n detail: action.payload,\n };\n case type.CLEAR_OPERATION_DETAILS:\n return {\n ...state,\n detail: {},\n };\n default:\n return state;\n }\n}\n","import * as type from '../constants';\n\nconst initState = {\n fetch: false,\n route: ['', ''],\n};\n\nexport default function fetch(state = initState, action) {\n switch (action.type) {\n case type.FETCH_START:\n return {\n ...state,\n fetch: state.fetch + 1,\n };\n case type.FETCH_STOP:\n return {\n ...state,\n fetch: state.fetch > 0 ? state.fetch - 1 : 0,\n };\n case type.CHANGE_ROUTE:\n return {\n ...state,\n route: [state.route[1], action.path],\n };\n default:\n return state;\n }\n}\n","import * as type from '../constants';\n\nconst initState = {\n companyRoles: [],\n};\n\nexport default function settings(state = initState, action) {\n switch (action.type) {\n case type.GET_COMPANY_ROLES:\n return {\n ...state,\n };\n case type.GET_COMPANY_ROLES_SUCCESS:\n return {\n ...state,\n companyRoles: action.payload,\n };\n case type.GET_COMPANY_ROLES_FAILED:\n return {\n ...state,\n error: action.error,\n };\n default:\n return state;\n }\n}\n","import * as type from '../constants';\n\nconst initState = {};\n\nexport default function table(state = initState, action) {\n switch (action.type) {\n case type.SET_TOTAL_COUNT_FOR_PAGINATION: {\n const { tableId, totalCountForPagination } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n totalCountForPagination: totalCountForPagination,\n };\n\n return newState;\n }\n\n case type.SET_PAGE_SIZE: {\n const { tableId, pageSize } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n pageSize: pageSize,\n };\n\n return newState;\n }\n\n case type.SET_OFFSET: {\n const { tableId, offset } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n offset: offset,\n };\n\n return newState;\n }\n\n case type.GO_NEXT_PAGE: {\n const { tableId } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n offset: newState[tableId].offset + newState[tableId].pageSize,\n };\n\n return {\n ...newState,\n };\n }\n\n case type.GO_PREVIOUS_PAGE: {\n const { tableId } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n offset:\n newState[tableId].offset - newState[tableId].pageSize > 0\n ? newState[tableId].offset - newState[tableId].pageSize\n : 0,\n };\n\n return {\n ...newState,\n };\n }\n\n case type.SET_FILTERS: {\n const { tableId, filters } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n filters: {\n ...(newState[tableId]?.filters &&\n newState[tableId].filters),\n ...filters,\n },\n };\n\n return {\n ...newState,\n };\n }\n\n case type.CHANGE_START_DATE: {\n const { tableId, startDate } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n startDate: startDate,\n };\n\n return newState;\n }\n\n case type.CHANGE_END_DATE: {\n const { tableId, endDate } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n endDate: endDate,\n };\n\n return newState;\n }\n\n case type.SET_NEEDS_UPDATE: {\n const { tableId, needsUpdate, findAll } = action.payload;\n const newState = { ...state };\n\n if (findAll) {\n Object.keys(newState).forEach((key) => {\n if (key.startsWith(tableId)) {\n newState[key] = {\n ...newState[key],\n needsUpdate,\n };\n }\n });\n } else {\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n needsUpdate,\n };\n }\n\n return newState;\n }\n\n case type.SET_PERSISTED_TABLE_DATA: {\n const { tableId, tableData } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n tableData,\n };\n\n return newState;\n }\n\n case type.SET_COMMON_TABLE_FILTERS: {\n const { commonFilters } = action.payload;\n const newState = { ...state };\n newState.commonFilters = {\n ...newState.commonFilters,\n ...commonFilters,\n };\n\n return newState;\n }\n\n case type.SET_DATA_IS_FETCHING: {\n const { tableId, fetching } = action.payload;\n const newState = { ...state };\n newState[tableId] = {\n ...(newState[tableId] && newState[tableId]),\n fetching,\n };\n\n return newState;\n }\n\n default:\n return state;\n }\n}\n","import * as type from '../constants';\nimport axios from 'axios';\n\nconst initState = {\n token: axios.CancelToken.source(),\n};\n\nexport default function requestCancelation(state = initState, action) {\n switch (action.type) {\n case type.RESET_TOKEN:\n return {\n ...state,\n token: axios.CancelToken.source(),\n };\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\n\nimport auth from './auth';\nimport terminals from './terminals';\nimport { reducer as notificationsReducer } from 'react-notification-system-redux';\nimport { reducer as formReducer } from 'redux-form';\nimport charts from './charts';\nimport operation from './operation';\nimport fetch from './fetch';\nimport settings from './settings';\nimport table from './table';\nimport requestCancelation from './requestCancelation';\n\nconst reducers = combineReducers({\n notifications: notificationsReducer,\n form: formReducer,\n auth,\n terminals,\n charts,\n operation,\n fetch,\n settings,\n table,\n requestCancelation,\n});\n\nexport default reducers;\n","import { applyMiddleware, createStore } from 'redux';\n// eslint-disable-next-line no-unused-vars\nimport createLogger from 'redux-logger';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport reducers from '../redux/reducers/reducers';\nimport thunkMiddleware from 'redux-thunk';\nimport { LOG_OUT_AND_CLEAR_LOCAL } from '../redux/constants';\n\nconst middleware = [];\n\n// if (process.env.NODE_ENV === 'development') {\n// middleware.push(thunkMiddleware, createLogger);\n// } else {\nmiddleware.push(thunkMiddleware);\n// }\n\nconst rootReducer = (state, action) => {\n if (action.type === LOG_OUT_AND_CLEAR_LOCAL) {\n state = undefined;\n }\n return reducers(state, action);\n};\n\nconst store = createStore(\n rootReducer,\n composeWithDevTools(applyMiddleware(...middleware))\n);\n\nexport default store;\n","import Notifications from 'react-notification-system-redux';\nimport { ReplaySubject } from 'rxjs/internal/ReplaySubject';\nimport { debounceTime } from 'rxjs/operators';\n\nconst subject = new ReplaySubject(1);\n\nsubject.pipe(debounceTime(300)).subscribe((event) => {\n if (event.template.autoDismiss === undefined) {\n event.template.autoDismiss = 5;\n }\n event.dispatch(Notifications.removeAll());\n event.dispatch(Notifications.show(event.template, event.type));\n});\n\nexport function createNotification(template, type) {\n return (dispatch) => subject.next({ dispatch, template, type });\n}\n","import * as type from '../constants';\n\nexport function fetchStart() {\n return (dispatch) => {\n dispatch({ type: type.FETCH_START });\n };\n}\n\nexport function fetchStop() {\n return (dispatch) => {\n dispatch({ type: type.FETCH_STOP });\n };\n}\n","import React from 'react';\nimport moment from 'moment';\n\nimport store from '../../store';\nimport { Roles } from 'src/app/config';\nimport { getAppTitle } from 'src/shared/lib';\n\nexport const formatDate = (date) => {\n return date ? moment(date).format(' YYYY-MM-DD HH:mm') : date;\n};\n\nexport const formatDateOnly = (date) => {\n return date ? moment(date).format('YYYY-MM-DD') : date;\n};\n\nexport const formatDateForInput = (date) => {\n return date ? moment(date).format('DD.MM.YYYY') : date;\n};\n\nexport function addDays(date, days) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n}\n\nexport const timeZoneOptions = [\n { value: '-12', text: '(GMT-12:00) Международная Дата Линии Запад' },\n { value: '-11', text: '(GMT-11:00) Мидуэй, Самоа' },\n { value: '-10', text: '(GMT-10:00) Гавайи' },\n { value: '-9', text: '(GMT-09:00) Аляска' },\n { value: '-8', text: '(GMT-08:00) Тихоокеанское время (США и Канада)' },\n { value: '-8', text: '(GMT-08:00) Тихуана, Нижняя Калифорния' },\n { value: '-7', text: '(GMT-07:00) Аризона' },\n { value: '-7', text: '(GMT-07:00) Чихуахуа, Ла Пас, Мазатлан' },\n { value: '-7', text: '(GMT-07:00) Горное время (США и Канада)' },\n { value: '-6', text: '(GMT-06:00) Центральная Америка' },\n { value: '-6', text: '(GMT-06:00) Центральное время (США и Канада)' },\n { value: '-6', text: '(GMT-06:00) Гвадалахара, Мехико, Монтеррей' },\n { value: '-6', text: '(GMT-06:00) Саскачеван' },\n { value: '-5', text: '(GMT-05:00) Богота, Лима, Кито, Риу-Бранку' },\n { value: '-5', text: '(GMT-05:00) Восточное время (США и Канада)' },\n { value: '-5', text: '(GMT-05:00) Индиана (Восток)' },\n { value: '-4', text: '(GMT-04:00) Атлантическое время (Канада)' },\n { value: '-4', text: '(GMT-04:00) Каракас, Ла-Пас' },\n { value: '-4', text: '(GMT-04:00) Манаус' },\n { value: '-4', text: '(GMT-04:00) Сантьяго' },\n { value: '-3.5', text: '(GMT-03:30) Ньюфаундленд' },\n { value: '-3', text: '(GMT-03:00) Бразилиа' },\n { value: '-3', text: '(GMT-03:00) Буэнос-Айрес, Джорджтаун' },\n { value: '-3', text: '(GMT-03:00) Гренландия' },\n { value: '-3', text: '(GMT-03:00) Монтевидео' },\n { value: '-2', text: '(GMT-02:00) Среднеатлантическое время' },\n { value: '-1', text: '(GMT-01:00) Кабо-Верде' },\n { value: '-1', text: '(GMT-01:00) Азорские острова' },\n { value: '0', text: '(GMT+00:00) Касабланка, Монровия, Рейкьявик' },\n {\n value: '0',\n text: '(GMT+00:00) Среднее время по Гринвичу: Дублин, Эдинбург, Лиссабон, Лондон',\n },\n {\n value: '+1',\n text: '(GMT+01:00) Амстердам, Берлин, Берн, Рим, Стокгольм, Вена ',\n },\n {\n value: '+1',\n text: '(GMT+01:00) Белград, Братислава, Будапешт, Любляна, Прага',\n },\n { value: '+1', text: '(GMT+01:00) Брюссель, Копенгаген, Мадрид, Париж' },\n { value: '+1', text: '(GMT+01:00) Сараево, Скопье, Варшава, Загреб' },\n { value: '+1', text: '(GMT+01:00) Западная Центральная Африка' },\n { value: '+2', text: '(GMT+02:00) Амман' },\n { value: '+2', text: '(GMT+02:00) Афины, Бухарест, Стамбул' },\n { value: '+2', text: '(GMT+02:00) Бейрут' },\n { value: '+2', text: '(GMT+02:00) Каир' },\n { value: '+2', text: '(GMT+02:00) Хараре, Претория' },\n {\n value: '+2',\n text: '(GMT+02:00) Хельсинки, Киев, Рига, София, Таллин, Вильнюс',\n },\n { value: '+2', text: '(GMT+02:00) Иерусалим' },\n { value: '+2', text: '(GMT+02:00) Минск' },\n { value: '+2', text: '(GMT+02:00) Виндхук' },\n { value: '+3', text: '(GMT+03:00) Москва, Санкт-Петербург' },\n { value: '+3', text: '(GMT+03:00) Кувейт, Эр-Рияд, Багдад' },\n { value: '+3', text: '(GMT+03:00) Найроби' },\n { value: '+3', text: '(GMT+03:00) Тбилиси' },\n { value: '+3.5', text: '(GMT+03:30) Тегеран' },\n { value: '+4', text: '(GMT+04:00) Абу-Даби,Маскат' },\n { value: '+4', text: '(GMT+04:00) Баку' },\n { value: '+4', text: '(GMT+04:00) Ереван' },\n { value: '+4.5', text: '(GMT+04:30) Кабул' },\n { value: '+5', text: '(GMT+05:00) Екатеринбург' },\n { value: '+5', text: '(GMT+05:00) Исламабад, Карачи, Ташкент' },\n { value: '+5.5', text: '(GMT+05:30) Шри Джаяварденапура' },\n { value: '+5.5', text: '(GMT+05:30) Ченнаи, Калькутта, Мумбаи, Нью-Дели' },\n { value: '+5.7', text: '(GMT+05:45) Катманду' },\n { value: '+6', text: '(GMT+06:00) Алматы, Новосибирск' },\n { value: '+6', text: '(GMT+06:00) Астана, Дакка' },\n { value: '+6.5', text: '(GMT+06:30) Янгон (Рангун)' },\n { value: '+7', text: '(GMT+07:00) Бангкок, Ханой, Джакарта' },\n { value: '+7', text: '(GMT+07:00) Красноярск' },\n { value: '+8', text: '(GMT+08:00) Пекин, Чунцин, Гонконг, Урумчи' },\n { value: '+8', text: '(GMT+08:00) Куала Лумпур, Сингапур' },\n { value: '+8', text: '(GMT+08:00) Иркутск, Улан-Батаар' },\n { value: '+8', text: '(GMT+08:00) Перт' },\n { value: '+8', text: '(GMT+08:00) Таипеи' },\n { value: '+9', text: '(GMT+09:00) Осака, Саппоро, Токио' },\n { value: '+9', text: '(GMT+09:00) Сеул' },\n { value: '+9', text: '(GMT+09:00) Якутск' },\n { value: '+9.5', text: '(GMT+09:30) Аделаида' },\n { value: '+9.5', text: '(GMT+09:30) Дарвин' },\n { value: '+10', text: '(GMT+10:00) Брисбейн' },\n { value: '+10', text: '(GMT+10:00) Канберра, Мельбурн, Сидней' },\n { value: '+10', text: '(GMT+10:00) Хобарт' },\n { value: '+10', text: '(GMT+10:00) Гуам, Порт-Морсби' },\n { value: '+10', text: '(GMT+10:00) Владивосток' },\n {\n value: '+11',\n text: '(GMT+11:00) Магадан, Соломоновы Острова, Новые Каледони',\n },\n { value: '+12', text: '(GMT+12:00) Окленд, Веллингтон' },\n { value: '+12', text: '(GMT+12:00) Фиджи, Камчатка, Маршалловы Острова' },\n { value: '+13', text: \"(GMT+13:00) Нуку'алофа\" },\n];\n\nexport function isPermit(role = '') {\n if (getAppTitle() === 'bank') {\n return (\n store.getState().auth.roles.includes(Roles.ADMIN) ||\n store.getState().auth.roles.includes(role)\n );\n }\n return (\n isAdmin(store.getState().auth.roles) ||\n (store.getState().auth.companyRoles.includes(role) &&\n store.getState().auth.roles.includes(role))\n );\n}\n\nexport function isAdmin(roles) {\n return roles.includes(Roles.ADMIN);\n}\n\nexport function getClassName(name, postFix) {\n return postFix ? `${name}-${postFix}` : name;\n}\n\nexport function sendToSubject(message) {\n if (this.props.subject) this.props.subject.next(message);\n}\n\nexport function log(message) {\n if (process.env.NODE_ENV === 'development') console.log(message);\n}\n\nexport function isEmptyObj(obj) {\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) return false;\n }\n return true;\n}\n\nexport function ticksFormatter(value) {\n if (typeof value === 'string')\n return !this.props.toggle\n ? parseFloat(value)\n .toFixed(2)\n .replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') + ' ₽'\n : checkFloor(value);\n return !this.props.toggle\n ? value.toFixed(0).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') + ' ₽'\n : checkFloor(value);\n}\n\nexport function ticksMpsFormatter(value) {\n if (typeof value === 'string')\n return !this.props.toggle\n ? parseFloat(value)\n .toFixed(2)\n .replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') + ' ₽'\n : value;\n return !this.props.toggle\n ? value.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') + ' ₽'\n : value;\n}\n\nexport function roleNameMapper(role) {\n return {\n ADMIN: 'Администратор',\n COMPANY_INFO: 'Управление ТСП',\n USER_MANAGEMENT: 'Управление пользователями',\n OPERATIONS: 'Операции',\n CASHBOX: 'Реестры ПЛАТ-ФОРМЫ',\n SETTLEMENT: 'Возмещение',\n REFUND: 'Возврат',\n SETTING_TERMINAL: 'Управление терминалами',\n SETTING_USER: 'Управление пользователями',\n STATISTIC: 'Статистика',\n DYNAMIC: 'Динамика',\n OPERATIONS_SBP: 'Операции СБП',\n ECOMM: 'Электронная коммерция',\n EINVOICE: 'Электронные счета',\n SCHEDULE: 'Подписки',\n }[role];\n}\n\nexport function operationStatusMapper(status) {\n return {\n IN_PROCESS: 'Авторизована',\n CLOSED: 'Подтверждена',\n SETTLED: 'Взаиморасчет',\n }[status];\n}\n\nexport function operationTypeMapper(type) {\n return {\n PAY: 'Покупка',\n PRE_PAY: 'Предавторизация',\n REVERSAL: 'Отмена',\n PRE_REVERSAL: 'Отмена предавторизации',\n REFUND: 'Возврат',\n }[type];\n}\n\nexport function isMobileWidth() {\n return document.body.offsetWidth < 840;\n}\n\nfunction checkFloor(value) {\n if (Math.floor(value) === value) {\n return value;\n }\n}\n\n/* validations */\n\nexport const validateEmail = (email) => {\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n};\n\nexport function statusNameMapper(status, lang) {\n return {\n en: {\n Активно: 'Active',\n Выключено: 'Disabled',\n },\n ru: {\n Active: 'Активно',\n Disabled: 'Выключено',\n },\n }[lang][status];\n}\n\nexport const einvoiceDelCases = ['Отправлен', 'Создан', 'Не удалось отправить'];\n\nexport const einvoiceSendCases = ['Оплачен', 'Истек срок'];\n\nexport const einvoiceQrcEmptyCase = (qrcType) => qrcType !== 'Статический';\n\nexport const einvoiceStaticDownloadCase = (qrcType, status) =>\n status !== 'Истек срок' && qrcType === 'Статический';\n\nexport const unavailablePageMsg = (\n \n

\n Новый сервис электронной торговли от СДМ-Банка – это простой и\n быстрый способ выхода вашего бизнеса в онлайн.\n

\n

\n Теперь нет необходимости создавать или дорабатывать свой сайт,\n нанимать программистов и получать лицензии.\n

\n

\n Способ оплаты, который выведет ваш бизнес в интернет быстро и просто\n – платёжная ссылка.\n

\n

\n Для подключения этого инструмента нужно отправить заявку через ваш\n Личный кабинет.\n

\n

Всё остальное сделает сервис электронной торговли от СДМ-Банка.

\n

\n Подробную информацию вы можете получить по телефону{' '}\n 8 800 200 02 23 или по электронной\n почте sdm@sdm.ru.\n

\n
\n);\n\nexport const PaymentTypeOptions = (\n hasSbpAndCardPaymentOptions = true,\n ecomKeys\n) => {\n let resultOption = [\n {\n id: 0,\n value: ['CARD'],\n text: 'Оплата Картой',\n },\n {\n id: 1,\n value: ['SBP'],\n text: 'Оплата через СБП',\n },\n ...(hasSbpAndCardPaymentOptions\n ? [\n {\n id: 2,\n value: 'CARD,SBP',\n text: 'Оплата Картой и СБП',\n },\n ]\n : []),\n ];\n resultOption = resultOption.filter((option) => {\n const valueArr = Array.isArray(option.value)\n ? option.value\n : option.value.split(',');\n return valueArr.every(\n (value) =>\n ecomKeys?.findIndex((key) => key.paymentType.includes(value)) >=\n 0\n );\n });\n if (resultOption?.length) {\n return resultOption;\n }\n\n return [\n {\n id: 0,\n value: ['CARD'],\n text: 'Оплата Картой',\n },\n {\n id: 1,\n value: ['SBP'],\n text: 'Оплата через СБП',\n },\n ...(hasSbpAndCardPaymentOptions\n ? [\n {\n id: 2,\n value: 'CARD,SBP',\n text: 'Оплата Картой и СБП',\n },\n ]\n : []),\n ];\n};\nexport const PaymentCardTypeOptions = (ecomKeys) => {\n const cardExist =\n ecomKeys.findIndex((key) => key.paymentType.includes('CARD')) >= 0;\n return cardExist\n ? [\n {\n id: 0,\n value: ['CARD'],\n text: 'Оплата Картой',\n },\n ]\n : [];\n};\n\nexport const getBankPaymentTypeOptions = () => {\n return [\n {\n id: 0,\n value: ['SBP'],\n text: 'Оплата через СБП',\n },\n ];\n};\n\nexport const PaymentTypeFilterOptions = [\n {\n id: 0,\n value: 'CARD',\n text: 'Картой',\n },\n {\n id: 1,\n value: 'SBP',\n text: 'Через СБП',\n },\n {\n id: 2,\n value: 'MIR_PAY',\n text: 'Через Mir Pay',\n },\n];\n\nexport const QRCodeTypeOptions = [\n {\n id: 0,\n value: '01',\n text: 'Статический',\n },\n {\n id: 1,\n value: '02',\n text: 'Динамический',\n },\n];\n\nexport const BankQRCodeTypeOptions = [\n {\n id: 0,\n value: '01',\n text: 'Статический',\n },\n];\n\nexport const OperationSBPTypeOptions = [\n {\n id: 1,\n value: 'PAYMENT',\n text: 'Оплата',\n },\n {\n id: 2,\n value: 'REFUND',\n text: 'Возврат',\n },\n];\n","import axios from 'axios';\nimport store from '../../store';\nimport { LOG_OUT_AND_CLEAR_LOCAL } from '../../redux/constants';\nimport { createNotification } from '../../redux/actions/notification';\nimport { fetchStart, fetchStop } from '../../redux/actions/fetch';\nimport { Errors } from './ErrorTypes';\nimport { log } from './util';\n\nconst baseURL = '/';\nconst client = axios.create({\n withCredentials: true,\n baseURL,\n});\n\nconst success = (response, resolve) => {\n store.dispatch(fetchStop());\n resolve(response);\n};\n\nconst fail = (response, reject) => {\n store.dispatch(fetchStop());\n\n if (axios.isCancel(response)) {\n log(response?.message);\n reject(response?.message || 'request canceled');\n return;\n }\n\n if (response.response.status === 401) {\n store.dispatch({ type: LOG_OUT_AND_CLEAR_LOCAL });\n }\n if (response.response.status === 500) {\n store.dispatch(\n createNotification(\n {\n autoDismiss: 60,\n ...{\n ...Errors.DEFAULT,\n message:\n response.response.data.message ||\n Errors.SERVER_NOT_AVAILABLE.title,\n },\n },\n 'error'\n )\n );\n reject(response.response);\n }\n if (response.response.status > 500) {\n store.dispatch(\n createNotification(\n {\n ...Errors.SERVER_NOT_AVAILABLE,\n },\n 'error'\n )\n );\n store.dispatch({ type: LOG_OUT_AND_CLEAR_LOCAL });\n }\n reject(response.response);\n};\nconst addApiPrefix = (url) => ('/api/' + url).replace('//', '/');\n\nexport function post(url, params = {}, headers = {}, cancelToken) {\n return new Promise((resolve, reject) => {\n store.dispatch(fetchStart());\n return client\n .post(addApiPrefix(url), params, {\n ...headers,\n cancelToken: cancelToken?.token,\n })\n .then((response) => success(response, resolve))\n .catch((response) => fail(response, reject));\n });\n}\n\nexport function get(url) {\n return new Promise((resolve, reject) => {\n store.dispatch(fetchStart());\n return client\n .get(addApiPrefix(url))\n .then((response) => success(response, resolve))\n .catch((response) => fail(response, reject));\n });\n}\n","const rusDate = {\n month: [\n 'Январь',\n 'Февраль',\n 'Март',\n 'Апрель',\n 'Май',\n 'Июнь',\n 'Июль',\n 'Август',\n 'Сентябрь',\n 'Октябрь',\n 'Ноябрь',\n 'Декабрь',\n ],\n};\n\nexport { rusDate };\n","let timeoutId\n\nconst renderCustomTooltip = (context, renderFunction: (context) => string) => {\n // Tooltip Element\n let tooltipEl = document.getElementById('chartjs-tooltip');\n // Create element on first render\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n tooltipEl.id = 'chartjs-tooltip';\n tooltipEl.innerHTML = '
';\n document.body.appendChild(tooltipEl);\n }\n\n if (timeoutId) clearTimeout(timeoutId);\n\n timeoutId = setTimeout(() => {\n tooltipEl?.remove();\n }, 2_000);\n\n // Hide if no tooltip\n const tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.style.opacity = '0';\n return;\n }\n // Set caret Position\n tooltipEl.classList.remove('above', 'below', 'no-transform');\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add('no-transform');\n }\n\n let innerHtml = renderFunction(context);\n let tableRoot = tooltipEl.querySelector('table');\n if (tableRoot) {\n tableRoot.innerHTML = innerHtml;\n }\n\n // Display, position, and set styles for font\n const position = context.chart.canvas.getBoundingClientRect();\n\n tooltipEl.style.opacity = '1';\n tooltipEl.style.backgroundColor = '#fff';\n tooltipEl.style.boxShadow = '0px 4px 12px rgba(0, 0, 0, 0.15)';\n tooltipEl.style.borderRadius = '6px';\n tooltipEl.style.zIndex = '1';\n tooltipEl.style.padding = '16px 18px';\n tooltipEl.style.position = 'absolute';\n if (tooltipModel.caretX + tooltipModel.width + 100 > window.innerWidth) {\n tooltipEl.style.left =\n position.left + window.pageXOffset + tooltipModel.caretX - tooltipModel.width + 'px';\n } else {\n tooltipEl.style.left =\n position.left + window.pageXOffset + tooltipModel.caretX + 'px';\n }\n tooltipEl.style.top =\n position.top + window.pageYOffset + tooltipModel.caretY + 'px';\n tooltipEl.style.font = 'Open Sans, sans-serif';\n tooltipEl.style.padding =\n tooltipModel.padding + 'px ' + tooltipModel.padding + 'px';\n tooltipEl.style.pointerEvents = 'none';\n};\n\nexport { renderCustomTooltip };\n","import moment from 'moment';\nimport {\n localLoad,\n localLoadIntInArray,\n localLoadMoment,\n localLoadSerialize,\n} from './localStorage';\nimport { getClassName } from './util';\n\nconst getInitialValue = (\n key: 'startDate' | 'endDate' | 'searchQuery' | 'companyIds' | string\n) => {\n switch (key) {\n case 'startDate':\n return moment(new Date()).add(-7, 'days');\n case 'endDate':\n return moment(new Date());\n case 'searchQuery':\n return '';\n default:\n return [];\n }\n};\n\nconst getInitialFilter = (fields: string[], pageTitle: string) => {\n let initialFilter = {};\n ['startDate', 'endDate', ...fields].forEach((field) => {\n let key = getClassName(pageTitle, field);\n switch (field) {\n case 'startDate':\n case 'endDate':\n initialFilter[field] = localLoadMoment(\n key,\n getInitialValue(field)\n );\n break;\n case 'searchQuery':\n initialFilter[field] = localLoad(key, getInitialValue(field));\n break;\n case 'companyIds':\n initialFilter[field] = localLoadIntInArray(\n getClassName(pageTitle, 'companySelectId'),\n getInitialValue(field)\n );\n break;\n case 'qrcTypes': {\n const localValue = localLoad(\n getClassName(pageTitle, 'qrcTypes'),\n getInitialValue(field)\n );\n\n initialFilter[field] = localValue;\n break;\n }\n case 'operationTypes': {\n const localValue = localLoad(\n getClassName(pageTitle, 'operationTypes'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string' && localValue !== ''\n ? localValue.split(',')\n : [];\n\n break;\n }\n case 'companyTerminalIds': {\n const localValue = localLoad(\n getClassName(pageTitle, 'companyTerminalIds'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string'\n ? localValue.split(',')\n : localValue;\n\n break;\n }\n\n case 'operationStatuses': {\n const localValue = localLoad(\n getClassName(pageTitle, 'operationStatuses'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string' && localValue !== ''\n ? localValue.split(',')\n : [];\n\n break;\n }\n case 'responseMessages': {\n const localValue = localLoad(\n getClassName(pageTitle, 'responseMessages'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string' && localValue !== ''\n ? localValue.split(',')\n : [];\n\n break;\n }\n\n case 'merchantIds': {\n const localValue = localLoad(\n getClassName(pageTitle, 'merchantIds'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string' && localValue !== ''\n ? localValue.split(',')\n : [];\n\n break;\n }\n\n case 'terminalIds': {\n const localValue = localLoad(\n getClassName(pageTitle, 'terminalIds'),\n getInitialValue(field)\n );\n\n initialFilter[field] =\n typeof localValue === 'string'\n ? localValue.split(',').map((value) => Number(value))\n : localValue;\n\n break;\n }\n\n default:\n initialFilter[field] = localLoadSerialize(\n key,\n getInitialValue(field)\n );\n break;\n }\n });\n\n return initialFilter;\n};\n\nexport { getInitialFilter };\n","const getAppTitle = () => {\n return process.env.REACT_APP_TITLE || 'merchant';\n};\n\nexport { getAppTitle };\n","export type Mods = Record;\n\nexport function classNames(\n className: string,\n mods: Mods = {},\n additional: Array = []\n): string {\n return [\n className,\n ...additional.filter(Boolean),\n ...Object.entries(mods)\n .filter(([_, value]) => Boolean(value))\n .map(([className]) => className),\n ].join(' ');\n}\n","export function sortArray(array: T[], order: number[]): T[] {\n const result: T[] = [];\n array.forEach((item, key) => {\n result[order[key]] = item;\n });\n return result;\n}\n","interface SelectOption {\n value: string;\n content: string;\n}\n\ntype GetOptionsForSelect = (\n array: Array,\n valueKey?: string,\n contentKey?: string\n) => SelectOption[];\n\n/**\n * Функция возвращает готовый массив для использования в качестве пропса options в компоненте Select\n * @param array : массив объектов или строк\n * @param valueKey : ключ объекта из переданного массива для создания значения SelectOption.value\n * @param contentKey : ключ объекта из переданного массива для создания значения SelectOption.content\n * @returns : массив SelectOption\n */\n\nexport const getOptionsForSelect: GetOptionsForSelect = (\n array,\n valueKey,\n contentKey\n) => {\n const options: SelectOption[] = [];\n if (array.length) {\n if (valueKey && contentKey) {\n array.forEach((item) => {\n const option = {} as SelectOption;\n option.value = String(item[valueKey]) ?? '';\n option.content = String(item[contentKey]) ?? '';\n options.push(option);\n });\n return options;\n }\n\n array.forEach((item) => {\n const option = {} as SelectOption;\n option.value = String(item);\n option.content = String(item);\n options.push(option);\n });\n return options;\n }\n\n return options;\n};\n","/**\n * Функция обрезает строку в соотвествии с переданной длинной\n * @param string\n * @param lenght\n * @returns\n */\n\nexport const checkLengthString = (string: string, lenght: number) => {\n if (string && string.length > lenght) {\n const result = string\n .split('')\n .filter((_, index) => index < lenght - 3)\n .join('');\n return result + '...';\n }\n return string;\n};\n","/**\n * Приводит телефон к формату +7xxxxxxxxxx\n * @param value\n * @returns\n */\n\nexport const maskPhone = (value: string) => {\n const valueWithoutNotDigitChars = value.replace(/\\D/g, ''); // Удаляет все символы которые не цифры\n\n if (value.length < 2) {\n return valueWithoutNotDigitChars.replace(/^(.)/, '+7$1'); // Добавляет +7 в начало, \"012\" -> \"+7012\"\n } else {\n const result = valueWithoutNotDigitChars.replace(/^(.)/, '+7'); // Заменяет первое число на +7, \"012\" -> \"+712\"\n return result.slice(0, 12);\n }\n};\n","import { MutableRefObject, useEffect, useRef } from 'react';\n\ntype TimerId = MutableRefObject>;\n\n/**\n * Закрывает кастомную модалку с отложенным выполенением callback\n * @param setState функция изменения state флага isOpen\n * @param callback функция для отложенного выполнения\n * @returns функцию для закрытия модалки\n */\n\nexport function useCloseCustomModal(\n setState: (arg: boolean) => void,\n callback?: () => void\n) {\n const timerRef = useRef() as TimerId;\n\n const onClose = () => {\n setState(false);\n timerRef.current = setTimeout(() => {\n callback?.();\n }, 0);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timerRef.current);\n };\n }, []);\n\n return onClose;\n}\n","import { useEffect, useRef } from 'react';\n\n/**\n * Определяет статус монтирования компонента в DOM\n * @returns флаг true/false\n */\nexport function useComponentDidMount() {\n const ref = useRef();\n\n useEffect(() => {\n ref.current = true;\n }, []);\n\n return ref.current;\n}\n","export const validationMessages = {\n required: 'Обязательное поле',\n shouldBeANumber: 'Значение должно быть числом',\n};\n","import { useCallback, useEffect } from 'react';\n\nexport const useClickOutside = (\n clickOutsideCallback: () => void,\n ref: React.RefObject,\n exceptionRef?: React.RefObject\n) => {\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if (\n exceptionRef?.current &&\n exceptionRef.current.contains(event.target as HTMLDivElement)\n ) {\n return;\n }\n\n if (\n ref.current &&\n !ref.current.contains(event.target as HTMLDivElement)\n ) {\n clickOutsideCallback();\n }\n },\n [clickOutsideCallback, exceptionRef, ref]\n );\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, [handleClickOutside, ref]);\n};\n","export const LOCAL_STORAGE_TABLE_NAMES = {\n common: 'CommonTableFilters',\n operations: 'OperationsPage',\n operationsSBP: 'OperationsSBPPage',\n settlement: 'SettlementPage',\n reversal: 'ReversalPage',\n ePayment: 'ePaymentPage',\n eInvoiceBank: 'BankEinvoicePage',\n eInvoiceMerchant: 'MerchantEinvoicePage',\n statistic: 'StatisticPage',\n} as const;\n","import React, {\n FC,\n memo,\n MutableRefObject,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { URL } from 'src/app/config';\nimport { get, log } from 'src/shared/lib';\nimport styles from './shows-message-from-bank.module.scss';\nimport { firePageContentChangedEvent } from 'src/shared/ui';\n\nexport const ShowsMessageFromBank: FC = memo(() => {\n const [isShow, setShow] = useState(false);\n const [message, setMessage] = useState('');\n const [colorText, setColorText] = useState('');\n const timerRef = useRef() as MutableRefObject<\n ReturnType\n >;\n\n const getBankInfo = () => {\n get(URL.bankSupportMsg)\n .then((r) => {\n setMessage(r.data.payload.text);\n setColorText(r.data.payload.color);\n setShow(true);\n\n timerRef.current = setTimeout(() => {\n setShow(false);\n firePageContentChangedEvent();\n }, 180000);\n })\n .catch((r) => log(r));\n };\n\n useEffect(() => {\n if (!message) {\n getBankInfo();\n }\n\n return () => {\n clearTimeout(timerRef.current);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!isShow) {\n return null;\n }\n\n return (\n
\n {message}\n
\n );\n});\n","import React from 'react';\n\nexport const Logo = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import React from 'react';\n\nexport const BellIcon = (\n \n \n \n);\n","import React, { FC } from 'react';\nimport { BellIcon } from 'src/shared/ui/media/navigation-icons/bell-icon';\nimport { Badge } from 'src/shared/ui';\nimport styles from './feedback-menu.module.scss';\n\nexport const FeedbackMenu: FC = () => {\n const value = 0;\n\n return (\n
\n {BellIcon}\n {!!value && }\n
\n );\n};\n","import React from 'react';\n\nexport const HelpIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const StatsIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const MenuIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const CloseIcon = (\n \n \n \n \n);\n","import React from 'react';\n\nexport const UserDropdownIcon = (\n \n \n \n \n);\n","import React from 'react';\n\nexport const SdmLogo = (\n \n \n \n \n \n \n \n \n \n);\n","import React from 'react';\n\nexport const CallIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const InventoryIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const ok = (\n \n \n \n \n);\n","import React from 'react';\n\nexport const vk = (\n \n \n \n);\n","import React from 'react';\n\nexport const telegram = (\n \n \n \n);\n","import React from 'react';\n\nconst mc = (\n \n \n \n \n \n);\n\nexport { mc };\n","import React from 'react';\n\nconst visa = (\n \n \n \n \n \n \n \n \n \n);\n\nexport { visa };\n","import React from 'react';\n\nconst mir = (\n \n \n \n \n \n \n);\n\nexport { mir };\n","import React from 'react';\n\nexport const SelectedIcon = (\n \n \n \n);","import React from 'react';\n\nexport const SearchIcon = (\n \n \n \n);\n","import React from 'react';\n\nconst FilterSelectorIcon = (\n \n \n \n \n \n \n \n \n);\n\nexport { FilterSelectorIcon };\n","import React from 'react';\n\nexport const ResetFiltersIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const UserIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const AccessIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const SecurityIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const SystemIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const EmailIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const PhoneIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const DocumentsIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const LinkIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const InfoIcon = (\n \n \n \n);\n","import React from 'react';\n\nexport const PointIcon = (\n \n \n \n);\n","import React from 'react';\n\nconst CardIcon = () => (\n \n card\n \n \n);\n\nexport { CardIcon };\n","import React from 'react';\n\nconst CirrusIcon = (\n \n MasterCard\n \n \n \n \n);\n\nexport { CirrusIcon };\n","import React from 'react';\n\nconst SBPIcon = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport { SBPIcon };\n","import React, { useEffect, useState } from 'react';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { FeedbackMenu } from 'src/shared/ui/feedback-menu';\n\nimport {\n CloseIcon,\n SDMFullLogo,\n UserDropdownIcon,\n MenuIcon,\n} from 'src/shared/ui/media';\n\nimport styles from './mobile-navigation.module.scss';\n\ninterface Props {\n homePageUrl: string;\n userName: string;\n userDropdownNavigation: React.ReactNode;\n}\n\nexport const MobileNavigation: React.FC = ({\n children,\n homePageUrl,\n userName,\n userDropdownNavigation,\n}) => {\n const [open, setOpen] = useState(true);\n\n const location = useLocation();\n useEffect(() => {\n // close menu on location change\n setOpen(false);\n }, [location]);\n\n return (\n <>\n \n \n );\n};\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { Logo } from '../../../media/logotypes/sdm-full-logo';\nimport { MobileNavigation } from './mobile-navigation';\n\nimport styles from './navigation.module.scss';\n\ninterface Props {\n homePageUrl: string;\n userName: string;\n userDropdownNavigation: React.ReactNode;\n}\n\nexport const Navigation: React.FC = ({\n children,\n homePageUrl,\n userName,\n userDropdownNavigation,\n}) => {\n return (\n <>\n \n {children}\n \n \n \n );\n};\n","import React, { useState, useLayoutEffect } from 'react';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport { Dropdown } from 'src/shared/ui';\nimport { UserDropdownIcon } from 'src/shared/ui/media';\nimport { FeedbackMenu } from 'src/shared/ui';\nimport styles from './header.module.scss';\nimport { getAppTitle } from 'src/shared/lib';\nimport { navRoutes } from 'src/app/config';\nimport moment from 'moment';\n\ninterface Props {\n pageTitle: string | React.ReactNode;\n userName: string;\n userDropdownNavigation: React.ReactNode;\n}\n\nexport const Header: React.FC = ({\n pageTitle,\n userDropdownNavigation: UserDropdownNavigation,\n userName,\n}) => {\n const BACKWARDS_BUTTON_MAP = React.useMemo(\n () => ({\n 'operations-sbp': {\n buttonText: 'Список операций СБП',\n getTitleText: (id: number) => `Операция ${id}`,\n backUrl: navRoutes.operationsSBP,\n },\n operations: {\n buttonText: 'Список операций',\n getTitleText: (id: number) => `Операция ${id}`,\n backUrl: navRoutes.operations,\n },\n payment: {\n buttonText: 'Онлайн-заказы',\n backUrl: navRoutes.payments,\n },\n settlement: {\n buttonText: 'Список возмещений',\n getTitleText: (date: string) =>\n 'Возмещения за ' +\n moment(date, 'YYYYMMDD').format('DD.MM.YYYY'),\n backUrl: navRoutes.settlement,\n },\n }),\n []\n );\n\n const [operationId, setOperationId] = useState(0);\n const location = useLocation();\n const history = useHistory();\n\n // Для страниц Операции, Операции СБП, Онлайн заказы, Возмещения возможен переход обратно к таблицам.\n const currentDetailsPage = [\n /operations\\/\\d+/,\n /operations-sbp\\/\\d+/,\n /payment\\/\\d+/,\n /settlement\\/\\d+/,\n ]\n .filter((item) => location.pathname.search(item) + 1)[0]\n ?.toString()\n .match(/[a-zA-Z|-]+/)?.[0];\n\n useLayoutEffect(() => {\n setOperationId(+location.pathname.replace(/\\D/g, ''));\n }, [location.pathname]);\n\n const isBankApp = getAppTitle() === 'bank';\n\n const goBack = () => {\n if (location.key) {\n history.goBack();\n } else {\n currentDetailsPage &&\n history.push(BACKWARDS_BUTTON_MAP[currentDetailsPage].backUrl);\n }\n };\n\n return (\n
\n {currentDetailsPage ? (\n
\n {isBankApp ? (\n \n Вернуться\n \n ) : (\n \n {\n BACKWARDS_BUTTON_MAP[currentDetailsPage]\n .buttonText\n }\n \n )}\n {BACKWARDS_BUTTON_MAP[currentDetailsPage]?.getTitleText?.(\n operationId\n ) ?? ''}\n
\n ) : (\n
{pageTitle}
\n )}\n\n
\n \n }\n >\n {UserDropdownNavigation}\n \n
\n
\n );\n};\n\ninterface UserDropdownHeaderProps {\n userName: string;\n}\n\nconst UserDropdownHeader: React.FC = ({\n userName,\n}) => {\n return (\n
\n {UserDropdownIcon}\n \n {userName}\n \n
\n );\n};\n","import React from 'react'\n\ninterface Props {\n changeDescription: string;\n}\n\nexport const ChangeRow = ({changeDescription}: Props) => {\n return (\n
{changeDescription}
\n )\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport { ChangelogRecord } from 'src/shared/lib/user-changelog/changelog-types';\nimport { ChangeRow } from '../change-row';\n\ninterface Props {\n dateAndVersion: string;\n value: ChangelogRecord;\n}\n\nconst MAX_ENTRY_HEIGHT = 200;\n\nexport const ChangelogEntry = ({\n dateAndVersion,\n value: { title, description },\n}: Props) => {\n const [version, date] = dateAndVersion.split(' ');\n const [displayFull, setDisplayFull] = useState(false);\n const [descriptionOverflown, setDescriptionOverflown] = useState(false);\n const entryRef = useRef(null);\n\n useEffect(() => {\n const detectEntryOverflow = () => {\n if (entryRef.current) {\n setDescriptionOverflown(\n entryRef.current?.scrollHeight > MAX_ENTRY_HEIGHT\n );\n }\n };\n\n detectEntryOverflow();\n\n window.addEventListener('resize', detectEntryOverflow);\n return () => {\n window.removeEventListener('resize', detectEntryOverflow);\n };\n }, []);\n\n return (\n
\n
\n {date}\n Версия {version}\n
\n \n

{title}

\n \n {Array.isArray(description) ? (\n
\n {description.map((change) => (\n \n ))}\n
\n ) : (\n description\n )}\n \n
\n {!displayFull && descriptionOverflown && (\n setDisplayFull(true)}\n >\n подробнее\n \n )}\n \n );\n};\n","import { Changelog } from './changelog-types';\n\nexport const BANK_CHANGELOG: Changelog = {\n '2.3.0 30-11-2023': {\n title: 'Журнал изменений, кеширование, общие фильтры',\n description: [\n 'Добавлен журнал изменений, здесь, начиная с текущей версии будут появляться описания изменений внесенных в приложение.',\n 'На экранах \"Операции\", \"Операции СБП\", \"Возмещения\" после перехода в детали и обратно теперь используются ранее загруженные данные.',\n 'Страницы \"Операции\" и \"Возмещения\" теперь имеют \"общие\" фильтры дат и терминалов, изменения значений этих фильтров на одной из страниц автоматически применяются к остальным.',\n ],\n },\n '2.4.0 04-12-2023': {\n title: 'Фильтрация счетов',\n description: ['Добавлена фильтрация счетов по способу оплаты Mir Pay'],\n },\n '2.4.12 19-03-2024': {\n title: 'Общие исправления',\n description: [\n 'Исправлено отображение версии приложения как ссылки для мерчанта',\n 'Удалены кнопки редактирования в таблицах счетов',\n 'Исправлено отображение календаря в фильтрации счетов на странице управления ТСП',\n 'Исправлено отображение строки поиска по ключу мерчанта',\n 'Исправлено отображение таблицы счетов в ЛК банка',\n 'Исправлено кеширование таблиц на страницах',\n 'Исправлено обновление данных в таблицах при удалении счета или компании',\n 'Модальное окно логов изменений отображается только для банка',\n 'Исправлено отображение клавиатуры телефона при выборе даты для создания счета',\n 'Исправлено отображение графиков в ряд при горизонтальном положении экрана телефона',\n 'Исправлена ошибка отображения графика конверсии при наведении',\n 'В мобильной версии модального окна подписки исправлено отображение элементов поверх друг друга',\n 'Исправлено отображение фильтров в мобильной версии динамики',\n 'Исправлено выпадение элементов за контейнер модального окна',\n 'Исправлено отсутствие уведомления при создании пользователя',\n 'Исправлена ошибка при создании счета',\n ],\n },\n '2.5.0 26-03-2024': {\n title: 'Кеширование, журнал изменений',\n description: [\n 'Добавлено кеширование всех страниц таблиц по фильтрам',\n 'Изменен порядок логов изменений на \"Сначала новые\"',\n ],\n },\n '2.5.1 24-04-2024': {\n title: 'Кеширование',\n description: [\n 'Исправлено отображение идентификаторов терминалов в фильтре на странице статистики',\n 'Исправлено отображение устаревших данных после создания или обновления',\n 'Исправлено отображение одинаковых данных для разных таблиц',\n 'Скрыта кнопка об отправке квитанции в ЛК банка',\n ],\n },\n '2.5.2 06-05-2024': {\n title: 'Кеширование, графики статистики, мелкие исправления',\n description: [\n 'Исправлено отстутствие идентификаторов терминалов в фильтрации',\n 'Исправлены ошибки в графиках на странице статистики при наличии только одного столбца',\n 'Исправлено отсутствие ошибки при создании пользователя с существующим email',\n 'Исправлено отстутствие уведомлений при удалении и добавлении связанной компании в управлении ТСП',\n 'Исправлено кеширование в управлении ТСП',\n ],\n },\n '2.5.3 17-05-2024': {\n title: 'Операции, инвентарь, возвраты',\n description: [\n 'На странице операций в фильтрации по терминалам удалено отображение идентификатора организации',\n 'Исправлена смена группы терминала на \"Без группы\"',\n 'Исправлено отображение количество записей на странице операций СБП',\n 'Исправлено некорректное отображение данных при смене фильтров на странице возвратов',\n ],\n },\n '2.5.4 31-05-2024': {\n title: 'Выгрузка файлов, уведомления, мелкие исправления',\n description: [\n 'Исправлена загрузка данных без выбранных идентификаторов на странице \"Операции СБП\"',\n 'Исправлена фильтрация при выгрузке файлов на страницах \"Возмещение\" и \"Операции СБП\"',\n 'Исправлена возможность внести сумму возврата больше, чем сумма платежа на странице \"Операции СБП\"',\n 'Исправлена ошибка при формировании QR-кода с несколькими символами перехода на следующую строку на странице \"Счета\"',\n 'Исправлено отсутствие уведомлений при создании или редактировании на страницах \"Настройки\", \"Управление ТСП - Пользователи\", \"Управление пользователями\", \"Управление ТСП - Счета\"',\n ],\n },\n '2.5.5 17-06-2024': {\n title: 'Мелкие исправления',\n description: [\n 'Исправлены проблемы с фильтром \"Идентификатор СБП\" на странице \"Операции СБП\"',\n 'Исправлена фильтрация по организации на странице \"Возмещения\" в ЛК Банка',\n 'Исправлено отображение устаревших данных в таблице \"Группы\" при редактировании групп терминалов на странице \"Терминалы\"',\n 'Исправлено отсутствие уведомлений при редактировании пользователей на странице \"Управление ТСП - Пользователи\"',\n ],\n },\n '2.5.6 15-07-2024': {\n title: 'Мелкие исправления',\n description: [\n 'Исправлена выгрузка файлов с фильтрацией по типу QR в ЛК Банка',\n 'Исправлена ошибка на странице \"Возвраты\"',\n ],\n },\n};\n","import React, { useEffect, useState } from 'react';\nimport { Modal } from 'src/shared';\nimport { ChangelogEntry } from '../changelog-entry';\nimport styles from './styles.module.scss';\nimport { BANK_CHANGELOG } from 'src/shared/lib/user-changelog/bank-changelog';\n\ninterface Props {\n isOpen: boolean;\n isClosed: boolean;\n onClose: () => void;\n}\n\nconst BOTTOM_OFFSET = 50;\n\nconst CHANGELOG = BANK_CHANGELOG;\nconst entriesCount = Object.keys(CHANGELOG).length;\n\nexport const ChangelogModal = ({ isClosed, isOpen, onClose }: Props) => {\n const [entriesDisplayedCount, setEntriesDisplayedCount] = useState(3);\n const [hasScroll, setHasScroll] = useState(false);\n\n useEffect(() => {\n const entries = document.getElementById('modal-element-scroll');\n if (entries)\n setHasScroll(\n entries?.scrollHeight > entries?.clientHeight + BOTTOM_OFFSET\n );\n }, [entriesDisplayedCount]);\n\n useEffect(() => {\n return () => {\n setEntriesDisplayedCount(3);\n };\n }, []);\n\n return (\n
\n {\n const bottom =\n e.currentTarget.scrollHeight -\n e.currentTarget.scrollTop -\n BOTTOM_OFFSET <\n e.currentTarget.clientHeight;\n\n if (bottom) {\n setEntriesDisplayedCount((prev) => prev + 5);\n }\n }}\n >\n

История изменений

\n
\n {Object.keys(CHANGELOG)\n .slice(0, entriesDisplayedCount)\n .map((key) => (\n \n ))}\n
\n {!hasScroll && entriesCount > entriesDisplayedCount && (\n \n setEntriesDisplayedCount((prev) => prev + 5)\n }\n className={styles['show-more']}\n >\n показать еще\n \n )}\n \n
\n );\n};\n","import React, { FC, useState } from 'react';\nimport { SdmLogo, CallIcon, vk, ok, telegram } from 'src/shared/ui/media';\n\nimport styles from './footer.module.scss';\nimport { classNames, getAppTitle, useCloseCustomModal } from 'src/shared/lib';\nimport { ChangelogModal } from 'src/shared/ui/changelog-modal';\n\ninterface Props {\n theme?: 'dark';\n}\n\nexport const Footer: FC = ({ children, theme }) => {\n const [changelogModalOpen, setChangelogModalOpen] = useState(false);\n const [changelogModalShown, setChangelogModalShown] = useState(false);\n const computedClassName = [\n styles['footer'],\n theme === 'dark' ? styles['footer--dark-theme'] : '',\n ].join(' ');\n\n const onClose = useCloseCustomModal(setChangelogModalOpen, () =>\n setChangelogModalShown(false)\n );\n\n const currentYear = new Date().getFullYear();\n\n const isBank = getAppTitle() === 'bank';\n\n return (\n <>\n \n
\n
\n
\n {SdmLogo}\n \n © «СДМ-Банк» (ПАО), 2013-{currentYear}\n
Генеральная лицензия Банка России № 1637\n
\n
\n \n Перейти на сайт СДМ-Банка\n \n
\n
\n

Контакты:

\n
\n
{CallIcon}
\n +7 495 705 90 90\n +7 800 200 02 23\n
\n
\n
{children}
\n
\n
\n \n {telegram}\n \n \n {vk}\n \n \n {ok}\n \n
\n {\n if (isBank) {\n setChangelogModalOpen(true);\n }\n }}\n className={classNames(styles['version-button'], {\n [styles['version-button--bank']]: isBank,\n })}\n >\n {`версия ${process.env.REACT_APP_VERSION}`}\n \n
\n
\n \n );\n};\n","export const PAGE_CONTENT_CHANGED = 'page-content-changed';\n\nexport const firePageContentChangedEvent = () =>\n document.dispatchEvent(\n new CustomEvent(PAGE_CONTENT_CHANGED, { bubbles: true })\n );\n","import React, { useEffect } from 'react';\nimport { ShowsMessageFromBank } from 'src/features/shows-message-from-bank';\nimport { getAppTitle } from 'src/shared/lib';\nimport { Navigation } from './navigation';\nimport { Header } from './header';\nimport { Footer } from './footer';\nimport styles from './page-layout.module.scss';\nimport { PAGE_CONTENT_CHANGED } from './lib';\n\ninterface Props {\n navigation: React.ReactNode;\n pageTitle: string | React.ReactNode;\n userName: string;\n userDropdownNavigation: React.ReactNode;\n homePageUrl: string;\n footerNavigation: React.ReactNode;\n}\n\nconst PageLayout: React.FC = ({\n children,\n navigation,\n pageTitle,\n userDropdownNavigation,\n userName,\n homePageUrl,\n footerNavigation,\n}) => {\n const isMerchantApp = getAppTitle() === 'merchant';\n\n useEffect(() => {\n const pageElementScroll = document.getElementById(\n 'page-element-scroll'\n );\n\n const setScrollbarWidth = () => {\n if (pageElementScroll) {\n document.documentElement.style.cssText = `--scrollbar-width: ${\n pageElementScroll.offsetWidth -\n pageElementScroll.clientWidth\n }px`;\n }\n };\n\n setTimeout(() => {\n setScrollbarWidth();\n }, 500);\n\n ['resize', PAGE_CONTENT_CHANGED].forEach((event) =>\n window.addEventListener(event, setScrollbarWidth)\n );\n\n return () =>\n ['resize', PAGE_CONTENT_CHANGED].forEach((event) =>\n window.removeEventListener(event, setScrollbarWidth)\n );\n }, []);\n\n return (\n
\n \n {navigation}\n \n
\n \n \n {isMerchantApp && }\n \n\n \n {children}\n \n \n
{footerNavigation}
\n \n
\n
\n );\n};\n\nexport { PageLayout };\n","import React from 'react';\nimport { Footer } from '../page-layout/footer';\n\nimport styles from './public-page-layout.module.scss';\n\ninterface Props {\n footerNavigation: React.ReactNode;\n}\n\nexport const PublicPageLayout: React.FC = ({\n children,\n footerNavigation,\n}) => {\n return (\n
\n
\n
\n
{children}
\n
\n
\n
{footerNavigation}
\n
\n
\n
\n );\n};\n","import React, { FC } from 'react';\nimport { classNames } from 'src/shared/lib';\nimport styles from './article-layout.module.scss';\n\ninterface ArticleLayoutProps {\n bigColumn: React.ReactNode;\n smallColumn: React.ReactNode;\n className?: string;\n}\n\nexport const ArticleLayout: FC = ({\n bigColumn,\n smallColumn,\n className = '',\n}) => {\n return (\n
\n
{bigColumn}
\n
{smallColumn}
\n
\n );\n};\n","import React, { ButtonHTMLAttributes, DetailedHTMLProps } from 'react';\n\nimport styles from './button.module.scss';\n\ninterface Props {\n fluid?: boolean;\n disabled?: boolean;\n loading?: boolean;\n outline?: boolean;\n clear?: boolean;\n // tiny?: boolean;\n size?: 'xs' | 'tiny' | 'smedium' | 'medium';\n color?: 'gray';\n}\n\ntype ReactButtonProps = DetailedHTMLProps<\n ButtonHTMLAttributes,\n HTMLButtonElement\n>;\n\nexport const Button: React.FC = ({\n children,\n fluid,\n disabled,\n loading,\n clear,\n size,\n outline,\n color,\n ...rest\n}) => {\n const computedClassName = [\n styles['button'],\n fluid ? styles['button--fluid'] : '',\n disabled ? styles['button--disabled'] : '',\n loading ? styles['button--loading'] : '',\n clear ? styles['button--clear'] : '',\n size === 'xs' ? styles['button--xs'] : '',\n size === 'tiny' ? styles['button--tiny'] : '',\n size === 'smedium' ? styles['button--smedium'] : '',\n size === 'medium' ? styles['button--medium'] : '',\n color === 'gray' ? styles['button--gray'] : '',\n outline ? styles['button--outline'] : '',\n rest.className,\n ].join(' ');\n\n return (\n \n );\n};\n","export const normalizeDate = (value: number): string => {\n const str = `${value}`;\n return str.length === 1 ? `0${str}` : str;\n};\n\nexport const convertDateToString = (value: Date): string => {\n const year = normalizeDate(value.getFullYear());\n const month = normalizeDate(value.getMonth() + 1);\n const date = normalizeDate(value.getDate());\n return `${year}-${month}-${date}`;\n};\n\nexport const isIphoneSafari = (): boolean => {\n const isIos = /iP(ad|od|hone)/i.test(window.navigator.userAgent);\n const isSafari = !!navigator.userAgent.match(/Version\\/[\\d.]+.*Safari/);\n return isIos && isSafari;\n};\n","import { Moment } from 'moment';\nimport React, { FC } from 'react';\n\nimport styles from './date-text-input.module.scss';\nimport { isIphoneSafari } from './utils';\nimport { useDateTextInput } from './use-date-text-input';\n\nexport interface DateTextInputProps {\n setDate: (value: Moment | null) => void;\n startDate: Moment | null;\n placeholder: string;\n}\n\nexport const DateTextInput: FC = (props) => {\n const { placeholder } = props;\n const { handleBlur, onChange, onKeyDown, value } = useDateTextInput(props);\n\n const inputComponent = (\n event.preventDefault()}\n onChange={onChange}\n value={value}\n type={'date'}\n min=\"0001-01-01\"\n max=\"9999-01-01\"\n placeholder={placeholder}\n className={[\n styles['date-text-input'],\n // safari fix\n isIphoneSafari() && styles['date-text-input__safari-fix'],\n ].join(' ')}\n onBlur={handleBlur}\n onKeyDown={onKeyDown}\n />\n );\n\n if (isIphoneSafari()) {\n return (\n
\n
\n {inputComponent}\n
\n );\n }\n\n return inputComponent;\n};\n","import moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { convertDateToString } from './utils';\nimport { DateTextInputProps } from './date-text-input';\n\nexport const useDateTextInput = (props: DateTextInputProps) => {\n const { setDate, startDate } = props;\n\n const [value, setValue] = useState(\n convertDateToString(startDate!.toDate())\n );\n\n useEffect(() => {\n setValue(convertDateToString(startDate!.toDate()));\n }, [startDate]);\n\n const onChange = (event) => {\n let value = event.target.value;\n\n if (value.length < 11) {\n setValue(value);\n }\n };\n\n const handleBlur = (event) => {\n let value = event.target.value;\n\n if (value && value?.length === 10) {\n const [year, month, day] = value.split('-');\n const newValue = `${day}.${month}.${year}`;\n setDate(moment(newValue, 'DD.MM.YYYY'));\n } else {\n setValue(convertDateToString(startDate!.toDate()));\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n }\n if (/(Enter)/.test(event.key)) {\n handleBlur(event);\n }\n };\n\n return {\n onChange,\n value,\n handleBlur,\n onKeyDown\n };\n};\n","import * as type from 'src/redux/constants';\n\nexport function resetCancelationToken() {\n return (dispatch) => dispatch({ type: type.RESET_TOKEN });\n}\n","import * as type from '../constants';\n\nexport const setStartDate = (tableId, startDate) => (dispatch) => {\n dispatch({\n type: type.CHANGE_START_DATE,\n payload: {\n tableId,\n startDate,\n },\n });\n};\n\nexport const setEndDate = (tableId, endDate) => (dispatch) => {\n dispatch({\n type: type.CHANGE_END_DATE,\n payload: {\n tableId,\n endDate,\n },\n });\n};\n\nexport const setTotalCountForPagination =\n (tableId, totalCountForPagination) => (dispatch) => {\n dispatch({\n type: type.SET_TOTAL_COUNT_FOR_PAGINATION,\n payload: {\n tableId,\n totalCountForPagination,\n },\n });\n };\n\nexport const setOffset = (tableId, offset) => (dispatch) => {\n dispatch({\n type: type.SET_OFFSET,\n payload: {\n tableId,\n offset,\n },\n });\n};\n\nexport const setPageSize = (tableId, pageSize) => (dispatch) => {\n dispatch({\n type: type.SET_PAGE_SIZE,\n payload: {\n tableId,\n pageSize,\n },\n });\n};\n\nexport const nextPage = (tableId) => (dispatch) => {\n dispatch({\n type: type.GO_NEXT_PAGE,\n payload: {\n tableId,\n },\n });\n};\n\nexport const previousPage = (tableId) => (dispatch) => {\n dispatch({\n type: type.GO_PREVIOUS_PAGE,\n payload: {\n tableId,\n },\n });\n};\n\nexport const setFilters = (tableId, filters) => (dispatch) => {\n dispatch({\n type: type.SET_FILTERS,\n payload: {\n tableId,\n filters,\n },\n });\n};\n\nexport const setNeedsUpdate =\n (tableId, needsUpdate, findAll = false) =>\n (dispatch) => {\n dispatch({\n type: type.SET_NEEDS_UPDATE,\n payload: {\n tableId,\n needsUpdate,\n findAll,\n },\n });\n };\n\nexport const setDataIsFetching = (tableId, fetching) => (dispatch) => {\n dispatch({\n type: type.SET_DATA_IS_FETCHING,\n payload: {\n tableId,\n fetching,\n },\n });\n};\n\nexport const setPersistedTableState = (tableId, tableData) => (dispatch) => {\n dispatch({\n type: type.SET_PERSISTED_TABLE_DATA,\n payload: {\n tableId,\n tableData,\n },\n });\n};\n\nexport const setCommonTableFilters = (commonFilters) => (dispatch) => {\n dispatch({\n type: type.SET_COMMON_TABLE_FILTERS,\n payload: {\n commonFilters,\n },\n });\n};\n","export const getRequestCancelationToken = (state) => state.requestCancelation;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport DatePicker from 'react-datepicker';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport 'moment/locale/ru';\n\nimport { classNames } from 'src/shared/lib';\nimport { DatePickerProps } from './config';\nimport { DateTextInput } from './date-text-input';\nimport styles from './date-range-picker.module.scss';\nimport { Button } from '../button';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { resetCancelationToken } from 'src/redux/actions';\nimport { getRequestCancelationToken } from 'src/redux/selectors';\n\ninterface Props {\n datepickers: DatePickerProps[];\n onReset?: () => void;\n startDate: Moment | null;\n endDate: Moment | null;\n formatter: (date: Moment) => string;\n position?: 'center' | 'left'; // позиционирование попапа относительно триггера\n criticalScreenWidth?: number; // критическая ширина экрана для двух календарей\n popupClassName?: string;\n}\n\nexport const DateRangePicker: React.FC = ({\n datepickers,\n onReset,\n endDate,\n startDate,\n formatter,\n position = 'center',\n criticalScreenWidth = 991,\n popupClassName,\n}) => {\n const { token } = useSelector(getRequestCancelationToken);\n const dispatch = useDispatch();\n\n const [active, setActive] = useState<'start' | 'end' | undefined>();\n const [screenWidth, setScreenWidtn] = useState();\n const [isShowOneCalendar, setIsShowOneCalendar] = useState(false);\n const [left, setLeft] = useState();\n const [selectedStartDate, setSelectedStartDate] = useState(\n startDate\n );\n const [selectedEndDate, setSelectedEndDate] = useState(\n endDate\n );\n\n // sync local states with store states\n const resetLocalStates = useCallback(() => {\n setSelectedEndDate(endDate);\n setSelectedStartDate(startDate);\n }, [startDate, endDate]);\n\n const resetHandler = () => {\n setSelectedStartDate(moment().subtract(7, 'days'));\n setSelectedEndDate(moment());\n };\n\n const ref = useRef(null);\n const datepickersRef = useRef(null);\n\n const setScreenWidth = () => {\n setScreenWidtn(window.screen.width);\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(event.target as HTMLDivElement) &&\n !datepickersRef.current?.contains(event.target as HTMLDivElement)\n ) {\n // close popup on click outside\n setActive(undefined);\n }\n };\n\n // Reset local states if they haven't been applied before popup got closed\n useEffect(() => {\n if (!active) {\n resetLocalStates();\n }\n }, [active, resetLocalStates]);\n\n useEffect(() => {\n setScreenWidth();\n\n if (screenWidth && screenWidth < 500) {\n setIsShowOneCalendar(true);\n setLeft(undefined);\n } else if (\n screenWidth &&\n screenWidth < criticalScreenWidth &&\n screenWidth > 500\n ) {\n setLeft(-16);\n setIsShowOneCalendar(true);\n } else {\n setLeft(undefined);\n setIsShowOneCalendar(false);\n }\n\n window.addEventListener('resize', setScreenWidth);\n return () => {\n window.removeEventListener('resize', setScreenWidth);\n };\n }, [criticalScreenWidth, screenWidth]);\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n const renderDatePicker = ({ end, start }: DatePickerProps, key) => {\n let limit = start\n ? { maxDate: selectedEndDate }\n : { minDate: selectedStartDate };\n\n const component = (\n \n start ? setSelectedStartDate(e) : setSelectedEndDate(e)\n }\n startDate={selectedStartDate}\n endDate={selectedEndDate}\n calendarClassName={styles['date-picker-calendar']}\n inline\n {...limit}\n />\n );\n\n if (!isShowOneCalendar) return component;\n\n if (active === 'start') {\n if (start) return component;\n return null;\n } else {\n if (end) return component;\n return null;\n }\n };\n\n const renderHeader = ({ start, onChange }: DatePickerProps, key) => {\n const isActive = start ? active === 'start' : active === 'end';\n\n const handleButton = () => {\n setActive(start ? 'start' : 'end');\n };\n\n const stylesButton = classNames(styles['date-range-picker__header'], {\n [styles['date-range-picker__header--active']]: isActive,\n });\n\n const getDate = (data: Moment | null) =>\n data ? formatter(data) : 'выбрать дату';\n\n return (\n \n );\n };\n\n const stylesPopup = classNames(\n styles['date-range-picker__popup'],\n {\n [styles['date-range-picker__popup--open']]: active,\n [styles['date-range-picker__popup--left']]: position === 'left',\n },\n [popupClassName]\n );\n\n const [\n { onChange: startDateOnChangeHandler },\n { onChange: endDateOnChangeHandler },\n ] = datepickers;\n\n const cancelRequest = () => {\n token.cancel();\n dispatch(resetCancelationToken());\n };\n\n // On apply click cancel data fetching request & sync local states with store states\n const applyClickHandler = () => {\n cancelRequest();\n selectedStartDate && startDateOnChangeHandler(selectedStartDate);\n selectedEndDate && endDateOnChangeHandler(selectedEndDate);\n\n // timeout fixes flickering caused by rerender with old start & end date states\n setTimeout(() => setActive(undefined));\n };\n\n return (\n
\n \n {datepickers.map(renderHeader)}\n
\n
\n
\n {datepickers.map(renderDatePicker)}\n
\n
\n \n Сбросить значения\n \n \n
\n
\n
\n );\n};\n","import React, { forwardRef } from 'react';\nimport { ReactInputProps, InputProps } from './types';\nimport styles from './input.module.scss';\n\nexport const Input = forwardRef(\n (\n {\n background,\n error,\n warning,\n fluid,\n icon,\n customInput,\n readonly = false,\n ...rest\n },\n ref\n ) => {\n const computedClassName = [\n styles['input'],\n\n Boolean(background) ? styles['input--bg'] : '',\n Boolean(error) ? styles['input--error'] : '',\n Boolean(fluid) ? styles['input--fluid'] : '',\n Boolean(icon) ? styles['input--with-icon'] : '',\n Boolean(readonly) ? styles['readonly'] : '',\n ].join(' ');\n\n return (\n
\n {!customInput ? (\n \n ) : (\n \n {customInput}\n
\n )}\n\n {typeof error === 'string' && (\n
{error}
\n )}\n {warning && (\n
{warning}
\n )}\n {icon &&
{icon}
}\n \n );\n }\n);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEye(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 18,\n height: 18\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEye);\nexport default __webpack_public_path__ + \"static/media/eye.f1bacdd3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEyeOff(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 18,\n height: 18\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeOff);\nexport default __webpack_public_path__ + \"static/media/eyeOff.c890529a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { forwardRef, useState } from 'react';\nimport { ReactInputProps, InputProps } from './types';\nimport { ReactComponent as Eye } from './icons/eye.svg';\nimport { ReactComponent as EyeOff } from './icons/eyeOff.svg';\nimport { Input } from './input';\n\nexport const InputPassword = forwardRef<\n HTMLInputElement,\n InputProps & ReactInputProps\n>(({ type, ...rest }, ref) => {\n const [passwordVisible, setPasswordVisible] = useState(false);\n\n return (\n {\n setPasswordVisible((prev) => !prev);\n }}\n >\n {!passwordVisible ? : }\n \n }\n {...rest}\n ref={ref}\n />\n );\n});\n","import moment, { Moment } from 'moment';\nimport React, { FC } from 'react';\nimport DatePicker from 'react-datepicker';\nimport { Input } from '../input';\nimport styles from './date-picker.module.scss';\nimport { isMobile } from 'react-device-detect';\n\ninterface DatePickerProps {\n selected: Moment | null;\n onChange: (data: Moment | null) => void;\n}\n\nexport const Datepicker: FC = (props) => {\n const { selected, onChange, ...otherProps } = props;\n\n const changeDate = (data: Moment | null) => {\n onChange(data);\n };\n\n return (\n }\n calendarClassName={styles.modal}\n />\n );\n};\n","import React from 'react';\n\nexport const chevron = (\n \n \n \n);\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport { chevron } from './chevron';\n\nimport * as styles from './dropdown.module.scss';\n\ninterface Item {\n href?: string;\n onClick?: (event: React.MouseEvent) => void;\n title: string;\n}\n\ninterface Props {\n items?: Item[];\n header: React.ReactNode;\n circular?: boolean;\n outline?: boolean;\n}\n\nexport const Dropdown: React.FC = ({\n items,\n header,\n circular,\n outline,\n children,\n}) => {\n const [open, setOpen] = useState();\n const [redirectUrl, setRedirectUrl] = useState();\n const location = useLocation();\n let ref = useRef(null);\n\n useEffect(() => {\n // close menu on location change\n setOpen(false);\n }, [location]);\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(event.target as HTMLDivElement)\n ) {\n // close dropdown menu on click outside\n setOpen(false);\n }\n };\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n return (\n \n {redirectUrl && }\n {\n setOpen(!open);\n }}\n >\n
{header}
\n
{chevron}
\n \n
\n
\n {Array.isArray(items) &&\n (items as Item[]).map(({ onClick, title, href }) => (\n {\n if (onClick) {\n onClick(event);\n } else if (href) {\n setRedirectUrl(href);\n }\n }}\n >\n {title}\n
\n ))}\n {children}\n
\n \n );\n};\n","import React, { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { Button, FilterSelectorIcon } from 'src/shared/ui';\nimport { FilterColumn, ColumnState, Option } from './config';\n\nimport styles from './filters-selector.module.scss';\n\ninterface Props {\n columns: FilterColumn[];\n reset: () => void;\n}\n\nexport const FiltersSelector: FC = ({ columns, reset }) => {\n const [open, setOpen] = useState();\n const [columnsState, setColumnsState] = useState({});\n let ref = useRef(null);\n\n const initColumnsState = useCallback(\n (reset?: boolean) => {\n let newColumnsState = {};\n columns.forEach(({ title, selected }) => {\n let resetValue = Array.isArray(selected) ? [] : undefined;\n newColumnsState[title] = {\n selected: reset ? resetValue : selected,\n };\n });\n setColumnsState(newColumnsState);\n },\n [columns]\n );\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(event.target as HTMLDivElement)\n ) {\n // close popup on click outside\n setOpen(false);\n }\n };\n\n document.addEventListener('click', handleClickOutside, true);\n initColumnsState();\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, [initColumnsState]);\n\n const count = () => {\n let total = 0;\n columns.forEach((column) => {\n const selected = columnsState[column.title]?.selected;\n if (Array.isArray(selected)) {\n total += selected.length;\n } else if (selected) {\n total += 1;\n }\n });\n return total;\n };\n\n const handleMultipleOptionsChange = (value: string, title: string) => {\n const currentSelected = columnsState[title]?.selected as string[];\n const newSelected = [...(currentSelected || [])];\n const idx = newSelected.findIndex((oldValue) => value === oldValue);\n if (idx !== -1) {\n newSelected.splice(idx, 1);\n } else {\n newSelected.push(value);\n }\n setColumnsState({\n ...columnsState,\n [title]: { selected: newSelected },\n });\n };\n\n const handleSingleOptionChange = (value: string, title: string) => {\n const selected = columnsState[title]?.selected === value;\n if (selected) {\n setColumnsState({\n ...columnsState,\n [title]: { selected: undefined },\n });\n } else {\n setColumnsState({\n ...columnsState,\n [title]: { selected: value },\n });\n }\n };\n\n const renderFilterColumn = (column: FilterColumn, index: number) => {\n const renderOption = (option: Option, index: number) => {\n const selected =\n columnsState[column.title]?.selected === option.value ||\n (Array.isArray(columnsState[column.title]?.selected) &&\n columnsState[column.title]?.selected?.includes(\n option.value\n ));\n const className = [\n styles['filter-column__option'],\n selected ? styles['filter-column__option--selected'] : '',\n ].join(' ');\n const handleChange = (value: string) => {\n const currentSelected = columnsState[column.title]?.selected;\n if (Array.isArray(currentSelected) && !column.isSingleSelect) {\n handleMultipleOptionsChange(value, column.title);\n } else {\n handleSingleOptionChange(value, column.title);\n }\n };\n return (\n handleChange(option.value)}\n >\n {option.text}\n \n );\n };\n\n return (\n
\n \n {column.title}\n \n {column.options.map(renderOption)}\n
\n );\n };\n\n const handleChange = () => {\n columns.forEach((column) => {\n const selected = columnsState[column.title].selected;\n if (Array.isArray(selected)) {\n column.onChange([...selected]);\n } else {\n column.onChange(selected);\n }\n });\n setOpen(false);\n };\n\n return (\n
\n setOpen(true)}\n >\n {FilterSelectorIcon}\n \n {count()}\n
\n \n \n
\n {columns.map(renderFilterColumn)}\n
\n
\n \n {\n reset();\n initColumnsState(true);\n }}\n >\n Сбросить значения\n \n
\n \n \n );\n};\n","import React, { FC } from 'react';\nimport styles from './form-field.module.scss';\n\nexport const FormField: FC = ({ children }) => {\n return
{children}
;\n};\n","import React, { ChangeEvent, KeyboardEvent, FC, useState } from 'react';\nimport { classNames } from 'src/shared/lib';\nimport { SearchIcon } from 'src/shared/ui';\n\nimport styles from './search-field.module.scss';\n\ninterface Props {\n onChange: (value: string) => void;\n value: string;\n placeholder?: string;\n fullsize?: boolean;\n className?: string;\n type?: 'all' | 'number';\n}\n\nexport const SearchField: FC = ({\n onChange,\n placeholder,\n value,\n fullsize,\n className,\n type = 'all',\n}) => {\n const [query, setQuery] = useState(value ?? '');\n\n const handleKeyPress = (event: KeyboardEvent) => {\n event.key === 'Enter' && onChange(query);\n };\n\n const handleBlur = () => {\n if (query === '') onChange(query);\n };\n\n const handleChange = (event: ChangeEvent) => {\n const value = event.target.value;\n if (type === 'all') {\n setQuery(value);\n }\n\n if (type === 'number') {\n if (/^\\d*$/.test(value)) {\n setQuery(value);\n }\n }\n };\n\n const finalClassName = classNames(\n styles['search-field'],\n { [styles['search-field--fullsize']]: fullsize },\n [className]\n );\n\n return (\n
\n onChange(query)}\n >\n {SearchIcon}\n \n \n
\n );\n};\n","import { FC, ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\ninterface PortalProps {\n children: ReactNode;\n element?: HTMLElement;\n}\n\nexport const Portal: FC = (props) => {\n const { children, element = document.body } = props;\n\n return createPortal(children, element);\n};\n","import React, {\n FC,\n MutableRefObject,\n useState,\n useEffect,\n useCallback,\n CSSProperties,\n useLayoutEffect,\n useRef,\n} from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { classNames, useComponentDidMount } from 'src/shared/lib';\nimport { Portal } from '../portal/portal';\nimport styles from './popup.module.scss';\n\nexport const enum Position {\n TOP_LEFT = 'top/left',\n TOP_RIGHT = 'top/right',\n TOP_CENTER = 'top/center',\n BOTTOM_LEFT = 'bottom/left',\n BOTTOM_RIGHT = 'bottom/right',\n BOTTOM_CENTER = 'bottom/center',\n HIDDEN = 'hidden',\n}\n\n// TODO нужно дописать расчеты для всех сценариев\nconst getPositionPopup = (\n widthWindow: number,\n heightWindow: number,\n triggerRect: DOMRect,\n marginFromTrigger: number,\n maxHeightPopup: number,\n parentRect?: DOMRect\n) => {\n const bottomPopup = triggerRect.bottom + marginFromTrigger + maxHeightPopup;\n\n if (parentRect) {\n if (triggerRect.top < parentRect.top) {\n return Position.HIDDEN;\n }\n\n if (triggerRect.bottom > parentRect.bottom) {\n return Position.HIDDEN;\n }\n }\n\n if (triggerRect.top >= heightWindow) {\n return Position.HIDDEN;\n }\n\n if (triggerRect.bottom <= 0) {\n return Position.HIDDEN;\n }\n\n if (bottomPopup >= heightWindow && triggerRect.top < heightWindow) {\n return Position.TOP_LEFT;\n }\n\n return Position.BOTTOM_LEFT;\n};\n\nconst maxDistanceFromWindowBottom = (\n element: HTMLElement | null,\n bottomPopup: number\n) => {\n if (!element) {\n return 0;\n }\n\n const rect = element.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const distanceFromWindowBottom = windowHeight - rect.bottom;\n\n return bottomPopup > distanceFromWindowBottom\n ? distanceFromWindowBottom\n : bottomPopup;\n};\n\ninterface PopupProps {\n triggerRef: MutableRefObject;\n maxHeightPopup: number;\n hiddenPopup: () => void;\n idScrollElement?: string; // id родительского элемента в котором расположен trigger\n maxWidthPopup?: 'max' | 'trigger';\n position?: Position;\n marginFromTrigger?: number;\n className?: string;\n hideWhenResizing?: boolean;\n maxWidth?: number;\n}\n\nexport const Popup: FC = (props) => {\n const {\n triggerRef,\n idScrollElement,\n maxHeightPopup: defaultMaxHeightPopup,\n hiddenPopup,\n maxWidthPopup,\n maxWidth,\n position,\n marginFromTrigger = 4,\n className,\n children,\n hideWhenResizing = false,\n } = props;\n\n const isMounted = useComponentDidMount();\n const parentElementWithScroll = useRef(null);\n const bodyRef = useRef(null);\n const timerRef = useRef() as MutableRefObject<\n ReturnType\n >;\n\n const [widthPopup, setWidthPopup] = useState(undefined);\n const [topPopup, setTopPopup] = useState(undefined);\n const [bottomPopup, setBottomPopup] = useState(\n undefined\n );\n const [leftPopup, setLeftPopup] = useState(undefined);\n const [rightPopup, setRightPopup] = useState(undefined);\n\n const maxHeightPopup =\n defaultMaxHeightPopup > window.innerHeight\n ? window.innerHeight\n : defaultMaxHeightPopup;\n\n const setRectPopup = useCallback(\n (position?: Position) => {\n if (triggerRef?.current && bodyRef?.current) {\n const fullWidthWindow = window.innerWidth; // включая scrollbar\n\n // задает ширину документа в зависимости от наличия scrollbar\n const widthWindow = idScrollElement\n ? fullWidthWindow\n : document.body.clientWidth;\n const heightWindow = document.body.clientHeight;\n\n const triggerRect = triggerRef?.current.getBoundingClientRect();\n\n const parentRect =\n parentElementWithScroll?.current?.getBoundingClientRect();\n // Обязательно нужно отключать горизонтальный скролл в idScrollElement\n const widthScrollParentElement = isMounted\n ? 0\n : (parentRect &&\n Math.ceil(\n parentRect?.width -\n (parentElementWithScroll?.current\n ?.scrollWidth || 0)\n )) ||\n 0;\n\n const bodyRect = bodyRef?.current.getBoundingClientRect();\n\n const positionPopup =\n position ||\n getPositionPopup(\n widthWindow,\n heightWindow,\n triggerRect,\n marginFromTrigger,\n maxHeightPopup,\n parentRect\n );\n\n switch (positionPopup) {\n case Position.TOP_LEFT:\n setTopPopup(undefined);\n setBottomPopup(\n heightWindow - triggerRect.top + marginFromTrigger\n );\n\n setLeftPopup(\n triggerRect.left + widthScrollParentElement\n );\n setRightPopup(undefined);\n break;\n\n case Position.TOP_CENTER:\n setTopPopup(undefined);\n setBottomPopup(\n heightWindow - triggerRect.top + marginFromTrigger\n );\n\n setLeftPopup(\n triggerRect.left +\n widthScrollParentElement +\n (bodyRect.width - triggerRect.width) / 2\n );\n setRightPopup(undefined);\n break;\n\n case Position.TOP_RIGHT:\n setTopPopup(undefined);\n setBottomPopup(\n heightWindow - triggerRect.top + marginFromTrigger\n );\n setLeftPopup(undefined);\n setRightPopup(\n widthWindow -\n triggerRect.right -\n widthScrollParentElement\n );\n break;\n\n case Position.BOTTOM_LEFT:\n setTopPopup(triggerRect.bottom + marginFromTrigger);\n setBottomPopup(undefined);\n setLeftPopup(\n triggerRect.left + widthScrollParentElement\n );\n setRightPopup(undefined);\n break;\n\n case Position.BOTTOM_CENTER:\n setTopPopup(triggerRect.bottom + marginFromTrigger);\n setBottomPopup(undefined);\n\n setLeftPopup(\n triggerRect.left +\n widthScrollParentElement +\n (bodyRect.width - triggerRect.width) / 2\n );\n setRightPopup(undefined);\n break;\n\n case Position.BOTTOM_RIGHT:\n setTopPopup(triggerRect.bottom + marginFromTrigger);\n setBottomPopup(undefined);\n setLeftPopup(undefined);\n setRightPopup(\n widthWindow -\n triggerRect.right -\n widthScrollParentElement\n );\n break;\n\n case Position.HIDDEN:\n hiddenPopup();\n break;\n\n default:\n hiddenPopup();\n break;\n }\n\n if (maxWidthPopup === 'trigger') {\n setWidthPopup(triggerRect.width + 1); // 1 -> поправка\n }\n\n if (maxWidthPopup === 'max') {\n setRightPopup(widthWindow - (parentRect?.right || 0));\n\n if (isMobile) {\n setLeftPopup(parentRect?.left);\n }\n }\n }\n },\n [\n maxWidthPopup,\n triggerRef,\n maxHeightPopup,\n marginFromTrigger,\n idScrollElement,\n hiddenPopup,\n isMounted,\n ]\n );\n\n const handleResize = useCallback(() => {\n if (hideWhenResizing) hiddenPopup();\n setRectPopup();\n }, [hiddenPopup, hideWhenResizing, setRectPopup]);\n\n const positionPopup = useCallback(() => {\n setRectPopup();\n }, [setRectPopup]);\n\n const onClose = useCallback(\n (e: globalThis.MouseEvent) => {\n const childrenElement = e.target as HTMLElement;\n\n if (bodyRef.current && !bodyRef.current.contains(childrenElement)) {\n hiddenPopup();\n }\n },\n [hiddenPopup]\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n hiddenPopup();\n }\n },\n [hiddenPopup]\n );\n\n // первая отрисовка компонента\n useLayoutEffect(() => {\n if (idScrollElement) {\n parentElementWithScroll.current =\n document.getElementById(idScrollElement);\n } else {\n parentElementWithScroll.current = document.body;\n }\n\n setRectPopup(position);\n // gives correct position on click\n positionPopup();\n }, [setRectPopup, position, idScrollElement, positionPopup]);\n\n // контролирует события мыши и клавиатуры\n useEffect(() => {\n timerRef.current = setTimeout(() => {\n document.addEventListener('click', onClose);\n document.addEventListener('keydown', onKeyDown);\n }, 50);\n\n return () => {\n clearTimeout(timerRef.current);\n document.removeEventListener('click', onClose);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [onClose, onKeyDown]);\n\n // контролирует позициорирование\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n parentElementWithScroll.current?.addEventListener(\n 'scroll',\n positionPopup\n );\n\n return () => {\n window.removeEventListener('resize', handleResize);\n parentElementWithScroll.current?.removeEventListener(\n 'scroll',\n positionPopup\n );\n };\n }, [handleResize, positionPopup, idScrollElement, setRectPopup]);\n\n // TODO если фильтр открыт на момент исчезновения ShowsMessageFromBank\n // он останется висеть оторваным от своей кнопки\n const styleProperties: CSSProperties = {\n position: 'absolute',\n zIndex: 100000,\n top: topPopup,\n bottom: maxDistanceFromWindowBottom(bodyRef.current, bottomPopup || 0),\n left: leftPopup,\n right: rightPopup,\n width: widthPopup,\n maxWidth: maxWidth,\n maxHeight: maxHeightPopup,\n };\n\n return (\n \n \n {children}\n \n \n );\n};\n","import React, {\n FC,\n MouseEvent,\n useEffect,\n useMemo,\n useState,\n useCallback,\n memo,\n useRef,\n} from 'react';\nimport { checkLengthString, classNames } from 'src/shared/lib';\nimport { Popup } from 'src/shared/ui';\nimport { Position } from '../popup/popup';\nimport styles from './NewSelect.module.scss';\n\nconst HEIGHT_EMPTY_BLOCK = 8; // задается в css файле равен padding в .body\nconst HEIGHT_OPTION = 33; // подбирается\n\nexport interface SelectOption {\n value: string;\n content: string;\n}\n\nconst searchField = (field: string, options: SelectOption[]) => {\n const option = options.find((item) => item.value === field);\n return option?.content;\n};\n\nconst getMaxHeightPopup = (\n options: SelectOption[],\n heightOption: number,\n heightEmptyBlock: number\n) => {\n const PADDING_POPUP = 8; // задается в css файле равен padding в .body\n\n if (options.length > 4) {\n return heightOption * 4 + heightEmptyBlock;\n }\n return heightOption * options.length + PADDING_POPUP * 2;\n};\n\ninterface NewSelectProps {\n options: SelectOption[];\n idScrollElement: string;\n className?: string;\n label?: string;\n value?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n lengthDisplayValue?: number;\n}\n\nexport const NewSelect: FC = memo((props) => {\n const {\n options,\n idScrollElement,\n onChange,\n value,\n label,\n disabled = false,\n lengthDisplayValue = 23,\n className,\n } = props;\n const headerRef = useRef(null);\n const [isOpen, setOpen] = useState(false);\n const [currentValue, setCurrentValue] = useState(label);\n\n const heightPopup = getMaxHeightPopup(\n options,\n HEIGHT_OPTION,\n HEIGHT_EMPTY_BLOCK\n );\n\n const onToggle = useCallback(() => {\n setOpen((prev) => !prev);\n }, []);\n\n const onChangeValue = useCallback(\n (e: MouseEvent) => {\n const { value } = e.currentTarget.dataset;\n const content = e.currentTarget.innerHTML;\n onChange?.(value || '');\n setCurrentValue(content || '');\n setOpen(false);\n },\n [onChange]\n );\n\n const renderOptionsList = useMemo(\n () =>\n options?.map((opt) => (\n \n {checkLengthString(opt.content, lengthDisplayValue)}\n \n )),\n [options, onChangeValue, lengthDisplayValue]\n );\n\n useEffect(() => {\n if (!label && value) {\n setCurrentValue(searchField(value, options));\n }\n }, [label, value, options]);\n\n return (\n
\n \n {currentValue &&\n checkLengthString(currentValue, lengthDisplayValue)}\n
\n {!disabled && isOpen && (\n \n {options.length > 4 ? (\n <>\n
\n \n {renderOptionsList}\n
\n \n ) : (\n
{renderOptionsList}
\n )}\n \n )}\n \n );\n});\n","import * as type from '../constants';\nimport { post } from '../../shared/lib/request-wrapper';\nimport { URL } from 'src/app/config';\n\nconst defaultConversionChart = [\n {\n name: 'Конверсия',\n groupName: 'Сумма (₽)',\n paramNames: ['Успешные', 'Неуспешные'],\n tuples: [],\n },\n {\n name: 'Конверсия',\n groupName: 'Количество',\n paramNames: ['Успешные', 'Неуспешные'],\n tuples: [],\n },\n];\n\nconst defaultDeclineChart = [\n {\n name: 'Конверсия',\n groupName: 'Сумма (₽)',\n paramNames: ['Успешные', 'Неуспешные'],\n tuples: [],\n },\n {\n name: 'Конверсия',\n groupName: 'Количество',\n paramNames: ['Успешные', 'Неуспешные'],\n tuples: [],\n },\n];\n\nconst defaultMpsChart = [\n {\n groupName: 'Сумма (₽)',\n name: 'Доля платежных систем',\n tuples: [],\n },\n {\n groupName: 'Количество',\n name: 'Доля платежных систем',\n tuples: [],\n },\n];\n\nexport function getDynamicsChart(request) {\n return (dispatch) => {\n return post(URL.dynamicsChartUrl, request)\n .then((response) => {\n dispatch({\n type: type.GET_DINAMIC_CHARTS_SUCCESS,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_DINAMIC_CHARTS_FAIL,\n error: response.data,\n })\n );\n };\n}\n\nexport function getConversionChart(request) {\n return (dispatch) => {\n if (request.terminalIds.length === 0) {\n dispatch({\n type: type.GET_CONVERSION_CHARTS_SUCCESS,\n payload: defaultConversionChart,\n });\n return;\n }\n\n return post(URL.conversionChartUrl, request)\n .then((response) => {\n dispatch({\n type: type.GET_CONVERSION_CHARTS_SUCCESS,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_CONVERSION_CHARTS_FAIL,\n error: response.data,\n })\n );\n };\n}\n\nexport function getDeclineChart(request) {\n return (dispatch) => {\n if (request.terminalIds.length === 0) {\n dispatch({\n type: type.GET_DECLINE_CHARTS_SUCCESS,\n payload: defaultDeclineChart,\n });\n return;\n }\n\n return post(URL.declineChartUrl, request)\n .then((response) => {\n dispatch({\n type: type.GET_DECLINE_CHARTS_SUCCESS,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_DECLINE_CHARTS_FAIL,\n error: response.data,\n })\n );\n };\n}\n\nexport function getMpsChart(request) {\n return (dispatch) => {\n if (request.terminalIds.length === 0) {\n dispatch({\n type: type.GET_MPS_CHARTS_SUCCESS,\n payload: defaultMpsChart,\n });\n return;\n }\n\n return post(URL.mpsChartUrl, request)\n .then((response) => {\n dispatch({\n type: type.GET_MPS_CHARTS_SUCCESS,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_MPS_CHARTS_FAILED,\n error: response.data,\n })\n );\n };\n}\n\nexport function toggleCharts(toggle) {\n return (dispatch) => {\n dispatch({ type: type.TOGGLE_CHART, toggle });\n };\n}\n","import React from 'react';\nimport { useEffect } from 'react';\nimport { SwitcherElement } from './config';\n\nimport styles from './switcher.module.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { toggleCharts } from 'src/redux/actions/charts';\n\ninterface Props {\n initialActiveId?: string;\n elements: SwitcherElement[];\n}\n\nexport const Switcher: React.FC = ({\n initialActiveId = '',\n elements,\n}) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (initialActiveId) dispatch(toggleCharts(initialActiveId));\n }, [dispatch, initialActiveId]);\n\n const activeNow = useSelector((state) => state?.charts?.toggle);\n const renderElement = ({ title, id, onClick }: SwitcherElement, key) => {\n let className = [\n styles['switcher-element'],\n activeNow === id ? styles['switcher-element--active'] : '',\n ].join(' ');\n return (\n {\n if (activeNow !== id) {\n onClick();\n }\n }}\n >\n {title}\n \n );\n };\n\n return (\n
{elements.map(renderElement)}
\n );\n};\n","import React, { FC } from 'react';\nimport styles from './title.module.scss';\n\ninterface AddInfoItemProps {\n subtitle?: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport const Title: FC = ({\n icon,\n subtitle,\n children,\n className = '',\n}) => {\n return (\n
\n
\n {icon}
{children}
\n
\n {subtitle &&
{subtitle}
}\n
\n );\n};\n","import React, { CSSProperties, FC, MouseEventHandler } from 'react';\nimport styles from './check-box.module.scss';\n\n/**\n *\n * @types\n * @Component CheckBox\n *\n */\n\ntype Props = {\n color?: string;\n onChange?: any;\n disabled?: boolean;\n checked?: boolean;\n onClick?: MouseEventHandler;\n className?: string;\n style?: CSSProperties;\n state?: string;\n};\n\nconst CheckBox: FC = ({ onChange, checked, state = undefined }) => {\n switch (state) {\n case 'none':\n return ;\n case 'half':\n return ;\n case 'full':\n return ;\n default:\n return (\n \n onChange !== undefined ? onChange(checked) : null\n }\n />\n );\n }\n};\n\nexport { CheckBox };\n","import React, {\n FC,\n memo,\n InputHTMLAttributes,\n ChangeEventHandler,\n} from 'react';\nimport { classNames } from 'src/shared/lib';\nimport styles from './new-checkbox.module.scss';\n\ninterface NewCheckboxProps extends InputHTMLAttributes {\n label?: string;\n className?: string;\n isReverseOrder?: boolean;\n alignCheckbox?: 'left' | 'right';\n onChange?: ChangeEventHandler;\n}\n\nexport const NewCheckbox: FC = memo((props) => {\n const {\n label,\n className,\n isReverseOrder = false,\n alignCheckbox = 'left',\n onChange,\n ...otherProps\n } = props;\n \n return !isReverseOrder ? (\n \n ) : (\n \n \n );\n});\n","import React, { Component } from 'react';\nimport './multiple-select.scss';\n\n/**\n *\n * @types\n * @Component MultipleSelect\n *\n */\n\ntype IProps = {\n disabled?: boolean;\n className?: string;\n defaultValue?: string | string[];\n value?: any;\n initialState?: any;\n onChange?(\n value: string[],\n event: React.SyntheticEvent | undefined | any\n ): void;\n};\n\nclass MultipleSelect extends Component {\n state = {\n selected:\n (this.props.initialState &&\n this.props.initialState.reduce((obj, next) => {\n obj[next] = true;\n return obj;\n }, {})) ||\n {},\n };\n render() {\n const { selected } = this.state;\n return (\n
\n {this.props.value &&\n this.props.value.map(({ value, name }) => {\n return (\n {\n this.setState(\n {\n selected: {\n ...selected,\n [value]: !selected[value],\n },\n },\n () => {\n //@ts-ignore\n this.props.onChange(\n Object.keys(this.state.selected)\n .filter(\n (i) =>\n this.state.selected[\n i\n ]\n )\n .map((i) => i)\n );\n }\n );\n }}\n key={value}\n >\n {name || value}\n
\n \n );\n })}\n
\n );\n }\n}\n\nexport { MultipleSelect };\n","import React, {\n MouseEventHandler,\n ElementType,\n ReactNode,\n CSSProperties,\n FC,\n} from 'react';\n\nimport './spin.scss';\n\ninterface CSSModule {\n [className: string]: string;\n}\n\n/**\n *\n * @types\n * @Component Spin\n *\n */\n\ntype Props = {\n onClick?: MouseEventHandler;\n size?: any;\n children?: ReactNode;\n id?: string;\n key?: number;\n className?: string;\n style?: CSSProperties;\n active?: boolean;\n block?: boolean;\n color?: string;\n disabled?: boolean;\n tag?: ElementType;\n cssModule?: CSSModule;\n fetch?: number;\n};\n\nconst Spin: FC = ({ onClick: handleClick, color, fetch = 0 }) => {\n return (\n 0 ? 'spin-container show' : 'spin-container hide'\n }\n style={{ color }}\n onClick={handleClick}\n >\n
\n
\n );\n};\n\nexport { Spin };\n","import React, { FC } from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport './commission-info.scss';\n\ntype Props = {\n id: string;\n};\n\nconst CommissionInfo: FC = ({ id }) => {\n return (\n \n
\n
\n
Дополнительная комиссия
\n \n
\n

\n для клиентов,обслуживающихся в подразделениях\n Москвы и Московской области (взимается в последный день\n месяца, в случае,если объем операций по терминалу за текущий\n месяц не достиг 300 000 руб.) - 700 рублей.\n

\n
\n

\n для клиентов,обслуживающихся в филиалах Банка\n (взимается в последный день месяца,в случае,если объем\n операций по терминалу за текущий месяц не достиг 100 000\n руб.) - 400 рублей.\n

\n
\n \n );\n};\n\nexport { CommissionInfo };\n","import React, { FC } from 'react';\nimport styles from './light-table.module.scss';\n\ninterface LightTableProps {\n borderTop?: boolean;\n thead?: React.ReactNode;\n}\n\nexport const LightTable: FC = ({\n borderTop,\n thead,\n children,\n}) => {\n const computedClassName = [\n styles['light-table'],\n Boolean(borderTop) ? styles['border-top'] : '',\n ].join(' ');\n\n return (\n
\n \n {thead}\n {children}\n
\n
\n );\n};\n","import React, { FC } from 'react';\nimport styles from './light-table.module.scss';\n\ninterface LightTableRowProps {\n firstTD: string;\n lastTD: string | React.ReactNode;\n boldLastTD?: boolean;\n}\n\nexport const LightTableRow: FC = ({\n firstTD,\n lastTD,\n boldLastTD,\n}) => {\n return (\n <>\n {firstTD && lastTD && (\n \n {firstTD}\n \n {lastTD}\n \n \n )}\n \n );\n};\n","import React, {\n FC,\n ReactNode,\n useRef,\n useState,\n useEffect,\n useCallback,\n MutableRefObject,\n} from 'react';\nimport { classNames } from 'src/shared/lib';\nimport { Portal, Button } from 'src/shared/ui';\nimport styles from './modal.module.scss';\n\ntype TimerId = MutableRefObject>;\n\ninterface ModalProps {\n className?: string;\n header?: string;\n children?: ReactNode;\n isConfirm?: boolean;\n isForm?: boolean;\n isConfirmToClose?: boolean;\n isOpen?: boolean;\n isClosed?: boolean;\n disabledActionButton?: boolean;\n closeButton?: string;\n actionButton?: string;\n onClose?: () => void;\n onScroll?: (e: React.UIEvent) => void;\n onAction?: () => void;\n autoComplete?: string;\n}\n\n/*\n * В функцию onAction необходимо передавать setOpenModal(false).\n * Управление окнами осуществляется на уровне выше\n */\n\nconst ANIMATION_DELAY = 300;\n\nexport const Modal: FC = (props) => {\n const {\n className = '',\n header,\n children,\n closeButton,\n actionButton,\n isConfirm,\n isForm = false,\n isConfirmToClose = false,\n disabledActionButton = false,\n isOpen,\n isClosed,\n onScroll,\n onClose,\n onAction,\n } = props;\n const [isClosing, setIsClosing] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n const TagContent = isForm ? 'form' : 'div';\n\n const openAnimationTimerRef = useRef() as TimerId;\n const closeAnimationTimerRef = useRef() as TimerId;\n\n const onContentClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n };\n\n const closeModal = useCallback((func?: () => void) => {\n setIsClosing(true);\n openAnimationTimerRef.current = setTimeout(() => {\n func?.();\n setIsClosing(false);\n }, ANIMATION_DELAY);\n }, []);\n\n const onCloseHandler = useCallback(() => {\n if (!isConfirmToClose) {\n closeModal(onClose);\n } else {\n onClose?.();\n }\n }, [onClose, isConfirmToClose, closeModal]);\n\n const onActionHandler = useCallback(\n (e) => {\n if (isForm) {\n e.preventDefault();\n onAction?.();\n } else {\n closeModal(onAction);\n }\n },\n [isForm, onAction, closeModal]\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onCloseHandler();\n }\n },\n [onCloseHandler]\n );\n\n useEffect(() => {\n if (isClosed) onCloseHandler();\n }, [isClosed, onCloseHandler]);\n\n useEffect(() => {\n if (isOpen && !isMounted) {\n setIsMounted(true);\n }\n if (!isOpen && isMounted) {\n closeAnimationTimerRef.current = setTimeout(() => {\n setIsMounted(false);\n }, ANIMATION_DELAY);\n }\n }, [isOpen, isMounted]);\n\n useEffect(() => {\n if (isMounted) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n clearTimeout(openAnimationTimerRef.current);\n clearTimeout(closeAnimationTimerRef.current);\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isMounted, onKeyDown]);\n\n const stylesModal = classNames(\n styles.modal,\n {\n [styles.opened]: isMounted,\n [styles.closing]: isClosing,\n },\n []\n );\n\n const stylesContent = classNames(\n styles.content,\n { [styles.confirm]: isConfirm },\n [className]\n );\n\n return isOpen ? (\n \n
\n
\n \n {header && (\n
\n

{header}

\n \n
\n )}\n {children && (\n \n {children}\n
\n )}\n
\n {closeButton && (\n \n {closeButton}\n \n )}\n {actionButton && (\n \n {actionButton}\n \n )}\n
\n \n
\n \n
\n ) : null;\n};\n","import React, { FC } from 'react';\nimport { classNames } from 'src/shared/lib';\nimport styles from './modal-field.module.scss';\n\ntype ModalFieldAlign = 'align-start' | 'align-center' | 'align-end';\n\ninterface ModalFieldProps {\n label?: string;\n className?: string;\n numberOfColumns?: 1 | 2;\n justifyInput?: 'left' | 'right';\n alignField?: ModalFieldAlign;\n errorMessage?: string;\n textField?: boolean;\n boldLabel?: boolean;\n dataTip?: boolean;\n dataFor?: string;\n}\n\nexport const ModalField: FC = (props) => {\n const {\n label,\n numberOfColumns = 2,\n errorMessage,\n dataTip,\n dataFor,\n children,\n justifyInput = 'left',\n alignField = 'align-center',\n textField = false,\n boldLabel,\n className,\n } = props;\n\n if (numberOfColumns === 1) {\n return (\n \n {children}\n {errorMessage && (\n
{errorMessage}
\n )}\n \n );\n }\n\n return (\n \n \n {label}\n \n \n {children}\n {errorMessage && (\n
{errorMessage}
\n )}\n \n \n );\n};\n","import React, { FC, memo, TextareaHTMLAttributes } from 'react';\nimport { classNames } from 'src/shared/lib';\nimport styles from './textarea.module.scss';\n\ntype TextareaTheme = 'modal-input';\n\ntype HTMLTextareaProps = Omit<\n TextareaHTMLAttributes,\n 'readOnly'\n>;\n\ninterface TextareaProps extends HTMLTextareaProps {\n className?: string;\n theme?: TextareaTheme;\n readonly?: boolean;\n}\n\nexport const Textarea: FC = memo((props) => {\n const { className, theme = 'modal-input', readonly, ...otherProps } = props;\n\n return (\n \n );\n});\n","import React, { useRef, useState } from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport { SelectOption } from '..';\nimport { useClickOutside } from 'src/shared/lib';\n\ninterface Props {\n options: SelectOption[];\n onChange: React.Dispatch>;\n selected: string[];\n}\n\nconst Checked = ({ active }: { active?: boolean }) => (\n \n \n\n \n \n);\n\nexport const DropdownMultiselect = ({ options, onChange, selected }: Props) => {\n const contentRef = useRef(null);\n const [open, setOpen] = useState(false);\n\n const toggleDropdown = () => {\n setOpen((prev) => !prev);\n };\n\n const ref = useRef(null);\n\n useClickOutside(() => setOpen(false), ref);\n\n return (\n
\n
\n Отображение инвентаря\n
\n\n e.stopPropagation()}\n >\n {options.map((option, i) => (\n {\n e.stopPropagation();\n onChange((prev) => {\n let copy = [...prev];\n copy.includes(option.value)\n ? (copy = copy.filter(\n (value) => value !== option.value\n ))\n : copy.push(option.value);\n return copy;\n });\n }}\n className={styles['option']}\n key={option.value}\n >\n \n {option.content}\n
\n ))}\n \n \n );\n};\n","import React from 'react';\nimport { classNames } from 'src/shared/lib';\nimport styles from './styles.module.scss';\n\nenum SelectorFillerVariant {\n HALF_SELECTED = 'halfSelected',\n REGULAR = 'regular',\n}\n\ninterface Props {\n selected: boolean;\n color: string;\n selectorFillVariant?: SelectorFillerVariant;\n}\n\nexport const SelectorIcon = ({\n selected,\n selectorFillVariant = SelectorFillerVariant.REGULAR,\n color,\n}: Props) => {\n return (\n \n \n \n \n \n );\n};\n\nSelectorIcon.fillerVariant = SelectorFillerVariant;\n","import React from 'react';\nimport { Portal } from 'src/shared/ui';\nimport styles from './styles.module.scss';\n\ninterface Props {\n children: React.ReactNode;\n top: number;\n left: number;\n isDisplayed: boolean;\n transformX?: string;\n transformY?: string;\n}\n\nexport const FixedPositionTooltip = ({\n children,\n top,\n left,\n transformX,\n transformY,\n isDisplayed,\n}: Props) => {\n return isDisplayed ? (\n \n \n {children}\n \n \n ) : (\n <>\n );\n};\n","import React, { useState } from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\n\ninterface Props {\n children: React.ReactNode[];\n title?: string;\n icon?: JSX.Element;\n}\n\nexport const OverflowContainer = ({ children, title, icon }: Props) => {\n const [bounce, setBounce] = useState(false);\n\n const performBounce = () => {\n setBounce(true);\n setTimeout(() => setBounce(false), 1000);\n };\n\n return (\n
\n {(title || icon) && (\n

\n {title}\n \n {icon}\n \n

\n )}\n
{children}
\n
\n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\n\nenum Variant {\n BACKWARD = 'backward',\n FORWARD = 'forward',\n}\n\nconst ARROW_VARIANT_TO_STYLE_MAP: Record = {\n [Variant.BACKWARD]: styles['backward'],\n [Variant.FORWARD]: styles['forward'],\n};\n\nconst ACTIVE_COLOR = '#002E5A';\nconst DISABLED_COLOR = '#E0E0E0';\n\ninterface Props {\n variant: Variant;\n onClick: () => void;\n active: boolean;\n}\n\nexport const PaginatorArrow = ({ variant, active, onClick }: Props) => {\n return (\n active && onClick()}\n width=\"17\"\n height=\"15\"\n viewBox=\"0 0 17 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={classNames(ARROW_VARIANT_TO_STYLE_MAP[variant], {\n [styles['wrapper']]: true,\n [styles['disabled']]: !active,\n })}\n >\n \n \n );\n};\n\nPaginatorArrow.variant = Variant;\n","import React, { useRef, useState } from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport { useClickOutside } from 'src/shared/lib';\n\ninterface ChevronProps {\n open: boolean;\n}\n\nconst ChevronIcon = ({ open }: ChevronProps) => (\n \n \n \n \n \n \n \n \n \n \n);\n\ninterface Props {\n onChange: (option: number) => void;\n options: number[];\n selected: number;\n}\n\nexport const PaginatorSelect = ({ onChange, options, selected }: Props) => {\n const [isOpen, setIsOpen] = useState(false);\n const toggleIsOpen = () => setIsOpen((prev) => !prev);\n const optionsRef = useRef(null);\n const inputRef = useRef(null);\n\n useClickOutside(() => setIsOpen(false), optionsRef, inputRef);\n\n return (\n
\n \n {selected}\n \n
\n \n {options.map((option) => (\n {\n onChange(option);\n setIsOpen(false);\n }}\n className={styles['option']}\n >\n {option}\n \n ))}\n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport styles from './styles.module.scss';\nimport { PaginatorArrow } from './paginator-arrow';\nimport { setPageSize } from 'src/redux/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { nextPage, previousPage, setOffset } from 'src/redux/actions/table';\nimport { PaginatorSelect } from './paginator-select';\n\ninterface Props {\n name: string;\n children: React.ReactNode;\n}\n\nexport const Paginator = ({ name, children }: Props) => {\n const dispatch = useDispatch();\n const pageSizeLocalstorageName = `${name}-pagesize`;\n const pageSize = useSelector((state) => state.table?.[name]?.pageSize);\n const offset = useSelector((state) => state.table?.[name]?.offset);\n const fetching = useSelector((state) => state.table?.[name]?.fetching);\n\n const totalCount = useSelector(\n (state) => state.table?.[name]?.totalCountForPagination\n );\n\n useEffect(() => {\n dispatch(\n setPageSize(\n name,\n Number(localStorage.getItem(pageSizeLocalstorageName)) || 10\n )\n );\n }, [dispatch, name, pageSizeLocalstorageName]);\n\n useEffect(() => {\n if (offset === undefined) {\n dispatch(setOffset(name, 0));\n }\n }, [dispatch, name, offset]);\n\n useEffect(() => {\n localStorage.setItem(pageSizeLocalstorageName, pageSize);\n }, [pageSize, pageSizeLocalstorageName]);\n\n const upperPaginationBoundary =\n offset + pageSize < totalCount ? offset + pageSize : totalCount;\n\n const bottomPaginationBoundary = offset + 1;\n\n return (\n
\n {children}\n {\n
\n
\n \n Показано{' '}\n \n {totalCount && !fetching\n ? totalCount === '0'\n ? '0'\n : `${bottomPaginationBoundary} - ${upperPaginationBoundary}`\n : `0`}\n \n {` из `}\n \n {totalCount && !fetching ? totalCount : '0'}\n \n \n
\n dispatch(previousPage(name))}\n variant={PaginatorArrow.variant.BACKWARD}\n active={offset > 0 && !fetching}\n />\n dispatch(nextPage(name))}\n variant={PaginatorArrow.variant.FORWARD}\n active={\n offset + pageSize < totalCount && !fetching\n }\n />\n
\n
\n
\n \n Значений на странице\n \n\n {\n dispatch(setPageSize(name, number));\n localStorage.setItem(name, number.toString());\n }}\n selected={pageSize}\n options={[10, 20, 50, 100]}\n />\n
\n
\n }\n
\n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\n\ninterface Props {\n onClick: () => void;\n title?: string;\n customIcon?: string;\n}\n\nexport const AddIcon = ({ onClick, title, customIcon = 'mdi-add' }: Props) => {\n return (\n \n );\n};\n","import React, { FC, memo, useCallback } from 'react';\nimport { Modal } from 'src/shared';\nimport styles from './advertising-of-ecommerce-service.module.scss';\n\ninterface Props {\n isOpen: boolean;\n setOpen: (arg: boolean) => void;\n}\n\nexport const AdvertisingOfEcommerceService: FC = memo((props) => {\n const { isOpen, setOpen } = props;\n\n const onClose = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n return (\n \n

\n Новый сервис электронной торговли от СДМ-Банка – это простой и\n быстрый способ выхода вашего бизнеса в онлайн.\n

\n

\n Теперь нет необходимости создавать или дорабатывать свой сайт,\n нанимать программистов и получать лицензии.\n

\n

\n Способ оплаты, который выведет ваш бизнес в интернет быстро и\n просто – платёжная ссылка.\n

\n

\n Для подключения этого инструмента нужно отправить заявку через\n ваш Личный кабинет.\n

\n

\n Всё остальное сделает сервис электронной торговли от
\n СДМ-Банка.\n

\n

\n Подробную информацию вы можете получить по телефону
\n 8 800 200 02 23 или по\n электронной почте sdm@sdm.ru.\n

\n \n );\n});\n","import React, { FC, memo, useState } from 'react';\nimport { Link, NavLink } from 'react-router-dom';\nimport { isMobile } from 'react-device-detect';\nimport { Roles } from 'src/app/config';\nimport { navRoutes } from 'src/app/config/URL';\nimport { AdvertisingOfEcommerceService } from 'src/features/advertising-of-ecommerce-service';\nimport { isPermit, getAppTitle } from 'src/shared/lib';\nimport { HelpIcon, InventoryIcon, StatsIcon } from 'src/shared/ui';\n\nexport const Navigation: FC = memo(() => {\n const [showServiceAds, setShowServiceAds] = useState(false);\n const isRoleEcomm = isPermit(Roles.ECOMM);\n const isRoleAdmin = isPermit(Roles.ADMIN);\n\n const stylesSectionLink = isMobile\n ? { paddingLeft: 50, display: 'block', marginTop: 30 }\n : { paddingLeft: 47 };\n\n const showAdvertisingEcommService = (e) => {\n if (!isRoleEcomm) {\n setShowServiceAds(true);\n e.preventDefault();\n }\n };\n\n return getAppTitle() === 'bank' ? (\n <>\n {isPermit(Roles.OPERATIONS) && (\n \n Операции\n \n )}\n\n {isPermit(Roles.OPERATIONS) && (\n \n Операции СБП\n \n )}\n {isPermit(Roles.SETTLEMENT) && (\n \n Возмещения\n \n )}\n {isRoleAdmin && (\n \n Возвраты\n \n )}\n {isPermit(Roles.EINVOICE) && (\n \n Счета\n \n )}\n {isPermit(Roles.CASHBOX) && (\n \n Реестры\n \n )}\n {isPermit(Roles.CASHBOX) && (\n \n Реестры ПЛАТ-ФОРМЫ\n \n )}\n {isPermit(Roles.CASHBOX) && (\n \n Реестры в работе\n \n )}\n {isPermit(Roles.COMPANY_INFO) && (\n \n Пользователи\n \n )}\n {isPermit(Roles.COMPANY_INFO) && (\n \n Управление ТСП\n \n )}\n {isPermit(Roles.COMPANY_INFO) && (\n \n Группы ТСП\n \n )}\n {isPermit(Roles.USER_MANAGEMENT) && (\n \n Управление пользователями\n \n )}\n {isRoleAdmin && (\n \n Ключи мерчанта\n \n )}\n \n ) : (\n <>\n {isPermit(Roles.STATISTIC) && (\n \n {StatsIcon}\n Статистика\n \n )}\n
\n {isPermit(Roles.OPERATIONS) && (\n \n Операции\n \n )}\n {isPermit(Roles.OPERATION_SBP) && (\n \n Операции СБП\n \n )}\n \n Онлайн заказы\n \n {isPermit(Roles.SETTLEMENT) && (\n \n Возмещения\n \n )}\n {isPermit(Roles.DYNAMIC) && (\n \n Динамика\n \n )}\n
\n {isPermit(Roles.INVENTORY) && (\n \n \n {InventoryIcon}\n \n Инвентарь\n \n )}\n
\n {isRoleAdmin && (\n \n Терминалы\n \n )}\n\n \n Электронная коммерция\n \n\n \n Счета\n \n {/* TODO нет макета для этой странице */}\n {/**/}\n {/* QR-коды для оплаты*/}\n {/**/}\n
\n\n \n {HelpIcon}\n Помощь и справка\n \n\n {!isRoleEcomm && (\n \n )}\n \n );\n});\n","import * as type from '../constants';\nimport { get, post } from '../../shared/lib/request-wrapper';\nimport { URL } from 'src/app/config';\nimport { log } from 'src/shared/lib';\n\nexport function getTerminals() {\n return (dispatch) => {\n return post(URL.terminalsUrl)\n .then((response) => {\n let payload = response.data.payload;\n payload.forEach((company, id) =>\n company.terminalGroups.forEach(\n (group) => (group.id = group.id || `g${id}`)\n )\n );\n dispatch({\n type: type.GET_TERMINALS,\n payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_TERMINALS_FAILED,\n error: response.data,\n })\n );\n };\n}\n\nexport function getInactivePeriodPerDays() {\n return (dispatch) => {\n return get(URL.inactivePeriodPerDays)\n .then((response) => {\n const payload = response.data;\n dispatch({\n type: type.SET_TERMINALS_INACTIVE_PERIOD_PER_DAYS,\n payload,\n });\n })\n .catch((response) => log(response));\n };\n}\n\nexport function getInactiveStatus() {\n return (dispatch) => {\n return get(URL.terminalInactiveRequest)\n .then((response) => {\n dispatch({\n type: type.SET_TERMINAL_INACTIVE,\n payload: response.data.payload,\n });\n })\n .catch((r) => log(r));\n };\n}\n\nexport function getRcMsg() {\n return (dispatch) => {\n return get(URL.operationsRcMessagesUrl)\n .then((response) => {\n dispatch({\n type: type.GET_RCMSG,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_RCMSG_FAILED,\n error: response.data,\n })\n );\n };\n}\n\nexport function setIdnSbp(idnSbp) {\n return (dispatch) => {\n dispatch({\n type: type.SET_IDN_SBP,\n payload: idnSbp,\n });\n };\n}\n\nexport function getSBPRcMsg() {\n return (dispatch) => {\n return get(URL.operationsSBPRcMessagesUrl)\n .then((response) => {\n dispatch({\n type: type.GET_SBP_RCMSG,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: type.GET_SBP_RCMSG_FAILED,\n error: response.data,\n })\n );\n };\n}\n","import * as type from '../../redux/constants';\nimport { get, post } from '../../shared/lib/request-wrapper';\nimport { createNotification } from './notification';\nimport { Roles, navRoutes, URL } from 'src/app/config';\nimport { getAppTitle } from 'src/shared/lib';\nimport { getInactiveStatus } from './terminals';\n\nexport function logIn(credentials, callback, history) {\n return (dispatch, state) => {\n if (state().auth.submitted) {\n return;\n }\n dispatch({ type: type.LOG_IN });\n let params = new URLSearchParams();\n params.append('login', credentials.login);\n params.append('password', credentials.password);\n\n return post(URL.loginUrl, params)\n .then((response) => {\n dispatch({\n type: type.LOG_IN_SUCCESS,\n payload: response.data,\n });\n return get(URL.userInfoUrl);\n })\n .then((response) => {\n return response.data.payload;\n })\n .then((payload) => {\n dispatch({\n type: type.GET_USER_AFTER_LOGIN_ROLES_SUCCESS,\n payload,\n });\n\n if (getAppTitle() === 'merchant') {\n dispatch(getInactiveStatus());\n }\n\n const redirectUrl = redirectUrlByPermission(\n payload.roles,\n payload.companyRoles\n );\n history?.push(redirectUrl);\n })\n .catch((response) => {\n if (response.data && response.data.code === 400) {\n dispatch(\n createNotification(\n {\n title: 'Ошибка',\n message: 'Проверьте вводимые данные',\n },\n 'error'\n )\n );\n }\n if (response.data && response.data.code === 4) {\n dispatch(\n createNotification(\n {\n title: 'Смена пароля',\n message: 'Необходимо сменить пароль',\n },\n 'info'\n )\n );\n callback();\n return;\n }\n if (response.data && response.data.code === 3) {\n dispatch(\n createNotification(\n {\n title: 'Блокировка',\n message:\n 'Пользователь временно заблокирован.\\n Попробуйте через несколько минут.',\n },\n 'error'\n )\n );\n } else {\n if (!(response.status >= 500)) {\n dispatch(\n createNotification(\n {\n title: 'Ошибка',\n message: 'Проверьте вводимые данные',\n },\n 'error'\n )\n );\n }\n }\n dispatch({ type: type.LOG_IN_FAILED, error: response.data });\n });\n };\n}\n\nexport function activateUser(credentials, history) {\n return (dispatch, state) => {\n if (state().auth.submitted) {\n return;\n }\n dispatch({ type: type.LOG_IN });\n let { password, code, token } = credentials;\n return post(URL.userActivateUrl, { password, code, token })\n .then((response) => {\n dispatch({\n type: type.ACTIVATE_USER_SUCCESS,\n payload: response.data,\n });\n dispatch(\n createNotification(\n {\n title: 'Активация',\n message: 'Активация прошла успешно',\n },\n 'success'\n )\n );\n if (history) history.push(URL.loginUrl);\n })\n .catch((response) => {\n dispatch({\n type: type.ACTIVATE_USER_FAILED,\n error: response.data,\n });\n });\n };\n}\n\nexport function forgotPassword(credentials, history) {\n return (dispatch, state) => {\n if (state().auth.submitted) {\n return;\n }\n dispatch({ type: type.LOG_IN });\n let { email } = credentials;\n return post(URL.forgotPasswordRequestUrl, { email })\n .then((response) => {\n dispatch({\n type: type.FORGOT_PASSWORD_USER_SUCCESS,\n payload: response.data,\n });\n dispatch(\n createNotification(\n {\n title: 'Восстановление пароля',\n message:\n 'Инструкция направлена вам на указанный email',\n },\n 'info'\n )\n );\n if (history) history.push(URL.loginUrl);\n })\n .catch((response) => {\n dispatch({\n type: type.FORGOT_PASSWORD_USER_FAILED,\n error: response.data,\n });\n });\n };\n}\n\nexport function changePassword(request, history) {\n return (dispatch) => {\n return post(URL.changePasswordUrl, request)\n .then((response) => {\n dispatch({\n type: type.CHANGE_PASSWORD_SUCCESS,\n payload: response.data,\n });\n if (history) history.push(URL.loginUrl);\n })\n .then(() => {\n dispatch(\n createNotification(\n {\n title: 'Пароль сменен',\n message: 'Смена пароля успешна',\n },\n 'success'\n )\n );\n })\n .catch((response) => {\n dispatch(\n createNotification(\n {\n title: 'Ошибка',\n message: response.data.message,\n },\n 'error'\n )\n );\n dispatch({\n type: type.CHANGE_PASSWORD_FAILED,\n error: response.data,\n });\n });\n };\n}\n\nexport function saveExpiredUserEmail(email) {\n return (dispatch) =>\n dispatch({\n type: type.CHANGE_PASSWORD_USER_EXPIRED,\n payload: email,\n });\n}\n\nexport function logOut() {\n return (dispatch) =>\n post(URL.logoutUrl)\n .then((response) =>\n dispatch({\n type: type.LOG_OUT_AND_CLEAR_LOCAL,\n payload: response,\n })\n )\n .catch((response) =>\n dispatch({\n type: type.LOG_OUT_AND_CLEAR_LOCAL,\n error: response.response,\n })\n );\n}\n\nexport function redirectUrlByPermission(roles, companyRoles) {\n if (!companyRoles && getAppTitle() === 'bank') {\n if (roles.includes(Roles.ADMIN)) return navRoutes.company;\n if (roles.includes(Roles.COMPANY_INFO)) return navRoutes.company;\n if (roles.includes(Roles.USER_MANAGEMENT)) return navRoutes.users;\n if (roles.includes(Roles.OPERATIONS)) return navRoutes.operations;\n if (roles.includes(Roles.ADMIN)) return navRoutes.cashBoxes;\n if (roles.includes(Roles.CASHBOX)) return navRoutes.platformCashBox;\n if (roles.includes(Roles.SETTLEMENT)) return navRoutes.settlement;\n return navRoutes.settings;\n }\n let commonRoles = roles.filter((role) => companyRoles.indexOf(role) > 0);\n let removeValFrom = (roles) => [\n roles.indexOf(Roles.ADMIN),\n roles.indexOf(Roles.SETTING_USER),\n roles.indexOf(Roles.REFUND),\n ];\n let filteredRoles = roles.includes(Roles.ADMIN)\n ? companyRoles.filter(\n (value, index) =>\n removeValFrom(companyRoles).indexOf(index) === -1\n )\n : commonRoles.filter(\n (value, index) => removeValFrom(commonRoles).indexOf(index) === -1\n );\n if (filteredRoles.includes(Roles.STATISTIC)) return navRoutes.statistic;\n if (filteredRoles.includes(Roles.DYNAMIC)) return navRoutes.dynamics;\n if (filteredRoles.includes(Roles.OPERATIONS))\n return navRoutes.operationLastUrl;\n if (filteredRoles.includes(Roles.SETTLEMENT))\n return navRoutes.settlementLastUrl;\n return navRoutes.support.main;\n}\n","import React from 'react';\n\ntype Props = {\n color?: string\n}\n\nexport const ArrowRight: React.FC = (props) => {\n const { color = '#ffffff' } = props;\n\n return (\n \n \n \n );\n};","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { NavLink } from 'react-router-dom';\nimport { logOut } from 'src/redux/actions/auth';\nimport { getAppTitle } from 'src/shared/lib';\nimport { isPermit } from 'src/shared/lib';\nimport { navRoutes, Roles } from '.';\nimport { ArrowRight } from '../../shared/ui/dropdown/arrow-right';\nimport { isDesktop } from 'react-device-detect';\n\nexport const UserDropdownNavigation: React.FC = () => {\n const dispatch = useDispatch();\n return config[getAppTitle()](dispatch);\n};\n\nconst config = {\n bank: (dispatch) => (\n \n ),\n merchant: (dispatch) => (\n \n ),\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { getAppTitle } from 'src/shared/lib';\nimport { navRoutes } from './URL';\n\nexport const FooterNavigation: React.FC = () => {\n return footerNavigation[getAppTitle()]();\n};\n\nconst footerNavigation = {\n bank: () => (\n <>\n Техническая поддержка\n Помощь\n Как подключить\n \n ),\n merchant: () => (\n <>\n Техническая поддержка\n Помощь\n Как подключить\n \n ),\n};\n","export const Roles = {\n ADMIN: 'ADMIN',\n ECOMM: 'ECOMM',\n EINVOICE: 'EINVOICE',\n SCHEDULE: 'SCHEDULE',\n DYNAMIC: 'DYNAMIC',\n INVENTORY: 'INVENTORY',\n OPERATIONS: 'OPERATIONS',\n OPERATION_SBP: 'OPERATIONS_SBP',\n STATISTIC: 'STATISTIC',\n REFUND: 'REFUND',\n SETTING_USER: 'SETTING_USER',\n SETTLEMENT: 'SETTLEMENT',\n\n COMPANY_INFO: 'COMPANY_INFO',\n USER_MANAGEMENT: 'USER_MANAGEMENT',\n CASHBOX: 'CASHBOX',\n};\n\nexport const BankRoles = {\n ADMIN: 'ADMIN',\n COMPANY_INFO: 'COMPANY_INFO',\n USER_MANAGEMENT: 'USER_MANAGEMENT',\n OPERATIONS: 'OPERATIONS',\n SETTLEMENT: 'SETTLEMENT',\n CASHBOX: 'CASHBOX',\n EINVOCE: 'EINVOICE',\n};\n","import React, { Component } from 'react';\nimport { filter } from 'rxjs/operators';\n\nimport { localLoadInt, localSave } from 'src/shared/lib/localStorage';\nimport { sendToSubject } from 'src/shared/lib/util';\n\nimport './container.scss';\n\nexport default class Container extends Component {\n constructor(props) {\n super(props);\n this.state = {\n bounce: false,\n };\n this.send = sendToSubject.bind(this);\n }\n\n bounce() {\n this.setState({ bounce: true });\n setTimeout(() => this.setState({ bounce: false }), 1000);\n }\n\n render() {\n let bounce = this.state.bounce ? 'bounce' : '';\n let header = this.props.header ? (\n
\n

\n {this.props.headerName}\n

\n this.bounce()}>\n {this.props.icon}\n \n
\n ) : null;\n let componentCls = this.props.background\n ? 'component-container component-container--background'\n : 'component-container';\n\n let containerCls = this.props.table\n ? 'container-content container-table'\n : 'container-content';\n return (\n
\n {header}\n
\n {this.props.subject\n ? React.cloneElement(this.props.children, {\n subject: this.props.subject,\n })\n : this.props.children}\n
\n {this.props.footer ? (\n \n ) : null}\n
\n );\n }\n}\n\nclass PageSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n size: this.getRange(),\n offset: this.getOffset(),\n end: undefined,\n fetch: false,\n };\n this.send = sendToSubject.bind(this);\n }\n\n // TODO 637: look into pagintation saves for new paginator\n componentDidMount() {\n if (this.props.subject) {\n this.subscription = this.props.subject\n .pipe(\n filter(\n (s) => s.dropOffset !== undefined || s.end !== undefined\n )\n )\n .subscribe((s) => {\n if (s.dropOffset !== undefined) this.dropOffset();\n if (s.end !== undefined) {\n this.setState({ end: s.end, fetch: false }, () =>\n localSave(\n `${this.props.name}-offset`,\n this.state.offset\n )\n );\n }\n this.setState({ isEmpty: s.isEmpty });\n });\n this.send({ size: this.state.size, offset: this.state.offset });\n }\n }\n\n changePage(e, sendMessage = true) {\n if (!this.state.fetch && e !== this.state.offset) {\n this.setState({ offset: e, fetch: sendMessage });\n localSave(`${this.props.name}-offset`, e);\n if (sendMessage) this.send({ size: this.state.size, offset: e });\n }\n }\n\n dropOffset() {\n this.changePage(1, false);\n }\n\n getRange() {\n let range = undefined;\n if (this.props.name) {\n range = localLoadInt(`${this.props.name}-range`);\n }\n return range ? range : 10;\n }\n\n getOffset() {\n let offset = undefined;\n if (this.props.name) {\n offset = localLoadInt(`${this.props.name}-offset`);\n }\n return offset ? offset : 1;\n }\n\n setRange(e) {\n let updateOffset =\n Math.trunc(((this.state.offset - 1) * this.state.size) / e) + 1;\n this.setState({ size: e, offset: updateOffset });\n this.send({ size: e, offset: updateOffset });\n if (this.props.name) {\n localSave(`${this.props.name}-range`, e);\n }\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n pagination = () => {\n let defaultClassName = ' pagination-item ';\n let header = Страница: ;\n\n let offset = (r) => {\n if (r === this.state.offset) return 'pagination_active';\n if (this.state.end >= 2) return defaultClassName;\n if (this.state.end === 1)\n return r > this.state.offset + 1 ? 'hide' : defaultClassName;\n if (this.state.end <= 0)\n return r >= this.state.offset ? 'hide' : defaultClassName;\n return defaultClassName;\n };\n\n if (this.state.offset === 1) {\n return (\n \n {header}\n this.changePage(1)}\n >\n 1\n \n this.changePage(2)}\n >\n 2\n
\n this.changePage(3)}\n >\n 3\n
\n \n );\n }\n if (this.state.offset === 2) {\n return (\n \n {header}\n this.changePage(1)}\n >\n 1\n \n this.changePage(2)}\n >\n 2\n \n this.changePage(3)}\n >\n 3\n \n this.changePage(4)}\n >\n 4\n \n \n );\n }\n if (this.state.offset === 3) {\n return (\n \n {header}\n this.changePage(1)}\n >\n 1\n \n this.changePage(2)}\n >\n 2\n \n this.changePage(3)}\n >\n 3\n \n this.changePage(4)}\n >\n 4\n \n this.changePage(5)}\n >\n 5\n \n \n );\n }\n if (this.state.offset >= 4) {\n return (\n \n {header}\n {this.state.offset > 4 ? (\n
\n this.changePage(1)}\n >\n 1\n \n ...\n
\n ) : null}\n\n this.changePage(this.state.offset - 2)}\n >\n {this.state.offset - 2}\n
\n this.changePage(this.state.offset - 1)}\n >\n {this.state.offset - 1}\n \n this.changePage(this.state.offset)}\n >\n {this.state.offset}\n \n this.changePage(this.state.offset + 1)}\n >\n {this.state.offset + 1}\n \n this.changePage(this.state.offset + 2)}\n >\n {this.state.offset + 2}\n \n \n );\n }\n };\n\n render() {\n return (\n
\n {this.state.end >= -0 ? {this.pagination()} : null}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport { Chart } from 'chart.js';\nimport './dynamic-chart.scss';\nimport { ticksFormatter } from '../../../shared/lib/util';\n\nexport default class DynamicChart extends Component {\n constructor(props) {\n super(props);\n this.ticksFormatter = ticksFormatter.bind(this);\n this.chart = null;\n this.state = {\n chartConfig: {\n chartType: 'line',\n data: {\n labels: [],\n datasets: [\n {\n label: '',\n data: [],\n backgroundColor: 'rgb(198, 235, 189)',\n borderColor: 'rgb(198, 235, 189)',\n borderWidth: 3,\n lineTension: 0.5,\n pointRadius: 1.5,\n fill: false,\n },\n {\n label: '',\n data: [],\n backgroundColor: 'rgb(208, 237, 248)',\n borderColor: 'rgb(208, 237, 248)',\n borderWidth: 3,\n lineTension: 0.5,\n pointRadius: 1.5,\n fill: false,\n },\n ],\n },\n options: {\n tooltips: {\n callbacks: {\n label: (label) => this.ticksFormatter(label.yLabel),\n },\n },\n legend: {\n display: true,\n position: 'top',\n },\n scales: {\n x: {\n stacked: false,\n scaleLabel: {\n display: true,\n labelString: '',\n },\n ticks: {\n min: 0,\n beginAtZero: true,\n },\n },\n y: {\n stacked: false,\n scaleLabel: {\n display: true,\n labelString: '',\n },\n ticks: {\n min: 0,\n beginAtZero: true,\n callback: this.ticksFormatter,\n },\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n },\n },\n };\n }\n\n clearChart() {\n if (this.chart) this.chart.destroy();\n }\n\n componentWillReceiveProps(newProps) {\n this.configureCharts(newProps);\n }\n\n componentDidMount() {\n this.configureCharts(this.props);\n }\n\n configureCharts(props) {\n if (props.data) {\n this.prepareData(props.data);\n let ctx = this.canvas.getContext('2d');\n this.clearChart();\n this.chart = new Chart(ctx, {\n type: this.state.chartConfig.chartType,\n data: this.state.chartConfig.data,\n options: this.state.chartConfig.options,\n });\n }\n }\n\n componentWillUnmount() {\n this.clearChart();\n }\n\n prepareData(data) {\n let newChart = this.state.chartConfig;\n newChart.options.scales = {\n y: { ...newChart.options.scales.y, scaleLabel: data.groupName },\n x: { ...newChart.options.scales.x, scaleLabel: data.name },\n };\n newChart.data.labels = [];\n newChart.data.datasets[0].data = [];\n newChart.data.datasets[0].label = data.paramNames[0];\n newChart.data.datasets[1].data = [];\n newChart.data.datasets[1].label = data.paramNames[1];\n data.tuples.forEach((item) => {\n newChart.data.labels.push(item.name);\n newChart.data.datasets[0].data.push(item.values[0]);\n newChart.data.datasets[1].data.push(item.values[1]);\n });\n this.setState({ chartConfig: newChart });\n }\n\n render() {\n return (\n
\n (this.canvas = e)} />\n
\n );\n }\n}\n","export enum IndicatorColorVariant {\n BLUE = 'blue',\n PURPLE = 'purple',\n GREEN = 'green',\n GRAY = 'gray',\n}\n\nexport const INDICATOR_COLOR_VARIANT_MAP: Record<\n IndicatorColorVariant,\n string\n> = {\n [IndicatorColorVariant.BLUE]: '#2F80ED',\n [IndicatorColorVariant.GREEN]: '#27AE60',\n [IndicatorColorVariant.PURPLE]: '#BB6BD9',\n [IndicatorColorVariant.GRAY]: '#BDBDBD',\n};\n\nexport type ShowGroupMode = 'all' | 'selected';\n","import React from 'react';\n\nexport const EmptyRowsIcon = () => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport { SelectorIcon } from 'src/shared/ui/selector-icon';\nimport {\n INDICATOR_COLOR_VARIANT_MAP,\n IndicatorColorVariant,\n} from 'src/entities/selector-with-groups/config';\n\ninterface Props {\n handleGroupClick: () => void;\n selectorColor: IndicatorColorVariant;\n isSelected: boolean;\n isFullySelected: boolean;\n name: string;\n}\n\nexport const GroupRow = ({\n name,\n handleGroupClick,\n selectorColor,\n isSelected,\n isFullySelected,\n}: Props) => {\n return (\n handleGroupClick()}\n className={classNames(styles['title-with-selector'], {\n [styles['selected']]: isSelected,\n })}\n >\n \n {name} \n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n INDICATOR_COLOR_VARIANT_MAP,\n IndicatorColorVariant,\n} from 'src/entities/selector-with-groups/config';\nimport { FixedPositionTooltip, SelectorIcon } from 'src/shared/ui';\nimport styles from './styles.module.scss';\nimport { detectTouchEventHold, classNames } from 'src/shared/lib';\nimport { isMobile } from 'react-device-detect';\n\ninterface Props {\n name: string;\n disabled?: boolean;\n onTerminalClick: () => void;\n isCurrentlySelected: () => boolean;\n selectorColor: IndicatorColorVariant;\n organisationName: string;\n tooltip?: JSX.Element;\n statusIcon?: JSX.Element;\n}\n\nexport const IndividualRow = ({\n name: terminalName,\n disabled,\n onTerminalClick,\n isCurrentlySelected,\n selectorColor,\n tooltip,\n statusIcon,\n}: Props) => {\n const rowReference = useRef(null);\n\n const [displayTooltip, setDisplayTooltip] = useState(false);\n const [tooltipAbsolutePosition, setTooltipAbsolutePosition] = useState({\n left: 0,\n top: 0,\n });\n\n useEffect(() => {\n if (rowReference?.current) {\n const { top, left } = rowReference.current.getBoundingClientRect();\n setTooltipAbsolutePosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n }, [displayTooltip]);\n\n useEffect(() => {\n const handleTerminalHold = () => {\n setDisplayTooltip(true);\n };\n const handleTerminalTouchEnd = () => {\n setDisplayTooltip(false);\n };\n\n const cleanup = detectTouchEventHold(\n handleTerminalHold,\n handleTerminalTouchEnd,\n rowReference.current\n );\n return cleanup;\n }, []);\n\n return (\n onTerminalClick()}\n className={classNames(styles['terminal'], {\n [styles['title-with-selector']]: true,\n [styles['filter-row']]: true,\n [styles['selected']]: isCurrentlySelected(),\n [styles['disabled']]: disabled,\n [styles['no-icon']]: !statusIcon,\n })}\n >\n \n {statusIcon}\n {\n // For mobile tooltips are handled by touchevent listener\n !isMobile && setDisplayTooltip(true);\n }}\n onMouseLeave={() => setDisplayTooltip(false)}\n className={styles['name']}\n >\n {terminalName}\n \n {tooltipAbsolutePosition.top && tooltipAbsolutePosition.left ? (\n \n {tooltip}\n \n ) : (\n <>\n )}\n \n );\n};\n","/**\n * Listens for hold on element, returns cleanup function that removes event listeners\n *\n */\nexport const detectTouchEventHold = (\n onHold: () => void,\n onRelease: () => void,\n element: HTMLElement | null\n) => {\n let timerId: number;\n const handleTerminalHold = () =>\n (timerId = window.setTimeout(() => onHold(), 500));\n\n const handleTerminalTouchEnd = () => {\n clearTimeout(timerId);\n onRelease();\n };\n\n element?.addEventListener('touchstart', handleTerminalHold);\n element?.addEventListener('touchend', handleTerminalTouchEnd);\n\n return () => {\n element?.removeEventListener('touchend', handleTerminalTouchEnd);\n element?.removeEventListener('touchstart', handleTerminalHold);\n };\n};\n","import React, { useEffect, useState } from 'react';\nimport styles from './styles.module.scss';\nimport { IndicatorColorVariant } from '../../config';\nimport { EmptyRowsIcon } from '../empty-rows-icon';\nimport { GroupRow } from '../group-row';\nimport { IndividualRow } from '../individual-row';\nimport { isArray } from 'lodash';\n\ninterface Props {\n selected: Array;\n data: OriginalDataType[];\n isCurrentlySelected: (terminalId: idType) => boolean;\n query: string;\n selectedOnly: boolean;\n inventoryDisplayFilters: string[];\n\n rowsGetter: (data: OriginalDataType) => RowDataType[] | RowDataType[][];\n rowNameGetter: (row: RowDataType) => string;\n handleRowClick: (id: idType) => void;\n isSelected: (id: idType) => boolean;\n getRowId: (data: RowDataType) => idType;\n groupsGetter: (data: OriginalDataType) => GroupDataType[];\n\n tooltip?: (\n data: RowDataType,\n tooltipTitle: string,\n dotColor?: IndicatorColorVariant\n ) => JSX.Element;\n\n statusIcon?: (data: RowDataType) => JSX.Element;\n\n isRowDisabled?: (data: RowDataType) => boolean;\n emptyPlaceholderText: string;\n\n groupNameGetter: (data: OriginalDataType) => string;\n handleGroupClick: (data: OriginalDataType) => void;\n isGroupSelected: (data: OriginalDataType) => boolean;\n isGroupFullySelected: (data: OriginalDataType) => boolean;\n\n filterData: (data: OriginalDataType[]) => OriginalDataType[];\n}\n\nconst colorVariants = Object.values(IndicatorColorVariant);\n\nexport const SelectorWithGroups = <\n OriginalDataType,\n GroupDataType,\n RowDataType,\n idType\n>({\n selected,\n data,\n handleRowClick,\n isCurrentlySelected,\n selectedOnly,\n inventoryDisplayFilters,\n query,\n\n tooltip,\n statusIcon,\n\n rowsGetter,\n rowNameGetter,\n getRowId,\n\n groupNameGetter,\n handleGroupClick,\n isGroupFullySelected,\n isGroupSelected,\n\n isRowDisabled,\n emptyPlaceholderText,\n\n filterData,\n}: Props) => {\n let currentColorNumber = 0;\n const nextColor = () => {\n currentColorNumber = (currentColorNumber + 1) % 3;\n };\n\n const [filteredData, setFilteredData] = useState(data);\n\n useEffect(() => {\n setFilteredData(filterData(data));\n }, [\n // TODO 634: figure out what to do with theese\n data,\n filterData,\n inventoryDisplayFilters,\n query,\n selected,\n selectedOnly,\n ]);\n\n const renderGroupName = (\n data: OriginalDataType,\n nameGetter: (data: OriginalDataType) => string,\n handleGroupClick: (data: OriginalDataType) => void,\n isSelected: (data: OriginalDataType) => boolean,\n isFullySelected: (data: OriginalDataType) => boolean\n ) => {\n return (\n handleGroupClick(data)}\n selectorColor={colorVariants[currentColorNumber]}\n />\n );\n };\n\n const renderRows = (\n data: OriginalDataType,\n rowsGetter: (data: OriginalDataType) => RowDataType[] | RowDataType[][],\n rowNameGetter: (row: RowDataType) => string,\n handleRowClick: (id: idType) => void,\n isSelected: (id: idType) => boolean\n ) => {\n let rowsGrouped = false;\n\n const renderedRows = rowsGetter(data).map(\n (rowOrRowsGroup: RowDataType[] | RowDataType) => {\n const renderRow = (row: RowDataType) => (\n isSelected(getRowId(row))}\n onTerminalClick={() => handleRowClick(getRowId(row))}\n selectorColor={colorVariants[currentColorNumber]}\n name={rowNameGetter(row)}\n tooltip={tooltip?.(\n row,\n groupNameGetter(data),\n colorVariants[currentColorNumber]\n )}\n disabled={isRowDisabled?.(row)}\n statusIcon={statusIcon?.(row)}\n />\n );\n\n if (isArray(rowOrRowsGroup)) {\n rowsGrouped = true;\n const rowsGroup = rowOrRowsGroup.map(renderRow);\n\n nextColor();\n return rowsGroup;\n }\n\n return renderRow(rowOrRowsGroup);\n }\n );\n\n if (!rowsGrouped) {\n nextColor();\n }\n \n return renderedRows;\n };\n\n const isEmpty = filteredData.map((data) => rowsGetter(data)).length === 0;\n\n return isEmpty ? (\n
\n \n

{emptyPlaceholderText}

\n
\n ) : (\n <>\n {filteredData.map((data) => {\n const renderGroup = (\n
\n {renderGroupName(\n data,\n groupNameGetter,\n handleGroupClick,\n isGroupSelected,\n isGroupFullySelected\n )}\n
\n {renderRows(\n data,\n rowsGetter,\n rowNameGetter,\n (id) => handleRowClick(id),\n (id) => isCurrentlySelected(id)\n )}\n
\n
\n );\n\n return renderGroup;\n })}\n \n );\n};\n","import React from 'react';\nimport { ShowGroupMode } from '../../config';\n\nimport styles from './switcher.module.scss';\n\ninterface Props {\n count: {\n all: number;\n selected: number;\n };\n mode: ShowGroupMode;\n handleChange: (mode: ShowGroupMode) => void;\n}\n\nexport const Switcher = ({ count, handleChange, mode }: Props) => {\n const buttonClassName = (buttonMode: ShowGroupMode) => {\n return [\n styles['switcher-button'],\n mode === buttonMode ? styles['switcher-button--active'] : ' ',\n ].join(' ');\n };\n\n const handleClick = (mode: ShowGroupMode) => {\n handleChange(mode);\n };\n\n const renderButton = (mode: ShowGroupMode, key) => (\n handleClick(mode)}\n key={key}\n >\n {mode === 'all' ? 'Все' : 'Выбранные'}: ({count[mode]})\n \n );\n\n return (\n
\n {(['all', 'selected'] as ShowGroupMode[]).map(renderButton)}\n
\n );\n};\n","import React, { FC, useRef, useState } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { classNames } from 'src/shared/lib';\nimport { SelectedIcon, ResetFiltersIcon } from 'src/shared';\nimport { SearchField } from 'src/shared/ui';\nimport { Popup, Position } from 'src/shared/ui/popup/popup';\nimport { MainTerminal } from 'src/features/select-terminals/config';\nimport { ShowGroupMode, Switcher } from 'src/entities/selector-with-groups';\nimport styles from './styles.module.scss';\n\ninterface Props {\n selected: number[];\n terminalsList: MainTerminal[];\n onChange: (selected: number[]) => void;\n maxWidth?: number;\n}\n\nconst ID_SCROLL_ELEMENT = 'page-element-scroll';\nconst MAX_HEIGHT_POPUP = isMobile ? 400 : 500;\n\nexport const BankTerminalsSelector: FC = ({\n onChange,\n selected,\n terminalsList,\n maxWidth,\n}) => {\n const [isOpen, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [showGroup, setShowGroup] = useState('all');\n\n const triggerRef = useRef(null);\n const allTerminals = terminalsList.flatMap((mainTerminal) =>\n mainTerminal.terminalGroups.flatMap((group) =>\n group.terminals.flatMap((terminal) => terminal.id)\n )\n );\n\n const onToggle = () => {\n setOpen((prev) => !prev);\n };\n\n const selectAllTerminals = () => {\n onChange(allTerminals);\n };\n\n const resetTerminals = () => {\n onChange([]);\n };\n\n const isCurrentlySelected = (terminalId: number) =>\n selected.includes(terminalId);\n const handleTerminalClick = (terminalId: number) => {\n let currentlySelected = selected.includes(terminalId);\n if (currentlySelected) {\n let newSelected = selected.filter((id) => terminalId !== id);\n onChange(newSelected);\n } else {\n let newSelected = [...selected];\n newSelected.push(terminalId);\n onChange(newSelected);\n }\n };\n\n const renderTerminal = ({ terminalGroups }: MainTerminal) => {\n return terminalGroups.map((group) =>\n group.terminals.map(({ id, name, uid }, key) => {\n if (showGroup === 'selected' && !selected.includes(id)) {\n return null;\n }\n if (\n query &&\n !name.toUpperCase().includes(query.toUpperCase()) &&\n !String(uid).toUpperCase().includes(query.toUpperCase())\n ) {\n return null;\n }\n return (\n handleTerminalClick(id)}\n >\n \n {SelectedIcon}\n \n \n {uid} ({name})\n \n \n );\n })\n );\n };\n\n const getTerminalsLength = () => {\n return terminalsList.reduce((total, currentValue) => {\n let groupTerminalsLength = currentValue.terminalGroups.reduce(\n (total, group) => (total += group.terminals.length),\n 0\n );\n return (total += groupTerminalsLength);\n }, 0);\n };\n\n if (!terminalsList.length) {\n return null;\n }\n\n return (\n
\n \n Терминалы\n \n Выбрано {selected.length}\n \n {selected.length > 0 && (\n {\n event.stopPropagation();\n resetTerminals();\n }}\n >\n {ResetFiltersIcon}\n \n )}\n \n {isOpen && (\n \n
\n \n
\n \n
\n {terminalsList.map(renderTerminal)}\n
\n
\n \n Выбрать все\n \n \n
\n \n )}\n
\n );\n};\n","import { TerminalStatus } from 'src/entities/terminal';\n\ninterface Terminal {\n id: number;\n uid: number;\n name: string;\n inActive?: boolean;\n disabled?: boolean;\n activity: TerminalStatus;\n}\n\ninterface TerminalGroup {\n name: string;\n terminals: Terminal[];\n}\n\ninterface MainTerminal {\n id: number;\n inn: number;\n name: string;\n blocked: boolean;\n terminalGroups: TerminalGroup[];\n}\n\nexport const inventoryFilteringOptions = [\n {\n content: 'Активные',\n value: 'ACTIVE',\n },\n {\n content: 'Без операций',\n value: 'INACTIVE',\n },\n {\n content: 'Отключенные',\n value: 'DISABLED',\n },\n];\n\nexport type { Terminal, MainTerminal };\n","import { TerminalGroup } from 'src/entities/terminal';\nimport { MainTerminal, Terminal } from './config';\n\nexport interface FilterTerminalsArguments {\n query: string;\n terminalsList: MainTerminal[];\n selected: number[];\n selectedOnly: boolean;\n inventoryDisplayFilters: string[];\n}\n\nconst filtrateInventory = (\n terminal: Terminal,\n inventoryDisplayFilters: string[]\n) => {\n if (inventoryDisplayFilters.includes('DISABLED') && terminal.disabled)\n return true;\n if (\n (inventoryDisplayFilters.includes('INACTIVE') &&\n terminal.activity === 'INACTIVE') ||\n (terminal.activity === 'DISABLED' && !terminal.disabled)\n )\n return true;\n if (\n inventoryDisplayFilters.includes('ACTIVE') &&\n terminal.activity === 'ACTIVE' &&\n !terminal.disabled\n )\n return true;\n return false;\n};\n\nexport const filterTerminals = ({\n query,\n terminalsList,\n selected,\n selectedOnly,\n inventoryDisplayFilters,\n}: FilterTerminalsArguments) => {\n // TODO 634: rename this\n const filterTerminals = (terminal: Terminal) => {\n const terminalIsInQuery = [terminal.name, terminal.uid].some((value) =>\n value.toString().toUpperCase().includes(query.toUpperCase())\n );\n\n const terminalIsSelected = selectedOnly\n ? selected.includes(terminal.id)\n : true;\n\n const terminalFitsInventoryFilter =\n inventoryDisplayFilters.length > 0\n ? filtrateInventory(terminal, inventoryDisplayFilters)\n : true;\n\n return (\n terminalIsInQuery &&\n terminalIsSelected &&\n terminalFitsInventoryFilter\n );\n };\n\n const filteredTerminals = terminalsList.reduce(\n (prev, organisation) => {\n let organisationContainsQueriedTerminals = false;\n const organisationCopy = { ...organisation };\n\n organisationCopy.terminalGroups =\n organisation.terminalGroups.reduce(\n (prev, terminalGroup) => {\n const terminalGroupCopy = { ...terminalGroup };\n terminalGroupCopy.terminals =\n terminalGroup.terminals.filter(filterTerminals);\n\n if (terminalGroupCopy.terminals.length)\n organisationContainsQueriedTerminals = true;\n\n return [...prev, terminalGroupCopy];\n },\n []\n );\n\n if (organisationContainsQueriedTerminals) {\n return [...prev, organisationCopy];\n } else {\n return [...prev];\n }\n },\n []\n );\n\n return filteredTerminals;\n};\n\nexport const getInactivePeriodPerDaysCorrectPostfix = (daysCount: number) => {\n if (daysCount === 1) return `последний ${daysCount} день`;\n if (daysCount > 10 && [11, 12, 13, 14].includes(daysCount % 100))\n return `последние ${daysCount} дней`;\n const daysCountLastDigit = daysCount % 10;\n if (daysCountLastDigit === 1) return `последний ${daysCount} день`;\n if ([2, 3, 4].includes(daysCountLastDigit))\n return `последние ${daysCount} дня`;\n\n return `последние ${daysCount} дней`;\n};\n","import { MainTerminal, Terminal } from '../model/types/terminal';\n\n/**\n * Получает все терминалы компании\n * @param mainTerminals массив терминалов от сервера\n * @returns массив всех терминалов\n */\n\nexport const getAllTerminals = (mainTerminals: MainTerminal[]) => {\n const allTerminals = [] as Terminal[];\n mainTerminals.forEach((mainTerminal) =>\n mainTerminal.terminalGroups.forEach((group) =>\n group.terminals.forEach((terminal) => allTerminals.push(terminal))\n )\n );\n\n return allTerminals;\n};\n","export enum TerminalStatus {\n DISABLED = 'DISABLED',\n INACTIVE = 'INACTIVE',\n ACTIVE = 'ACTIVE',\n}\n\nexport interface Terminal {\n id: number;\n uid: number;\n name: string;\n activity: TerminalStatus;\n}\n\nexport interface TerminalGroup {\n name: string;\n terminals: Terminal[];\n}\n\nexport interface MainTerminal {\n id: number;\n inn: number;\n name: string;\n blocked: boolean;\n terminalGroups: TerminalGroup[];\n}\n\nexport interface CardRate {\n cardName: string;\n rate: number;\n}\n\ninterface ApplicationTypes {\n id: number;\n value: string;\n applicationTypeInfo: string;\n}\n\nexport interface InfoTerminal {\n id: number;\n uid: string;\n name: string;\n operationLimit: string;\n weekLimit: string;\n limitEndOfWeek: string;\n rates: CardRate[];\n extraCommission: string;\n simCommission: string;\n activity: string;\n activityInfo: string;\n applicationTypes?: ApplicationTypes[];\n}\n\nexport interface Group {\n id?: number;\n name: string;\n}\n","import React from 'react';\nimport styles from './styles.module.scss'\n\nenum Variant {\n INACTIVE = 'inActive',\n HIDDEN = 'hidden',\n}\n\nconst InactiveIcon = () => {\n return (\n \n \n \n );\n};\n\ninterface Props {\n variant?: Variant;\n}\n\nexport const TerminalStatusIcon = ({ variant = Variant.HIDDEN }: Props) => {\n // TODO 631: test this with actual inactive terminals\n return
{VARIANT_TO_ICON_MAP[variant]}
;\n};\n\nconst VARIANT_TO_ICON_MAP: Record = {\n [Variant.INACTIVE]: ,\n [Variant.HIDDEN]:
,\n};\n\nTerminalStatusIcon.variant = Variant;\n","import React from 'react';\nimport { SelectorWithGroups } from 'src/entities/selector-with-groups';\nimport { MainTerminal, Terminal } from 'src/features/select-terminals/config';\nimport { filterTerminals } from 'src/features/select-terminals/lib';\nimport { TerminalGroup, TerminalStatus } from 'src/entities/terminal';\nimport { TerminalTip } from 'src/features/select-terminals/ui';\nimport { IndicatorColorVariant } from 'src/entities/selector-with-groups/config';\nimport { TerminalStatusIcon } from '../terminal-status-icon';\n\ninterface Props {\n selected: number[];\n terminalsList: MainTerminal[];\n onChange: (selected: number[]) => void;\n handleTerminalClick: (terminalId: number) => void;\n query: string;\n selectedOnly: boolean;\n inventoryDisplayFilters: string[];\n isOpen: boolean;\n}\n\nexport const ReworkedTerminalsList = ({\n selected,\n terminalsList,\n onChange,\n handleTerminalClick,\n query,\n selectedOnly,\n isOpen,\n inventoryDisplayFilters,\n}: Props) => {\n const handleOrganisationTitleClick = (organisation: MainTerminal) => {\n const allTerminals = organisation.terminalGroups.flatMap((group) =>\n group.terminals.map((terminal) => terminal.id)\n );\n\n allTerminals.every((id) => selected.includes(id))\n ? onChange(\n selected.filter(\n (selected) => !allTerminals.includes(selected)\n )\n )\n : onChange([\n ...selected,\n ...allTerminals.filter((id) => !selected.includes(id)),\n ]);\n };\n\n const handleGroupClick = (group: MainTerminal) =>\n handleOrganisationTitleClick(group);\n\n const get = (organisation: MainTerminal) => {\n return organisation.terminalGroups.map((terminalGroup) =>\n terminalGroup.terminals.map((terminal) => terminal)\n );\n };\n\n const nameGetter = (terminal: Terminal) => {\n return `${terminal.uid} ${terminal.name}`;\n };\n\n const isSelected = (data: MainTerminal) =>\n data.terminalGroups.some((terminalGroup) =>\n terminalGroup.terminals.some((terminal) =>\n selected.includes(terminal.id)\n )\n );\n\n const isFullySelected = (data: MainTerminal) =>\n data.terminalGroups.every((terminalGroup) =>\n terminalGroup.terminals.every((terminal) =>\n selected.includes(terminal.id)\n )\n );\n\n const filterData = (data: MainTerminal[]) => {\n return filterTerminals({\n query,\n terminalsList: data,\n selected,\n selectedOnly,\n inventoryDisplayFilters,\n });\n };\n\n return (\n \n getRowId={(data) => data.id}\n data={terminalsList}\n rowsGetter={get}\n rowNameGetter={nameGetter}\n selected={selected}\n isCurrentlySelected={function (terminalId: number): boolean {\n return selected.includes(terminalId);\n }}\n query={query}\n selectedOnly={selectedOnly}\n inventoryDisplayFilters={inventoryDisplayFilters}\n handleRowClick={function (id: number): void {\n handleTerminalClick(id);\n }}\n isSelected={function (id: number): boolean {\n return selected.includes(id);\n }}\n groupNameGetter={function (data: MainTerminal): string {\n return data.name;\n }}\n handleGroupClick={handleGroupClick}\n isGroupSelected={isSelected}\n isGroupFullySelected={isFullySelected}\n filterData={filterData}\n groupsGetter={function (data: MainTerminal): TerminalGroup[] {\n return data.terminalGroups;\n }}\n tooltip={(data, tooltipTitle, dotColor) =>\n isOpen ? (\n \n ) : (\n <>\n )\n }\n statusIcon={(data) => (\n \n )}\n isRowDisabled={(data) => Boolean(data.disabled)}\n emptyPlaceholderText=\"Терминалы подходящие под заданные фильтры не найдены.\"\n />\n );\n};\n\n// было решено интерпретировать disabled как inactive в случае если data.disabled === true\nconst MAP_ACTIVITY_TO_VARIANT: Record = {\n [TerminalStatus.DISABLED]: TerminalStatus.INACTIVE,\n [TerminalStatus.INACTIVE]: TerminalStatus.INACTIVE,\n [TerminalStatus.ACTIVE]: TerminalStatus.ACTIVE,\n};\n","import React, { useRef } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { classNames } from 'src/shared/lib';\nimport styles from './styles.module.scss';\nimport { Popup, ResetFiltersIcon } from 'src/shared/ui';\nimport { Button } from 'src/shared/ui';\nimport { Position } from 'src/shared/ui/popup/popup';\n\ninterface Props {\n filterName: string;\n children: React.ReactNode;\n isOpen: boolean;\n setIsOpen: React.Dispatch>;\n firstRowControls?: React.ReactNode;\n secondRowControls?: React.ReactNode;\n actions?: React.ReactNode;\n selectedCount?: number;\n onApplyClick?: () => void;\n onReset?: () => void;\n disabled?: boolean;\n maxWidth?: number;\n}\n\nconst ID_SCROLL_ELEMENT = 'page-element-scroll';\nconst MAX_HEIGHT_POPUP = isMobile ? 350 : 520;\n\nexport const FilterDropdown = ({\n children,\n selectedCount,\n onReset,\n filterName,\n firstRowControls,\n secondRowControls,\n onApplyClick,\n actions,\n setIsOpen,\n isOpen,\n disabled,\n maxWidth,\n}: Props) => {\n const triggerRef = useRef(null);\n\n const onToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const resetDisplayed = !!(selectedCount && onReset && selectedCount > 0);\n\n return (\n \n \n {filterName}\n {selectedCount !== undefined && (\n \n Выбрано {selectedCount}\n \n )}\n {resetDisplayed && (\n {\n event.stopPropagation();\n onReset();\n }}\n >\n {ResetFiltersIcon}\n \n )}\n \n {\n setIsOpen(false)}\n hideWhenResizing={true}\n className={classNames(styles['popup'], {\n [styles['open']]: isOpen,\n })}\n >\n
\n
\n {firstRowControls}\n
\n
\n {secondRowControls}\n \n {children}\n \n\n
\n
{actions}
\n {onApplyClick && (\n \n )}\n
\n \n }\n \n );\n};\n","import React, { FC, useEffect, useState } from 'react';\n\nimport { MainTerminal, inventoryFilteringOptions } from '../../config';\nimport { DropdownMultiselect, SearchField } from 'src/shared/ui';\nimport { ReworkedTerminalsList } from '../reworked-terminals-list';\nimport { resetCancelationToken } from 'src/redux/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getRequestCancelationToken } from 'src/redux/selectors';\nimport { FilterDropdown } from 'src/shared/ui/filter-dropdown';\nimport { ShowGroupMode, Switcher } from 'src/entities/selector-with-groups';\n\ninterface Props {\n selected: number[];\n terminalsList: MainTerminal[];\n onChange: (selected: number[]) => void;\n tableName: string;\n}\n\nexport const MerchantTerminalsSelector: FC = ({\n onChange,\n selected,\n terminalsList,\n tableName,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [showGroup, setShowGroup] = useState('all');\n const [inventoryDisplayFilters, setInventoryDisplayFilters] = useState<\n string[]\n >([]);\n const [pickedTerminals, setPickedTerminals] = useState(selected);\n\n const dispatch = useDispatch();\n\n const { token } = useSelector(getRequestCancelationToken);\n const terminals = useSelector(\n (state) => state.table?.[tableName]?.filters?.terminalIds\n );\n\n const handleApplyClick = () => {\n token.cancel();\n dispatch(resetCancelationToken());\n\n onChange(pickedTerminals);\n setIsOpen(false);\n };\n\n // Resets terminals if changes aren't applied\n useEffect(() => {\n if (!isOpen) {\n setPickedTerminals(terminals || selected);\n }\n }, [isOpen, selected, terminals]);\n\n const allTerminals = terminalsList.flatMap((mainTerminal) =>\n mainTerminal.terminalGroups.flatMap((group) =>\n group.terminals.flatMap((terminal) => terminal.id)\n )\n );\n\n const selectAllTerminals = () => {\n setPickedTerminals(allTerminals);\n };\n\n const resetTerminals = () => {\n setPickedTerminals([]);\n };\n\n const hardResetTerminals = () => {\n setPickedTerminals([]);\n onChange([]);\n };\n\n const handleTerminalClick = (terminalId: number) => {\n const currentlySelected = pickedTerminals.includes(terminalId);\n if (currentlySelected) {\n const newSelected = pickedTerminals.filter(\n (id) => terminalId !== id\n );\n setPickedTerminals(newSelected);\n } else {\n const pickedTerminalsCopy = [...pickedTerminals];\n pickedTerminalsCopy.push(terminalId);\n setPickedTerminals(pickedTerminalsCopy);\n }\n };\n\n const getTerminalsLength = () => {\n return terminalsList.reduce((total, currentValue) => {\n let groupTerminalsLength = currentValue.terminalGroups.reduce(\n (total, group) => (total += group.terminals.length),\n 0\n );\n return (total += groupTerminalsLength);\n }, 0);\n };\n\n if (!terminalsList.length) {\n return null;\n }\n\n return (\n \n Выбрать все\n ,\n ,\n ]}\n firstRowControls={[\n ,\n ,\n ]}\n secondRowControls={[\n ,\n ]}\n onApplyClick={handleApplyClick}\n >\n \n \n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport {\n IndicatorColorVariant,\n INDICATOR_COLOR_VARIANT_MAP,\n} from 'src/entities/selector-with-groups/config';\nimport { TerminalStatus } from 'src/entities/terminal';\nimport { useSelector } from 'react-redux';\nimport { getInactivePeriodPerDaysCorrectPostfix } from '../../lib';\n\ninterface Props {\n variant: TerminalStatus;\n text: string;\n title: string;\n dotColor: IndicatorColorVariant;\n}\n\nexport const TerminalTip = ({ variant, text, title, dotColor }: Props) => {\n const inactivePeriodPerDays = useSelector(\n (state) => state.terminals.inactivePeriodPerDays\n );\n\n return (\n
\n
\n \n {title}\n
\n
\n
{text}
\n {getBadgesMap(inactivePeriodPerDays)[variant]}\n
\n
\n );\n};\n\nTerminalTip.tipVariant = TerminalStatus;\n\nconst getBadgesMap = (inactivePeriodPerDays: number) => ({\n DISABLED: (\n \n Терминал отключен\n \n ),\n ACTIVE: (\n \n Активен\n \n ),\n INACTIVE: (\n \n \n \n \n {`Активен, нет операций за ${getInactivePeriodPerDaysCorrectPostfix(\n inactivePeriodPerDays ?? 1\n )}`}\n \n ),\n});\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Card, CardBody, CardTitle } from 'reactstrap';\nimport moment from 'moment';\nimport range from 'lodash/range';\n\nimport { getDynamicsChart } from 'src/redux/actions/charts';\nimport {\n getClassName,\n localLoad,\n localLoadSerialize,\n localSave,\n localSaveSerialize,\n rusDate,\n} from 'src/shared/lib';\nimport { Button } from 'src/shared/ui';\nimport { BankTerminalsSelector } from 'src/features/select-terminals';\n\nimport './dynamic-filter.scss';\n\nclass DynamicFilter extends Component {\n constructor(props) {\n super(props);\n this.getYearsFrom2017 = range(2017, moment().year() + 1);\n this.clsName = 'DynamicFilter';\n this.firstGroup = {\n year: getClassName(this.clsName, 'firstGroup.year'),\n month: getClassName(this.clsName, 'firstGroup.month'),\n terminals: getClassName(this.clsName, 'firstGroup.terminals'),\n };\n this.secondGroup = {\n year: getClassName(this.clsName, 'secondGroup.year'),\n month: getClassName(this.clsName, 'secondGroup.month'),\n terminals: getClassName(this.clsName, 'secondGroup.terminals'),\n };\n this.state = {\n focusedInput: null,\n firstGroup: {\n year: localLoad(this.firstGroup.year, moment().format('YYYY')),\n month: localLoad(this.firstGroup.month, moment().format('M')),\n terminals: localLoadSerialize(this.firstGroup.terminals, []),\n },\n secondGroup: {\n year: localLoad(this.secondGroup.year, moment().format('YYYY')),\n month: localLoad(this.secondGroup.month, moment().format('M')),\n terminals: localLoadSerialize(this.secondGroup.terminals, []),\n },\n };\n }\n\n getData() {\n this.saveFilter();\n this.props.dispatch(\n getDynamicsChart({\n groups: [\n {\n name: 'Группа 1',\n terminals: this.state.firstGroup.terminals,\n year: this.state.firstGroup.year,\n month: this.state.firstGroup.month,\n },\n {\n name: 'Группа 2',\n terminals: this.state.secondGroup.terminals,\n year: this.state.secondGroup.year,\n month: this.state.secondGroup.month,\n },\n ],\n })\n );\n }\n\n saveFilter() {\n localSave(this.firstGroup.year, this.state.firstGroup.year);\n localSave(this.firstGroup.month, this.state.firstGroup.month);\n localSaveSerialize(\n this.firstGroup.terminals,\n this.state.firstGroup.terminals\n );\n localSave(this.secondGroup.year, this.state.secondGroup.year);\n localSave(this.secondGroup.month, this.state.secondGroup.month);\n localSaveSerialize(\n this.secondGroup.terminals,\n this.state.secondGroup.terminals\n );\n }\n\n render() {\n return (\n
\n
\n
\n \n \n Группа 1\n \n this.setState({\n firstGroup: {\n ...this.state.firstGroup,\n terminals,\n },\n })\n }\n />\n
\n Год:\n \n this.setState({\n firstGroup: {\n ...this.state.firstGroup,\n year: e.target.value,\n },\n })\n }\n >\n {this.getYearsFrom2017.map((year) => (\n \n ))}\n \n
\n
\n Месяц:\n \n this.setState({\n firstGroup: {\n ...this.state.firstGroup,\n month: e.target.value,\n },\n })\n }\n >\n {[\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,\n 12,\n ].map((e) => (\n \n ))}\n \n
\n
\n
\n
\n
\n \n \n Группа 2\n {/* TODO 637: think of better naming*/}\n \n this.setState({\n secondGroup: {\n ...this.state.secondGroup,\n terminals,\n },\n })\n }\n />\n
\n Год:\n \n this.setState({\n secondGroup: {\n ...this.state.secondGroup,\n year: e.target.value,\n },\n })\n }\n >\n {this.getYearsFrom2017.map((year) => (\n \n ))}\n \n
\n
\n Месяц:\n \n this.setState({\n secondGroup: {\n ...this.state.secondGroup,\n month: e.target.value,\n },\n })\n }\n >\n {[\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,\n 12,\n ].map((e) => (\n \n ))}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({ terminals: state.terminals.terminals });\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(DynamicFilter);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport Container from 'src/components/Container';\nimport DynamicChart from './DynamicChart';\nimport DynamicFilter from './DynamicFilter';\n\nclass DynamicPage extends Component {\n render() {\n return (\n
\n \n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n dynamic: state.charts.dynamic,\n fetch: state.fetch.fetch,\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(DynamicPage);\n","import React, { FC } from 'react';\nimport './table-header.scss';\n\ninterface Props {\n offset: string;\n size: string;\n sizeLastPage: number;\n isEmpty: boolean;\n actions: React.ReactNode;\n}\n\nconst TableHeader: FC = ({\n isEmpty,\n actions,\n}) => {\n return (\n
\n {!isEmpty && (\n <>\n
{actions}
\n \n )}\n
\n );\n};\n\nexport default TableHeader;\n","import React, { Component } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport isArray from 'lodash/isArray';\nimport Optional from 'optional-js';\nimport { Link } from 'react-router-dom';\nimport { post } from '../../shared/lib/request-wrapper';\nimport { filter } from 'rxjs/operators';\nimport { log, sendToSubject } from '../../shared/lib/util';\nimport { URL } from 'src/app/config';\nimport { checkAppTitle, sortArray } from 'src/shared/lib';\nimport PropTypes from 'prop-types';\nimport TableHeader from '../TableHeader/TableHeader';\nimport './table.scss';\n\n/**\n * @onItemClick - make clickable and send table row in callback\n * @url - address ti request for table, make it then request is full (offset + size) and this data new\n * @actions - JSX to display on the right side of table header\n * @transformBody - function to change request body properties before sending request\n */\n\nlet defaultTable = {\n code: 0,\n message: 'Success',\n payload: [\n {\n name: 'Сумма (₽)',\n groupName: 'Терминал',\n paramNames: [\n 'Дата',\n 'Терминал',\n 'Успешных',\n 'Неуспешных',\n 'Возвратов',\n 'Всего',\n ],\n tuples: [],\n },\n {\n name: 'Количество',\n groupName: 'Терминал',\n paramNames: [\n 'Дата',\n 'Терминал',\n 'Успешных',\n 'Неуспешных',\n 'Возвратов',\n 'Всего',\n ],\n tuples: [],\n },\n ],\n};\n\nclass AwareTable extends Component {\n constructor(props) {\n super(props);\n this.subscription = null;\n this.state = {\n table: undefined,\n size: undefined,\n sizeLastPage: undefined,\n offset: undefined,\n filter: undefined,\n fetch: false,\n isEmpty: true,\n };\n this.send = sendToSubject.bind(this);\n }\n\n checkUrlAndTerminalIds(url, terminalIds) {\n const urlToСheck = [\n URL.statisticTableUrl,\n URL.operationsUrl,\n URL.settlementUrl,\n URL.settlementDetailsUrl,\n ];\n const { isMerchantApp } = checkAppTitle();\n const clearUrl = url.replace(/[\\d]/g, '');\n\n if (isMerchantApp && urlToСheck.includes(clearUrl)) {\n return !isEmpty(terminalIds);\n }\n\n return true;\n }\n\n componentDidUpdate(prevP, prev) {\n const { offset, size, filter } = this.state;\n\n if (offset !== undefined && size !== undefined) {\n if (this.needUpdate(prev, this.state)) {\n if (\n this.checkUrlAndTerminalIds(\n this.props.url,\n filter?.terminalIds\n )\n ) {\n this.getTable();\n }\n }\n } else {\n log('Aware not full request');\n }\n }\n\n getTable(\n request = {\n size: this.state.size,\n offset: this.state.offset,\n ...this.state.filter,\n }\n ) {\n const backendRequest = {\n ...request,\n size: request.size * 3,\n offset: (request.offset - 1) * request.size,\n };\n if (this.props.updateTableCallback)\n this.props.updateTableCallback(backendRequest);\n this.setState({ fetch: true });\n if (this.props.transformBody) {\n this.props.transformBody(backendRequest);\n }\n if (this.props.emptyTerminalResetData) {\n if (backendRequest.terminalIds.length === 0) {\n this.send({\n end: -1,\n });\n this.setState({\n fetch: false,\n table: defaultTable,\n end: 0,\n sizeLastPage: 0,\n isEmpty: true,\n });\n return;\n }\n }\n post(this.props.url, backendRequest)\n .then((response) => {\n this.setState({ fetch: false });\n Optional.ofNullable(response.data)\n .map((data) => data.payload)\n .ifPresent((payload) => {\n let { data } = this.tableDataMapper(payload);\n let isEmpty = data.length === 0;\n this.send({\n end: this.countPageToEnd(payload),\n isEmpty,\n });\n this.setState({\n table: payload,\n end: this.countPageToEnd(payload),\n sizeLastPage: this.getSizeLastPage(payload),\n isEmpty,\n });\n\n if (this.props.onGetTable)\n this.props.onGetTable(payload);\n if (this.props.makeScroll) this.props.makeScroll();\n });\n })\n .catch((response) => {\n this.setState({ fetch: false });\n log(response);\n });\n }\n\n needUpdate(pre, cur) {\n return (\n pre.offset !== cur.offset ||\n pre.size !== cur.size ||\n JSON.stringify(pre.filter) !== JSON.stringify(cur.filter)\n );\n }\n\n countPageToEnd(payload) {\n if (this.props.toggle !== undefined) {\n if (!isEmpty(payload)) {\n return Math.ceil(\n (payload[0].tuples.length - this.state.size) /\n this.state.size\n );\n } else {\n return 0;\n }\n } else {\n return Math.ceil(\n (payload.tuples.length - this.state.size) / this.state.size\n );\n }\n }\n\n getSizeLastPage(payload) {\n let count = 0;\n if (Array.isArray(payload)) {\n count = payload[0].tuples.length;\n } else {\n count = payload.tuples.length;\n }\n\n if (count < this.state.size) {\n return count;\n } else {\n return this.state.size;\n }\n }\n\n componentDidMount() {\n if (this.props.subject) {\n this.subscription = this.props.subject\n .pipe(\n filter(\n (s) =>\n !!s.filter ||\n !!s.size ||\n !!s.offset ||\n s.forceRequest\n )\n )\n .subscribe((s) => {\n if (s.forceRequest) {\n this.getTable();\n } else {\n this.setState({ ...s });\n }\n });\n }\n }\n\n filter(filter) {\n return filter ? filter : this.state.filter;\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n reloadData() {\n this.getTable();\n }\n\n render() {\n let { data, header } = this.tableDataMapper(this.state.table);\n return (\n <>\n \n \n \n );\n }\n\n tableDataMapper(table) {\n let { toggle } = this.props;\n if (table && (!isEmpty(table.tuples) || isArray(table))) {\n if (toggle !== undefined) {\n return convert(\n table[toggle].tuples.slice(0, this.state.size),\n table[toggle].paramNames\n );\n } else {\n return convert(\n table.tuples.slice(0, this.state.size),\n table.paramNames\n );\n }\n } else {\n return { data: [], header: [] };\n }\n\n function convert(data, header) {\n return {\n data: [\n ...data.map((i) => {\n return { data: [...i.values], ID: i.name };\n }),\n ],\n header: [...header],\n };\n }\n }\n}\n\nclass Table extends Component {\n numericalColumn = [];\n\n isNumericalColumn(name) {\n return [\n 'спешных',\n 'Возвратов',\n 'Всего',\n 'Сумма',\n 'Кол-во',\n 'Комиссия',\n 'Возмещение',\n 'Количество',\n ].some((value) => name.includes(value));\n }\n\n editableRow = (type, rowId) => {\n return {\n removeCompanyOption: (\n {\n event.preventDefault(); // Standard\n this.props.deleting(this.props.mainCompanyId, rowId);\n }}\n >\n \n \n ),\n editOption: (\n {\n event.preventDefault(); // Standard\n this.props.editing(rowId);\n }}\n >\n \n \n ),\n }[type];\n };\n\n drawRow = (row, index) => {\n if (this.props.link || this.props.redirect) {\n let rowCls =\n this.props.lastSelected === row.ID\n ? 'hover lastSelected'\n : 'hover';\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex,\n row.ID,\n this.props.redirect\n ? this.props.redirect(row)\n : undefined,\n this.props.locationUrl !== URL.einvoice\n ? row.ID\n : undefined,\n row.data.length\n )\n )}\n \n );\n } else {\n if (this.props.onItemClick) {\n if (row.ID === undefined) {\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n } else {\n return (\n this.props.onItemClick(row)}\n key={`${row.ID}${index}`}\n className=\"hover\"\n >\n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n }\n } else {\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n }\n }\n };\n\n drawRowBlock = (\n rowName,\n rowBlock,\n index,\n secondIndex,\n redirectKey,\n redirect,\n rowId = undefined,\n rowLength = undefined\n ) => {\n let cls = this.numericalColumn.includes(secondIndex)\n ? 'number'\n : 'string';\n // hack to inline html in request for terminals\n if (\n this.props.headers.includes('Id терминала') &&\n secondIndex === 0 &&\n (window.location.pathname.includes('terminals') ||\n window.location.pathname.includes('inventory'))\n ) {\n return (\n \n );\n }\n return this.props.link || this.props.redirect ? (\n \n \n {rowBlock}\n {!this.props.readonly &&\n secondIndex &&\n rowId &&\n secondIndex === rowLength - 1\n ? this.editableRow(this.props.type, rowId)\n : null}\n \n \n ) : this.props.companyHistory &&\n secondIndex === this.props.headers.indexOf('Последний вход') ? (\n \n {rowBlock}\n \n \n \n \n ) : (\n \n {rowBlock}\n \n );\n };\n\n sortData(data, type) {\n if (this.props.link === '/operations/') {\n return this.sortOperationsData(data, type);\n }\n return data;\n }\n\n sortOperationsData(array, type = '') {\n const order = [8, 0, 2, 3, 4, 1, 5, 6, 7, 9, 10];\n\n if (type === 'headers') {\n return sortArray(array, order);\n } else {\n const result = [];\n array.forEach((item) => {\n result.push({ ...item, data: sortArray(item.data, order) });\n });\n return result;\n }\n }\n\n render() {\n this.numericalColumn = [];\n const { headers, data, fetch } = this.props;\n\n return (\n
\n {data && data.length > 0 ? (\n
\n \n \n {this.sortData(headers, 'headers').map(\n (name, i) => {\n if (this.isNumericalColumn(name)) {\n this.numericalColumn.push(i);\n return (\n \n {name}\n \n );\n }\n return ;\n }\n )}\n \n \n \n {this.sortData(data).map((e, i) =>\n this.drawRow(e, i)\n )}\n \n
{name}
\n ) : fetch ? (\n Загрузка\n ) : (\n Нет данных\n )}\n \n );\n }\n}\n\nAwareTable.propTypes = {\n onGetTable: PropTypes.func,\n updateTableCallback: PropTypes.func,\n makeScroll: PropTypes.func,\n onItemClick: PropTypes.func,\n lastSelected: PropTypes.string,\n transformBody: PropTypes.func,\n};\n\nexport default AwareTable;\n","export const checkAppTitle = () => {\n const isBankApp = process.env.REACT_APP_TITLE === 'bank';\n const isMerchantApp = process.env.REACT_APP_TITLE === 'merchant';\n\n return { isBankApp, isMerchantApp };\n};\n","import React from 'react';\n\nexport const NoDataIcon = () => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\n\ninterface Props {\n children: React.ReactNode;\n onClick?: () => void;\n}\n\nexport const QuickActionButton = ({ children, onClick }: Props) => {\n return (\n \n {children}\n \n );\n};\n","import React from 'react';\n\nexport const DataFetchingIcon = () => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styles from './styles.module.scss';\nimport { classNames } from 'src/shared/lib';\nimport { NoDataIcon } from 'src/shared/ui/media/table-icons/no-data-icon';\nimport { QuickActionButton } from '../quick-action-button';\nimport { DataFetchingIcon } from 'src/shared/ui/media/table-icons/data-fetching-icon';\nimport { useDispatch } from 'react-redux';\nimport { setEndDate, setStartDate } from 'src/redux/actions/table';\nimport moment from 'moment';\n\nenum Variant {\n INITIAL = 'initial',\n LOADING = 'loading',\n NO_DATA = 'noData',\n}\n\nconst VARIANT_MAP: Record<\n Variant,\n { content: JSX.Element; oldContent: JSX.Element; icon: JSX.Element }\n> = {\n [Variant.INITIAL]: {\n content: (\n <>\n

Данные отсутствуют

\n \n ),\n icon: ,\n oldContent: Нет данных,\n },\n [Variant.LOADING]: {\n content: (\n <>\n

\n Загрузка данных.
\n Пожалуйста подождите\n

\n \n ),\n icon: ,\n oldContent: Загрузка,\n },\n [Variant.NO_DATA]: {\n content: (\n <>\n

\n За выбранный период данные отсутствуют.\n
Пожалуйста, выберите другой интервал.\n

\n \n ),\n icon: ,\n oldContent: Нет данных,\n },\n};\n\ninterface Props {\n variant: Variant;\n tableName: string;\n newStatuses?: boolean;\n}\n\nexport const DisplayDataStatus = ({\n variant = Variant.NO_DATA,\n newStatuses,\n tableName,\n}: Props) => {\n const dispatch = useDispatch();\n const lastMonthClickHandler = () => {\n dispatch(\n setStartDate(\n tableName,\n moment().subtract(1, 'month').startOf('month')\n )\n );\n dispatch(\n setEndDate(tableName, moment().subtract(1, 'month').endOf('month'))\n );\n };\n\n const thisMonthClickHandler = () => {\n dispatch(setStartDate(tableName, moment().startOf('month')));\n dispatch(setEndDate(tableName, moment().endOf('month')));\n };\n return newStatuses ? (\n
\n {VARIANT_MAP[variant].icon}\n {VARIANT_MAP[variant].content}\n {variant === Variant.NO_DATA && (\n

\n Быстрый выбор:
\n \n прошлый месяц\n \n , \n \n текущий месяц\n \n

\n )}\n
\n ) : (\n <>{VARIANT_MAP[variant].oldContent}\n );\n};\n\nDisplayDataStatus.variant = Variant;\n","type TCacheEntry = {\n value: T;\n expireAt: number;\n};\n\ntype TCache = Map | TCacheEntry>;\n\ninterface ICache {\n set(key: string[], value: T): void;\n get(key: string[]): T | null;\n clear(key: string[]): void;\n}\n\nclass DataCache implements ICache {\n private cache: TCache;\n private ttl: number;\n\n constructor(ttl: number = 15 * 60 * 1000) {\n this.cache = new Map();\n this.ttl = ttl;\n }\n\n public set(key: string[], value: T): void {\n const expireAt = Date.now() + this.ttl;\n const entry: TCacheEntry = { value, expireAt };\n const path = this.getKeyPath(key, true);\n const lastKey = key[key.length - 1];\n const lastMap = path[path.length - 1];\n lastMap.set(lastKey, entry);\n }\n\n public get(key: string[]): T | null {\n const path = this.getKeyPath(key);\n const lastKey = key[key.length - 1];\n const entry = path[path.length - 1].get(lastKey) as\n | TCacheEntry\n | undefined;\n if (!entry || Date.now() > entry.expireAt) {\n return null;\n }\n return entry.value;\n }\n\n public clear(key: string[]): void {\n const path = this.getKeyPath(key);\n\n if (key.length === 0) {\n this.cache.clear();\n } else {\n const lastKey = key[key.length - 1];\n const parentMap = path[path.length - 1];\n parentMap.delete(lastKey);\n }\n }\n\n private getKeyPath(\n key: string[],\n createIfNotExists: boolean = false\n ): TCache[] {\n let currentLevel: TCache = this.cache;\n const path = [currentLevel];\n for (let i = 0; i < key.length - 1; i++) {\n if (!currentLevel.has(key[i]) && createIfNotExists) {\n currentLevel.set(key[i], new Map());\n }\n const nextLevel = currentLevel.get(key[i]);\n if (nextLevel instanceof Map) {\n currentLevel = nextLevel;\n path.push(currentLevel);\n } else {\n break;\n }\n }\n return path;\n }\n}\n\nexport const dataCache = new DataCache();\n","import React, { Component } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport isArray from 'lodash/isArray';\nimport Optional from 'optional-js';\nimport { Link } from 'react-router-dom';\nimport { post } from '../../shared/lib/request-wrapper';\nimport { log } from '../../shared/lib/util';\nimport { URL } from 'src/app/config';\nimport { checkAppTitle, classNames, sortArray } from 'src/shared/lib';\nimport PropTypes from 'prop-types';\nimport './table.scss';\nimport { DisplayDataStatus } from './ui/display-data-status';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport {\n setDataIsFetching,\n setNeedsUpdate,\n setPersistedTableState,\n setOffset,\n setTotalCountForPagination,\n} from 'src/redux/actions/table';\nimport { firePageContentChangedEvent } from 'src/shared/ui';\nimport { dataCache } from 'src/shared/lib/cache';\n\n/**\n * @onItemClick - make clickable and send table row in callback\n * @url - address ti request for table, make it then request is full (offset + size) and this data new\n * @actions - JSX to display on the right side of table header\n * @transformBody - function to change request body properties before sending request\n */\n\nlet defaultTable = {\n code: 0,\n message: 'Success',\n payload: [\n {\n name: 'Сумма (₽)',\n groupName: 'Терминал',\n paramNames: [\n 'Дата',\n 'Терминал',\n 'Успешных',\n 'Неуспешных',\n 'Возвратов',\n 'Всего',\n ],\n tuples: [],\n },\n {\n name: 'Количество',\n groupName: 'Терминал',\n paramNames: [\n 'Дата',\n 'Терминал',\n 'Успешных',\n 'Неуспешных',\n 'Возвратов',\n 'Всего',\n ],\n tuples: [],\n },\n ],\n};\n\nclass StoreAwareTable extends Component {\n constructor(props) {\n super(props);\n this.subscription = null;\n this.state = {\n table: undefined,\n size: undefined,\n sizeLastPage: undefined,\n offset: undefined,\n filter: undefined,\n fetch: false,\n initialFetch: true,\n isEmpty: true,\n lastRequestCanceled: false,\n forceLoadingScreen: false,\n forceNoDataScreen: false,\n };\n this.props.dispatch(setDataIsFetching(props.tableName, false));\n }\n\n checkUrlAndTerminalIds(url, terminalIds) {\n const urlToСheck = [\n URL.statisticTableUrl,\n URL.operationsUrl,\n URL.settlementUrl,\n URL.settlementDetailsUrl,\n ];\n\n const { isMerchantApp } = checkAppTitle();\n const clearUrl = url.replace(/[\\d]/g, '');\n\n if (\n isMerchantApp &&\n urlToСheck.includes(clearUrl) &&\n isEmpty(terminalIds)\n ) {\n this.props.dispatch(\n setTotalCountForPagination(this.props.tableName, 0)\n );\n this.setState({\n table: {},\n initialFetch: true,\n });\n return false;\n }\n\n return true;\n }\n\n forceLoadingScreen() {\n this.setState({ forceLoadingScreen: true });\n setTimeout(() => this.setState({ forceLoadingScreen: false }), 500);\n }\n\n forceNoDataScreen() {\n this.setState({\n forceNoDataScreen: true,\n });\n setTimeout(() => this.setState({ forceNoDataScreen: false }), 500);\n }\n\n componentDidUpdate(previousProps) {\n if (this.state.lastRequestCanceled) {\n this.forceNoDataScreen();\n this.setState({ lastRequestCanceled: false });\n }\n\n if (this.props.table?.[this.props.tableName]?.needsUpdate) {\n const keysBySeparator = this.props.tableName.split('/');\n dataCache.clear(keysBySeparator);\n this.getTable();\n this.props.dispatch(setNeedsUpdate(this.props.tableName, false));\n return;\n }\n\n if (\n this.props.table?.[this.props.tableName]?.offset !== undefined &&\n this.props.table?.[this.props.tableName]?.pageSize !== undefined\n ) {\n const paginationChanged = this.paginationChanged(\n previousProps,\n this.state\n );\n\n if (this.needUpdate(previousProps)) {\n if (\n this.checkUrlAndTerminalIds(\n this.props.url,\n this.props.useCommonFilters\n ? this.props.commonFilters?.terminalIds\n : this.props.table?.[this.props.tableName]?.filters\n ?.terminalIds\n )\n ) {\n this.getTable();\n // reset pagination offset on filters change\n !paginationChanged &&\n this.props.dispatch(setOffset(this.props.tableName, 0));\n }\n }\n } else {\n log('Aware not full request');\n }\n }\n\n getTable(\n request = {\n size: this.props.table?.[this.props.tableName]?.pageSize,\n offset: this.props.table?.[this.props.tableName]?.offset,\n ...this.props.table?.[this.props.tableName]?.filters,\n ...(this.props.useCommonFilters && this.props.commonFilters),\n endDate: (this.props.useCommonFilters\n ? this.props.commonFilters?.endDate\n : this.props.table?.[this.props.tableName]?.endDate\n )?.format('YYYY-MM-DD'),\n startDate: (this.props.useCommonFilters\n ? this.props.commonFilters?.startDate\n : this.props.table?.[this.props.tableName]?.startDate\n )?.format('YYYY-MM-DD'),\n }\n ) {\n const backendRequest = {\n ...request,\n size: request.size,\n offset: request.offset,\n };\n\n if (this.props.updateTableCallback)\n this.props.updateTableCallback(backendRequest);\n\n if (this.props.transformBody) {\n this.props.transformBody(backendRequest);\n }\n\n if (this.props.emptyTerminalResetData) {\n if (backendRequest.terminalIds.length === 0) {\n this.setState({\n fetch: false,\n table: defaultTable,\n end: 0,\n sizeLastPage: 0,\n isEmpty: true,\n });\n this.props.dispatch(\n setDataIsFetching(this.props.tableName, false)\n );\n return;\n }\n }\n\n if (this.props.isRequestDisabled) {\n this.setState({\n fetch: false,\n table: defaultTable,\n end: 0,\n sizeLastPage: 0,\n isEmpty: true,\n totalCountForPagination: 0,\n });\n this.props.dispatch(setDataIsFetching(this.props.tableName, false));\n this.props.dispatch(\n setTotalCountForPagination(this.props.tableName, 0)\n );\n return;\n }\n\n const cacheKey = this.generateCacheKey(backendRequest);\n const keysBySeparator = this.props.tableName.split('/');\n const cachedData = dataCache.get([...keysBySeparator, cacheKey]);\n\n if (cachedData) {\n this.setState({\n table: cachedData,\n end: this.countPageToEnd(cachedData),\n sizeLastPage: this.getSizeLastPage(cachedData),\n isEmpty,\n });\n\n this.props.dispatch(\n setPersistedTableState(this.props.tableName, cachedData)\n );\n this.props.dispatch(\n setTotalCountForPagination(\n this.props.tableName,\n cachedData.totalCountForPagination\n )\n );\n } else {\n this.setState({ fetch: true });\n this.props.dispatch(setDataIsFetching(this.props.tableName, true));\n this.setState({ initialFetch: false });\n this.forceLoadingScreen();\n\n this.requestData(backendRequest);\n }\n }\n\n requestData(backendRequest) {\n post(this.props.url, backendRequest, undefined, this.props.token)\n .then((response) => {\n this.setState({ fetch: false });\n this.props.dispatch(\n setDataIsFetching(this.props.tableName, false)\n );\n Optional.ofNullable(response.data)\n .map((data) => data.payload)\n .ifPresent((payload) => {\n let { data } = this.tableDataMapper(payload);\n let isEmpty = data.length === 0;\n this.setState({\n table: payload,\n end: this.countPageToEnd(payload),\n sizeLastPage: this.getSizeLastPage(payload),\n isEmpty,\n });\n\n const cacheKey = this.generateCacheKey(backendRequest);\n const keysBySeparator = this.props.tableName.split('/');\n dataCache.set([...keysBySeparator, cacheKey], payload);\n\n this.props.dispatch(\n setPersistedTableState(\n this.props.tableName,\n payload\n )\n );\n // hack to obtain total pagination count from api response\n // for now count is on top level or in an array at top level\n this.props.dispatch(\n setTotalCountForPagination(\n this.props.tableName,\n payload?.[0]?.totalCountForPagination ||\n payload.totalCountForPagination\n )\n );\n if (this.props.onGetTable)\n this.props.onGetTable(payload);\n if (this.props.makeScroll) this.props.makeScroll();\n });\n\n firePageContentChangedEvent();\n })\n .catch((response) => {\n // Unset fetch here only if it's for reasons other than cancel\n if (response === 'request canceled') {\n this.setState({ lastRequestCanceled: true });\n return;\n }\n this.setState({ fetch: false });\n this.props.dispatch(\n setDataIsFetching(this.props.tableName, false)\n );\n log(response);\n });\n }\n\n paginationChanged(previousProps) {\n return (\n previousProps.table?.[this.props.tableName]?.offset !==\n this.props.table?.[this.props.tableName]?.offset ||\n previousProps.table?.[this.props.tableName]?.pageSize !==\n this.props.table?.[this.props.tableName]?.pageSize\n );\n }\n\n commonFiltersChanged(previousProps) {\n return (\n previousProps.commonFilters?.endDate !==\n this.props.commonFilters?.endDate ||\n previousProps.commonFilters?.startDate !==\n this.props.commonFilters?.startDate ||\n JSON.stringify(previousProps.commonFilters?.terminalIds) !==\n JSON.stringify(this.props.commonFilters?.terminalIds)\n );\n }\n\n needUpdateCommonFilters(previousProps) {\n return (\n this.commonFiltersChanged(previousProps) ||\n this.paginationChanged(previousProps)\n );\n }\n\n needUpdateTableIdSpecific(previousProps) {\n return (\n this.filtersChanged(previousProps) ||\n this.paginationChanged(previousProps)\n );\n }\n\n filtersChanged(previousProps) {\n return (\n previousProps.table?.[this.props.tableName]?.endDate !==\n this.props.table?.[this.props.tableName]?.endDate ||\n previousProps.table?.[this.props.tableName]?.startDate !==\n this.props.table?.[this.props.tableName]?.startDate ||\n JSON.stringify(\n previousProps.table?.[this.props.tableName]?.filters\n ) !==\n JSON.stringify(\n this.props.table?.[this.props.tableName]?.filters\n )\n );\n }\n\n needUpdate(previousProps) {\n return (\n this.needUpdateCommonFilters(previousProps) ||\n this.needUpdateTableIdSpecific(previousProps)\n );\n }\n\n countPageToEnd(payload) {\n if (this.props.toggle !== undefined) {\n if (!isEmpty(payload)) {\n return Math.ceil(\n (payload[0].tuples.length - this.state.size) /\n this.state.size\n );\n } else {\n return 0;\n }\n } else {\n return Math.ceil(\n (payload.tuples.length - this.state.size) / this.state.size\n );\n }\n }\n\n getSizeLastPage(payload) {\n let count = 0;\n if (Array.isArray(payload)) {\n count = payload[0].tuples.length;\n } else {\n count = payload.tuples.length;\n }\n\n if (count < this.state.size) {\n return count;\n } else {\n return this.state.size;\n }\n }\n\n generateCacheKey(filters) {\n return JSON.stringify(\n Object.fromEntries(Object.entries(filters).sort())\n );\n }\n\n componentDidMount() {\n if (\n this.props.table?.[this.props.tableName]?.tableData &&\n !this.props?.location?.state?.redirectedThroughNavbar\n ) {\n this.setState({\n table: this.props.table?.[this.props.tableName]?.tableData,\n });\n window.history.replaceState({}, document.title);\n return;\n }\n if (\n this.checkUrlAndTerminalIds(\n this.props.url,\n this.props.useCommonFilters\n ? this.props.commonFilters?.terminalIds\n : this.props.table?.[this.props.tableName]?.filters\n ?.terminalIds\n ) &&\n this.props.table?.[this.props.tableName]?.offset !== undefined &&\n this.props.table?.[this.props.tableName]?.pageSize !== undefined\n ) {\n this.getTable();\n }\n }\n\n filter(filter) {\n return filter ? filter : this.state.filter;\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n render() {\n const { data, header } = this.tableDataMapper(this.state.table);\n\n const totalCount =\n this.props.table?.[this.props.tableName]?.totalCountForPagination;\n return (\n <>\n
\n {!this.props.totalPaginationCountHidden && (\n \n Найдено записей{' '}\n \n {totalCount > 0 ? totalCount : 0}\n \n \n )}\n {totalCount > 0 && (\n
\n {this.props.actions}\n
\n )}\n
\n\n \n \n );\n }\n\n tableDataMapper(table) {\n let { toggle } = this.props;\n if (table && (!isEmpty(table.tuples) || isArray(table))) {\n if (toggle !== undefined) {\n return convert(\n table[toggle].tuples.slice(0, this.state.size),\n table[toggle].paramNames\n );\n } else {\n return convert(\n table.tuples.slice(0, this.state.size),\n table.paramNames\n );\n }\n } else {\n return { data: [], header: [] };\n }\n\n function convert(data, header) {\n return {\n data: [\n ...data.map((i) => {\n return { data: [...i.values], ID: i.name };\n }),\n ],\n header: [...header],\n };\n }\n }\n}\n\nclass Table extends Component {\n numericalColumn = [];\n\n isNumericalColumn(name) {\n return [\n 'спешных',\n 'Возвратов',\n 'Всего',\n 'Сумма',\n 'Кол-во',\n 'Комиссия',\n 'Возмещение',\n 'Количество',\n ].some((value) => name.includes(value));\n }\n\n editableRow = (type, rowId) => {\n return {\n removeCompanyOption: (\n {\n event.preventDefault(); // Standard\n this.props.deleting(this.props.mainCompanyId, rowId);\n }}\n >\n \n \n ),\n editOption: this.props.editing ? (\n {\n event.preventDefault(); // Standard\n this.props.editing(rowId);\n }}\n >\n \n \n ) : null,\n }[type];\n };\n\n drawRow = (row, index) => {\n if (this.props.link || this.props.redirect) {\n let rowCls =\n this.props.lastSelected === row.ID\n ? 'hover lastSelected'\n : 'hover';\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex,\n row.ID,\n this.props.redirect\n ? this.props.redirect(row)\n : undefined,\n this.props.locationUrl !== URL.einvoice\n ? row.ID\n : undefined,\n row.data.length\n )\n )}\n \n );\n } else {\n if (this.props.onItemClick) {\n if (row.ID === undefined) {\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n } else {\n return (\n this.props.onItemClick(row)}\n key={`${row.ID}${index}`}\n className=\"hover\"\n >\n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n }\n } else {\n return (\n \n {row.data.map((rowBlock, secondIndex) =>\n this.drawRowBlock(\n row.ID,\n rowBlock,\n index,\n secondIndex\n )\n )}\n \n );\n }\n }\n };\n\n drawRowBlock = (\n rowName,\n rowBlock,\n index,\n secondIndex,\n redirectKey,\n redirect,\n rowId = undefined,\n rowLength = undefined\n ) => {\n let cls = this.numericalColumn.includes(secondIndex)\n ? 'number'\n : 'string';\n // hack to inline html in request for terminals\n if (\n this.props.headers.includes('Id терминала') &&\n secondIndex === 0 &&\n (window.location.pathname.includes('terminals') ||\n window.location.pathname.includes('inventory'))\n ) {\n return (\n \n );\n }\n return this.props.link || this.props.redirect ? (\n \n \n {rowBlock}\n {!this.props.readonly &&\n secondIndex &&\n rowId &&\n secondIndex === rowLength - 1\n ? this.editableRow(this.props.type, rowId)\n : null}\n \n \n ) : this.props.companyHistory &&\n secondIndex === this.props.headers.indexOf('Последний вход') ? (\n \n {rowBlock}\n \n \n \n \n ) : (\n \n {rowBlock}\n \n );\n };\n\n sortData(data, type) {\n if (this.props.link === '/operations/') {\n return this.sortOperationsData(data, type);\n }\n return data;\n }\n\n sortOperationsData(array, type = '') {\n const order = [8, 0, 2, 3, 4, 1, 5, 6, 7, 9, 10];\n\n if (type === 'headers') {\n return sortArray(array, order);\n } else {\n const result = [];\n array.forEach((item) => {\n result.push({ ...item, data: sortArray(item.data, order) });\n });\n return result;\n }\n }\n\n render() {\n this.numericalColumn = [];\n const { headers, data, fetch, forceLoadingScreen, forceNoDataScreen } =\n this.props;\n\n return (\n \n {data && data.length > 0 && !forceLoadingScreen && !fetch ? (\n
\n \n \n {this.sortData(headers, 'headers').map(\n (name, i) => {\n if (this.isNumericalColumn(name)) {\n this.numericalColumn.push(i);\n return (\n \n {name}\n \n );\n }\n return ;\n }\n )}\n \n \n \n {this.sortData(data).map((e, i) =>\n this.drawRow(e, i)\n )}\n \n
{name}
\n ) : (fetch || forceLoadingScreen) && !forceNoDataScreen ? (\n \n ) : (\n \n )}\n \n );\n }\n}\n\nStoreAwareTable.propTypes = {\n onGetTable: PropTypes.func,\n updateTableCallback: PropTypes.func,\n makeScroll: PropTypes.func,\n onItemClick: PropTypes.func,\n lastSelected: PropTypes.string,\n transformBody: PropTypes.func,\n tableName: PropTypes.string,\n};\n\nconst mapStateToProps = (state) => ({\n table: state.table,\n commonFilters: state.table?.commonFilters,\n});\n\nexport default withRouter(\n connect(mapStateToProps, null, null, {\n forwardRef: true,\n })(StoreAwareTable)\n);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './table.scss';\nimport AwareTable from './state-table';\nimport StoreAwareTable from './store-table';\n\n/**\n * @onItemClick - make clickable and send table row in callback\n * @url - address ti request for table, make it then request is full (offset + size) and this data new\n * @actions - JSX to display on the right side of table header\n * @transformBody - function to change request body properties before sending request\n * @isStoreTable - boolean responsible for choice between two table variants, store table communicates with filter via redux, state table communicates through rxjs\n */\n\nclass AwareTableSelector extends Component {\n render() {\n const {\n isStoreTable,\n totalPaginationCountHidden,\n useCommonTableFilters,\n ...tableProps\n } = this.props;\n\n return isStoreTable ? (\n \n ) : (\n \n );\n }\n}\n\nAwareTableSelector.propTypes = {\n onGetTable: PropTypes.func,\n updateTableCallback: PropTypes.func,\n makeScroll: PropTypes.func,\n onItemClick: PropTypes.func,\n lastSelected: PropTypes.string,\n transformBody: PropTypes.func,\n isStoreTable: PropTypes.bool,\n};\n\nexport default React.forwardRef((props, ref) => (\n \n));\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\nimport AwareTable from 'src/components/AwareTable';\n\nimport { URL } from 'src/app/config/URL';\nimport {\n Modal,\n ModalField,\n NewSelect,\n Input,\n InputPassword,\n NewCheckbox,\n OverflowContainer,\n Paginator,\n AddIcon,\n} from 'src/shared/ui';\nimport {\n log,\n sendToSubject,\n statusNameMapper,\n localLoad,\n get,\n post,\n getOptionsForSelect,\n} from 'src/shared/lib';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\n\n/**\n * @type {boolean}\n * TODO: удалить данную переменную после тестирования со стороны заказчика\n */\nconst IS_PAYMENT_TO_INCLUDE = true;\n\nconst cashboxesTableName = 'Ecomm-Cashboxes';\nconst keysTableName = 'Ecomm-Keys';\n\nclass EcommPage extends Component {\n cashboxSubject = new ReplaySubject(1);\n merchkeySubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n\n this.clsName = 'ReassignedCompanyFilter';\n\n this.send = sendToSubject.bind(this);\n this.cashbox = {\n defCashbox: '',\n groupCode: '',\n cashboxId: '',\n companyId: this.props.companyId,\n cashboxLogin: '',\n cashboxPassword: '',\n cashboxStatus: 'Активно',\n address: '',\n ffdVersion: '',\n };\n this.merchkeys = {\n key: '',\n ecommkeyStatus: 'Активно',\n idDefaultETerminal: '',\n passwordDefaultETerminal: '',\n created: '',\n company: '',\n cashboxRequired: false,\n cashbox: undefined,\n password: '',\n merchantId: '',\n merchantName: '',\n merchantUrl: '',\n defaultNotificationUrl: '',\n defaultSuccessUrl: '',\n defaultFailUrl: '',\n timeZone: '-12',\n allowWidgets: false,\n maxAmount: '',\n defaultNotificationEmail: '',\n notifyByEmail: false,\n notifyByUrl: false,\n };\n this.state = {\n ...this.cashbox,\n ...this.merchkeys,\n open_add_cashbox: false,\n confirm_add_cashbox: false,\n open_update_cashbox: false,\n open_add_ecommKey: false,\n open_update_ecommKey: false,\n statuses: ['Активно', 'Выключено'],\n ecomkeyCashboxes: [],\n passwordType: 'password',\n pswdHidden: '',\n reassignIdCompany: undefined,\n cashboxAvailableFfdList: [],\n };\n }\n\n /*ecommKey */\n\n toggle_update_ecommKey = () => {\n this.setState({\n open_update_ecommKey: !this.state.open_update_ecommKey,\n });\n };\n\n updateEcommKey(id) {\n const {\n ecommkeyStatus,\n cashboxRequired,\n password,\n cashbox,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n } = this.state;\n post(URL.updateEcommKey + id, {\n status: statusNameMapper(ecommkeyStatus, 'en'),\n cashboxRequired,\n password,\n cashbox: Number(cashbox) === 0 ? null : cashbox,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n })\n .then((r) => {\n this.props.dispatch(setNeedsUpdate(keysTableName, true));\n })\n .catch((r) => {\n log(r);\n });\n this.setState({ open_update_ecommKey: false });\n }\n\n getEcommKey(id) {\n get(URL.getEcommKey + id)\n .then((r) => {\n const {\n key,\n status,\n cashboxRequired,\n mcc,\n password,\n cashbox,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n } = r.data.payload;\n this.setState({\n key,\n ecommkeyStatus: statusNameMapper(status, 'ru'),\n cashboxRequired,\n cashbox,\n password,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n mcc,\n });\n })\n .catch((r) => log(r));\n }\n\n getEcommKeyCashbox = () => {\n get(URL.getEcommKeyCashboxes)\n .then((r) => {\n this.setState({\n ecomkeyCashboxes: [\n ...(!this.state.cashboxRequired\n ? [\n ...r.data.payload,\n {\n blocked: false,\n groupCode: 'без кассы',\n id: 0,\n },\n ]\n : r.data.payload),\n ],\n // cashbox: r.data.payload[0].id\n });\n })\n .catch((r) => log(r));\n };\n\n /*cashbox */\n\n toggle_add_cashbox = () => {\n this.setState({\n ...this.cashbox,\n open_add_cashbox: !this.state.open_add_cashbox,\n confirm_add_cashbox: false,\n });\n };\n\n toggle_update_cashbox = () => {\n this.setState({\n open_update_cashbox: !this.state.open_update_cashbox,\n reassignIdCompany: undefined,\n });\n };\n\n createCashbox = () => {\n const {\n cashboxLogin,\n cashboxPassword,\n cashboxStatus,\n address,\n groupCode,\n ffdVersion,\n } = this.state;\n post(URL.addEcommCashbox, {\n login: cashboxLogin,\n password: cashboxPassword,\n status: statusNameMapper(cashboxStatus, 'en'),\n groupCode,\n address,\n ffdVersion,\n })\n .then((r) => {\n // TODO 637: update new table\n this.props.dispatch(setNeedsUpdate(cashboxesTableName, true));\n })\n .catch((r) => {\n log(r);\n });\n this.setState({ open_add_cashbox: false });\n };\n\n updateCashbox = (id) => {\n const {\n cashboxLogin,\n cashboxPassword,\n cashboxStatus,\n groupCode,\n address,\n reassignIdCompany,\n ffdVersion,\n } = this.state;\n post(URL.updateEcommCashbox + id, {\n login: cashboxLogin,\n password: cashboxPassword,\n status: statusNameMapper(cashboxStatus, 'en'),\n groupCode,\n address,\n reassignIdCompany,\n ffdVersion,\n })\n .then((r) => {\n this.props.dispatch(setNeedsUpdate(cashboxesTableName, true));\n })\n .catch((r) => {\n log(r);\n });\n this.setState({\n open_update_cashbox: false,\n reassignIdCompany: undefined,\n });\n };\n\n getCashbox(id) {\n get(URL.getEcommCashbox + id)\n .then((r) => {\n const {\n groupCode,\n id,\n address,\n login,\n password,\n status,\n ffdVersion,\n } = r.data.payload;\n this.setState({\n groupCode,\n cashboxId: id,\n cashboxLogin: login,\n cashboxPassword: password,\n address,\n cashboxStatus: statusNameMapper(status, 'ru'),\n ffdVersion,\n });\n })\n .catch((r) => log(r));\n }\n\n getCashboxAvailableFfd() {\n get(URL.getCashboxAvailableFfd)\n .then((r) => {\n this.setState({\n ffdVersion: r.data.payload[0].version,\n cashboxAvailableFfdList: r.data.payload,\n });\n })\n .catch((r) => log(r));\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n this.send({\n offset: localLoad('cashboxes-offset', 0),\n size: localLoad('cashboxes-range', 10),\n });\n };\n\n toggle_confirm_add_cashbox = () => {\n this.setState({\n confirm_add_cashbox: !this.state.confirm_add_cashbox,\n });\n };\n\n render() {\n return (\n
\n \n {\n this.toggle_add_cashbox();\n this.getCashboxAvailableFfd();\n }}\n />\n }\n >\n {\n this.toggle_update_cashbox();\n this.getCashbox(e.ID);\n }}\n isStoreTable\n />\n \n \n \n \n {\n this.toggle_update_ecommKey();\n this.getEcommKey(e.ID);\n this.getEcommKeyCashbox();\n }}\n isStoreTable\n />\n \n \n\n {/*cashbox modals*/}\n\n \n Все введенные данные будут потеряны.\n \n \n \n {\n this.setState({\n cashboxStatus: value,\n });\n }}\n />\n \n \n {\n this.setState({\n ffdVersion: value,\n });\n }}\n />\n \n \n \n this.setState({\n groupCode: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n address: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n cashboxLogin: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n cashboxPassword: e.target.value,\n })\n }\n />\n \n \n\n this.updateCashbox(this.state.cashboxId)}\n >\n \n {\n this.setState({\n cashboxStatus: value,\n });\n }}\n />\n \n \n \n this.setState({\n address: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n cashboxLogin: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n cashboxPassword: e.target.value,\n })\n }\n />\n \n \n {\n this.setState({\n reassignIdCompany: Number(value),\n });\n }}\n />\n \n \n\n {/*ecommkey modals*/}\n\n this.updateEcommKey(this.state.key)}\n >\n \n {this.state.key}\n \n {this.state.mcc && IS_PAYMENT_TO_INCLUDE && (\n \n {this.state.mcc}\n \n )}\n \n \n this.setState({\n password: e.target.value,\n })\n }\n />\n \n \n {\n this.setState({\n ecommkeyStatus: value,\n });\n }}\n />\n \n \n \n this.setState(\n {\n cashboxRequired:\n !this.state.cashboxRequired,\n },\n () => {\n if (\n this.state.cashboxRequired &&\n Boolean(\n this.state.ecomkeyCashboxes.find(\n ({ id }) => id === 0\n )\n )\n ) {\n this.setState({\n ecomkeyCashboxes:\n this.state.ecomkeyCashboxes.filter(\n ({ id }) => id !== 0\n ),\n cashbox:\n Number(\n this.state.cashbox\n ) === 0\n ? this.state\n .ecomkeyCashboxes[0]\n .id\n : this.state.cashbox,\n });\n } else {\n !this.state.ecomkeyCashboxes.find(\n ({ id }) => id === 0\n ) &&\n this.setState((prev) => ({\n ecomkeyCashboxes: [\n ...this.state\n .ecomkeyCashboxes,\n {\n blocked: false,\n groupCode:\n 'без кассы',\n id: 0,\n },\n ],\n cashbox: this.state.cashbox,\n }));\n }\n }\n )\n }\n checked={this.state.cashboxRequired}\n />\n \n \n {\n this.setState({\n cashbox: Number(value),\n });\n }}\n />\n \n \n \n this.setState({\n defaultSuccessUrl: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n defaultFailUrl: e.target.value,\n })\n }\n />\n \n \n \n this.setState({\n notifyByEmail: !this.state.notifyByEmail,\n })\n }\n checked={this.state.notifyByEmail}\n />\n \n {this.state.notifyByEmail && (\n \n \n this.setState({\n defaultNotificationEmail:\n e.target.value,\n })\n }\n />\n \n )}\n \n \n this.setState({\n notifyByUrl: !this.state.notifyByUrl,\n })\n }\n />\n \n {this.state.notifyByUrl && (\n \n \n this.setState({\n defaultNotificationUrl: e.target.value,\n })\n }\n />\n \n )}\n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n companyId: state.auth.companyId,\n roles: state.auth.roles,\n assignedCompanies: state.auth.assignedCompanies,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EcommPage);\n","import React, { FC } from 'react';\nimport { SDMFullLogo } from 'src/shared/ui';\nimport styles from './public-form.module.scss';\n\ninterface Props {\n header: string | React.ReactNode;\n}\n\nexport const UI: FC = ({ header, children }) => {\n return (\n
\n {SDMFullLogo}\n
{header}
\n
{children}
\n
\n );\n};\n","import React, { FC } from 'react';\nimport styles from './filters-container.module.scss';\n\nexport const FiltersContainer: FC = ({ children }) => {\n return
{children}
;\n};\n","import { object, string } from 'yup';\n\ninterface Credentials {\n login: string;\n password: string;\n}\n\nconst schema = object({\n login: string().required('Обязательное поле'),\n password: string().required('Обязательное поле'),\n});\n\nexport type { Credentials };\n\nexport { schema };\n","import React, { FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport styles from './help-link.module.scss';\n\ninterface Props {\n to: string;\n icon?: React.ReactNode;\n externalUrl?: boolean;\n}\n\nexport const HelpLink: FC = ({\n children,\n icon,\n to,\n externalUrl = false,\n}) => {\n return (\n
\n {icon}\n {externalUrl ? (\n {children}\n ) : (\n {children}\n )}\n
\n );\n};\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\nimport { PublicFormWidget } from 'src/widgets';\nimport { URL } from 'src/app/config';\nimport { logIn } from 'src/redux/actions/auth';\nimport { Credentials, schema } from '../config';\nimport { HelpLink } from './help-link';\n\nimport { Input, Button, HelpIcon } from 'src/shared/ui';\nimport { checkAppTitle } from 'src/shared/lib';\n\nimport styles from './login-form.module.scss';\nimport { InputPassword } from 'src/shared/ui/input';\n\nconst LoginForm = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const { isMerchantApp } = checkAppTitle();\n const { fetch } = useSelector((state) => state.fetch);\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n defaultValues: { login: '', password: '' },\n resolver: yupResolver(schema),\n });\n\n const callback = (values: Credentials) => () => {\n history.push(URL.changePasswordUrl, {\n login: values.login,\n });\n };\n\n const submit = (values: Credentials) => {\n dispatch(logIn(values, callback(values), history));\n };\n\n return (\n \n
\n
\n \n \n \n Войти\n \n \n
\n \n Забыли пароль\n \n\n {isMerchantApp && (\n \n Проблемы с подключением\n \n )}\n
\n
\n
\n );\n};\n\nexport { LoginForm };\n","import React from 'react';\n\nimport './levels-bar.scss';\n\nconst LevelsBar = (levels) => (\n
\n);\n\nexport { LevelsBar };\n","import React from 'react';\nimport { uniquePasswordValidator } from 'src/shared/lib';\n\nconst symbolsValidator =\n /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=*]).*$/;\nconst lettersValidator = /([a-z].*[A-Z])|([A-Z].*[a-z])/;\nconst lengthValidator = /^(?=\\S+$).{8,}$/;\n\nconst securityLevels = [\n {\n descriptionLabel: <>Длина должна быть минимум 8 символов,\n validator: lengthValidator,\n },\n {\n descriptionLabel: (\n <>\n Должны быть строчные и заглавные латинские буквы, цифры и\n спецсимволы\n \n ),\n validator: lettersValidator,\n },\n {\n descriptionLabel: <>Допустимые спецсимволы @ # $ % ^ & * +,\n validator: symbolsValidator,\n },\n];\n\nconst oldPasswordSecurityLevel = (currentPassword: string) => ({\n descriptionLabel: (\n \n Должен отличаться от предыдущего не менее чем в 4-х позициях\n \n ),\n validator: (value) => uniquePasswordValidator(value, currentPassword),\n});\n\nexport {\n securityLevels,\n lengthValidator,\n symbolsValidator,\n lettersValidator,\n oldPasswordSecurityLevel,\n};\n","const uniquePasswordValidator = (newPassword, currentPassword) => {\n if (!currentPassword || !newPassword) {\n return true;\n }\n let counter = 0;\n const length =\n newPassword.length > currentPassword.length\n ? newPassword.length\n : currentPassword.length;\n for (let i = 0; i < length; i++) {\n if (currentPassword[i] === newPassword[i]) {\n counter++;\n }\n if (counter > 4) {\n return false;\n }\n }\n return true;\n};\n\nexport { uniquePasswordValidator };\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEye(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 18,\n height: 18\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEye);\nexport default __webpack_public_path__ + \"static/media/eye.f1bacdd3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEyeOff(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n width: 18,\n height: 18\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeOff);\nexport default __webpack_public_path__ + \"static/media/eyeOff.c890529a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect } from 'react';\nimport { ControllerRenderProps } from 'react-hook-form';\nimport NiceInputPassword from 'react-nice-input-password';\n\nimport { Input } from 'src/shared/ui';\nimport { LevelsBar } from './levels-bar';\nimport { oldPasswordSecurityLevel, securityLevels } from '../config';\n\nimport styles from './new-password-input.module.scss';\nimport { ReactComponent as Eye } from './icons/eye.svg';\nimport { ReactComponent as EyeOff } from './icons/eyeOff.svg';\n\ninterface Props {\n field: ControllerRenderProps;\n error?: string | boolean;\n placeholder: string;\n inputProps: Record;\n currentPassword?: string;\n}\n\nconst NewPasswordInput = function ({\n field,\n error,\n inputProps,\n placeholder,\n currentPassword,\n}: Props) {\n const [passwordVisible, setPasswordVisible] = useState();\n const [securityLevelVisible, setSecurityLevelVisible] = useState();\n const [capsLockOn, setCapsLockOn] = useState();\n const [levels, setLevels] = useState(securityLevels);\n\n const handlePasswordBlur = () => {\n setSecurityLevelVisible(true);\n };\n const detectCapsLock = (event) => {\n const capsLockOn =\n event.getModifierState && event.getModifierState('CapsLock');\n setCapsLockOn(capsLockOn);\n };\n\n useEffect(() => {\n currentPassword &&\n setLevels([\n ...securityLevels,\n oldPasswordSecurityLevel(currentPassword),\n ]);\n }, [currentPassword]);\n\n return (\n
\n {\n field?.onChange(event.value);\n }}\n InputComponent={Input}\n InputComponentProps={{\n error,\n warning: capsLockOn ? 'Включен Caps Lock' : '',\n placeholder,\n type: passwordVisible ? 'text' : 'password',\n onBlur: handlePasswordBlur,\n onKeyDown: detectCapsLock,\n autoComplete: 'new-password',\n icon: (\n {\n event.preventDefault();\n setPasswordVisible(!passwordVisible);\n }}\n >\n {!passwordVisible ? : }\n
\n ),\n ...inputProps,\n }}\n renderLevelBarComponent={LevelsBar}\n />\n
\n );\n};\n\nexport { NewPasswordInput };\n","import { lengthValidator, lettersValidator, symbolsValidator } from './config';\n\nconst isPasswordStrong = (password: string): boolean => {\n const tests = [lengthValidator, symbolsValidator, lettersValidator];\n return tests.every((regex) => regex.test(password));\n};\n\nexport { isPasswordStrong };\n","import { isPasswordStrong } from 'src/features/new-password-input';\nimport { object, ref, string } from 'yup';\n\ninterface ActivateFormFields {\n password: string;\n repeatPassword: string;\n code?: string;\n}\n\ninterface Params {\n uid: string;\n}\n\nconst schemaBank = object({\n password: string()\n .required('Введите пароль')\n .test(\n 'securePassword',\n 'Пароль не прошел проверку сложности',\n (value) => (value ? isPasswordStrong(value) : false)\n ),\n repeatPassword: string().oneOf(\n [ref('password'), null],\n 'Пароли должны совпадать'\n ),\n});\n\nconst schemaMerchant = object({\n password: string()\n .required('Введите пароль')\n .test(\n 'securePassword',\n 'Пароль не прошел проверку сложности',\n (value) => (value ? isPasswordStrong(value) : false)\n ),\n repeatPassword: string().oneOf(\n [ref('password'), null],\n 'Пароли должны совпадать'\n ),\n code: string().min(1, 'Поле не должно быть пустым'),\n});\n\nexport type { ActivateFormFields, Params };\n\nexport { schemaBank, schemaMerchant };\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport React from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { NewPasswordInput } from 'src/features/new-password-input';\nimport { activateUser } from 'src/redux/actions/auth';\nimport { Input, Button, InputPassword } from 'src/shared/ui';\nimport { PublicFormWidget } from 'src/widgets';\nimport {\n ActivateFormFields,\n Params,\n schemaBank,\n schemaMerchant,\n} from './config';\nimport { getAppTitle } from 'src/shared/lib';\nimport styles from './form.module.scss';\n\nexport const Form = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const isMerchant = getAppTitle() === 'merchant';\n const schema = isMerchant ? schemaMerchant : schemaBank;\n const { uid } = useParams();\n const { fetch } = useSelector((state) => state.fetch);\n const {\n register,\n handleSubmit,\n control,\n formState: { errors },\n } = useForm({\n defaultValues: { password: '', repeatPassword: '', code: '' },\n resolver: yupResolver(schema),\n });\n\n const submit = ({ password, code }: ActivateFormFields) => {\n dispatch(\n activateUser(\n {\n token: uid,\n password,\n code: isMerchant ? code : undefined,\n },\n history\n )\n );\n };\n\n return (\n \n
\n (\n \n )}\n />\n \n {isMerchant ? (\n \n ) : null}\n \n \n
\n );\n};\n","import { object, string } from 'yup';\n\ninterface ForgotPasswordFormFields {\n email: string;\n}\n\nconst schema = object({\n email: string().required('Введите E-Mail').email(''),\n});\n\nexport type { ForgotPasswordFormFields };\n\nexport { schema };\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\nimport { forgotPassword } from 'src/redux/actions/auth';\nimport { PublicFormWidget } from 'src/widgets';\nimport { Input, Button } from 'src/shared/ui';\n\nimport { ForgotPasswordFormFields, schema } from '../config';\n\nexport const Form = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const { fetch } = useSelector((state) => state.fetch);\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n defaultValues: { email: '' },\n resolver: yupResolver(schema),\n });\n\n const submit = (values: ForgotPasswordFormFields) => {\n dispatch(forgotPassword(values, history));\n };\n\n return (\n \n
\n
\n \n \n Восстановить пароль\n \n \n
\n
\n );\n};\n","import { isPasswordStrong } from 'src/features/new-password-input';\nimport { object, ref, string } from 'yup';\n\ninterface ChangePasswordFormFields {\n currentPassword: string;\n newPassword: string;\n repeatPassword: string;\n}\n\ntype ChangePasswordRequest = Pick<\n ChangePasswordFormFields,\n 'currentPassword' | 'newPassword'\n> & { email: string };\n\nconst schema = object({\n currentPassword: string().required('Введите текущий пароль'),\n newPassword: string()\n .required('Введите новый пароль')\n .test(\n 'securePassword',\n 'Пароль не прошел проверку сложности',\n (value) => (value ? isPasswordStrong(value) : false)\n ),\n repeatPassword: string().oneOf(\n [ref('newPassword'), null],\n 'Пароли должны совпадать'\n ),\n});\n\nexport { schema };\n\nexport type { ChangePasswordFormFields, ChangePasswordRequest };\n","import React, { FC } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { changePassword } from 'src/redux/actions/auth';\nimport { PublicFormWidget } from 'src/widgets';\nimport {\n ChangePasswordFormFields,\n ChangePasswordRequest,\n schema,\n} from './config';\nimport { NewPasswordInput } from 'src/features';\nimport { FormField, Button, InputPassword } from 'src/shared/ui';\n\ninterface Props {\n inline?: boolean;\n}\n\nexport const Form: FC = ({ inline }) => {\n const dispatch = useDispatch();\n const history = useHistory();\n const location = useLocation<{ login: string }>();\n const { fetch } = useSelector((state) => state.fetch);\n const { email } = useSelector((state) => state.auth);\n\n const {\n register,\n handleSubmit,\n control,\n formState: { errors },\n watch,\n } = useForm({\n defaultValues: {\n currentPassword: '',\n newPassword: '',\n repeatPassword: '',\n },\n resolver: yupResolver(schema),\n });\n\n const currentPassword = watch('currentPassword');\n\n const submit = (values: ChangePasswordFormFields) => {\n let body: ChangePasswordRequest = {\n email: email ?? location.state.login,\n currentPassword: values.currentPassword,\n newPassword: values.newPassword,\n };\n dispatch(changePassword(body, history));\n };\n\n const Form = (\n
\n \n \n \n \n (\n \n )}\n />\n \n \n \n \n \n \n );\n\n return inline ? (\n Form\n ) : (\n \n
{Form}
\n
\n );\n};\n","import { URL } from 'src/app/config';\nimport { FileFormat } from '../model/types';\n\ninterface GetUrl {\n url: string;\n fileFormat: FileFormat;\n pathname: string;\n detailedReport: boolean;\n index?: number;\n}\n\nexport const getDay = (pathname: string) => {\n if (pathname.includes('/settlement/')) {\n return pathname.split('/')[2];\n }\n return '';\n};\n\nconst getInvoiceId = (pathname: string) => {\n if (pathname.includes('/einvoice/')) {\n return pathname.replace(/\\D/g, '');\n }\n return '';\n};\n\nconst checkUrl = (url: string, detailedReport: boolean) => {\n if (url === URL.settlementFileDownloadUrl && detailedReport) {\n return URL.settlementDetailFileDownloadUrl;\n }\n return url;\n};\n\nexport const getUrl = ({\n url,\n fileFormat,\n pathname,\n detailedReport,\n index,\n}: GetUrl) => {\n const newUrl = checkUrl(url, detailedReport);\n const day = getDay(pathname);\n const invoiceId = getInvoiceId(pathname);\n\n switch (newUrl) {\n case URL.statisticFileDownloadUrl:\n return `${newUrl}${index}/${fileFormat}`;\n\n case URL.settlementFileDownloadUrl:\n return day\n ? `${newUrl}${day}/${fileFormat}`\n : `${newUrl}${fileFormat}`;\n\n case URL.settlementDetailFileDownloadUrl:\n return `${newUrl}${fileFormat}`;\n\n case URL.operationsFileDownloadUrl:\n return `${newUrl}${fileFormat}`;\n\n case URL.operationsSBPFileDownloadUrl:\n return `${newUrl}`;\n\n case URL.einvoiceDownloadQrcUrl:\n return `${newUrl}/${invoiceId}/${fileFormat}`;\n\n case URL.reversalExport:\n return `${newUrl}${fileFormat}`;\n\n default:\n return newUrl;\n }\n};\n","export const errorMessage = {\n title: 'Ошибка выбора дат',\n message: 'Длительность выбранного периода не должна превышать 90 дней',\n};\n\nexport const infoMessage = {\n title: 'Загрузка',\n message:\n 'Запрос отправлен на сервер. Загрузка файла начнется автоматически.',\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport download from 'downloadjs';\nimport { useLocation } from 'react-router-dom';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { Input, Modal, ModalField, NewCheckbox, NewSelect } from 'src/shared';\nimport {\n getAppTitle,\n getOptionsForSelect,\n localLoadIntInArray,\n log,\n post,\n useCloseCustomModal,\n} from 'src/shared/lib';\nimport { getDay, getUrl } from '../../lib/getUrl';\nimport { FileFormat } from '../../model/types';\nimport { getDownloadedFileName } from '../../lib/getDownloadedFileName';\nimport { errorMessage, infoMessage } from '../../model/consts';\nimport { useDispatch } from 'react-redux';\nimport { URL } from 'src/app/config';\nimport moment from 'moment';\n\ntype Event = React.ChangeEvent;\n\ninterface Props {\n url: string;\n defaultFileName: string;\n filters: Record;\n onToggle: () => void;\n isDetailed?: boolean;\n availableFormats?: FileFormat[];\n}\n\nexport const ModalBody: FC = (props) => {\n const {\n url,\n filters,\n defaultFileName,\n isDetailed = false,\n availableFormats = ['XLSX', 'CSV'],\n onToggle,\n } = props;\n\n const dispatch = useDispatch();\n const { pathname } = useLocation();\n const [isOpen, setOpen] = useState(true);\n const [fileName, setFileName] = useState(defaultFileName);\n const [fileFormat, setFileFormat] = useState(availableFormats[0]);\n const [detailedReport, setDetailedReport] = useState(false);\n\n const optionsFileFormat = useMemo(() => {\n return getOptionsForSelect(availableFormats);\n }, [availableFormats]);\n\n const onChangeFileName = (e: Event) => {\n setFileName(e.currentTarget.value);\n };\n\n const onChangeFileFormat = (value: string) => {\n setFileFormat(value as FileFormat);\n };\n\n const onChangeDetailedReport = (e: Event) => {\n setDetailedReport(e.currentTarget.checked);\n };\n\n const onClose = useCloseCustomModal(setOpen, onToggle);\n\n const prepareBodyReport = () => {\n let requestUrl = getUrl({\n url,\n fileFormat,\n pathname,\n detailedReport,\n index: Number(detailedReport),\n });\n let currentFilter = filters;\n const appName = getAppTitle();\n const localcompanyIds = localLoadIntInArray('companyId', []);\n const companyIds =\n Array.isArray(filters?.companyIds) && filters?.companyIds?.length\n ? filters?.companyIds\n : localcompanyIds;\n if (url === URL.settlementDetailFileDownloadUrl) {\n if (appName === 'bank') {\n const pathDay = getDay(pathname);\n const day = moment(pathDay).format('YYYY-MM-DD');\n currentFilter = {\n startDate: day,\n endDate: day,\n companyIds,\n searchQuery: filters?.searchQuery,\n };\n } else {\n requestUrl = getUrl({\n url: URL.settlementFileDownloadUrl,\n fileFormat,\n pathname,\n detailedReport,\n index: Number(detailedReport),\n });\n currentFilter['companyIds'] = companyIds;\n }\n }\n return { requestUrl, currentFilter };\n };\n const onSubmit = () => {\n const { requestUrl, currentFilter } = prepareBodyReport();\n\n post(requestUrl, currentFilter, {\n responseType: 'blob',\n })\n .then((response) => {\n download(\n response.data,\n getDownloadedFileName(fileName, fileFormat),\n 'application/octet-stream'\n );\n })\n .catch((response) => {\n log(response);\n if (detailedReport) {\n dispatch(createNotification(errorMessage, 'error'));\n }\n });\n\n dispatch(createNotification(infoMessage, 'info'));\n onClose();\n };\n\n return (\n \n \n \n \n \n \n \n\n {isDetailed && (\n \n \n \n )}\n \n );\n};\n","import moment from 'moment';\nimport { FileFormat } from '../model/types';\n\nexport const getDownloadedFileName = (\n fileName: string,\n fileFormat: FileFormat\n) => {\n const format = fileFormat.toLocaleLowerCase();\n\n if (fileName) {\n return `${fileName}.${format}`;\n }\n\n return `Экспорт ${moment().format('DD MMMM YYYY')}.${format}`;\n};\n","import React, { FC, memo } from 'react';\nimport { Button } from 'src/shared';\nimport { classNames } from 'src/shared/lib';\nimport styles from './trigger-button.module.scss';\n\ninterface TriggerButtonProps {\n onClick: () => void;\n theme?: 'custom' | 'default';\n className?: string;\n children?: string;\n}\n\nexport const TriggerButton: FC = memo((props) => {\n const {\n onClick,\n theme = 'custom',\n children = 'Выгрузить',\n className,\n } = props;\n\n if (theme === 'custom') {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n );\n});\n","import React, { FC, memo, useEffect, useState } from 'react';\nimport { filter } from 'rxjs/operators';\nimport { FileFormat, SubjectValues } from '../../model/types';\nimport { ModalBody } from '../modal-body/modal-body';\nimport { TriggerButton } from '../trigger-button/trigger-button';\n\ntype Filters = Record;\n\ninterface DownloadReportProps {\n defaultFileName: string;\n url: string;\n initialFilter?: Filters;\n filterSubject?: any;\n isDetailed?: boolean;\n availableFormats?: FileFormat[];\n themeTriggerButton?: 'custom' | 'default';\n nameTriggerButton?: string;\n className?: string;\n}\n\nexport const DownloadReport: FC = memo((props) => {\n const {\n themeTriggerButton,\n nameTriggerButton,\n className,\n initialFilter,\n filterSubject,\n ...otherProps\n } = props;\n\n const [isOpen, setOpen] = useState(false);\n const [filters, setFilters] = useState(initialFilter || {});\n\n const changeToggleModal = () => {\n setOpen((prev) => !prev);\n };\n\n useEffect(() => {\n const subscription = filterSubject\n ?.pipe(filter((s: SubjectValues) => !!s.filter))\n ?.subscribe((s: SubjectValues) => setFilters({ ...s.filter }));\n\n return () => {\n subscription?.unsubscribe();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n {nameTriggerButton}\n \n {isOpen && (\n \n )}\n \n );\n});\n","import React, { FC, memo, useState } from 'react';\nimport { FileFormat } from '../../model/types';\nimport { ModalBody } from '../modal-body/modal-body';\nimport { TriggerButton } from '../trigger-button/trigger-button';\nimport { useSelector } from 'react-redux';\nimport { filterObject } from 'src/shared/lib/filterObject';\nimport { getAppTitle } from 'src/shared/lib';\n\ntype Filters = Record;\n\ninterface DownloadReportProps {\n defaultFileName: string;\n url: string;\n getFilterCallback?: () => Filters;\n pageTitle: string;\n isDetailed?: boolean;\n availableFormats?: FileFormat[];\n themeTriggerButton?: 'custom' | 'default';\n nameTriggerButton?: string;\n className?: string;\n useCommonFilters?: boolean;\n initialFilter?: Filters;\n}\n\nexport const DownloadReportStore: FC = memo((props) => {\n const {\n themeTriggerButton,\n nameTriggerButton,\n className,\n getFilterCallback,\n pageTitle,\n useCommonFilters,\n initialFilter,\n ...otherProps\n } = props;\n\n const [isOpen, setOpen] = useState(false);\n\n const changeToggleModal = () => {\n setOpen((prev) => !prev);\n };\n\n const table = useSelector((state) => state.table?.[pageTitle]);\n const commonFilters = useSelector((state) => state.table?.commonFilters);\n\n const filters = table\n ? {\n ...table.filters,\n startDate: table.startDate,\n endDate: table.endDate,\n ...(useCommonFilters && commonFilters),\n }\n : getFilterCallback?.();\n\n return (\n <>\n \n {nameTriggerButton}\n \n {isOpen && (\n \n )}\n \n );\n});\n","const filterObject = (\n object: T,\n fields: K[]\n): Omit => {\n return Object.fromEntries(\n Object.entries(object).filter(([key]) => !fields.includes(key as K))\n ) as Omit;\n};\n\nexport { filterObject };\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport copy from 'copy-to-clipboard';\nimport ReactTooltip from 'react-tooltip';\nimport { Card } from 'reactstrap';\n\nimport { createNotification } from 'src/redux/actions/notification';\nimport store from 'src/store';\nimport { Roles, navRoutes, URL } from 'src/app/config';\nimport { DownloadReport } from 'src/features';\n\nimport {\n get,\n post,\n einvoiceDelCases,\n einvoiceQrcEmptyCase,\n einvoiceSendCases,\n einvoiceStaticDownloadCase,\n isPermit,\n log,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport { Button } from 'src/shared/ui';\nimport Container from 'src/components/Container';\nimport './einvoice-details.scss';\nimport { connect } from 'react-redux';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\n\nclass EinvoiceDetailsPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n id: '',\n paymentType: '',\n qrcType: '',\n ecommKey: '',\n orderId: '',\n externalOrderId: '',\n customerEmail: '',\n customerPhone: '',\n amount: '',\n description: '',\n taxation: '',\n dueDate: '',\n merchantName: '',\n terminalId: '',\n paymentUrl: '',\n itemDtos: [],\n created: '',\n updated: '',\n status: '',\n copySuccess: false,\n urlPay: '',\n };\n }\n\n redirectToOperationsSBP = () => {\n this.props.history.push(navRoutes.payments + this.state.orderId);\n };\n\n sendEinvoiceDetail = () => {\n post(URL.einvoiceSend + this.props.match.params.id)\n .then((r) => {\n store.dispatch(\n createNotification(\n {\n title: 'Успех',\n message:\n 'Обновите страницу эл. счета через некоторое время',\n },\n 'success'\n )\n );\n })\n .catch((r) => log(r));\n };\n\n deleteEinvoiceDetail = () => {\n post(URL.einvoiceDelete + this.props.match.params.id)\n .then((r) => {\n store.dispatch(\n createNotification(\n {\n title: 'Успех',\n message: 'Счет успешно удален',\n },\n 'success'\n )\n );\n\n this.props.dispatch(\n setNeedsUpdate(\n LOCAL_STORAGE_TABLE_NAMES.eInvoiceBank,\n true,\n true\n )\n );\n\n this.props.dispatch(\n setNeedsUpdate(\n LOCAL_STORAGE_TABLE_NAMES.eInvoiceMerchant,\n true,\n true\n )\n );\n\n if (this.props.location.key) {\n this.props.history.goBack();\n } else {\n this.props.history.push(navRoutes.einvoice);\n }\n })\n .catch((r) => log(r));\n };\n\n getEinvoiceInfo() {\n get(URL.einvoice + '/info/' + this.props.match.params.id)\n .then((r) => this.setState({ ...r.data.payload }))\n .catch((r) => log(r));\n }\n\n copyToClipboard(e, text) {\n copy(text);\n this.setState({ copySuccess: true });\n }\n\n componentDidMount() {\n this.getEinvoiceInfo();\n }\n\n render() {\n const {\n ecommKey,\n paymentType,\n qrcType,\n customerEmail,\n externalOrderId,\n customerPhone,\n amount,\n description,\n taxation,\n merchantName,\n terminalId,\n paymentUrl,\n dueDate,\n created,\n updated,\n status,\n itemDtos,\n copySuccess,\n urlPay,\n } = this.state;\n\n const companyRolesHasSBP = isPermit(Roles.OPERATION_SBP);\n const staticQrcCase = qrcType === 'Статический';\n\n return (\n
\n \n
\n

\n Электронный счёт\n

\n
\n \n Оплаты\n \n {!einvoiceSendCases.includes(status) &&\n !staticQrcCase && (\n \n Отправить\n \n )}\n {einvoiceStaticDownloadCase(qrcType, status) && (\n \n )}\n {einvoiceDelCases.includes(status) && (\n \n Удалить\n \n )}\n
\n
\n
\n {companyRolesHasSBP && (\n \n
\n Способы оплаты:\n {paymentType}\n
\n
\n Тип QR:\n {qrcType}\n
\n
\n )}\n
\n Ключ мерчанта:\n {ecommKey}\n
\n {terminalId && (\n
\n Id терминала:\n {terminalId}\n
\n )}\n
\n Номер заказа:\n {externalOrderId}\n
\n
\n Создан:\n {created}\n
\n
\n Последнее изменение:\n {updated}\n
\n
\n Статус:\n {status}\n
\n
\n Платежная ссылка:\n \n !this.state.copySuccess &&\n this.copyToClipboard(\n e,\n einvoiceQrcEmptyCase(qrcType)\n ? paymentUrl\n : urlPay\n )\n }\n >\n \n \n \n {copySuccess ? 'Скопировано' : 'Копировать'}\n \n
\n\n
\n Дата истечения срока оплаты:\n {dueDate}\n
\n
\n Имя мерчанта:\n {merchantName}\n
\n
\n E-mail клиента:\n {customerEmail}\n
\n
\n Телефон клиента:\n {customerPhone}\n
\n
\n Сумма заказа:\n {amount}\n
\n
\n Описание:\n {description}\n
\n
\n Система налогообложения:\n {taxation}\n
\n
\n
\n {itemDtos && itemDtos.length ? (\n \n
\n
\n Товары, работы, услуги:\n
\n
\n
\n {itemDtos.map(\n ({\n id,\n name,\n price,\n quantity,\n amount,\n tax,\n orderId,\n paymentMethod,\n paymentObject,\n measurementUnit,\n }) => (\n \n \n
\n \n Товар:\n \n {id}\n
\n
\n Наименование:\n {name}\n
\n
\n Стоимость:\n {price}\n
\n
\n Количество:\n {quantity}\n
\n
\n \n Единица измерения:\n \n \n {measurementUnit\n ? measurementUnit\n : '-'}\n \n
\n
\n Сумма:\n {amount}\n
\n
\n Ставка налога:\n {tax}\n
\n
\n \n Признак способа расчета:\n \n {paymentMethod}\n
\n
\n \n Признак предмета\n расчета:\n \n {paymentObject}\n
\n
\n
\n
\n )\n )}\n \n ) : null}\n
\n
\n
\n );\n }\n}\n\nexport default connect()(withRouter(EinvoiceDetailsPage));\n","import React, { Component } from 'react';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport {\n getClassName,\n isPermit,\n PaymentTypeFilterOptions,\n QRCodeTypeOptions,\n localLoad,\n localLoadMoment,\n localSave,\n getInitialFilter,\n formatDateForInput,\n} from 'src/shared/lib';\nimport { FiltersSelector, DateRangePicker, SearchField } from 'src/shared/ui';\nimport { Roles } from 'src/app/config';\nimport { setEndDate, setStartDate, setFilters } from 'src/redux/actions/table';\n\nimport './einvoice-filter.scss';\n\nclass EinvoiceFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(this.props.pageTitle, 'startDate');\n this.endDate = getClassName(this.props.pageTitle, 'endDate');\n this.paymentType = getClassName(this.props.pageTitle, 'paymentType');\n this.qrcType = getClassName(this.props.pageTitle, 'qrcType');\n this.searchQuery = getClassName(this.props.pageTitle, 'searchQuery');\n\n const { startDate, endDate, ...initialFilter } = getInitialFilter(\n ['searchQuery'],\n this.props.pageTitle\n );\n\n const localQrcTypeValue = localLoad(this.qrcType, '');\n const localPaymentTypeValue = localLoad(this.paymentType, '')\n .split(',')\n .filter((type) => type !== '');\n\n this.defaultFilter = {\n startDate: localLoadMoment(\n this.startDate,\n moment(new Date()).add(-7, 'days')\n ),\n endDate: localLoadMoment(this.endDate, moment(new Date())),\n searchQuery: localLoad(this.searchQuery, ''),\n paymentType: [],\n qrcType: undefined,\n };\n this.state = {\n ...this.defaultFilter,\n };\n this.setStartDate(this.defaultFilter.startDate);\n this.setEndDate(this.defaultFilter.endDate);\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: localPaymentTypeValue,\n qrcType: localQrcTypeValue,\n ...initialFilter,\n ...this.props.additionalFilter,\n })\n );\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.qrcType, this.props.table?.filters?.qrcType || '');\n localSave(\n this.paymentType,\n this.props.table?.filters?.paymentType || []\n );\n }\n\n componentDidUpdate() {\n this.saveFilter();\n }\n\n getStartDate() {\n return this.props.table?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setStartDate(this.props.pageTitle, date));\n }\n\n getEndDate() {\n return this.props.table?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setEndDate(this.props.pageTitle, date));\n }\n\n render() {\n const companyRolesHasSBP = isPermit(Roles.OPERATION_SBP);\n return (\n
\n {companyRolesHasSBP && (\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: value,\n })\n ),\n selected:\n this.props.table?.filters?.paymentType ||\n [],\n },\n {\n title: 'Тип QR',\n options: QRCodeTypeOptions,\n onChange: (value) =>\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n qrcType: value,\n })\n ),\n selected:\n this.props.table?.filters?.qrcType || '',\n },\n ].filter(Boolean)}\n reset={() => {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: [],\n qrcType: undefined,\n })\n );\n }}\n />\n )}\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(moment(new Date()).add(-7, 'days'));\n this.setEndDate(moment(new Date()));\n }}\n />\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n )\n }\n value={this.props.table?.filters?.searchQuery}\n />\n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n roles: state.auth.companyRoles,\n table: state.table?.[props.pageTitle],\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EinvoiceFilter);\n","import React, { Component } from 'react';\nimport { ReplaySubject } from 'rxjs';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { isMobile } from 'react-device-detect';\nimport { Roles, URL } from 'src/app/config';\n\nimport {\n isPermit,\n log,\n PaymentTypeOptions,\n QRCodeTypeOptions,\n sendToSubject,\n get,\n post,\n maskPhone,\n getOptionsForSelect,\n getAppTitle,\n} from 'src/shared/lib';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport styles from './einvoice-table.module.scss';\nimport {\n Button,\n Datepicker,\n Input,\n Modal,\n ModalField,\n NewSelect,\n OverflowContainer,\n Textarea,\n Paginator,\n AddIcon,\n} from 'src/shared';\nimport {\n getBankPaymentTypeOptions,\n BankQRCodeTypeOptions,\n PaymentCardTypeOptions,\n} from 'src/shared/lib/util';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\nimport { createNotification } from 'src/redux/actions/notification';\n\n/**\n * TODO: переделать компонент в tsx / ts and convert to Enum\n */\nconst CARD = 'CARD';\nconst SBP = 'SBP';\n\nconst isBankApp = getAppTitle() === 'bank';\n\nclass EinvoiceTable extends Component {\n einvoiceSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n this.einvoiceOptions = {\n ecommKeyIdsOptions: [],\n paymentMethodOptions: [],\n paymentObjectOptions: [],\n taxOptions: [],\n taxationOptions: [],\n };\n\n this.einvoiceItem = {\n name: '',\n price: '',\n quantity: '',\n amount: '',\n paymentMethod: '',\n paymentObject: '',\n tax: '',\n measurementUnit: '',\n };\n\n this.einvoice = {\n paymentType: isBankApp\n ? getBankPaymentTypeOptions()[0].value\n : PaymentTypeOptions(false)[0].value,\n qrcType: isBankApp\n ? BankQRCodeTypeOptions[0].value\n : QRCodeTypeOptions[1].value,\n ecommKey: '',\n customerEmail: '',\n customerPhone: '',\n description: '',\n merchantEmail: '',\n paymentToInfoValue: '',\n dueDate: moment(new Date().setDate(new Date().getDate() + 1)),\n taxation: '',\n items: [],\n };\n this.state = {\n ...this.einvoice,\n ...this.einvoiceItem,\n ...this.einvoiceOptions,\n einvoiceAmmount: '',\n open_update_einvoice: false,\n open_add_einvoice: false,\n confirm_add_einvoice: false,\n open_add_einvoice_item: true,\n splitButtonOpen: false,\n };\n }\n\n toggle_add_einvoice = () => {\n this.setState({\n ...this.einvoice,\n ...this.einvoiceItem,\n einvoiceAmmount: '',\n open_add_einvoice: !this.state.open_add_einvoice,\n confirm_add_einvoice: false,\n });\n };\n\n toggle_confirm_add_einvoice = () => {\n this.setState({\n confirm_add_einvoice: !this.state.confirm_add_einvoice,\n });\n };\n\n toggle_update_einvoice = () => {\n this.setState({\n ...this.einvoice,\n open_update_einvoice: !this.state.open_update_einvoice,\n });\n };\n\n createEinvoice = () => {\n const {\n paymentType,\n qrcType,\n ecommKey,\n customerEmail,\n customerPhone,\n description,\n merchantEmail,\n dueDate,\n taxation,\n items,\n cashboxRequired,\n einvoiceAmmount,\n paymentToInfoValue,\n } = this.state;\n post(URL.einvoiceAdd, {\n paymentType,\n paymentTo: paymentToInfoValue,\n ...(paymentType.includes('SBP') && { qrcType }),\n ecommKey,\n ...(this.handleIsNotStaticOrByCard() && {\n customerEmail,\n customerPhone,\n }),\n description: description.replaceAll('\\n', ' '),\n merchantEmail,\n dueDate: dueDate.format('YYYY-MM-DD'),\n taxation,\n amount: einvoiceAmmount ? einvoiceAmmount : undefined,\n items: cashboxRequired\n ? items.map((item) => {\n delete item.itemId;\n delete item.edit;\n return item;\n })\n : undefined,\n })\n .then(() => {\n this.setState({\n ...this.state,\n ...this.einvoice,\n });\n this.props.dispatch(setNeedsUpdate(this.props.pageTitle, true));\n this.props.dispatch(\n createNotification(\n {\n title: 'Создание счёта',\n message: 'Счёт успешно создан',\n },\n 'success'\n )\n );\n })\n .catch((r) => log(r));\n this.setState({\n open_add_einvoice: false,\n });\n };\n\n defaultPaymentKey = (ecommKeys) => {\n const allWithCardSbp = ecommKeys.filter(({ paymentType }) => {\n return (\n paymentType.length === 2 &&\n paymentType.includes(CARD) &&\n paymentType.includes(SBP)\n );\n });\n if (allWithCardSbp.length) {\n return allWithCardSbp[0];\n }\n const allWithCard = ecommKeys.filter(({ paymentType }) => {\n return paymentType.length === 1 && paymentType.includes(CARD);\n });\n\n if (allWithCard.length) {\n return allWithCard[0];\n }\n };\n\n getEinvoiceInfo = () => {\n const request = !isBankApp\n ? get(URL.einvoiceData)\n : post(URL.einvoiceData, { companyId: [this.props.companyId] });\n\n request\n .then((r) => {\n const {\n ecommKeys,\n paymentMethod,\n paymentObject,\n tax,\n taxation,\n } = r.data.payload;\n\n const defaultPaymentKey = this.defaultPaymentKey(ecommKeys);\n const defaultEcommKey = defaultPaymentKey\n ? defaultPaymentKey\n : ecommKeys?.length\n ? ecommKeys[0]\n : {\n isNeedPaymentTo: false,\n paymentToInfo: 'Нет даннных о ключе',\n key: 0,\n merchantName: 'Нет созданных ключей',\n cashboxRequired: false,\n paymentType: [],\n };\n\n this.setState({\n isNeedPaymentTo: defaultEcommKey.isNeedPaymentTo,\n paymentToInfo: defaultEcommKey.paymentToInfo,\n ecommKey: defaultEcommKey.key,\n cashboxRequired: defaultEcommKey.cashboxRequired,\n paymentMethod: paymentMethod[0].value,\n paymentObject: paymentObject[0].value,\n tax: tax[0].value,\n taxation: taxation[0].value,\n\n ecommKeyIdsOptions: ecommKeys,\n paymentMethodOptions: paymentMethod,\n paymentObjectOptions: paymentObject,\n taxOptions: tax,\n taxationOptions: taxation,\n paymentType: !isBankApp\n ? defaultEcommKey.paymentType\n : this.state.paymentType,\n });\n })\n .catch((r) => log(r));\n };\n\n itemEmptyCheck = () => {\n const {\n name,\n price,\n quantity,\n amount,\n paymentMethod,\n paymentObject,\n tax,\n } = this.state;\n\n return [\n name,\n price,\n quantity,\n amount,\n paymentMethod,\n paymentObject,\n tax,\n ].includes('');\n };\n\n itemOnEditEmptyCheck = (itemId) => {\n const items = this.state.items;\n const item = items[items.findIndex((item) => item.itemId === itemId)];\n const {\n name,\n price,\n quantity,\n amount,\n paymentMethod,\n paymentObject,\n tax,\n } = item;\n return [\n name,\n price,\n quantity,\n amount,\n paymentMethod,\n paymentObject,\n tax,\n ].includes('');\n };\n\n einvoiceItemRemove = (itemId) =>\n this.setState({\n items: this.state.items.filter((item) => item.itemId !== itemId),\n });\n\n einvoiceItemEdit = (itemId) => {\n const items = this.state.items;\n if (\n !this.state.open_add_einvoice_item &&\n items.every((item) => item.edit !== true)\n ) {\n items[\n items.findIndex((item) => item.itemId === itemId)\n ].edit = true;\n this.setState({ items });\n }\n };\n\n einvoiceItemSave = (itemId) => {\n const items = this.state.items;\n items[items.findIndex((item) => item.itemId === itemId)].edit = false;\n this.setState({ items });\n };\n\n einvoiceEmptyCheck = () => {\n const {\n ecommKey,\n customerEmail,\n customerPhone,\n description,\n merchantEmail,\n dueDate,\n taxation,\n items,\n einvoiceAmmount,\n cashboxRequired,\n } = this.state;\n return (\n [\n ecommKey,\n ...(this.state.qrcType !== '01' && !isBankApp\n ? [customerEmail ? customerEmail : customerPhone]\n : []),\n ...(this.state.qrcType === '01' || isBankApp\n ? []\n : [\n description,\n cashboxRequired ? merchantEmail : einvoiceAmmount,\n ]),\n dueDate,\n taxation,\n ].includes('') ||\n (cashboxRequired && items.length === 0)\n );\n };\n\n handleTerminalChange = (value) => {\n const ecommKeyIdsOption = this.state.ecommKeyIdsOptions.find(\n (ecommKey) => ecommKey.key === Number(value)\n );\n\n this.setState({\n ecommKey: Number(value),\n isNeedPaymentTo: ecommKeyIdsOption.isNeedPaymentTo,\n paymentToInfo: ecommKeyIdsOption.paymentToInfo,\n cashboxRequired:\n this.state.qrcType === '01' &&\n this.state.paymentType.includes('SBP')\n ? false\n : ecommKeyIdsOption.cashboxRequired,\n //TODO: следующее значение скрыто пока не пройдет тестирование DPS-643\n // paymentType: ecommKeyIdsOption.paymentType,\n });\n };\n\n handlePaymentTypeChange = (value) => {\n this.setState(\n {\n paymentType: value.split(','),\n ...(value.split(',').includes('SBP') && { qrcType: '02' }),\n },\n () => {\n this.setState(\n {\n ecommKey: this.filteredEcommKeys()[0]?.key,\n },\n () => {\n this.setState({\n cashboxRequired: this.state.ecommKeyIdsOptions.find(\n (ecommKey) =>\n ecommKey.key === Number(this.state.ecommKey)\n ).cashboxRequired,\n });\n }\n );\n }\n );\n };\n\n handleTypeChange = (value) => {\n const { ecommKey } = this.state;\n const cReqOfSelectedEcommkey = this.filteredEcommKeys().find(\n ({ key }) => key === Number(ecommKey)\n );\n this.setState({\n qrcType: value,\n cashboxRequired:\n value === '01'\n ? false\n : cReqOfSelectedEcommkey\n ? cReqOfSelectedEcommkey.cashboxRequired\n : this.filteredEcommKeys()[0]?.cashboxRequired,\n });\n };\n\n handleFieldChangeSelect = (value, name, itemId = undefined) => {\n if (itemId) {\n const items = this.state.items;\n // поиск нужного свойства по name в редактируемом элементе(товаре) массива this.state.items\n items[items.findIndex((item) => item.itemId === itemId)][name] =\n value;\n this.setState({ items });\n } else {\n this.setState({ [name]: value });\n }\n };\n\n handleFieldChangeInput = ({ target }, itemId = undefined) => {\n if (itemId) {\n const items = this.state.items;\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = target.value;\n this.setState({ items });\n } else {\n this.setState({ [target.name]: target.value });\n }\n };\n\n handlePhoneChange = ({ target }, itemId = undefined) => {\n const sanitizedPhone = maskPhone(target.value);\n\n if (itemId) {\n const items = this.state.items;\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = sanitizedPhone;\n this.setState({ items });\n } else {\n this.setState({\n [target.name]: sanitizedPhone,\n });\n }\n };\n\n handleQuantityChange = ({ target }, itemId = undefined) => {\n const sanitizedQuantity = target.value\n .replace(/[^0-9.]/g, '')\n .replace(/([.][0-9]{4})([0-9.]*)/g, '')\n .replace(/[.]{2}/g, '');\n\n if (itemId) {\n const items = this.state.items;\n const item =\n items[items.findIndex((item) => item.itemId === itemId)];\n\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = sanitizedQuantity;\n this.setState({ items }, () => {\n items[\n items.findIndex((item) => item.itemId === itemId)\n ].amount = ![item.price, item.quantity].includes('')\n ? +(Number(item.price) * Number(item.quantity)).toFixed(2)\n : '';\n this.setState({ items });\n });\n } else {\n this.setState(\n {\n [target.name]: sanitizedQuantity,\n },\n () => {\n this.setState({\n amount: ![\n this.state.price,\n this.state.quantity,\n ].includes('')\n ? +(\n Number(this.state.price) *\n Number(this.state.quantity)\n ).toFixed(2)\n : '',\n });\n }\n );\n }\n };\n\n handlePriceChange = ({ target }, itemId = undefined) => {\n const sanitizedPrice = target.value\n .replace(/[^0-9.]/g, '')\n .replace(/([.][0-9]{3})([0-9.]*)/g, '')\n .replace(/[.]{2}/g, '');\n\n if (itemId) {\n const items = this.state.items;\n const item =\n items[items.findIndex((item) => item.itemId === itemId)];\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = sanitizedPrice;\n this.setState({ items }, () => {\n items[\n items.findIndex((item) => item.itemId === itemId)\n ].amount = ![item.price, item.quantity].includes('')\n ? +(Number(item.price) * Number(item.quantity)).toFixed(2)\n : '';\n this.setState({ items });\n });\n } else {\n this.setState(\n {\n [target.name]: sanitizedPrice,\n },\n () => {\n this.setState({\n amount: ![\n this.state.price,\n this.state.quantity,\n ].includes('')\n ? +(\n Number(this.state.price) *\n Number(this.state.quantity)\n ).toFixed(2)\n : '',\n });\n }\n );\n }\n };\n\n handleDescrChange = ({ target }) => {\n target.value.length <= 125 &&\n this.setState({ [target.name]: target.value });\n };\n\n handleEmailChange = ({ target }, itemId = undefined) => {\n const sanitizedEmail = target.value\n .replace(/[^A-Z0-9._%+-]+@\\S+\\.\\S+/gi, '')\n .replace(/[@]{2}/g, '@')\n .replace(/[.]{3}/g, '.');\n if (itemId) {\n const items = this.state.items;\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = sanitizedEmail;\n this.setState({ items });\n } else {\n this.setState({ [target.name]: sanitizedEmail });\n }\n };\n\n handlePaymentToInfo = ({ target }) => {\n this.setState({\n paymentToInfoValue: target.value,\n });\n };\n\n handleAmmountChange = ({ target }, itemId = undefined) => {\n const sanitizedAmount = target.value\n .replace(/[^0-9.]/g, '')\n .replace(/([.][0-9]{3})([0-9.]*)/g, '')\n .replace(/[.]{2}/g, '');\n\n if (itemId) {\n const items = this.state.items;\n items[items.findIndex((item) => item.itemId === itemId)][\n target.name\n ] = sanitizedAmount;\n this.setState({ items });\n } else {\n this.setState({\n ...this.state,\n [target.name]: sanitizedAmount,\n });\n }\n };\n\n handleDueDate = (data) => {\n this.setState({\n dueDate: data,\n });\n };\n\n handleIsNotStaticOrByCard = () => {\n const { paymentType, qrcType } = this.state;\n return (\n (paymentType && paymentType.includes('CARD')) || qrcType !== '01'\n );\n };\n\n saveEinvoiceItem = () => {\n this.setState(\n {\n items: [\n ...this.state.items,\n {\n amount: this.state.amount,\n measurementUnit: this.state.measurementUnit,\n name: this.state.name,\n paymentMethod: this.state.paymentMethod,\n paymentObject: this.state.paymentObject,\n price: this.state.price,\n quantity: this.state.quantity,\n tax: this.state.tax,\n edit: false,\n itemId: Math.random().toString(36).slice(2),\n },\n ],\n open_add_einvoice_item: !this.state.open_add_einvoice_item,\n },\n () => {\n this.setState({\n ...this.state,\n ...this.einvoiceItem,\n paymentMethod: this.state.paymentMethodOptions[0].value,\n paymentObject: this.state.paymentObjectOptions[0].value,\n tax: this.state.taxOptions[0].value,\n });\n }\n );\n };\n\n addEinvoiceItem = () => {\n this.state.items.every((item) => item.edit !== true) &&\n this.setState({\n open_add_einvoice_item: !this.state.open_add_einvoice_item,\n });\n };\n\n filteredEcommKeys = () => {\n const { ecommKeyIdsOptions } = this.state;\n\n return ecommKeyIdsOptions.filter(({ paymentType }) => {\n if (this.state.paymentType.length > 1) {\n const allNoMir = this.state.paymentType.filter(\n (type) => type !== 'MIR_PAY'\n );\n return (\n paymentType.length > 1 &&\n allNoMir.every((noMirType) =>\n paymentType.includes(noMirType)\n )\n );\n } else {\n return paymentType.some(\n (r) => this.state.paymentType.indexOf(r) >= 0\n );\n }\n });\n };\n\n getEcommKeyIdsOptions = () => {\n const options = [];\n\n const filteredEcommKeyIdsOptions = () => {\n const { ecommKeyIdsOptions } = this.state;\n\n return ecommKeyIdsOptions.filter(({ paymentType }) => {\n if (this.state.paymentType.length && paymentType.length) {\n return this.state.paymentType.every((r) =>\n paymentType.includes(r)\n );\n }\n return false;\n });\n };\n\n filteredEcommKeyIdsOptions().forEach(({ merchantName, key }) => {\n options.push({\n value: String(key),\n content: `${key} ${merchantName}`,\n });\n });\n\n return options;\n };\n\n render() {\n const {\n open_add_einvoice_item,\n cashboxRequired,\n einvoiceAmmount,\n\n paymentType,\n qrcType,\n ecommKey,\n paymentToInfo,\n isNeedPaymentTo,\n paymentToInfoValue,\n customerEmail,\n customerPhone,\n description,\n merchantEmail,\n taxation,\n dueDate,\n\n name,\n price,\n quantity,\n amount,\n paymentMethod,\n paymentObject,\n tax,\n measurementUnit,\n\n ecommKeyIdsOptions,\n paymentMethodOptions,\n paymentObjectOptions,\n taxOptions,\n taxationOptions,\n } = this.state;\n\n const onlyOneEcommKey = ecommKeyIdsOptions.length < 2;\n const companyRolesHasSBP = isPermit(Roles.OPERATION_SBP);\n const companyRolesHasECOM = isPermit(Roles.ECOMM);\n const companyRolesHasEINVOICE = isPermit(Roles.EINVOICE);\n const EcommkeysSbporCardOnly = ecommKeyIdsOptions.every(\n ({ paymentType }) =>\n paymentType.length < 2 &&\n paymentType[0].length > 1 &&\n paymentType[0] === ecommKeyIdsOptions[0].paymentType[0]\n );\n const EcommKeysHasSBPandCard = ecommKeyIdsOptions.some(\n ({ paymentType }) => paymentType.length > 1\n );\n const EcommKeysHasCard = ecommKeyIdsOptions.some(({ paymentType }) =>\n paymentType.includes('CARD')\n );\n /**\n * Проверка на присутствие ролей Электронная коммерция и\n * Электронные счета и отсутствие роли Операции СБП\n */\n const isCompanyRolesHasNoSBP =\n !companyRolesHasSBP &&\n companyRolesHasECOM &&\n companyRolesHasEINVOICE &&\n EcommKeysHasCard;\n /**\n * Значение отображения/скрытия поля Способа оплаты\n */\n const isShowPaymentMethod =\n (companyRolesHasSBP && !EcommkeysSbporCardOnly) ||\n isCompanyRolesHasNoSBP ||\n isBankApp;\n const currentPaymentTypeHasSBP =\n paymentType && paymentType.includes('SBP');\n const paymentTypeHasSBP = currentPaymentTypeHasSBP\n ? true\n : onlyOneEcommKey\n ? ecommKeyIdsOptions.some(({ paymentType }) => {\n const ifOneSbp = paymentType[0] === 'SBP';\n ifOneSbp &&\n this.setState({\n paymentType: ['SBP'],\n });\n return ifOneSbp;\n })\n : false;\n const paymentTypeIsNotEmpty =\n ecommKeyIdsOptions.filter(({ paymentType }) =>\n this.state.paymentType.length > 1\n ? paymentType.length > 1\n : paymentType.some(\n (r) => this.state.paymentType.indexOf(r) >= 0\n )\n ).length === 0;\n\n const defaultValuePaymentType = isBankApp\n ? String(getBankPaymentTypeOptions()[0].value)\n : paymentType.includes('MIR_PAY')\n ? String(paymentType.filter((type) => type !== 'MIR_PAY'))\n : String(paymentType);\n\n return (\n <>\n \n {\n this.toggle_add_einvoice();\n this.getEinvoiceInfo();\n }}\n />\n }\n >\n \n \n \n\n {/*einvoice modals*/}\n\n \n Все введенные данные будут потеряны.\n \n \n

\n {!this.state.ecommKeyIdsOptions?.length\n ? 'Для добавлениея счета необходимо создать ключ'\n : ''}\n

\n {isShowPaymentMethod && (\n \n \n \n )}\n {companyRolesHasSBP && paymentTypeHasSBP && (\n \n 1 &&\n paymentType.includes('SBP'))\n }\n />\n \n )}\n \n \n \n {(this.handleIsNotStaticOrByCard() || isBankApp) && (\n <>\n \n \n \n \n \n \n \n )}\n \n \n \n {isNeedPaymentTo && (\n \n \n \n )}\n {cashboxRequired ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n {cashboxRequired && (\n \n \n this.handleFieldChangeSelect(\n value,\n 'taxation'\n )\n }\n />\n \n )}\n\n {cashboxRequired && open_add_einvoice_item && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.handleFieldChangeSelect(\n value,\n 'tax'\n )\n }\n />\n \n \n \n this.handleFieldChangeSelect(\n value,\n 'paymentMethod'\n )\n }\n />\n \n \n \n this.handleFieldChangeSelect(\n value,\n 'paymentObject'\n )\n }\n />\n \n \n \n Сохранить товар\n \n \n \n )}\n {cashboxRequired && (\n <>\n \n {!open_add_einvoice_item && (\n \n Добавить товар\n \n )}\n \n {this.state.items.map(\n ({\n itemId,\n name,\n edit,\n price,\n quantity,\n amount,\n tax,\n paymentMethod,\n paymentObject,\n measurementUnit,\n }) =>\n edit ? (\n
\n \n \n this.handleFieldChangeInput(\n e,\n itemId\n )\n }\n />\n \n \n \n this.handlePriceChange(\n e,\n itemId\n )\n }\n />\n \n \n \n this.handleQuantityChange(\n e,\n itemId\n )\n }\n />\n \n \n \n this.handleFieldChangeInput(\n e,\n itemId\n )\n }\n />\n \n \n \n this.handleAmmountChange(\n e,\n itemId\n )\n }\n />\n \n \n \n this.handleFieldChangeSelect(\n value,\n 'tax',\n itemId\n )\n }\n />\n \n \n \n this.handleFieldChangeSelect(\n value,\n 'paymentMethod',\n itemId\n )\n }\n />\n \n \n \n this.handleFieldChangeSelect(\n value,\n 'paymentObject',\n itemId\n )\n }\n />\n \n \n \n this.einvoiceItemSave(\n itemId\n )\n }\n disabled={this.itemOnEditEmptyCheck(\n itemId\n )}\n >\n Сохранить товар\n \n \n
\n ) : (\n \n {\n this.einvoiceItemEdit(\n itemId\n );\n }}\n >\n Изменить\n \n \n this.einvoiceItemRemove(\n itemId\n )\n }\n >\n Удалить\n \n \n )\n )}\n \n )}\n \n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n roles: state.auth.companyRoles,\n companyRoles: state.auth.companyRoles,\n cancelationToken: state.requestCancelation.token,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EinvoiceTable);\n","import React, { Component } from 'react';\nimport EinvoiceFilter from './EinvoiceFilter';\n\nimport { EinvoiceTable } from 'src/widgets/einvoice-table';\nimport { LOCAL_STORAGE_TABLE_NAMES } from 'src/shared/lib';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.eInvoiceMerchant;\n\nclass MerchantEinvoicePage extends Component {\n render() {\n return (\n
\n \n \n
\n );\n }\n}\n\nexport default MerchantEinvoicePage;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n localLoadInt,\n localLoadSerialize,\n localSave,\n localSaveSerialize,\n} from '../../shared/lib/localStorage';\nimport { getClassName, log } from '../../shared/lib/util';\nimport { post } from '../../shared/lib/request-wrapper';\nimport Select from 'react-select';\nimport { URL } from 'src/app/config';\n\nimport './company-select.scss';\n\nclass CompanySelect extends Component {\n static companyIds = 'companySelectId';\n static companySelect = 'companySelect';\n static companySelectList = 'companySelectList';\n\n constructor(props) {\n super(props);\n this.id = getClassName(this.props.uid, CompanySelect.companyIds);\n this.value = getClassName(this.props.uid, CompanySelect.companySelect);\n this.list = getClassName(\n this.props.uid,\n CompanySelect.companySelectList\n );\n this.state = {\n fetch: false,\n id: localLoadInt(this.id, undefined),\n value: localLoadSerialize(this.value, undefined),\n list: localLoadSerialize(this.list, undefined),\n };\n this.companySelectInputChangeHandler =\n this.companySelectInputChangeHandler.bind(this);\n }\n\n companySelectInputChangeHandler(input, { action }) {\n if (action === 'input-change' && input.length >= 3) {\n this.getCompanies(input);\n }\n }\n\n componentDidMount() {\n this.props.onChange(this.state.value ? this.state.value : '');\n }\n\n getCompanies(searchQuery) {\n this.setState({ fetch: true });\n return post(\n this.props.url ? this.props.url : URL.companyFindSelectUrl,\n { searchQuery, offset: 0, size: 10 },\n {},\n false\n )\n .then((response) => {\n const list = response.data.payload.map((e) => {\n return { value: e.id, label: e.name };\n });\n this.setState({ fetch: false, list });\n localSaveSerialize(this.list, list);\n })\n .catch((response) => log(response))\n .finally(() => this.setState({ fetch: false }));\n }\n\n onChangeSelect(value) {\n localSaveSerialize(this.value, value ? value : '');\n localSave(this.id, value ? value.value : '');\n this.setState({ value: value ? value : '' });\n this.props.onChange(value ? value : '');\n }\n\n render() {\n return (\n 'Нет данных'}\n loadingMessage={() => 'Обновление'}\n onChange={(value) => this.onChangeSelect(value)}\n onInputChange={this.companySelectInputChangeHandler}\n options={this.state.list}\n isClearable={true}\n components={{ ClearIndicator: () => <> }}\n />\n );\n }\n}\n\nCompanySelect.propTypes = {\n classSelect: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n};\n\nexport default CompanySelect;\n","import React, { Component } from 'react';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport {\n getClassName,\n isPermit,\n PaymentTypeFilterOptions,\n QRCodeTypeOptions,\n localLoad,\n localLoadMoment,\n localSave,\n getInitialFilter,\n formatDateForInput,\n} from 'src/shared/lib';\nimport { FiltersSelector, DateRangePicker, SearchField } from 'src/shared/ui';\nimport { Roles } from 'src/app/config';\nimport { setEndDate, setStartDate, setFilters } from 'src/redux/actions/table';\n\nimport styles from './einvoice-filter.module.scss';\nimport CompanySelect from 'src/components/CompanySelect';\n\nclass EinvoiceFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(this.props.pageTitle, 'startDate');\n this.endDate = getClassName(this.props.pageTitle, 'endDate');\n this.paymentType = getClassName(this.props.pageTitle, 'paymentType');\n this.qrcType = getClassName(this.props.pageTitle, 'qrcType');\n this.searchQuery = getClassName(this.props.pageTitle, 'searchQuery');\n\n const { startDate, endDate, ...initialFilter } = getInitialFilter(\n ['searchQuery'],\n this.props.pageTitle\n );\n\n const localQrcTypeValue = localLoad(this.qrcType, '');\n const localPaymentTypeValue = localLoad(this.paymentType, '')\n .split(',')\n .filter((type) => type !== '');\n\n this.defaultFilter = {\n startDate: localLoadMoment(\n this.startDate,\n moment(new Date()).add(-7, 'days')\n ),\n endDate: localLoadMoment(this.endDate, moment(new Date())),\n paymentType: [],\n qrcType: undefined,\n };\n this.state = {\n ...this.defaultFilter,\n };\n this.setStartDate(this.defaultFilter.startDate);\n this.setEndDate(this.defaultFilter.endDate);\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: localPaymentTypeValue,\n qrcType: localQrcTypeValue,\n ...initialFilter,\n ...this.props.additionalFilter,\n })\n );\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.qrcType, this.props.table?.filters?.qrcType || '');\n localSave(\n this.paymentType,\n this.props.table?.filters?.paymentType || []\n );\n }\n\n componentDidUpdate() {\n this.saveFilter();\n }\n\n getStartDate() {\n return this.props.table?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setStartDate(this.props.pageTitle, date));\n }\n\n getEndDate() {\n return this.props.table?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setEndDate(this.props.pageTitle, date));\n }\n\n render() {\n const companyRolesHasSBP = isPermit(Roles.OPERATION_SBP);\n const isSimpleMode = this.props.mode === 'simple';\n\n return (\n
\n {companyRolesHasSBP && !isSimpleMode && (\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: value,\n })\n ),\n selected:\n this.props.table?.filters?.paymentType ||\n [],\n },\n {\n title: 'Тип QR',\n options: QRCodeTypeOptions,\n onChange: (value) =>\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n qrcType: value,\n })\n ),\n selected:\n this.props.table?.filters?.qrcType || '',\n },\n ].filter(Boolean)}\n reset={() => {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n paymentType: [],\n qrcType: undefined,\n })\n );\n }}\n />\n )}\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).subtract(7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n popupClassName={this.props.datePickerPopupClassName}\n />\n {!isSimpleMode && (\n <>\n \n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyId: value ? [value] : [],\n })\n )\n }\n />\n
\n {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n ecommKeyId: [value],\n })\n );\n }}\n />\n \n )}\n {isSimpleMode && (\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n )\n }\n value={this.props.table?.filters?.searchQuery}\n />\n )}\n \n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n roles: state.auth.companyRoles,\n table: state.table?.[props.pageTitle],\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EinvoiceFilter);\n","import React, { Component } from 'react';\nimport { URL } from 'src/app/config';\n\nimport AwareTable from 'src/components/AwareTable';\nimport EinvoiceFilter from './EinvoiceFilter';\n\nimport { OverflowContainer, Paginator } from 'src/shared';\nimport { LOCAL_STORAGE_TABLE_NAMES } from 'src/shared/lib';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.eInvoiceBank;\n\nclass BankEinvoicePage extends Component {\n render() {\n return (\n
\n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default BankEinvoicePage;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport AwareTable from '../../components/AwareTable';\nimport { URL } from 'src/app/config';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nconst tableName = 'EPayment-Details';\n\nclass EpaymentDetailsPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n name: '',\n };\n }\n\n onNameSave = (name) => this.setState({ name });\n\n render() {\n return (\n
\n \n \n this.onNameSave(name)}\n url={URL.recipes + this.props.match.params.id}\n />\n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EpaymentDetailsPage);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n\nimport {\n getClassName,\n sendToSubject,\n localSave,\n formatDateForInput,\n getInitialFilter,\n} from 'src/shared/lib';\nimport { DateRangePicker, SearchField } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\nimport { setEndDate, setFilters, setStartDate } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\n\nclass EpaymentsFilter extends Component {\n constructor(props) {\n super(props);\n this.clsName = 'EpaymentsFilter';\n this.startDate = getClassName(this.clsName, 'startDate');\n this.endDate = getClassName(this.clsName, 'endDate');\n this.defsIds = getClassName(this.clsName, 'defsIds');\n this.searchQuery = getClassName(this.clsName, 'searchQuery');\n this.defaultFilter = {\n ...getInitialFilter(['searchQuery'], this.clsName),\n };\n this.state = {\n ...this.defaultFilter,\n };\n this.setStartDate(this.defaultFilter.startDate);\n this.setEndDate(this.defaultFilter.endDate);\n this.send = sendToSubject.bind(this);\n\n if (this.props.table?.filters?.searchQuery) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: this.props.table?.filters?.searchQuery,\n })\n );\n }\n }\n\n componentDidMount() {\n this.send({\n filter: {\n ...this.state,\n },\n });\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n saveAndSend() {\n this.saveFilter();\n this.send({\n offset: 1,\n dropOffset: true,\n filter: {\n ...this.state,\n startDate: this.getStartDate(),\n endDate: this.getEndDate(),\n },\n });\n }\n\n componentDidUpdate() {\n this.saveAndSend();\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n }\n\n getStartDate() {\n return this.props.table?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setStartDate(this.props.pageTitle, date));\n }\n\n getEndDate() {\n return this.props.table?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setEndDate(this.props.pageTitle, date));\n }\n\n render() {\n return (\n
\n \n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n position=\"left\"\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).add(-7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n />\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n )\n }\n />\n \n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n terminals: state.terminals.terminals,\n table: state.table?.[props.pageTitle],\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EpaymentsFilter);\n","import React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\n\nimport { Modal, ModalBody, ModalHeader } from 'reactstrap';\n\nimport { URL } from 'src/app/config';\nimport AwareTable from '../../components/AwareTable';\n\nimport EpaymentsFilter from './EpaymentsFilter';\n\nimport { isEmptyObj, log, sendToSubject } from '../../shared/lib/util';\nimport { localLoad } from '../../shared/lib/localStorage';\nimport { get } from '../../shared/lib/request-wrapper';\n\nimport './epayments-page.scss';\nimport { OverflowContainer, Paginator } from 'src/shared';\nimport { LOCAL_STORAGE_TABLE_NAMES } from 'src/shared/lib';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.ePayment;\n\nclass EpaymentsPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n this.receipt = {\n id: '',\n companyName: '',\n address: '',\n inn: '',\n fiscalReceiptNumber: '',\n shiftNumber: '',\n taxation: '',\n email: '',\n phone: '',\n emailCompany: '',\n deviceCode: '',\n items: [],\n totalFiscal: '',\n cashless: '',\n fnNumber: '',\n ecrRegistrationNumber: '',\n fiscalDocumentNumber: '',\n fiscalDocumentAttribute: '',\n ffdVersion: '',\n };\n this.state = {\n ...this.receipt,\n open_receipt_info: false,\n isEmptyReceipt: false,\n receipt: {},\n };\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n this.send({\n offset: localLoad('cashboxes-offset', 0),\n size: localLoad('cashboxes-range', 10),\n });\n };\n toggle_receipt_info = () => {\n this.setState({\n open_receipt_info: !this.state.open_receipt_info,\n });\n };\n\n getCashboxReceiptInfo = (rnn) => {\n get(URL.recipes + rnn)\n .then((r) => {\n this.setState({\n receipt: r.data.payload,\n });\n\n let {\n id,\n companyName,\n address,\n inn,\n fiscalReceiptNumber,\n shiftNumber,\n taxation,\n email,\n phone,\n emailCompany,\n deviceCode,\n items,\n totalFiscal,\n cashless,\n fnNumber,\n ecrRegistrationNumber,\n fiscalDocumentNumber,\n fiscalDocumentAttribute,\n ffdVersion,\n } = r.data.payload;\n\n this.setState({\n id,\n companyName,\n address,\n inn,\n fiscalReceiptNumber,\n shiftNumber,\n taxation,\n email,\n phone,\n emailCompany,\n deviceCode,\n items,\n totalFiscal,\n cashless,\n fnNumber,\n ecrRegistrationNumber,\n fiscalDocumentNumber,\n fiscalDocumentAttribute,\n ffdVersion,\n });\n })\n .catch((r) => {\n this.setState({ open_receipt_info: false });\n log(r);\n });\n };\n\n render() {\n return (\n
\n \n \n \n {\n // this.toggle_receipt_info();\n // this.getCashboxReceiptInfo(e.ID);\n //\n // }\n // }\n />\n \n \n\n {/* TODO эта модалка уже реализована в фиче ShowsInfoAboutReceipt */}\n \n \n Информация о чеке\n \n \n
\n {isEmptyObj(this.state.receipt) ? (\n
\n нет чеков\n
\n ) : (\n \n
\n
\n \n {this.state.receipt.companyName}\n \n
\n
\n \n ИНН {this.state.receipt.inn}\n \n
\n
\n \n Место расчётов:{' '}\n {this.state.receipt.address}\n \n
\n
\n
\n КАССОВЫЙ ЧЕК №{' '}\n {\n this.state.receipt\n .fiscalReceiptNumber\n }{' '}\n
\n
\n
\n
\n \n Приход\n {this.state.receipt.created}\n \n
\n
\n \n Смена\n {this.state.receipt.shiftNumber}\n \n
\n
\n \n \n Применяемая система\n налогообложения\n \n {this.state.receipt.taxation}\n \n
\n
\n \n \n Телефон покупател\n \n {this.state.receipt.phone}\n \n
\n
\n \n \n Электронный адрес покупателя\n \n {this.state.receipt.email}\n \n
\n
\n \n \n Адрес электронной почти\n отпровителя чека\n \n {this.state.receipt.emailCompany}\n \n
\n
\n \n \n Номер автомата\n \n {this.state.receipt.deviceCode}\n \n
\n
\n
\n {this.state.receipt.items.length\n ? this.state.receipt.items.map(\n (\n {\n name,\n price,\n quantity,\n amount,\n tax,\n amountTax,\n paymentMethod,\n paymentObject,\n },\n i\n ) => (\n \n \n
\n Наименование\n товара {name}\n
\n
\n \n {quantity}{' '}\n x {price}\n \n
\n
\n
\n \n \n Общая\n стоимость\n позиции с\n учетом\n скидок и\n наценок\n \n {amount}\n \n \n \n Ставка НДС\n \n {tax}\n \n \n \n Сумма НДС\n \n {amountTax}\n \n \n \n Предмет\n рассчёта\n \n {\n paymentObject\n }\n \n \n \n Способ\n рассчёта\n \n {\n paymentMethod\n }\n \n
\n
\n
\n )\n )\n : null}\n
\n
\n \n \n

ИТОГ

\n
\n

\n {this.state.receipt.totalFiscal}\n

\n
\n
\n
\n \n \n
БЕЗНАЛИЧНЫМИ
\n
\n
\n {this.state.receipt.cashless}\n
\n
\n
\n
\n
\n \n № ФН\n {this.state.receipt.fnNumber}\n \n
\n
\n \n \n Регистрационный номер ККТ\n \n {\n this.state.receipt\n .ecrRegistrationNumber\n }\n \n
\n
\n \n № ФД\n {\n this.state.receipt\n .fiscalDocumentNumber\n }\n \n
\n
\n \n № ФП\n {\n this.state.receipt\n .fiscalDocumentAttribute\n }\n \n
\n
\n \n \n Версия ФФД\n \n {this.state.receipt.ffdVersion}\n \n
\n
\n
\n \n \n Адрес сайта для проверки чека{' '}\n \n {this.state.receipt.fnsSite}\n \n \n \n
\n
\n )}\n
\n
\n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n cancelationToken: state.requestCancelation.token,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(EpaymentsPage);\n","import React, { FC, useState } from 'react';\nimport { Redirect } from 'react-router-dom';\n\nimport styles from './section-card.module.scss';\n\ninterface Props {\n icon?: React.ReactNode;\n bgColor: string;\n title: string;\n description?: string;\n url: string;\n}\n\nexport const SectionCard: FC = ({\n bgColor,\n title,\n description,\n icon,\n url,\n}) => {\n const [redirect, setRedirect] = useState();\n return (\n setRedirect(url)}\n className={styles['section-card']}\n style={{ backgroundColor: bgColor }}\n >\n {redirect && }\n

{title}

\n

{description}

\n
{icon}
\n \n );\n};\n","import React, { FC } from 'react';\n\nimport styles from './layout.module.scss';\n\ninterface Props {\n topContent?: React.ReactNode;\n links: React.ReactNode;\n title?: string;\n}\n\nexport const Layout: FC = ({ links, title, topContent, children }) => {\n return (\n
\n {topContent && (\n
{topContent}
\n )}\n
\n
\n {title &&

{title}

}\n {children}\n
\n
{links}
\n
\n
\n );\n};\n","import React, { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { navRoutes } from 'src/app/config';\nimport { EmailIcon, PhoneIcon } from 'src/shared/ui';\n\nimport styles from './sidebar.module.scss';\n\ninterface SideBarkLinkProps {\n url: string;\n icon: React.ReactNode;\n}\n\nconst SidebarLink: FC = ({ url, icon, children }) => {\n return (\n \n
{icon}
\n {children}\n \n );\n};\n\nexport const Sidebar = () => {\n return (\n
\n

Остались вопросы?

\n

\n Если Вы не нашли нужный ответ, воспользуйтесь формой обратной\n связи или свяжитесь со службой технической поддержки.\n

\n \n Обратная связь\n \n \n Техническая поддержка\n \n
\n );\n};\n","import styles from './content.module.scss';\nimport { SearchField } from '../../../../shared';\nimport React from 'react';\n\nexport const Search = ({ value, onChange }) => {\n return (\n <>\n

\n Чем мы можем Вам помочь?\n

\n \n \n );\n};\n","export const texts = {\n system: {\n commonDescription: 'Общее описание',\n edge: 'Edge',\n firefox: 'Firefox',\n chrome: 'Chrome',\n ie: 'Ie',\n safari: 'Safari',\n osSafari: 'OS Safari',\n samsungInternet: 'Samsung Internet',\n chromeForAndroid: 'Chrome for Android',\n ucBrowserForAndroid: 'UC Browser for Android',\n activateAccount: 'Активация учетной записи сотрудника',\n supportPartial: 'Поддерживается частично',\n supportedBrowser: 'Поддерживаемые версии браузеров',\n siteLink: 'https://merchant.sdm.ru',\n headerPartOne:\n 'Личный кабинет — это веб-приложение для сотрудников ТСП, которое постоянно доступно пользователям ТСП через интернет по адресу ',\n headerPartTwo:\n '. Личный кабинет позволяет отслеживать проведенные операции и возмещения по ним, анализировать основные показатели предприятия и сравнивать данные за разные периоды.',\n footer: 'При создании нового пользователя ТСП, на указанный адрес электронной почты высылается письмо с ссылкой для активации пользователя, а на указанный номер телефона высылается смс-сообщение с кодом подтверждения. При переходе по ссылке активации в браузере, пользователю отображается форма установки постоянного пароля для пользователя ТСП. Далее, необходимо придумать надежный пароль, ввести его в форму, повторить ввод пароля, ввести код подтверждения активации из смс-сообщения и затем нажать на кнопку Отправить. В случае успешной активации, пользователь будет перенаправлен на форму входа, в противном случае, появится всплывающее сообщение об ошибке.',\n },\n};\n","import React from 'react';\nimport { navRoutes } from 'src/app/config';\nimport { AccessIcon, SecurityIcon, SystemIcon, UserIcon } from 'src/shared/ui';\nimport { texts } from './texts';\n\ninterface NavigationItem {\n bgColor: string;\n title: string;\n description: string;\n icon: React.ReactNode;\n url: string;\n content: string[];\n}\n\nexport const navigation: NavigationItem[] = [\n {\n bgColor: '#F9F9FA',\n title: 'Управление аккаунтом',\n description:\n 'Как подключиться, роли пользователей, вход, настройки терминалов, статистика',\n icon: UserIcon,\n url: '',\n content: [],\n },\n {\n bgColor: '#fbf9f7',\n title: 'Настройка доступа',\n description:\n 'Вход по паролю, восстановление пароля, настройка рабочей среды',\n icon: AccessIcon,\n url: '',\n content: [],\n },\n {\n bgColor: '#fbf6f7',\n title: 'Безопасность',\n description:\n 'Как защитить учетную запись, безопастность данных, статистика авторизаций',\n icon: SecurityIcon,\n url: '',\n content: [],\n },\n {\n bgColor: '#f0f3f6',\n title: 'Работа с системой',\n description: 'Статистика, возвраты, счета, выгрузка данных',\n icon: SystemIcon,\n url: navRoutes.support.system,\n content: [...Object.values(texts.system)],\n },\n];\n","type BrowserName =\n | 'Chrome'\n | 'Firefox'\n | 'Edge'\n | 'Internet Explorer'\n | 'Safari'\n | 'Mobile Safari'\n | 'Samsung Browser';\n\nconst BrowserConfig: { [key: string]: number } = {\n Chrome: 108,\n Firefox: 109,\n Edge: 108,\n 'Internet Explorer': 11,\n Safari: 13,\n 'Mobile Safari': 15,\n 'Samsung Browser': 15,\n};\n\nexport { BrowserConfig };\nexport type { BrowserName };\n","import { BrowserConfig, BrowserName } from './browserConfig';\nimport { texts } from './texts';\n\nconst getText = (browserName: BrowserName) =>\n `От ${BrowserConfig[browserName]} версии`;\n\nexport const supportedBrowsersText = {\n [texts.system.ie]: texts.system.supportPartial,\n [texts.system.edge]: getText('Edge'),\n [texts.system.firefox]: getText('Firefox'),\n [texts.system.chrome]: getText('Chrome'),\n [texts.system.safari]: getText('Safari'),\n [texts.system.osSafari]: getText('Mobile Safari'),\n [texts.system.chromeForAndroid]: '102',\n [texts.system.ucBrowserForAndroid]: '13.3',\n [texts.system.samsungInternet]: getText('Samsung Browser'),\n};\n","import React from 'react';\n\nexport const EmptyContent = () => {\n return Ничего не найдено;\n};\n","import { navigation } from '../../config';\nimport { EmptyContent } from './empty-content';\nimport styles from './content.module.scss';\nimport { SectionCard } from '../section-card';\nimport React from 'react';\n\nexport const Navigation = ({ searchQuery }: { searchQuery: string }) => {\n const filteredItems = navigation.filter((el) => {\n return (\n el.content?.some((el) =>\n el.toLowerCase().includes(searchQuery.toLowerCase())\n ) ||\n el.title.toLowerCase().includes(searchQuery.toLowerCase()) ||\n el.description.toLowerCase().includes(searchQuery.toLowerCase())\n );\n });\n\n if (filteredItems.length === 0) {\n return ;\n }\n\n return (\n
\n {filteredItems.map((props, idx) => (\n \n ))}\n
\n );\n};\n","import React, { useState } from 'react';\nimport { Layout } from '../layout';\nimport { Sidebar } from '../sidebar';\nimport { Search } from './search';\nimport { Navigation } from './navigation';\n\nexport const Content = () => {\n const [searchQuery, setSearchQuery] = useState('');\n return (\n }\n topContent={\n \n }\n >\n \n \n );\n};\n","import React, { FC } from 'react';\n\nimport styles from './light-table.module.scss';\n\ninterface LightTableProps {\n borderTop?: boolean;\n}\n\nexport const LightTable: FC = ({ borderTop, children }) => {\n const computedClassName = [\n styles['light-table'],\n Boolean(borderTop) ? styles['light-table--border-top'] : '',\n ].join(' ');\n\n return
{children}
;\n};\n","import { map } from 'lodash';\nimport React from 'react';\nimport { supportedBrowsersText } from '../../config';\nimport { LightTable } from '../light-table';\nimport { texts } from '../../config/texts';\n\nimport styles from './about-system.module.scss';\n\nexport const AboutSystem = () => {\n return (\n
\n {' '}\n

\n {texts.system.commonDescription}\n

\n

\n {texts.system.headerPartOne}\n \n {texts.system.siteLink}\n \n {texts.system.headerPartTwo}\n

\n \n
\n \n \n \n \n \n \n {map(supportedBrowsersText, (entry, key) => (\n \n \n \n \n ))}\n \n
{texts.system.supportedBrowser}
{key}{entry}
\n \n

{texts.system.activateAccount}

\n

{texts.system.footer}

\n \n );\n};\n","import React from 'react';\nimport { HelpPageContent } from 'src/entities/help';\n\nexport const HelpPage = () => {\n return ;\n};\n","import React from 'react';\nimport {\n AboutSystem,\n HelpPageLayout,\n HelpPageSidebar,\n} from 'src/entities/help';\n\nexport const SystemPage = () => {\n return (\n }>\n \n \n );\n};\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n\nimport { logOut, redirectUrlByPermission } from 'src/redux/actions/auth';\nimport {\n getInactivePeriodPerDays,\n getTerminals,\n} from 'src/redux/actions/terminals';\nimport { CHANGE_ROUTE } from 'src/redux/constants';\n\nimport { navRoutes, ProtectedRoutes, URL } from 'src/app/config';\nimport { PageLayout } from 'src/shared/ui';\nimport { getAppTitle } from 'src/shared/lib';\n\nimport {\n Navigation,\n UserDropdownNavigation,\n FooterNavigation,\n} from 'src/app/config';\n\nclass MainPage extends Component {\n constructor(props) {\n super(props);\n this.unlisten = null;\n this.homePageUrl =\n getAppTitle() === 'merchant'\n ? navRoutes.statistic\n : navRoutes.company;\n }\n\n componentDidMount() {\n if (!this.props.auth.logged) {\n this.props.history.push(URL.loginUrl);\n } else {\n const { pathname } = this.props.history.location;\n if (pathname === '/') {\n this.props.history.push(\n redirectUrlByPermission(\n this.props.auth.roles,\n this.props.auth.companyRoles\n )\n );\n }\n if (getAppTitle() === 'merchant') {\n this.props.getTerminals();\n this.props.getInactivePeriodPerDays();\n }\n }\n this.unlisten = this.props.history.listen((route) =>\n this.props.changeRoute(route.pathname)\n );\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n componentDidUpdate() {\n if (!this.props.auth.logged) this.props.history.push(URL.loginUrl);\n }\n\n setHead(path) {\n if (path === navRoutes.statistic) return 'Статистика';\n if (path === navRoutes.company || path === navRoutes.company + '/')\n return 'Управление ТСП';\n if (path === navRoutes.groups || path === navRoutes.groups + '/')\n return 'Группы ТСП';\n if (path === navRoutes.reversal || path === navRoutes.reversal + '/')\n return 'Возвраты';\n if (path === navRoutes.dynamics) return 'Динамика';\n if (\n path === navRoutes.operationLastUrl ||\n path === navRoutes.operationLastUrl + '/'\n )\n return 'Операции';\n if (path.includes(navRoutes.operations)) return 'Детали операции';\n if (path === navRoutes.operationSBPLastUrl) return 'Операции СБП';\n if (path === navRoutes.schedule) return 'Подписки';\n if (path === navRoutes.platformCashBox) return 'Реестры ПЛАТ-ФОРМЫ';\n if (\n path === navRoutes.settlementLastUrl ||\n path === navRoutes.settlementLastUrl + '/'\n )\n return 'Возмещения';\n if (path.includes(navRoutes.settlement))\n return `Возмещения за ${moment(path.split('/')[2]).format(\n 'DD.MM.YYYY'\n )}`;\n if (path.includes(navRoutes.support.root)) return 'Помощь и справка';\n if (path.includes(navRoutes.einvoice)) return 'Счета';\n if (\n path.includes(navRoutes.settingsUsers) ||\n path.includes(navRoutes.users)\n )\n return 'Управление пользователями';\n if (path.includes(navRoutes.inventory)) return 'Инвентарь';\n if (path.includes(navRoutes.settingsTerminals))\n return 'Управление терминалами';\n if (path.includes(navRoutes.settingsUser))\n return 'Профиль пользователя';\n if (path === navRoutes.payments || path === navRoutes.payments + '/')\n return 'Онлайн заказы';\n if (\n path === navRoutes.platformErrorCashBox ||\n path === navRoutes.platformErrorCashBox + '/'\n )\n return 'Кассы';\n if (path.includes(navRoutes.receiptsOfCashbox.replace(/:id/gi, '')))\n return 'Чеки реестра';\n\n if (path === navRoutes.cashBoxes || path === navRoutes.cashBoxes + '/')\n return 'Ключи';\n if (path.includes(navRoutes.ecomm)) return 'Электронная коммерция';\n return null;\n }\n render() {\n return (\n }\n pageTitle={this.setHead(this.props.location.pathname)}\n userDropdownNavigation={}\n userName={\n this.props.auth.companyName || this.props.auth.fullName\n }\n footerNavigation={}\n homePageUrl={this.homePageUrl}\n >\n
\n \n
\n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n auth: state.auth,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n logOut: () => dispatch(logOut()),\n getTerminals: () => dispatch(getTerminals()),\n getInactivePeriodPerDays: () => dispatch(getInactivePeriodPerDays()),\n changeRoute: (path) => dispatch({ type: CHANGE_ROUTE, path }),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps, null, {\n forwardRef: true,\n})(MainPage);\n","import React, { Component } from 'react';\n\nimport {\n getClassName,\n sendToSubject,\n localLoad,\n localSave,\n} from 'src/shared/lib';\nimport { SearchField } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\n\ninterface State {\n searchQuery: string;\n}\n\nclass MerchantUserFilter extends Component<{}, State> {\n send: (message: any) => void;\n name: string;\n\n constructor(props) {\n super(props);\n this.name = getClassName('MerchantUserFilter', 'searchQuery');\n this.state = {\n searchQuery: localLoad(this.name, ''),\n };\n this.send = sendToSubject.bind(this);\n }\n\n componentDidMount() {\n this.send({\n filter: {\n ...this.state,\n },\n });\n }\n\n getData() {\n localSave(this.name, this.state.searchQuery);\n this.send({\n offset: 1,\n dropOffset: true,\n filter: {\n ...this.state,\n },\n });\n }\n\n render() {\n return (\n \n \n this.setState(\n {\n searchQuery: value,\n },\n this.getData\n )\n }\n />\n \n );\n }\n}\n\nexport default MerchantUserFilter;\n","import { SelectOption } from '../model/types';\n\nexport const addValueInObject = (\n value: string,\n object: Record\n) => {\n object[value] = value;\n};\n\nexport const deleteKeyFromObject = (\n key: string,\n object: Record\n) => {\n delete object[key];\n};\n\nexport const getCountKeyInObject = (object: Record) => {\n return Object.keys(object).length;\n};\n\nexport const filterArray = (query: string, array: SelectOption[]) => {\n if (!query) {\n return array;\n }\n\n const regexp = new RegExp(query.toLowerCase(), 'g');\n return array.filter((item) => regexp.test(item.content.toLowerCase()));\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { Button, ResetFiltersIcon } from 'src/shared';\nimport { classNames } from 'src/shared/lib';\nimport { SelectOption } from '../../model/types';\nimport {\n SelectedOptions,\n TypeOptions,\n} from '../selecting-items-from-list/selecting-items-from-list';\nimport styles from './modal-ui-header.module.scss';\n\ninterface ModalUiHeaderProps {\n name: string;\n typeOptions: TypeOptions;\n numberSelectedItems: number;\n entitiesOptions: (string | number)[] | Record;\n selectedOptions: SelectedOptions;\n onClickSelectedOption: (e: MouseEvent) => void;\n onClickButton: () => void;\n className?: string;\n}\n\nexport const ModalUiHeader: FC = (props) => {\n const {\n name,\n typeOptions,\n numberSelectedItems,\n selectedOptions,\n entitiesOptions,\n onClickSelectedOption,\n onClickButton,\n className,\n } = props;\n\n const getDisplayOption = (value: string) => {\n switch (typeOptions) {\n case TypeOptions.ROLES:\n return entitiesOptions[value].content;\n case TypeOptions.TERMINALS:\n return entitiesOptions[value].content.split(' ')[0];\n default:\n return entitiesOptions[value].content;\n }\n };\n\n const renderSelectedOptions = Object.values(selectedOptions)?.map(\n (option, index) => {\n if (index > (isMobile ? 1 : 2)) {\n return null;\n }\n\n return (\n \n {getDisplayOption(option)}\n \n {ResetFiltersIcon}\n \n \n );\n }\n );\n\n return (\n
\n \n
\n {renderSelectedOptions}\n
\n\n {numberSelectedItems > (isMobile ? 1 : 2) && (\n \n + {numberSelectedItems}\n \n )}\n
\n );\n};\n","import React, { FC } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { Button, Input, Modal, Popup } from 'src/shared';\nimport styles from './modal-ui-popup.module.scss';\n\ninterface ModalUiPopupProps {\n triggerRef: React.MutableRefObject;\n hiddenPopup: () => void;\n search: string;\n onSearch: (e: React.ChangeEvent) => void;\n onSelectedAll: () => void;\n onReset: () => void;\n}\n\nconst HEIGHT_POPUP = 320;\n\nexport const ModalUiPopup: FC = (props) => {\n const {\n triggerRef,\n hiddenPopup,\n search,\n onSearch,\n onSelectedAll,\n onReset,\n children,\n } = props;\n\n if (isMobile) {\n return (\n \n
\n \n
\n \n \n
\n
\n
{children}
\n \n );\n }\n return (\n \n
\n \n
\n \n \n
\n
\n
{children}
\n \n );\n};\n","import React, {\n FC,\n memo,\n MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { SelectedIcon } from 'src/shared';\nimport { useComponentDidMount } from 'src/shared/lib';\nimport { checkLengthString, classNames, normalizeData } from 'src/shared/lib';\nimport {\n addValueInObject,\n deleteKeyFromObject,\n filterArray,\n getCountKeyInObject,\n} from '../../lib/helper-functions';\nimport { SelectOption } from '../../model/types';\nimport { ModalUiHeader } from '../modal-ui-header/modal-ui-header';\nimport { ModalUiPopup } from '../modal-ui-popup/modal-ui-popup';\nimport styles from './selecting-items-from-list.module.scss';\n\nexport enum DisplayTheme {\n MODAL = 'MODAL',\n FILTER = 'FILTER',\n}\n\nexport enum TypeOptions {\n TERMINALS = 'TERMINALS',\n ROLES = 'ROLES',\n}\n\nexport type SelectedOptions = Record;\n\ninterface SelectingItemsFromListProps {\n name: string;\n options: SelectOption[];\n onChange: (array: string[]) => void;\n theme: DisplayTheme;\n typeOptions: TypeOptions;\n initOptions?: string[] | number[];\n className?: string;\n}\n\nexport const SelectingItemsFromList: FC = memo(\n (props) => {\n const {\n name,\n options,\n initOptions,\n theme = DisplayTheme.FILTER,\n typeOptions,\n onChange,\n className,\n } = props;\n\n const triggerRef = useRef(null);\n const selectedOptions = useRef({}).current;\n const [entities] = normalizeData(options, 'value');\n\n const [isOpen, setOpen] = useState(false);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_, setUpdateComponent] = useState(false);\n const [search, setSearch] = useState('');\n const isComponentDidMount = useComponentDidMount();\n\n const updateComponent = () => {\n setUpdateComponent((prev) => !prev);\n };\n\n const onToggle = useCallback(() => {\n setOpen((prev) => !prev);\n }, []);\n\n const initSelectedOptions = (initOptions?: Array) => {\n if (initOptions && initOptions?.length > 0) {\n initOptions.forEach((value) => {\n addValueInObject(String(value), selectedOptions);\n });\n updateComponent();\n }\n };\n\n // не работает т.к. onChange всегда новая и в useEffect вызывает бесконечный рендер компоннета\n const onChangeHandler = useCallback(\n (selectedOptions: SelectedOptions) => {\n const newArray = [...Object.keys(selectedOptions)];\n onChange(newArray);\n },\n [onChange]\n );\n\n const onClickSelectedOption = useCallback(\n (e: MouseEvent) => {\n const value = e.currentTarget.parentElement?.dataset.value;\n\n if (value && selectedOptions[value]) {\n deleteKeyFromObject(value, selectedOptions);\n updateComponent();\n\n if (!isOpen) {\n onChangeHandler(selectedOptions);\n }\n }\n },\n [isOpen, selectedOptions, onChangeHandler]\n );\n\n const onClickOptionInList = (e: MouseEvent) => {\n const { value } = e.currentTarget.dataset;\n\n if (value && !selectedOptions[value]) {\n addValueInObject(value, selectedOptions);\n } else if (value && selectedOptions[value]) {\n deleteKeyFromObject(value, selectedOptions);\n }\n updateComponent();\n };\n\n const onSelectedAll = () => {\n options.forEach((option) => {\n addValueInObject(option.value, selectedOptions);\n });\n updateComponent();\n };\n\n const onReset = () => {\n Object.keys(selectedOptions).forEach((key) => {\n deleteKeyFromObject(key, selectedOptions);\n });\n updateComponent();\n };\n\n const onSearch = (e: React.ChangeEvent) => {\n const value = e.target.value;\n setSearch(value);\n };\n\n useEffect(() => {\n if (isComponentDidMount && !isOpen) {\n onChangeHandler(selectedOptions);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isComponentDidMount, isOpen, selectedOptions]);\n\n useEffect(() => {\n initSelectedOptions(initOptions);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initOptions]);\n\n const renderOptionsList = filterArray(search, options)?.map((opt) => (\n \n {SelectedIcon}\n {checkLengthString(opt.content, 67)}\n \n ));\n\n if (theme === DisplayTheme.MODAL) {\n return (\n
\n
\n \n
\n {isOpen && (\n \n {renderOptionsList}\n \n )}\n
\n );\n }\n\n // по умолчанию должен возвращать вариант DisplayTheme.FILTER\n return null;\n }\n);\n","/**\n * Функция нормализует переданный массив данных\n * @param data : массив данных\n * @param key : ключ для объекта\n * @returns : кортеж [{key:data}, data]\n */\n\nexport const normalizeData = (data: T[], key: string) => {\n const ids: Array = [];\n const entities = {} as Record;\n\n data.forEach((item) => {\n ids.push(item[key]);\n entities[item[key]] = item;\n });\n return [entities, ids];\n};\n","import React, { Component } from 'react';\nimport { ReplaySubject } from 'rxjs';\n\nimport { Roles, URL } from 'src/app/config';\nimport {\n DisplayTheme,\n TypeOptions,\n SelectOption,\n SelectingItemsFromList,\n} from 'src/features/selecting-items-from-list';\nimport { getAllTerminals, MainTerminal, Terminal } from 'src/entities/terminal';\nimport { Input, Modal, ModalField, NewCheckbox } from 'src/shared';\nimport {\n getOptionsForSelect,\n isAdmin,\n log,\n maskPhone,\n post,\n validateEmail,\n} from 'src/shared/lib';\nimport { createNotification } from 'src/redux/actions/notification';\nimport store from 'src/store';\n\ninterface State {\n email: string;\n open: boolean;\n fullName: string;\n cellPhone: string;\n roles: string[];\n terminals: number[];\n emailIsValid: boolean;\n allTerminals: Terminal[];\n adminChecked?: boolean;\n}\n\ninterface Props {\n roles: string[];\n companyRoles: { value: string }[];\n terminals: MainTerminal[];\n successCallback?: () => void;\n}\n\nexport default class AddUserModal extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n\n let allTerminals = getAllTerminals(this.props.terminals);\n\n this.state = {\n open: false,\n fullName: '',\n emailIsValid: true,\n cellPhone: '',\n email: '',\n roles: [],\n terminals: [],\n adminChecked: false,\n allTerminals,\n };\n\n this.toggleAddUser = this.toggleAddUser.bind(this);\n this.createMerchantUser = this.createMerchantUser.bind(this);\n }\n\n toggleAddUser() {\n this.setState({\n fullName: '',\n email: '',\n cellPhone: '',\n roles: [],\n terminals: [],\n open: !this.state.open,\n });\n }\n\n createMerchantUser() {\n if (this.validateForm()) {\n post(URL.merchantCreateUsersUrl, {\n fullName: this.state.fullName,\n email: this.state.email,\n cellPhone: this.state.cellPhone,\n roles: this.state.adminChecked\n ? [Roles.ADMIN]\n : this.state.roles,\n terminalIds: this.state.adminChecked\n ? []\n : this.state.terminals,\n })\n .then(() => {\n this.filterSubject.next({ forceRequest: true });\n this.props.successCallback?.();\n store.dispatch(\n createNotification(\n {\n title: 'Создание пользователя',\n message: 'Пользователь успешно создан',\n },\n 'success'\n )\n );\n })\n .catch((error) => {\n log(error);\n });\n this.setState({ open: false });\n }\n }\n\n validateForm() {\n if (\n this.state.fullName &&\n validateEmail(this.state.email) &&\n this.state.cellPhone.length === 12\n ) {\n return true;\n } else {\n return false;\n }\n }\n getErrorValidateEmail() {\n if (!this.state.emailIsValid && !this.state.email.length) {\n return 'Некорректный email';\n }\n return undefined;\n }\n\n filterRoles(roles) {\n return roles.filter((role) => role.value !== 'ADMIN');\n }\n\n getTerminalsOptions() {\n const options = [] as SelectOption[];\n this.state.allTerminals.forEach((terminal) => {\n const option = {} as SelectOption;\n option.value = String(terminal.id) || '';\n option.content = `${terminal.uid} ${terminal.name}` || '';\n options.push(option);\n });\n return options;\n }\n\n render() {\n const { companyRoles } = this.props;\n\n return (\n <>\n \n \n \n \n this.setState({\n fullName: fio.target.value,\n })\n }\n />\n \n \n \n this.setState({ email: email.target.value })\n }\n />\n \n \n {\n this.setState({\n cellPhone: maskPhone(phone.target.value),\n });\n }}\n />\n \n {isAdmin(this.props.roles) && (\n \n \n this.setState({\n adminChecked: e.target.checked,\n })\n }\n />\n \n )}\n {!this.state.adminChecked && (\n \n \n this.setState({\n roles: [...selectedRoles],\n })\n }\n />\n \n )}\n {!this.state.adminChecked && (\n \n {\n this.setState({\n terminals: terminals.map((terminal) =>\n Number(terminal)\n ),\n });\n }}\n />\n \n )}\n \n \n );\n }\n}\n","import React, { ChangeEvent, Component } from 'react';\nimport { ReplaySubject } from 'rxjs';\n\nimport { createNotification } from 'src/redux/actions/notification';\nimport store from 'src/store';\nimport {\n DisplayTheme,\n SelectingItemsFromList,\n SelectOption,\n TypeOptions,\n} from 'src/features/selecting-items-from-list';\nimport { getAllTerminals, Terminal, MainTerminal } from 'src/entities/terminal';\nimport { URL, Roles } from 'src/app/config';\nimport {\n get,\n getOptionsForSelect,\n isAdmin,\n log,\n maskPhone,\n post,\n} from 'src/shared/lib';\nimport { Button, Input, Modal, ModalField, NewCheckbox } from 'src/shared';\nimport { SelectedIcon, ResetFiltersIcon } from 'src/shared';\nimport styles from './edit-user.module.scss';\n\ninterface State {\n email: string;\n open: boolean;\n fullName: string;\n cellPhone: string;\n roles: string[];\n terminals: number[];\n emailIsValid: boolean;\n adminChecked?: boolean;\n bankBlocked?: boolean;\n companyBlocked?: boolean;\n temporaryBlocked?: boolean;\n allTerminals: Terminal[];\n}\n\ninterface Props {\n roles: string[];\n companyRoles: { value: string }[];\n terminals: MainTerminal[];\n open: boolean;\n id: string;\n toggleUpdateUser: (open: boolean) => void;\n successCallback?: () => void;\n}\n\nexport default class AddUserModal extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n\n let allTerminals = getAllTerminals(this.props.terminals);\n\n this.state = {\n open: false,\n\n fullName: '',\n cellPhone: '',\n email: '',\n roles: [],\n terminals: [],\n bankBlocked: false,\n temporaryBlocked: false,\n emailIsValid: true,\n\n adminChecked: false,\n companyBlocked: false,\n allTerminals,\n };\n }\n\n componentDidMount() {\n this.getUserInfo(this.props.id);\n }\n\n componentWillReceiveProps = (nextProps: Props) => {\n if (nextProps.id !== this.props.id && nextProps.id) {\n this.getUserInfo(nextProps.id);\n }\n };\n\n getUserInfo(merchantId: string) {\n get(URL.getMerchantUserInfo + merchantId)\n .then((r) => {\n let {\n email,\n fullName,\n cellPhone,\n bankBlocked,\n companyBlocked,\n temporaryBlocked,\n terminalIds,\n roles,\n } = r.data.payload;\n this.setState({\n bankBlocked,\n companyBlocked,\n temporaryBlocked,\n fullName,\n cellPhone,\n email,\n terminals: terminalIds,\n roles,\n adminChecked: isAdmin(roles),\n });\n })\n .catch((r) => {\n this.props.toggleUpdateUser(false);\n log(r);\n });\n }\n\n notify(title: string, message?: string) {\n store.dispatch(\n createNotification(\n {\n title: title,\n message: message,\n },\n 'success'\n )\n );\n }\n\n resetMerchantUserPassword(id) {\n get(URL.resetUserPasswordUrl + id)\n .then((r) => {\n this.notify(\n 'Смена пароля',\n `Пароль для ${this.state.fullName} сброшен`\n );\n this.props.toggleUpdateUser(false);\n this.props.successCallback?.();\n this.filterSubject.next({ forceRequest: true });\n })\n .catch((r) => {\n log(r);\n this.props.toggleUpdateUser(false);\n });\n }\n\n updateMerchantUser(id) {\n post(URL.merchantUpdateUsersUrl, {\n id,\n fullName: this.state.fullName,\n email: this.state.email,\n cellPhone: this.state.cellPhone,\n block: this.state.companyBlocked,\n roles: this.state.adminChecked\n ? [Roles.ADMIN]\n : isAdmin(this.state.roles)\n ? this.state.roles.filter((role) => role !== 'ADMIN')\n : this.state.roles,\n terminalIds: this.state.adminChecked ? [] : this.state.terminals,\n })\n .then((r) => {\n this.filterSubject.next({ forceRequest: true });\n this.props.successCallback?.();\n this.notify(\n 'Редактирование пользователя',\n 'Пользователь успешно изменен'\n );\n })\n .catch((r) => {\n log(r);\n });\n this.props.toggleUpdateUser(false);\n }\n\n getModalHeader() {\n return isAdmin(this.state.roles) && this.state.adminChecked\n ? isAdmin(this.props.roles)\n ? 'Редактирование администратора'\n : 'Информация об администраторе'\n : 'Редактирование пользователя';\n }\n\n getErrorValidateEmail() {\n if (!this.state.emailIsValid && !this.state.email.length) {\n return 'Некорректный email';\n }\n return undefined;\n }\n\n filterRoles(roles) {\n return roles.filter((role) => role.value !== 'ADMIN');\n }\n\n getTerminalsOptions() {\n const options = [] as SelectOption[];\n this.state.allTerminals.forEach((terminal) => {\n const option = {} as SelectOption;\n option.value = String(terminal.id) || '';\n option.content = `${terminal.uid} ${terminal.name}` || '';\n options.push(option);\n });\n return options;\n }\n\n changeAdminChecked = (e: ChangeEvent) => {\n if (e.target.checked) {\n this.setState({\n adminChecked: e.target.checked,\n });\n } else {\n this.setState({\n adminChecked: e.target.checked,\n roles: [],\n });\n }\n };\n\n getUserStatus = () =>\n this.state.bankBlocked ||\n this.state.companyBlocked ||\n this.state.temporaryBlocked;\n\n render() {\n let { companyRoles } = this.props;\n let { roles, terminals } = this.state;\n\n return (\n this.props.toggleUpdateUser(!this.props.open)}\n onAction={() => this.updateMerchantUser(this.props.id)}\n disabledActionButton={\n isAdmin(this.state.roles) && !isAdmin(this.props.roles)\n }\n >\n
\n \n {this.getUserStatus() ? ResetFiltersIcon : SelectedIcon}\n \n

\n {this.getUserStatus()\n ? 'Пользователь заблокирован'\n : 'Пользователь активен'}\n

\n

ID {this.props.id}

\n
\n\n \n \n this.setState({\n fullName: fio.target.value,\n })\n }\n />\n \n \n \n this.setState({ email: email.target.value })\n }\n />\n \n \n {\n this.setState({\n cellPhone: maskPhone(phone.target.value),\n });\n }}\n />\n \n {isAdmin(this.props.roles) && (\n \n \n \n )}\n {!this.state.adminChecked && (\n \n \n this.setState({\n roles: [...selectedRoles],\n })\n }\n />\n \n )}\n {!this.state.adminChecked && (\n \n {\n this.setState({\n terminals: terminals.map((terminal) =>\n Number(terminal)\n ),\n });\n }}\n />\n \n )}\n {isAdmin(this.props.roles) && (\n \n \n this.setState({\n companyBlocked: e.target.checked,\n })\n }\n />\n \n )}\n \n \n this.resetMerchantUserPassword(this.props.id)\n }\n disabled={\n isAdmin(this.state.roles) &&\n !isAdmin(this.props.roles)\n }\n >\n Сбросить пароль\n \n \n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\n\nimport { URL } from 'src/app/config';\n\nimport AwareTable from 'src/components/AwareTable';\nimport Container from 'src/components/Container';\n\nimport MerchantUserFilter from './MerchantUserFilter';\nimport AddUserModal from './modals/add-user/add-user';\nimport EditUserModal from './modals/edit-user/edit-user';\n\nimport { isAdmin, roleNameMapper } from 'src/shared/lib';\n\nimport './merchant-user-list-page.scss';\n\nclass MerchantUserListPage extends Component {\n filterSubject = new ReplaySubject(1);\n awareTableRef = null;\n\n constructor(props) {\n super(props);\n this.state = {\n id: undefined,\n adminChecked: undefined,\n updateUserModalOpen: false,\n terminalIds: [],\n };\n this.toggleUpdateUser = this.toggleUpdateUser.bind(this);\n }\n\n componentDidMount() {\n if (isAdmin(this.props.roles)) {\n this.setState({ adminChecked: true });\n }\n }\n\n toggleUpdateUser(open) {\n this.setState({\n updateUserModalOpen: open,\n });\n\n if (!open) {\n this.setState({\n id: undefined,\n });\n }\n }\n\n returnRoleAsObject(role) {\n return role.map((role) => {\n return {\n value: role,\n name: roleNameMapper(role),\n };\n });\n }\n\n render() {\n let { companyRoles } = this.props;\n companyRoles = companyRoles\n ? this.returnRoleAsObject(companyRoles)\n : companyRoles;\n return (\n
\n \n \n \n \n {\n this.awareTableRef = component;\n }}\n actions={\n
\n \n this.awareTableRef?.reloadData()\n }\n />\n
\n }\n url={URL.merchantUserUrl}\n onItemClick={(e) => {\n this.setState(\n {\n id: e.ID,\n },\n () => {\n this.setState({\n updateUserModalOpen: true,\n });\n }\n );\n }}\n />\n \n {this.state.id && (\n this.awareTableRef?.reloadData()}\n />\n )}\n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n roles: state.auth.roles,\n terminals: state.terminals.terminals,\n companyRoles: state.auth.companyRoles,\n fetch: state.fetch.fetch,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(MerchantUserListPage);\n","import * as yup from 'yup';\n\nexport const validationScheme = yup\n .object()\n .shape({\n email: yup\n .string()\n .trim()\n .lowercase()\n .email('Некорректный email')\n .required('Обязательное поле'),\n })\n .required();\n","import React, { FC, memo, useCallback, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useParams } from 'react-router-dom';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { useDispatch } from 'react-redux';\nimport { URL } from 'src/app/config';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { Input, Modal, ModalField } from 'src/shared';\nimport { log, post } from 'src/shared/lib';\nimport { validationScheme } from '../../lib/validationScheme';\n\ninterface Inputs {\n email: string;\n}\n\ninterface Props {\n isOpen: boolean;\n setOpen: (arg: boolean) => void;\n}\n\nexport const SendReceiptAboutOperation: FC = memo((props) => {\n const { isOpen, setOpen } = props;\n const [isClosed, setClosed] = useState(false);\n const { id } = useParams<{ id: string }>();\n const dispatch = useDispatch();\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n mode: 'onSubmit',\n defaultValues: { email: '' },\n resolver: yupResolver(validationScheme),\n });\n\n const onSubmit = useCallback(\n ({ email }: Inputs) => {\n post(URL.receiptUrl, {\n operationId: id,\n email,\n })\n .then((r) => {\n dispatch(\n createNotification(\n {\n title: 'Отправка квитанции',\n message: 'Отправка квитанции прошла успешно',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n });\n setClosed(true);\n },\n [dispatch, id]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n return (\n \n \n \n \n \n );\n});\n","import * as yup from 'yup';\n\nexport const validationScheme = yup.object({}).shape({\n amount: yup\n .number()\n .typeError('Значение должно быть числом')\n .positive('Значение должно быть больше 0')\n .lessThan(\n yup.ref('fullAmount'),\n `Значение должно быть меньше всей суммы операции`\n )\n .required('Обязательное поле'),\n});\n","import { SelectOption } from 'src/shared/ui';\n\nexport const submitMessage = {\n title: 'Возврат',\n message: 'Заявка на возврат принята',\n};\n\nexport const revertOptions: SelectOption[] = [\n { value: 'full', content: 'Полный возврат' },\n { value: 'partial', content: 'Частичный возврат' },\n];\n","import React, { FC, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { useDispatch } from 'react-redux';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { URL } from 'src/app/config';\nimport { log, post, useCloseCustomModal } from 'src/shared/lib';\nimport { Input, Modal, ModalField, NewSelect } from 'src/shared/ui';\nimport { validationScheme } from '../lib/validationScheme';\nimport { revertOptions, submitMessage } from '../model/consts';\nimport { SendRefundSchema } from '../model/sendRefundSchema';\n\ninterface Props {\n operationId: number;\n fullAmount: number;\n closeModal: () => void;\n successCallback: () => void;\n}\n\nexport const SendRefundRequest: FC = (props) => {\n const { operationId, fullAmount, closeModal, successCallback } = props;\n const dispatch = useDispatch();\n const [isOpen, setOpen] = useState(true);\n const [isClosed, setClosed] = useState(false);\n const [isPartial, setPartial] = useState(false);\n\n const {\n register,\n handleSubmit,\n setValue,\n getValues,\n formState: { errors },\n } = useForm({\n mode: 'onSubmit',\n defaultValues: {\n revert: 'full',\n amount: String(fullAmount),\n fullAmount: String(fullAmount + 0.01),\n },\n resolver: yupResolver(validationScheme),\n });\n\n const changeRevert = (value: string) => {\n const isPartial = value === 'partial';\n setValue('revert', value);\n setValue('amount', isPartial ? '' : String(fullAmount));\n setPartial(isPartial);\n };\n\n const onSubmit = ({ amount, revert }: SendRefundSchema) => {\n const body =\n revert === 'full'\n ? {}\n : {\n amount: parseFloat(amount).toFixed(2),\n };\n post(URL.operationRevertUrl + operationId, body)\n .then((r) => {\n successCallback();\n dispatch(createNotification(submitMessage, 'success'));\n })\n .catch((r) => log(r));\n\n setClosed(true);\n };\n\n const onClose = useCloseCustomModal(setOpen, closeModal);\n\n return (\n \n \n \n \n {isPartial && (\n \n \n \n )}\n \n );\n};\n","import React, { FC } from 'react';\nimport { Product } from 'src/entities/receipt';\nimport { ModalField } from 'src/shared';\nimport styles from './shows-info-about-receipt.module.scss';\n\ninterface Props {\n product: Product;\n className?: string;\n}\n\nexport const ReceiptItem: FC = ({ product, className }) => {\n return (\n
\n \n {product.name}\n \n \n {product.quantity} x {product.price}\n \n \n {product.amount}\n \n \n {product.tax}\n \n \n {product.amountTax}\n \n \n {product.paymentObject}\n \n \n {product.paymentMethod}\n \n
\n );\n};\n","import { isEmpty } from 'lodash';\nimport React, { FC, useLayoutEffect, useState } from 'react';\nimport { URL } from 'src/app/config';\nimport { ReceiptSchema } from 'src/entities/receipt';\nimport { isEmptyObj, get, log, useCloseCustomModal } from 'src/shared/lib';\nimport { Modal, ModalField } from 'src/shared/ui';\nimport { ReceiptItem } from './receipt-item';\nimport styles from './shows-info-about-receipt.module.scss';\n\ninterface Props {\n rrn: string;\n closeModal: () => void;\n}\n\nexport const ShowsInfoAboutReceipt: FC = (props) => {\n const { rrn, closeModal } = props;\n const [isOpen, setOpen] = useState(false);\n const [receipt, setReceipt] = useState();\n\n const onClose = useCloseCustomModal(setOpen, closeModal);\n\n const getCashboxReceiptInfo = (rrn: string) => {\n get(URL.recipe + rrn)\n .then((r) => {\n setReceipt(r.data.payload);\n setOpen(true);\n })\n .catch((r) => {\n log(r);\n });\n };\n\n useLayoutEffect(() => {\n getCashboxReceiptInfo(rrn);\n }, [rrn]);\n\n return (\n \n {isEmptyObj(receipt) ? (\n
Нет чеков
\n ) : (\n <>\n \n {receipt?.companyName}\n \n \n {receipt?.inn}\n \n \n {receipt?.address}\n \n\n \n {receipt?.fiscalReceiptNumber}\n \n \n {receipt?.created}\n \n \n {receipt?.shiftNumber}\n \n \n {receipt?.taxation}\n \n \n {receipt?.phone}\n \n \n {receipt?.email}\n \n \n {receipt?.emailCompany}\n \n \n {receipt?.deviceCode}\n \n\n {!isEmpty(receipt?.items) &&\n receipt?.items.map((product, i) => (\n \n ))}\n\n \n {receipt?.totalFiscal}\n \n \n {receipt?.cashless}\n \n\n \n {receipt?.fnNumber}\n \n \n {receipt?.ecrRegistrationNumber}\n \n \n {receipt?.fiscalDocumentNumber}\n \n \n {receipt?.fiscalDocumentAttribute}\n \n \n {receipt?.ffdVersion}\n \n\n \n {receipt?.fnsSite}\n \n \n )}\n \n );\n};\n","export const formatCurrency = (num: string) => {\n return num.replace(',', ' ');\n};\n","import moment from 'moment';\n\nexport const formatDate = (date: string, type: 'long' | 'short') => {\n const format = type === 'long' ? 'DD MMMM YYYY HH:mm' : 'DD-MM-YYYY HH:mm';\n return date ? moment(date).format(format) : date;\n};\n","import React, { FC } from 'react';\nimport styles from './details-item.module.scss';\n\ninterface DetailsItemProps {\n icon?: React.ReactNode;\n title: string;\n subtitle: string;\n}\n\nexport const DetailsItem: FC = ({\n icon,\n title,\n subtitle,\n}) => {\n return (\n <>\n {title && subtitle && (\n
\n {icon &&
{icon}
}\n
{title}
\n
{subtitle}
\n
\n )}\n \n );\n};\n","import React, { FC } from 'react';\nimport { CardIcon, mir, mc, visa } from 'src/shared/ui';\n\nimport { formatCurrency, formatDate } from '../../lib';\nimport { Operation } from '../../model';\nimport { DetailsItem } from '../details-item';\nimport styles from './operation-details.module.scss';\n\ninterface OperationDetailsProps {\n data: Operation;\n}\n\nexport const OperationDetails: FC = ({\n data,\n children,\n}) => {\n const {\n responseCodeDescription,\n cardSystemId,\n cardNumber,\n amount,\n operationTypeName,\n statusName,\n dateTime,\n rrn,\n authCode,\n cardTypeName,\n responseCodeStr,\n } = data;\n\n const formatCardNumber = (str: string) => {\n return str.replace('****', '**** ****');\n };\n\n const selectCardSystem = (id: number) => {\n return id\n ? [CardIcon, mc, mc, visa, visa, visa, mir, mir, CardIcon][id]\n : CardIcon;\n };\n\n return (\n
\n
\n
{operationTypeName}
\n \n {statusName}\n
\n
\n
{formatCurrency(amount)}
\n
\n \n \n \n \n \n \n
\n
{children}
\n \n );\n};\n","import React, { FC } from 'react';\nimport { SBPIcon } from 'src/shared/ui';\nimport { formatCurrency, formatDate } from '../../lib';\nimport { OperationSbp } from '../../model';\nimport { DetailsItem } from '../details-item';\nimport styles from './operation-details.module.scss';\n\ninterface OperationDetailsSbpProps {\n data: OperationSbp;\n}\n\nexport const OperationDetailsSbp: FC = ({\n data,\n children,\n}) => {\n const {\n amountNumerically,\n operationType,\n sndPam,\n sndPhone,\n qrcType,\n operationDate,\n } = data;\n\n return (\n
\n
\n {formatCurrency(amountNumerically)}\n
\n
\n \n \n \n \n \n \n
\n
{children}
\n
\n );\n};\n","import React, { FC } from 'react';\nimport {\n LightTable,\n LightTableRow,\n Title,\n LinkIcon,\n InfoIcon,\n} from 'src/shared/ui';\nimport { formatCurrency } from '../../lib';\nimport { Operation } from '../../model';\nimport styles from './operation-description.module.scss';\n\ninterface OperationDescriptionProps {\n data: Operation;\n isSBP: boolean;\n}\n\nexport const OperationDescription: FC = ({\n data,\n children,\n}) => {\n const {\n orderId,\n id,\n terminalId,\n mcc,\n mccDescription,\n fee,\n settlement,\n orderDescription,\n additionalData,\n tips,\n } = data;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n {orderDescription && (\n \n Описание заказа\n \n )}\n {additionalData && (\n \n Дополнительные данные\n \n )}\n {children && (\n <>\n \n Связанные операции\n \n {children}\n \n )}\n
\n
\n );\n};\n","import React, { FC } from 'react';\nimport {\n LightTable,\n LightTableRow,\n Title,\n LinkIcon,\n InfoIcon,\n} from 'src/shared/ui';\nimport { formatCurrency } from '../../lib';\nimport { OperationSbp } from '../../model';\n\nimport styles from './operation-description.module.scss';\n\ninterface OperationDescriptionSbpProps {\n data: OperationSbp;\n}\n\nexport const OperationDescriptionSbp: FC = ({\n data,\n children,\n}) => {\n const { merchantName, trxId, commission, description, settlement } = data;\n\n return (\n
\n \n \n \n \n \n \n
\n {description && (\n \n Дополнительные данные\n \n )}\n {children && (\n <>\n \n Связанные операции\n \n {children}\n \n )}\n
\n
\n );\n};\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n clearOperationDetails,\n getOperationDetail,\n} from 'src/redux/actions/operation';\nimport { Roles } from 'src/app/config';\nimport { SendReceiptAboutOperation } from 'src/features/send-receipt-about-operation';\nimport { SendRefundRequest } from 'src/features/send-refund-request';\nimport { ShowsInfoAboutReceipt } from 'src/features/shows-info-about-receipt';\nimport { OperationDescription, OperationDetails } from 'src/entities/operation';\nimport { Button, Spin, Title, ArticleLayout, PointIcon } from 'src/shared/ui';\nimport { isPermit, getAppTitle } from 'src/shared/lib';\nimport './operation-details.scss';\n\nclass OperationDetailPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n rrn: null,\n modal: false,\n receiptModal: false,\n isAlreadyRevert: false,\n };\n this.toggle = this.toggle.bind(this);\n this.receiptModalToggle = this.receiptModalToggle.bind(this);\n this.permission = isPermit.bind(this);\n this.isMerchantApp = getAppTitle() === 'merchant';\n this.successCallback = this.successCallback.bind(this);\n this.setRrn = this.setRrn.bind(this);\n this.closeReceiptModal = this.closeReceiptModal.bind(this);\n }\n setRrn(rrn) {\n this.setState({ rrn });\n }\n\n closeReceiptModal() {\n this.setState({ rrn: null });\n }\n\n toggle() {\n this.setState({ modal: !this.state.modal });\n }\n\n receiptModalToggle() {\n this.setState({ receiptModal: !this.state.receiptModal });\n }\n\n componentDidMount() {\n this.props.getOperation(this.props.match.params.id);\n }\n\n componentWillUnmount() {\n this.props.clearOperation();\n }\n\n formatDate(date, type) {\n const format =\n type === 'long' ? 'DD MMMM YYYY HH:mm' : 'DD-MM-YYYY HH:mm';\n return date ? moment(date).format(format) : date;\n }\n\n formatCurrency(num) {\n return num.replace(',', ' ');\n }\n\n successCallback() {\n this.props.getOperation(this.props.match.params.id);\n this.setState({ isAlreadyRevert: true });\n }\n\n linkedOperationRow(item) {\n let cls =\n this.props.detail.id === item.id\n ? 'order-history-list-row current'\n : 'order-history-list-row';\n return (\n {\n if (item.id !== this.props.detail.id) {\n this.props.history.push(`/operations/${item.id}`);\n this.props.getOperation(item.id);\n }\n }}\n >\n
{item.operationTypeName}
\n
\n
{this.formatCurrency(item.amount)}
\n
{this.formatDate(item.dateTime, 'short')}
\n
\n \n );\n }\n\n render() {\n let {\n id,\n responseCode,\n amount,\n operationTypeName,\n statusName,\n hasReceipt,\n rrn,\n terminalName,\n linkedOperations,\n reversalAmount,\n reversalDateTime,\n amountNumerically,\n } = this.props.detail;\n\n return amount ? (\n
\n
\n \n {terminalName}\n \n
\n \n {linkedOperations &&\n !isEmpty(linkedOperations) &&\n linkedOperations.map((item) =>\n this.linkedOperationRow(item)\n )}\n \n }\n smallColumn={\n \n {!this.state.isAlreadyRevert &&\n !reversalDateTime &&\n !responseCode &&\n (operationTypeName === 'Покупка' ||\n operationTypeName ===\n 'Предавторизация') && (\n <>\n {this.isMerchantApp &&\n this.permission(Roles.REFUND) && (\n \n )}\n {this.isMerchantApp &&\n statusName === 'Взаиморасчет' && (\n \n Отправить квитанцию\n \n )}\n {hasReceipt && (\n this.setRrn(rrn)}\n >\n Показать чек\n \n )}\n \n )}\n {reversalDateTime && (\n <>\n
Заявка на возврат
\n
\n {this.formatDate(\n reversalDateTime,\n 'long'\n )}\n
\n {reversalAmount && (\n
\n {this.formatCurrency(\n reversalAmount\n )}\n
\n )}\n \n )}\n
\n }\n />\n \n {this.state.modal && (\n \n )}\n {this.state.rrn && (\n \n )}\n
\n ) : (\n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n detail: state.operation.detail,\n auth: state.auth,\n fetch: state.fetch.fetch,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n getOperation: (id) => dispatch(getOperationDetail(id)),\n clearOperation: () => dispatch(clearOperationDetails()),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps, null, {\n forwardRef: true,\n})(OperationDetailPage);\n","import { get } from '../../shared/lib/request-wrapper';\nimport { URL } from 'src/app/config';\nimport {\n GET_OPERATION_DETAILS,\n GET_OPERATION_DETAILS_FAILED,\n GET_OPERATION_DETAILS_SUCCESS,\n CLEAR_OPERATION_DETAILS,\n} from '../constants';\n\nexport function getOperationDetail(id) {\n return (dispatch) => {\n dispatch({ type: GET_OPERATION_DETAILS });\n return get(URL.operationDetailUrl + id)\n .then((response) => {\n dispatch({\n type: GET_OPERATION_DETAILS_SUCCESS,\n payload: response.data.payload,\n });\n })\n .catch((response) =>\n dispatch({\n type: GET_OPERATION_DETAILS_FAILED,\n error: response.data,\n })\n );\n };\n}\n\nexport function clearOperationDetails() {\n return (dispatch) => dispatch({ type: CLEAR_OPERATION_DETAILS });\n}\n","import React, { Component, Fragment } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { isEmpty } from 'lodash';\n\nimport { URL, Roles } from 'src/app/config';\nimport { createNotification } from 'src/redux/actions/notification';\nimport {\n formatCurrency,\n OperationDescriptionSbp,\n OperationDetailsSbp,\n} from 'src/entities/operation';\nimport { get, post, isPermit, log } from 'src/shared/lib';\nimport {\n Button,\n Spin,\n ArticleLayout,\n Modal,\n ModalField,\n NewSelect,\n Textarea,\n Input,\n} from 'src/shared/ui';\nimport './operation-details.scss';\n\nconst revertOptions = [\n { value: 'full', content: 'Полный возврат' },\n { value: 'partial', content: 'Частичный возврат' },\n];\n\nclass OperationSBPDetailPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n details: {},\n description: '',\n modal: false,\n revertAmount: '',\n revert: 'full',\n isAlreadyRevert: false,\n errors: {},\n operationAmount: null,\n };\n this.toggle = this.toggle.bind(this);\n this.formatDate = this.formatDate.bind(this);\n this.revertOperation = this.revertOperation.bind(this);\n this.getOperation = this.getOperation.bind(this);\n this.permission = isPermit.bind(this);\n }\n\n toggle() {\n this.setState({ modal: !this.state.modal });\n }\n\n componentDidMount() {\n this.getOperation();\n }\n\n formatDate(date) {\n return date ? moment(date).format('DD MMMM YYYY HH:mm') : date;\n }\n\n revertOperation() {\n const { revert, description } = this.state;\n const { trxId, amount, receipt } = this.state.details;\n\n post(URL.operationSBPRevertUrl + this.props.match.params.id, {\n trxId,\n amount,\n description,\n ...(revert !== 'full' &&\n receipt && {\n receipt: {\n ...receipt,\n items: receipt.items.filter(\n ({ amount, quantity }) =>\n ![amount, quantity].includes(0)\n ),\n },\n }),\n })\n .then((r) => {\n this.props.notify('Возврат', 'Заявка на возврат принята');\n this.getOperation();\n this.setState({ isAlreadyRevert: true });\n })\n .catch((r) => log(r));\n this.setState({ modal: false });\n }\n\n getOperation() {\n get(URL.operationSBPDetailUrl + this.props.match.params.id)\n .then((r) => {\n this.setState({\n details: r.data.payload,\n operationAmount: r.data.payload.amount,\n });\n })\n .catch((r) => log(r));\n }\n\n handleAmountChange = ({ target }) => {\n this.setState({\n details: {\n ...this.state.details,\n [target.name]: target.value,\n },\n });\n\n if (parseFloat(target.value) > this.state.operationAmount) {\n this.setState({\n errors: {\n amount: 'Значение должно быть меньше всей суммы операции',\n },\n });\n } else {\n this.setState({ errors: {} });\n }\n };\n\n handleDescrChange = ({ target }) => {\n this.setState({\n [target.name]: target.value,\n });\n };\n\n handleReceiptChange =\n (id) =>\n ({ target }) => {\n let items = this.state.details.receipt.items;\n let price = this.state.details.receipt.items.find(\n (item) => item.id === id\n ).price;\n items[items.findIndex((item) => item.id === id)][target.name] =\n Number(target.value);\n\n if (target.name === 'amount') {\n items[items.findIndex((item) => item.id === id)]['quantity'] =\n Number(target.value) / price;\n } else {\n items[items.findIndex((item) => item.id === id)]['amount'] =\n Number(target.value) * price;\n }\n\n this.setState({\n details: {\n ...this.state.details,\n amount: this.state.details.receipt.items\n .map(({ amount }) => amount)\n .reduce((a, b) => a + b, 0),\n receipt: {\n ...this.state.details.receipt,\n items: [...items],\n },\n },\n });\n };\n\n render() {\n const {\n amount,\n amountNumerically,\n reversalDateTime,\n reversalAmount,\n hasRefundOption,\n receipt,\n } = this.state.details;\n\n return amountNumerically ? (\n
\n \n }\n smallColumn={\n \n {this.permission(Roles.REFUND) &&\n hasRefundOption && (\n \n )}\n\n {reversalDateTime && (\n <>\n
Заявка на возврат
\n
\n {this.formatDate(\n reversalDateTime,\n 'long'\n )}\n
\n {reversalAmount && (\n
\n {formatCurrency(reversalAmount)}\n
\n )}\n \n )}\n
\n }\n />\n\n \n \n this.setState({ revert: v })}\n />\n \n {this.state.revert === 'partial' && (\n <>\n {!isEmpty(receipt?.items) && (\n <>\n \n {receipt?.items?.map(\n (\n { id, name, quantity, amount },\n index\n ) => (\n \n \n {name}\n \n \n \n \n \n \n \n \n )\n )}\n \n )}\n {isEmpty(receipt?.items) ? (\n \n \n \n ) : (\n \n {amount} ₽\n \n )}\n \n )}\n\n \n \n \n \n
\n ) : (\n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n auth: state.auth,\n fetch: state.fetch.fetch,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n notify: (title, message) =>\n dispatch(\n createNotification(\n {\n title: title,\n message: message,\n },\n 'success'\n )\n ),\n };\n}\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps, null, {\n forwardRef: true,\n })(OperationSBPDetailPage)\n);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport moment from 'moment';\n\nimport { getRcMsg } from 'src/redux/actions/terminals';\nimport {\n operationStatuses,\n operationTypes,\n formatDateForInput,\n getClassName,\n operationStatusMapper,\n operationTypeMapper,\n localSave,\n getInitialFilter,\n getAppTitle,\n localLoadIntInArray,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport { DateRangePicker, SearchField, FiltersSelector } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\nimport CompanySelect from 'src/components/CompanySelect';\nimport { setFilters, setCommonTableFilters } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\nimport { MerchantTerminalsSelector } from 'src/features/select-terminals';\n\nclass OperationsFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'startDate'\n );\n this.endDate = getClassName(LOCAL_STORAGE_TABLE_NAMES.common, 'endDate');\n this.terminalIds = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'terminalIds'\n );\n this.searchQuery = getClassName(this.props.pageTitle, 'searchQuery');\n this.operationTypes = getClassName(\n this.props.pageTitle,\n 'operationTypes'\n );\n this.operationStatuses = getClassName(\n this.props.pageTitle,\n 'operationStatuses'\n );\n this.responseMessages = getClassName(\n this.props.pageTitle,\n 'responseMessages'\n );\n this.companyId = getClassName(\n this.props.pageTitle,\n CompanySelect.companyIds\n );\n\n let initialFilter = getInitialFilter(\n [\n 'operationTypes',\n 'operationStatuses',\n 'searchQuery',\n 'responseMessages',\n ],\n this.props.pageTitle\n );\n\n const commonSavedState = getInitialFilter(\n ['terminalIds'],\n LOCAL_STORAGE_TABLE_NAMES.common\n );\n\n // if we're redirected with terminal ID in state, use it as initial value\n this.locationTerminalId = props.location.state?.rowID;\n this.defaultFilter = {\n ...initialFilter,\n companyIds: localLoadIntInArray(this.companyId, []),\n terminalIds: this.locationTerminalId\n ? [Number(this.locationTerminalId)]\n : initialFilter.terminalIds,\n };\n this.state = {\n ...this.defaultFilter,\n };\n this.setStartDate(this.commonSavedState?.startDate);\n this.setEndDate(this.commonSavedState?.endDate);\n this.props.dispatch(setCommonTableFilters(commonSavedState));\n this.props.dispatch(setFilters(this.props.pageTitle, initialFilter));\n if (this.props.table?.filters?.searchQuery) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: this.props.table?.filters?.searchQuery,\n })\n );\n }\n }\n\n componentWillUnmount() {\n // clears location.state so that terminals can be changed after page update\n window.history.replaceState({}, document.title);\n }\n\n componentDidMount() {\n if (this.props.location.state?.rowID) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n operationTypes: [],\n operationStatuses: [],\n responseMessages: [],\n terminalIds: [Number(this.props.location.state.rowID)],\n })\n );\n this.props.dispatch(\n setCommonTableFilters({\n terminalIds: [Number(this.props.location.state.rowID)],\n })\n );\n const { state } = this.props.location;\n this.setStartDate(moment(state.date, 'DD.MM.YYYY'));\n this.setEndDate(moment(state.date, 'DD.MM.YYYY'));\n }\n\n !this.props.rcMsg.length && this.props.dispatch(getRcMsg());\n }\n\n operationStatusesAsObject(statuses) {\n return statuses.map((status) => {\n return {\n value: status,\n text: operationStatusMapper(status),\n id: status,\n };\n });\n }\n\n operationTypesAsObject(types) {\n return types.map((type) => {\n return {\n value: type,\n text: operationTypeMapper(type),\n id: type,\n };\n });\n }\n\n operationRcMsgAsObject(rcMessages) {\n return rcMessages.map((rcMessage) => {\n return {\n value: rcMessage,\n text: rcMessage,\n id: rcMessage,\n };\n });\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(\n this.terminalIds,\n this.props.commonFilters?.terminalIds ?? []\n );\n localSave(\n this.operationStatuses,\n this.props.table?.filters?.operationStatuses\n );\n localSave(\n this.operationTypes,\n this.props.table?.filters?.operationTypes\n );\n localSave(\n this.responseMessages,\n this.props.table?.filters?.responseMessages\n );\n }\n\n componentDidUpdate() {\n !this.locationTerminalId && this.saveFilter();\n }\n\n getStartDate() {\n return this.props.commonFilters?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setCommonTableFilters({ startDate: date }));\n }\n\n getEndDate() {\n return this.props.commonFilters?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setCommonTableFilters({ endDate: date }));\n }\n\n render() {\n let [OperationTypes, OperationStatuses, OperationRcMessages] = [\n this.operationTypesAsObject(operationTypes),\n this.operationStatusesAsObject(operationStatuses),\n this.operationRcMsgAsObject(this.props.rcMsg),\n ];\n\n return (\n
\n \n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n operationTypes: value,\n })\n ),\n\n selected:\n this.props.table?.filters?.operationTypes ??\n [],\n },\n {\n title: 'Статус',\n options: OperationStatuses,\n onChange: (value) =>\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n operationStatuses: value,\n })\n ),\n selected:\n this.props.table?.filters\n ?.operationStatuses ?? [],\n },\n {\n title: 'Код отказа',\n options: OperationRcMessages,\n onChange: (value) =>\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n responseMessages: value,\n })\n ),\n selected:\n this.props.table?.filters\n ?.responseMessages ?? [],\n },\n ]}\n reset={() => {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n operationTypes: [],\n operationStatuses: [],\n responseMessages: [],\n })\n );\n }}\n />\n \n this.props.dispatch(\n setCommonTableFilters({\n terminalIds,\n })\n )\n }\n terminalsList={this.props.terminals}\n />\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n criticalScreenWidth={\n getAppTitle() === 'merchant' ? 1225 : undefined\n }\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).add(-7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n />\n\n
\n {getAppTitle() === 'bank' && (\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds: value ? [value] : [],\n })\n )\n }\n />\n )}\n {this.props.actions}\n
\n\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n )\n }\n />\n
\n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n table: state.table?.[props.pageTitle],\n commonFilters: state.table?.commonFilters,\n terminals: state.terminals.terminals,\n rcMsg: state.terminals.rcMsg,\n };\n}\n\nexport default withRouter(\n connect(mapStateToProps, null, null, {\n forwardRef: true,\n })(OperationsFilter)\n);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport OperationsFilter from './OperationsFilter';\n\nimport { navRoutes, URL } from 'src/app/config';\nimport {\n getAppTitle,\n getInitialFilter,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport AwareTable from 'src/components/AwareTable';\n\nimport './operations-page.scss';\nimport { Paginator, OverflowContainer } from 'src/shared/ui';\nimport { DownloadReportStore } from 'src/features/download-report';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.operations;\n\nclass OperationsPage extends Component {\n constructor(props) {\n super(props);\n this.isMerchantApp = getAppTitle() === 'merchant';\n }\n\n render() {\n const actions = [];\n\n if (this.isMerchantApp)\n actions.push(\n \n getInitialFilter(\n [\n 'terminalIds',\n 'operationTypes',\n 'operationStatuses',\n 'searchQuery',\n 'responseMessages',\n ],\n pageTitle\n )\n }\n />\n );\n\n return (\n
\n \n \n \n \n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n cancelationToken: state.requestCancelation.token,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(OperationsPage);\n","import {\n Organisation,\n identificationSBP,\n} from './sbp-identificator-selector/type';\n\nexport interface FilterIdentificatorsArguments {\n query: string;\n identificatorsList: Organisation[];\n selected: string[];\n selectedOnly: boolean;\n}\n\nexport const filterSBPIdentificators = ({\n query,\n identificatorsList,\n selected,\n selectedOnly,\n}: FilterIdentificatorsArguments) => {\n const filtrateSelectedOnly = (identificator: identificationSBP) =>\n !selectedOnly || selected.includes(identificator.merchantId);\n const isIdentificatorInQuery = (identificator: identificationSBP) =>\n [identificator.merchantId, identificator.merchantName].some(\n (identificatorProperty) =>\n identificatorProperty\n ?.toUpperCase()\n ?.includes(query.toUpperCase())\n );\n\n return identificatorsList.reduce((prev, organisation) => {\n const organisationCopy = { ...organisation };\n organisationCopy.identificationsSbp =\n organisation.identificationsSbp.filter(\n (identification) =>\n filtrateSelectedOnly(identification) &&\n isIdentificatorInQuery(identification)\n );\n\n if (organisationCopy.identificationsSbp.length > 0) {\n return [...prev, organisationCopy];\n } else {\n return [...prev];\n }\n }, []);\n};\n","import React from 'react';\nimport { SelectorWithGroups } from 'src/entities/selector-with-groups';\nimport { Organisation, identificationSBP } from './type';\nimport { filterSBPIdentificators } from '../lib';\n\ninterface Props {\n selected: string[];\n identificatorsList: Organisation[];\n onChange: (selected: string[]) => void;\n handleIdentificationClick: (sbpIdentificatorId: string) => void;\n query: string;\n selectedOnly: boolean;\n}\n\nexport const SbpIdentificatorSelector = ({\n selected,\n identificatorsList,\n onChange,\n handleIdentificationClick,\n query,\n selectedOnly,\n}: Props) => {\n const handleOrganisationTitleClick = (organisation: Organisation) => {\n const allIdentifications = organisation.identificationsSbp.flatMap(\n (identification) => identification.merchantId\n );\n\n allIdentifications.every((id) => selected.includes(id))\n ? onChange(\n selected.filter(\n (selected) => !allIdentifications.includes(selected)\n )\n )\n : onChange([\n ...selected,\n ...allIdentifications.filter((id) => !selected.includes(id)),\n ]);\n };\n\n const handleGroupClick = (organisation: Organisation) =>\n handleOrganisationTitleClick(organisation);\n\n const get = (organisation: Organisation) => {\n return organisation.identificationsSbp.flatMap(\n (identificationSbp) => identificationSbp\n );\n };\n\n const nameGetter = (row: identificationSBP) => {\n return `${row.merchantId} ${row.merchantName}`;\n };\n\n const isSelected = (data: Organisation) =>\n data.identificationsSbp.some((identification) =>\n selected.includes(identification.merchantId)\n );\n\n const isFullySelected = (data: Organisation) =>\n data.identificationsSbp.every((identification) =>\n selected.includes(identification.merchantId)\n );\n\n const filterData = (data: Organisation[]) => {\n return filterSBPIdentificators({\n query,\n identificatorsList: data,\n selected,\n selectedOnly,\n });\n };\n\n return (\n \n getRowId={(row: identificationSBP) => row.merchantId}\n data={identificatorsList}\n rowsGetter={get}\n rowNameGetter={nameGetter}\n selected={selected}\n handleRowClick={(identificationId: string) =>\n handleIdentificationClick(identificationId)\n }\n isCurrentlySelected={(identificationId: string) =>\n selected.includes(identificationId)\n }\n query={query}\n selectedOnly={selectedOnly}\n isSelected={(id: string) => selected.includes(id)}\n groupNameGetter={function (data: Organisation): string {\n return data.name;\n }}\n handleGroupClick={handleGroupClick}\n isGroupSelected={isSelected}\n isGroupFullySelected={isFullySelected}\n filterData={filterData}\n groupsGetter={function (data: Organisation): identificationSBP[] {\n return data.identificationsSbp;\n }}\n inventoryDisplayFilters={[]}\n emptyPlaceholderText='Идентификаторы подходящие под заданные фильтры не найдены.'\n />\n );\n};\n","import React, { useState } from 'react';\n\nimport { SbpIdentificatorSelector } from './sbp-identificator-selector';\nimport { Organisation } from './sbp-identificator-selector/type';\nimport { FilterDropdown } from 'src/shared/ui/filter-dropdown';\nimport { SearchField } from 'src/shared';\nimport { ShowGroupMode, Switcher } from 'src/entities/selector-with-groups';\n\ninterface Props {\n identificationsList: Organisation[];\n selected: string[];\n onChange: (selected: string[]) => void;\n disabled?: boolean;\n}\n\nexport const SelectSBPIdentificators = ({\n onChange,\n selected,\n identificationsList,\n disabled,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [pickedIdentificators, setPickedIdentificators] =\n useState(selected);\n const [showGroup, setShowGroup] = useState('all');\n\n const allIdentificationsIds = identificationsList.flatMap((organisation) =>\n organisation.identificationsSbp.map(\n (identification) => identification.merchantId\n )\n );\n\n const handleOnChange = (selected: string[]) =>\n setPickedIdentificators(selected);\n\n const handleRowClick = (sbpIdentificatorId: string) => {\n pickedIdentificators.includes(sbpIdentificatorId)\n ? setPickedIdentificators([\n ...pickedIdentificators.filter(\n (id) => sbpIdentificatorId !== id\n ),\n ])\n : setPickedIdentificators([\n ...pickedIdentificators,\n sbpIdentificatorId,\n ]);\n };\n\n const selectAllidentificators = () => {\n setPickedIdentificators(allIdentificationsIds);\n };\n\n const resetSelectedIdentificators = () => {\n setPickedIdentificators([]);\n };\n\n const hardResetSelectedIdentificators = () => {\n onChange([]);\n };\n\n React.useEffect(() => {\n if (!isOpen) {\n setPickedIdentificators(selected);\n }\n }, [isOpen, selected]);\n\n return (\n {\n onChange(pickedIdentificators);\n setIsOpen(false);\n }}\n disabled={disabled}\n firstRowControls={[\n ,\n ]}\n secondRowControls={[\n ,\n ]}\n actions={[\n \n Выбрать все\n ,\n ,\n ]}\n >\n \n \n );\n};\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { post } from 'src/shared/lib';\nimport CompanySelect from 'src/components/CompanySelect';\nimport { FiltersContainer } from 'src/widgets';\nimport {\n getClassName,\n OperationSBPTypeOptions,\n QRCodeTypeOptions,\n localSave,\n getInitialFilter,\n formatDateForInput,\n localLoadIntInArray,\n getAppTitle,\n} from 'src/shared/lib';\nimport { SearchField, DateRangePicker, FiltersSelector } from 'src/shared/ui';\nimport { SelectSBPIdentificators } from 'src/features/select-sbp-identificators';\nimport { URL } from 'src/app/config';\nimport { setEndDate, setStartDate, setFilters } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\nimport _ from 'lodash';\nimport { setIdnSbp } from 'src/redux/actions/terminals';\n\nclass OperationsFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(this.props.pageTitle, 'startDate');\n this.endDate = getClassName(this.props.pageTitle, 'endDate');\n this.searchQuery = getClassName(this.props.pageTitle, 'searchQuery');\n this.companyId = getClassName(\n this.props.pageTitle,\n CompanySelect.companyIds\n );\n this.merchantIds = getClassName(this.props.pageTitle, 'merchantIds');\n this.operationTypes = getClassName(\n this.props.pageTitle,\n 'operationTypes'\n );\n this.qrcTypes = getClassName(this.props.pageTitle, 'qrcTypes');\n this.isBank = getAppTitle() === 'bank';\n\n const { merchantIds, ...initialFilter } = getInitialFilter(\n ['searchQuery', 'merchantIds', 'companyIds'],\n this.props.pageTitle\n );\n\n this.defaultFilter = {\n ...initialFilter,\n qrcTypes: undefined,\n operationTypes: undefined,\n companyIds: localLoadIntInArray(this.companyId, []),\n };\n\n this.state = {\n ...this.defaultFilter,\n };\n\n this.setStartDate(initialFilter.startDate);\n this.setEndDate(initialFilter.endDate);\n\n // For bank app clear merchantIds if no company is selected\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n ...initialFilter,\n companyIds: localLoadIntInArray(this.companyId, []),\n merchantIds:\n this.isBank && !this.defaultFilter.companyIds\n ? []\n : merchantIds,\n })\n );\n\n if (this.props.table?.filters?.searchQuery) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: this.props.table?.filters?.searchQuery,\n })\n );\n }\n }\n\n getSBPIdentificators = () => {\n if (this.props.table?.filters?.companyIds) {\n post(URL.operationsSBPIdentificatorsUrl, {\n ...(this.isBank && {\n companyIds: this.props.table?.filters?.companyIds ?? [],\n }),\n }).then((result) => {\n this.props.dispatch(setIdnSbp(result.data.payload));\n });\n }\n };\n\n componentDidMount() {\n if (this.props.location?.state?.rowID) {\n const { state } = this.props.location;\n this.setStartDate(moment(state.date, 'DD.MM.YYYY'));\n this.setEndDate(moment(state.date, 'DD.MM.YYYY'));\n }\n\n if (this.state.companyIds.length === 0 && getAppTitle() === 'bank') {\n this.props.dispatch(\n setFilters(this.props.pageTitle, { merchantIds: [] })\n );\n this.saveFilter();\n }\n\n this.props?.location?.state?.redirectedThroughNavbar &&\n this.getSBPIdentificators();\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n handleTypeChange = ({ target }) => {\n this.setState({\n [target.name]: target.value ? target.value : undefined,\n });\n };\n\n componentDidUpdate(previousProps) {\n const companyIdsAreEqual = _.isEqual(\n previousProps.table?.filters?.companyIds,\n this.props.table.filters?.companyIds\n );\n\n if (!companyIdsAreEqual) {\n this.getSBPIdentificators();\n }\n\n if (\n (!this.props.table?.filters?.companyIds || !companyIdsAreEqual) &&\n this.props.table?.filters?.merchantIds.length &&\n previousProps.table?.filters?.companyIds\n ) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, { merchantIds: [] })\n );\n }\n\n this.saveFilter();\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.merchantIds, this.props.table?.filters?.merchantIds);\n localSave(this.qrcTypes, this.props.table?.filters?.qrcTypes);\n localSave(\n this.operationTypes,\n this.props.table?.filters?.operationTypes\n );\n }\n\n getStartDate() {\n return this.props.table?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setStartDate(this.props.pageTitle, date));\n }\n\n getEndDate() {\n return this.props.table?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setEndDate(this.props.pageTitle, date));\n }\n\n render() {\n return (\n
\n \n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n operationType: value,\n })\n ),\n\n selected:\n this.props.table?.filters?.operationType,\n isSingleSelect: true,\n },\n {\n title: 'Тип QR',\n options: QRCodeTypeOptions,\n onChange: (value) =>\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n qrcTypes: value,\n })\n ),\n selected: this.props.table?.filters?.qrcTypes,\n isSingleSelect: true,\n },\n ]}\n reset={() => {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n qrcTypes: undefined,\n operationType: undefined,\n })\n );\n }}\n />\n\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).add(-7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n />\n\n {getAppTitle() === 'bank' && (\n
\n {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds: value ? [value] : [],\n })\n );\n }}\n />\n
\n )}\n\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n merchantIds: selected,\n })\n )\n }\n disabled={\n this.isBank &&\n this.props.table?.filters?.companyIds.length === 0\n }\n />\n\n \n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n )\n }\n />\n
\n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n table: state.table?.[props.pageTitle],\n idnSbp: state.terminals.idnSbp,\n };\n}\n\nexport default withRouter(\n connect(mapStateToProps, null, null)(OperationsFilter)\n);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport { navRoutes, URL } from 'src/app/config';\nimport { getInitialFilter, LOCAL_STORAGE_TABLE_NAMES } from 'src/shared/lib';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport OperationsFilter from './OperationsFilter';\nimport { OverflowContainer, Paginator } from 'src/shared';\nimport { DownloadReportStore } from 'src/features/download-report';\n\nimport './operations-page.scss';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.operationsSBP;\n\nclass OperationsSBPPage extends Component {\n render() {\n return (\n
\n \n\n \n \n \n getInitialFilter(\n ['searchQuery', 'merchantIds'],\n pageTitle\n )\n }\n />,\n ]}\n />\n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n cancelationToken: state.requestCancelation.token,\n table: state.table,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(OperationsSBPPage);\n","export const submitMessage = {\n title: 'Редактирование подписки',\n message: 'Подписка успешно отредактирована',\n};\n","import React, { FC, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport ReactTooltip from 'react-tooltip';\nimport { URL } from 'src/app/config';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { log, post, useCloseCustomModal } from 'src/shared/lib';\nimport { Button, Modal, ModalField, NewSelect } from 'src/shared/ui';\nimport { SelectOption } from 'src/shared/ui';\nimport { submitMessage } from '../model/consts';\nimport styles from './edit-registry-mailing-schedule.module.scss';\n\ninterface Props {\n id: string;\n initInterval: number;\n resetId: () => void;\n successCallback: () => void;\n}\n\nconst ACTIVE: string = 'Активно';\nconst INACTIVE: string = 'Выключено';\n\nconst statusOptions: SelectOption[] = [\n { value: ACTIVE, content: ACTIVE },\n { value: INACTIVE, content: INACTIVE },\n];\n\nexport const EditRegistryMailingSchedule: FC = (props) => {\n const { id, initInterval, resetId, successCallback } = props;\n const dispatch = useDispatch();\n const [isOpen, setOpen] = useState(true);\n const [status, setStatus] = useState(!initInterval ? INACTIVE : ACTIVE);\n const [interval, setInterval] = useState(initInterval);\n\n const onClose = useCloseCustomModal(setOpen, resetId);\n\n const changeStatus = (value: string) => {\n if (value === INACTIVE) setInterval(0);\n if (value === ACTIVE) setInterval(1);\n setStatus(value);\n };\n\n const increaseInterval = () => {\n interval > 6 ? setInterval(1) : setInterval((prev) => prev + 1);\n };\n const decreaseInterval = () => {\n interval < 2 ? setInterval(7) : setInterval((prev) => prev - 1);\n };\n\n const onSubmit = () => {\n post(URL.setSchedule, {\n companyId: id,\n interval,\n })\n .then((r) => {\n successCallback();\n dispatch(createNotification(submitMessage, 'success'));\n })\n .catch((r) => {\n log(r);\n });\n setOpen(false);\n };\n\n return (\n \n \n \n \n \n
\n
\n \n -\n \n
{interval}
\n \n +\n \n
\n \n \n \n \n Интервал отправки реестра - от 1 до 7 дней\n \n
\n
\n \n );\n};\n","import React, { Component } from 'react';\nimport { ReplaySubject } from 'rxjs';\n\nimport Container from 'src/components/Container';\nimport AwareTable from 'src/components/AwareTable';\n\nimport { URL } from 'src/app/config';\nimport { EditRegistryMailingSchedule } from 'src/features/edit-registry-mailing-schedule';\nimport { localLoad, sendToSubject } from 'src/shared/lib';\n\nclass SchedulePage extends Component {\n scheduleSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n\n this.state = {\n id: '',\n interval: 1,\n };\n }\n\n resetId = () => {\n this.setState({\n id: '',\n });\n };\n\n callbackOfEditSchedule = () => {\n this.scheduleSubject.next({ forceRequest: true });\n this.resetId();\n };\n\n getInterval(id, interval) {\n const turnedOff = (interval) => interval === 'Выключено';\n\n this.setState({\n id,\n interval: turnedOff(interval) ? 0 : Number(interval),\n });\n }\n\n getData = () => {\n this.send({\n offset: localLoad('schedule-offset', 0),\n size: localLoad('schedule-range', 10),\n });\n };\n\n onItemClick = ({ ID, data }) => {\n this.getInterval(ID, data[1]);\n };\n\n componentDidMount() {\n this.getData();\n }\n\n render() {\n return (\n <>\n \n \n \n\n {this.state.id && (\n \n )}\n \n );\n }\n}\n\nexport default SchedulePage;\n","import { InfoTerminal } from 'src/entities/terminal';\n\nexport const INIT_TERMINAL = {\n activity: '',\n activityInfo: '',\n extraCommission: '',\n id: 0,\n limitEndOfWeek: '',\n name: '',\n operationLimit: '',\n rates: [],\n simCommission: '',\n uid: '',\n weekLimit: '',\n} as InfoTerminal;\n\nexport const WITHOUT_GROUP = 'without_group';\n","import { Group } from 'src/entities/terminal';\nimport { SelectOption } from 'src/shared';\nimport { WITHOUT_GROUP } from '../model/consts/consts';\n\nexport const getOptionsGroups = (array: Group[]) => {\n const options: SelectOption[] = [];\n\n array.forEach((item: Group) => {\n const option = {} as SelectOption;\n option.value = String(item.id ? item.id : WITHOUT_GROUP);\n option.content = String(item.name);\n options.push(option);\n });\n return options;\n};\n","import { ApplicationType } from '../model/types/types';\n\ninterface Message {\n title: string;\n text: string;\n}\n\nconst rules = {\n faultyAndLost: {\n title: 'Заявка отправлена',\n text: 'В ближайшее время с вами свяжется сотрудник технической поддержки. Внимание: время работы технической поддержки банка с 9 до 21 без выходных.',\n },\n noOperation: {\n title: 'Информация принята',\n text: 'Спасибо. Рекомендуем провести тестовую операцию по терминалу.',\n },\n};\n\nexport function requestSuccessTextMapper(\n applicationType: ApplicationType\n): Message {\n return {\n FAULTY_TERMINAL: rules['faultyAndLost'],\n LOST_TERMINAL: rules['faultyAndLost'],\n NO_OPERATIONS_ON_TERMINAL: rules['noOperation'],\n }[applicationType];\n}\n","import { isEmpty } from 'lodash';\nimport React, {\n FC,\n memo,\n useCallback,\n useEffect,\n useReducer,\n useState,\n} from 'react';\nimport { URL } from 'src/app/config';\nimport { Group, InfoTerminal } from 'src/entities/terminal';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { SelectedIcon, ResetFiltersIcon, Input, Button } from 'src/shared';\nimport { CommissionInfo, Modal, ModalField, NewSelect } from 'src/shared';\nimport {\n get,\n getOptionsForSelect,\n log,\n post,\n maskPhone,\n validatePhone,\n} from 'src/shared/lib';\nimport store from 'src/store';\nimport { getOptionsGroups } from '../../lib/getOptionsGroups';\nimport { requestSuccessTextMapper } from '../../lib/requestSuccessTextMapper';\nimport { INIT_TERMINAL, WITHOUT_GROUP } from '../../model/consts/consts';\nimport { ApplicationType } from '../../model/types/types';\nimport styles from './fetch-info-about-terminal.module.scss';\n\n/**\n * Открытие окна привязано к изменению пропса id\n * setId обнуляет пропс в родительском компоненте\n * changingGroup привязана к родительской функции setGroupRequest\n */\n\ninterface FetchInfoAboutTerminalProps {\n id?: string;\n groupName: string;\n isChangedGroup?: boolean;\n setId: (value: null) => void;\n changingGroup?: (arg1: number, arg2?: number) => void;\n}\n\nexport const FetchInfoAboutTerminal: FC = memo(\n (props) => {\n const { id, groupName, isChangedGroup, setId, changingGroup } = props;\n const [isOpen, setIsOpen] = useState(false);\n const [terminal, setTerminal] = useReducer(\n (terminal: InfoTerminal, newTerminal: InfoTerminal) => ({\n ...terminal,\n ...newTerminal,\n }),\n INIT_TERMINAL\n );\n\n const [groups, setGroups] = useState([]);\n const [currentGroup, setCurrentGroup] = useState('');\n\n // свойства для закрытия терминала\n const [phoneNumber, setPhoneNumber] = useState('');\n const [applicationType, setApplicationType] =\n useState();\n const [validateCloseTerminal, setValidateCloseTerminal] =\n useState(false);\n\n const changePhoneNumber = useCallback((e) => {\n setPhoneNumber(maskPhone(e.target.value));\n }, []);\n\n const changeApplicationType = useCallback((value) => {\n setApplicationType(value);\n }, []);\n\n const resetTerminal = useCallback(() => {\n setTerminal(INIT_TERMINAL);\n setPhoneNumber('');\n setApplicationType(undefined);\n setId(null);\n }, [setId]);\n\n const onClose = useCallback(() => {\n setIsOpen(false);\n resetTerminal();\n }, [resetTerminal]);\n\n const onAction = useCallback(() => {\n if (terminal.id) {\n const groupId =\n currentGroup !== WITHOUT_GROUP\n ? Number(currentGroup)\n : undefined;\n\n changingGroup?.(terminal.id, groupId);\n }\n resetTerminal();\n }, [terminal.id, currentGroup, changingGroup, resetTerminal]);\n\n const sendRequestToCloseTerminal = useCallback(() => {\n if (terminal.id && applicationType && phoneNumber) {\n const { title, text } =\n requestSuccessTextMapper(applicationType);\n post(URL.terminalInactiveRequest, {\n terminalId: terminal.id,\n applicationType,\n phoneNumber,\n })\n .then(() => {\n store.dispatch(\n createNotification(\n {\n title: title,\n message: text,\n },\n 'success'\n )\n );\n })\n .catch((r) => log(r));\n setIsOpen(false);\n resetTerminal();\n }\n }, [applicationType, phoneNumber, terminal.id, resetTerminal]);\n\n // валидация полей заявки на закрытия терминала\n useEffect(() => {\n setValidateCloseTerminal(\n !!applicationType && validatePhone(phoneNumber)\n );\n }, [applicationType, phoneNumber]);\n\n useEffect(() => {\n if (!isEmpty(groups)) {\n const groupId = groups.find(\n (group) => group.name === groupName\n )?.id;\n\n setCurrentGroup(groupId ? String(groupId) : WITHOUT_GROUP);\n }\n }, [groupName, groups]);\n\n // запрос на сервер\n useEffect(() => {\n if (id) {\n get(URL.terminalInfo + id)\n .then((r) => {\n setTerminal(r.data.payload);\n setIsOpen(true);\n })\n .catch((r) => log(r));\n\n get(URL.terminalPageAvailableGroups + id)\n .then((r) => {\n setGroups(r.data.payload);\n })\n .catch((r) => log(r));\n }\n }, [id]);\n\n if (!id) {\n return null;\n }\n\n return (\n \n
\n \n {terminal.activity === 'DISABLED'\n ? ResetFiltersIcon\n : SelectedIcon}\n \n

{terminal.activityInfo.replace('.', '')}

\n
\n {terminal.applicationTypes &&\n terminal.activity === 'INACTIVE' && (\n <>\n

\n Заявка на закрытие терминала\n

\n \n \n \n \n \n \n \n \n Отправить заявку\n \n \n \n )}\n

Установленные лимиты

\n \n {terminal.operationLimit.replace('₽', 'руб')}\n \n \n {terminal.weekLimit.replace('₽', 'руб')}\n \n \n {terminal.limitEndOfWeek.replace('₽', 'руб')}\n \n\n {!isEmpty(terminal.rates) && (\n <>\n

Тарифы

\n {terminal.rates.map(({ cardName, rate }, i) => (\n \n {rate}%\n \n ))}\n \n )}\n\n \n {terminal.extraCommission}\n \n \n \n {terminal.simCommission}\n \n\n {isChangedGroup && (\n \n {\n setCurrentGroup(value);\n }}\n />\n \n )}\n \n );\n }\n);\n","/**\n * Проверяет на соответсвие с +7xxxxxxxxxx\n * @param value номер телефона\n * @returns boolean флаг\n */\n\nexport const validatePhone = (value: string) => /^(\\+7)[\\d]{10}$/.test(value);\n","import * as yup from 'yup';\n\nexport const validationScheme = yup\n .object()\n .shape({\n companyId: yup.string().required('Обязательное поле'),\n\n name: yup\n .string()\n .trim()\n .max(16, 'Максимум 16 символов')\n .required('Обязательное поле'),\n })\n .required();\n","export const submitMessage = {\n title: 'Добавление группы',\n message: 'Группа успешно добавлена',\n};\n","import React, { FC, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { URL } from 'src/app/config';\nimport { useCloseCustomModal } from 'src/shared/lib';\nimport { getOptionsForSelect, log, post } from 'src/shared/lib';\nimport { Input, Modal, ModalField, NewSelect } from 'src/shared';\nimport { validationScheme } from '../lib/validationScheme';\nimport { submitMessage } from '../model/consts';\nimport { AddGroupSchema } from '../model/addGroupSchema';\n\ninterface Props {\n closeModal: () => void;\n successCallback: () => void;\n}\n\nexport const AddTerminalGroup: FC = (props) => {\n const { closeModal, successCallback } = props;\n const [isOpen, setOpen] = useState(true);\n const [isClosed, setClosed] = useState(false);\n const dispatch = useDispatch();\n const companies = useSelector((state) => state.auth.assignedCompanies);\n const companiesOptions = getOptionsForSelect(companies, 'id', 'name');\n\n const onClose = useCloseCustomModal(setOpen, closeModal);\n\n const {\n register,\n handleSubmit,\n setValue,\n getValues,\n formState: { errors },\n } = useForm({\n mode: 'onSubmit',\n defaultValues: { companyId: '', name: '' },\n resolver: yupResolver(validationScheme),\n });\n\n const changeCompany = (value: string) => {\n setValue('companyId', value);\n };\n\n const onSubmit = ({ companyId, name }: AddGroupSchema) => {\n post(URL.terminalPageAddGroupUrl, {\n name,\n companyId: Number(companyId),\n })\n .then(() => {\n successCallback();\n dispatch(createNotification(submitMessage, 'success'));\n })\n .catch((r) => log(r));\n\n setClosed(true);\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import * as yup from 'yup';\n\nexport const validationScheme = yup\n .object()\n .shape({\n name: yup\n .string()\n .trim()\n .max(16, 'Максимум 16 символов')\n .required('Обязательное поле'),\n })\n .required();\n","export const submitMessage = {\n title: 'Редактирование группы',\n message: 'Группа успешно отредактирована',\n};\n\nexport const removeMessage = {\n title: 'Редактирование группы',\n message: 'Группа успешно удалена',\n};\n","import React, { FC, memo, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { useDispatch } from 'react-redux';\nimport { URL } from 'src/app/config';\nimport { createNotification } from 'src/redux/actions/notification';\nimport { log, post, useCloseCustomModal } from 'src/shared/lib';\nimport { Button, Input, Modal, ModalField } from 'src/shared/ui';\nimport { validationScheme } from '../../lib/validationScheme';\nimport { removeMessage, submitMessage } from '../../model/consts/consts';\n\ninterface Inputs {\n name: string;\n}\n\ninterface Props {\n id?: string;\n groupName: string;\n resetId: () => void;\n successCallback: () => void;\n}\n\nexport const EditGroupOfTerminals: FC = memo((props) => {\n const { id, groupName, resetId, successCallback } = props;\n const [isOpen, setOpen] = useState(true);\n const [isClosed, setClosed] = useState(false);\n const dispatch = useDispatch();\n\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm({\n mode: 'onSubmit',\n defaultValues: { name: groupName },\n resolver: yupResolver(validationScheme),\n });\n\n const onClose = useCloseCustomModal(setOpen, resetId);\n\n const onSubmit = ({ name }: Inputs) => {\n post(URL.terminalPageUpdateGroupUrl, {\n id,\n name,\n })\n .then(() => {\n successCallback?.();\n dispatch(createNotification(submitMessage, 'success'));\n })\n .catch((r) => log(r));\n setClosed(true);\n };\n\n const onRemove = () => {\n post(URL.terminalPageRemoveGroupUrl, {\n id,\n })\n .then(() => {\n resetId();\n successCallback?.();\n dispatch(createNotification(removeMessage, 'success'));\n })\n .catch((r) => log(r));\n setClosed(true);\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n});\n","import React, { Component } from 'react';\n\nimport { localLoad, localSave } from 'src/shared/lib/localStorage';\nimport { getClassName } from 'src/shared/lib/util';\nimport { FiltersContainer } from 'src/widgets';\nimport { SearchField } from 'src/shared/ui';\nimport { connect } from 'react-redux';\nimport { setFilters } from 'src/redux/actions/table';\nimport styles from './styles.module.scss'\n\nclass TerminalsFilter extends Component {\n constructor(props) {\n super(props);\n this.clsName = 'TerminalsFilter';\n this.queryName = getClassName(this.clsName, 'searchQuery');\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: localLoad(this.queryName, ''),\n })\n );\n }\n\n render() {\n return (\n
\n \n {\n localSave(\n this.queryName,\n this.props.table?.fitlers?.searchQuery\n );\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n searchQuery: value,\n })\n );\n }}\n />\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state, props) => ({\n table: state.table?.[props.pageTitle],\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(TerminalsFilter);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\n\nimport { URL } from 'src/app/config';\nimport AwareTable from 'src/components/AwareTable';\nimport { FetchInfoAboutTerminal } from 'src/features/fetch-info-about-terminal';\nimport { AddTerminalGroup } from 'src/features/add-terminal-group';\nimport { EditGroupOfTerminals } from 'src/features/edit-group-of-terminals';\nimport { log, post } from 'src/shared/lib';\nimport TerminalsFilter from './terminals-filter';\nimport { OverflowContainer, Paginator, AddIcon } from 'src/shared';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\nimport { getTerminals } from 'src/redux/actions/terminals';\n\nconst terminalsTableName = 'Inventory-Terminals';\nconst groupsTableName = 'Inventory-Groups';\n\nclass TerminalsPage extends Component {\n filterSubject = new ReplaySubject(1);\n groupsSubject = new BehaviorSubject({ size: 300, offset: 0 });\n\n constructor(props) {\n super(props);\n this.state = {\n id: null,\n groupId: null,\n groupName: '',\n openAddGroup: false,\n };\n this.setGroupRequest = this.setGroupRequest.bind(this);\n this.resetGroupId = this.resetGroupId.bind(this);\n this.onClickOnGroup = this.onClickOnGroup.bind(this);\n this.toggleAddGroup = this.toggleAddGroup.bind(this);\n this.fetchUpdatedData = this.fetchUpdatedData.bind(this);\n }\n\n toggleAddGroup() {\n this.setState({ openAddGroup: !this.state.openAddGroup });\n }\n\n resetGroupId() {\n this.setState({\n groupId: null,\n });\n }\n\n fetchUpdatedData() {\n this.props.dispatch(getTerminals());\n }\n\n // TODO Перенести в в фичу FetchInfoAboutTerminal\n setGroupRequest(terminalId, groupId) {\n post(URL.terminalPageSetGroupUrl, {\n terminalId,\n groupId: groupId ?? null,\n })\n .then(() => {\n this.props.dispatch(setNeedsUpdate(terminalsTableName, true));\n this.props.dispatch(setNeedsUpdate(groupsTableName, true));\n })\n .catch((r) => log(r));\n }\n\n setTerminalHeader() {\n if (this.props.showTerminalHeader) return 'Терминалы';\n return '';\n }\n\n onClickOnGroup({ ID, data }) {\n this.setState({\n groupId: ID,\n groupName: data[0],\n });\n }\n\n render() {\n return (\n <>\n \n \n \n {\n this.setState({\n id: ID,\n groupName: data[3],\n });\n }}\n />\n \n \n\n \n }\n >\n \n \n \n\n {/* TODO переписать реализацию как в фиче EditGroupOfTerminals */}\n \n this.setState({\n id: value,\n })\n }\n changingGroup={(terminalId, groupId) =>\n this.setGroupRequest(terminalId, groupId)\n }\n />\n {this.state.openAddGroup && (\n {\n this.props.dispatch(\n setNeedsUpdate(terminalsTableName, true)\n );\n this.props.dispatch(\n setNeedsUpdate(groupsTableName, true)\n );\n }}\n />\n )}\n\n {this.state.groupId && (\n {\n this.props.dispatch(\n setNeedsUpdate(terminalsTableName, true)\n );\n this.props.dispatch(\n setNeedsUpdate(groupsTableName, true)\n );\n }}\n />\n )}\n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n auth: state.auth,\n terminals: state.terminals.terminals,\n fetch: state.fetch.fetch,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(TerminalsPage);\n","import React, { FC } from 'react';\nimport { DocumentsIcon, Title } from 'src/shared/ui';\nimport { classNames } from 'src/shared/lib';\nimport styles from './document-links.module.scss';\n\ninterface DocumentLinksProps {\n className?: string;\n}\n\nexport const DocumentLinks: FC = ({ className = '' }) => {\n return (\n
\n Документы\n
\n \n Правила по операциям эквайринга\n \n \n Правила обслуживания
Личного Кабинета\n \n \n Тарифы Банка\n \n
\n
\n );\n};\n","import React, { FC, memo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { LightTable, LightTableRow } from 'src/shared';\nimport { getAppTitle, roleNameMapper } from 'src/shared/lib';\n\nexport const UserProfile: FC = memo(() => {\n const isBankApp = getAppTitle() === 'bank';\n const { auth } = useSelector((state) => state);\n const { id, companyId, companyName, fullName, email, cellPhone, roles } =\n auth;\n\n const userRolesToString = (roles: string[]) => {\n return roles\n .reduce((string, role) => string + roleNameMapper(role) + ', ', '')\n .replace(/,.$/, '');\n };\n\n if (isBankApp) {\n return (\n \n \n \n \n {cellPhone ? (\n \n ) : null}\n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n );\n});\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Modal, ModalHeader, ModalBody } from 'reactstrap';\n\nimport { ChangePasswordForm } from 'src/features';\nimport { DocumentLinks } from 'src/features/document-links';\nimport { UserProfile } from 'src/entities/user';\nimport { getAppTitle } from 'src/shared/lib';\nimport { Button, ArticleLayout } from 'src/shared/ui';\nimport './user-config-page.scss';\n\nclass UserConfigPage extends Component {\n constructor(props) {\n super(props);\n\n this.isMerchant = getAppTitle() === 'merchant';\n\n this.state = {\n modal: false,\n };\n\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({\n modal: !this.state.modal,\n });\n }\n\n render() {\n return (\n
\n \n \n \n Изменить пароль\n \n \n }\n smallColumn={\n this.isMerchant && (\n \n )\n }\n />\n \n \n Изменить пароль\n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n auth: state.auth,\n fetch: state.fetch.fetch,\n terminals: state.terminals.terminals,\n form: state['change-password-form'],\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(UserConfigPage);\n","import React, { Component } from 'react';\nimport './settings-page.scss';\nimport MerchantUserListPage from '../MerchantUserListPage';\nimport TerminalsPage from '../TerminalsPage';\nimport UserConfigPage from '../UserConfigPage';\nimport { Route, Switch } from 'react-router-dom';\nimport { navRoutes } from 'src/app/config';\n\nclass SettingsPage extends Component {\n render() {\n return (\n
\n \n }\n />\n }\n />\n }\n />\n \n
\n );\n }\n}\n\nexport default SettingsPage;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport { FiltersContainer } from 'src/widgets';\nimport {\n getClassName,\n sendToSubject,\n getInitialFilter,\n getAppTitle,\n localSave,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport { SearchField } from 'src/shared/ui';\nimport { MerchantTerminalsSelector } from 'src/features/select-terminals';\nimport styles from './styles.module.scss';\nimport { setFilters } from 'src/redux/actions/table';\n\nclass SettlementDetailsFilter extends Component {\n constructor(props) {\n super(props);\n const pageTitleSettlement = 'SettlementPage';\n this.isBankApp = getAppTitle() === 'bank';\n this.searchQuery = getClassName(this.props.tableName, 'searchQuery');\n this.terminalIds = getClassName(this.props.tableName, 'terminalIds');\n const initialFilter = getInitialFilter(\n ['searchQuery', 'terminalIds'],\n this.props.tableName\n );\n this.props.dispatch(\n setFilters(this.props.tableName, {\n ...initialFilter,\n })\n );\n this.send = sendToSubject.bind(this);\n /*\n * TODO: Быстрое решение передачи данных между страницами,\n * проверка существования terminalIds для переиспользования в селекторе\n * в том числе при отправке на получение отчета\n */\n const { companyIds: companyIdsSettlementPage } = getInitialFilter(\n ['companyIds'],\n pageTitleSettlement\n );\n\n const { terminalIds: terminalIdsSettlementPage } = getInitialFilter(\n ['terminalIds'],\n LOCAL_STORAGE_TABLE_NAMES.common\n );\n if (terminalIdsSettlementPage.length) {\n const notIncludedIds = terminalIdsSettlementPage.filter(\n (id) => !initialFilter.terminalIds?.includes(id)\n );\n\n this.props.dispatch(\n setFilters(this.props.tableName, {\n terminalIds:\n initialFilter.terminalIds.concat(notIncludedIds),\n })\n );\n this.saveFilter();\n }\n /*\n * TODO: Быстрое решение передачи данных между страницами,\n * проверкка существования companyIds для использования при отправке на получение отчета\n */\n if (this.isBankApp && companyIdsSettlementPage.length) {\n const name = getClassName(this.props.tableName, 'companySelectId');\n localSave(name, companyIdsSettlementPage);\n const notIncludedIds = companyIdsSettlementPage.filter(\n (id) => !initialFilter.terminalIds.includes(id)\n );\n // TODO: setting terminal ids here for bank app which doesn't even fetch them in the first place\n // might be a bug prob should be company ids here, look into it\n this.props.dispatch(\n setFilters(this.props.tableName, {\n terminalIds:\n initialFilter.terminalIds.concat(notIncludedIds),\n })\n );\n this.saveFilter();\n }\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n saveFilter() {\n localSave(this.terminalIds, this.props.table?.filters?.terminalIds);\n }\n\n componentDidUpdate() {\n this.saveFilter();\n }\n\n render() {\n return (\n
\n \n \n this.props.dispatch(\n setFilters(this.props.tableName, {\n terminalIds: terminalIds,\n })\n )\n }\n terminalsList={this.props.terminals}\n />\n
\n {this.props.actions}\n
\n \n this.props.dispatch(\n setFilters(this.props.tableName, {\n searchQuery: value,\n })\n )\n }\n />\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state, props) => ({\n terminals: state.terminals.terminals,\n table: state.table?.[props.tableName],\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(SettlementDetailsFilter);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport { Card, CardBody } from 'reactstrap';\nimport { ReplaySubject } from 'rxjs';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport { navRoutes, URL } from 'src/app/config';\nimport { DownloadReportStore } from 'src/features/download-report';\nimport { log, getInitialFilter, post } from 'src/shared/lib';\n\nimport SetttlementDetailsFilter from './SetttlementDetailsFilter';\n\nimport './settlement-details.scss';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nconst SettlementDetailsTableName = 'Settlement-Details';\n\nclass SettlementDetails extends Component {\n filterSubject = new ReplaySubject(1);\n state = { summary: {} };\n\n summaryRequest(body) {\n const { date, id } = this.props.match.params;\n post(URL.settlementDetailsSummaryUrl + date + `/${id ? id : ''}`, body)\n .then((response) =>\n this.setState({ summary: response.data.payload })\n )\n .catch((response) => log(response));\n }\n\n render() {\n const { date, id } = this.props.match.params;\n\n return (\n
\n this.summaryRequest(request)}\n />\n
\n {this.state.summary.amount ? (\n \n \n
\n Сумма: \n {this.state.summary.amount}\n
\n
\n
\n ) : null}\n {this.state.summary.feeAmount ? (\n \n \n
\n Комиссия: \n {this.state.summary.feeAmount}\n
\n
\n
\n ) : null}\n {this.state.summary.settlAmount ? (\n \n \n
\n Возмещение: \n \n {this.state.summary.settlAmount}\n \n
\n
\n
\n ) : null}\n
\n \n \n ,\n ]}\n isStoreTable\n tableName={SettlementDetailsTableName + date + id}\n updateTableCallback={(request) =>\n this.summaryRequest(request)\n }\n url={`${URL.settlementDetailsUrl}${date}${\n id ? '/' + id : ''\n }`}\n link={navRoutes.operations}\n />\n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(SettlementDetails);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { DateRangePicker } from 'src/shared/ui';\nimport {\n localSave,\n getClassName,\n formatDateForInput,\n getInitialFilter,\n getAppTitle,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport CompanySelect from 'src/components/CompanySelect';\nimport {\n setFilters,\n setCommonTableFilters,\n setPersistedTableState,\n} from 'src/redux/actions/table';\nimport './settlement-filter.scss';\nimport { MerchantTerminalsSelector } from 'src/features/select-terminals';\n\nclass SettlementFilter extends Component {\n constructor(props) {\n super(props);\n this.isBankApp = getAppTitle() === 'bank';\n this.startDate = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'startDate'\n );\n this.endDate = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'endDate'\n );\n this.terminalIds = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'terminalIds'\n );\n this.companyIds = getClassName(\n this.props.pageTitle,\n CompanySelect.companyIds\n );\n this.state = {\n ...getInitialFilter(['companyIds'], this.props.pageTitle),\n };\n const commonSavedState = getInitialFilter(\n ['terminalIds'],\n LOCAL_STORAGE_TABLE_NAMES.common\n );\n\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds: [],\n })\n );\n\n this.props.dispatch(setCommonTableFilters(commonSavedState));\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe();\n }\n\n componentDidMount() {\n // TODO 724: moving table names to a constant might be good\n // check if clearing cached state on navigation click is better\n this.props.dispatch(\n setPersistedTableState(LOCAL_STORAGE_TABLE_NAMES.operations, undefined)\n );\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.terminalIds, this.props.commonFilters?.terminalIds);\n }\n\n componentDidUpdate(previousProps) {\n if (\n this.getEndDate() !== previousProps.table?.endDate ||\n this.getStartDate() !== previousProps.table?.startDate ||\n _.isEqual(previousProps.table?.filters, this.props.table?.filters)\n ) {\n this.saveFilter();\n }\n }\n\n getStartDate() {\n return this.props.commonFilters?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setCommonTableFilters({ startDate: date }));\n }\n\n getEndDate() {\n return this.props.commonFilters?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setCommonTableFilters({ endDate: date }));\n }\n\n render() {\n return (\n
\n {\n this.props.dispatch(\n setCommonTableFilters({ terminalIds })\n );\n }}\n terminalsList={this.props.terminals}\n />\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n criticalScreenWidth={this.isBankApp ? undefined : 1130}\n position={this.isBankApp ? 'left' : 'center'}\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(moment(new Date()).add(-7, 'days'));\n this.setEndDate(moment(new Date()));\n }}\n />\n {this.isBankApp && (\n {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds: value ? [value] : [],\n })\n );\n }}\n />\n )}\n
{this.props.actions}
\n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n table: state.table?.[props.pageTitle],\n commonFilters: state.table?.commonFilters,\n terminals: state.terminals.terminals,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(SettlementFilter);\n","import React, { Component } from 'react';\nimport { ReplaySubject } from 'rxjs';\nimport { connect } from 'react-redux';\n\nimport { navRoutes, URL } from 'src/app/config';\nimport {\n getAppTitle,\n getInitialFilter,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport AwareTable from 'src/components/AwareTable';\nimport SettlementFilter from './SettlementFilter';\nimport { OverflowContainer, Paginator } from 'src/shared';\nimport { DownloadReportStore } from 'src/features/download-report';\n\nimport './settlement-page.scss';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.settlement;\n\nclass SettlementPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n transformBody(body) {\n if (getAppTitle() === 'bank') {\n body.terminalIds = undefined;\n }\n }\n\n render() {\n return (\n
\n \n\n \n \n \n getInitialFilter(\n ['terminalIds', 'companyIds'],\n pageTitle\n )\n }\n url={URL.settlementFileDownloadUrl}\n />,\n ]}\n />\n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n cancelationToken: state.requestCancelation.token,\n };\n}\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(SettlementPage);\n","import React, { FC, memo, useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { navRoutes } from 'src/app/config';\nimport { SET_TERMINAL_INACTIVE } from 'src/redux/constants';\nimport { Modal } from 'src/shared';\n\nexport const NotificationOfInactiveTerminals: FC = memo(() => {\n const dispatch = useDispatch();\n const isInactiveTerminals = useSelector(\n (state) => state.terminals.inactive\n );\n\n const setInactive = useCallback(() => {\n dispatch({\n type: SET_TERMINAL_INACTIVE,\n payload: false,\n });\n }, [dispatch]);\n\n const onCloseModal = useCallback(() => {\n setInactive();\n }, [setInactive]);\n\n return (\n \n

\n Обращаем ваше внимание, что у вас есть терминалы, по которым\n отсутствуют транзакции более 30 календарных дней. Для вашего\n удобства можете проставить статусы по данным терминалам. Для\n этого перейдите в раздел{' '}\n \n «Терминалы»\n \n , нажмите на терминал, выделенный желтым цветом, и выберите\n соответствующий статус из выпадающего списка.\n

\n \n );\n});\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment/moment';\n\nimport {\n getConversionChart,\n getDeclineChart,\n getMpsChart,\n toggleCharts,\n} from 'src/redux/actions/charts';\nimport {\n localSave,\n getClassName,\n getInitialFilter,\n formatDateForInput,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport { Switcher, DateRangePicker } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\nimport { setCommonTableFilters } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\nimport { MerchantTerminalsSelector } from 'src/features/select-terminals';\n\nclass StatisticFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'startDate'\n );\n this.endDate = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'endDate'\n );\n this.terminalIds = getClassName(\n LOCAL_STORAGE_TABLE_NAMES.common,\n 'terminalIds'\n );\n\n let initialFilter = getInitialFilter([], this.props.pageTitle);\n const commonSavedState = {\n ...getInitialFilter(\n ['terminalIds'],\n LOCAL_STORAGE_TABLE_NAMES.common\n ),\n };\n\n this.setStartDate(commonSavedState.startDate);\n this.setEndDate(commonSavedState.endDate);\n this.state = {\n ...initialFilter,\n };\n\n this.props.dispatch(setCommonTableFilters(commonSavedState));\n }\n\n isInitialDataRequest() {\n return (\n this.state.startDate === this.props.table?.startDate &&\n this.state.endDate === this.props.table?.endDate\n );\n }\n\n getStartDate() {\n return this.props.commonFilters?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setCommonTableFilters({ startDate: date }));\n }\n\n getEndDate() {\n return this.props.commonFilters?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setCommonTableFilters({ endDate: date }));\n }\n\n componentDidUpdate(previousProps) {\n const { startDate, endDate, terminalIds } = this.props.commonFilters;\n\n const propsChanged =\n previousProps.commonFilters?.startDate.format('YYYY-MM-DD') !==\n this.props.commonFilters?.startDate.format('YYYY-MM-DD') ||\n previousProps.commonFilters?.endDate.format('YYYY-MM-DD') !==\n this.props.commonFilters?.endDate.format('YYYY-MM-DD') ||\n JSON.stringify(this.props.commonFilters?.terminalIds) !==\n JSON.stringify(previousProps.commonFilters?.terminalIds);\n if (terminalIds && startDate && endDate && propsChanged) this.getData();\n }\n\n componentDidMount() {\n this.getData();\n }\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.terminalIds, this.props.commonFilters?.terminalIds);\n }\n\n getData() {\n this.getAllStatisticPageCharts({\n startDate: this.getStartDate(),\n endDate: this.getEndDate(),\n terminalIds: this.props.commonFilters?.terminalIds ?? [],\n });\n this.saveFilter();\n }\n\n getAllStatisticPageCharts(r) {\n this.props.dispatch(getMpsChart(r));\n this.props.dispatch(getDeclineChart(r));\n this.props.dispatch(getConversionChart(r));\n }\n\n render() {\n let { dispatch } = this.props;\n return (\n
\n \n \n dispatch(\n setCommonTableFilters({\n terminalIds,\n })\n )\n }\n terminalsList={this.props.terminals}\n />\n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n criticalScreenWidth={1110}\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).add(-7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n />\n {\n dispatch(toggleCharts('sum'));\n },\n },\n {\n id: 'count',\n title: ' Количество',\n onClick: () => {\n dispatch(toggleCharts('count'));\n },\n },\n ]}\n />\n
\n {this.props.actions}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state, props) => ({\n terminals: state.terminals.terminals,\n table: state.table?.[props.pageTitle],\n commonFilters: state.table?.commonFilters,\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(StatisticFilter);\n","import React, { PureComponent, createRef } from 'react';\nimport { connect } from 'react-redux';\nimport { Chart } from 'chart.js';\n\nimport { ticksFormatter, renderCustomTooltip } from 'src/shared/lib';\nimport Container from 'src/components/Container';\n\nimport './conversion-chart.scss';\n\nconst legendMargin = {\n id: 'legendMargin',\n beforeInit(chart) {\n const fitValue = chart.legend.fit;\n chart.legend.fit = function fit() {\n fitValue.bind(chart.legend)();\n return (this.height += 22);\n };\n },\n};\n\nconst hoverSectionBackgroundColor = {\n id: 'hoverSectionBackgroundColor',\n beforeDatasetsDraw(chart) {\n const {\n ctx,\n tooltip,\n chartArea: { top, height },\n scales: { x },\n } = chart;\n if (tooltip._active && tooltip._active.length > 0) {\n const index = tooltip._active[0].index;\n if (x._gridLineItems.length > index + 1) {\n const currentX = x._gridLineItems[index].x1;\n const nextX = x._gridLineItems[index + 1]\n ? x._gridLineItems[index + 1].x1\n : currentX;\n const newWidth = currentX - nextX;\n ctx.fillStyle = 'rgba(239, 239, 243, 0.5)';\n ctx.fillRect(nextX, top, newWidth, height);\n }\n }\n },\n};\n\nclass ConversionChart extends PureComponent {\n constructor(props) {\n super(props);\n this.ticksFormatter = ticksFormatter.bind(this);\n this.chart = null;\n this.canvas = createRef();\n this.state = {\n chartConfig: {\n chartType: 'bar',\n data: {\n labels: [],\n datasets: [\n {\n label: '',\n data: [],\n backgroundColor: '#EAEDF3',\n borderRadius: 5,\n lineTension: 0,\n hoverBackgroundColor: '#002E5A',\n maxBarThickness: 30,\n },\n {\n label: '',\n data: [],\n backgroundColor: '#E2CECE',\n borderRadius: 5,\n lineTension: 0,\n hoverBackgroundColor: '#C47978',\n maxBarThickness: 30,\n },\n ],\n },\n options: {\n hover: {\n mode: 'index',\n intersect: false,\n },\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n tooltip: {\n enabled: false,\n mode: 'index',\n intersect: false,\n external: (context) =>\n renderCustomTooltip(\n context,\n this.renderTooltipContent\n ),\n },\n legend: {\n display: true,\n position: 'top',\n align: 'start',\n labels: {\n usePointStyle: true,\n pointStyle: 'rectRounded',\n boxWidth: 18,\n boxHeight: 18,\n },\n },\n },\n scales: {\n x: {\n beginAtZero: true,\n scaleLabel: {\n display: true,\n labelString: '',\n },\n grid: {\n display: true,\n borderColor: '#f7f8f8',\n tickColor: '#f7f8f8',\n },\n ticks: {\n display: true,\n tickWidth: 111,\n color: '#000',\n },\n },\n y: {\n min: 0, // it is for ignoring negative step.\n beginAtZero: true,\n scaleLabel: {\n display: true,\n labelString: '',\n },\n ticks: {\n callback: this.ticksFormatter,\n display: true,\n color: '#000',\n },\n grid: {\n display: false,\n tickColor: '#f7f8f8',\n borderColor: '#f7f8f8',\n },\n },\n },\n },\n },\n };\n }\n\n clearChart() {\n if (this.chart) this.chart.destroy();\n }\n\n configureCharts(data) {\n this.prepareData(data);\n let ctx = this.canvas.current.getContext('2d');\n this.clearChart();\n this.chart = new Chart(ctx, {\n plugins: [legendMargin, hoverSectionBackgroundColor],\n type: this.state.chartConfig.chartType,\n data: this.state.chartConfig.data,\n options: this.state.chartConfig.options,\n });\n }\n\n componentWillUnmount() {\n this.clearChart();\n }\n\n renderTooltipContent(context) {\n let innerHtml = '';\n // add tooltip content\n const dataSets = context.tooltip.chart.config.data.datasets;\n const currentDataIndex = context.tooltip.dataPoints[0].dataIndex;\n dataSets.forEach((dataset) => {\n innerHtml += `
\n \n ${dataset.label}\n \n \n ${dataset.data[currentDataIndex]}\n `;\n innerHtml += '
';\n });\n return innerHtml;\n }\n\n prepareData(data) {\n let newChart = this.state.chartConfig;\n newChart.options.scales = {\n y: {\n ...this.state.chartConfig.options.scales.y,\n scaleLabel: {\n labelString: data.groupName,\n },\n },\n x: this.state.chartConfig.options.scales.x,\n };\n newChart.data.labels = [];\n newChart.data.datasets[0].data = [];\n newChart.data.datasets[0].label = data.paramNames[0];\n newChart.data.datasets[1].data = [];\n newChart.data.datasets[1].label = data.paramNames[1];\n data.tuples.forEach((item) => {\n newChart.data.labels.push(item.name);\n newChart.data.datasets[0].data.push(item.values[0]);\n newChart.data.datasets[1].data.push(item.values[1]);\n });\n this.setState({ chartConfig: newChart });\n }\n\n get chartRenderCheck() {\n return !!(\n this.props.data && this.props.data[this.props.toggle].tuples.length\n );\n }\n\n componentDidUpdate() {\n if (this.chartRenderCheck)\n this.configureCharts(this.props.data[this.props.toggle]);\n }\n\n render() {\n if (!this.chartRenderCheck) return null;\n return (\n \n
\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({ data: state.charts.conversion });\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConversionChart);\n","import React, { PureComponent } from 'react';\nimport connect from 'react-redux/es/connect/connect';\nimport { Chart } from 'chart.js';\n\nimport { mc, visa, mir } from 'src/shared/ui/media';\nimport Container from 'src/components/Container';\nimport { roundsNumber, ticksMpsFormatter } from 'src/shared/lib';\n\nimport './mps-chart.scss';\n\nconst createPsGradients = () => {\n // TODO: responsive gradient\n var bar_ctx = document.getElementById('mps-chart').getContext('2d');\n\n var visa = bar_ctx.createLinearGradient(0, 0, 270, 0);\n visa.addColorStop(0, '#26255F');\n visa.addColorStop(0.9, '#174191');\n\n var mc = bar_ctx.createLinearGradient(270, 0, 500, 0);\n mc.addColorStop(0, '#DF1612');\n mc.addColorStop(1, '#F59E00');\n\n var mir = bar_ctx.createLinearGradient(700, 0, 730, 0);\n mir.addColorStop(0, '#24A23F');\n mir.addColorStop(0.9, '#00A3E1');\n return { visa, mir, mc };\n};\n\nclass MpsChart extends PureComponent {\n constructor(props) {\n super(props);\n this.ticksFormatter = ticksMpsFormatter.bind(this);\n this.chartProps = this.props;\n this.chart = null;\n this.total = 0;\n this.colors = {\n first: 'rgb(255, 242, 226)',\n second: 'rgb(208, 237, 248)',\n third: 'rgb(198, 235, 189)',\n defaultColor: 'rgb(229, 229, 229)',\n };\n this.state = {\n chartConfig: {\n chartType: 'bar',\n responsive: false,\n maintainAspectRatio: false,\n data: {\n labels: ['Visa', 'MasterCard', 'Мир'],\n datasets: [\n {\n barThickness: 8,\n data: [],\n borderRadius: 6,\n barPercentage: 0.33,\n categoryPercentage: 0.5,\n borderSkipped: 'middle',\n label: 'Visa',\n },\n {\n barThickness: 8,\n data: [],\n borderRadius: 6,\n barPercentage: 0.33,\n categoryPercentage: 0.5,\n label: 'MasterCard',\n },\n {\n barThickness: 8,\n data: [],\n borderRadius: 6,\n barPercentage: 0.33,\n categoryPercentage: 0.5,\n label: 'Мир',\n },\n ],\n },\n options: {\n indexAxis: 'y',\n layout: {\n padding: {\n top: 15,\n },\n autoPadding: false,\n },\n scales: {\n x: {\n display: false,\n stacked: true,\n },\n y: {\n stacked: true,\n display: false,\n },\n },\n plugins: {\n legend: {\n display: false,\n position: 'right',\n },\n tooltip: {\n enabled: false,\n },\n },\n },\n },\n };\n }\n\n clearChart() {\n if (this.chart) this.chart.destroy();\n }\n\n configureCharts(data) {\n this.prepareData(data);\n let ctx = this.refs.canvas.getContext('2d');\n this.clearChart();\n this.chart = new Chart(ctx, {\n type: this.state.chartConfig.chartType,\n data: this.state.chartConfig.data,\n options: this.state.chartConfig.options,\n });\n }\n\n componentWillUnmount() {\n this.clearChart();\n }\n\n renderPs() {\n const logoSrc = (label) => {\n if (label === 'Мир') {\n return mir;\n } else if (label === 'Visa') {\n return visa;\n }\n return mc;\n };\n\n const renderLabel = (dataset, idx) => {\n let width =\n (Number(dataset.data[0]) * 100) / Number(this.state.total) -\n 1.5;\n return (\n \n \n {logoSrc(dataset.label)}\n \n \n {dataset.data[0]}\n \n \n );\n };\n\n let datasets = this.state.chartConfig.data.datasets;\n return <>{datasets.map(renderLabel)};\n }\n\n prepareData(data) {\n let newChart = this.state.chartConfig;\n const gradient = createPsGradients();\n const datasets = newChart.data.datasets;\n let total = 0;\n\n data.tuples.forEach((item) => {\n let idx = datasets.findIndex(\n (dataset) => dataset.label === item.name\n );\n if (idx !== -1) {\n newChart.data.labels.push(newChart.data.datasets[idx].label);\n newChart.data.datasets[idx].data = [item.values[0]];\n total += Number(item.values[0]);\n if (item.name === 'Visa') {\n newChart.data.datasets[idx].backgroundColor = [\n gradient.visa,\n ];\n } else if (item.name === 'MasterCard') {\n newChart.data.datasets[idx].backgroundColor = [gradient.mc];\n } else {\n newChart.data.datasets[idx].backgroundColor = [\n gradient.mir,\n ];\n }\n }\n });\n this.setState({ chartConfig: newChart, total });\n }\n\n get chartRenderCheck() {\n return !!(\n this.props.data && this.props.data[this.props.toggle].tuples.length\n );\n }\n\n componentDidUpdate() {\n if (this.chartRenderCheck)\n this.configureCharts(this.props.data[this.props.toggle]);\n }\n\n render() {\n if (!this.chartRenderCheck) return null;\n return (\n \n
\n
\n Всего:{' '}\n \n {roundsNumber(this.state.total)?.toString()}\n \n
\n
\n \n
\n
{this.renderPs()}
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({ data: state.charts.mps });\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(MpsChart);\n","/**\n * @param number число для округление\n * @param count количество знаков после запятой\n * @returns число\n */\n\nexport const roundsNumber = (number?: string | number, count = 2) => {\n const newNumber = Number(number);\n if (Number.isInteger(newNumber)) {\n return newNumber;\n }\n return Number(newNumber?.toFixed(count));\n};\n","import React, { PureComponent } from 'react';\nimport { Chart } from 'chart.js';\nimport { ticksFormatter, renderCustomTooltip } from 'src/shared/lib';\nimport Container from 'src/components/Container';\nimport connect from 'react-redux/es/connect/connect';\n\nimport './decline-chart.scss';\n\nconst hoverSectionBackgroundColor = {\n id: 'hoverSectionBackgroundColor',\n beforeDatasetsDraw(chart) {\n const {\n ctx,\n tooltip,\n chartArea: { top, height },\n scales: { x },\n } = chart;\n if (tooltip._active && tooltip._active.length > 0) {\n const index = tooltip._active[0].index;\n if (x._gridLineItems.length > index + 1) {\n const currentX = x._gridLineItems[index].x1;\n const nextX = x._gridLineItems[index + 1]\n ? x._gridLineItems[index + 1].x1\n : currentX;\n const newWidth = currentX - nextX;\n ctx.fillStyle = 'rgba(239, 239, 243, 0.5)';\n ctx.fillRect(nextX, top, newWidth, height);\n }\n }\n },\n};\n\nclass DeclineChart extends PureComponent {\n constructor(props) {\n super(props);\n this.ticksFormatter = ticksFormatter.bind(this);\n this.chartProps = this.props;\n this.chart = null;\n this.state = {\n chartConfig: {\n chartType: 'bar',\n data: {\n datasets: [\n {\n data: [],\n backgroundColor: '#EAEDF3',\n hoverBackgroundColor: '#002E5A',\n lineTension: 0,\n maxBarThickness: 130,\n borderRadius: 6,\n },\n ],\n },\n options: {\n layout: {\n padding: {\n top: 30,\n },\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n external: (context) =>\n renderCustomTooltip(\n context,\n this.renderTooltipContent\n ),\n },\n },\n scales: {\n x: {\n display: true,\n scaleLabel: {\n display: true,\n labelString: '',\n },\n grid: {\n borderColor: '#F0F2F2',\n display: false,\n },\n ticks: {\n color: '#000',\n },\n },\n y: {\n ticks: {\n min: 0, // it is for ignoring negative step.\n beginAtZero: true,\n callback: this.ticksFormatter,\n color: '#000',\n },\n grid: {\n borderColor: '#F0F2F2',\n display: false,\n },\n scaleLabel: {\n display: true,\n labelString: '',\n },\n },\n },\n responsive: true,\n maintainAspectRatio: false,\n },\n },\n };\n }\n\n renderTooltipContent(context) {\n let innerHtml = '';\n const dataSets = context.tooltip.chart.config.data.datasets;\n const currentDataIndex = context.tooltip.dataPoints[0].dataIndex;\n dataSets.forEach((dataset) => {\n innerHtml += `
\n \n ${context.tooltip.title}:\n \n \n ${dataset.data[currentDataIndex]}\n `;\n innerHtml += '
';\n });\n return innerHtml;\n }\n\n clearChart() {\n if (this.chart) this.chart.destroy();\n }\n\n configureCharts(data) {\n this.prepareData(data);\n let ctx = this.refs.canvas.getContext('2d');\n this.clearChart();\n this.chart = new Chart(ctx, {\n type: this.state.chartConfig.chartType,\n data: this.state.chartConfig.data,\n options: this.state.chartConfig.options,\n plugins: [hoverSectionBackgroundColor],\n });\n }\n\n componentWillUnmount() {\n this.clearChart();\n }\n\n prepareData(data) {\n let newChart = this.state.chartConfig;\n newChart.options.scales.y.scaleLabel.labelString = data.groupName;\n newChart.options.scales.x.scaleLabel.labelString = data.name;\n newChart.data.labels = [];\n newChart.data.datasets[0].data = [];\n data.tuples.forEach((item) => {\n newChart.data.labels.push(item.name);\n newChart.data.datasets[0].data.push(item.values[0]);\n });\n this.setState({ chartConfig: newChart });\n }\n\n componentDidUpdate() {\n if (this.chartRenderCheck)\n this.configureCharts(this.props.data[this.props.toggle]);\n }\n\n get chartRenderCheck() {\n return !!(\n this.props.data && this.props.data[this.props.toggle].tuples.length\n );\n }\n\n render() {\n if (!this.chartRenderCheck) return null;\n\n return (\n \n
\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({ data: state.charts.failureCodes });\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(DeclineChart);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\nimport { navRoutes, URL } from 'src/app/config';\nimport { NotificationOfInactiveTerminals } from 'src/features/notification-of-inactive-terminals';\nimport AwareTable from 'src/components/AwareTable';\nimport { getInitialFilter, LOCAL_STORAGE_TABLE_NAMES } from 'src/shared/lib';\nimport StatisticFilter from './StatisticFilter';\nimport ConversionChart from './ConversionChart';\nimport MpsChart from './MpsChart';\nimport DeclineChart from './DeclineChart';\nimport { OverflowContainer, Paginator } from 'src/shared/ui';\nimport { DownloadReportStore } from 'src/features/download-report';\n\nimport './statistic.scss';\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.statistic;\n\nclass StatisticPage extends Component {\n componentWillUnmount() {\n const chartTooltip = document.getElementById('chartjs-tooltip');\n if (!chartTooltip) return;\n chartTooltip.style.opacity = '0';\n }\n\n filterSubject = new ReplaySubject(1);\n\n render() {\n const toggle = this.props.toggle === 'sum' ? 0 : 1;\n return (\n
\n \n\n \n \n ({\n pathname: navRoutes.operationLastUrl,\n state: { rowID: row.ID, date: row.data[0] },\n })}\n isStoreTable\n actions={[\n \n getInitialFilter(\n ['terminalIds'],\n pageTitle\n )\n }\n />,\n ]}\n />\n \n \n \n
\n \n \n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n toggle: state.charts.toggle,\n fetch: state.fetch.fetch,\n cancelationToken: state.requestCancelation.token,\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(StatisticPage);\n","import React from 'react';\n\nexport const faq = [\n {\n q: 'Какие документы необходимо предоставить для установки/снятия ПОС-терминалов?',\n a: (\n
\n на Установку:\n
\n 1. Заявление на установку (форма заявления на сайте банка:\n раздел \"бизнесу\" ->{' '}\n \n эквайринг\n {' '}\n -> раздел \"Тарифы и документы\"\n
\n 2. Согласие БКИ на всех участников общества или ИП\n
\n 3. Договор эквайринга\n
\n 4. Копии паспортов на всех участников + Ген.Директор общества\n
\n 5. Договор аренды на адрес установки терминала\n
\n
\n на Снятие:\n
\n Заявление на снятие (форма заявления на сайте банка: раздел\n \"бизнесу\" ->\n \n {' '}\n эквайринг\n {' '}\n -> внизу раздел \"Тарифы и документы\")\n
\n
\n ),\n },\n {\n q: 'Что необходимо сделать для приема платежей по бесконтактным средствам платежа?',\n a: (\n
\n 1. Оставить заявку на сайте банка: раздел \"бизнесу\" ->{' '}\n \n эквайринг\n {' '}\n -> кнопка \"оставить заявку\" или\n
\n 2. Связаться по телефону{' '}\n +7 495 705 90 90{' '}\n +7 800 200 02 23 или\n
\n 3. Отправить письмо с заполненным заявлением о\n регистрации/изменении данных о точках реализации Клиента по\n эл.почте на sdm@sdm.ru или\n
\n 4. Отправить письмо с заполненным заявлением о\n регистрации/изменении данных о точках реализации Клиента через\n банк-клиент\n
\n
\n ),\n },\n {\n q: 'ПОС-терминал не заряжается, что делать?',\n a: (\n
\n 1. Позвонить в банк по телефону{' '}\n +7 495 705 90 90,{' '}\n +7 800 200 02 23 и назвать модель\n терминала и контакты точки (название организации, адрес\n установки терминала, телефон для связи) или\n
\n 2. Оставить заявку в данном ЛК, в банк-клиенте или по почте на\n адрес sdm@sdm.ru с указанием\n названия организации, адреса установки терминала, телефона для\n связи\n
\n ),\n },\n {\n q: 'Превышен лимит по ПОС-терминалу, что делать?',\n a: (\n
\n 1. Позвоните в банк по телефону{' '}\n +7 495 705 90 90,{' '}\n +7 800 200 02 23 и назвать модель\n терминала и контакты организации (адрес установки, id терминала,\n телефон для связи) или\n
\n 2. Оставить заявку через данный ЛК, банк-клиент или по почте на\n адрес sdm@sdm.ru с указанием\n модели терминала и контактов организации (адрес установки, id\n терминала, телефон для связи)\n
\n
\n ),\n },\n {\n q: 'Не работает ПОС-терминал, что делать?',\n a: (\n
\n 1. Позвоните в банк по телефону{' '}\n +7 495 705 90 90,{' '}\n +7 800 200 02 23\n
\n 2. Назвать модель терминала и контакты организации (адрес\n установки, id устройства, телефон для связи)\n
\n 3. Оставить заявку в свободной форме в ЛК, в банк-клиенте или по\n почте на адрес sdm@sdm.ru\n
\n
\n ),\n },\n {\n q: 'Клиент не получил денежные средства по операции «возврат», что делать?',\n a: (\n
\n 1. Позвоните в банк по телефону{' '}\n +7 495 705 90 90,{' '}\n +7 800 200 02 23 и назвать\n оператору название организации, id терминала, сумму и дату\n операции или\n
\n 2. Оставить заявку в данном ЛК, в банк-клиенте или по почте на\n адрес sdm@sdm.ru, с указанием\n названия организации, id терминала, суммы и даты операции.\n
\n
\n ),\n },\n {\n q: 'Как происходит обучение персонала по приему платежей по картам и бесконтактным средствам платежа?',\n a: (\n
\n 1. Через ЛК или банк-клиент в свободной форме оставить заявку на\n повторное обучение, обязательно указать контакты для связи\n
\n 2. По указанным контактам в заявке, сотрудник банка (инженер)\n связывается с организацией и согласует дату и время обучения\n
\n 3. При обучении выдается инструкции по работе с пос-терминалом\n (инструкции по работе с пос-терминалами по модельно по ссылке),\n а также подписывется акт о проведении инструктажа (форма акта на\n сайте банка: раздел \"бизнесу\" ->{' '}\n \n эквайринг\n {' '}\n -> раздел \"Тарифы и документы\")\n
\n
\n ),\n },\n {\n q: 'Как начать принимать платежи по картам на моем сайте, какие документы потребуются для подключения?',\n a: (\n
\n 1. Оставить заявку на подключение интернет эквайринга через ЛК\n или банк-клиент (форма заявления на сайте банка: раздел\n \"бизнесу\" ->{' '}\n \n эквайринг\n {' '}\n -> раздел \"Тарифы и документы\")\n
\n 2. Свяжется сотрудник клиентской службы для подтверждения\n заявки, уточнит данные по сайту (название сайта) и\n проинформирует какие документы необходимы для подключения\n интернет эквайринга\n
\n
\n ),\n },\n {\n q: 'Опишите, пожалуйста, как происходит процесс технической интеграции для приема платежей по картам на моем сайте?',\n a: (\n
\n 1. По оставленным контактам в заявлении (форма заявления на\n сайте банка: раздел \"бизнесу\" ->{' '}\n \n эквайринг\n {' '}\n -> раздел \"Тарифы и документы\"), технический специалист\n связывается с представителем торговой точки\n
\n 2. Передается инструкция банка (API) и/или готовый модуль CMS\n
\n 3. Осуществляется настройка и тестирование сайта на тестовом\n стенде. Проверка платежей и возвратов\n
\n 4. Осуществляется перенастройка терминала на боевые реквизиты,\n передача их организации по актам приема-передачи\n
\n
\n ),\n },\n {\n q: 'Сколько времени потребуется для организации приема платежей на сайте?',\n a: 'От 3 дней (в зависимости от степени готовности сайта организации на прием платежей)',\n },\n {\n q: 'Какие требования к сайту?',\n a: (\n
\n С предъявляемыми требованиями вы можете ознакомиться на нашем{' '}\n \n сайте\n \n
\n ),\n },\n {\n q: 'Существуют ли какие-либо требования к товарам или услугам, предоставленным на сайте?',\n a: (\n
\n С предъявляемыми требованиями вы можете ознакомиться на нашем{' '}\n \n сайте\n \n
\n ),\n },\n {\n q: 'Можно ли принимать оплату по интернет-эквайрингу без сайта?',\n a: (\n
\n 1. Через личный кабинет формируете счёт на оплату, который\n направляется на e-mail, СМС или мессенджер клиенту;\n
\n 2. Клиент получает ссылку, по которой переходит для оплаты;\n
\n 3. После успешной оплаты вы увидите подтверждение в личном\n кабинете, а клиенту приходит электронный чек.\n
\n ),\n },\n {\n q: 'Как работает раздел «Счета»?',\n a: (\n
\n Для вашего удобства мы разместили инструкцию по использованию\n раздела «Счета» (отправка ссылки на оплату).\n
\n \n Инструкция.pdf\n \n
\n ),\n },\n];\n","import React, { Component } from 'react';\nimport connect from 'react-redux/es/connect/connect';\nimport { Card, CardBody, Collapse, Input } from 'reactstrap';\n\nimport { sendFeedback } from 'src/redux/actions/feed';\nimport Container from 'src/components/Container';\n\nimport { Button } from 'src/shared/ui';\nimport { URL } from 'src/app/config';\nimport { log, get } from 'src/shared/lib';\n\nimport { faq } from './faq';\n\nimport './support-page.scss';\n\nclass SupportPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n feedback: '',\n subject: '',\n subjectOrder: 0,\n template: '',\n selectedSubject: '',\n messageList: [],\n };\n this.clearFeedback = this.clearFeedback.bind(this);\n this.getMsgTemplateList = this.getMsgTemplateList.bind(this);\n this.findTempBySubject = this.findTempBySubject.bind(this);\n }\n\n componentDidMount() {\n this.getMsgTemplateList();\n }\n\n findTempBySubject(context, selectedSubject) {\n const selectedContext = context.find(\n (item) => item.subject === selectedSubject\n );\n selectedContext.template\n ? this.setState({ feedback: selectedContext.template })\n : this.setState({ feedback: '' });\n }\n\n getMsgTemplateList() {\n get(URL.supportSubjects, {\n subject: this.state.subject,\n subjectOrder: this.state.subjectOrder,\n template: this.state.template,\n })\n .then((r) => {\n const { payload } = r.data;\n this.setState({\n messageList: payload,\n subject: payload.map((item) => item.subject),\n });\n })\n .catch((r) => {\n log(r);\n });\n }\n\n clearFeedback() {\n this.setState({ feedback: '' });\n }\n\n render() {\n const { dispatch } = this.props;\n return (\n
\n \n
    \n {faq.map((f, i) => (\n
  • \n \n
  • \n ))}\n
\n \n \n
\n
\n
\n {\n this.setState(\n { selectedSubject: e.target.value },\n () => {\n this.findTempBySubject(\n this.state.messageList,\n this.state.selectedSubject\n );\n }\n );\n }}\n >\n {this.state.subject\n ? this.state.subject.map((sub, i) => (\n \n ))\n : null}\n \n
\n
\n \n this.setState({\n feedback: feedback.target.value,\n })\n }\n type=\"textarea\"\n style={{ whiteSpace: 'pre-line' }}\n placeholder={'Введите сообщение'}\n className=\"modal-input\"\n />\n \n dispatch(\n sendFeedback(\n {\n subject: this.state.selectedSubject,\n feedback: this.state.feedback,\n },\n this.clearFeedback\n )\n )\n }\n fetch={this.props.fetch}\n >\n Отправить\n \n
\n
\n
\n );\n }\n}\n\nclass Faq extends Component {\n constructor(props) {\n super(props);\n this.state = {\n collapse: false,\n };\n }\n\n render() {\n return (\n
\n \n this.setState({ collapse: !this.state.collapse })\n }\n style={{ cursor: 'pointer' }}\n >\n {this.props.text}\n \n \n \n {this.props.description}\n \n \n
\n );\n }\n}\nconst mapStateToProps = (state) => ({\n fetch: state.fetch.fetch,\n});\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(SupportPage);\n","import { post } from '../../shared/lib/request-wrapper';\nimport { createNotification } from './notification';\nimport { URL } from 'src/app/config';\n\nexport function sendFeedback(params, callback) {\n return (dispatch) => {\n return post(URL.feedbackUrl, params)\n .then(() => {\n dispatch(\n createNotification(\n {\n title: 'Отправка сообщения',\n message: 'Отправка сообщения прошла успешно',\n },\n 'success'\n )\n );\n if (callback) callback();\n })\n .catch(() => {\n dispatch(\n createNotification(\n {\n title: 'Отправка сообщения',\n message: 'Ошибка отправки сообщения',\n },\n 'error'\n )\n );\n });\n };\n}\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setFilters } from 'src/redux/actions/table';\nimport { SearchField } from 'src/shared';\nimport { getClassName, localLoad, localSave } from 'src/shared/lib';\nimport { FiltersContainer } from 'src/widgets';\nimport styles from './styles.module.scss';\n\ninterface Props {\n pageTitle: string;\n}\n\nexport const BankUserFilter = ({ pageTitle }: Props) => {\n const queryName = getClassName('BankUserFilter', 'searchQuery');\n const searchQuery = useSelector(\n (state) => state.table?.[pageTitle]?.filters?.searchQuery\n );\n const dispatch = useDispatch();\n\n dispatch(setFilters(pageTitle, { searchQuery: localLoad(queryName, '') }));\n\n return (\n
\n \n {\n dispatch(\n setFilters(pageTitle, {\n searchQuery: value,\n })\n );\n localSave(queryName, value);\n }}\n />\n \n
\n );\n};\n","import React, { Component } from 'react';\nimport { Input, Modal, ModalBody, ModalHeader } from 'reactstrap';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\nimport { URL, BankRoles } from 'src/app/config';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport {\n isAdmin,\n isPermit,\n log,\n roleNameMapper,\n validateEmail,\n get,\n post,\n} from 'src/shared/lib';\nimport {\n Button,\n MultipleSelect,\n CheckBox,\n OverflowContainer,\n Paginator,\n AddIcon,\n} from 'src/shared/ui';\nimport { BankUserFilter } from './bank-user-filter';\n\nimport './bank-user-list-page.scss';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\nimport { createNotification } from 'src/redux/actions/notification';\n\nconst bankUserListTableName = 'BankUserList-Table';\n\nclass BankUserListPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.state = {\n id: undefined,\n bankBlocked: undefined,\n adminChecked: undefined,\n open_add_user: false,\n open_update_user: false,\n temporaryBlocked: false,\n fullName: '',\n email: '',\n emailIsValid: true,\n roles: [],\n };\n this.toggle_add_user = this.toggle_add_user.bind(this);\n this.toggle_update_user = this.toggle_update_user.bind(this);\n this.createBankUser = this.createBankUser.bind(this);\n this.permit = isPermit.bind(this);\n this.changeAdminChecked = this.changeAdminChecked.bind(this);\n }\n\n toggle_add_user() {\n this.setState({ fullName: '', email: '', roles: [] });\n this.setState({ open_add_user: !this.state.open_add_user });\n }\n\n toggle_update_user() {\n this.setState({ open_update_user: !this.state.open_update_user });\n }\n\n createBankUser() {\n post(URL.bankCreateUsersUrl, {\n fullName: this.state.fullName,\n email: this.state.email,\n roles: this.state.roles,\n })\n .then((r) => {\n this.setState({ open_add_user: false });\n this.props.dispatch(\n setNeedsUpdate(bankUserListTableName, true)\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Создание пользователя',\n message: 'Пользователь успешно создан',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_add_user: false });\n });\n }\n\n updateBankUser(id) {\n post(URL.bankUpdateUsersUrl + id, {\n fullName: this.state.fullName,\n email: this.state.email,\n bankBlocked: this.state.bankBlocked,\n roles: this.state.adminChecked\n ? [BankRoles.ADMIN]\n : isAdmin(this.state.roles)\n ? this.state.roles.filter((role) => role !== 'ADMIN')\n : this.state.roles,\n })\n .then((r) => {\n this.setState({ open_update_user: false });\n this.props.dispatch(\n setNeedsUpdate(bankUserListTableName, true)\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Редактирование пользователя',\n message: 'Пользователь успешно изменен',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_update_user: false });\n });\n }\n\n getUserInfo(id) {\n get(URL.getBankUserInfo + id)\n .then((r) => {\n let {\n id,\n email,\n fullName,\n bankBlocked,\n temporaryBlocked,\n roles,\n } = r.data.payload;\n\n this.setState(\n {\n id,\n bankBlocked,\n temporaryBlocked,\n fullName,\n email,\n roles,\n },\n () => {\n this.setState({\n adminChecked: !!isAdmin(this.state.roles),\n });\n }\n );\n this.setState({ open_update_user: true });\n })\n .catch((r) => {\n this.setState({ open_update_user: false });\n log(r);\n });\n }\n returnRoleAsObject(role) {\n return role.map((role) => {\n return {\n value: role,\n name: roleNameMapper(role),\n };\n });\n }\n\n changeAdminChecked() {\n this.setState({\n roles: !this.state.adminChecked ? [BankRoles.ADMIN] : [],\n adminChecked: !this.state.adminChecked,\n });\n }\n\n render() {\n let bankStandartRoles = this.returnRoleAsObject(\n Object.values(BankRoles)\n );\n\n return (\n
\n \n \n \n }\n >\n this.getUserInfo(e.ID)}\n />\n \n \n \n \n Добавить пользователя\n \n \n
\n \n this.setState({\n fullName: fio.target.value,\n })\n }\n value={this.state.fullName}\n placeholder={'Введите ФИО'}\n className=\"modal-input\"\n />\n {this.state.emailIsValid ||\n !this.state.email.length ? null : (\n \n Неправильный Email\n \n )}\n {\n this.setState(\n { email: email.target.value },\n () => {\n this.setState({\n emailIsValid: validateEmail(\n this.state.email\n ),\n });\n }\n );\n }}\n value={this.state.email}\n placeholder={'Введите email'}\n className=\"modal-input\"\n type=\"email\"\n />\n {isAdmin(this.props.roles) ? (\n
\n Администратор:\n \n \n \n
\n ) : null}\n {this.state.adminChecked ? null : (\n \n Роли\n role.value !== 'ADMIN'\n )}\n initialState={this.state.roles}\n onChange={(roles) =>\n this.setState({ roles })\n }\n />\n
\n )}\n \n Создать\n \n
\n \n \n \n \n {isAdmin(this.state.roles) && this.state.adminChecked\n ? isAdmin(this.props.roles)\n ? 'Редактирование Администратора'\n : 'Информация об Администраторе'\n : 'Редактирование Пользователя'}\n \n \n
\n
\n ID пользователя:\n {this.state.id}\n
\n
\n Блокировка:\n \n \n this.setState({\n bankBlocked:\n !this.state.bankBlocked,\n })\n }\n checked={this.state.bankBlocked}\n />\n \n
\n {this.state.temporaryBlocked ? (\n
\n Временно заблокирован\n
\n ) : null}\n \n this.setState({\n fullName: fio.target.value,\n })\n }\n value={this.state.fullName}\n placeholder={'Введите ФИО'}\n className=\"modal-input\"\n />\n \n this.setState({ email: email.target.value })\n }\n value={this.state.email}\n placeholder={'Введите email'}\n className=\"modal-input\"\n type=\"email\"\n />\n\n {isAdmin(this.props.roles) ? (\n
\n Администратор:\n \n \n this.setState({\n adminChecked:\n !this.state\n .adminChecked,\n })\n }\n checked={this.state.adminChecked}\n />\n \n
\n ) : null}\n {this.state.adminChecked ? null : (\n \n Роли\n option.value !== 'ADMIN'\n )}\n initialState={this.state.roles}\n onChange={(roles) =>\n this.setState({ roles })\n }\n />\n
\n )}\n\n \n this.updateBankUser(this.state.id)\n }\n >\n Сохранить\n \n \n
\n \n \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n auth: state.auth,\n fetch: state.fetch.fetch,\n roles: state.auth.roles,\n };\n}\n\nexport default connect(mapStateToProps)(BankUserListPage);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\nimport { URL } from 'src/app/config';\nimport AwareTable from 'src/components/AwareTable';\nimport { localLoad, sendToSubject } from 'src/shared/lib';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nimport './group-list-page.scss';\n\nclass GroupListPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n this.send({\n offset: localLoad('group-offset', 0),\n size: localLoad('group-range', 10),\n });\n };\n\n render() {\n return (\n
\n \n \n \n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default connect(mapStateToProps)(GroupListPage);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport { URL } from 'src/app/config';\n\nimport AwareTable from 'src/components/AwareTable';\nimport { getClassName, localLoad, localSave } from 'src/shared/lib';\nimport { OverflowContainer, SearchField, Paginator } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\nimport { setFilters } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\n\nconst tableName = 'Company-Table';\n\nclass CompanyListPage extends Component {\n render() {\n return (\n
\n \n\n \n \n \n \n \n
\n );\n }\n}\n\nconst CompanyFilter = connect(mapStateToProps)(\n class CompanyFilter extends Component {\n constructor(props) {\n super(props);\n this.queryName = getClassName(tableName, 'searchQuery');\n this.state = {\n searchQuery: localLoad(this.queryName, ''),\n };\n this.props.dispatch(\n setFilters(tableName, {\n searchQuery: localLoad(this.queryName, ''),\n })\n );\n }\n\n componentDidUpdate() {\n localSave(this.queryName, this.props.table?.filters?.searchQuery);\n }\n\n render() {\n return (\n
\n \n {\n this.props.dispatch(\n setFilters(tableName, {\n searchQuery: value,\n })\n );\n }}\n />\n \n
\n );\n }\n }\n);\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n table: state.table?.[tableName],\n };\n}\n\nexport default connect(mapStateToProps)(CompanyListPage);\n","import React, { Component } from 'react';\nimport { Table } from 'reactstrap';\nimport PropTypes from 'prop-types';\n\nclass LightTable extends Component {\n render() {\n return (\n \n \n \n {this.props.headers.map((header, idx) => (\n \n ))}\n \n \n \n {this.props.data && this.props.data.length ? (\n this.props.data.map((row, index) => (\n \n {row.map((column, idx) => (\n \n ))}\n \n ))\n ) : (\n \n \n \n )}\n \n
{header}
{column}
\n Данные не найдены\n
\n );\n }\n}\n\nLightTable.propTypes = {\n headers: PropTypes.arrayOf(PropTypes.string).isRequired,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n};\n\nexport default LightTable;\n","import { boolean, object, string } from 'yup';\nimport { validationMessages } from 'src/shared/lib';\n\nexport const schema = object({\n cashboxBlocked: boolean(),\n cashboxStatus: string(),\n groupCode: string().required(validationMessages.required),\n cashboxLogin: string().required(validationMessages.required),\n cashboxPassword: string().required(validationMessages.required),\n address: string().required(validationMessages.required),\n});\n","export const defaultValues = {\n cashboxBlocked: false,\n cashboxStatus: 'Активно',\n groupCode: '',\n address: '',\n cashboxLogin: '',\n cashboxPassword: ''\n};","import React, { Component } from 'react';\nimport { getClassName, localSave } from 'src/shared/lib';\nimport CompanySelect from '../../../components/CompanySelect';\nimport { NewCheckbox } from '../../../shared';\n\nimport './cashbox-with-roles.scss';\n\nclass CashBoxWithRoles extends Component {\n static title = 'cashbox-with-roles';\n static companyIds = 'companySelectId';\n static companySelect = 'companySelect';\n static companySelectList = 'companySelectList';\n constructor(props) {\n super(props);\n this.id = getClassName(\n CashBoxWithRoles.title,\n CashBoxWithRoles.companyIds\n );\n this.value = getClassName(\n CashBoxWithRoles.title,\n CashBoxWithRoles.companySelect\n );\n this.list = getClassName(\n CashBoxWithRoles.title,\n CashBoxWithRoles.companySelectList\n );\n const defaultRole =\n this.props.role && this.props.role.length\n ? this.props.role\n : this.props.isPlatform\n ? ['PLAT_FORM']\n : ['E_COMMERCE'];\n\n this.state = {\n cashBoxRole: [],\n companyIds: [],\n currentRole: defaultRole,\n };\n }\n\n componentWillUnmount() {\n this.componentUpdateLocal();\n }\n\n componentUpdateLocal() {\n localSave(this.id, undefined);\n localSave(this.value, undefined);\n localSave(this.list, undefined);\n }\n componentDidMount() {\n if (\n this.props.isPlatform &&\n this.props.idCompany &&\n this.props.idCompany.length\n ) {\n this.setState({\n companyIds: this.props.idCompany,\n });\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.onChange && this.needUpdate(prevState, this.state)) {\n const newUpdateState = {\n role: this.state.currentRole,\n companyIds: this.state.companyIds,\n };\n if (!this.state.companyIds.length) {\n this.componentUpdateLocal();\n }\n if (\n this.props.isPlatform &&\n !this.state.currentRole.includes('E_COMMERCE')\n ) {\n newUpdateState['companyIds'] = [];\n this.setState({\n companyIds: [],\n });\n this.componentUpdateLocal();\n }\n this.props.onChange(newUpdateState);\n }\n if (\n this.props.role &&\n (prevProps.role !== this.props.role ||\n prevProps.role.length !== this.props.role.length)\n ) {\n this.getCashboxRole();\n }\n }\n needUpdate(pre, cur) {\n return (\n pre.currentRole !== cur.currentRole ||\n pre.companyIds[0] !== cur.companyIds[0]\n );\n }\n\n getCashboxRole() {\n const newState = {\n currentRole: this.props.role,\n };\n this.setState(newState);\n }\n onChangeCheckBox(value) {\n let currentValue = this.state.currentRole;\n if (this.state.currentRole.includes(value)) {\n currentValue = currentValue.filter(\n (valueItem) => valueItem !== value\n );\n } else {\n currentValue = [...currentValue, value];\n }\n this.setState({\n currentRole: currentValue.length\n ? currentValue\n : this.props.isPlatform\n ? ['PLAT_FORM']\n : ['E_COMMERCE'],\n });\n }\n render() {\n return (\n
\n
РОЛИ:
\n
\n this.onChangeCheckBox('PLAT_FORM')}\n checked={this.state.currentRole?.includes('PLAT_FORM')}\n />\n
\n
\n this.onChangeCheckBox('E_COMMERCE')}\n checked={this.state.currentRole?.includes('E_COMMERCE')}\n />\n
\n {this.state.currentRole.includes('E_COMMERCE') &&\n this.props.isPlatform && (\n
\n
\n Закрепить за компанией:\n
\n
\n {\n this.setState({\n companyIds: value ? [value] : [],\n });\n }}\n />\n {this.props.isPlatform &&\n this.props.createUpdateError && (\n
\n Обязательное поле\n
\n )}\n
\n
\n )}\n
\n );\n }\n}\n\nexport default CashBoxWithRoles;\n","import React, { useEffect, useState } from 'react';\nimport {\n Modal,\n CheckBox,\n ModalField,\n Input,\n NewSelect,\n SelectOption,\n InputPassword,\n} from 'src/shared';\nimport { Controller, useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { URL } from 'src/app/config';\nimport { get, log, post, statusNameMapper } from 'src/shared/lib';\nimport { schema } from '../lib/validateScheme';\nimport { defaultValues } from '../model/consts';\nimport { FfdType, StateType } from '../model/types';\nimport { createNotification } from '../../../redux/actions/notification';\nimport { useDispatch } from 'react-redux';\nimport CashBoxWithRoles from '../../../pages/PlatformCashBoxPage/CashBoxWithRoles';\ninterface AddMerchantCashboxProps {\n company: {\n id: string;\n inn: string;\n };\n onClose: () => void;\n onUpdate: () => void;\n isOpen: boolean;\n}\n\nconst statuses: SelectOption[] = [\n { value: 'Активно', content: 'Активно' },\n { value: 'Выключено', content: 'Выключено' },\n];\n\n/**\n * @type {boolean}\n * В соответствии с задачей DPS-359 установить возможность\n * включения/выключения Мир/Обновленного вида создания кассы\n */\nconst IS_CASH_BOX = true;\n\nexport const AddMerchantCashbox = (props: AddMerchantCashboxProps) => {\n const { isOpen, onUpdate, company, onClose } = props;\n\n const dispatch = useDispatch();\n\n const { register, handleSubmit, control, formState, setValue, reset } =\n useForm({\n defaultValues,\n resolver: yupResolver(schema),\n });\n\n const [cashboxAvailableFfdList, setCashboxAvailableFfdList] = useState<\n FfdType[]\n >([]);\n const [ffdVersion, setFfdVersion] = useState('');\n const [isClosed, setIsClosed] = useState(false);\n const [role, setRole] = useState>([\n 'E_COMMERCE',\n ]);\n\n useEffect(() => {\n reset();\n if (!isOpen) setIsClosed(false);\n }, [isOpen, reset]);\n\n useEffect(() => {\n get(URL.getCashboxAvailableFfd)\n .then((r) => {\n if (r.data.payload) {\n setCashboxAvailableFfdList(r.data.payload);\n setFfdVersion(r.data.payload[0].version);\n }\n })\n .catch((r) => log(r));\n }, [setValue]);\n\n const submit = (values: StateType) => {\n const {\n cashboxStatus,\n cashboxBlocked,\n groupCode,\n address,\n cashboxLogin,\n cashboxPassword,\n } = values;\n const submitParams = {\n login: cashboxLogin,\n ffdVersion,\n password: cashboxPassword,\n status: statusNameMapper(cashboxStatus, 'en'),\n blocked: cashboxBlocked,\n innCompany: company.inn,\n groupCode,\n address,\n };\n if (IS_CASH_BOX) {\n submitParams['role'] = role;\n }\n post(URL.addCashbox + company.id, submitParams)\n .then(() => {\n onClose();\n onUpdate();\n dispatch(\n createNotification(\n {\n title: 'Создание кассы',\n message: 'Касса успешно создана',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n onClose();\n });\n setIsClosed(true);\n };\n\n return (\n \n \n setFfdVersion(value)}\n idScrollElement=\"modal-element-scroll\"\n options={cashboxAvailableFfdList.map((ffd) => ({\n value: ffd.version,\n content: ffd.nameFfd,\n }))}\n />\n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={statuses}\n />\n )}\n />\n \n \n (\n {\n field.onChange(!value);\n }}\n checked={field.value}\n />\n )}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n {IS_CASH_BOX && (\n {\n setRole(fields.role);\n }}\n />\n )}\n \n );\n};\n","import { number, object, string } from 'yup';\nimport { validationMessages } from 'src/shared/lib';\n\nexport const schema = object({\n defaultNotificationUrl: string().optional(),\n defaultNotificationEmail: string().optional(),\n idDefaultETerminal: string().required(validationMessages.required),\n passwordDefaultETerminal: string().required(validationMessages.required),\n merchantId: string().required(validationMessages.required),\n merchantName: string().required(validationMessages.required),\n merchantUrl: string().required(validationMessages.required),\n defaultSuccessUrl: string().required(validationMessages.required),\n defaultFailUrl: string().required(validationMessages.required),\n maxAmount: number()\n .typeError(validationMessages.shouldBeANumber)\n .required(validationMessages.required),\n});\n","import { StateType } from '../types';\n\nexport let defaultValues: StateType = {\n ecommkeyStatus: 'Активно',\n cashbox: '0',\n extEntityId: '',\n merchantIdSbp: '',\n account: '',\n merchantId: '',\n accAlias: '',\n defaultNotificationEmail: '',\n defaultNotificationUrl: '',\n maxAmount: '',\n notifyByEmail: false,\n allowWidgets: false,\n notifyByUrl: false,\n eCommKeyBlocked: false,\n cashboxRequired: false,\n merchantName: '',\n merchantUrl: '',\n defaultFailUrl: '',\n defaultSuccessUrl: '',\n idDefaultETerminal: '',\n timeZone: '+3',\n passwordDefaultETerminal: ''\n};\n","import React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { ControllerRenderProps } from 'react-hook-form/dist/types/controller';\nimport { get, log, post, timeZoneOptions } from 'src/shared/lib';\nimport {\n Modal,\n ModalField,\n Input,\n NewSelect,\n SelectOption,\n InputPassword,\n NewCheckbox,\n} from 'src/shared';\nimport { URL } from 'src/app/config';\nimport { schema } from '../../lib/validateScheme';\nimport { ICashbox, StateType } from '../../model/types';\nimport { defaultValues } from '../../model/consts';\nimport { createBody } from '../../lib/createBody';\nimport { AxiosResponse } from 'axios';\nimport './add-merchangs-key.scss';\n\ninterface AddKeyFormProps {\n isOpen: boolean;\n onUpdate: () => void;\n onClose: () => boolean;\n company: {\n hasSBPRole: boolean;\n pageId: string;\n id: string;\n };\n}\n\nconst statuses: SelectOption[] = [\n { value: 'Активно', content: 'Активно' },\n { value: 'Выключено', content: 'Выключено' },\n];\n\n/**\n * @type {boolean}\n * В соответствии с задачей DPS-359 установить возможность\n * включения/выключения Мир/Обновленного вида создания кассы\n */\nconst IS_MIR_PAY = true;\nexport const AddMerchantKeys = (props: AddKeyFormProps) => {\n const { company, isOpen, onClose, onUpdate } = props;\n\n const [showEmailInput, setShowEmailInput] = useState(false);\n const [showDefaultNotificationUrl, setShowDefaultNotificationUrl] =\n useState(false);\n const [ecomkeyCashboxes, setEcomkeyCashboxes] = useState([]);\n const [paymentType, setPaymentType] = useState(['CARD']);\n const [isClosed, setIsClosed] = useState(false);\n const [isIdTerminalMirError, setIsIdTerminalMirError] = useState(false);\n\n const {\n register,\n handleSubmit,\n setValue,\n control,\n formState: { errors },\n getValues,\n reset,\n } = useForm({\n defaultValues,\n resolver: yupResolver(schema),\n });\n\n useEffect(() => {\n reset();\n }, [isOpen, reset]);\n\n const updateCashbox = (response: AxiosResponse) => {\n const newEcomkeyCashboxes = [\n ...(!getValues().cashboxRequired\n ? [\n ...response.data.payload,\n {\n blocked: false,\n groupCode: 'без кассы',\n id: 0,\n },\n ]\n : response.data.payload),\n ];\n setEcomkeyCashboxes(newEcomkeyCashboxes);\n setValue('cashbox', `${newEcomkeyCashboxes[0].id}`);\n };\n\n useEffect(() => {\n get(URL.getEcommkeyCashboxes + company.pageId)\n .then((response) => {\n updateCashbox(response);\n })\n .catch((r) => log(r));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const submit = (values: StateType) => {\n const body = createBody(values, paymentType, company.id);\n if (\n body.paymentType.includes('MIR_PAY') &&\n !body?.mirPayTerminalId?.trim()\n ) {\n setIsIdTerminalMirError(true);\n return;\n }\n post(URL.addEcommkey + company.pageId, body)\n .then((r) => {\n onUpdate();\n })\n .catch((r) => {\n log(r);\n })\n .finally(() => {\n setIsClosed(true);\n setIsIdTerminalMirError(false);\n });\n };\n\n const onChangePaymentType = (selectedType: string) => () => {\n if (paymentType.includes(selectedType)) {\n const filterPayment = paymentType.filter(\n (pt) => pt !== selectedType\n );\n if (filterPayment.length) {\n return setPaymentType([...filterPayment]);\n } else {\n return setPaymentType(['CARD']);\n }\n }\n return setPaymentType([selectedType, ...paymentType]);\n };\n\n const onChangeCashboxRequired =\n (field: ControllerRenderProps) =>\n (value: boolean) => {\n field.onChange(value);\n const { cashbox } = getValues();\n const nextValue =\n cashbox === '' ? `${ecomkeyCashboxes[0].id}` : cashbox;\n if (value && Boolean(ecomkeyCashboxes.find(({ id }) => id === 0))) {\n setValue('cashbox', nextValue);\n setEcomkeyCashboxes(\n ecomkeyCashboxes.filter(({ id }) => id !== 0)\n );\n }\n if (!ecomkeyCashboxes.find(({ id }) => id === 0)) {\n setValue('cashbox', nextValue);\n setEcomkeyCashboxes([\n ...ecomkeyCashboxes,\n { blocked: false, groupCode: 'без кассы', id: 0 },\n ]);\n }\n };\n\n const onChangeIdTerminalMir = (event) => {\n const currentValue = event?.target?.value?.trim();\n if (isIdTerminalMirError && currentValue) {\n setIsIdTerminalMirError(false);\n }\n };\n\n const cashboxOptions = ecomkeyCashboxes.map((status) => ({\n value: `${status.id}`,\n content: status.groupCode,\n }));\n\n const timeSelectOptions = timeZoneOptions.map((timeZone) => ({\n value: `${timeZone.value}`,\n content: timeZone.text,\n }));\n\n return (\n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={statuses}\n />\n )}\n />\n \n \n (\n {\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {(paymentType?.includes('CARD') ||\n (paymentType?.includes('MIR_PAY') && IS_MIR_PAY)) && (\n <>\n \n \n \n \n \n \n \n )}\n \n (\n {\n onChangeCashboxRequired(field)(\n event.target.checked\n );\n }}\n checked={field.value}\n />\n )}\n />\n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={cashboxOptions}\n />\n )}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={timeSelectOptions}\n />\n )}\n />\n \n \n (\n {\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n \n \n \n \n (\n {\n setShowEmailInput(event.target.checked);\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {showEmailInput && (\n \n \n \n )}\n \n (\n {\n setShowDefaultNotificationUrl(\n event.target.checked\n );\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {showDefaultNotificationUrl && (\n \n \n \n )}\n {company.hasSBPRole && paymentType && (\n <>\n \n \n \n \n \n \n {paymentType?.includes('SBP') && company.hasSBPRole && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n )}\n {IS_MIR_PAY && (\n \n \n \n )}\n {paymentType?.includes('MIR_PAY') && IS_MIR_PAY && (\n <>\n \n \n \n \n \n \n \n \n {isIdTerminalMirError && (\n
\n Обязательное поле\n
\n )}\n
\n \n \n \n \n )}\n \n );\n};\n","import { StateType } from '../model/types';\nimport { statusNameMapper } from 'src/shared/lib';\nexport const createBody = (\n values: StateType,\n paymentType: string[],\n companyId: string\n) => {\n const {\n accAlias,\n account,\n allowWidgets,\n cashbox,\n cashboxRequired,\n defaultFailUrl,\n defaultNotificationEmail,\n defaultNotificationUrl,\n defaultSuccessUrl,\n eCommKeyBlocked,\n ecommkeyStatus,\n extEntityId,\n idDefaultETerminal,\n maxAmount,\n merchantId,\n merchantIdSbp,\n merchantName,\n merchantUrl,\n notifyByEmail,\n notifyByUrl,\n passwordDefaultETerminal,\n timeZone,\n mirPayKid,\n mirPayMerchantId,\n mirPayPrivateKey,\n mirPayTerminalId,\n } = values;\n return {\n status: statusNameMapper(ecommkeyStatus, 'en'),\n blocked: eCommKeyBlocked,\n ...(paymentType &&\n paymentType.includes('CARD') && {\n idDefaultETerminal,\n passwordDefaultETerminal,\n }),\n company: companyId,\n cashboxRequired,\n cashbox: parseInt(cashbox, 10),\n merchantId,\n merchantName,\n merchantUrl,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n timeZone,\n allowWidgets,\n maxAmount: parseInt(maxAmount, 10),\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n paymentType,\n mirPayKid,\n mirPayMerchantId,\n mirPayTerminalId,\n mirPayPrivateKey: mirPayPrivateKey,\n ...(paymentType.includes('SBP') && {\n extEntityId,\n merchantIdSbp,\n accAlias,\n account,\n }),\n };\n};\n","import { number, object, string } from 'yup';\nimport { validationMessages } from 'src/shared/lib';\n\nexport const schema = object({\n defaultFailUrl: string().required(validationMessages.required),\n maxAmount: number()\n .typeError(validationMessages.shouldBeANumber)\n .required(validationMessages.required),\n});\n","import { EditMerchantKeysState } from '../model/types/EditMerchantKeysState';\nimport { InitialData } from '../model/types/InitialData';\n\nexport let getDefaultValues = (\n initialData: InitialData\n): EditMerchantKeysState => {\n const {\n accAlias = '',\n account = '',\n extEntityId = '',\n merchantIdSbp = '',\n cashbox,\n maxAmount,\n mirPayKid = '',\n mirPayMerchantId = '',\n mirPayPrivateKey = '',\n mirPayTerminalId = '',\n ...rest\n } = initialData;\n\n return {\n accAlias,\n account,\n extEntityId,\n merchantIdSbp,\n cashbox: String(cashbox),\n maxAmount: String(maxAmount),\n mirPayKid,\n mirPayMerchantId,\n mirPayPrivateKey,\n mirPayTerminalId,\n ...rest,\n };\n};\n","import React, { useEffect, useState } from 'react';\nimport { AxiosResponse } from 'axios';\nimport { Controller, useForm } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { ControllerRenderProps } from 'react-hook-form/dist/types/controller';\nimport {\n Input,\n InputPassword,\n ModalField,\n NewCheckbox,\n Modal,\n NewSelect,\n SelectOption,\n} from 'src/shared';\nimport {\n get,\n getOptionsForSelect,\n log,\n post,\n timeZoneOptions,\n} from 'src/shared/lib';\nimport { URL } from 'src/app/config';\nimport { ICashbox } from '../../add-merchants-key/model/types';\nimport { schema } from '../lib/validateScheme';\nimport { EditMerchantKeysState } from '../model/types/EditMerchantKeysState';\nimport { InitialData } from '../model/types/InitialData';\nimport { getDefaultValues } from '../lib/getDefaultValues';\nimport { createBody } from '../lib/createBody';\nimport './edit-merchant-keys.scss';\n\ninterface Props {\n isOpen: boolean;\n onClose: () => void;\n onUpdate: () => void;\n initialData: InitialData;\n company: {\n id: string;\n pageId: string;\n hasSBPRole: boolean;\n };\n}\n\nconst statuses: SelectOption[] = [\n { value: 'Активно', content: 'Активно' },\n { value: 'Выключено', content: 'Выключено' },\n];\n\n/**\n * В соответствии с задачей DPS-359 установить возможность\n * включения/выключения Мир/Обновленного вида создания кассы\n */\nconst IS_MIR_PAY = true;\n\n/**\n * TODO: удалить данную переменную после тестирования со стороны заказчика\n */\nconst IS_PAYMENT_TO_INCLUDE = true;\n\nexport const EditMerchantKeys = (props: Props) => {\n const { isOpen, company, initialData, onClose, onUpdate } = props;\n const [paymentType, setPaymentType] = useState(\n initialData.paymentType || ['CARD']\n );\n const [isClosed, setIsClosed] = useState(false);\n const [ecomkeyCashboxes, setEcomkeyCashboxes] = useState([]);\n const [showEmailInput, setShowEmailInput] = useState(\n initialData.notifyByEmail\n );\n const [showDefaultNotificationUrl, setShowDefaultNotificationUrl] =\n useState(initialData.notifyByUrl);\n const [isIdTerminalMirError, setIsIdTerminalMirError] = useState(false);\n\n const {\n register,\n handleSubmit,\n setValue,\n control,\n formState: { errors },\n getValues,\n reset,\n } = useForm({\n defaultValues: getDefaultValues(initialData),\n resolver: yupResolver(schema),\n });\n\n const onChangePaymentType = (selectedType: string) => () => {\n if (paymentType.includes(selectedType)) {\n const filterPayment = paymentType.filter(\n (pt) => pt !== selectedType\n );\n if (filterPayment.length) {\n return setPaymentType([...filterPayment]);\n } else {\n return setPaymentType(['CARD']);\n }\n }\n return setPaymentType([selectedType, ...paymentType]);\n };\n\n const onChangeCashboxRequired = (\n field: ControllerRenderProps\n ) => {\n return (value: boolean) => {\n field.onChange(value);\n const { cashbox } = getValues();\n const nextValue =\n cashbox === '' ? `${ecomkeyCashboxes[0].id}` : cashbox;\n if (value && Boolean(ecomkeyCashboxes.find(({ id }) => id === 0))) {\n setValue('cashbox', nextValue);\n setEcomkeyCashboxes(\n ecomkeyCashboxes.filter(({ id }) => id !== 0)\n );\n }\n if (!ecomkeyCashboxes.find(({ id }) => id === 0)) {\n setValue('cashbox', nextValue);\n setEcomkeyCashboxes([\n ...ecomkeyCashboxes,\n { blocked: false, groupCode: 'без кассы', id: 0 },\n ]);\n }\n };\n };\n\n const submit = (values: EditMerchantKeysState): void => {\n const body = createBody(values, paymentType, initialData.key);\n if (\n body.paymentType.includes('MIR_PAY') &&\n !body?.mirPayTerminalId?.trim()\n ) {\n setIsIdTerminalMirError(true);\n return;\n }\n post(`${URL.updateEcommkey}${initialData.key}`, body)\n .then((r) => {\n onUpdate();\n })\n .catch((r) => {\n log(r);\n })\n .finally(() => {\n setIsClosed(true);\n setIsIdTerminalMirError(false);\n });\n };\n\n const updateCashbox = (response: AxiosResponse) => {\n const newEcomkeyCashboxes = [\n ...(!getValues().cashboxRequired\n ? [\n ...response.data.payload,\n {\n blocked: false,\n groupCode: 'без кассы',\n id: 0,\n },\n ]\n : response.data.payload),\n ];\n setEcomkeyCashboxes(newEcomkeyCashboxes);\n };\n const onChangeIdTerminalMir = (event) => {\n const currentValue = event?.target?.value?.trim();\n if (isIdTerminalMirError && currentValue) {\n setIsIdTerminalMirError(false);\n }\n };\n\n useEffect(() => {\n get(URL.getEcommkeyCashboxes + company.pageId)\n .then((response) => {\n updateCashbox(response);\n })\n .catch((r) => log(r));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n reset();\n }, [isOpen, reset]);\n\n return (\n \n \n {initialData.key}\n \n {initialData?.mcc && IS_PAYMENT_TO_INCLUDE && (\n \n {initialData.mcc}\n \n )}\n \n \n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={statuses}\n />\n )}\n />\n \n \n (\n {\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {(paymentType?.includes('CARD') ||\n (paymentType?.includes('MIR_PAY') && IS_MIR_PAY)) && (\n <>\n \n \n \n \n \n \n \n )}\n \n (\n {\n onChangeCashboxRequired(field)(\n event.target.checked\n );\n }}\n checked={field.value}\n />\n )}\n />\n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={getOptionsForSelect(\n ecomkeyCashboxes,\n 'id',\n 'groupCode'\n )}\n />\n )}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n {\n field.onChange(value);\n }}\n idScrollElement=\"modal-element-scroll\"\n options={getOptionsForSelect(\n timeZoneOptions,\n 'value',\n 'text'\n )}\n />\n )}\n />\n \n \n (\n {\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n \n \n \n \n (\n {\n setShowEmailInput(event.target.checked);\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {showEmailInput && (\n \n \n \n )}\n \n (\n {\n setShowDefaultNotificationUrl(\n event.target.checked\n );\n field.onChange(event.target.checked);\n }}\n checked={field.value}\n />\n )}\n />\n \n {showDefaultNotificationUrl && (\n \n \n \n )}\n {company.hasSBPRole && paymentType && (\n <>\n \n \n \n \n \n \n {paymentType?.includes('SBP') && company.hasSBPRole && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n )}\n {IS_MIR_PAY && (\n \n \n \n )}\n {paymentType?.includes('MIR_PAY') && IS_MIR_PAY && (\n <>\n \n \n \n \n \n \n \n \n {isIdTerminalMirError && (\n
\n Обязательное поле\n
\n )}\n
\n \n \n \n \n )}\n \n );\n};\n","import { statusNameMapper } from 'src/shared/lib';\nimport { EditMerchantKeysState } from '../model/types/EditMerchantKeysState';\n\nexport const createBody = (\n values: EditMerchantKeysState,\n paymentType: string[],\n company: string\n) => {\n const {\n ecommkeyStatus,\n eCommKeyBlocked: blocked,\n idDefaultETerminal,\n passwordDefaultETerminal,\n cashbox,\n maxAmount,\n extEntityId,\n merchantIdSbp,\n accAlias,\n account,\n mirPayKid,\n mirPayMerchantId,\n mirPayPrivateKey,\n mirPayTerminalId,\n ...rest\n } = values;\n\n return {\n ...rest,\n company,\n blocked,\n paymentType,\n status: statusNameMapper(ecommkeyStatus, 'en'),\n cashbox: +cashbox === 0 ? null : +cashbox,\n maxAmount: +maxAmount,\n mirPayKid,\n mirPayMerchantId,\n mirPayTerminalId,\n mirPayPrivateKey: mirPayPrivateKey,\n ...(paymentType.includes('CARD') && {\n idDefaultETerminal,\n passwordDefaultETerminal,\n }),\n ...(paymentType.includes('SBP') && {\n extEntityId,\n merchantIdSbp,\n accAlias,\n account,\n }),\n };\n};\n","import React, { Component } from 'react';\nimport { omit } from 'lodash';\nimport { connect } from 'react-redux';\nimport MaskedInput from 'react-maskedinput';\nimport { withRouter } from 'react-router-dom';\nimport {\n Input,\n ListGroup,\n ListGroupItem,\n Modal,\n ModalBody,\n ModalHeader,\n} from 'reactstrap';\nimport { ReplaySubject } from 'rxjs';\nimport { URL, navRoutes, Roles } from 'src/app/config';\nimport { createNotification } from 'src/redux/actions/notification';\nimport Container from 'src/components/Container';\nimport AwareTable from 'src/components/AwareTable';\nimport LightTable from 'src/components/LightTable';\nimport CompanySelect from 'src/components/CompanySelect';\nimport {\n localLoad,\n getClassName,\n log,\n roleNameMapper,\n sendToSubject,\n statusNameMapper,\n validateEmail,\n get,\n post,\n localSave,\n isPermit,\n LOCAL_STORAGE_TABLE_NAMES,\n} from 'src/shared/lib';\nimport {\n CardIcon,\n mir,\n visa,\n mc,\n CirrusIcon,\n Button,\n CheckBox,\n MultipleSelect,\n Paginator,\n OverflowContainer,\n AddIcon,\n} from 'src/shared/ui';\nimport { AddMerchantCashbox } from 'src/features/add-merchant-cashbox';\nimport { AddMerchantKeys } from 'src/features/add-merchants-key';\nimport { EditMerchantKeys } from 'src/features/edit-merchant-keys';\nimport './company-details.scss';\nimport CashBoxWithRoles from '../PlatformCashBoxPage/CashBoxWithRoles';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\nimport { EinvoiceTable } from 'src/widgets/einvoice-table';\nimport EinvoiceFilter from '../BankEinvoicePage/EinvoiceFilter';\nimport { BankQRCodeTypeOptions } from 'src/shared/lib/util';\n\n/**\n * В соответствии с задачей DPS-359 установить возможность\n * включения/выключения Мир/Обновленного вида создания кассы\n */\nconst IS_CASH_BOX = true;\nconst IS_MIR_PAY = true;\n\n/**\n * TODO: удалить данную переменную после тестирования со стороны заказчика\n */\nconst IS_PAYMENT_TO_INCLUDE = true;\n\nconst terminalsTableName = 'Company-Details-Terminals';\nconst cashboxesTableName = 'Company-Details-Cashboxes';\nconst usersTableName = 'Company-Details-Users';\nconst linkedCompaniesTableName = 'Company-Details-Linked-Companies';\nconst merchantKeysTableName = 'Company-Details-Merchant-Keys';\n\nclass CompanyDetailsPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.clsName = 'OperationsFilter';\n this.mainCompanyId = getClassName(this.clsName, 'mainCompanyId');\n this.subCompanyId = getClassName(this.clsName, 'subCompanyId');\n this.send = sendToSubject.bind(this);\n this.defaultFilter = {\n mainCompanyId: localLoad(this.mainCompanyId),\n subCompanyId: localLoad(this.subCompanyId),\n };\n this.cashbox = {\n defCashbox: '',\n companyName: '',\n groupCode: '',\n cashboxId: '',\n idCompany: '',\n cashboxLogin: '',\n cashboxPassword: '',\n cashboxStatus: 'Активно',\n cashboxBlocked: false,\n address: '',\n };\n if (IS_CASH_BOX) {\n this.cashbox['role'] = ['E_COMMERCE'];\n }\n this.cashboxFields = {\n cashboxChecked: true,\n cashboxFields: {\n cashboxLogin: null,\n cashboxPassword: null,\n address: null,\n groupCode: null,\n },\n };\n\n this.ecomKeys = {\n key: '',\n ecommkeyStatus: 'Активно',\n eCommKeyBlocked: false,\n idDefaultETerminal: '',\n passwordDefaultETerminal: '',\n created: '',\n company: '',\n cashboxRequired: false,\n cashbox: undefined,\n password: '',\n merchantId: '',\n merchantName: '',\n merchantUrl: '',\n defaultNotificationUrl: '',\n defaultSuccessUrl: '',\n defaultFailUrl: '',\n timeZone: '+3',\n allowWidgets: false,\n maxAmount: '',\n defaultNotificationEmail: '',\n notifyByEmail: false,\n notifyByUrl: false,\n paymentType: ['CARD'],\n extEntityId: '',\n merchantIdSbp: '',\n accAlias: '',\n account: '',\n };\n this.ecomKeyFields = {\n ecomKeysChecked: true,\n ecomKeyFields: {\n idDefaultETerminal: null,\n passwordDefaultETerminal: null,\n\n merchantId: null,\n merchantName: null,\n merchantUrl: null,\n defaultSuccessUrl: null,\n defaultFailUrl: null,\n maxAmount: null,\n defaultNotificationUrl: true,\n defaultNotificationEmail: true,\n\n extEntityId: null,\n merchantIdSbp: null,\n\n account: null,\n accAlias: null,\n },\n };\n this.state = {\n ...this.defaultFilter,\n ...this.ecomKeys,\n ...this.ecomKeyFields,\n ...this.cashbox,\n ...this.cashboxFields,\n id: undefined,\n bankBlocked: undefined,\n statusName: undefined,\n open_add_user: false,\n open_update_user: false,\n open_update_company_role: false,\n open_terminal_info: false,\n open_user_history: false,\n open_add_ecommKey: false,\n open_update_ecommKey: false,\n open_add_cashbox: false,\n open_update_cashbox: false,\n fullName: '',\n email: '',\n cellPhone: '',\n roles: [],\n cashboxAvailableFfdList: [],\n userHistory: [],\n info: undefined,\n bankStandartRoles: [],\n showHistory: false,\n uid: '',\n name: '',\n operationLimit: '',\n extraCommission: '',\n simCommission: '',\n weekLimit: '',\n limitEndOfWeek: '',\n rates: [],\n ecomkeyCashboxes: [],\n emailIsValid: true,\n statuses: ['Активно', 'Выключено'],\n activateEcomm: true,\n activateEcommStatus: true,\n reassignIdCompany: undefined,\n };\n if (IS_MIR_PAY) {\n this.state['mirPayKid'] = '';\n this.state['mirPayMerchantId'] = '';\n this.state['mirPayPrivateKey'] = '';\n this.state['mirPayTerminalId'] = '';\n }\n this.toggle_add_user = this.toggle_add_user.bind(this);\n this.toggle_update_user = this.toggle_update_user.bind(this);\n this.toggle_user_history = this.toggle_user_history.bind(this);\n this.createCompanyUser = this.createCompanyUser.bind(this);\n this.toggle_show_terminal_info =\n this.toggle_show_terminal_info.bind(this);\n }\n\n handleChange =\n (key) =>\n ({ target }) =>\n this.setState({\n ecomKeyFields: {\n ...this.state.ecomKeyFields,\n [key]: !target.value ? false : true,\n },\n [key]: target.value,\n });\n\n handleSBPOptionalChange =\n (key) =>\n ({ target }) => {\n this.setState({\n ecomKeyFields: {\n ...this.state.ecomKeyFields,\n ...{\n account:\n Boolean(target.value) ||\n Boolean(\n this.state.accAlias &&\n this.state.accAlias.length\n ),\n accAlias:\n Boolean(target.value) ||\n Boolean(\n this.state.account && this.state.account.length\n ),\n },\n },\n [key]: target.value,\n });\n };\n\n handlePaymentType =\n (selectedPmType, editingMode = false) =>\n () => {\n const { paymentType } = this.state;\n\n this.setState(\n {\n paymentType: [\n ...(paymentType.includes(selectedPmType)\n ? paymentType.length === 2\n ? paymentType.filter(\n (pt) => pt !== selectedPmType\n )\n : [...paymentType]\n : [...paymentType, selectedPmType]),\n ],\n },\n () => {\n editingMode\n ? this.handleEditingEcommFields()\n : this.handleEcommFields();\n }\n );\n };\n\n selectAllPaymentTypes = (editingMode = false) => {\n const { paymentType } = this.state;\n this.setState(\n {\n paymentType: [\n ...(paymentType.length === 2\n ? paymentType.filter((pt) => pt !== 'SBP')\n : ['SBP', 'CARD']),\n ],\n },\n () => {\n editingMode\n ? this.handleEditingEcommFields()\n : this.handleEcommFields();\n }\n );\n };\n\n saveAndSend() {\n post(URL.subCompanySetUrl, {\n mainCompanyId: this.state.mainCompanyId,\n subCompanyId: this.state.subCompanyId,\n })\n .then(() => {\n this.props.dispatch(\n setNeedsUpdate(\n linkedCompaniesTableName + this.props.match.params.id,\n true\n )\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Добавление связанной компании',\n message: 'Связанная компания успешно добавлена',\n },\n 'success'\n )\n );\n })\n .catch((r) => log(r))\n .finally(() => this.setState({ open_add_sub_group: false }));\n }\n\n cardIconSelect = (cardName) => {\n return {\n МИР: mir,\n VISA: visa,\n MasterCard: mc,\n 'Cirrus/Maestro': CirrusIcon,\n 'КАРТЫ СДМ-БАНКА': CardIcon,\n }[cardName];\n };\n\n deleteRequest(mainCompanyId, subCompanyId) {\n post(URL.subCompanyRemoveUrl, {\n mainCompanyId: Number(mainCompanyId),\n subCompanyId: Number(subCompanyId),\n })\n .then(() => {\n this.props.dispatch(\n setNeedsUpdate(\n linkedCompaniesTableName + this.props.match.params.id,\n true\n )\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Удаление связанной компании',\n message: 'Связанная компания успешно удалена',\n },\n 'success'\n )\n );\n })\n .catch((r) => log(r));\n }\n\n toggle_add_user() {\n this.setState({ fullName: '', email: '', cellPhone: '' });\n this.setState({ open_add_user: !this.state.open_add_user });\n }\n\n toggle_show_terminal_info() {\n this.setState({ open_terminal_info: !this.state.open_terminal_info });\n }\n\n toggleSubCompany({ name }) {\n this.setState({ [name]: !this.state[name] });\n }\n\n toggle_update_company_role() {\n this.setState({\n open_update_company_role: !this.state.open_update_company_role,\n });\n }\n\n toggle_update_user() {\n this.setState({ open_update_user: !this.state.open_update_user });\n }\n\n toggle_user_history() {\n this.setState({\n open_user_history: !this.state.open_user_history,\n showHistory: !this.state.showHistory,\n });\n }\n\n componentDidMount() {\n /* hidden feature to request and turn on/off merchant status */\n // this.getEcommStatus();\n this.getCompanyInfo();\n this.getCashboxAvailableFfd();\n this.handleEcommFields();\n }\n\n getTerminalInfo(id) {\n get(URL.terminalInfo + id)\n .then((r) => {\n this.setState({\n uid: r.data.payload.uid,\n name: r.data.payload.name,\n operationLimit: r.data.payload.operationLimit,\n weekLimit: r.data.payload.weekLimit,\n limitEndOfWeek: r.data.payload.limitEndOfWeek,\n extraCommission: r.data.payload.extraCommission,\n simCommission: r.data.payload.simCommission,\n rates: r.data.payload.rates,\n });\n })\n .catch((r) => log(r));\n }\n\n /*ecommKey */\n\n toggle_add_ecommKey = () => {\n this.setState(\n {\n ...this.ecomKeys,\n ecomKeysChecked: true,\n ecomKeyFields: { ...this.ecomKeyFields.ecomKeyFields },\n },\n () => {\n this.handleEcommFields();\n }\n );\n this.setState({\n open_add_ecommKey: !this.state.open_add_ecommKey,\n });\n };\n\n toggle_update_ecommKey = () => {\n this.setState({\n open_update_ecommKey: !this.state.open_update_ecommKey,\n });\n };\n\n getEcommKey(id) {\n return get(URL.getEcommkeyInfo + id)\n .then(\n (r) => {\n const {\n key,\n status,\n blocked,\n idDefaultETerminal,\n passwordDefaultETerminal,\n created,\n company,\n cashboxRequired,\n cashbox,\n password,\n merchantId,\n merchantName,\n merchantUrl,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n timeZone,\n allowWidgets,\n maxAmount,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n paymentType,\n } = r.data.payload;\n\n const newState = {\n key,\n ecommkeyStatus: statusNameMapper(status, 'ru'),\n eCommKeyBlocked: blocked,\n idDefaultETerminal,\n passwordDefaultETerminal,\n created,\n company,\n cashboxRequired,\n cashbox,\n password,\n merchantId,\n merchantName,\n merchantUrl,\n defaultNotificationUrl,\n defaultSuccessUrl,\n defaultFailUrl,\n timeZone,\n allowWidgets,\n maxAmount,\n defaultNotificationEmail,\n notifyByEmail,\n notifyByUrl,\n paymentType,\n // ...(r.data.payload.paymentType.includes(\"SBP\"))?\n // {\n extEntityId: r.data.payload.extEntityId,\n merchantIdSbp: r.data.payload.merchantIdSbp,\n accAlias: r.data.payload.accAlias,\n account: r.data.payload.account,\n // }\n // :\n // {\n // extEntityId:'',\n // merchantIdSbp:'',\n // accAlias:'',\n // account:''\n // }\n ecomKeyFields: {\n ...this.state.ecomKeyFields,\n\n idDefaultETerminal: true,\n passwordDefaultETerminal: true,\n\n merchantId: Boolean(merchantId),\n merchantName: Boolean(merchantName),\n merchantUrl: Boolean(merchantUrl),\n defaultSuccessUrl: Boolean(defaultSuccessUrl),\n defaultFailUrl: Boolean(defaultFailUrl),\n maxAmount: Boolean(maxAmount),\n\n defaultNotificationUrl: true,\n defaultNotificationEmail: true,\n\n extEntityId: true,\n merchantIdSbp: true,\n account: true,\n accAlias: true,\n },\n };\n if (IS_MIR_PAY) {\n newState['mirPayKid'] = r.data.payload.mirPayKid;\n newState['mirPayMerchantId'] =\n r.data.payload.mirPayMerchantId;\n newState['mirPayPrivateKey'] =\n r.data.payload.mirPayPrivateKey;\n newState['mirPayTerminalId'] =\n r.data.payload.mirPayTerminalId;\n }\n if (IS_PAYMENT_TO_INCLUDE) {\n newState['mcc'] = r.data.payload?.mcc;\n }\n\n this.setState(newState);\n },\n () => {\n this.handleEditingEcommFields();\n }\n )\n .catch((r) => log(r));\n }\n\n getEcommKeyCashbox = () => {\n return get(URL.getEcommkeyCashboxes + this.props.match.params.id)\n .then((r) => {\n this.setState({\n ecomkeyCashboxes: [\n ...(!this.state.cashboxRequired\n ? [\n ...r.data.payload,\n {\n blocked: false,\n groupCode: 'без кассы',\n id: 0,\n },\n ]\n : r.data.payload),\n ],\n // cashbox: r.data.payload[0].id\n });\n })\n .catch((r) => log(r));\n };\n\n /*cashbox */\n\n toggle_add_cashbox = () => {\n this.setState({\n ...this.cashbox,\n cashboxChecked: true,\n cashboxFields: { ...this.cashboxFields.cashboxFields },\n open_add_cashbox: !this.state.open_add_cashbox,\n });\n };\n\n toggle_update_cashbox = () => {\n this.setState({\n cashboxChecked: true,\n cashboxFields: {\n ...this.cashboxFields.cashboxFields,\n groupCode: true,\n },\n open_update_cashbox: !this.state.open_update_cashbox,\n });\n this.resetLocalReassignSelect();\n };\n\n updateCashbox = (id) => {\n const {\n cashboxLogin,\n cashboxPassword,\n cashboxStatus,\n cashboxBlocked,\n idCompany,\n groupCode,\n address,\n reassignIdCompany,\n ffdVersion,\n } = this.state;\n const paramsReq = {\n login: cashboxLogin,\n password: cashboxPassword,\n status: statusNameMapper(cashboxStatus, 'en'),\n blocked: cashboxBlocked,\n idCompany,\n ffdVersion,\n groupCode,\n address,\n reassignIdCompany,\n };\n if (IS_CASH_BOX) {\n paramsReq['role'] = this.state.role;\n }\n\n post(URL.updateCashbox + id, paramsReq)\n .then((r) => {\n this.setState({ open_update_cashbox: false });\n this.props.dispatch(\n setNeedsUpdate(\n cashboxesTableName + this.props.match.params.id,\n true\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_update_cashbox: false });\n })\n .finally(() => {\n this.resetLocalReassignSelect();\n });\n };\n\n resetLocalReassignSelect() {\n const id = 'OperationsFilter-companySelectId';\n const value = 'OperationsFilter-companySelect';\n const list = 'OperationsFilter-companySelectList';\n localSave(id, undefined);\n localSave(value, undefined);\n localSave(list, undefined);\n }\n\n getCashbox(id) {\n get(URL.getaCashboxInfo + id)\n .then((r) => {\n const {\n blocked,\n companyName,\n groupCode,\n id,\n address,\n idCompany,\n login,\n password,\n status,\n ffdVersion,\n } = r.data.payload;\n const newState = {\n cashboxBlocked: blocked,\n companyName,\n groupCode,\n ffdVersion,\n cashboxId: id,\n idCompany,\n reassignIdCompany: idCompany,\n currentReassignIdCompany: idCompany,\n cashboxLogin: login,\n cashboxPassword: password,\n address,\n cashboxStatus: statusNameMapper(status, 'ru'),\n cashboxChecked: true,\n cashboxFields: {\n ...this.cashboxFields.cashboxFields,\n groupCode: true,\n },\n open_update_cashbox: !this.state.open_update_cashbox,\n };\n if (IS_CASH_BOX) {\n newState['role'] = r.data.payload.role;\n }\n this.setState(newState);\n })\n .catch((r) => log(r));\n }\n\n returnRoleAsObject(role) {\n return role.map((role) => {\n return {\n value: role,\n name: roleNameMapper(role),\n };\n });\n }\n\n handleEcommFields = () => {\n const {\n idDefaultETerminal,\n passwordDefaultETerminal,\n\n extEntityId,\n merchantIdSbp,\n account,\n accAlias,\n } = this.state.ecomKeyFields;\n const res = this.state.ecomKeyFields;\n\n if (this.state.paymentType.length > 1) {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...this.state.ecomKeyFields,\n idDefaultETerminal: Boolean(idDefaultETerminal),\n passwordDefaultETerminal: Boolean(passwordDefaultETerminal),\n\n extEntityId: Boolean(extEntityId),\n merchantIdSbp: Boolean(merchantIdSbp),\n account: Boolean(account),\n accAlias: Boolean(accAlias),\n },\n });\n } else {\n if (this.state.paymentType[0] === 'SBP') {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...omit(\n res,\n 'idDefaultETerminal',\n 'passwordDefaultETerminal'\n ),\n extEntityId: Boolean(extEntityId),\n merchantIdSbp: Boolean(merchantIdSbp),\n account: Boolean(account),\n accAlias: Boolean(accAlias),\n },\n });\n }\n\n if (this.state.paymentType[0] === 'CARD') {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...omit(\n res,\n 'extEntityId',\n 'merchantIdSbp',\n 'account',\n 'accAlias'\n ),\n idDefaultETerminal: Boolean(idDefaultETerminal),\n passwordDefaultETerminal: Boolean(\n passwordDefaultETerminal\n ),\n },\n });\n }\n }\n };\n\n handleEditingEcommFields = () => {\n const {\n idDefaultETerminal,\n passwordDefaultETerminal,\n\n extEntityId,\n merchantIdSbp,\n account,\n accAlias,\n } = this.state;\n\n const res = this.state.ecomKeyFields;\n\n if (this.state.paymentType.length > 1) {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...this.state.ecomKeyFields,\n idDefaultETerminal: Boolean(idDefaultETerminal),\n passwordDefaultETerminal: Boolean(passwordDefaultETerminal),\n\n extEntityId: Boolean(extEntityId),\n merchantIdSbp: Boolean(merchantIdSbp),\n account: Boolean(account ? account : accAlias),\n accAlias: Boolean(accAlias ? accAlias : account),\n },\n });\n } else {\n if (this.state.paymentType[0] === 'SBP') {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...omit(\n res,\n 'idDefaultETerminal',\n 'passwordDefaultETerminal'\n ),\n extEntityId: Boolean(extEntityId),\n merchantIdSbp: Boolean(merchantIdSbp),\n account: Boolean(account ? account : accAlias),\n accAlias: Boolean(accAlias ? accAlias : account),\n },\n });\n }\n\n if (this.state.paymentType[0] === 'CARD') {\n this.setState({\n ...this.state,\n ecomKeyFields: {\n ...omit(\n res,\n 'extEntityId',\n 'merchantIdSbp',\n 'account',\n 'accAlias'\n ),\n idDefaultETerminal: Boolean(idDefaultETerminal),\n passwordDefaultETerminal: Boolean(\n passwordDefaultETerminal\n ),\n },\n });\n }\n }\n };\n\n hideForm = () => {\n this.setState({\n open_add_cashbox: false,\n open_add_ecommKey: false,\n });\n };\n\n hideEditMerchantKeysForm = () => {\n this.setState({\n open_update_ecommKey: false,\n });\n };\n\n sendEcomKeysForceRequest = () => {\n this.props.dispatch(\n setNeedsUpdate(\n merchantKeysTableName + this.props.match.params.id,\n true\n )\n );\n };\n\n onSuccessCashboxAction = () => {\n this.props.dispatch(\n setNeedsUpdate(\n cashboxesTableName + this.props.match.params.id,\n true\n )\n );\n };\n\n getCashboxAvailableFfd() {\n get(URL.getCashboxAvailableFfd)\n .then((r) => {\n this.setState({\n ffdVersion: r.data.payload[0].version,\n cashboxAvailableFfdList: r.data.payload,\n });\n })\n .catch((r) => log(r));\n }\n\n getInitialDataForMerchantKey = () => {\n const initialDataMerchant = {\n key: this.state.key,\n cashbox: this.state.cashbox,\n password: this.state.password,\n ecommkeyStatus: this.state.ecommkeyStatus,\n maxAmount: this.state.maxAmount,\n extEntityId: this.state.extEntityId,\n merchantIdSbp: this.state.merchantIdSbp,\n account: this.state.account,\n accAlias: this.state.accAlias,\n merchantId: this.state.merchantId,\n merchantName: this.state.merchantName,\n idDefaultETerminal: this.state.idDefaultETerminal,\n timeZone: this.state.timeZone,\n merchantUrl: this.state.merchantUrl,\n defaultNotificationUrl: this.state.defaultNotificationUrl,\n defaultNotificationEmail: this.state.defaultNotificationEmail,\n defaultSuccessUrl: this.state.defaultSuccessUrl,\n defaultFailUrl: this.state.defaultFailUrl,\n passwordDefaultETerminal: this.state.passwordDefaultETerminal,\n allowWidgets: this.state.allowWidgets,\n notifyByUrl: this.state.notifyByUrl,\n eCommKeyBlocked: this.state.eCommKeyBlocked,\n notifyByEmail: this.state.notifyByEmail,\n cashboxRequired: this.state.cashboxRequired,\n paymentType: this.state.paymentType,\n };\n if (IS_MIR_PAY) {\n initialDataMerchant['mirPayKid'] = this.state.mirPayKid;\n initialDataMerchant['mirPayMerchantId'] =\n this.state.mirPayMerchantId;\n initialDataMerchant['mirPayPrivateKey'] =\n this.state.mirPayPrivateKey;\n initialDataMerchant['mirPayTerminalId'] =\n this.state.mirPayTerminalId;\n }\n if (IS_PAYMENT_TO_INCLUDE) {\n initialDataMerchant['mcc'] = this.state.mcc;\n }\n return initialDataMerchant;\n };\n\n render() {\n const { info } = this.state;\n const bankStandartRoles = this.returnRoleAsObject(\n Object.values(this.state.bankStandartRoles)\n );\n const hasSBPRoleInCompany =\n info && info.roles && info.roles.includes('OPERATIONS_SBP');\n const isRoleCashboxNotAdmin =\n info &&\n info.roles &&\n (info.roles.includes('CASHBOX') || info.roles.includes('ADMIN'));\n\n return (\n
\n {this.state.info ? (\n \n \n
\n
\n Идентификатор: \n {this.state.info.id}\n
\n
\n Наименование компании: \n {this.state.info.name}\n
\n
\n ИНН: \n {this.state.info.inn}\n
\n
\n Состояние компании: \n \n {this.state.info.blocked\n ? 'Заблокирована'\n : 'Активна'}\n \n
\n
\n {this.state.info.mainCompanyId\n ? [\n \n Главная компания:{' '}\n ,\n \n {\n this.state.info\n .mainCompanyName\n }\n ,\n ]\n : null}\n
\n
\n
\n {this.state.info.roles && (\n {\n this.getCompanyRoles();\n this.toggle_update_company_role();\n }}\n />\n }\n >\n
\n
\n Роли компании: \n \n {this.state.info.roles &&\n this.state.info.roles.map(\n (role, i, roles) =>\n `${roleNameMapper(\n role\n )}${\n i ===\n roles.length - 1\n ? ' '\n : ', '\n }`\n )}\n \n
\n
\n \n )}\n
\n ) : null}\n \n \n {\n this.toggle_show_terminal_info();\n this.getTerminalInfo(ID);\n }}\n />\n \n \n \n \n }\n >\n {\n this.getUserInfo(e.ID);\n this.getUserHistory(e.ID);\n }}\n companyHistory={() => this.toggle_user_history()}\n url={\n URL.companyUsersUrl + this.props.match.params.id\n }\n />\n \n \n {this.state.info ? (\n this.state.info.mainCompanyId ? null : (\n \n \n this.toggleSubCompany({\n name: 'open_add_sub_group',\n })\n }\n />\n }\n >\n \n this.toggleSubCompany({\n name: 'open_add_sub_group',\n })\n }\n locationUrl={\n this.props.history.location.pathname\n }\n mainCompanyId={this.props.match.params.id}\n deleting={(mainCompanyId, subCompanyId) =>\n this.deleteRequest(\n mainCompanyId,\n subCompanyId\n )\n }\n link=\"/company/\"\n />\n \n \n )\n ) : null}\n {/* Hidden feature of bank to turn on/off merchant ecomm */}\n {/**/}\n {/*
*/}\n {/*
*/}\n {/* Разрешена:  */}\n {/* */}\n {/* this.setState({activateEcomm: !this.state.activateEcomm})}*/}\n {/* checked={this.state.activateEcomm}/>*/}\n {/* */}\n {/* */}\n {/* {*/}\n {/* this.setState({*/}\n {/* activateEcommStatus: this.state.activateEcomm*/}\n {/* });*/}\n {/* this.saveEcommStatus()*/}\n {/* }}*/}\n {/* className=\"company-details__button\">*/}\n {/* Применить*/}\n {/* */}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n \n \n }\n >\n {\n this.getEcommKey(e.ID)\n .then(() => this.getEcommKeyCashbox())\n .then(() => this.toggle_update_ecommKey());\n // this.getUserHistory(e.ID);\n }}\n companyHistory={() => this.toggle_user_history()}\n url={URL.ecommkeyall + this.props.match.params.id}\n />\n \n \n\n {isPermit(Roles.EINVOICE) && (\n <>\n

Счета

\n \n \n \n )}\n\n \n \n )\n }\n >\n {/* user tokens and auth attempts */}\n {\n this.getCashbox(e.ID);\n }}\n companyHistory={() => this.toggle_user_history()}\n url={URL.cashboxAll + this.props.match.params.id}\n />\n \n \n \n \n Токены и попытки авторизации\n \n \n
\n Действующие токены:\n
\n {this.state.userHistory.userTokens && (\n [\n tokenDuration,\n usedAttemptCount,\n attemptCount,\n ]\n )}\n />\n )}\n
\n Попытки входа:\n
\n {this.state.userHistory.attempts && (\n [\n dateTime,\n success,\n ]\n )}\n />\n )}\n
\n \n {/*user modals*/}\n \n \n Добавить пользователя\n \n \n
\n \n this.setState({\n fullName: fio.target.value,\n })\n }\n value={this.state.fullName}\n placeholder={'Введите ФИО'}\n className=\"modal-input\"\n />\n {this.state.emailIsValid ||\n !this.state.email.length ? null : (\n \n Неправильный Email\n \n )}\n \n this.setState(\n { email: email.target.value },\n () => {\n this.setState({\n emailIsValid: validateEmail(\n this.state.email\n ),\n });\n }\n )\n }\n value={this.state.email}\n placeholder={'Введите email'}\n className=\"modal-input\"\n type=\"email\"\n />\n {\n this.setState({\n cellPhone: phone.target.value,\n });\n }}\n />\n \n Создать\n \n
\n
\n \n \n \n Редактирование пользователя\n \n \n
\n
\n ID пользователя:\n {this.state.id}\n
\n
\n Блокировка:\n \n \n this.setState({\n bankBlocked:\n !this.state.bankBlocked,\n })\n }\n checked={this.state.bankBlocked}\n />\n \n
\n
\n Статус:\n {this.state.statusName}\n
\n \n this.setState({\n fullName: fio.target.value,\n })\n }\n value={this.state.fullName}\n placeholder={'Введите ФИО'}\n className=\"modal-input\"\n />\n \n this.setState({ email: email.target.value })\n }\n value={this.state.email}\n placeholder={'Введите email'}\n className=\"modal-input\"\n type=\"email\"\n />\n \n this.setState({\n cellPhone: phone.target.value,\n })\n }\n />\n
\n Роли\n \n {this.state.roles.map((role) => (\n \n {role}\n \n ))}\n \n
\n \n this.updateCompanyUser(this.state.id)\n }\n >\n Сохранить\n \n \n this.resetMerchantUser(this.state.id)\n }\n >\n Сбросить пароль\n \n
\n
\n \n {/*ecommkey modals*/}\n {this.state.open_add_ecommKey && (\n \n )}\n {this.state.open_update_ecommKey && (\n \n )}\n {/*cashbox modals*/}\n \n \n \n Редактировать кассу\n \n \n
\n
\n Статус: \n \n {\n e.persist();\n this.setState({\n cashboxStatus: e.target.value,\n });\n }}\n >\n {this.state.statuses.map(\n (status, i) => (\n \n )\n )}\n \n \n
\n
\n Блокировка:\n \n \n this.setState({\n cashboxBlocked:\n !this.state.cashboxBlocked,\n })\n }\n checked={this.state.cashboxBlocked}\n />\n \n
\n
\n Адрес кассы:\n
\n \n this.setState({\n address: e.target.value,\n })\n }\n value={this.state.address}\n placeholder={'Введите Адрес'}\n className=\"modal-input\"\n />\n
\n Логин кассы:\n
\n \n this.setState({\n cashboxLogin: e.target.value,\n })\n }\n value={this.state.cashboxLogin}\n placeholder={'Введите Логин кассы'}\n className=\"modal-input\"\n autoComplete=\"new-login\"\n />\n
\n Пароль кассы:\n
\n \n this.setState({\n cashboxPassword: e.target.value,\n })\n }\n type=\"password\"\n value={this.state.cashboxPassword}\n placeholder={'Введите Пароль кассы'}\n className=\"modal-input\"\n autoComplete=\"new-password\"\n />\n
\n {\n this.setState({\n ffdVersion: e.target.value,\n });\n }}\n >\n {this.state.cashboxAvailableFfdList.map(\n (ffdVersion, i) => (\n \n {ffdVersion.nameFfd}\n \n )\n )}\n \n
\n {this.state.reassignIdCompany && (\n <>\n
\n Переназначить на компанию: \n
\n {\n this.setState({\n reassignIdCompany: value\n ? value\n : this.state\n .currentReassignIdCompany,\n });\n }}\n />\n \n )}\n {IS_CASH_BOX && (\n {\n this.setState({\n ...fields,\n });\n }}\n role={this.state.role}\n />\n )}\n \n this.updateCashbox(this.state.cashboxId)\n }\n >\n Сохранить\n \n
\n
\n \n this.toggle_show_terminal_info()}\n >\n this.toggle_show_terminal_info()}\n >\n Информация о терминале\n \n \n {\n
\n
\n ID терминала\n :\n {this.state.uid}\n
\n
\n Установленные лимиты: \n
\n
\n На одну операцию\n -\n {this.state.operationLimit}\n
\n
\n Недельный лимит\n -\n {this.state.weekLimit}\n
\n
\n Лимит до конца недели\n -\n {this.state.limitEndOfWeek}\n
\n
\n Тарифы: \n
\n {this.state.rates.map(\n ({ cardName, rate }, i) => (\n \n {cardName}: \n {/*hidden feature showing bank cards*/}\n {/*
\"\"/*/}\n {/*
*/}\n  {rate} %\n
\n )\n )}\n
\n \n Дополнительная комиссия:{' '}\n {this.state.extraCommission}\n \n {/**/}\n
\n
\n \n Комиссия на SIM-карту:{' '}\n {this.state.simCommission}\n \n
\n \n }\n \n \n \n this.toggleSubCompany({\n name: 'open_add_sub_group',\n })\n }\n >\n \n this.toggleSubCompany({\n name: 'open_add_sub_group',\n })\n }\n >\n Добавить связанную компанию\n \n \n
\n
\n
Компании:
\n
\n \n this.setState({\n mainCompanyId: Number(\n this.props.match.params.id\n ),\n subCompanyId: value\n ? value\n : undefined,\n })\n }\n />\n
\n
\n this.saveAndSend()}\n disabled={!this.state.subCompanyId}\n >\n Сохранить\n \n
\n
\n \n {/*Update Company role Modal*/}\n this.toggle_update_company_role()}\n >\n this.toggle_update_company_role()}\n >\n Редактирование ролей\n \n \n
\n
\n Роли\n {this.state.info && (\n \n this.setState({\n info: {\n ...this.state.info,\n roles,\n },\n })\n }\n />\n )}\n
\n this.updateCompanyRoles()}\n >\n Сохранить\n \n
\n
\n \n \n );\n }\n\n updateCompanyUser(id) {\n post(URL.updateMerchantUserUrl + id, {\n fullName: this.state.fullName,\n email: this.state.email,\n cellPhone: this.state.cellPhone,\n bankBlocked: this.state.bankBlocked,\n })\n .then((r) => {\n this.setState({ open_update_user: false });\n this.props.dispatch(\n setNeedsUpdate(\n usersTableName + this.props.match.params.id,\n true\n )\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Редактирование пользователя',\n message: 'Пользователь успешно изменен',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_update_user: false });\n });\n }\n\n resetMerchantUser(id) {\n get(URL.resetMerchantUserPassword + id)\n .then((r) => {\n this.setState({ open_update_user: false });\n this.props.dispatch(\n createNotification(\n {\n title: 'Сброс пароля',\n message: 'Пароль пользователя сброшен.',\n },\n 'info'\n )\n );\n })\n .catch((r) => {\n this.setState({ open_update_user: false });\n log(r);\n });\n }\n\n getCompanyInfo() {\n post(URL.companyUrl + '/' + this.props.match.params.id)\n .then((r) => {\n return this.setState({ info: r.data.payload });\n })\n .catch((r) => log(r));\n }\n\n getCompanyRoles() {\n get(URL.companyRoles)\n .then((r) => this.setState({ bankStandartRoles: r.data.payload }))\n .catch((r) => log(r));\n }\n\n updateCompanyRoles() {\n post(\n URL.companyRoles + '/' + this.props.match.params.id,\n this.state.info.roles\n )\n .then((r) => {\n this.setState({ open_update_company_role: false });\n this.props.dispatch(\n setNeedsUpdate(\n merchantKeysTableName + this.props.match.params.id,\n true\n )\n );\n })\n .catch((r) => log(r));\n }\n\n getUserHistory(id) {\n get(URL.userAttempts + id)\n .then(({ data: { payload } }) => {\n this.setState({ userHistory: payload });\n })\n .catch((error) => log(error));\n }\n\n getUserInfo(id) {\n get(URL.merchantUserInfoUrl + id)\n .then((r) => {\n let {\n id,\n cellPhone,\n email,\n fullName,\n bankBlocked,\n statusName,\n roles,\n } = r.data.payload;\n this.setState({\n id,\n bankBlocked,\n statusName,\n fullName,\n email,\n cellPhone,\n roles,\n });\n if (this.state.showHistory) {\n this.setState({ open_user_history: true });\n } else {\n this.setState({ open_update_user: true });\n }\n })\n .catch((r) => {\n this.setState({ open_update_user: false });\n log(r);\n });\n }\n\n createCompanyUser() {\n post(URL.companyCreateUsersUrl + this.props.match.params.id, {\n fullName: this.state.fullName,\n email: this.state.email,\n cellPhone: this.state.cellPhone,\n })\n .then((r) => {\n this.setState({ open_add_user: false });\n this.props.dispatch(\n setNeedsUpdate(\n usersTableName + this.props.match.params.id,\n true\n )\n );\n this.props.dispatch(\n createNotification(\n {\n title: 'Создание пользователя',\n message: 'Пользователь успешно создан',\n },\n 'success'\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_add_user: false });\n });\n }\n}\n\nexport { cashboxesTableName };\nexport default withRouter(connect()(CompanyDetailsPage));\n","import React, { Component } from 'react';\nimport { Modal, ModalBody, ModalHeader } from 'reactstrap';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport { URL } from 'src/app/config';\n\nimport { formatDate, log, sendToSubject, localLoad, get } from 'src/shared/lib';\n\nimport './cashbox-registry-page.scss';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nconst cashboxesReceiptTableName = 'Cashboxes-Receipt';\n\nclass CashBoxReceiptPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n this.toggle_receipt_info = this.toggle_receipt_info.bind(this);\n this.state = {\n open_receipt_info: false,\n receiptOrderId: '',\n receiptCreated: '',\n receiptTotalFiscal: '',\n registryId: '',\n errorInfo: '',\n };\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n this.send({\n offset: localLoad('receipt-offset', 0),\n size: localLoad('receipt-range', 10),\n });\n };\n\n getCashboxReceiptInfo = (id) => {\n get(URL.cashBoxReceiptInfo + id)\n .then((r) => {\n let {\n receiptOrderId,\n receiptCreated,\n receiptTotalFiscal,\n registryId,\n errorInfo,\n } = r.data.payload;\n\n this.setState(\n {\n open_receipt_info: true,\n receiptOrderId,\n receiptCreated,\n receiptTotalFiscal,\n registryId,\n errorInfo,\n },\n () => {}\n );\n })\n .catch((r) => {\n this.setState({ open_receipt_info: false });\n log(r);\n });\n };\n\n toggle_receipt_info() {\n this.setState({\n open_receipt_info: !this.state.open_receipt_info,\n });\n }\n\n render() {\n return (\n
\n \n \n \n this.getCashboxReceiptInfo(e.ID)\n }\n url={`${URL.cashBoxReceipt}/${this.props.match.params.id}`}\n />\n \n \n \n \n Информация о чеке\n \n \n
\n
\n \n Идентификатор чека:{' '}\n {this.state.receiptOrderId}\n \n
\n
\n \n Дата чека:{' '}\n {formatDate(this.state.receiptCreated)}\n \n
\n
\n \n Фискализированная сумма:{' '}\n {this.state.receiptTotalFiscal}\n \n
\n
\n Список ошибок:\n
\n
\n {this.state.errorInfo\n ? this.state.errorInfo.map((err, i) => (\n  {err}\n ))\n : null}\n
\n
\n
\n
\n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default withRouter(connect(mapStateToProps)(CashBoxReceiptPage));\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport AwareTable from 'src/components/AwareTable';\n\nimport { URL } from 'src/app/config';\nimport { get, log } from 'src/shared/lib';\n\nimport './cashbox-registry-page.scss';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nconst cashboxRegistriesTableName = 'Cashbox-Registry';\n\nclass CashBoxRegistriesPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n companyName: '',\n };\n }\n\n componentDidMount() {\n this.getPlatformCashboxInfo(this.props.match.params.id);\n }\n\n getPlatformCashboxInfo = (id) => {\n get(URL.platformCashBoxOneUrl + id)\n .then((r) => {\n let { companyName } = r.data.payload;\n\n this.setState(\n {\n companyName,\n },\n () => {}\n );\n })\n .catch((r) => {\n log(r);\n });\n };\n\n render() {\n return (\n
\n

{`Реестры Компании ${this.state.companyName}`}

\n \n \n \n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default withRouter(connect(mapStateToProps)(CashBoxRegistriesPage));\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\nimport { Input, Modal, ModalBody, ModalHeader } from 'reactstrap';\n\nimport { URL } from 'src/app/config';\nimport AwareTable from 'src/components/AwareTable';\nimport {\n get,\n post,\n localLoad,\n log,\n sendToSubject,\n statusNameMapper,\n getClassName,\n localSaveSerialize,\n localSave,\n} from 'src/shared/lib';\nimport {\n Button,\n CheckBox,\n OverflowContainer,\n Paginator,\n AddIcon,\n} from 'src/shared/ui';\n\nimport './platform-cashbox-page.scss';\nimport CashBoxWithRoles from './CashBoxWithRoles/index.js';\nimport { setNeedsUpdate } from 'src/redux/actions/table';\nimport { cashboxesTableName } from '../CompanyDetailsPage';\n\nconst platformCashboxTableName = 'Platform-Cashbox';\n\n/**\n * @type {boolean}\n * В соответствии с задачей DPS-359 установить возможность\n * включения/выключения Мир/Обновленного вида создания кассы\n */\nconst IS_CASH_BOX = true;\nclass PlatformCashBoxPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n this.state = {\n open_add_cashbox: false,\n open_update_cashbox: false,\n login: '',\n password: '',\n blocked: true,\n groupCode: '',\n id: '',\n companyName: '',\n ffdVersion: '',\n cashboxAvailableFfdList: [],\n status: ['Активно', 'Выключено'],\n defStatus: 'Активно',\n createUpdateCashBoxError: false,\n };\n if (IS_CASH_BOX) {\n this.state['role'] = ['PLAT_FORM'];\n this.state['companyIds'] = [];\n }\n }\n\n componentDidMount() {\n this.getData();\n this.getCashboxAvailableFfd();\n }\n\n getCashboxAvailableFfd() {\n get(URL.getCashboxAvailableFfd)\n .then((r) => {\n let ffdVersion = r.data.payload[0].version;\n let cashboxAvailableFfdList = r.data.payload;\n this.setState({\n ffdVersion: ffdVersion,\n cashboxAvailableFfdList: cashboxAvailableFfdList,\n });\n })\n .catch((r) => log(r));\n }\n\n toggle_add_cashbox = () => {\n this.setState({\n login: '',\n password: '',\n blocked: true,\n groupCode: '',\n companyName: '',\n defStatus: 'Активно',\n open_add_cashbox: !this.state.open_add_cashbox,\n createUpdateCashBoxError: false,\n });\n };\n toggle_update_cashbox = () => {\n this.setState({\n open_update_cashbox: !this.state.open_update_cashbox,\n createUpdateCashBoxError: false,\n });\n };\n getData = () => {\n this.send({\n offset: localLoad('platform-cashbox-offset', 0),\n size: localLoad('platform-cashbox-range', 10),\n });\n };\n\n createPlatformCashbox = () => {\n const {\n login,\n companyName,\n password,\n groupCode,\n defStatus,\n ffdVersion,\n } = this.state;\n const createParams = {\n login,\n companyName,\n password,\n groupCode,\n ffdVersion,\n status: statusNameMapper(defStatus, 'en'),\n };\n if (IS_CASH_BOX) {\n if (\n !this.state.companyIds.length &&\n this.state.role.includes('E_COMMERCE')\n ) {\n this.setState({ createUpdateCashBoxError: true });\n return;\n }\n createParams['role'] = this.state.role;\n if (this.state.companyIds.length) {\n createParams['idCompany'] = this.state.companyIds[0];\n createParams['reassignIdCompany'] = this.state.companyIds[0];\n }\n }\n\n post(URL.createPlatformCashBox, createParams)\n .then((r) => {\n this.setState({\n open_add_cashbox: false,\n createUpdateCashBoxError: false,\n });\n this.props.dispatch(\n setNeedsUpdate(platformCashboxTableName, true)\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_add_user: false });\n });\n };\n prepareParamsUpdateCashBox = (id) => {\n const paramsUpdate = {\n id: id,\n companyName: this.state.companyName,\n login: this.state.login,\n password: this.state.password,\n blocked: this.state.blocked,\n groupCode: this.state.groupCode,\n ffdVersion: this.state.ffdVersion,\n status: statusNameMapper(this.state.defStatus, 'en'),\n idCompany: this.state.idCompany,\n };\n if (IS_CASH_BOX) {\n if (\n (!this.state.companyIds.length &&\n this.state.role.includes('E_COMMERCE')) ||\n (!this.state.companyIds[0] &&\n this.state.role.includes('E_COMMERCE'))\n ) {\n this.setState({ createUpdateCashBoxError: true });\n return;\n }\n paramsUpdate['role'] = this.state.role;\n if (this.state.companyIds.length) {\n paramsUpdate['reassignIdCompany'] = this.state.companyIds[0];\n }\n if (\n !this.state.role.includes('E_COMMERCE') &&\n !this.state.companyIds.length\n ) {\n paramsUpdate['reassignIdCompany'] =\n this.state.currentCompanyIds[0];\n }\n }\n return paramsUpdate;\n };\n\n updatePlatformCashbox = (id) => {\n const paramsUpdate = this.prepareParamsUpdateCashBox(id);\n if (!paramsUpdate) return;\n post(URL.updatePlatformCashBox + id, paramsUpdate)\n .then((r) => {\n this.setState({\n open_update_cashbox: false,\n createUpdateCashBoxError: false,\n companyIds: [],\n });\n this.props.dispatch(\n setNeedsUpdate(platformCashboxTableName, true)\n );\n this.props.dispatch(\n setNeedsUpdate(\n cashboxesTableName + String(paramsUpdate.idCompany),\n true\n )\n );\n })\n .catch((r) => {\n log(r);\n this.setState({ open_update_cashbox: false });\n });\n };\n\n /**\n * DPS-359: Добавлен дополнительный метод который вызывается если\n * IS_CASH_BOX и searchQuery не falsy values\n * задача метода установка в локал сторадж значения для селектора выбора компаний\n * и при любом варианте запроса на find установка newState через setState\n */\n getCompanies = (searchQuery, newState) => {\n const companyIds = 'companySelectId';\n const companySelect = 'companySelect';\n const companySelectList = 'companySelectList';\n const nameFieldLocal = 'cashbox-with-roles';\n const listSelect = getClassName(nameFieldLocal, companySelectList);\n const id = getClassName(nameFieldLocal, companyIds);\n const value = getClassName(nameFieldLocal, companySelect);\n\n return post(\n URL.companyFindSelectUrl,\n { searchQuery, offset: 0, size: 10 },\n {},\n false\n )\n .then((response) => {\n const list = response.data.payload.map((e) => {\n return { value: e.id, label: e.name };\n });\n const company = list.find(\n (listItem) => listItem.value === searchQuery\n );\n localSaveSerialize(listSelect, company ? [company] : undefined);\n localSaveSerialize(value, company);\n localSave(id, company ? company.value : undefined);\n })\n .catch((response) => log(response))\n .finally(() => {\n this.setState(newState);\n });\n };\n\n getPlatformCashboxInfo = (id) => {\n get(URL.platformCashBoxOneUrl + id)\n .then((r) => {\n let {\n id,\n companyName,\n login,\n password,\n blocked,\n groupCode,\n status,\n ffdVersion,\n idCompany,\n } = r.data.payload;\n const newState = {\n id,\n companyName,\n login,\n password,\n blocked,\n groupCode,\n ffdVersion,\n idCompany,\n defStatus: statusNameMapper(status, 'ru'),\n open_update_cashbox: true,\n };\n if (IS_CASH_BOX) {\n newState['role'] = r.data.payload.role;\n newState['companyIds'] = [r.data.payload.idCompany];\n newState['currentCompanyIds'] = [r.data.payload.idCompany];\n }\n return newState;\n })\n .then((newState) => {\n if (IS_CASH_BOX && newState?.companyIds?.length) {\n this.getCompanies(newState?.companyIds[0], newState);\n } else {\n this.setState(newState);\n }\n })\n .catch((r) => {\n this.setState({ open_update_cashbox: false });\n log(r);\n });\n };\n\n onChangeCashBoxWithRoles(fields) {\n const newState = {\n ...fields,\n };\n if (\n this.state.createUpdateCashBoxError &&\n fields?.companyIds?.length &&\n fields?.companyIds[0]\n ) {\n newState['createUpdateCashBoxError'] = false;\n }\n if (\n this.state.createUpdateCashBoxError &&\n !fields?.role?.includes('E_COMMERCE')\n ) {\n newState['createUpdateCashBoxError'] = false;\n }\n this.setState(newState);\n }\n\n render() {\n return (\n
\n \n \n }\n >\n \n \n \n \n \n Добавление Кассы ПЛАТ-ФОРМЫ\n \n \n
\n
\n Код Группы\n
\n \n this.setState({\n groupCode: groupCode.target.value,\n })\n }\n value={this.state.groupCode}\n placeholder={'Введите код группы ... '}\n className=\"modal-input\"\n />\n
\n Имя Компании\n
\n \n this.setState({\n companyName: companyName.target.value,\n })\n }\n value={this.state.companyName}\n placeholder={'Введите имя компании ... '}\n className=\"modal-input\"\n />\n
Логин
\n \n this.setState({ login: login.target.value })\n }\n value={this.state.login}\n placeholder={'Введите логин ... '}\n className=\"modal-input\"\n autoComplete=\"new-login\"\n />\n
Пароль
\n \n this.setState({\n password: password.target.value,\n })\n }\n value={this.state.password}\n placeholder={'Введите пароль ... '}\n type=\"password\"\n className=\"modal-input\"\n autoComplete=\"new-password\"\n />\n
\n {\n this.setState({\n ffdVersion: e.target.value,\n });\n }}\n >\n {this.state.cashboxAvailableFfdList.map(\n (ffdVersion, i) => (\n \n {ffdVersion.nameFfd}\n \n )\n )}\n \n
\n
\n {\n e.persist();\n this.setState({\n defStatus: e.target.value,\n });\n }}\n >\n {this.state.status.map((status, i) => (\n \n ))}\n \n
\n {IS_CASH_BOX && (\n \n this.onChangeCashBoxWithRoles(fields)\n }\n createUpdateError={\n this.state.createUpdateCashBoxError\n }\n />\n )}\n \n Добавить\n \n
\n
\n \n\n \n \n Редактирование Кассы ПЛАТ-ФОРМЫ\n \n \n
\n
\n Код Группы\n
\n
{this.state.groupCode}
\n
\n Имя Компании\n
\n \n this.setState({\n companyName: companyName.target.value,\n })\n }\n value={this.state.companyName}\n placeholder={'Введите имя компании ... '}\n className=\"modal-input\"\n />\n
Логин
\n \n this.setState({ login: login.target.value })\n }\n value={this.state.login}\n placeholder={'Введите логин ... '}\n className=\"modal-input\"\n autoComplete=\"new-login\"\n />\n
Пароль
\n \n this.setState({\n password: password.target.value,\n })\n }\n value={this.state.password}\n placeholder={'Введите пароль ... '}\n type=\"password\"\n className=\"modal-input\"\n autoComplete=\"new-password\"\n />\n
\n {\n this.setState({\n ffdVersion: e.target.value,\n });\n }}\n >\n {this.state.cashboxAvailableFfdList.map(\n (ffdVersion, i) => (\n \n {ffdVersion.nameFfd}\n \n )\n )}\n \n
\n
\n {\n e.persist();\n this.setState({\n defStatus: e.target.value,\n });\n }}\n >\n {this.state.status.map((status, i) => (\n \n ))}\n \n
\n
\n Блокирован: \n \n this.setState({\n blocked: !this.state.blocked,\n })\n }\n checked={this.state.blocked}\n />\n
\n {IS_CASH_BOX && (\n \n this.onChangeCashBoxWithRoles(fields)\n }\n role={this.state.role}\n idCompany={this.state.companyIds}\n createUpdateError={\n this.state.createUpdateCashBoxError\n }\n />\n )}\n \n this.updatePlatformCashbox(this.state.id)\n }\n disabled={this.state.createUpdateCashBoxError}\n >\n Сохранить\n \n
\n
\n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default withRouter(connect(mapStateToProps)(PlatformCashBoxPage));\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\n\nimport { URL } from 'src/app/config';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport { localLoad, sendToSubject } from 'src/shared/lib';\nimport { OverflowContainer, Paginator } from 'src/shared';\n\nimport './platform-cashbox-error-page.scss';\n\nconst platformCashboxErrorTableName = 'Platform-Cashbox-Error';\n\nclass PlatformCashBoxErrorsPage extends Component {\n filterSubject = new ReplaySubject(1);\n\n constructor(props) {\n super(props);\n this.send = sendToSubject.bind(this);\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n this.send({\n offset: localLoad('platform-cashbox-offset', 0),\n size: localLoad('platform-cashbox-range', 10),\n });\n };\n\n render() {\n return (\n
\n \n \n \n \n \n
\n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n fetch: state.fetch.fetch,\n };\n}\n\nexport default withRouter(connect(mapStateToProps)(PlatformCashBoxErrorsPage));\n","import React, { Component } from 'react';\nimport moment from 'moment';\nimport { isEmpty } from 'lodash';\nimport CompanySelect from 'src/components/CompanySelect';\nimport { connect } from 'react-redux';\nimport { URL } from 'src/app/config';\nimport { FiltersContainer } from 'src/widgets';\nimport { getAllTerminalIds } from 'src/entities/terminal';\nimport {\n localLoad,\n localLoadMoment,\n localLoadSerialize,\n localLoadIntInArray,\n localSave,\n getClassName,\n log,\n get,\n formatDateForInput,\n localSaveSerialize,\n getInitialFilter,\n} from 'src/shared/lib';\nimport { DateRangePicker } from 'src/shared/ui';\nimport { setEndDate, setFilters, setStartDate } from 'src/redux/actions/table';\nimport styles from './styles.module.scss';\nimport { BankTerminalsSelector } from 'src/features/select-terminals/ui';\nimport _ from 'lodash';\n\nclass ReversalPageFilter extends Component {\n constructor(props) {\n super(props);\n this.startDate = getClassName(this.props.pageTitle, 'startDate');\n this.endDate = getClassName(this.props.pageTitle, 'endDate');\n this.companyId = getClassName(this.props.pageTitle, 'companySelectId');\n this.companyTerminals = getClassName(\n this.props.pageTitle,\n 'companyTerminals'\n );\n this.terminalIds = getClassName(\n this.props.pageTitle,\n 'companyTerminalIds'\n );\n\n const initialFilter = getInitialFilter(\n ['companyTerminalIds'],\n this.props.pageTitle\n );\n this.defaultFilter = {\n startDate: localLoadMoment(\n this.startDate,\n moment(new Date()).add(-7, 'days')\n ),\n endDate: localLoadMoment(this.endDate, moment(new Date())),\n companyIds: localLoad(this.companyId, []),\n companyTerminals: localLoadSerialize(this.companyTerminals, []),\n terminalIds: localLoad(this.terminalIds, []),\n };\n this.state = {\n ...this.defaultFilter,\n };\n this.setStartDate(this.defaultFilter.startDate);\n this.setEndDate(this.defaultFilter.endDate);\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds: localLoadIntInArray(this.companyId, []),\n terminalIds: initialFilter.companyTerminalIds,\n })\n );\n }\n\n componentDidUpdate(previousProps) {\n const companyIdsAreEqual = _.isEqual(\n previousProps.table?.filters?.companyIds,\n this.props.table.filters?.companyIds\n );\n\n if (!companyIdsAreEqual) {\n this.getTerminals(this.props.table.filters?.companyIds[0]);\n }\n\n this.saveFilter();\n }\n\n createFilterFromState = (state) => {\n const { companyTerminals, companyId, terminalIds, ...filter } = state;\n // Если выбрана компания, то по умолчанию на сервер необходимо отправить все ее терминалы.\n // Если отправить путой массив, то сервер вернет возвраты по всем компаниям.\n if (companyId && isEmpty(terminalIds)) {\n let allTerminalIds = getAllTerminalIds(companyTerminals);\n return { terminalIds: allTerminalIds, ...filter };\n }\n return { terminalIds, ...filter };\n };\n\n saveFilter() {\n localSave(this.startDate, this.getStartDate());\n localSave(this.endDate, this.getEndDate());\n localSave(this.companyId, this.props.table?.filters?.companyIds || []);\n localSaveSerialize(this.companyTerminals, this.state.companyTerminals);\n localSave(this.terminalIds, this.props.table?.filters?.terminalIds);\n }\n\n getTerminals = (companyId) => {\n if (companyId) {\n get(`${URL.terminalsUrl}/${companyId}`)\n .then((response) => {\n this.setState({\n companyTerminals: response.data.payload,\n });\n })\n .catch((err) => log(err));\n } else {\n this.setState({ companyTerminals: [] });\n }\n };\n\n getStartDate() {\n return this.props.table?.startDate ?? this.state.startDate;\n }\n\n setStartDate(date) {\n this.props.dispatch(setStartDate(this.props.pageTitle, date));\n }\n\n getEndDate() {\n return this.props.table?.endDate ?? this.state.endDate;\n }\n\n setEndDate(date) {\n this.props.dispatch(setEndDate(this.props.pageTitle, date));\n }\n\n render() {\n return (\n
\n \n \n this.setStartDate(startDate),\n },\n {\n selected: this.getEndDate(),\n end: true,\n onChange: (endDate) => this.setEndDate(endDate),\n },\n ]}\n formatter={formatDateForInput}\n position=\"left\"\n startDate={this.getStartDate()}\n endDate={this.getEndDate()}\n onReset={() => {\n this.setStartDate(\n moment(new Date()).add(-7, 'days')\n );\n this.setEndDate(moment(new Date()));\n }}\n />\n
\n {\n const companyIds = value ? [value] : [];\n\n const isCompanyIdsEqual = _.isEqual(\n companyIds,\n this.props.table?.filters?.companyIds\n );\n\n if (!isCompanyIdsEqual) {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n terminalIds: [],\n })\n );\n }\n\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n companyIds,\n })\n );\n }}\n />\n
\n\n {this.props.table?.filters?.companyIds?.length &&\n this.state.companyTerminals &&\n this.state.companyTerminals.length ? (\n Number(value)\n ) || []\n }\n onChange={(terminalIds) => {\n this.props.dispatch(\n setFilters(this.props.pageTitle, {\n terminalIds,\n })\n );\n }}\n terminalsList={this.state.companyTerminals}\n />\n ) : null}\n
\n {this.props.actions}\n
\n
\n
\n );\n }\n}\n\nfunction mapStateToProps(state, props) {\n return {\n table: state.table?.[props.pageTitle],\n };\n}\n\nexport default connect(mapStateToProps, null, null)(ReversalPageFilter);\n","import { MainTerminal } from '../model/types/terminal';\n\n/**\n * Получает id всех терминалов компании\n * @param mainTerminals массив терминалов от сервера\n * @returns массив id всех терминалов\n */\n\nexport const getAllTerminalIds = (mainTerminals: MainTerminal[]) => {\n const allTerminals = [] as number[];\n mainTerminals.forEach((mainTerminal) =>\n mainTerminal.terminalGroups.forEach((group) =>\n group.terminals.forEach((terminal) =>\n allTerminals.push(terminal.id)\n )\n )\n );\n\n return allTerminals;\n};\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { ReplaySubject } from 'rxjs';\n\nimport AwareTable from 'src/components/AwareTable';\n\nimport { LOCAL_STORAGE_TABLE_NAMES, getInitialFilter } from 'src/shared/lib';\nimport { URL } from 'src/app/config';\nimport { OverflowContainer, Paginator } from 'src/shared/ui';\n\nimport ReversalPageFilter from './ReversalPageFilter';\nimport { DownloadReportStore } from 'src/features/download-report';\n\nimport './reversal-page.scss';\n\nconst filterSubject = new ReplaySubject(1);\n\nconst pageTitle = LOCAL_STORAGE_TABLE_NAMES.reversal;\n\nexport const ReversalPage = () => {\n const { token } = useSelector((state) => state.requestCancelation);\n\n return (\n
\n \n\n \n \n \n getInitialFilter(['terminalIds'], pageTitle)\n }\n filterSubject={filterSubject}\n url={URL.reversalExport}\n />,\n ]}\n />\n \n \n
\n );\n};\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { URL } from 'src/app/config';\nimport AwareTable from 'src/components/AwareTable';\nimport { localLoad, localSave } from 'src/shared/lib';\nimport { OverflowContainer, SearchField, Paginator } from 'src/shared/ui';\nimport { FiltersContainer } from 'src/widgets';\n\nimport './cashboxes-page.scss';\nimport { setFilters } from 'src/redux/actions/table';\n\nconst tableName = 'Company-Cashboxes';\n\nexport const CashBoxes = () => {\n return (\n
\n \n \n \n \n {' '}\n \n
\n );\n};\n\nexport const CashBoxesFilter = () => {\n const queryLocalName = `${tableName}-query`;\n const dispatch = useDispatch();\n const searchQuery = useSelector(\n (state) => state.table?.[tableName]?.filters.searchQuery\n );\n dispatch(\n setFilters(tableName, { searchQuery: localLoad(queryLocalName, '') })\n );\n\n return (\n
\n \n {\n dispatch(setFilters(tableName, { searchQuery: value }));\n localSave(queryLocalName, value);\n }}\n />\n \n
\n );\n};\n","import React from 'react';\nimport TerminalsPage from '../TerminalsPage';\n\nexport const InventoryPage = () => {\n return (\n
\n \n
\n );\n};\n","import React from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport {\n BankUserListPage,\n CashBoxes,\n CashBoxReceiptPage,\n CashBoxRegistriesPage,\n CompanyDetailsPage,\n CompanyListPage,\n DynamicPage,\n EcommPage,\n EinvoiceDetailsPage,\n MerchantEinvoicePage,\n BankEinvoicePage,\n EpaymentDetailsPage,\n EpaymentsPage,\n GroupListPage,\n HelpPage,\n OperationDetailPage,\n OperationSBPDetailPage,\n OperationsPage,\n OperationsSBPPage,\n PlatformCashBoxErrorsPage,\n PlatformCashBoxPage,\n ReversalPage,\n SchedulePage,\n SettingsPage,\n SettlementDetailsPage,\n SettlementPage,\n StatisticPage,\n SupportPage,\n SystemPage,\n InventoryPage,\n} from 'src/pages';\nimport { getAppTitle, isPermit } from 'src/shared/lib';\nimport { navRoutes, Roles } from '.';\n\nconst protectedRoutesConfig = {\n bank: () => (\n <>\n \n {isPermit(Roles.COMPANY_INFO) ? (\n }\n />\n ) : null}\n {isPermit(Roles.COMPANY_INFO) ? (\n \n ) : null}\n {isPermit(Roles.COMPANY_INFO) ? (\n \n ) : null}\n {isPermit(Roles.USER_MANAGEMENT) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.SETTLEMENT) ? (\n \n ) : null}\n {isPermit(Roles.SETTLEMENT) ? (\n \n ) : null}\n {isPermit(Roles.SETTLEMENT) ? (\n \n ) : null}\n {isPermit(Roles.CASHBOX) ? (\n \n ) : null}\n {isPermit(Roles.CASHBOX) ? (\n \n ) : null}\n {isPermit(Roles.CASHBOX) ? (\n \n ) : null}\n {isPermit(Roles.CASHBOX) ? (\n \n ) : null}\n {isPermit(Roles.ADMIN) ? (\n \n ) : null}\n {isPermit(Roles.EINVOICE) ? (\n \n ) : null}\n {isPermit(Roles.EINVOICE) ? (\n \n ) : null}\n {isPermit(Roles.EINVOICE) ? (\n \n ) : null}\n {isPermit(Roles.ADMIN) ? (\n \n ) : null}\n \n \n \n ),\n merchant: () => (\n <>\n \n {isPermit(Roles.STATISTIC) ? (\n \n ) : null}\n {isPermit(Roles.DYNAMIC) ? (\n \n ) : null}\n {isPermit(Roles.INVENTORY) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.OPERATION_SBP) ? (\n \n ) : null}\n {isPermit(Roles.SETTLEMENT) ? (\n \n ) : null}\n {isPermit(Roles.OPERATIONS) ? (\n \n ) : null}\n {isPermit(Roles.OPERATION_SBP) ? (\n \n ) : null}\n {isPermit(Roles.SETTLEMENT) ? (\n \n ) : null}\n {isPermit(Roles.ECOMM) ? (\n \n ) : null}\n {isPermit(Roles.ECOMM) ? (\n \n ) : null}\n {isPermit(Roles.ECOMM) ? (\n \n ) : null}\n {isPermit(Roles.EINVOICE) ? (\n \n ) : null}\n {isPermit(Roles.EINVOICE) ? (\n \n ) : null}\n {isPermit(Roles.SCHEDULE) ? (\n \n ) : null}\n \n {/* TODO: временно изменена странца для адреса -> navRoutes.support.main */}\n {/**/}\n \n \n \n \n \n ),\n};\n\nexport const ProtectedRoutes = () => {\n return protectedRoutesConfig[getAppTitle()]();\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { getAppTitle } from 'src/shared/lib';\nimport { navRoutes } from './URL';\n\nexport const PublicFooterNavigation: React.FC = () => {\n return footerNavigation[getAppTitle()]();\n};\n\nconst footerNavigation = {\n bank: () => (\n <>\n Техническая поддержка\n Частые вопросы\n Как подключить\n \n ),\n merchant: () => (\n <>\n Техническая поддержка\n Частые вопросы\n Как подключить\n \n ),\n};\n","import React from 'react';\nimport { Switch, Route, BrowserRouter } from 'react-router-dom';\n\nimport { MainPage } from 'src/pages';\nimport { URL } from 'src/app/config';\nimport { PublicFooterNavigation } from './public-footer-navigation';\nimport {\n ActivationForm,\n ChangePasswordForm,\n ForgotPasswordForm,\n LoginForm,\n} from 'src/features';\nimport { PublicPageLayout } from 'src/shared/ui';\n\nconst publicRoutes = (\n \n \n (\n }\n >\n \n \n )}\n />\n (\n }\n >\n \n \n )}\n />\n (\n }\n >\n \n \n )}\n />\n (\n }\n >\n \n \n )}\n />\n \n \n \n);\n\nexport { publicRoutes };\n","import {\n Chart,\n ArcElement,\n LineElement,\n BarElement,\n PointElement,\n BarController,\n BubbleController,\n DoughnutController,\n LineController,\n PieController,\n PolarAreaController,\n RadarController,\n ScatterController,\n CategoryScale,\n LinearScale,\n LogarithmicScale,\n RadialLinearScale,\n TimeScale,\n TimeSeriesScale,\n Decimation,\n Filler,\n Legend,\n Title,\n Tooltip,\n SubTitle,\n} from 'chart.js';\n\nChart.defaults.font.family = \"'Inter', Arial, Helvetica, sans-serif\";\n\nChart.register(\n ArcElement,\n LineElement,\n BarElement,\n PointElement,\n BarController,\n BubbleController,\n DoughnutController,\n LineController,\n PieController,\n PolarAreaController,\n RadarController,\n ScatterController,\n CategoryScale,\n LinearScale,\n LogarithmicScale,\n RadialLinearScale,\n TimeScale,\n TimeSeriesScale,\n Decimation,\n Filler,\n Legend,\n Title,\n Tooltip,\n SubTitle\n);\nexport const withChartConfig = (component: () => React.ReactNode) => () =>\n component();\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport './notification.scss';\n\nimport Notifications from 'react-notification-system-redux';\n\nclass Notification extends React.Component {\n render() {\n const { notifications } = this.props;\n const style = {\n NotificationItem: {\n DefaultStyle: {\n margin: '10px 5px 2px 1px',\n },\n },\n };\n return ;\n }\n}\n\nconst mapStateToProps = (state) => ({ notifications: state.notifications });\n\nexport default connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(Notification);\n","import React from 'react';\nimport Notification from 'src/components/Notification';\n\nexport const withNotifications = (component: () => React.ReactNode) => () =>\n (\n <>\n {component()}\n \n \n );\n","import { localLoad, localSave } from 'src/shared/lib';\n\nconst BrowserCheckShowedKey = 'browser-check-notification-was-shown';\n\nconst getNotificationWasShown = () => Boolean(localLoad(BrowserCheckShowedKey));\nconst saveNotificationWasShown = (showed?: boolean) =>\n localSave(BrowserCheckShowedKey, Boolean(showed));\n\nexport { getNotificationWasShown, saveNotificationWasShown };\n","import React, { FC, useEffect, useState } from 'react';\nimport { browserName, browserVersion } from 'react-device-detect';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { BrowserConfig } from 'src/entities/help';\n\nimport { createNotification } from 'src/redux/actions/notification';\n\nimport {\n getNotificationWasShown,\n saveNotificationWasShown,\n} from '../model/notification-showed-storage';\n\nexport const BrowserCheck: FC = ({ children }) => {\n const [wasShown, setWasShown] = useState(\n getNotificationWasShown()\n );\n\n const { logged } = useSelector((state) => state.auth);\n const dispatch = useDispatch();\n\n useEffect(() => {\n const isOutdated = () => {\n return BrowserConfig[browserName] > Number(browserVersion);\n };\n\n // показать уведомление один раз при входе в приложение, если браузер устарел\n if (logged && !wasShown && isOutdated()) {\n setWasShown(true);\n dispatch(\n createNotification(\n {\n title: 'Ваш браузер устарел',\n message:\n 'Пожалуйста, обновите ваш браузер для корректной работы приложения. Список поддерживаемых браузеров можно найти в разделе \"Поддержка\"',\n },\n 'error'\n )\n );\n }\n }, [dispatch, wasShown, logged]);\n\n useEffect(() => {\n // обновлять значение в localStorage, чтобы не показывать сообщение\n // при перезагрузке приложения\n saveNotificationWasShown(wasShown);\n }, [wasShown]);\n\n useEffect(() => {\n if (!logged) {\n // если пользователь разлогинился, показать снова после логина\n setWasShown(false);\n }\n }, [logged]);\n\n return
{children}
;\n};\n","import React, { FC, memo, MutableRefObject, useEffect, useRef } from 'react';\nimport { classNames } from 'src/shared/lib';\nimport { Button } from 'src/shared/ui';\nimport styles from './page-error.module.scss';\n\ntype TimerId = MutableRefObject>;\n\ninterface PageErrorProps {\n className?: string;\n}\n\nexport const PageError: FC = memo(({ className }) => {\n const timerRef = useRef() as TimerId;\n const reloadPage = () => {\n // eslint-disable-next-line no-restricted-globals\n location.reload();\n };\n\n useEffect(() => {\n timerRef.current = setTimeout(() => {\n reloadPage();\n }, 3000);\n\n return () => {\n clearTimeout(timerRef.current);\n };\n }, []);\n\n return (\n
\n

Произошла внутренняя ошибка на сайте

\n

Страница обновится через 3 секунды...

\n \n
\n );\n});\n","import React, { ErrorInfo, Suspense } from 'react';\nimport { PageError } from 'src/widgets/page-error';\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n}\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\nclass ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n console.log(error, errorInfo);\n }\n\n render() {\n const { hasError } = this.state;\n const { children } = this.props;\n if (hasError) {\n // You can render any custom fallback UI\n return (\n Loading...}>\n \n \n );\n }\n\n return children;\n }\n}\n\nexport const withErrorBoundary = (component: () => React.ReactNode) => () =>\n {component()};\n","import { publicRoutes, withProviders } from 'src/app/index';\n\nconst App = () => {\n return publicRoutes;\n};\n\nexport default withProviders(App);\n","import compose from 'compose-function';\nimport { withChartConfig } from './withChartConfig';\nimport { withNotifications } from './withNotifications';\nimport { withStore } from './withStore';\nimport { withLogVersionApp } from './withLogVersionApp';\nimport { withBrowserCheck } from './withBrowserCheck';\nimport { withErrorBoundary } from './withErrorBoundary';\n\nexport const withProviders = compose(\n withErrorBoundary,\n withStore,\n withBrowserCheck,\n withChartConfig,\n withLogVersionApp,\n withNotifications\n);\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport store from 'src/store';\n\nexport const withStore = (component: () => React.ReactNode) => () =>\n (\n // @ts-ignore\n {component()}\n );\n","import React from 'react';\nimport { BrowserCheck } from 'src/features/browser-check';\n\nexport const withBrowserCheck = (component: () => React.ReactNode) => () => {\n return {component()};\n};\n","import React, { useEffect } from 'react';\nimport { getAppTitle } from 'src/shared/lib';\n\nexport const withLogVersionApp = (component: () => React.ReactNode) => () => {\n useEffect(() => {\n const appTitle = getAppTitle();\n const pjson = require('../../../package.json');\n console.log(`app: ${appTitle}\\nversion: ${pjson.version}`);\n }, []);\n\n return <>{component()};\n};\n","import 'url-search-params-polyfill';\nimport React from 'react';\nimport { render } from 'react-dom';\n\nimport App from './App';\nimport moment from 'moment';\nimport 'moment/locale/ru';\n\nimport 'react-datepicker/dist/react-datepicker.css';\nimport './app/index.scss';\nimport 'inter-ui/inter.css';\n\n// Форматирует дату перед отправкой запроса на сервер\nmoment.prototype.toJSON = function () {\n return this.isValid() ? this.format('YYYY-MM-DD') : null;\n};\n\nrender(, document.getElementById('root'));\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"empty\":\"shows-info-about-receipt_empty__2BXke\",\"title\":\"shows-info-about-receipt_title__3uXo8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1lVKb\",\"header\":\"styles_header__1xjDI\",\"content\":\"styles_content__2RMt2\",\"open\":\"styles_open__378S4\",\"option\":\"styles_option__3suNT\",\"checkmark\":\"styles_checkmark__LxFxm\",\"active\":\"styles_active__3gYHT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1meK1\",\"checkmark\":\"styles_checkmark__3W8-P\",\"selected\":\"styles_selected__m4Euv\",\"hide\":\"styles_hide__1jtKB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__mzRx-\",\"input\":\"styles_input__3U6t6\",\"options\":\"styles_options__Hv5NS\",\"open\":\"styles_open__C13fS\",\"option\":\"styles_option__3h_Wd\",\"chevron\":\"styles_chevron__3LhpX\",\"rotate-chevron\":\"styles_rotate-chevron__19mIj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"terminal\":\"styles_terminal__nNJMF\",\"title-with-selector\":\"styles_title-with-selector__2Yfha\",\"no-icon\":\"styles_no-icon__1ekOS\",\"selected\":\"styles_selected__2_Vgg\",\"filter-row\":\"styles_filter-row__26Y9a\",\"name\":\"styles_name__3KnkL\",\"disabled\":\"styles_disabled__2e2BO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__1qTv_\",\"overflow-wrapper\":\"styles_overflow-wrapper__2pGxz\",\"header\":\"styles_header__UMbhf\",\"title\":\"styles_title__2hCf5\",\"spin\":\"styles_spin__3N_gu\",\"buttons\":\"styles_buttons__3lujl\",\"mdi\":\"styles_mdi__2B9VF\",\"mdi-2x\":\"styles_mdi-2x__3MCLx\",\"mdi-size-2x\":\"styles_mdi-size-2x__c9S90\",\"bounce\":\"styles_bounce__1xPC_\",\"icon-wrapper\":\"styles_icon-wrapper__2k4qg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"layout_layout__jVplD\",\"top-content\":\"layout_top-content__1BI7g\",\"content-wrapper\":\"layout_content-wrapper__3I8JU\",\"content\":\"layout_content__19DUu\",\"title\":\"layout_title__ScReS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"interval\":\"edit-registry-mailing-schedule_interval__3AHk5\",\"amount\":\"edit-registry-mailing-schedule_amount__33wEb\",\"button\":\"edit-registry-mailing-schedule_button__Ndzvd\",\"icon\":\"edit-registry-mailing-schedule_icon__3WpU_\",\"tool-tip\":\"edit-registry-mailing-schedule_tool-tip__3JsZY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"page\":\"public-page-layout_page__2NRBx\",\"main\":\"public-page-layout_main__cc9_T\",\"content\":\"public-page-layout_content__3iGZj\",\"footer\":\"public-page-layout_footer__1sZe8\",\"wrapper\":\"public-page-layout_wrapper__1v0v4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__6IUYc\",\"text\":\"styles_text__3SMuS\",\"bottom-text\":\"styles_bottom-text__xJDr1\",\"link\":\"styles_link__2xxKL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"einvoice-table_title__3q_LJ\",\"einvoice-item\":\"einvoice-table_einvoice-item__RUfK-\",\"error-keys\":\"einvoice-table_error-keys__f-PHj\",\"datepicker\":\"einvoice-table_datepicker__238YW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sidebar\":\"sidebar_sidebar__EWzP7\",\"sidebar__header\":\"sidebar_sidebar__header__2viRP\",\"sidebar__text\":\"sidebar_sidebar__text__2y7Du\",\"sidebar__link\":\"sidebar_sidebar__link__1Y_RQ\",\"icon\":\"sidebar_icon__tfvXk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"about-system_header__cgdIy\",\"paragraph\":\"about-system_paragraph__1eFAx\",\"table\":\"about-system_table__2MrAT\"};"],"sourceRoot":""}