{"version":3,"sources":["config.js","redux/hor/module/selectors.js","redux/utils/createOrmSelector/index.js","redux/utils/fetchWithView.js","redux/hor/module/generator.js","utils/api/utils/formatHeaders/formatHeaders.ts","utils/api/get.ts","utils/api/post.ts","utils/api/put.ts","utils/api/delete/delete.js","utils/getKeyInfo/getKeyInfo.js","redux/selectors/getUserSupplementGroups/index.js","redux/selectors/getCatalogGroups/index.js","redux/selectors/getCatalogGroup/index.js","redux/selectors/getAbstractNorm/index.js","redux/selectors/getChartNorm/index.js","redux/selectors/getInstitutionSubscription/index.js","redux/selectors/getTariffsAll/index.js","redux/selectors/getInstitutionTariffIsTrial/index.ts","redux/selectors/getUserIsPartner/index.js","redux/selectors/getCreateAlert/index.js","redux/selectors/getDefaultIngestions/index.js","redux/selectors/getEatingTypes/index.js","redux/selectors/getPatientDiseaseIsc/index.js","redux/selectors/getDiseaseSpecificList/index.js","redux/selectors/getElementsAdditionalVisible/index.js","redux/modules/subscriptionOperations/selectors.js","redux/selectors/getInstitutionActiveCount/index.js","redux/selectors/getInstitutionSubscriptionEnd/index.ts","redux/selectors/getInstitutionSubscriptionDurationTotal/index.js","redux/selectors/getPartner/index.js","redux/selectors/getSubscriptionUrl/index.js","redux/selectors/getInstitutionBanner/index.js","redux/selectors/getInstitutionDiscount/index.js","redux/selectors/getInstitutionShowSubscription/index.js","redux/selectors/getInstitutionSubscriptionBonusDays/index.js","redux/selectors/getInstitutionSubscriptionDuration/index.ts","redux/selectors/getInstitutionSubscriptionIsExpired/index.js","redux/selectors/getInstitutionSubscriptionStart/index.js","redux/selectors/getInstitutionSubscriptionIsExtended/index.js","redux/selectors/getInstitutionTariffKey/index.js","redux/selectors/getTariff/index.js","redux/selectors/getTariffReal/index.js","redux/selectors/getInstitutionTariff/index.js","redux/selectors/getInstitutionTariffIsSpecial/index.js","redux/selectors/getInstitutionTariffName/index.js","redux/selectors/getInstitutionWorkplaceCount/index.js","redux/selectors/getJournal/index.js","redux/selectors/getLoaderByType/index.js","redux/selectors/getMealsList/index.js","redux/selectors/getMeals/index.js","redux/selectors/getMealsGrouped/index.js","redux/selectors/getMenuCatalog/index.js","redux/selectors/getPatientsList/index.ts","redux/selectors/getMenuPatient/index.js","icons/support.svg","icons/time.svg","icons/folder.svg","icons/calendar.svg","icons/user.svg","icons/location.svg","icons/personal.svg","icons/v-camera.svg","icons/link.svg","icons/export.svg","redux/selectors/getUserIsSupport/index.js","redux/selectors/getMenuUser/index.js","redux/selectors/getUserPhoneNotification/index.js","redux/selectors/getUserNpaNotification/index.js","redux/selectors/getNotification/index.js","redux/selectors/getPatientAllergenIngredientsGrouped/index.js","redux/selectors/getPatientAllergenIngredients/index.js","redux/selectors/getPatientAuthor/index.js","redux/selectors/getPatientWeight/index.js","redux/selectors/getPatientCorrectionValues/index.js","redux/selectors/getPatientIngestions/index.js","redux/selectors/getPatientIsInArchive/index.js","redux/selectors/getPatientJournal/index.js","redux/selectors/getPatientRationNewKey/index.js","redux/selectors/getPatientPhone/index.js","redux/selectors/getPatientRationNewId/index.js","redux/selectors/getPatientReceptions/index.js","redux/selectors/getPatientReceptionId/index.js","redux/selectors/getPatientReception/index.js","modules/Patient/redux/receptions/selectors.js","redux/selectors/getUserPatients/index.ts","redux/selectors/getUserPatientReceptions/index.js","redux/selectors/getSubscriptionPromocode/index.js","redux/selectors/getSupplementWithStatus/index.js","redux/selectors/getSupplementGrouped/index.js","redux/selectors/getSupportUrl/index.js","redux/selectors/getPaidFutureOneDaySubscriptionOperation/index.js","redux/selectors/getProductComposition/index.js","redux/selectors/getPromocodeDiscount/index.js","redux/selectors/getTariffDays/index.ts","redux/selectors/getTotalDiscount/index.js","redux/selectors/getUserFlags/index.js","redux/selectors/getUserEmail/index.js","redux/selectors/getPatientEmail/index.js","redux/selectors/getUserIsCanEditSystemCatalog/index.js","redux/selectors/getUserFullName/index.js","redux/selectors/getUserIsChosen/index.js","redux/selectors/getUserKey/index.js","redux/selectors/getUserJournal/index.js","redux/selectors/getUserJournalActiveDays/index.js","redux/selectors/getUserLastPatient/index.js","redux/selectors/getUserNotificationsExcluded/index.js","redux/selectors/getUserNotifications/index.js","redux/selectors/getInstitutionSubscriptionIsAuto/index.ts","redux/utils/createReducer/index.js","redux/hor/orm-module/generator.js","redux/modules/patients/selectors.js","redux/modules/patients/index.ts","modules/Dietanamnez/redux/selectors/getDietanamnez/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezWithoutSelftest/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezChemistryData/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezChemistry/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezConsumption/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezFrequency/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezIsAssigned/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezIsAssigning/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezItems/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezKindsFood/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezIsEmpty/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezLastKey/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezList/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezNew/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezNewSelf/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezPortion/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezProduct/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezType/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezTiles/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezProducts/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezProductsExcluded/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezProductsIncluded/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezProfile/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezTileMap/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezTilesVisible/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezTilesGroups/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezIdWithotNotEnded/index.js","redux/utils/dispatchAndWait/index.js","redux/selectors/getPatientKey/index.ts","utils/orm/removeRelated.js","modules/Rations/redux/modules/ration/index.js","components/Text/Text.js","redux/selectors/getUser/index.js","redux/modules/institutions/selectors.js","redux/modules/institutions/index.js","components/Field/index.js","utils/react-redux.js","components/Grid/Row.js","components/Grid/Column.js","utils/isLocalKey/isLocalKey.js","components/Barchart/helpers.js","utils/carrot/carrot.js","utils/carrot/authorizeUserInCarrot.js","utils/carrot/events/patient.js","utils/carrot/events/user.js","redux/utils/createCachedOrmSelector/index.js","redux/modules/staff/index.js","utils/validation/defaultOptions.js","redux/selectors/getUserIsLight/index.ts","modules/Rations/redux/selectors/getDayKey/index.js","components/Icon/Icon.js","components/Button/Button.js","modules/Rations/redux/selectors/getRationKey/index.js","redux/modules/auth/selectors.js","modules/Rations/redux/modules/day/index.js","redux/selectors/getApplicationUser/index.js","redux/selectors/getPatient/index.ts","redux/modules/meals/selectors.js","redux/modules/meals/index.js","redux/modules/loader/reducer.js","redux/modules/loader/selectors.js","redux/modules/loader/index.js","redux/modules/auth/reducer.js","redux/utils/runButton/index.js","components/Link/Link.js","redux/modules/ingredients/selectors.js","redux/modules/ingredients/index.js","redux/modules/productComposition/selectors.js","redux/modules/productComposition/index.js","modules/Dietanamnez/redux/modules/dietanamnez/index.js","redux/modules/journal/selectors.js","redux/modules/journal/index.js","helpers/publicLogin.js","redux/utils/getPublicToken/index.js","components/Title/Title.js","modules/Dietanamnez/redux/selectors/getDietanamnezKey/index.js","redux/modules/notification/index.js","utils/validation/simplePasswords.js","utils/validation/validators/validators.js","utils/validation/defaultConfig.js","utils/validation/getErrorText.js","utils/validation/createValidate.js","utils/validation/createFieldValidate.js","decorators/containerQuery.js","helpers/constants.js","utils/api/utils/queue/queue.js","utils/api/utils/cache/cache.js","utils/api/utils/genericRequest/genericRequest.js","utils/api/utils/serverMaintenance/serverMaintenance.js","utils/api/request.js","utils/api/utils/interceptor/interceptor.js","modules/Rations/redux/modules/ration/selectors.js","components/Modal/Modal.js","components/Select/index.js","redux/modules/supplement/selectors.js","redux/modules/supplement/index.js","redux/modules/countries/selectors.js","redux/modules/countries/index.js","redux/modules/subscriptionOperations/index.js","redux/modules/cities/selectors.js","redux/modules/cities/index.js","modules/Supplement/redux/modules/supplement/index.js","redux/selectors/getUserRole/index.js","redux/selectors/getUserRights/getUserRights.ts","utils/convertFromServerTimeZoneToCurrentTimeZone.js","redux/modules/notification/reducer.js","utils/cookie/token.js","utils/validateFromResponse/index.js","redux/utils/getErrorFromResponse/getErrorFromResponse.js","utils/roundNumber/index.js","model/entities/patientGroups/index.ts","redux/selectors/getUserType/index.js","redux/selectors/getInstitution/index.js","redux/selectors/getUserCanEditSystemTemplates/index.js","redux/modules/user/selectors.js","redux/modules/user/index.js","redux/selectors/getStaff/index.js","redux/modules/ping/reducer.js","utils/localStorage/index.js","modules/Analyses/redux/modules/patientAnalysis/index.js","modules/Dietanamnez/redux/modules/dietanamnezItem/saga.js","modules/Dietanamnez/redux/modules/dietanamnezItem/index.js","redux/modules/subscriptionPromocode/reducer.js","modules/User/redux/statistic/selectors.js","modules/User/redux/statistic/index.js","redux/selectors/getPatientId/index.js","utils/validation/presets.js","redux/modules/loading/reducer.js","redux/modules/elements/selectors.js","modules/Patient/redux/disease/selectors.js","modules/Patient/redux/disease/index.js","redux/selectors/getUserCountry/index.js","redux/selectors/getDiseaseList/index.js","redux/selectors/getPatientDisease/index.js","modules/Rations/redux/selectors/getRationDayNumber/index.js","redux/orm.js","modules/Analyses/redux/modules/analysisBlood/index.js","modules/Analyses/redux/modules/analysisGenes/index.js","modules/Analyses/redux/modules/analysisHair/index.js","modules/Analyses/redux/modules/analysisSalt/index.js","modules/Analyses/redux/modules/analysisVitamin/index.js","modules/Patient/redux/notes/selectors.js","modules/Patient/redux/notes/saga.js","modules/Patient/redux/notes/index.js","components/Info/Info.js","utils/declOfNums/declOfNums.js","components/Subscription/Subscription.js","redux/modules/productTechCard/selectors.js","redux/modules/productTechCard/index.js","redux/selectors/getSupplementKey/index.js","redux/modules/supplementComposition/index.js","redux/modules/supplementTechCard/selectors.js","redux/modules/supplementTechCard/index.js","modules/Rations/redux/modules/patientsElements/index.ts","redux/modules/registrationLinks/index.js","utils/delay/delay.js","redux/modules/products/selectors.js","redux/modules/products/index.js","redux/modules/specificEatingTypes/selectors.js","redux/modules/specificEatingTypes/index.js","utils/getFullName.js","utils/memoizeByResult.js","redux/modules/patientParams/selectors.js","redux/modules/patientParams/index.js","redux/modules/mealTypes/selectors.js","redux/modules/mealTypes/index.js","components/IconDotLoader/IconDotLoader.js","utils/ageOptions.js","redux/modules/elementNorms/selectors.js","redux/modules/elementNorms/index.js","utils/dateField/dateField.js","utils/constructFile/constructFile.js","modules/Dietanamnez/redux/selectors/getDietanamnezLastIdWithoutNotEnded/index.js","redux/selectors/getPatientNorm/index.js","redux/selectors/getMealsAll/index.js","redux/selectors/getSupplementAll/index.js","redux/selectors/getAuthUser/index.ts","redux/selectors/getPatientIllness/index.js","redux/selectors/getIllnessList/index.js","redux/selectors/getPatientSpecificConditions/index.js","redux/selectors/getElementsVisible/index.js","redux/selectors/getInstitutionKey/index.js","redux/selectors/getPatientAllergen/index.js","redux/selectors/getPatientEnergy/index.js","redux/selectors/getPatientEnergyMax/index.js","modules/Rations/redux/selectors/getRationDays/index.js","redux/modules/patientsAllergen/selectors.js","redux/modules/patientsAllergen/index.js","redux/selectors/getPatientAge/index.js","redux/selectors/getMealsWithStatus/index.js","redux/modules/institutionSubscription/index.js","redux/modules/subitems.js","redux/utils/transformVirtualCategory/transformVirtualCategory.js","redux/utils/getSubitemsEffect/getSubitemsEffect.js","modules/Rations/redux/modules/ingestion/selector.js","modules/Rations/redux/modules/ingestion/index.js","modules/Rations/redux/modules/allergen/selectors.js","modules/Rations/redux/modules/allergen/index.js","modules/Rations/redux/selectors/getDayComposition/index.js","modules/Rations/redux/selectors/getDayCompositionGrouped/index.js","modules/Rations/redux/selectors/getRation/index.js","modules/Rations/redux/selectors/getRationGrade/index.js","modules/Rations/redux/selectors/getRationNorm/index.js","modules/Rations/redux/selectors/getDayCompositionPlan/index.js","modules/Rations/redux/selectors/getDayGroupComposition/index.js","modules/Rations/redux/selectors/getDayGroupDaysWithSameTime/index.js","modules/Rations/redux/selectors/getDayGroupItems/index.js","modules/Rations/redux/selectors/getDayGroups/index.js","modules/Rations/redux/selectors/getDayHaveEmptyGroup/index.js","modules/Rations/redux/selectors/getDayIsFilled/index.js","modules/Rations/redux/selectors/getDaysFilled/index.js","modules/Rations/redux/selectors/getDaysTemplates/index.js","modules/Rations/redux/selectors/getDish/index.js","modules/Rations/redux/selectors/getDishGroupActiveItem/index.js","modules/Rations/redux/selectors/getDishGroupItems/index.js","modules/Rations/redux/selectors/getInstitutionRationTemplates/index.js","modules/Rations/redux/selectors/getPatientRationNewKey/index.js","modules/Rations/redux/selectors/getPatientRationNewId/index.js","modules/Rations/redux/selectors/getPatientRations/index.js","modules/Rations/redux/selectors/getRationTableElements/index.js","modules/Rations/redux/selectors/getRationTableElementsKey/index.js","modules/Rations/redux/selectors/getRationColumns/columns.js","modules/Rations/redux/selectors/getRationColumns/index.js","modules/Rations/redux/selectors/getRationColumnsWidth/index.js","modules/Rations/redux/selectors/getRationComposition/index.js","modules/Rations/redux/selectors/getRationCompositionGrouped/index.js","modules/Rations/redux/selectors/getRationDaysAllowEdit/index.js","modules/Rations/redux/selectors/getRationDuration/index.js","modules/Rations/redux/selectors/getRationIsAssigned/index.js","modules/Rations/redux/selectors/getRationIsAssigning/index.js","modules/Rations/redux/selectors/getRationIsFilled/index.js","modules/Rations/redux/selectors/getRationIsTemplate/index.js","modules/Rations/redux/selectors/getRationOverview/index.js","modules/Rations/redux/selectors/getRationProductDates/index.js","modules/Rations/redux/selectors/getRationsMode/index.js","modules/Rations/redux/selectors/getRationSourceTitle/index.js","modules/Rations/redux/selectors/getRationTableDishIsActive/index.js","modules/Rations/redux/selectors/getRationTableGroupIsInactive/index.js","modules/Rations/redux/selectors/getRationTableIsDisplayBzhuInRelativePercent/index.js","modules/Rations/redux/selectors/getRationTableIsFixed/index.js","modules/Rations/redux/selectors/getRationTableItemMenuActive/index.js","modules/Rations/redux/selectors/getRationTableMenuActive/index.js","modules/Rations/redux/selectors/getRationTableTotalIsInactive/index.js","modules/Rations/redux/selectors/getRationTableWidth/index.js","modules/Rations/redux/selectors/getRationSystemTemplates/index.js","modules/Rations/redux/selectors/getRationGeneratorTemplates/index.js","modules/Rations/redux/selectors/getUserRationTemplates/index.js","modules/Rations/redux/selectors/getRationTemplates/index.js","modules/Rations/redux/selectors/getRationTemplatesRecommended/index.js","modules/Rations/redux/selectors/getRationTemplatesRest/index.js","modules/Rations/redux/selectors/getRationTitle/index.js","modules/Rations/redux/selectors/getUserRationNewTemplateKey/index.js","modules/Rations/redux/selectors/getUserRationNewTemplate/index.js","components/RadioGroup/RadioGroup.js","utils/time/minutesToTime.js","utils/time/timeToMinutes.js","redux/modules/staffFlags/index.js","modules/Supplement/redux/modules/ui/index.js","redux/selectors/getItemByKey/index.js","components/Legend/Legend.js","components/Grid/Grid.module.css","utils/api/utils/localStorage/localStorage.js","decorators/withFetcher.js","components/Checkbox/CheckboxConnected.js","decorators/pagePermission.js","modules/Patient/redux/receptions/saga.js","modules/Patient/redux/receptions/index.js","components/BarchartTable/chemical/MiddleColumnHead/MiddleColumnHead.js","components/BarchartTable/BarchartTable.js","redux/modules/productGroups/selectors.js","redux/modules/productGroups/index.js","redux/modules/supplementGroups/selectors.js","redux/modules/supplementGroups/index.js","redux/modules/roles/seletors.js","redux/modules/roles/index.js","modules/Rations/redux/modules/mode/selectors.js","modules/Rations/redux/modules/mode/index.js","utils/validation/defaultText.js","modules/Supplement/redux/modules/supplementDish/index.js","components/FieldPassword/FieldPassword.js","components/FieldPassword/FieldPasswordConnected.js","redux/modules/portions/selectors.js","redux/modules/portions/index.js","modules/Patient/redux/illness/selectors.js","modules/Patient/redux/illness/index.js","redux/modules/subscriptionTariffs/index.js","model/index.ts","redux/modules/cookingTechniques/selectors.js","redux/modules/cookingTechniques/index.js","redux/modules/rights/seletors.js","redux/modules/rights/index.js","redux/modules/ping/saga.js","redux/modules/institutions/saga.js","redux/modules/notification/saga.js","redux/modules/meals/saga.js","redux/modules/ingredients/saga.js","redux/modules/patients/saga.js","redux/modules/journal/saga.js","modules/Dietanamnez/redux/selectors/getDietanamnezId/index.js","modules/Dietanamnez/redux/selectors/getDietanamnezLastKeyWithoutNotEnded/index.js","redux/selectors/getInstitutionSubscriptionIsBlocked/index.js","redux/modules/supplement/saga.js","redux/selectors/getPatientEnergyMin/index.js","redux/modules/subscriptionPromocode/saga.js","redux/selectors/getSupplementId/index.js","modules/Rations/redux/selectors/getRationId/index.js","modules/Rations/redux/selectors/getDay/index.js","api/getVariable.ts","redux/modules/subscriptionOperations/saga.js","redux/modules/subscriptionPromocode/selectors.js","modules/Rations/redux/modules/correction/selectors.js","modules/Rations/redux/modules/correction/index.js","modules/Patient/redux/notifications/selectors.js","modules/Patient/redux/notifications/index.js","modules/Patient/redux/notificationsExcluded/selectors.js","modules/Patient/redux/notificationsExcluded/index.js","components/UserForm/UserForm.js","components/RequiredNotice/RequiredNotice.js","redux/utils/parseResult.js","redux/modules/notification/selectors.js","redux/utils/waitFor/index.js","redux/modules/partner/index.js","redux/selectors/getUserProfile/index.js","components/AvatarPicker/AvatarPicker.js","components/AvatarPicker/AvatarPickerConnected.js","redux/utils/getErrorTextFromResponse/getErrorTextFromResponse.js","modules/Supplement/redux/modules/supplementAllergen/selectors.js","modules/Supplement/redux/modules/supplementAllergen/index.js","components/Error/Error.js","components/Message/Message.js","modules/Analyses/redux/selectors/getAnalysesTypes/index.js","modules/Analyses/redux/selectors/getAnalysesFilters/index.js","modules/Analyses/redux/selectors/getAnalysisId/index.js","modules/Analyses/redux/selectors/getAnalysisKey/index.js","modules/Analyses/redux/selectors/getAnalysisItem/index.js","modules/Analyses/redux/selectors/getAnalysisData/index.js","modules/Analyses/redux/selectors/getAnalysisData/getAnalysisDataBlood/index.js","modules/Analyses/redux/selectors/getAnalysisData/getAnalysisDataGenes/index.js","modules/Analyses/redux/selectors/getAnalysisData/getAnalysisDataVitamin/index.js","modules/Analyses/redux/selectors/getAnalysisData/getAnalysisDataHair/index.js","modules/Analyses/redux/selectors/getAnalysisData/getAnalysisDataSalt/index.js","modules/Analyses/redux/selectors/getAnalysis/index.js","modules/Analyses/redux/selectors/getAnalysisTitle/index.js","components/More/More.js","modules/Analyses/components/AnalysRow/AnalysRow.js","modules/Analyses/utils/formAnalysisItem.js","modules/Analyses/containers/AnalysisItemGenes/GeneticAnalysisItem.js","modules/Analyses/containers/AnalysisItemVitamin/VitaminAnalysisItem.js","modules/Analyses/components/RowsTable/RowsTable.js","modules/Analyses/components/AnalysisGenes/AnalysisGenes.js","modules/Analyses/components/AnalysisItemSalt/AnalysisItemSalt.js","modules/Analyses/containers/AnalysisItemSalt/SaltAnalysisItem.js","modules/Analyses/components/AnalysisSalt/AnalysisSalt.js","modules/Analyses/utils/bloodAndHairAnalysis/formatValue.js","modules/Analyses/containers/AnalysisItemBlood/BloodAnalysisItem.js","modules/Analyses/utils/bloodAndHairAnalysis/getValidator.js","modules/Analyses/components/AnalysisBlood/AnalysisBlood.js","modules/Analyses/containers/AnalysisItemHair/HairAnalysisItem.js","modules/Analyses/components/AnalysisHair/HairAnalysis.js","modules/Analyses/components/AnalysisVitamin/AnalysisVitamin.js","modules/Analyses/redux/selectors/getAnalysisViewComponent/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/getAnalysisViewBlood/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/getAnalysisViewGenes/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/getAnalysisViewHair/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/getAnalysisViewSalt/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/getAnalysisViewVitamin/index.js","modules/Analyses/redux/selectors/getAnalysisViewData/index.js","modules/Analyses/redux/selectors/getGenotypes/index.js","modules/Analyses/redux/selectors/getAnalysisViewOptions/index.js","modules/Analyses/redux/selectors/getChemicalElements/index.js","modules/Analyses/redux/selectors/getComparision/index.js","modules/Analyses/redux/selectors/getGenes/index.js","modules/Analyses/redux/selectors/getVitamins/index.js","modules/Analyses/redux/selectors/getComparisionRows/index.js","modules/Analyses/redux/selectors/getPatientAnalyses/index.js","redux/modules/supplementComposition/selectors.js","modules/Supplement/redux/modules/supplement/selectors.js","modules/Patient/redux/inbody/selectors.js","modules/Patient/redux/inbody/saga.js","modules/Patient/redux/inbody/index.js","components/Checkbox/Checkbox.js","modules/Patient/redux/medass/selectors.js","modules/Patient/redux/medass/saga.js","modules/Patient/redux/medass/index.js","modules/Catalog/redux/patientInWork/saga.js","modules/Catalog/redux/patientInWork/index.js","modules/Analyses/components/AnalysRow/AnalysRow.module.css","modules/Analyses/components/RowsTable/RowsTable.module.css","modules/Public/components/RegistrationLayout/RegistrationLayout.module.css","components/AvatarPicker/AvatarPicker.module.css","components/UserForm/UserForm.module.css","components/InstituteForm/InstituteForm.module.css","components/Content/Content.js","components/ModalForm/ModalForm.js","decorators/onFormChange.js","redux/modules/windowsOpen/reducer.js","containers/Page/Page.js","redux/modules/elements/index.js","modules/Rations/redux/modules/ui/index.js","components/Editor/Option.js","components/Editor/Editor.js","components/Editor/EditorConnected.js","redux/modules/filterOptions/selectors.js","redux/modules/filterOptions/index.js","redux/modules/units/selectors.js","redux/modules/units/index.js","modules/Patient/redux/activityLife/selectors.js","modules/Patient/redux/activityLife/index.js","modules/Patient/redux/activitySport/selectors.js","modules/Patient/redux/activitySport/index.js","components/Page/Page.js","redux/selectors/getInstitutionSubscriptionState/index.ts","components/Barchart/Gradient/Gradient.js","components/Barchart/Defs/Defs.js","components/Barchart/Tooltip/Tooltip.js","components/Barchart/default/OneRect/OneRect.js","components/Barchart/default/NormRangeLine/Triangle.js","components/Barchart/default/NormRangeLine/NormRangeLine.js","components/Barchart/default/VerticalLine/VerticalLine.js","components/Barchart/Barchart.js","components/Barchart/chemical/OneRect/OneRect.js","components/Barchart/chemical/HighertLimit/HigherLimit.js","components/Barchart/chemical/NormRangeLine/NormRangeLine.js","components/Barchart/chemical/VerticalLine/VerticalLine.js","components/Barchart/BarChartDefault.js","components/Radio/Radio.js","components/Radio/RadioConnected.js","modules/Patient/redux/activityChild/selectors.js","modules/Patient/redux/activityChild/index.js","modules/User/redux/statisticDates/selectors.js","modules/User/redux/statisticDates/index.js","components/IconLoader/IconLoader.js","redux/modules/subscriptionDays/index.js","modules/Analyses/redux/modules/analysisType/index.js","modules/Dietanamnez/redux/modules/dietanamnezTiles/index.js","modules/Catalog/components/ProductFormSupplement/ProductFormIngredient.js","redux/modules/staff/selectors.js","modules/Supplement/redux/modules/supplementDish/selectors.js","components/Barchart/Barchart.module.css","components/Field/FieldDate.js","components/Field/Field.js","components/Field/FieldConnected.js","components/ImagePicker/ImagePicker.js","components/ImagePicker/ImagePickerConnected.js","components/Success/Success.js","components/Select/Select.js","components/Select/SelectConnected.js","components/IconLoaderFilled/IconLoaderFilled.js","redux/modules/webinar/index.js","modules/Analyses/redux/modules/chemicalElement/index.js","modules/Analyses/redux/modules/gene/index.js","modules/Analyses/redux/modules/genotypes/index.js","modules/Analyses/redux/modules/vitamin/index.js","modules/Dietanamnez/redux/modules/dietanamnezFrequency/index.js","modules/Dietanamnez/redux/modules/dietanamnezPortion/index.js","modules/Dietanamnez/redux/modules/tileImageMap/index.js","modules/Glossary/redux/normChildren/index.js","modules/Glossary/redux/normMen/index.js","modules/Glossary/redux/normPregnant/index.js","modules/Glossary/redux/normWomen/index.js","modules/Rations/utils/timeToNumber/index.js","components/BarchartTable/utils/getNormText.js","redux/selectors/getLocalization/index.js","components/LoaderIcons/icons.js","components/LoaderIcons/LoaderIcons.js","components/FieldDate/FieldDate.js","components/FieldDate/FieldDateConnected.js","redux/modules/patientActivity/reducer.js","utils/capitalize/capitalize.js","components/InstituteForm/InstituteForm.js","components/Barchart/default/HighertLimit/HigherLimit.js","components/BarchartTable/default/MiddleColumnHead/MiddleColumnHead.js","components/AppLoader/AppLoader.module.css","components/Icon/Icon.module.css","components/LoaderIcons/LoaderIcons.module.css","components/Field/Field.module.css","components/IconLoaderFilled/IconLoaderFilled.module.css","components/Select/Select.module.css","components/IconLoader/IconLoader.module.css","components/IconDotLoader/IconDotLoader.module.css","components/Button/Button.module.css","components/ImagePicker/ImagePicker.module.css","components/Editor/Editor.module.css","modules/Catalog/components/ProductFormSupplement/ProductFormIngredient.module.css","components/Link/Link.module.css","components/Text/Text.module.css","components/More/More.module.css","modules/Analyses/components/AnalysisItemSalt/AnalysisItemSalt.module.css","modules/Analyses/components/AnalysisSalt/AnalysisSalt.module.css","components/Info/Info.module.css","components/Barchart/Tooltip/ToolTip.module.css","components/BarchartTable/BarchartTable.module.css","components/Modal/Modal.module.css","components/ServerUnderMaintenance/ServerUnderMaintenance.module.css","components/Title/Title.module.css","components/Subscription/Subscription.module.css","components/FieldPassword/FieldPassword.module.css","components/Checkbox/Checkbox.module.css","components/Message/Message.module.css","modules/Public/components/Login/Login.module.css","modules/Public/components/LoginLayout/LoginLayout.module.css","components/Success/Success.module.css","components/Error/Error.module.css","modules/Public/components/PasswordRecovery/PasswordRecovery.module.css","components/Content/Content.module.css","components/Page/Page.module.css","components/Radio/Radio.module.css","components/RadioGroup/RadioGroup.module.css","components/Legend/Legend.module.css","components/RequiredNotice/RequiredNotice.module.css","components/ModalForm/ModalForm.module.css","components/AmwayPopup/AmwayPopup.module.css","model/dictionaries/supplementsComposition/index.ts","model/dictionaries/createDictionaryModel.ts","../ /^/.//.*/.svg$","components/Icon/icons/archive.svg","components/Icon/icons/arrow-bottom.svg","components/Icon/icons/arrow-extreme.svg","components/Icon/icons/arrow-left.svg","components/Icon/icons/arrow-login.svg","components/Icon/icons/arrow-solid-bottom.svg","components/Icon/icons/arrow.svg","components/Icon/icons/arrow_table.svg","components/Icon/icons/attention.svg","components/Icon/icons/b.svg","components/Icon/icons/back.svg","components/Icon/icons/beef.svg","components/Icon/icons/bill.svg","components/Icon/icons/biochemical.svg","components/Icon/icons/blank.svg","components/Icon/icons/calendar.svg","components/Icon/icons/carrot.svg","components/Icon/icons/check.svg","components/Icon/icons/circle.svg","components/Icon/icons/clock.svg","components/Icon/icons/cloud.svg","components/Icon/icons/copy-down.svg","components/Icon/icons/copy-up.svg","components/Icon/icons/copy.svg","components/Icon/icons/cross.svg","components/Icon/icons/dd_logo-short.svg","components/Icon/icons/dd_logo.svg","components/Icon/icons/dd_logo_small.svg","components/Icon/icons/dd_logo_white.svg","components/Icon/icons/del.svg","components/Icon/icons/double-arrow-down.svg","components/Icon/icons/edit.svg","components/Icon/icons/error.svg","components/Icon/icons/eye-crossed.svg","components/Icon/icons/eye.svg","components/Icon/icons/fish.svg","components/Icon/icons/fruit.svg","components/Icon/icons/genetic.svg","components/Icon/icons/graph.svg","components/Icon/icons/i.svg","components/Icon/icons/icon_arrow_small_l.svg","components/Icon/icons/icon_info.svg","components/Icon/icons/infinity.svg","components/Icon/icons/info.svg","components/Icon/icons/lens.svg","components/Icon/icons/list.svg","components/Icon/icons/list_o.svg","components/Icon/icons/list_u.svg","components/Icon/icons/logo-short.svg","components/Icon/icons/logo.svg","components/Icon/icons/logo_small.svg","components/Icon/icons/logo_white.svg","components/Icon/icons/logout.svg","components/Icon/icons/microelements.svg","components/Icon/icons/minus.svg","components/Icon/icons/moon.svg","components/Icon/icons/normweight.svg","components/Icon/icons/patient-card.svg","components/Icon/icons/payment_maestro.svg","components/Icon/icons/payment_mastercard.svg","components/Icon/icons/payment_mir.svg","components/Icon/icons/payment_visa.svg","components/Icon/icons/pdf.svg","components/Icon/icons/person.svg","components/Icon/icons/photo.svg","components/Icon/icons/plus.svg","components/Icon/icons/printer.svg","components/Icon/icons/qa.svg","components/Icon/icons/question.svg","components/Icon/icons/recovery.svg","components/Icon/icons/refresh.svg","components/Icon/icons/restore.svg","components/Icon/icons/revert.svg","components/Icon/icons/right_arrow.svg","components/Icon/icons/rouble.svg","components/Icon/icons/save.svg","components/Icon/icons/search.svg","components/Icon/icons/signup.svg","components/Icon/icons/soup.svg","components/Icon/icons/sun.svg","components/Icon/icons/sun_full.svg","components/Icon/icons/sun_rising.svg","components/Icon/icons/supplement.svg","components/Icon/icons/thinCross.svg","components/Icon/icons/thinTick.svg","components/Icon/icons/tick.svg","components/Icon/icons/time.svg","components/Icon/icons/trueArrow.svg","components/Icon/icons/universal.svg","components/Icon/icons/urine.svg","components/Icon/icons/v.svg","components/Icon/icons/vitamins.svg","components/Icon/icons/welcome_abort.svg","components/Icon/icons/welcome_ration.svg","components/Icon/icons/welcome_schedule.svg","components/Icon/icons/welcome_time.svg","components/Icon/icons/welcome_trust.svg","components/AppLoader/AppLoader.js","containers/AppLoader/AppLoader.js","containers/Root/Root.js","redux/middlewares/raven.js","redux/middlewares/params.js","redux/middlewares/ls-sync.js","redux/middlewares/createdUser.js","modules/Catalog/redux/index.js","modules/Glossary/redux/index.js","modules/Patient/redux/index.js","modules/Public/redux/actions/saga.js","modules/Public/redux/actions/index.js","utils/removeCustom.js","modules/Public/redux/signup/saga.js","modules/Public/redux/signup/index.js","modules/Public/redux/index.js","modules/Rations/redux/modules/day/saga.js","modules/Rations/redux/modules/ration/saga.js","helpers/rnd_generator.js","modules/Rations/redux/modules/patientsElements/saga.js","modules/Rations/redux/index.js","modules/Supplement/redux/modules/supplement/saga.js","modules/Supplement/redux/index.js","modules/User/redux/statistic/saga.js","modules/User/redux/index.js","redux/modules/activation/reducer.js","redux/utils/callFunction/index.js","redux/modules/activation/saga.js","redux/modules/routeParams/reducer.js","redux/modules/routeParams/saga.js","redux/modules/reducer.js","modules/Analyses/redux/modules/patientAnalysis/saga.js","modules/Analyses/redux/index.js","modules/Dietanamnez/redux/modules/dietanamnez/saga.js","modules/Dietanamnez/redux/index.js","redux/modules/auth/errors.js","redux/modules/auth/saga.js","redux/modules/productComposition/saga.js","redux/modules/staff/saga.js","redux/modules/staffFlags/saga.js","redux/modules/registrationLinks/saga.js","redux/modules/user/saga.js","redux/utils/getServerFields/getServerFields.js","redux/sagas/crud.js","redux/sagas/routes.js","redux/sagas/index.js","redux/create.js","components/ServerUnderMaintenance/ServerUnderMaintenance.js","containers/App/App.js","modules/Public/pages/Main/Main.js","modules/Public/components/ActivationStatus/ActivationStatus.js","modules/Public/containers/Activation/Activation.js","modules/Public/components/Login/Login.js","modules/Public/containers/Login/Login.js","modules/Public/components/LoginLayout/LoginLayout.js","modules/Public/pages/Login/Login.js","modules/Public/components/PasswordRecovery/PasswordRecovery.js","modules/Public/pages/PasswordRecovery/PasswordRecovery.js","modules/Public/components/RegistrationLayout/RegistrationLayout.js","modules/Public/pages/SignupLayout/SignupLayout.js","modules/Public/containers/RegisterUser/RegisterUser.js","modules/Public/containers/InstituteForm/InstituteForm.js","modules/Public/containers/RegisterInstitute/RegisterInstitute.js","components/AmwayPopup/AmwayPopup.jsx","components/AmwayPopup/index.js","modules/Public/pages/Signup/Signup.js","modules/Public/pages/SignupLight/SignupLight.js","modules/Public/pages/Pro/Pro.js","modules/Public/containers/InviteUserForm/InviteUserForm.js","modules/Public/pages/Invite/Invite.js","components/PageNotFound/PageNotFound.js","pages/Error/Error.js","routes/index.js","model/entities/patientGroups/init.ts","index.js"],"names":["env","apiUrl","appKey","liteApiUrl","proApiUrl","contextKey","oneDayKey","yearKey","liteMonthKey","sentry","version","process","head","titleTemplate","meta","charset","getValues","memoizee","R","getItemField","field","item","getItemWithAllFields","pickByParent","parent","key","values","length","getAllItems","getItems","val","isDeleted","isDeleting","getItemsArray","getItem","state","getItemById","id","tableKey","itemsByKey","getKeyById","getAllItemsByParent","parentField","getItemsByParent","getItemsArrayByParent","getIsButtonRunning","button","createOrmSelector","args","createSelector","orm","fetchWithView","fetch","view","paramsCommon","params","ignoreFields","getChangedData","data","prop","defaultPath","itemsLens","getCustomItemsLens","path","set","generator","config","name","tableId","parseItem","initialState","createAction","action","payload","createAct","toUpperCase","fetchSuccess","fetchFailure","create","uuid","save","saveSuccess","saveFailure","remove","removeSuccess","removeFailure","removeWithUndo","removeWithUndoSuccess","removeWithUndoFailure","undoRemove","undoRemoveSuccess","undoRemoveFailure","handleFetchNumber","handleFetchSuccess","response","parents","fromCache","items","parseResult","handleCreate","handleSave","isSaving","isShouldSaved","isLocal","handleSaveSuccess","newKey","isCreation","newState","isSaved","oldKey","undefined","handleSaveFailure","handleRemove","handleRemoveSuccess","isLocalItem","isLocalKey","markToDelete","handleRemoveFailure","handleUndoRemove","handleUndoRemoveFailure","reducer","createReducer","login","formatHeaders","filter","token","limit","filterstate","get","cache","useLS","request","headers","then","post","put","deleteRequest","delete","getKeyInfo","company","app","table","record","split","slice","map","parseInt","getUser","getUserIsLight","getUserSupplementGroups","isLight","userGroups","productGroups","supplementGroups","getSupplementGroups","getProductGroups","getCatalogGroups","props","Number","groupId","getUserCountry","getNorm","getPatientKey","getAbstractNorm","getPatientNorm","patientKey","abstractNorm","patientNorm","session","InstitutionSubscription","first","duration","option","custom_текущий_вариант_подписки","custom_стоимость","custom_стоимость_исходная","custom_количество_месяцев_подписки","custom_оплачено","ref","isCurrentSubscriptionExists","isFutureSubscriptionExists","isCurrentSubscriptionOneDay","isFutureSubscriptionOneDay","isProlonged","days","dayPrice","currentPrice","custom_стоимость_текущей_подписки","custom_количество_пользователей","futureMonths","subscription","getInstitutionSubscription","list","getTariffsAll","custom_действующий_тарифный_план","worker","custom_партнер","getInstitutionTariffIsTrial","getUserIsPartner","isTrial","isPartner","Link","inherit","color","to","href","target","custom_схема_питания","custom_время","getIngestion","getKingsFood","getPatientSpecificConditions","getPatientIllness","getIllnessList","getDiseaseList","specificConditions","patientIllness","illnessList","diseaseList","getSpecificConditions","baseElements","getElementsVisible","getLabel","declOfNums","getLabel1","getActiveBill","SubscriptionOperation","activeBill","exclude","custom_операция","custom_currentstatus","getBillList","orderBy","a","moment","custom_дата_операции","valueOf","toModelArray","tariff","custom_тарифный_план","operationId","textByOperation","custom_значение_операции","date","sum","custom_ordersumamount","invoiceUri","custom_счет","text","getLastProlongation","i","getInstitutionSubscriptionEnd","endDate","add","diff","startOf","Partner","error","getPartner","partner","subscriptionUrl","custom_subscribe_url","getDay","getInstitutionSubscriptionDurationTotal","getSubscriptionUrl","title","getInstitution","institution","isBefore","getInstitutionTariffKey","tariffKey","getTariff","tariffs","getTariffReal","getLoaderByType","type","getLoaderByTypeLocal","loader","getApplicationUser","getMealsWithStatus","userKey","meals","isTerritory","custom_показывать_в_рамках_учреждения","owner","___owner","getMealsList","inMenu","tooltip","getProPatientMenu","getPatientId","getPatientsList","patientId","newItem","isNew","mainPage","onlyActiveOnIndex","visible","restPage","getLightPatientMenu","getDietanamnezIdWithotNotEnded","dietanamnezId","label","_path","proMenu","lightMenu","_extends","Object","assign","bind","arguments","source","prototype","hasOwnProperty","call","apply","this","SvgSupport","_ref","svgRef","titleId","width","height","viewBox","fill","xmlns","fillRule","clipRule","d","ForwardRef","SvgTime","SvgFolder","SvgCalendar","SvgUser","SvgLocation","SvgPersonal","SvgVCamera","_metadata","_g","SvgLink","xmlnsXlink","x","y","enableBackground","xmlSpace","transform","SvgExport","style","getHour","getInstitutionTariffName","getUserIsSupport","getUserRight","tariffName","end","isSupport","canEditSubscription","daysDuration","dailyHourDuration","Math","ceil","hourDuration","daysError","disabled","subtitle","icon","Camera","Support","Time","Folder","Calendar","Export","User","Location","Personal","windowsOpen","isNeedSideBar","user","created","custom_verify_phone","isClosePhone","content","onClose","custom_номер_нпа","isCloseNpa","getCurrentNotification","getUserPhoneNotification","getUserNpaNotification","notification","phoneNotification","nbaNotification","getPatientAllergenIngredientsGrouped","getPatient","getStaff","authorKey","staff","Boolean","custom_firstname","custom_lastname","getPatientWeight","getCorrectionValuesByWeight","journal","doctor","doctorName","getPatientJournal","appUser","Ration","lastRation","___parent","custom_не_назначен","custom_удалено","last","getPatientRationNewKey","_","statePatientKey","propsPatientKey","PatientReceptions","custom_planned_patient","getPatientReceptionId","routeReceptionId","paramReceptionId","paramReceptionKey","receptionId","receptionKey","reception","withId","err","getAuthUser","patients","userAuth","patient","___createduser","getUserPatients","patientList","propsStartDate","propsEndDate","props_custom_отключено","workerKey","startDate","custom_vremya","custom_отключено","isAfter","getPromo","getSupplementAll","getPatientAllergen","productList","allergen","forbidden","getSupplementWithStatus","getInstitutionKey","institutionKey","subscriptionEnd","before","all","it","custom_дата_для_однодневной","isSameOrAfter","getItemComposition","supplementComposition","productComposition","elementNorms","compositions","userCountry","Elements","elements","toRefArray","elementField","valueField","composition","elementNormItem","element","getSubscriptionPromocode","SubscriptionDay","promo","custom_название","value","price_promo","price","replace","getInstitutionDiscount","getPromocodeDiscount","max","WorkerFlags","flags","custom_пользователь","getRealFullName","routeParams","getFormValues","getUserKey","userFormKey","doctorLastName","patientName","patientLastName","getUserJournal","getUserActiveDays","getInstitutionBanner","getUserNotificationsExcluded","institutionBanner","excluded","userNotification","excludedKey","normalizeType","typeOrActionCreator","getType","toString","handlers","opts","reduce","has","on","off","options","handler","Array","isArray","forEach","newOpts","keys","factory","Model","ormGenerator","isParsed","itemsKey","fields","notDeclared","upsert","handleFetchFailure","console","isSilent","idExists","virtualFields","getClass","fieldKey","relatedData","relatedItem","update","relatedName","energyButton","consumptionByTimeButton","consumptionByProfessionButton","getIsEnergyCalcing","getIsConsumptionCalcing","transformKeyArray","___territory","custom_белки_1","roundNumber","custom_жиры_1","custom_углеводы_1","custom_страна","custom_город","custom_детская_жизненная_активность","custom_жизненная_активность","custom_спортивная_автивность","custom_болезни","custom_сопутствующие_заболевания","custom_специфические_виды_питания","custom_основное_заболевание","custom_sexint_save","custom_дата_рождения","format","custom_коридор_спк","родитель","элемент","fetchItem","fetchParams","fetchNorm","fetchDiagnosis","fetchAnalyses","fetchDietanamnez","fetchForRation","startVisit","switchArchive","logPrint","calcElementsNorm","calcEnergy","calcConsumptionByTime","calcConsumptionByProfession","savePatientRequest","sendInvite","assignToStaff","assignToStaffSuccess","getDietanamnezKey","Dietanamnez","custom_селфтест_до","merge","getVisibleList","dietanamnezKey","custom_профиль_потребления_веществ","find","элемент_состава","среднее_за_день","dataWithoutSupplement","среднее_за_день_без_бад","custom_наименование","sources","custom_источники","influence","custom_влияние","e","chartItems","getDietanamnezChemistryData","chartId","custom_частота_потребления_групп_продуктов","наименование","round","частота","DietanamnezFrequency","custom_частота","getDietanamnez","DietanamnezItem","getDietanamnezItems","getDietanamnezKindsFood","kindsFood","isEmptyItems","isEmptyKindsFood","custom_дата_назначения","getName","custom_специалист","fullname","start","dateStart","specialist","DietanamnezPortion","custom_мера","custom_профиль_потребления_продуктов","среднее","getDietanamnezType","getUserType","daType","userType","DietanamnezTiles","custom_формат","custom_версия_приложения","getTilesHidden","excluder","custom_специфические_исключения","excludedByGroups","excludedByTiles","getSupplement","getSelect","getMealsAll","getDietanamnezTiles","hiddenTiles","mealsArray","supplementsarray","tiles","supplements","excludedKeys","excludedTiles","dish","byKindsFood","byItem","getIsProduct","getIsSupplement","b","custom_блюдо","isProduct","isSupplement","custom_строка_поиска","custom_список_блюд","custom_добавить_исключить","getDietanamnezProducts","getElementsList","dietanamnez","createCachedOrmSelector","getPatientTiles","getProductsItems","products","supplementsList","dishes","productKey","product","custom_эталонные_блюда","custom_эталонное_блюдо_для_фронта","tile","custom_ед_изм","custom_ед_изм_наименование","custom_иконка_url","custom_картинка_url","custom_количество","custom_макс_доз_в_день","custom_лекарственная_форма","getDietanamnezTilesVisible","concat","getDietanamnezLastIdWithoutNotEnded","routeId","propsId","lastId","dispatchAndWait","waitFor","removeRelatedInner","model","Set","removeRelated","Map","custom_продолжительность","custom_степень","custom_цель","custom_тип_шаблона","custom_режим_питания","custom_прописано_при","custom_спец_виды_питания","custom_начало_диеты","convertFromServerTimeZoneToCurrentTimeZone","ORMModel","count","custom_текущая_длительность","_days","getGroupsComposition","day","getComposition","getIsFilled","modelName","idAttribute","attr","custom_спк__до","custom_спк__от","custom_debuginfo","custom_степень_за_месяц","custom_рекомендации","fetchRationComposition","fetchRationCompositionSuccess","fetchRationCompositionFailure","fetchBase","fetchPrint","fetchUnassignedTemplates","fetchTemplates","lazyLoad","fetchGeneratorTemplates","fetchSystemTemplates","fetchInstitutesTemplates","createTemplate","manual","autogenerate","addDay","cleanupRelated","checkDiet","checkDietSuccess","checkDietFailure","cx","classNames","styles","Text","PureComponent","render","block","inline","component","ellipsis","size","uppercase","weight","whiteSpace","Tag","children","className","text_block","text_inline","text_uppercase","text_ellipsis","text_inherit","defaultProps","Worker","custom_user","custom_головное_учреждение","custom_тип","custom_схема_кастомизации","custom_текущий_рекуррент","trialInform","fetchItemSuccess","fetchItemFailure","stopAuto","stopAutoSuccess","stopAutoFailure","fetchList","fetchListSuccess","fetchListFailure","connect","mapStateToProps","mapDispatchToProps","mergeProps","connectSource","areStatesEqual","next","prev","loading","isLoading","Row","getChildContext","level","getLevel","cq","containerQuery","row_width_lt_720","row_width_gt_1020","withProps","align","row_reverseIndent","reverseIndent","row_maximize","maximize","row_no_print","noPrint","React","Children","child","cloneElement","childContextTypes","PropTypes","number","string","Column","Component","getOrderByLevel","context","order","small","medium","big","offsetSmall","offsetMedium","offsetBig","indent","borderRight","msFlexOrder","column","isFinite","column_indent","column_borderRight","contextTypes","isUUID","CHART_PADDING_TOP","baseColors","valid","invalid","chemicalColors","groupedColors","propColorMap","sapphirine","getPercent","normWeight","getOnePercent","normMin","normMax","Infinity","hex","x16","calculatePartRgb","ratio","color2","color1","startStr","endStr","substring","getStandartChart","getGroupedChart","lastValue","meal","gradientByColor","getEnd","getAFlow","getBFlow","getCFlow","getWithTwoBoundariesOfNorm","dataArray","prevEnd","percent","getColorStatus","valueInPercent","percents","getRatio","r","g","getColorChemical","track","event","window","carrotquest","authorizeUserInCarrot","email","hash","cookie","load","auth","$email","identify","authorizeUserInCarrotByUserData","custom_login","custom_хеш_пользователя","$name","Фамилия","Отчество","custom_midname","версия","trackPatientEvent","select","getItemByKey","getFullName","patient_name","trackArchivePatient","trackUnarchivePatient","trackAddPatient","trackRemovePatient","trackAddPatientNote","trackAddPatientAnalysis","trackAddPatientRation","trackAddPatientDietanamnez","shouldTrackChangesFromCheckedFields","checkedFieldsRegistry","entity","changes","checkedFields","isRegistryFieldEmpty","registry","isSomeCheckedChangedToNotEmpty","some","wasCheckedAllEmpty","every","shouldTrackAddPatientDiagnosis","custom_анамнез","trackAddPatientDiagnosis","shouldTrackAddPatientAntropometry","custom_масса_тела","custom_рост","custom_объем_талии","custom_объем_бедер","custom_объем_плеча","custom_жировая_масса","custom_мышечная_масса","custom_складка_грудь_подмышка","custom_складка_живот","custom_складка_бедро","custom_общая_жидкость","custom_вунутриклеточная_жидкость","custom_внеклеточная_жидкость","custom_тощая_масса_тела","custom_активная_клеточная_масса","custom_висцеральный_жир","trackAddPatientAntropometry","trackAddPatientConsumption","trackAddRationTemplate","trackAddMeal","trackAddStaff","trackRenewSubscription","trackAuthorize","trackSignup","resultFunc","pop","createCachedSelector","ormCreateSelector","custom_состояние","custom_sexint","custom_role","custom_профиль","custom_производители_бад","custom_dob","___createddate","custom_is_support","custom_должность","custom_разрешен_вход_по_пользователем_до","custom_ред_сис_шаблонов","custom_редактирование_общих_блюд","custom_фото","custom_ключ_системного_пользователяold","custom_избранный","custom_мобильный_телефон","custom_inbody_user","custom_состоит_в_группе","changePassword","invite","inviteLight","saveProfile","fetchMe","allowLogin","setRole","setStatus","getMobilePhoneStatus","userInfoField","locate","min","limiter","defaultOptions","required","password","simplePass","errorText","username","surname","secondname","job","city","street","house","locateNum","casehouse","phone","agency","role","npa","logo","typeFiles","correctTypes","sizeFiles","correctSize","time","getUserProfile","getInstitutionSubscriptionIsBlocked","profile","isBlocked","actualProfile","location","pathname","toLowerCase","dayKey","Icon","iconContent","require","dangerouslySetInnerHTML","__html","Button","getComponent","LinkRR","getIsIcon","renderChild","bordered","isHovered","onClick","noPadding","upper","rounded","onMouseDown","isFictive","itemRef","ComponentName","button_loading","button_disabled","button_hover","button_block","button_no_padding","button_bordered","button_uppercase","button_rounded","button_icon","button_fictive","IconLoader","IconDotLoader","isDisableableLink","routing","getRationId","rationKey","rationId","possibleRationKey","ration","getToken","custom_рацион_пациента","Day","groups","custom_меню","custom_dishesjson","custom_колич","isActive","custom_ключ_активного_блюда","group","getGroupComposition","группы_альтернатив","getDishComposition","dishGroup","активное","блюда","getSumComposition","custom_номер","custom_название_для_шаблона","custom_шаблон_дня","custom_записи_и_рекомендации","fk","copy","sort","fillFromTemplate","fillFromTemplateSuccess","fillFromTemplateFailure","addGroup","removeGroup","updateGroupTime","sortGroupItems","removeDishGroup","changeDishGroupActive","removeDishGroupDish","addDishGroupDish","changeDishGroupDishAmount","handleSort","from","currentDayKey","menu","newMenu","currentTime","newTime","groupKey","itemKey","index","newDish","itemIndex","номер","dishKey","baseKey","newItems","newActiveKey","amount","firstDayNumber","getItemsList","getProductsByGroups","getIsCompositionCalcing","setKeyField","main","secondary","setKeysField","custom_группа","custom_порция","custom_способ_приготовления","custom_возрастнаягруппа","custom_ед_изм_если_единица","custom_применимость_в_схеме_питания","custom_не_применяется_в","custom_запрещено_к_употреблению_при","custom_продукт_повышает","fetchComposition","fetchSystemMeals","fetchUserMeals","fetchCatalogList","fetchCatalogListSuccess","calcComposition","copyComposition","showLoader","hideLoader","handleSetLoader","status","LOCATION_CHANGE","application","getLoader","remember","timeLastRequest","hasInvite","loginSuccess","setProfile","setInviteByToken","switchUser","switchUserSuccess","logout","resendEmail","hideModal","anonymous","domain","userAKey","profileKey","runButtonCreator","showError","currentItem","currentFields","api","success","failure","errorEffect","getErrorFromResponse","form","getTitle","large","bold","hover","underline","nowrap","sidebarMenu","black","activeClassName","link_active","link_size_medium","link_underline","link_block","link_loading","link_size_large","link_size_small","link_size_inherit","link_theme_bold","link_theme_black","link_column","link_hover_custom","link_ellipsis","link_nowrap","link_theme_sidebarMenu","getSelectData","custom_группа_ключ","custom_единица_измерения__гр_мл","custom_территория_вспомогательное","fetchSystemIngredients","fetchUserIngredients","elementValue","getIsHaveComposition","custom_элемент_рациона","custom_относится_к","custom_продукт","___modifieduser","custom_значение","custom_тип_да","продукт","группа_продуктов","custom_фио_специалиста","custom_диетанамнез_заключение","custom_заключение_недостаток","custom_заключение_избыток","fetchForm","fetchReport","calcDietanamnezReport","assignSuccess","switchType","parseJournal","visit","getJournal","isSame","custom_дата","toDate","custom_пациент","publicLogin","getPublicToken","hasStrictDomain","rememberHeader","Remember","Title","getComponentBySize","title_ellipsis","getDietanamnezId","simplePasswords","isEmpty","createNumberValidator","parsedValue","parseFloat","comparator","test","validators","isValid","minDate","minValue","maxDate","maxValue","isSameOrBefore","numeric","positiveNumber","nonRemovable","initialValue","isValidPhoneNumber","pass","timeToMinutes","timeFilled","file","mime","custom","validator","unique","formatValue","getErrorText","rules","firstError","fieldName","validatorConfig","defaultConfig","getText","defaultText","createValidate","evolve","valuesFields","realOptions","extend","initialValues","validatorList","validatorName","createFieldValidate","getError","rest","getWidth","query","calculatedQuery","acc","minWidth","match","maxWidth","applyContainerQuery","superuserRoleKey","liteTrialRoleKey","dietologRoleKey","subscriptionExpiredProfile","defaultIcon","requests","constructObject","url","getQueueKeyByConfig","prevToken","isRequested","construtCacheKey","getCacheKeyByConfig","genericRequest","method","instance","dispatchPing","store","dispatch","pingFailure","getIsShouldReject","setStore","_store","subscribe","getState","Promise","resolve","getIndex","resent","catch","reject","handleServerMaintenance","axios","baseURL","interceptors","use","cacheKey","existItem","currentCache","isLocalCache","getItemLocalStorage","param","search","includes","isPing","isSessionOver","loadingFinish","saveTokenInfo","c","interceptor","resentRequestIndex","resentRequest","serverMaintenanceInterceptor","clearTimeout","timeout","setItemLocalStorage","setTimeout","setTimeCashWithTimeOut","fromQueue","message","attempts","interceptorError","toTemplateInfo","getTemplatesByType","getPersonalTemplate","getInstituteTemplate","right","template","isOwner","isCanEdit","getSystemTemplates","getGeneratorTemplates","getRecommendedTemplates","energy","disease","excludedKingdsFood","editRight","getFilter","intersection","namesTemplatesByTypes","templates","result","getRestTemplates","recommended","Modal","componentWillReceiveProps","nextProps","isOpen","onAfterClose","overlayClassName","closeTimeoutMS","shouldCloseOnOverlayClick","withClose","onRequestClose","country","custom_from_bad","custom_страны","getSetTechcard","custom_производитель","custom_пол","localization","custom_элементы_локализации","custom_ordersumrequired","custom_промокод","custom_ordernumber","custom_customernumber","custom_signaturevalue","renewal","cancel","changeFutureOneDayDate","getItemsByCountry","Supplement","custom_автогенерация","saveManual","saveAuto","autogenerateButton","rights","INSTITUTION_ADMINISTER","INSTITUTION_SUBSCRIBE","USER_CONTROL","PATIENT_RATION","PATIENT_REGISTER","PATIENT_DELETE","PATIENT_RECEPTION","PATIENT_PRINT","rightId","Error","rightKey","userRights","getUserRole","getRoleRights","roles","getUserRights","timeDifference","Date","getTimezoneOffset","setNotification","handleSetNotification","lens","handleLocationChange","isProcess","isDone","isFailed","isRemove","isNpa","getTokenInfo","opt","expires","now","apiNameMap","EmptyRequiredFieldException","Cat_ObjectName_DuplicateValueException","fieldNameMap","custom_login_save","defaultRules","validateFromResponse","exception","fieldMessage","parse","formEffect","stopSubmit","_error","isFailedNetwork","validationError","getErrorTextFromResponse","precision","accuracy","$groups","createStore","$sortedGroups","sortBy","createGroupFx","createEffect","async","parameters","Function","updateGroupFx","group_id","removeGroupFx","removePatientFromGroup","attach","mapParams","effect","patient_key","addPatientToGroup","setPatientGroupFx","getProfileKey","___profile","getList","ping","pingSuccess","handlePingSuccess","serverUnderMaintenance","ignoreClear","setItem","JSON","stringify","localStorage","itemJson","clear","removeItem","custom_вид_анализа","PatientAnalysis","custom_дата_текстом","fetchAnalysis","saveFlow","saveDietanamnezes","saga","takeEvery","custom_частота_употребления","checkPromo","setPromo","resetPromo","formatItem","lastname","firstname","midname","custom_диетолог","author","custom_пациенты","added","custom_пациенты_за_день","custom_приемов_всего","custom_приемов_за_день","analysis","custom_анализы_всего","custom_анализы_за_день___добавлено","custom_анализы_за_день___удалено","anamnesis","custom_диетанамнезы_всего","custom_диетанамнезы_за_день","rations","custom_рационы_всего","custom_рационы_за_день___добавлено","custom_рационы_за_день___удалено","print","custom_печать_всего","custom_печать_за_день","evolveConfig","initialGroup","getDayStatistic","memoize","custom_data","ISO_8601","getMonthStatistic","prevData","getStatisticByInstitution","endOfMonth","endOf","yesterday","mergeTotal","resultSum","tableTrValue","getStatisticTotal","getStatisticData","inviteKey","getIsUserCanSee","fetchData","fetchDataSuccess","deleteDataRow","toggleDelete","deleting","invites","me","custom_емейл_приглашенного","custom_учреждение_оригинальное","zero","userFormPreset","validation","userFormLightPreset","instituteFormPreset","custom_логотип","custom_филиал","custom_улица","custom_дом","custom_корпус","custom_эл_почта","loadingStart","custom_light","custom_used_in_pro","custom_для_сортировки","indexes","includeFieldName","useShortName","parseItems","subitems","parsedSubitems","custom_сокращенное_наименование","nameField","getMineralsAndVitamins","m","j","hint","custom_описание_влияния","custom_специфическое_состояние","getDiseaseItems","dayId","getRationDays","maxDayId","models","Gene","Vitamin","AnalysisType","Genotype","AnalysisGenes","AnalysisVitamin","ChemicalElement","AnalysisBlood","AnalysisHair","AnalysisSalt","PatientsElements","SupplementDish","TileImageMap","PatientReception","Webinar","RegistrationLink","ORM","register","custom_химический_элемент","custom_ед__изм","custom_факт","custom_ген","custom_генотип","custom_результат","custom_витамин","custom_оценка","getNotesByPatient","saveSuccessFlow","Info","handleShowTooltip","iconRect","getBoundingClientRect","top","bottom","innerHeight","setState","handleHideTooltip","renderButton","toggler","alwaysTop","alwaysBottom","togglerFullSize","singleLine","maxHeight","info","info_customWidth","info_singleLine","toggler_custom","toggler_fullSize","toggler_hover","onMouseEnter","onMouseLeave","tooltip_alwaysTop","tooltip_top","isNaN","declOfNum","titles","cases","Subscription","submitBtn","cancelBtn","onSubmit","onCancel","selectors","getTechcard","ingredientsState","multiplier","ingredients","ingredient","custom_ингредиент","ingredientAmount","amountName","custom_вес","isSystem","custom_копия_блюда","custom_тип_приготовления","getSupplementId","custom_элемент","custom_элемент_состава","updateList","updateListSuccess","parentKey","custom_тип_опроса","custom_идентификатор","custom_именной","custom_дефолтный","delay","supplement","groupFieldByType","getImage","base64Image","constructFile","imageUrl","arrayToString","capitalize","getFeatures","portionKey","portion","getPortion","portions","sexId","sexName","sexOptions","groupField","cookingTechniqueKey","cookingTechnique","getCookingTechnique","cookingTechniques","ingestion","mealTypeKey","getMealType","mealTypes","specificEatingTypes","typeKey","getEatingType","features","custom_расширенная_форма","ageOptions","join","getSource","sourceKeys","elementKey","getDiseases","getDisease","Patient","getDescription","getRecipe","pathIsNotEmpty","BASE","PRIVATE","INSTITUTION","getCaption","itemId","hasOwner","hasTerritory","hasShowInInstitution","caption","rejectByUser","isCurrentUserItem","custom_скрытый","custom_неактивен","getProductsByGroup","age","itemAge","anyAge","getRigths","userItem","isEditableBase","isEditable","isDeletable","productOwnerKey","isRight","modules","handleAction","custom_подсказка","getFirstName","getMidName","getLastName","defaultResolver","memoizeByResult","fn","resolver","newResult","massBody","calories","caloriesActive","carbohydrates","proteins","fats","activeCellMass","skinnyWeight","muscleMass","intracellularFluid","extracellularFluid","generalLiquid","fatMass","growth","sizeShoulder","sizeThigh","sizeWaist","pleatsStomach","pleatsHips","pleatsChest","pleatsChestWoman","harris","visceralFat","units","getDateToChart","unit","left","custom_показатель","iconDotLoader","iconDotLoader_inline","custom_значение_от","custom_значение_до","norm","dateFieldMap","custom_число_калорий","custom_окисление_белка","custom_окисление_жиров","custom_окисление_углеводов","custom_число_калорий_при_физической_активности","addDateField","base64","getDietanamnezLastKeyWithoutNotEnded","emptyArray","getIllnessItems","settings","getPatientEnergyMin","getPatientEnergyMax","getRationKey","custom_текст_поиска","custom_ингредиенты_аллергены","getPatientDisease","getDietanamnezProductsIncluded","getDietanamnezProductsExcluded","getPatientAge","patientDisease","include","excludedKindsFood","goodAgeOptions","getDish","allowedItems","forbiddenItems","itWithoutStatus","dishAges","dietanamnezGroups","allowed","kindsFoodForbidden","kindsFoodInter","dietanamnezInter","warning","diagnosesForbidden","diagnosesInter","custom_дата_начала_подписки","custom_время_окончания_подписки","custom_активных_пользователей","custom_оплачено_пользователей","custom_оплачено_дней","custom_остаток_бонусных_дней","subitemsMap","notes","patientParams","analyses","analysisGenes","analysisVitamin","analysisBlood","analysisHair","analysisSalt","techCard","dietanamnezItem","allergenMeals","institutionSubscription","supplementRation","supplementRationDish","supplementTechCard","supplementAllergen","links","parsers","custom_количество_план","custom_ссылка_на_активное_блюдо","custom_рецепт","custom_ключ_ингредиента","custom_значение_на_порцию","transformVirtualCategory","groupParsers","parser","transformedList","tableIdByLabel","getSubitemsEffect","transformedGroup","getDayKey","initial","getUserCanEditSystemTemplates","canEditSystemTemplates","isAdmin","isCurrentUserCanEdit","withEdit","withDelete","getRation","getValue","grade","deviationMin","deviationMax","getProtein","getFats","getCarbohydrate","getRationGrade","normEnergy","getEnergy","log","getDayComposition","getRationNorm","timeToNumber","isPatch","activeKey","withView","getRationTableElements","columns","isEnergy","isBzhu","k","getRationTableElementsKey","selected","getRationColumns","getRationDayNumber","sections","currentDay","dishList","flat","getSelectValues","getSourceRation","sourceRation","isChosen","activeGroup","activeItem","isActiveByGroup","isActiveByItem","isInactiveByGroup","isInactiveByItem","getInstitutionRationTemplates","getRationSystemTemplates","getUserRationTemplates","getRationGeneratorTemplates","institutionTemplates","commonTemplates","personalTemplates","generatorTemplates","common","personal","getPatientEnergy","getRationIsAssigned","getRationIsTemplate","isAssigned","isTemplate","getRationTitle","getUserRationNewTemplateKey","RadioGroup","renderRadio","item_mobile","mobileVersion","Radio","onChange","checked","radioGroup_mobile","minutesToTime","delimiter","hour","floor","padStart","minutes","custom_показана_подсказка_по_списку","custom_показана_подсказка_по_диаграмме","saveFlag","setHoveredSupplement","showErrorModal","hideErrorModal","modal","getOrmItem","ormItem","Legend","module","exports","appKeyVersion","initLocalStorage","appVersionLS","withFetcher","fetcher","CheckboxConnected","renderField","handleChange","input","fieldValue","onFormChange","newValue","Checkbox","_reduxForm","reduxForm","Field","func","withReduxForm","pagePermissions","pagePermission","nextReceptionNotificationFlow","hasNotification","receptionList","getUserPatientReceptions","toISOString","isNextReception","reset","push","custom_время_удаления","fetchWithActiveView","MiddleColumnHead","noInfo","createStructuredSelector","getLocalization","tooltip_header_ind_norm","BarchartTable","active","toolTipField","toolTipX","toolTipY","handleResize","debounce","handleMiddleColumn","middleColumn","node","nodeRect","widthMiddleColumn","heightMiddleColumn","handlePositionMouse","handleMouseMove","clientX","clientY","handleMouseLeave","handleMouseEnter","handleActiveHiddenRow","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","renderHead","infoNorm","chemical","MiddleColumnHeadChemical","MiddleColumnHeadDefault","noFact","valueName","noNorm","renderBody","zeroedLength","isCanBeHidden","isHidden","isShouldRenderToggler","renderGroup","renderToggler","renderRow","onToggle","arrow","arrow_up","group_hidden","TooltipElement","fontColor","sumValue","row","row_hidden","row_empty","row_bright","isBright","onMouseMove","renderElementCell","value_disabled","renderValueCell","Barchart","metrick","Tooltip","renderNormCell","withChildren","isActiveChild","element_active","fieldRenderer","formattedValue","toFixed","noNormHint","getNormText","image","visibleRoles","getAllRoles","getRoles","getRolesSelect","custom_роль","custom_бад","custom_порций","custom_курс","FieldPassword","handleTypeChange","FieldPasswordConnected","handleFocus","onFocus","handleBlur","onBlur","eventOrValue","isFieldArray","getPortions","diseaseMap","custom_полное_наименование","custom_заболевание","custom_заболевание_ключ","custom_количество_дней_базового_периода","custom_состав_тарифа","$reduxStore","updateStore","createEvent","fromReduxState","selector","getRightsList","pingFlow","takeLatest","fetchItemFlow","userAkey","учреждение","effects","stopAutoFlow","inst_key","cancellation_reason","fetchListFlow","runButton","custom_информирован_о_триальной_подписке","setNotificationFlow","current","nextTime","calcCompositionFlow","isCalcComposition","fetchCompositionSuccess","techcard","productTechCard","techcardEffect","saveTechcard","compositionEffect","saveComposition","fetchCatalogListFlow","switchArchiveFlow","isInArchive","buttonPatientToArchive","buttonPatientFromArchive","custom_в_архив_1","changed","paramsMap","loggedChanged","createParams","dateFields","note","saveNote","calcEnergyFlow","startSubmit","co2","o2","urea","urine","u","z","removeWithUndoSuccessFlow","calcConsumptionByProfessionFlow","removeWithUndoFlow","currentLocation","pathPrefix","savePatientSuccessFlow","withNotification","fullFieldName","prevDate","subtract","equalAllowed","sendInviteFlow","PHONE","EMAIL","disableNotification","custom_аккаунт_для_пациента","assignToStaffFlow","custom_самостоятельная_регистрация","startVisitFlow","custom_действие","logPrintFlow","saveDietanamnezesFlow","assignRationFlow","assignRation","checkPromoFlow","promocode","exec","скидка","institutionDiscount","discount","значение_промокода","getInstitutionSubscriptionIsExpired","reload","saveSubscription","resetPromoFlow","supplementId","getVariable","custom_json_value","nameById","getOperationParams","tariffId","quantity","getInstitutionWorkplaceCount","getFormYoomoney","getUserEmail","document","createElement","setAttribute","shopId","scid","customerNumber","orderNumber","ym_merchant_receipt","customerContact","taxSystem","tax","paymentMethodType","paymentSubjectType","appendChild","body","submit","getFormRobokassa","merchantLogin","isTest","MerchantLogin","OutSum","Description","InvoiceID","Receipt","encodeURIComponent","Culture","Encoding","SignatureValue","IsTest","script","src","Robokassa","StartPayment","Recurring","custom_recurring","cancelFlow","checkOperation","renewalFlow","fetchInstitution","isSpecial","getInstitutionTariffIsSpecial","getInstitutionSubscriptionState","isNewSubscriptionOneDay","actionId","payments","changeFutureOneDayDateFlow","itemWeight","custom_заголовок","custom_содержимое","withIgnore","radioGroupSex","UserForm","handlerOnFocusLinkRegistry","renderSupportButton","isAccessOpen","onAddAccess","renderForm","step","inviteName","isInvite","isProfile","isRegistration","isRequired","mediumOrder","bigOrder","AvatarPicker","fileTitle","registration","RequiredNotice","FieldDate","placeholder","mask","isConfirmed","phoneValue","isConfirmedPhone","phoneIsValid","onConfirm","Select","countries","cities","extraOptions","emptyCities","alwaysShowExtra","onBlurResetsInput","minLengthForResult","searchable","marginTop","onExitGroup","renderButtons","dirty","onReset","submitting","sizeCheck","theme","object","statistic","array","isChanged","parsedItem","types","successType","failureType","race","take","isSameKey","isSameView","custom_ссылка_на_логотип","custom_ссылка_на_логитип_в_печати","authProfileKey","reader","FileReader","files","onload","readAsDataURL","square","withFile","styleImg","backgroundImage","avatarPicker","avatarPicker_square","avatarPicker_type_value","accept","htmlFor","alt","FilePickerConnected","code","statusText","Message","inlineBlock","message_inline","icon_inline","typeOrder","getAnalysesTypes","analysisId","stateId","getAnalysisId","getAnalysisKey","analysisKey","typeId","getAnalysisItem","getAnalysisData","More","open","showButton","handleClick","setShowButton","self","textNode","scrollHeight","offsetHeight","setShowButtonDelayed","setNode","componentDidUpdate","buttonText","backgroundColor","lines","lineHeight","hasBackground","text_open","button_open","AnalysRow","focused","disabledInitially","handleFocusSelect","handleBlurSelect","handleSelectChange","handleClose","selectList","selectName","container","container_focused","container_disabled","column_type_1","column_type_2","column_type_3","formAnalysisItem","saveParameterCreator","WrappedComponent","saveAnalysis","FormedContainer","handleSubmit","originalValue","updateKey","getInitialValues","enableReinitialize","GeneticAnalysisItemContainer","getDefaultRows","getNotDefaultRows","showShortListByDefault","RowsTable","showShortList","rows","handleToggleList","vitaminsAnalys","notDefault","VitaminRow","GenesRow","rowsList","tableHeader","titleColumn","tableTitles","itemSelectDictionary","AnalysisItemSalt","AnalysisItemSaltContainer","renderItem","String","BloodAnalysisItemContainer","BloodAnalysis","validate","getValidator","HairAnalysisItemContainer","HairAnalysis","VitaminsAnalys","getAnalysisViewComponent","custom_анализ_волос","existedItem","chemicalElement","custom_норма_анализа_крови_от__мг","custom_норма_анализа_крови__мг","custom_норма_анализа_крови_до__мг","gene","custom_описание","showByDefault","custom_видно_по_умолчанию","custom_генотипы","custom_анализ_крови","custom_норма_анализа_волос_от__мг","custom_норма_анализа_волос__мг","custom_норма_анализа_волос_до__мг","custom_анализ_мочи","getAnalysisViewData","transformData","getAnalysisViewBlood","getAnalysisViewGenes","getAnalysisViewVitamin","getAnalysisViewHair","getAnalysisViewSalt","analysisTypeToStateMap","getGenotypes","getAnalysisViewOptions","getAnalysis","getChemicalList","getChemicalElements","getGenes","getVitamins","icons","iconProps","realValue","getSupplementKey","getLastSupplementRation","getLastSupplementRationId","getSupplementItems","supplementKey","loadInbodyReportFlow","inbodyid","loadInbodyReportFailure","loadInbodyReportSuccess","loadIdFlow","loadIdSuccess","loadIdFailure","loadId","loadInbodyReport","noWrap","checkbox","checkbox_disabled","checkbox_block","check","loadMedassReportFlow","imageFile","custom_медасс_csv","csvFile","custom_медасс_jpg","loadMedassReportFailure","loadMedassReportSuccess","loadFilesFlow","loadFilesSuccess","loadFilesFailure","loadFiles","loadMedassReport","setParamsFlow","setPatientSuccess","setPatient","handleGetPatient","Content","content_borderTop","borderTop","content_indentTop","indentTop","content_indentBottom","indentBottom","content_paddingXOff","paddingXOff","content_maximize","ModalForm","renderAdditionalSubmitBtn","additionSubmitBtn","changeType","renderSubmitBtn","submitInvalidTooltip","renderDeleteBnt","deleteBtn","validDelete","deleteTooltip","onDelete","modalForm","modalForm_empty","body_no_padding","IS_SOME_FIELD_ACTIVE_PROP_NAME","submitName","loggingName","submitOnUnmount","Target","onLogging","OnFormChange","handleTargetRef","el","targetRef","getOrigin","openedWindows","opener","checkOrigin","openWindow","closeWindows","handleOpenWindow","screen","newWindow","handleCloseWindows","oneWindow","close","Page","setWidth","setFixed","setActiveItem","setActiveGroup","setMenuItem","toggleDisplayBzhuInRelativePercents","mergeState","handleSetWidth","handleSetFixed","handleSetActiveItem","handleSetActiveGroup","activeMenu","isFixed","isDisplayBzhuInRelativePercents","Option","Editor","constructor","super","handleEditorStateChange","editorState","contentState","getCurrentContent","oldContent","maxLength","getPlainText","getLastChangeType","removeInlineStyles","stateToHTML","handleBeforeInput","chars","isFocused","retainInlineStyles","blocks","getBlocksAsArray","singleBlock","getCharacterList","charMetaData","getEntity","getStyle","newStyle","intersect","CharacterMetadata","EditorState","createWithContent","ContentState","createFromBlockArray","stateFromHTML","renderOptions","currentState","iconMap","italic","unordered","ordered","titleLength","withNumber","onEditorStateChange","toolbar","handlePastedText","border_focused","scrollable","EditorConnected","getFilterOptions","getUnits","bgColor","page","SubscriptionState","ERROR","Gradient","light","dark","patternUnits","patternContentUnits","Defs","gradientColor","extraWidth","redGradientDarkColor","toolTipColor","toolTipText","OneRect","getIsValid","isGrouped","rectEnd","rectStart","dataInCenter","colorMap","Triangle","triangles","stroke","NormRangeLine","getNorms","normMaxValue","y1","x1","x2","y2","strokeWidth","VerticalLine","getX","scaleLinear","scaleLinearImport","default","toolTipOnChart","toolTipShow","handleDebounceMouseMove","renderMainChart","rect","total","renderBarChart","dataChart","range","HighertLimit","preserveAspectRatio","clipPath","addHandler","OneRectDefault","HighertLimitDefault","NormRangeLineDefault","VerticalLineDefault","TooltipDefault","withAnimation","getSum","getColor","transition","getIsRender","onePercent","isRendered","getTriangles","propsByType","BarChartDefault","getDataCenterChart","getChemicalDataCenterChart","getData","radio_mobile","input_mobile","label_mobile","RadioConnected","getStatisticDates","custom_учреждение","fetchStatisticDates","inner","categoryName","custom_картинка_с_порциями_url","medicineOptions","ProductFormIngredient","renderSelect","getBold","getItemsByStatus","getActiveItems","getInactiveItems","getInvitedItems","getSelectList","getSupplementDish","phoneHandleChange","trueEvent","Event","bubbles","truePhone","dispatchEvent","autoFocus","touched","symbol","interval","tooltipError","center","mimicSelect","noOverflow","readOnly","submitFailed","noBorder","withError","InputElement","InputMask","Input","field_mobile","field_state_error","field_state_isText","field_type_noOverflow","field_type_placeholder","field_type_interval","field_type_center","field_type_free","field_indent","field_mimicSelect","padding","border","display","onInput","numberInputProps","input_no_border","autoComplete","onKeyPress","label_type_hint","note_type_error_mobile","note_type_error","note_state_tooltip_error","FieldConnected","isСhanging","handleKeyPress","which","isEquals","isLoggingEqualValues","disableSubmit","ImagePicker","fileRef","isWebUri","ImagePickerConnected","Success","success_no_paddings","emptyOptions","extra","extraOnTop","selectFilterOptions","openUp","openLeft","hideTemporarily","handleOpen","selectParent","selectGrandParent","htmlTag","getElementsByTagName","parentNode","overflow","selectParentHeight","selectOffsetTop","offsetTop","html","documentElement","canScroll","clientHeight","scrollY","isPageBottom","handleOpenLeft","handleInput","mimicEvent","multi","resetOnChange","setOptions","handleChangeMulti","handleChangeSingle","setLabel","handleMenuWheel","deltaY","currentTarget","scrollTop","preventDefault","handleClickOutside","setContainer","ReactDOM","findDOMNode","setInput","setRef","setOptionsState","filterOptions","Fuse","distance","threshold","maxPatternLength","fuzzyFilterOptions","arrowRenderer","smallArrow","renderOption","componentWillMount","inputValue","possibleOpenLeft","menuContainer","menuOuter","selectParentWidth","offsetWidth","menuRect","onOpen","labelsList","getOptions","getIsWithError","getNoResultText","searchPlaceholder","notFoundText","grouped","withoutDefaultSelected","withoutSelected","noResultsText","onClickOutside","select_resetable","select_block","select_disabled","select_noWrap","select_empty","select_searchable","select_noBorder","select_small","select_normal","normal","select_smallArrow","select_openUp","select_openLeft","select_grouped","select_state_error","select_multi","select_hide_temporarily","select_type_overflow","autosize","hideValue","clearable","onChangeResetsInput","closeOnSelect","autofocus","openOnFocus","onCloseResetsInput","onSelectResetsInput","optionRenderer","menuRenderer","valueRenderer","onInputChange","onMenuWheel","loader_visible","IconLoaderFilled","static","SelectConnected","custom_ссылка_на_запись","custom_ссылка_на_онлайн","custom_координаты","custom_возрастные_группы","custom_группа_физической_активности","custom_период","minute","getRoundedValue","getCountries","userCountryKey","baseIcons","LoaderIcons","handleAnimation","getRandomIndex","loadIcons","loadIcon","iconList","random","renderIcon","onAnimationIteration","getFormattedValue","toggleActivity","radioGroupFilial","radioGroupType","InstituteForm","isReg","showInstitutions","filePicker","filePicker_registration","field_hidden","institutions","propColor","pointerEvents","$supplementsCompositionAll","fetchSupplementsComposition","fetchFx","resetEvent","$store","restore","doneData","currentData","createDictionaryModel","$supplementsCompositionByParent","webpackContext","req","webpackContextResolve","__webpack_require__","o","AppLoader","appLoader_hidden","AppLoaderContainer","AppContainer","history","routes","applyRouterMiddleware","scrollMiddleware","actionBlackList","exceptionBlackList","sentryIgnore","formatActionType","getIsError","getIsSuccess","ravenMiddleware","actionType","isError","isFilteredByAction","setUser","setUserContext","isFiltered","addBreadcrumb","category","setBreadcrumb","isLogout","captureMessage","paramsMiddleware","applicationUser","resolvePromise","res","supportedModules","supportedActions","lsSyncMiddleware","getActionSpec","isSupportedModule","isSupportedAction","fromLS","actionIsSyncable","createdUserMiddleware","newAction","combineReducers","patientInWork","patientInWorkSaga","normChildren","normMen","normPregnant","normWomen","activityLife","activitySport","activityChild","illness","notifications","notificationsExcluded","inbody","medass","notesSaga","inbodySaga","medassSaga","patientReceptionsSaga","resetPasswordFlow","staff_mail","resetPassword","removeCustom","flow","setStep","setUTM","setUserFlow","Public","signup","duplicate","setInstitutionFlow","setInstitution","utm","custom_название_на_печати","actionsSaga","signupSaga","fillFromTemplateFlow","isFilling","key_","templateKey","num","copyFlow","isCopying","source_day_key","day_numbers_to","dates","meal_times","fetchRation","sortFlow","new_number","triggerSave","fetchRationCompositionFlow","num_","parsed","sostav","fetchProductCompositionSuccess","createFlow","saveAction","автогенерация","meal_time","timeValues","manualFlow","ownerKey","newRationKey","navigateToRation","urlPrefix","autogenerateFlow","cancelCode","crypto","getRandomValues","Uint8Array","cancelСode","isAutogenerate","removeFlow","createTemplateFlow","прописано_при","спец_виды_питания","template_key","addDayFlow","fetchSuccessDay","assignFlow","checkDietFlow","diet_key","updateListFlow","currentItems","removed","correction","mode","ui","daysSaga","rationSaga","patientsElementsSaga","navigateToRationId","navigateToRationKey","createRation","includeSupplements","ration_key","checkAvailability","saveManualFlow","saveAutoFlow","supplementSaga","fetchDataFlow","deleteDataRowFlow","routeParam","statisticDates","statistictSaga","isSingleStep","checkInvite","checkInviteSuccess","activate","activateInvite","activateFinish","callFunction","checkInviteFlow","activation_id","lite_user","fetchInstitutions","fetchCities","fetchCountries","activateFlow","isLite","URLSearchParams","activation_id_control","staff_key","activateInviteFlow","setParams","setParamsSuccess","activation","patientActivity","patientsAllergen","subscriptionPromocode","subscriptionTariffs","pingReducer","Catalog","Glossary","Rations","routerReducer","itemsMap","saveAnalysisBlood","saveAnalysisGenes","saveAnalysisHair","saveAnalysisSalt","saveAnalysisVitamin","itemsSaveFlow","saveItem","patientAnalysesSaga","saveDietanamnezItem","redirect","isAssigning","switchTypeFlow","removeDietanamnezItem","dietanamnezSaga","dietanamnezItemSaga","authErrors","confirmed","deactivated","unknown","authorize","Context","ContactArea","isContact","btoa","p1","fromCharCode","Authorization","errors","setInviteByTokenFlow","secret","requestResendEmail","loginErrorFlow","modalError","deactevated","unconfirmed","getModalError","initiator","loginFlow","notSupportMobile","getElementById","isMobile","navigator","userAgent","outerWidth","innerWidth","outerHeight","roleKey","isCanLogin","hideModalFlow","switchUserFlow","checkAccessResponse","allow_to_login_as","AllowToLoginAs","кey","Key","allowToLoginAs","AsUser","Token","s","logoutFlow","logoutRedirect","carrotLoginTrackFlow","loginSuccessSaga","fork","fetchWorkerSuccess","isRunning","setProfileFlow","dish_key","allowLoginFlow","setRoleFlow","role_key","requared_password","custom_requared_password","changePasswordFlow","inviteLightFlow","custom_email","inviteFlow","saveProfileFlow","_key","getMobilePhoneStatusFlow","setStatusFlow","actions","DEACTIVATE","ACTIVATE","INVITE","isModal","saveFlagFlow","getUserFlags","fetchSuccessFlow","startsWith","prefix","xs","successAction","failureAction","saveData","updateRequest","createRequest","isAnyLocal","removeData","removeWithUndoData","undoRemoveData","loadingFlow","callback","lazyLoadList","waiter","itemLoader","storeState","ac","processAction","after","modulesSaga","AnalysesSaga","CatalogSaga","DietanamnezSaga","RationsSaga","SupplementSaga","PublicSaga","PatientSaga","UserSaga","activationSaga","authSaga","ingredientsSaga","institutionsSaga","journalSaga","mealsSaga","notificationSaga","patientsSaga","pingSaga","productCompositionSaga","staffSaga","staffFlagsSaga","subscriptionOperationsSaga","subscriptionPromocodeSaga","routeParamsSaga","userSaga","registrationLinksSaga","captureException","rootSaga","crudSaga","routesSaga","sagaMiddleware","createSagaMiddleware","ServerUnderMaintenance","renderServerMaintenance","ariaHideApp","contentLabel","router","PublicLoginPage","only","rule","locationBeforeTransitions","PublicActivationStatus","activationStatus","ALREADY_ACTIVE","ACTIVATION_ERROR","IMMEDIATELY_DEACTIVATED","ACTIVATED","ACTIVATED_INVITE","ACTIVATION_INVITE_ERROR","PublicActivationContainer","handleHideAfterSignup","handleActivate","getIsActivationUrl","isActivationUrl","withRouter","PublicLogin","renderErrorModal","onHideModal","onSubmitModal","trim","recoveryLink","PublicLoginContainer","evolvedValues","handleSubmitModal","PublicLoginLayout","site","supportUrl","afterSignup","userLogged","renderModalSessionIsOver","renderWarningSessionIsOver","renderAfterSignupModal","showAfterSignup","themes","sd","themeName","Login","Activation","isMaintenance","inviteActivation","showModalError","modalButton","PublicPasswordRecovery","noValidate","renderSuccess","PublicPasswordRecoveryPage","handleRequestClose","handleAfterClose","submitSucceeded","PublicRegistrationLayout","PublicSignupLayout","RegistrationLayout","destroyOnUnmount","custom_password","eula","PublicRegisterUserContainer","utm_medium","utm_source","InstituteFormContainer","change","getInstitutions","getCities","PublicRegisterInstituteContainer","classnames","AmwayPopup","isVisible","handleHide","PublicSignupPage","RegisterUser","institute","RegisterInstitute","InviteUserFormContainer","handleCloseModal","handleUserSubmit","handleInstituteSubmit","renderModal","steps","USER","InviteUserForm","__","renderStatus","buttonLink","textByStatus","ErrorPage","goBack","route","getRedirectUrl","rightOrFunc","urlOrFunc","canViewPage","getRoutes","onEnter","nextState","indexOf","isLast","redirectUrl","components","createRoutes","createRoutesRR","App","activeElement","blur","PublicMain","PasswordRecovery","SignupLayout","Signup","SignupLight","SignupPro","Invite","getChildRoutes","custom_группы_пациентов","locale","Sentry","dsn","release","integrations","Integrations","BrowserTracing","tracesSampleRate","denyUrls","beforeSend","isSupported","middlewares","routerMiddleware","lsSync","createdUser","raven","composeEnhancers","composeWithDevTools","trace","traceLimit","applyMiddleware","run","sagas","browserHistory","syncHistoryWithStore","rs","classList","Root"],"mappings":"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,QAAU,+zB,gBCAjBD,EAAOC,QAAU,4M,gBCAjBD,EAAOC,QAAU,w8L,gBCAjBD,EAAOC,QAAU,sxR,gBCAjBD,EAAOC,QAAU,uhE,gBCAjBD,EAAOC,QAAU,6xJ,gBCAjBD,EAAOC,QAAU,oQ,gBCAjBD,EAAOC,QAAU,oW,gBCAjBD,EAAOC,QAAU,iJ,gBCAjBD,EAAOC,QAAU,wR,gBCAjBD,EAAOC,QAAU,uP,gBCAjBD,EAAOC,QAAU,6mB,gBCAjBD,EAAOC,QAAU,ikD,gBCAjBD,EAAOC,QAAU,ioD,gBCAjBD,EAAOC,QAAU,u1D,gBCAjBD,EAAOC,QAAU,iwF,gBCAjBD,EAAOC,QAAU,okD,gBCAjBD,EAAOC,QAAU,iU,gBCAjBD,EAAOC,QAAU,4W,gBCAjBD,EAAOC,QAAU,kL,gBCAjBD,EAAOC,QAAU,gN,gBCAjBD,EAAOC,QAAU,8lB,gBCAjBD,EAAOC,QAAU,gwB,gBCAjBD,EAAOC,QAAU,+uB,gBCAjBD,EAAOC,QAAU,qhB,gBCAjBD,EAAOC,QAAU,yQ,gBCAjBD,EAAOC,QAAU,wM,gBCAjBD,EAAOC,QAAU,4L,gBCAjBD,EAAOC,QAAU,6M,gBCAjBD,EAAOC,QAAU,iM,gBCAjBD,EAAOC,QAAU,gpB,gBCAjBD,EAAOC,QAAU,yU,gBCAjBD,EAAOC,QAAU,kvH,gBCAjBD,EAAOC,QAAU,qkB,gBCAjBD,EAAOC,QAAU,i5B,gBCAjBD,EAAOC,QAAU,okB,gBCAjBD,EAAOC,QAAU,qqB,gBCAjBD,EAAOC,QAAU,6M,gBCAjBD,EAAOC,QAAU,8J,gBCAjBD,EAAOC,QAAU,oK,gBCAjBD,EAAOC,QAAU,0V,gBCAjBD,EAAOC,QAAU,iK,gBCAjBD,EAAOC,QAAU,43uB,gBCAjBD,EAAOC,QAAU,4nB,gBCAjBD,EAAOC,QAAU,4Q,gBCAjBD,EAAOC,QAAU,+qB,gBCAjBD,EAAOC,QAAU,6nE,gBCAjBD,EAAOC,QAAU,m0H,gBCAjBD,EAAOC,QAAU,+lF,gBCAjBD,EAAOC,QAAU,wlE,gBCAjBD,EAAOC,QAAU,okL,ikBCMjB,MAAMtrC,EAAKC,IAAW9a,KAAK+a,KAEZ,MAAM4kE,UAAkB1kE,gBA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","file":"static/js/main.4251780c.chunk.js","sourcesContent":["const environments = {\n develop: {\n apiUrl: 'https://dev.nutrilogic.ru',\n appKey: 'c105a902',\n liteApiUrl: 'https://dev.nutrilogic.ru',\n proApiUrl: 'https://dev.nutrilogic.ru',\n contextKey: 'c105ts1r902',\n oneDayKey: 'c105a902t119r10698526',\n yearKey: 'c105a902t119r5371410',\n liteMonthKey: 'c105a902t119r5370654',\n sentry: 'https://11cf05e55e96416fa7bac61d83a4f504@sentry.io/179036',\n },\n master: {\n apiUrl: 'https://master1.nutrilogic.ru',\n appKey: 'c105a902',\n liteApiUrl: 'https://master1.nutrilogic.ru',\n proApiUrl: 'https://master2.nutrilogic.ru',\n contextKey: 'c105ts1r902',\n oneDayKey: 'c105a902t119r10698526',\n yearKey: 'c105a902t119r5371410',\n liteMonthKey: 'c105a902t119r5370654',\n sentry: 'https://11cf05e55e96416fa7bac61d83a4f504@sentry.io/179036',\n },\n production: {\n apiUrl: 'https://core1.nutrilogic.ru',\n appKey: 'c105a902',\n liteApiUrl: 'https://core1.nutrilogic.ru',\n proApiUrl: 'https://core2.nutrilogic.ru',\n contextKey: 'c105ts1r902',\n oneDayKey: 'c105a902t119r10698526',\n yearKey: 'c105a902t119r5371410',\n liteMonthKey: 'c105a902t119r5370654',\n sentry: 'https://05b1206a90754cd4986f835fd8151083@sentry.io/174935',\n },\n dd: {\n apiUrl: 'https://core.xn--80adffhqmpddacw4o.xn--p1ai',\n appKey: 'c105a902',\n liteApiUrl: 'https://core.xn--80adffhqmpddacw4o.xn--p1ai',\n proApiUrl: 'https://core.xn--80adffhqmpddacw4o.xn--p1ai',\n contextKey: 'c105ts1r902',\n oneDayKey: 'c105a902t119r10698526',\n yearKey: 'c105a902t119r5371410',\n liteMonthKey: 'c105a902t119r5370654',\n sentry: 'https://05b1206a90754cd4986f835fd8151083@sentry.io/174935',\n },\n};\n\nconst env = environments[process.env.REACT_APP_API || 'develop'];\n\nexport const apiUrl = env.apiUrl;\nexport const liteApiUrl = env.liteApiUrl;\nexport const proApiUrl = env.proApiUrl;\nexport const appKey = env.appKey;\nexport const contextKey = env.contextKey;\nexport const oneDayKey = env.oneDayKey;\nexport const sentry = env.sentry;\nexport const yearKey = env.yearKey;\nexport const liteMonthKey = env.liteMonthKey;\nexport const version = process.env.REACT_APP_VERSION || 'VERSION';\nexport const head = {\n titleTemplate: process.env.REACT_APP_API === 'dd' ? '%s - Доступная Диетология' : '%s - Nutrilogic',\n meta: [\n {\n charset: 'utf-8',\n },\n ],\n}\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nconst getValues = memoizee(R.values);\n\nexport const getItemField = (field, item) => R.pathOr(null, [field], item);\n\nexport const getItemWithAllFields = R.identity;\n\nconst pickByParent = memoizee(\n (parent, key, values) => R.pickBy(item => getItemField(parent, item) === key, values),\n { length: 3 },\n);\n\nexport const getAllItems = memoizee(R.compose(\n R.defaultTo({}),\n R.prop('itemsByKey'),\n));\n\nexport const getItems = R.compose(\n memoizee(R.pickBy(val => !val.isDeleted)),\n memoizee(R.pickBy(val => !val.isDeleting)),\n getAllItems,\n);\n\nexport const getItemsArray = R.compose(\n getValues,\n getItems,\n);\n\nexport const getItem = (key, state) => {\n const item = R.pathOr(null, ['itemsByKey', key], state);\n\n if (item) {\n return item;\n }\n\n return R.compose(\n R.find(R.propEq('oldKey', key)),\n getValues,\n R.prop('itemsByKey'),\n )(state);\n};\n\nexport const getField = (field, key, state) => getItemField(field, getItem(key, state), state);\nexport const getItemById = (id, state) => {\n const key = `${state.tableKey}${id}`;\n return state.itemsByKey[key];\n};\n\nexport const getKeyById = (id, state) => {\n const { tableKey } = state;\n\n if (!id) {\n return null;\n }\n\n return tableKey + id;\n};\n\nexport const getAllItemsByParent = R.curry(memoizee((key, state) =>\n R.compose(\n values => pickByParent(state.parentField, key, values),\n getAllItems,\n )(state),\n));\nexport const getItemsByParent = R.curry(memoizee((key, state) =>\n R.compose(\n values => pickByParent(state.parentField, key, values),\n getItems,\n )(state),\n));\nexport const getItemsArrayByParent = R.curry(memoizee(R.compose(\n getValues,\n getItemsByParent,\n)));\nexport const getAllItemsArrayByParent = R.curry(memoizee(R.compose(\n getValues,\n getAllItemsByParent,\n)));\nexport const getIsButtonRunning = button => R.compose(\n R.propOr(false, button),\n getItem,\n);\n","import { createSelector } from 'redux-orm';\n\nimport orm from 'redux/orm';\n\nconst createOrmSelector = (...args) => createSelector(\n orm,\n state => state.orm,\n ...args,\n);\n\nexport default createOrmSelector;","import * as R from 'ramda';\nimport { appKey } from 'config';\n\nconst fetchWithView = R.curry((fetch, view, paramsCommon = {}) => params => fetch({\n ...paramsCommon,\n ...params,\n view: R.includes('ts5c', view) ? `${appKey}${view}` : view,\n}));\n\nexport default fetchWithView;\n","import * as R from 'ramda';\nimport uuid from 'uuid/v4';\nimport { createAction as createAct, createReducer } from 'redux-act';\n\nimport { appKey } from 'config';\nimport isLocalKey from 'utils/isLocalKey';\n\nimport { login } from 'redux/modules/auth';\n\nimport parseResult from '../../utils/parseResult';\n\nimport { getItemField, getItem } from './selectors';\n\nconst ignoreFields = ['custom_действие']; // TODO add config\n\n\nexport const getChangedData = (item = {}, data = {}) => R.pickBy(\n (val, prop) => !R.equals(item[prop], val) || R.contains(prop, ignoreFields),\n data,\n);\n\nconst defaultPath = 'itemsByKey'\nconst itemsLens = R.lensProp(defaultPath);\nconst getCustomItemsLens = (path) => R.lensPath([defaultPath, ...path])\n\nexport const set = R.curry((key, data, state) => {\n if (!data) {\n return {\n ...state,\n itemsByKey: R.omit([key], state.itemsByKey),\n };\n }\n\n return R.over(R.lensPath(['itemsByKey', key]), R.merge(R.__, data), state);\n});\n\nexport default function generator(config = {}) {\n const {\n name = 'Module__',\n tableId,\n parseItem = R.identity,\n parentField = '___parent',\n } = config;\n const tableKey = `${appKey}t${tableId}r`;\n const initialState = {\n tableKey,\n parentField,\n itemsByKey: {},\n };\n\n const createAction = (action, payload) => createAct(`${name.toUpperCase()}__${action}`, payload);\n const fetch = createAction('FETCH', args => ({\n key: tableKey,\n ...args,\n }));\n const fetchSuccess = createAction('FETCH_SUCCESS');\n const fetchFailure = createAction('FETCH_FAILURE');\n\n const create = createAction('CREATE', args => ({\n key: uuid(),\n ...args,\n }));\n\n const save = createAction('SAVE', args => ({\n ...args,\n tableKey,\n key: args.key || uuid(),\n }));\n const saveSuccess = createAction('SAVE_SUCCESS');\n const saveFailure = createAction('SAVE_FAILURE');\n\n const remove = createAction('REMOVE');\n const removeSuccess = createAction('REMOVE_SUCCESS');\n const removeFailure = createAction('REMOVE_FAILURE');\n\n const removeWithUndo = createAction('REMOVE_WITH_UNDO', args => ({\n ...args,\n tableKey,\n }));\n const removeWithUndoSuccess = createAction('REMOVE_WITH_UNDO_SUCCESS');\n const removeWithUndoFailure = createAction('REMOVE_WITH_UNDO_FAILURE');\n\n const undoRemove = createAction('UNDO_REMOVE');\n const undoRemoveSuccess = createAction('UNDO_REMOVE_SUCCESS');\n const undoRemoveFailure = createAction('UNDO_REMOVE_FAILURE');\n\n const handleFetchNumber = (state, payload) => {\n const {data, path} = payload;\n\n return R.over(getCustomItemsLens(path), () => data, state)\n // return state.itemsByKey[userAkey].___phonemobile = data;\n\n }\n\n const handleFetchSuccess = (state, { response, parents }) => {\n if (response.fromCache) {\n return state;\n }\n return R.over(itemsLens, (data) => {\n const items = parents ?\n R.pickBy(item => !R.contains(getItemField(parentField, item), parents), data) :\n data;\n return parseResult(response, items, parseItem);\n }, state);\n };\n\n const handleCreate = (state, payload) => {\n const { data, key } = payload;\n\n return set(key, {\n key,\n ...data,\n }, state);\n };\n\n const handleSave = (state, payload) => {\n const { data = {} } = payload;\n const item = R.defaultTo({}, getItem(payload.key, state));\n const key = R.defaultTo(payload.key, item.key);\n\n return set(key, {\n key,\n ...data,\n isSaving: true,\n isShouldSaved: item.isShouldSaved || (item.isSaving && !payload.isLocal),\n }, state);\n };\n\n const handleSaveSuccess = (state, { key, response }) => {\n const item = getItem(key, state);\n const newKey = R.pathOr(item.key, ['data', 'key'], response);\n const isCreation = newKey && key !== newKey;\n\n let newState = set(key, {\n isSaving: false,\n isSaved: true,\n isShouldSaved: item.isShouldSaved ? !response : item.isShouldSaved,\n }, state);\n\n if (isCreation) {\n newState = R.compose(\n set(newKey, {\n ...getItem(key, newState),\n key: newKey,\n oldKey: key,\n }),\n set(key, undefined),\n )(newState);\n }\n\n return newState;\n };\n\n const handleSaveFailure = (state, payload) => {\n const { key, data } = payload;\n\n return set(key, {\n ...data,\n isSaving: false,\n isSaved: false,\n }, state);\n };\n\n const handleRemove = (state, payload) => {\n const { key } = payload;\n\n return set(key, {\n isDeleting: true,\n }, state);\n };\n\n const handleRemoveSuccess = (state, payload) => {\n const { key } = payload;\n const item = getItem(key, state);\n const isLocalItem = isLocalKey(item.key);\n\n return set(key, {\n isDeleted: true,\n isDeleting: false,\n markToDelete: isLocalItem && item.isSaving,\n }, state);\n };\n\n const handleRemoveFailure = (state, payload) => {\n const { key } = payload;\n\n return set(key, {\n isDeleting: false,\n }, state);\n };\n\n\n const handleUndoRemove = (state, payload) => {\n const { key } = payload;\n\n return set(key, {\n isDeleted: false,\n isDeleting: false,\n markToDelete: false,\n }, state);\n };\n\n const handleUndoRemoveFailure = (state, payload) => {\n const { key } = payload;\n\n return set(key, {\n isDeleted: true,\n isDeleting: false,\n markToDelete: false,\n }, state);\n };\n\n const reducer = createReducer({\n [fetchSuccess]: handleFetchSuccess,\n [`NUMBER__PHONE_${name}`]: handleFetchNumber,\n\n [create]: handleCreate,\n\n [save]: handleSave,\n [saveSuccess]: handleSaveSuccess,\n [saveFailure]: handleSaveFailure,\n\n [remove]: handleRemove,\n [removeSuccess]: handleRemoveSuccess,\n [removeFailure]: handleRemoveFailure,\n\n [removeWithUndo]: handleRemove,\n [removeWithUndoSuccess]: handleRemoveSuccess,\n [removeWithUndoFailure]: handleRemoveFailure,\n\n [undoRemove]: handleUndoRemove,\n [undoRemoveFailure]: handleUndoRemoveFailure,\n\n [login]: () => initialState,\n }, initialState);\n\n return {\n fetch,\n fetchSuccess,\n fetchFailure,\n\n create,\n\n save,\n saveSuccess,\n saveFailure,\n\n remove,\n removeSuccess,\n removeFailure,\n\n removeWithUndo,\n removeWithUndoSuccess,\n removeWithUndoFailure,\n\n undoRemove,\n undoRemoveSuccess,\n undoRemoveFailure,\n\n reducer,\n };\n}\n","import { AxiosRequestHeaders } from \"axios\";\nimport * as R from \"ramda\";\n\ntype Params = {\n view?: any;\n filter?: any;\n token?: any;\n button?: any;\n limit?: any;\n};\n\nconst formatHeaders = ({\n view,\n filter,\n token,\n button,\n limit,\n}: Params): AxiosRequestHeaders =>\n R.pickBy(R.complement(R.isNil), {\n view,\n token,\n button,\n limit,\n filter,\n filterstate: \"remake\",\n });\n\nexport default formatHeaders;\n","import { AxiosRequestConfig } from \"axios\";\nimport request from \"./request\";\nimport formatHeaders from \"./utils/formatHeaders\";\n\ntype Params = {\n key: string;\n view?: string;\n filter?: string;\n cache?: boolean;\n token?: string;\n limit?: number;\n useLS?: boolean;\n};\n\nexport function get({\n key,\n view,\n filter,\n cache,\n token,\n limit = 100000,\n useLS = false,\n}: Params) {\n return request\n .get(`/${key}/json/v2`, {\n cache,\n useLS,\n headers: formatHeaders({\n view,\n filter,\n limit,\n token,\n }),\n } as AxiosRequestConfig)\n .then((response) => ({\n ...response.data,\n fromCache: (response as any).fromCache,\n }));\n}\n","import request from \"./request\";\n\nimport formatHeaders from \"./utils/formatHeaders\";\n\ntype Params = {\n key: string;\n data: Record;\n token?: string;\n button?: string;\n};\n\nexport function post({ key, data, token, button }: Params) {\n return request.post(\n `/${key}/json/v2`,\n { data },\n {\n headers: formatHeaders({\n button,\n token,\n }),\n }\n );\n}\n","import request from \"./request\";\nimport formatHeaders from \"./utils/formatHeaders\";\n\ntype Params = {\n key: string;\n data: Record;\n token?: string;\n};\n\nexport function put({ key, token, data }: Params) {\n return request.put(\n `/${key}/json/v2`,\n { data },\n {\n headers: formatHeaders({\n token,\n }),\n }\n );\n}\n","import request from '../request';\nimport formatHeaders from '../utils/formatHeaders';\n\nexport default function deleteRequest({ key, view }) {\n return request.delete(`/${key}/json/v2`, {\n headers: formatHeaders({\n view,\n }),\n });\n}\n","export default function getKeyInfo(key) {\n if (!key) {\n return {};\n }\n\n const [company, app, table, record] = key.split(/[catr]/).slice(1).map(item => parseInt(item, 10));\n\n return {\n company,\n app,\n table,\n record,\n };\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr([], 'custom_производители_бад'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getCatalogGroups as getProductGroups } from 'redux/modules/productGroups';\nimport { getCatalogGroups as getSupplementGroups } from 'redux/modules/supplementGroups';\n\nimport getUserIsLight from '../getUserIsLight';\nimport getUserSupplementGroups from '../getUserSupplementGroups';\n\nexport default createSelector(\n getUserIsLight,\n getUserSupplementGroups,\n R.path(['productGroups']),\n R.path(['supplementGroups']),\n\n (isLight, userGroups, productGroups, supplementGroups) => {\n if (isLight) {\n return getSupplementGroups(supplementGroups, userGroups);\n }\n\n return getProductGroups(productGroups);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getCatalogGroups from '../getCatalogGroups';\n\nexport default createSelector(\n getCatalogGroups,\n (state, props) => Number(props.groupId),\n\n (items, groupId) => R.find(R.propEq('id', groupId), items),\n);\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { getNorm } from \"redux/modules/elementNorms\";\n\nimport getUserCountry from \"../getUserCountry\";\n\nexport default createSelector(\n R.path([\"elementNorms\"]),\n getUserCountry,\n\n getNorm\n);\n","import { createSelector } from 'reselect';\n\nimport getPatientKey from '../getPatientKey';\nimport getAbstractNorm from '../getAbstractNorm';\nimport getPatientNorm from '../getPatientNorm';\n\nexport default createSelector(\n getPatientKey,\n getAbstractNorm,\n getPatientNorm,\n\n (patientKey, abstractNorm, patientNorm) => patientKey ? patientNorm : abstractNorm,\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport {oneDayKey} from 'config';\n\nexport default createOrmSelector(\n (session) => {\n const { InstitutionSubscription } = session;\n const item = InstitutionSubscription.first();\n\n if (!item) {\n return {};\n }\n// const bill = SubscriptionOperation\n// .filter(i => R.includes(i.custom_операция, [`${appKey}t122r5385772`, `${appKey}t122r6448820`]))\n// .orderBy(a => moment(a.custom_дата_операции).valueOf(), 'desc')\n// .first();\n\n let duration = R.pathOr(null, ['custom_оплачено', 'custom_количество_месяцев_подписки'], item);\n let option = item.custom_текущий_вариант_подписки || {\n custom_стоимость: 0,\n custom_стоимость_исходная: 0,\n custom_количество_месяцев_подписки: 1,\n };\n\n const { custom_текущий_вариант_подписки, custom_оплачено } = item.ref;\n const isCurrentSubscriptionExists = !!custom_текущий_вариант_подписки;\n const isFutureSubscriptionExists = !!custom_оплачено;\n const isCurrentSubscriptionOneDay = custom_текущий_вариант_подписки === oneDayKey;\n const isFutureSubscriptionOneDay = custom_оплачено === oneDayKey;\n const isProlonged = isCurrentSubscriptionExists && isFutureSubscriptionExists;\n\n let days = 365;\n if (isCurrentSubscriptionOneDay) {\n days = 1;\n } else if (option.custom_количество_месяцев_подписки === 1) {\n days = 31;\n }\n// const realPrice = isProlonged && bill.ref.custom_промокод ? bill.custom_ordersumamount : option.custom_стоимость;\n const dayPrice = option.custom_стоимость / days;\n const currentPrice = item.custom_стоимость_текущей_подписки / (isCurrentSubscriptionOneDay ? 1 : option.custom_количество_месяцев_подписки) / item.custom_количество_пользователей;\n\n return {\n ...item.ref,\n duration,\n currentPrice,\n dayPrice,\n futureMonths:\n isCurrentSubscriptionExists,\n isFutureSubscriptionExists,\n isCurrentSubscriptionOneDay,\n isFutureSubscriptionOneDay,\n isProlonged,\n };\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/modules/subscriptionTariffs';\n\nexport default createSelector(\n R.path(['subscriptionTariffs']),\n\n getItemsArray,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\nimport getTariffsAll from '../getTariffsAll';\n\nexport default createSelector(\n state => {\n const subscription = getInstitutionSubscription(state);\n const list = getTariffsAll(state);\n\n return R.find(R.propEq('key', subscription.custom_действующий_тарифный_план), list)\n },\n\n R.propOr(false, 'custom_триал'),\n) as () => boolean;\n","import { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n (worker) => worker && !!worker.custom_партнер,\n);\n","import React from 'react'\nimport { createSelector } from 'reselect';\n\nimport Link from 'components/Link';\n\nimport getInstitutionTariffIsTrial from '../getInstitutionTariffIsTrial'\nimport getUserIsLight from '../getUserIsLight'\nimport getUserIsPartner from '../getUserIsPartner'\n\nexport default createSelector(\n getInstitutionTariffIsTrial,\n getUserIsLight,\n getUserIsPartner,\n\n (isTrial, isLight, isPartner) => {\n if (isTrial) {\n if (isLight) {\n return (\n <>\n Вы не можете создавать клиентов во время пробного периода.\n Пожалуйста, продлите подписку здесь, чтобы создавать клиентов без ограничений.\n \n )\n }\n\n if (isPartner) {\n return (\n <>\n Вы не можете создавать пациентов во время пробного периода.\n Пожалуйста, продлите подписку здесь, чтобы снять ограничения.\n \n )\n }\n }\n\n return null\n }\n)\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray as getIngestion } from 'redux/modules/mealTypes';\n\nexport default createSelector(\n R.path(['mealTypes']),\n\n R.compose(\n R.map(item => ({\n key: item.key,\n custom_схема_питания: item.key,\n custom_время: item.custom_время,\n })),\n getIngestion,\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItems as getKingsFood } from 'redux/modules/specificEatingTypes';\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n R.path(['specificEatingTypes']),\n getUserIsLight,\n\n getKingsFood,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatientIllness from '../getPatientIllness';\nimport getDiseaseList from '../getDiseaseList';\nimport getIllnessList from '../getIllnessList';\nimport getPatientSpecificConditions from '../getPatientSpecificConditions';\n\nexport default createSelector(\n getPatientSpecificConditions,\n getPatientIllness,\n getIllnessList,\n getDiseaseList,\n\n (specificConditions, patientIllness, illnessList, diseaseList) => {\n const illness = R.compose(\n R.pluck('label'),\n R.map(item => R.find(R.propEq('value', item), illnessList)),\n )(patientIllness);\n const disease = R.compose(\n R.pluck('label'),\n R.map(item => R.find(R.propEq('value', item), diseaseList)),\n )(specificConditions);\n\n return [...illness, ...disease];\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getSpecificConditions,\n} from 'modules/Patient/redux/disease';\n\nexport default createSelector(\n R.path(['Patient', 'disease']),\n\n getSpecificConditions,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport { appKey } from 'config';\n\nimport getElementsVisible from '../getElementsVisible';\n\nconst baseElements = [\n `${appKey}t28r219`,\n `${appKey}t28r221`,\n `${appKey}t28r222`,\n `${appKey}t28r223`,\n];\n\nexport default createSelector(\n getElementsVisible,\n\n R.reject(item => R.contains(item.key, baseElements)),\n);\n","import moment from 'moment';\nimport * as R from 'ramda';\n\nimport { appKey } from 'config';\n\nimport declOfNums from 'utils/declOfNums';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nconst getLabel = declOfNums(['аккаунт', 'аккаунта', 'аккаунтов']);\nconst getLabel1 = declOfNums(['аккаунта', 'аккаунтов', 'аккаунтов']);\n\nexport const getActiveBill = createOrmSelector(\n (session) => {\n const { SubscriptionOperation } = session;\n const activeBill = SubscriptionOperation\n .exclude({\n isSaving: true,\n })\n .exclude({\n custom_операция: `${appKey}t122r6449623`, // Перенос даты однодневной подписки\n })\n .filter({\n custom_currentstatus: 'newManualOrder',\n })\n .first();\n\n return activeBill ? activeBill.ref : undefined;\n },\n);\n\nexport const getBillList = createOrmSelector(\n (session) => {\n const { SubscriptionOperation } = session;\n\n return SubscriptionOperation\n .exclude({\n custom_currentstatus: 'cancelOrder',\n })\n .exclude({\n custom_currentstatus: 'cancelManualOrder',\n })\n .exclude({\n custom_currentstatus: 'newOrder',\n })\n .exclude({\n custom_операция: `${appKey}t122r6135158`,\n })\n .exclude({\n custom_операция: `${appKey}t122r6449623`,\n })\n .orderBy(a => moment(a.custom_дата_операции).valueOf(), 'desc')\n .toModelArray()\n .map((item) => {\n const tariff = item.custom_тарифный_план;\n\n const durationLabel = {\n 1: 'месяц',\n 12: 'год',\n };\n\n const duration = tariff ? durationLabel[tariff.custom_количество_месяцев_подписки] : undefined;\n\n const operationId = getKeyInfo(item.custom_операция).record\n const textByOperation = {\n 5370660: `${item.custom_значение_операции} ${getLabel(item.custom_значение_операции)} на ${duration}`,\n 5385772: `${item.custom_значение_операции} ${getLabel(item.custom_значение_операции)} на ${duration}`,\n 5370661: `Увеличение до ${item.custom_значение_операции} ${getLabel1(item.custom_значение_операции)}`,\n 6448820: `${item.custom_значение_операции} ${getLabel(item.custom_значение_операции)} на 1 день`,\n }\n\n return {\n key: item.key,\n date: item.custom_дата_операции,\n sum: item.custom_ordersumamount,\n invoiceUri: item.custom_счет,\n text: textByOperation[operationId],\n };\n });\n },\n);\n\nexport const getLastProlongation = createOrmSelector(\n (session) => {\n const { SubscriptionOperation } = session;\n\n const item = SubscriptionOperation\n .filter(i => R.includes(i.custom_операция, [`${appKey}t122r5385772`, `${appKey}t122r6448820`]))\n .orderBy(a => moment(a.custom_дата_операции).valueOf(), 'desc')\n .first();\n\n return item ? item.ref : null;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.prop('custom_активных_пользователей'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.prop('custom_время_окончания_подписки'),\n) as () => string;\n","import moment from 'moment';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\nimport getInstitutionSubscriptionEnd from '../getInstitutionSubscriptionEnd';\n\nexport default createSelector(\n getInstitutionSubscription,\n getInstitutionSubscriptionEnd,\n\n (tariff, endDate) => {\n return moment(endDate).add(tariff.isFutureSubscriptionOneDay ? 0 : tariff.duration, 'months').diff(moment().startOf('day'), 'days')\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { Partner } = session;\n\n try {\n return Partner\n .first()\n .ref;\n } catch (error) {\n return null\n }\n },\n);\n","import { createSelector } from 'reselect';\n\nimport getPartner from '../getPartner';\n\nexport default createSelector(\n getPartner,\n\n (partner) => {\n const subscriptionUrl = partner ? partner.custom_subscribe_url : null\n\n if (process.env.REACT_APP_API === 'dd') {\n return {\n href: 'https://xn--80adffhqmpddacw4o.xn--p1ai/',\n target: '_blank'\n };\n }\n\n return {\n to: partner ? null : '/user/subscription',\n href: partner ? subscriptionUrl : null,\n target: partner ? '_blank' : null,\n }\n },\n);\n","import { createSelector } from 'reselect';\n\nimport declOfNums from 'utils/declOfNums';\nimport getInstitutionSubscriptionDurationTotal from '../getInstitutionSubscriptionDurationTotal';\nimport getSubscriptionUrl from '../getSubscriptionUrl';\nimport getUserIsPartner from '../getUserIsPartner';\n\nconst getDay = declOfNums(['день', 'дня', 'дней']);\n\nexport default createSelector(\n getInstitutionSubscriptionDurationTotal,\n getSubscriptionUrl,\n getUserIsPartner,\n\n (duration, subscriptionUrl, isPartner) => {\n if (duration > 7 || duration <= 0 || isPartner || process.env.REACT_APP_API === 'dd') {\n return {};\n }\n\n return {\n title: 'Внимание!',\n text: `Внимание! До конца оплаченного периода подписки осталось ${duration} ${getDay(duration)}.`,\n button: 'Продлить',\n ...subscriptionUrl,\n };\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitution from '../getInstitution';\n\nexport default createSelector(\n getInstitution,\n\n R.compose(\n R.multiply(0.01),\n R.defaultTo(0),\n R.propOr(0, 'custom_постоянная_скидка'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitution from '../getInstitution';\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n getInstitution,\n getUserIsLight,\n\n (institution, isLight) => {\n return R.compose(\n R.not,\n R.propOr(true, 'custom_информирован_о_триальной_подписке'),\n )(institution);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.propOr(0, 'custom_остаток_бонусных_дней'),\n);\n","import moment from 'moment';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscriptionEnd from '../getInstitutionSubscriptionEnd';\n\nexport default createSelector(\n getInstitutionSubscriptionEnd,\n\n endDate => moment(endDate).diff(moment().startOf('day'), 'days'),\n) as () => number;\n","import { createSelector } from 'reselect';\nimport moment from 'moment';\n\nimport getInstitutionSubscriptionEnd from '../getInstitutionSubscriptionEnd';\n\nexport default createSelector(\n getInstitutionSubscriptionEnd,\n\n endDate => moment(endDate).isBefore(moment()),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.prop('custom_дата_начала_подписки'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.compose(\n R.not,\n R.isNil,\n R.propOr(null, 'custom_оплачено'),\n ),\n);\n","import * as R from 'ramda';\nimport { appKey } from 'config';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\nimport getInstitutionTariffIsTrial from '../getInstitutionTariffIsTrial';\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n getInstitutionSubscription,\n getInstitutionTariffIsTrial,\n getUserIsLight,\n\n (subscription, isTrial, isLight) => {\n if (isTrial) {\n return `${appKey}t116r${isLight ? 5370657 : 5370658}`\n }\n\n return R.propOr(null, 'custom_действующий_тарифный_план', subscription)\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUserIsLight from '../getUserIsLight';\nimport getTariffsAll from '../getTariffsAll';\n\nexport default createSelector(\n getUserIsLight,\n getTariffsAll,\n\n (isLight, list) => R.compose(\n R.head,\n R.reverse,\n R.reject(R.prop('custom_спецтариф')),\n R.reject(R.prop('custom_архивный')),\n R.reject(R.prop('custom_триал')),\n R.filter(R.propEq('custom_группа_тарифов_light', isLight)),\n )(list),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionTariffKey from '../getInstitutionTariffKey';\nimport getTariffsAll from '../getTariffsAll';\n\nexport default createSelector(\n getInstitutionTariffKey,\n getTariffsAll,\n\n (key, tariffs) => R.find(R.propEq('key', key), tariffs),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionTariffKey from '../getInstitutionTariffKey';\nimport getTariff from '../getTariff';\n\nexport default createSelector(\n R.identity,\n getInstitutionTariffKey,\n\n (state, tariffKey) => getTariff(state, { tariffKey }),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getTariffReal from '../getTariffReal';\n\nexport default createSelector(\n getTariffReal,\n\n R.prop('custom_спецтариф'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getTariffReal from '../getTariffReal';\n\nexport default createSelector(\n getTariffReal,\n\n R.propOr(null, 'custom_название'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitutionSubscription from '../getInstitutionSubscription';\n\nexport default createSelector(\n getInstitutionSubscription,\n\n R.prop('custom_количество_пользователей'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/modules/journal';\n\nexport default createSelector(\n R.path(['journal']),\n\n getItemsArray,\n);\n","import { getLoaderByType as getLoaderByTypeLocal } from 'redux/modules/loader';\n\nconst getLoaderByType = (type, state) =>\n getLoaderByTypeLocal(type, state.loader);\n\nexport default getLoaderByType","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getApplicationUser from '../getApplicationUser';\nimport getMealsWithStatus from '../getMealsWithStatus';\n\nexport default createSelector(\n getApplicationUser,\n getMealsWithStatus,\n\n (userKey, meals) => R.filter((item) => {\n const isTerritory = item.custom_показывать_в_рамках_учреждения === true;\n const owner = item.___owner; // eslint-disable-line\n const isBase = !owner;\n\n return isBase || isTerritory || owner === userKey;\n }, meals),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getMealsList from '../getMealsList';\n\nexport default createSelector(\n getMealsList,\n\n R.indexBy(R.prop('key')),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getMealsList from '../getMealsList';\n\nexport default createSelector(\n getMealsList,\n\n R.groupBy(R.prop('custom_группа')),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUserIsLight from '../getUserIsLight';\nimport getUserIsPartner from '../getUserIsPartner';\n\nexport default createSelector(\n getUserIsLight,\n getUserIsPartner,\n\n (isLight, isPartner) => {\n const items = [\n {\n to: '/catalog',\n title: isLight ? 'Справочник биологически активных добавок' : 'Справочник пищевых продуктов',\n },\n {\n to: '/glossary/rations',\n title: 'Справочник шаблонов рационов',\n inMenu: !isLight,\n },\n {\n to: '/glossary/daily-rate',\n title: 'Суточные нормы потребления',\n },\n {\n to: '/glossary/anthropometry-norm',\n title: 'Антропометрические нормы',\n },\n {\n href: \"https://help.nutrilogic.ru/\",\n target: \"_blank\",\n title: 'База знаний',\n },\n {\n href: '/files/help.pdf',\n target: '_blank',\n title: 'Помощь',\n inMenu: !isLight && !isPartner,\n },\n ];\n\n return R.reject(R.propEq('inMenu', false), items);\n },\n);\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { getItems, Patient } from \"redux/modules/patients\";\n\nexport default createSelector(\n R.path([\"patients\"]),\n\n getItems as any\n) as unknown as () => Patient[];\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport isLocalKey from 'utils/isLocalKey';\nimport getPatientId from '../getPatientId';\nimport getPatientsList from '../getPatientsList';\nimport getUserIsLight from '../getUserIsLight';\nimport getUserIsPartner from '../getUserIsPartner';\nimport { getDietanamnezIdWithotNotEnded } from 'redux/selectors';\n\nconst tooltip = 'Введите все регистрационные данные, обязательные для заполнения.';\n\nconst getProPatientMenu = createSelector(\n getPatientId,\n getPatientsList,\n getUserIsPartner,\n\n (patientId, list, isPartner) => {\n const newItem = R.find(R.propSatisfies(isLocalKey, 'key'), list);\n const isNew = patientId === 'new';\n const mainPage = {\n to: `/patients/${patientId}`,\n title: 'Регистрационные данные',\n onlyActiveOnIndex: true,\n visible: true,\n };\n const restPage = [\n {\n to: `/patients/${patientId}/diagnosis`,\n title: 'Диагноз',\n visible: !isPartner,\n },\n {\n to: `/patients/${patientId}/anthropometry`,\n title: 'Антропометрия и состав тела',\n visible: true,\n },\n {\n to: `/patients/${patientId}/energy`,\n title: 'Энергетический обмен',\n visible: true,\n },\n {\n to: `/patients/${patientId}/analyses`,\n title: 'Анализы',\n visible: !isPartner,\n },\n {\n to: `/patients/${patientId}/dietanamnez`,\n title: 'Диетанамнез',\n visible: !isPartner,\n },\n {\n to: `/patients/${patientId}/rations`,\n title: 'Рацион',\n visible: true,\n },\n ];\n\n return R.compose(\n R.filter(item => item.visible),\n R.concat([mainPage]),\n R.map(R.set(R.lensProp('disabled'), isNew)),\n R.map(R.set(R.lensProp('tooltip'), (isNew && !newItem) ? tooltip : null)),\n R.map(R.over(R.lensProp('to'), val => isNew ? '' : val)),\n )(restPage);\n },\n);\n\nconst getLightPatientMenu = createSelector(\n getPatientId,\n getPatientsList,\n getDietanamnezIdWithotNotEnded,\n (patientId, list, dietanamnezId) => {\n const newItem = R.find(R.propSatisfies(isLocalKey, 'key'), list);\n const isNew = patientId === 'new';\n const mainPage = {\n to: `/patients/${patientId}`,\n label: 'Регистрация',\n onlyActiveOnIndex: true,\n };\n const restPage = [\n {\n to: `/patients/${patientId}/status`,\n label: 'Пищевой статус',\n },\n {\n to: `/patients/${patientId}/dietanamnez/${dietanamnezId || ''}`,\n label: 'Фактическое питание',\n },\n {\n to: `/patients/${patientId}/rations`,\n label: 'Оптимизация питания',\n },\n ];\n\n return R.compose(\n R.concat([mainPage]),\n R.map(R.set(R.lensProp('disabled'), isNew)),\n R.map(R.set(R.lensProp('tooltip'), (isNew && !newItem) ? tooltip : null)),\n R.map(R.over(R.lensProp('to'), val => isNew ? null : val)),\n )(restPage);\n },\n);\n\nexport default createSelector(\n getUserIsLight,\n getProPatientMenu,\n getLightPatientMenu,\n\n (isLight, proMenu, lightMenu) => isLight ? lightMenu : proMenu,\n);\n","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgSupport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM7 6C7 5.72386 7.22386 5.5 7.5 5.5H8.33333C8.70152 5.5 9 5.79848 9 6.16667C9 6.3765 8.9012 6.5741 8.73333 6.7L7.73333 7.45C7.27169 7.79623 7 8.33961 7 8.91667V10H9V9L9.93333 8.3C10.6048 7.79639 11 7.00602 11 6.16667C11 4.69391 9.80609 3.5 8.33333 3.5H7.5C6.11929 3.5 5 4.61929 5 6C5 6.26522 5.10536 6.51957 5.29289 6.70711C5.48043 6.89464 5.73478 7 6 7C6.26522 7 6.51957 6.89464 6.70711 6.70711C6.89464 6.51957 7 6.26522 7 6ZM7 11V13H9V11H7Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSupport);\nexport default __webpack_public_path__ + \"static/media/support.e0df240e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgTime(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9.87535 10.7809C10.3066 11.1259 10.9359 11.0559 11.2809 10.6247C11.6259 10.1934 11.5559 9.56408 11.1247 9.2191L8.99972 7.51934V4.5C8.99972 3.94772 8.552 3.5 7.99972 3.5C7.44743 3.5 6.99972 3.94772 6.99972 4.5L6.99972 8V8.48066L7.37507 8.7809L9.87535 10.7809Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTime);\nexport default __webpack_public_path__ + \"static/media/time.1f9a0e1a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgFolder(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 13V3H5.17157L6.29289 4.12132L7.59207 2.82214L6.29289 4.12132C6.8555 4.68393 7.61856 5 8.41421 5H14V13H2ZM0 13V3C0 1.89543 0.89543 1 2 1H5.58579C5.851 1 6.10536 1.10536 6.29289 1.29289L7.70711 2.70711C7.89464 2.89464 8.149 3 8.41421 3H14C15.1046 3 16 3.89543 16 5V13C16 14.1046 15.1046 15 14 15H2C0.895431 15 0 14.1046 0 13ZM4 10C3.44772 10 3 10.4477 3 11C3 11.5523 3.44772 12 4 12H8C8.55228 12 9 11.5523 9 11C9 10.4477 8.55228 10 8 10H4Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolder);\nexport default __webpack_public_path__ + \"static/media/folder.7be7f454.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgCalendar(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 0C4.55228 0 5 0.447715 5 1V2H11V1C11 0.447715 11.4477 0 12 0C12.5523 0 13 0.447715 13 1V2C14.6569 2 16 3.34315 16 5V13C16 14.6569 14.6569 16 13 16H3C1.34315 16 0 14.6569 0 13V5C0 3.34315 1.34315 2 3 2V1C3 0.447715 3.44772 0 4 0ZM11 4C11 4.55228 11.4477 5 12 5C12.5523 5 13 4.55228 13 4C13.5523 4 14 4.44772 14 5V6L2 6L2 5C2 4.44772 2.44772 4 3 4C3 4.55228 3.44772 5 4 5C4.55228 5 5 4.55228 5 4H11ZM2 8V13C2 13.5523 2.44772 14 3 14H13C13.5523 14 14 13.5523 14 13V8L2 8ZM3 12C3 11.4477 3.44772 11 4 11H7C7.55228 11 8 11.4477 8 12C8 12.5523 7.55228 13 7 13H4C3.44772 13 3 12.5523 3 12Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendar);\nexport default __webpack_public_path__ + \"static/media/calendar.b393fc7c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgUser(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 5C11 6.65685 9.65686 8 8 8C6.34315 8 5 6.65685 5 5C5 3.34315 6.34315 2 8 2C9.65686 2 11 3.34315 11 5ZM13 5C13 7.76142 10.7614 10 8 10C5.23858 10 3 7.76142 3 5C3 2.23858 5.23858 0 8 0C10.7614 0 13 2.23858 13 5ZM8 10C11.0885 10 13.8475 11.3233 15.727 13.3134C16.1062 13.7149 16.0881 14.3478 15.6866 14.727C15.2851 15.1062 14.6522 15.0881 14.273 14.6866C12.7525 13.0767 10.5115 12 8 12C5.48847 12 3.24747 13.0767 1.72702 14.6866C1.3478 15.0881 0.714897 15.1062 0.313379 14.727C-0.0881392 14.3478 -0.106222 13.7149 0.272989 13.3134C2.15254 11.3233 4.91153 10 8 10ZM5 15C5 14.4477 5.44772 14 6 14H10C10.5523 14 11 14.4477 11 15C11 15.5523 10.5523 16 10 16H6C5.44772 16 5 15.5523 5 15Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUser);\nexport default __webpack_public_path__ + \"static/media/user.1015c838.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgLocation(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 1C2 0.447715 1.55228 0 1 0C0.447715 0 0 0.447715 0 1V15C0 15.5523 0.447716 16 1 16C1.55229 16 2 15.5523 2 15L2 1ZM10.3176 6.91848L9.62238 8L10.3176 9.08152L12.8367 13H5V3H12.8367L10.3176 6.91848ZM3 14V2C3 1.44772 3.44772 1 4 1H14.6683C15.4595 1 15.9373 1.87525 15.5095 2.54076L12 8L15.5095 13.4592C15.9373 14.1248 15.4595 15 14.6683 15H4C3.44772 15 3 14.5523 3 14Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocation);\nexport default __webpack_public_path__ + \"static/media/location.765ca559.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgPersonal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13 2H3C2.44772 2 2 2.44772 2 3V13C2 13.5523 2.44772 14 3 14H13C13.5523 14 14 13.5523 14 13V3C14 2.44772 13.5523 2 13 2ZM3 0C1.34315 0 0 1.34315 0 3V13C0 14.6569 1.34315 16 3 16H13C14.6569 16 16 14.6569 16 13V3C16 1.34315 14.6569 0 13 0H3ZM8 7C8.55228 7 9 6.55228 9 6C9 5.44772 8.55228 5 8 5C7.44772 5 7 5.44772 7 6C7 6.55228 7.44772 7 8 7ZM8 9C9.65685 9 11 7.65685 11 6C11 4.34315 9.65685 3 8 3C6.34315 3 5 4.34315 5 6C5 7.65685 6.34315 9 8 9ZM8 9C9.76409 9 11.2654 10.082 11.919 11.6058C12.1367 12.1134 11.9018 12.7013 11.3942 12.919C10.8866 13.1367 10.2987 12.9018 10.081 12.3942C9.72467 11.5635 8.9196 11 8 11C7.0804 11 6.27533 11.5635 5.91903 12.3942C5.70133 12.9018 5.11338 13.1367 4.60581 12.919C4.09825 12.7013 3.86327 12.1134 4.08097 11.6058C4.73457 10.082 6.23591 9 8 9Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPersonal);\nexport default __webpack_public_path__ + \"static/media/personal.7d4c8498.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgVCamera(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 4H2L2 12H10V4ZM2 2C0.895431 2 0 2.89543 0 4V12C0 13.1046 0.895431 14 2 14H10C11.1046 14 12 13.1046 12 12V10.7273L14.4538 12.3276C15.1189 12.7614 16 12.2841 16 11.49V5.18207C16 4.38795 15.1189 3.91066 14.4538 4.34446L12 5.94475V4C12 2.89543 11.1046 2 10 2H2ZM12 8.33956V8.33249L14 7.02812V9.64394L12 8.33956ZM2.66663 10C2.66663 9.44772 3.11434 9 3.66663 9H6.99996C7.55224 9 7.99996 9.44772 7.99996 10C7.99996 10.5523 7.55224 11 6.99996 11H3.66663C3.11434 11 2.66663 10.5523 2.66663 10Z\",\n fill: \"currentColor\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVCamera);\nexport default __webpack_public_path__ + \"static/media/v-camera.2c77227f.svg\";\nexport { ForwardRef as ReactComponent };","var _metadata, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgLink(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 1000 1000\",\n enableBackground: \"new 0 0 1000 1000\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _metadata || (_metadata = /*#__PURE__*/React.createElement(\"metadata\", null, \" Svg Vector Icons : http://www.onlinewebfonts.com/icon \")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.000000,511.000000) scale(0.100000,-0.100000)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6792.8,4975.4c-326.6-59.8-678.5-202.4-977.4-397.9c-197.8-128.8-1189-1101.6-1258-1232.7c-36.8-71.3-43.7-121.9-36.8-234.6c11.5-177.1,87.4-301.3,236.9-388.7c126.5-75.9,328.9-85.1,450.8-23c43.7,23,296.7,255.3,561.2,515.2c266.8,262.2,535.9,510.6,600.3,549.7c289.8,181.7,650.9,271.4,998.2,250.7c269.1-18.4,411.7-55.2,653.2-172.5c556.6-269.1,894.6-816.5,894.6-1453.5c2.3-296.7-39.1-464.6-181.7-759L8628,1410.6L7692,479.2C6682.4-530.5,6638.7-567.2,6275.3-686.8c-163.3-55.2-220.8-62.1-506-62.1c-276-2.3-347.3,4.6-494.5,50.6c-241.5,75.9-446.2,188.6-630.2,349.6c-184,158.7-269.1,193.2-453.1,179.4c-255.3-18.4-434.7-213.9-434.7-476.1c0-163.3,73.6-294.4,255.3-455.4c878.5-784.2,2203.3-876.2,3201.4-223.1c195.5,126.5,1996.3,1904.3,2178,2148.1c667,894.6,678.5,2168.8,29.9,3079.5c-411.7,575-1046.4,970.6-1738.7,1083.2C7485,5019.1,6999.7,5012.2,6792.8,4975.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4021.4,1971.8c-340.4-27.6-667-117.3-961.3-264.5c-324.3-165.6-434.7-259.9-1391.4-1214.3C1146.6-26.8,668.2-519,606.1-601.7c-662.4-890-676.2-2173.4-32.2-3074.9c503.7-706.1,1285.6-1110.8,2148.1-1110.8c545.1,0,1007.3,138,1460.4,432.4c197.8,128.8,1189,1101.6,1258,1232.7c69,135.7,50.6,347.3-41.4,478.4c-135.7,193.2-409.4,269.1-607.2,167.9c-43.7-20.7-303.6-257.6-575-526.7c-308.2-301.3-542.8-515.2-625.6-561.2c-715.2-420.9-1690.4-243.8-2168.8,391c-236.9,315.1-340.4,623.3-340.4,1007.3c-2.3,296.7,39.1,466.9,181.7,759l108.1,218.5l899.3,903.8C3193.5,642.5,3333.8,764.4,3609.8,877.1c232.3,92,374.9,119.6,641.7,117.3c397.9-2.3,733.7-119.6,1014.2-356.5c273.7-227.7,296.7-239.2,492.2-239.2c154.1,0,186.3,6.9,266.8,62.1c140.3,98.9,202.4,207,211.6,374.9c11.5,179.4-34.5,278.3-213.9,450.8c-381.8,365.7-988.9,641.7-1494.9,676.2c-101.2,6.9-209.3,16.1-241.5,20.7C4253.7,1985.6,4136.4,1981,4021.4,1971.8z\"\n })))));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLink);\nexport default __webpack_public_path__ + \"static/media/link.e2a3a59e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgExport(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n style: {\n transform: \"rotate(180deg)\"\n },\n xmlns: \"http://www.w3.org/2000/svg\",\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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13 14C13.5523 14 14 13.5523 14 13L14 3C14 2.44772 13.5523 2 13 2H11V0H13C14.6569 0 16 1.34315 16 3V13C16 14.6569 14.6569 16 13 16L3 16C1.34315 16 0 14.6569 0 13V3C0 1.34315 1.34315 0 3 0H5L5 2H3C2.44771 2 2 2.44772 2 3L2 13C2 13.5523 2.44772 14 3 14L13 14ZM9 5.41421V11.9999H7L7 5.41421L5.20711 7.20711C4.81658 7.59763 4.18342 7.59763 3.79289 7.20711C3.40237 6.81658 3.40237 6.18342 3.79289 5.79289L7.29289 2.29289L8 1.58579L8.70711 2.29289L12.2071 5.79289C12.5976 6.18342 12.5976 6.81658 12.2071 7.20711C11.8166 7.59763 11.1834 7.59763 10.7929 7.20711L9 5.41421Z\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExport);\nexport default __webpack_public_path__ + \"static/media/export.a570235d.svg\";\nexport { ForwardRef as ReactComponent };","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.either(\n R.propOr(false, 'custom_is_support'),\n R.propOr(false, 'custom_избранный'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport moment from 'moment';\n\nimport declOfNums from 'utils/declOfNums';\n\nimport { ReactComponent as Support } from 'icons/support.svg';\nimport { ReactComponent as Time } from 'icons/time.svg';\nimport { ReactComponent as Folder } from 'icons/folder.svg';\nimport { ReactComponent as Calendar } from 'icons/calendar.svg';\nimport { ReactComponent as User } from 'icons/user.svg';\nimport { ReactComponent as Location } from 'icons/location.svg';\nimport { ReactComponent as Personal } from 'icons/personal.svg';\nimport { ReactComponent as Camera } from 'icons/v-camera.svg';\nimport { ReactComponent as Link } from 'icons/link.svg';\nimport { ReactComponent as Export } from 'icons/export.svg';\n\nimport getUserIsLight from '../getUserIsLight';\nimport getUserIsPartner from '../getUserIsPartner';\nimport getInstitutionTariffName from '../getInstitutionTariffName';\nimport getInstitutionSubscription from '../getInstitutionSubscription';\nimport getInstitutionSubscriptionEnd from '../getInstitutionSubscriptionEnd';\nimport getInstitutionSubscriptionDurationTotal from '../getInstitutionSubscriptionDurationTotal';\nimport getUserIsSupport from '../getUserIsSupport';\nimport getPartner from '../getPartner';\nimport getSubscriptionUrl from '../getSubscriptionUrl';\nimport { getUserRight } from '../getUserRights';\n\nconst getHour = declOfNums(['час', 'часа', 'часов']);\n\nexport default createSelector(\n getUserIsLight,\n getUserIsPartner,\n getInstitutionTariffName,\n getInstitutionSubscription,\n getInstitutionSubscriptionEnd,\n getInstitutionSubscriptionDurationTotal,\n getUserIsSupport,\n state => getUserRight('INSTITUTION_ADMINISTER', state),\n getPartner,\n state => process.env.REACT_APP_API === 'dd' ? {} : getSubscriptionUrl(state),\n\n (\n isLight,\n isPartner,\n tariffName,\n subscription,\n end,\n duration,\n isSupport,\n canEditSubscription,\n partner,\n subscriptionUrl,\n ) => {\n const { isCurrentSubscriptionOneDay } = subscription;\n const daysDuration = duration >= 0 ? `${tariffName}, еще ${duration} дней` : null;\n const dailyHourDuration = Math.ceil(moment(end).diff(moment(), 'hours', true));\n const hourDuration = `Осталось ${dailyHourDuration} ${getHour(dailyHourDuration)}`;\n const daysError = duration < 0 ? 'Требует продления' : null;\n\n const items = [\n {\n ...subscriptionUrl,\n disabled: partner && !subscriptionUrl,\n title: 'Подписка',\n subtitle: partner ? null : isCurrentSubscriptionOneDay ? hourDuration : daysDuration,\n error: partner ? null : isCurrentSubscriptionOneDay ? null : daysError,\n inMenu: canEditSubscription,\n },\n {\n icon: Camera,\n to: '/webinars',\n title: 'Онлайн-обучение',\n inMenu: isLight,\n },\n {\n icon: Support,\n to: '/user/support',\n title: 'Поддержка',\n inMenu: isSupport,\n },\n {\n icon: Link,\n to: '/user/links',\n title: 'Ссылка саморегистрации',\n inMenu: !isPartner,\n },\n {\n icon: Time,\n to: '/user/journal',\n title: 'Журнал действий',\n inMenu: !isLight,\n },\n {\n icon: Folder,\n to: '/statistic',\n title: 'Группа',\n inMenu: isLight,\n },\n {\n icon: Calendar,\n to: '/user/calendar',\n title: 'План приемов',\n inMenu: !isLight,\n },\n {\n icon: Export,\n to: '/user/export',\n title: 'Экспорт контактов пациентов',\n inMenu: !isLight,\n },\n {\n icon: User,\n to: '/user/profile',\n title: 'Профиль',\n },\n {\n icon: Location,\n to: '/user/institution',\n title: 'Учреждение',\n inMenu: !isLight && !isPartner,\n },\n {\n icon: Personal,\n to: '/user/staff',\n title: 'Персонал',\n inMenu: !isLight && !isPartner,\n },\n ];\n\n return R.reject(R.propEq('inMenu', false), items);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport moment from 'moment';\n\nimport { save } from 'redux/modules/staff';\n\nimport getUser from '../getUser';\nimport getUserIsPartner from '../getUserIsPartner';\n\nexport default createSelector(\n getUser,\n getUserIsPartner,\n state => state.windowsOpen.isNeedSideBar,\n\n (user, isPartner, isNeedSideBar) => {\n const created = moment(R.propOr(null, '___createddate', user));\n const diff = moment().diff(created, 'days');\n\n if (!user || user.custom_verify_phone || user.isClosePhone || isPartner ||\n diff < 2 || !isNeedSideBar || process.env.REACT_APP_API === 'dd') {\n return null;\n }\n\n return {\n type: 'isInfo',\n content: {\n onClose: save({\n key: user.key,\n data: {\n isClosePhone: true,\n },\n isLocal: true,\n }),\n },\n };\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { save } from 'redux/modules/staff';\n\nimport getUser from '../getUser';\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n getUser,\n state => state.windowsOpen.isNeedSideBar,\n getUserIsLight,\n (user, isNeedSideBar, isLight) => {\n if (!isLight) return null;\n if (!user || user.custom_номер_нпа || !isNeedSideBar || user.isCloseNpa ) {\n return null;\n }\n\n return {\n type: 'isNpa',\n content: {\n onClose: save({\n key: user.key,\n data: {\n isCloseNpa: true,\n },\n isLocal: true,\n }),\n },\n };\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { getCurrentNotification } from 'redux/modules/notification/selectors';\nimport getUserPhoneNotification from 'redux/selectors/getUserPhoneNotification';\nimport getUserNpaNotification from 'redux/selectors/getUserNpaNotification';\n\nexport default createSelector(\n getCurrentNotification,\n getUserPhoneNotification,\n getUserNpaNotification,\n (\n notification,\n phoneNotification,\n nbaNotification\n ) => {\n return notification || nbaNotification || phoneNotification\n }\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItems } from 'redux/modules/patientsAllergen';\n\nimport getPatientKey from '../getPatientKey';\n\nexport default createSelector(\n getPatientKey,\n R.path(['patientsAllergen']),\n\n getItems,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatientAllergenIngredientsGrouped from '../getPatientAllergenIngredientsGrouped';\n\nexport default createSelector(\n getPatientAllergenIngredientsGrouped,\n\n R.compose(\n R.unnest,\n R.pluck('custom_ингредиенты_аллергены'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\nimport getStaff from '../getStaff';\n\nexport default createSelector(\n R.compose(\n R.propOr(null, '___createduser'),\n getPatient,\n ),\n getStaff,\n\n (authorKey, staff) => {\n if (!authorKey) {\n return null;\n }\n\n return R.compose(\n R.join(\" \"),\n R.filter(Boolean),\n ({ custom_firstname, custom_lastname }) => [custom_lastname, custom_firstname],\n R.defaultTo({}),\n R.find(R.propEq('custom_ключ_системного_пользователяold', authorKey)),\n )(staff);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(null, 'custom_масса_тела'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getCorrectionValuesByWeight } from 'modules/Rations/redux/modules/correction';\n\nimport getPatientWeight from '../getPatientWeight';\n\nexport default createSelector(\n getPatientWeight,\n R.path(['Rations', 'correction']),\n\n getCorrectionValuesByWeight,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArrayByParent as getIngestion } from 'modules/Rations/redux/modules/ingestion';\n\nimport getPatientKey from '../getPatientKey';\n\nexport default createSelector(\n getPatientKey,\n R.path(['Rations', 'ingestion']),\n\n getIngestion,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(false, 'custom_в_архив_1'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getPatientJournal } from 'redux/modules/journal';\n\nimport getStaff from '../getStaff';\nimport getPatientKey from '../getPatientKey';\n\nexport default createSelector(\n getStaff,\n getPatientKey,\n R.path(['journal']),\n\n (staff, patientKey, journal) => R.compose(\n R.map((item) => {\n const doctor = R.find(R.propEq('key', item.doctor), staff);\n\n return {\n ...item,\n doctorName: R.compose(\n R.join(' '),\n R.values,\n R.pick(['custom_firstname', 'custom_midname', 'custom_lastname']),\n R.defaultTo({}),\n )(doctor),\n };\n }),\n getPatientJournal,\n )(patientKey, journal),\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getApplicationUser from 'redux/selectors/getApplicationUser';\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createSelector(\n getApplicationUser,\n getPatientKey,\n\n (session, appUser, patientKey) => {\n const { Ration } = session;\n\n const lastRation = Ration\n .filter({\n ___parent: patientKey,\n ___owner: appUser,\n custom_не_назначен: true,\n custom_удалено: false,\n })\n .last();\n\n if (!lastRation) {\n return null;\n }\n\n return lastRation.key;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(null, 'custom_телефон'),\n);\n","import { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getPatientRationNewKey from '../getPatientRationNewKey';\n\nexport default createSelector(\n getPatientRationNewKey,\n\n (key) => {\n if (!key) {\n return null;\n }\n\n return getKeyInfo(key).record;\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientKey from '../getPatientKey';\n\nexport default createOrmSelector(\n getPatientKey,\n (_, params) => R.propOr(null, 'patientKey', params),\n\n (session, statePatientKey, propsPatientKey) => {\n const { PatientReceptions } = session;\n const patientKey = statePatientKey || propsPatientKey;\n\n return PatientReceptions\n .filter({\n custom_planned_patient: patientKey,\n })\n .exclude({\n isDeleting: true,\n })\n .exclude({\n isDeleted: true,\n })\n .orderBy('custom_vremya')\n .toModelArray()\n .map(item => ({\n ...item.ref,\n id: item.id,\n }));\n },\n);\n","import * as R from 'ramda';\n\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['routeParams', 'receptionId']),\n\n R.identity,\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { getKeyById } from 'modules/Patient/redux/receptions/selectors';\nimport getPatientReceptionId from '../getPatientReceptionId';\n\nexport default createOrmSelector(\n getPatientReceptionId,\n (_, params) => R.propOr(null, 'receptionId', params),\n (_, params) => R.propOr(null, 'receptionKey', params),\n\n /* eslint-disable complexity */\n (session, routeReceptionId, paramReceptionId, paramReceptionKey) => {\n const receptionId = paramReceptionId || routeReceptionId;\n if (paramReceptionKey || (receptionId && receptionId !== 'new')) {\n const receptionKey = paramReceptionKey || getKeyById(receptionId);\n const { PatientReceptions } = session;\n try {\n const reception = PatientReceptions.withId(receptionKey);\n return reception && !reception.isDeleting && !reception.isDeleted\n ? reception.ref : null;\n } catch (err) {\n return null;\n }\n }\n return null;\n },\n);\n","import { appKey } from 'config';\n\nexport const getKeyById = id => id ? `${appKey}t172r${id}` : null;\n","import { filter, prop } from \"remeda\";\nimport { createSelector } from \"reselect\";\n\nimport getAuthUser from \"../getAuthUser\";\nimport getPatientsList from \"../getPatientsList\";\n\nexport default createSelector(\n getPatientsList,\n getAuthUser,\n\n (patients, userAuth) => {\n return filter(patients, (patient) => patient.___createduser === userAuth);\n }\n);\n","import * as R from 'ramda';\nimport moment from 'moment';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getUser from '../getUser';\nimport getUserPatients from '../getUserPatients';\n\n// NOTE: memoize by result as we in some cases always get new startDate (like in case of 'now')?\nexport default createOrmSelector(\n getUser,\n getUserPatients,\n (_, params) => R.propOr(null, 'startDate', params),\n (_, params) => R.propOr(null, 'endDate', params),\n (_, params) => R.propOr(null, 'custom_отключено', params),\n\n (\n { PatientReceptions },\n worker,\n patientList,\n propsStartDate,\n propsEndDate,\n props_custom_отключено,\n ) => {\n const workerKey = R.propOr(null, 'key', worker);\n const startDate = propsStartDate ? moment(propsStartDate) : null;\n const endDate = propsEndDate ? moment(propsEndDate) : null;\n\n return PatientReceptions\n .filter(({ ___parent, custom_vremya, custom_отключено }) => (\n (startDate ? custom_vremya.isAfter(startDate) : true) &&\n (endDate ? custom_vremya.isBefore(endDate) : true) &&\n (props_custom_отключено !== null ? custom_отключено === props_custom_отключено : true) &&\n ___parent === workerKey\n ))\n .exclude({\n isDeleting: true,\n })\n .exclude({\n isDeleted: true,\n })\n .orderBy('custom_vremya')\n .toModelArray()\n .map(item => ({\n ...item.ref,\n id: item.id,\n patient: R.find(R.propEq('key', item.custom_planned_patient), patientList),\n }));\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getPromo,\n} from 'redux/modules/subscriptionPromocode';\n\nexport default createSelector(\n R.path(['subscriptionPromocode']),\n\n getPromo,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getSupplementAll from '../getSupplementAll';\nimport getPatientAllergen from '../getPatientAllergen';\n\nexport default createSelector(\n getSupplementAll,\n getPatientAllergen,\n\n (productList, allergen) => {\n const setAllergen = (item) => {\n if (R.contains(item.key, allergen)) {\n return {\n ...item,\n forbidden: 'allergen',\n };\n }\n\n return item;\n };\n\n return R.map(setAllergen, productList);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getSupplementWithStatus from '../getSupplementWithStatus';\n\nexport default createSelector(\n getSupplementWithStatus,\n\n R.groupBy(R.prop('custom_производитель')),\n);\n","import { createSelector } from 'reselect';\n\nimport getUserIsPartner from '../getUserIsPartner';\n\nexport default createSelector(\n getUserIsPartner,\n\n (isPartner) => {\n if (process.env.REACT_APP_API === 'dd') {\n return null;\n }\n\n if (isPartner) {\n return 'info@dietologi-russia.ru'\n }\n\n return 'support@nutrilogic.ru'\n },\n);\n","import moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\nimport getInstitutionKey from '../getInstitutionKey';\nimport getInstitutionSubscriptionEnd from '../getInstitutionSubscriptionEnd';\n\nexport default createOrmSelector(\n getInstitutionKey,\n getInstitutionSubscriptionEnd,\n\n (session, institutionKey, subscriptionEnd) => {\n const before = subscriptionEnd ? moment(subscriptionEnd) : moment();\n const { SubscriptionOperation } = session;\n const item = SubscriptionOperation\n .all()\n .filter(it => (\n it.custom_currentstatus === 'PostProcessingDone' &&\n (\n it.custom_операция === `${appKey}t122r6448820` || // Покупка однодневной подписки\n it.custom_операция === `${appKey}t122r6449623` // Перенос даты однодневной подписки\n ) &&\n it.___parent === institutionKey &&\n moment(it.custom_дата_для_однодневной).isSameOrAfter(before, 'day')\n ))\n .orderBy('custom_дата_операции', 'desc')\n .first();\n return item ? item.ref : null;\n },\n);\n","import * as R from \"ramda\";\n\nimport { createSelector } from \"reselect\";\n\nimport createOrmSelector from \"redux/utils/createOrmSelector\";\n\nimport { getItemsArrayByParent } from \"redux/modules/productComposition\";\nimport { getNorm } from \"redux/modules/elementNorms\";\n\nimport getUserCountry from \"../getUserCountry\";\n\nconst getItemComposition = createSelector(\n (state, props) => props.key,\n (state, { type }) =>\n type === \"supplement\"\n ? state.supplementComposition\n : state.productComposition,\n\n getItemsArrayByParent\n);\n\nexport default createOrmSelector(\n (state, { type }) => type,\n getItemComposition,\n getUserCountry,\n (state) => state.elementNorms,\n\n (session, type, compositions, userCountry, elementNorms) => {\n const { Elements } = session;\n const elements = Elements.all().toRefArray();\n\n return R.compose(\n R.indexBy(R.prop(\"element\")),\n R.map((i) => {\n const elementField =\n type === \"supplement\" ? \"custom_элемент\" : \"custom_элемент_рациона\";\n const valueField =\n type === \"supplement\"\n ? \"custom_значение_на_порцию\"\n : \"custom_значение\";\n\n const composition = R.find(R.propEq(elementField, i.key), compositions);\n\n const norms = getNorm(elementNorms, userCountry);\n const elementNormItem = norms[i.key] || {};\n const data = R.propOr(undefined, valueField, composition);\n\n return {\n element: i.key,\n data,\n key: R.propOr(null, \"key\", composition),\n ...elementNormItem,\n };\n })\n )(elements);\n }\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getSubscriptionPromocode from '../getSubscriptionPromocode';\n\nexport default createSelector(\n getSubscriptionPromocode,\n\n R.compose(\n R.defaultTo(0),\n R.propOr(0, 'discount'),\n ),\n);\n","import * as R from 'ramda';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getTariff from '../getTariff';\n\nexport default createOrmSelector(\n R.compose(\n R.prop('key'),\n getTariff,\n ),\n\n (session, key) => {\n const { SubscriptionDay } = session;\n\n return SubscriptionDay\n .filter({\n ___parent: key,\n })\n .orderBy('custom_количество_месяцев_подписки')\n .toRefArray()\n .map(item => {\n const [name, promo] = item.custom_название.split('(')\n return ({\n value: item.key,\n content: item.custom_название,\n price_promo: item.custom_стоимость_исходная,\n price: item.custom_стоимость,\n duration: item.custom_количество_месяцев_подписки,\n name,\n promo: promo?.replace(')', ''),\n })\n });\n },\n) as () => {\n value: string,\n content: string,\n price_promo?: number,\n price: number,\n duration: 1 | 12,\n name: string;\n promo?: string;\n}[]","import { createSelector } from 'reselect';\n\nimport getInstitutionDiscount from '../getInstitutionDiscount';\nimport getPromocodeDiscount from '../getPromocodeDiscount';\n\nexport default createSelector(\n getInstitutionDiscount,\n getPromocodeDiscount,\n\n Math.max,\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getApplicationUser from '../getApplicationUser';\n\nexport default createOrmSelector(\n getApplicationUser,\n\n (session, key) => {\n const { WorkerFlags } = session;\n\n const flags = WorkerFlags\n .filter({\n custom_пользователь: key,\n })\n .first();\n\n if (flags) {\n return flags.ref;\n }\n\n return {};\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'custom_login'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(null, 'custom_login'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'custom_редактирование_общих_блюд'),\n);\n","import { createSelector } from 'reselect';\n\nimport { getRealFullName } from 'utils/getFullName';\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n getRealFullName,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'custom_избранный'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'key'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport { getFormValues } from 'redux-form';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getUserJournal } from 'redux/modules/journal';\n\nimport getStaff from '../getStaff';\nimport getUserKey from '../getUserKey';\nimport getPatientsList from '../getPatientsList';\n\nexport default createSelector(\n getStaff,\n getPatientsList,\n state => state.routeParams.date,\n R.compose(\n R.propOr(null, 'worker'),\n getFormValues('journal'),\n ),\n getUserKey,\n R.path(['journal']),\n\n (staff, patients, date, userFormKey, userKey, journal) => R.compose(\n R.reject(R.isNil),\n R.map((item) => {\n const patient = R.find(R.propEq('key', item.patient), patients);\n const doctor = R.find(R.propEq('key', item.doctor), staff);\n\n if (!patient || !doctor) {\n return null;\n }\n\n return {\n ...item,\n doctorName: R.propOr(null, 'custom_firstname', doctor),\n doctorLastName: R.propOr(null, 'custom_lastname', doctor),\n patientName: R.propOr(null, 'custom_firstname', patient),\n patientLastName: R.propOr(null, 'custom_lastname', patient),\n patientId: getKeyInfo(item.patient).record,\n };\n }),\n getUserJournal,\n )(date, userFormKey || userKey, journal),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport { getFormValues } from 'redux-form';\n\nimport { getUserActiveDays } from 'redux/modules/journal';\n\nexport default createSelector(\n R.compose(\n R.propOr(null, 'worker'),\n getFormValues('journal'),\n ),\n R.path(['journal']),\n\n getUserActiveDays,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUserJournal from '../getUserJournal';\nimport getUserPatients from '../getUserPatients';\n\nexport default createSelector(\n getUserJournal,\n getUserPatients,\n\n (journal, patients) =>\n R.compose(\n patientKey => R.find(R.propEq('key', patientKey), patients),\n R.propOr(null, 'patient'),\n R.head,\n )(journal),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItems } from 'modules/Patient/redux/notificationsExcluded';\nimport getApplicationUser from '../getApplicationUser';\n\nexport default createSelector(\n getApplicationUser,\n R.path(['Patient', 'notificationsExcluded']),\n\n getItems,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItems } from 'modules/Patient/redux/notifications';\nimport getInstitutionBanner from '../getInstitutionBanner';\nimport getUserNotificationsExcluded from '../getUserNotificationsExcluded';\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n getInstitutionBanner,\n getUserNotificationsExcluded,\n getUserIsLight,\n R.path(['Patient', 'notifications']),\n\n (institutionBanner, excluded, isLight, state) => {\n const field = isLight ? 'custom_for_lite' : 'custom_for_pro'\n const userNotification = R.compose(\n R.filter(item => item[field]),\n R.map((item) => {\n const exclude = R.find(R.propEq('___parent', item.key), excluded);\n\n return {\n ...item,\n excluded: Boolean(exclude),\n excludedKey: R.propOr(null, 'key', exclude),\n };\n }),\n getItems,\n )(state);\n\n if (R.isEmpty(institutionBanner)) {\n return userNotification;\n }\n\n return [institutionBanner, ...userNotification];\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getInstitution from '../getInstitution';\n\nexport default createSelector(\n getInstitution,\n\n R.compose(\n Boolean,\n R.prop('custom_recurringinvoiceid'),\n ),\n) as () => boolean;\n","/* eslint-disable */\n\nfunction normalizeType(typeOrActionCreator) {\n if (typeOrActionCreator && typeOrActionCreator.getType) {\n return typeOrActionCreator.toString();\n }\n return typeOrActionCreator;\n}\n\nexport default function createReducer(handlers = {}) {\n const opts = {\n payload: true,\n };\n\n const reducer = Object.assign(reduce, {\n has,\n on,\n off,\n options,\n });\n\n function has(typeOrActionCreator) {\n return !!handlers[normalizeType(typeOrActionCreator)];\n }\n\n function on(typeOrActionCreator, handler) {\n if (Array.isArray(typeOrActionCreator)) {\n typeOrActionCreator.forEach(function (action) {\n on(action, handler);\n });\n } else {\n handlers[normalizeType(typeOrActionCreator)] = handler;\n }\n\n return reducer;\n }\n\n function off(typeOrActionCreator) {\n if (Array.isArray(typeOrActionCreator)) {\n typeOrActionCreator.forEach(off);\n } else {\n delete handlers[normalizeType(typeOrActionCreator)];\n }\n return reducer;\n }\n\n function options(newOpts) {\n Object.keys(newOpts).forEach(name => opts[name] = newOpts[name]);\n return reducer;\n }\n\n if (typeof handlers === 'function') {\n const factory = handlers;\n handlers = {};\n factory(on, off);\n }\n\n function reduce(action, Model, session) {\n if (action && handlers[action.type]) {\n handlers[action.type](Model, session, action.payload, action.meta);\n }\n }\n\n return reducer;\n}\n","import * as R from 'ramda';\nimport uuid from 'uuid/v4';\nimport { createAction as createAct } from 'redux-act';\n\nimport { appKey } from 'config';\nimport isLocalKey from 'utils/isLocalKey';\n\nimport { login } from 'redux/modules/auth';\n\nimport parseResult from '../../utils/parseResult';\nimport createReducer from '../../utils/createReducer';\n\nexport default function ormGenerator(config = {}) {\n const {\n name = 'Module__',\n tableId,\n parseItem = R.identity,\n parentField = '___parent',\n } = config;\n const tableKey = `${appKey}t${tableId}r`;\n const initialState = {\n tableKey,\n parentField,\n itemsByKey: {},\n };\n\n const createAction = (action, payload) => createAct(`${name.toUpperCase()}__${action}`, payload);\n const fetch = createAction('FETCH', args => ({\n key: tableKey,\n ...args,\n }));\n const fetchSuccess = createAction('FETCH_SUCCESS');\n const fetchFailure = createAction('FETCH_FAILURE');\n\n const create = createAction('CREATE', args => ({\n key: uuid(),\n ...args,\n }));\n\n const save = createAction('SAVE', args => ({\n ...args,\n tableKey,\n key: args.key || uuid(),\n }));\n const saveSuccess = createAction('SAVE_SUCCESS');\n const saveFailure = createAction('SAVE_FAILURE');\n\n const remove = createAction('REMOVE');\n const removeSuccess = createAction('REMOVE_SUCCESS');\n const removeFailure = createAction('REMOVE_FAILURE');\n\n const removeWithUndo = createAction('REMOVE_WITH_UNDO', args => ({\n ...args,\n tableKey,\n }));\n const removeWithUndoSuccess = createAction('REMOVE_WITH_UNDO_SUCCESS');\n const removeWithUndoFailure = createAction('REMOVE_WITH_UNDO_FAILURE');\n\n const undoRemove = createAction('UNDO_REMOVE');\n const undoRemoveSuccess = createAction('UNDO_REMOVE_SUCCESS');\n const undoRemoveFailure = createAction('UNDO_REMOVE_FAILURE');\n\n const handleFetchSuccess = (Model, session, payload) => {\n const { response, parents, isParsed } = payload;\n\n if (response.fromCache) {\n return;\n }\n\n const items = R.values(parseResult(response, [], isParsed ? R.identity : parseItem));\n const itemsKey = R.pluck('key', items);\n\n if (parents) {\n Model\n .all()\n .filter(item => R.contains(item[parentField], parents))\n .filter(item => !R.contains(item.key, itemsKey))\n .filter(item => !isLocalKey(item.key))\n .delete();\n }\n\n const fields = ['key', ...R.keys(Model.fields)];\n items.forEach((item) => {\n const notDeclared = R.omit(fields, item);\n\n if (!R.isEmpty(notDeclared) && process.env.NODE_ENV !== 'production') {\n // console.warn(`Not declared fiields in ${Model.modelName}(${item.key}):`, notDeclared); // eslint-disable-line no-console\n }\n\n Model.upsert(R.pick(fields, item));\n });\n };\n\n const handleFetchFailure = (Model, session, payload) => {\n console.error(payload.error);\n };\n\n const handleCreate = (Model, session, payload) => {\n const { data, key } = payload;\n\n Model.create({\n key,\n ...data,\n });\n };\n\n const handleSave = (Model, session, payload) => {\n const { key, data = {}, isLocal, isSilent } = payload;\n\n if (isSilent) {\n return;\n }\n\n if (Model.idExists(key) && isLocalKey(key) && Model.withId(key).isSaving && !isLocal) {\n Model.upsert({\n key,\n ...data,\n isShouldSaved: true,\n });\n } else {\n Model.upsert({\n key,\n ...data,\n isSaving: true,\n isShouldSaved: false,\n });\n }\n };\n\n const handleSaveSuccess = (Model, session, { key, response, isSilent }) => {\n const newKey = R.pathOr(key, ['data', 'key'], response);\n const isCreation = newKey && key !== newKey;\n\n if (!Model.idExists(key) || isSilent) {\n return;\n }\n\n if (isCreation) {\n const item = Model.withId(key);\n const data = item.ref;\n const virtualFields = item.getClass().virtualFields;\n\n R.forEachObjIndexed((val, fieldKey) => {\n const relatedData = item[fieldKey];\n\n R.forEach(relatedItem => relatedItem.update({\n [val.relatedName]: newKey,\n }), relatedData.toModelArray());\n }, virtualFields);\n\n item.delete();\n Model.create({\n ...data,\n isSaving: false,\n isSaved: true,\n oldKey: key,\n key: newKey,\n });\n } else {\n Model.withId(key).update({\n isSaving: false,\n isSaved: true,\n });\n }\n };\n\n const handleSaveFailure = (Model, session, payload) => {\n const { key } = payload;\n\n if (Model.idExists(key)) {\n Model.withId(key).update({\n isSaving: false,\n isSaved: false,\n });\n }\n };\n\n const handleRemove = (Model, session, payload) => {\n const { key } = payload;\n\n if (Model.idExists(key)) {\n Model.withId(key).update({\n isDeleting: true,\n });\n }\n };\n\n const handleRemoveSuccess = (Model, session, payload) => {\n const { key } = payload;\n const item = Model.withId(key);\n\n if (!item) {\n return;\n }\n\n const isLocalItem = isLocalKey(item.key);\n\n item.update({\n isDeleted: true,\n isDeleting: false,\n markToDelete: isLocalItem && item.isSaving,\n });\n };\n\n const handleRemoveFailure = (Model, session, payload) => {\n const { key } = payload;\n\n if (Model.idExists(key)) {\n Model.withId(key).update({\n isDeleting: false,\n });\n }\n };\n\n const handleUndoRemove = (Model, session, payload) => {\n const { key } = payload;\n\n Model.withId(key).update({\n isDeleted: false,\n isDeleting: false,\n markToDelete: false,\n });\n };\n\n const handleUndoRemoveFailure = (Model, session, payload) => {\n const { key } = payload;\n\n Model.withId(key).update({\n isDeleted: true,\n });\n };\n\n const reducer = createReducer({\n [fetchSuccess]: handleFetchSuccess,\n [fetchFailure]: handleFetchFailure,\n\n [create]: handleCreate,\n\n [save]: handleSave,\n [saveSuccess]: handleSaveSuccess,\n [saveFailure]: handleSaveFailure,\n\n [remove]: handleRemove,\n [removeSuccess]: handleRemoveSuccess,\n [removeFailure]: handleRemoveFailure,\n\n [removeWithUndo]: handleRemove,\n [removeWithUndoSuccess]: handleRemoveSuccess,\n [removeWithUndoFailure]: handleRemoveFailure,\n\n [undoRemove]: handleUndoRemove,\n [undoRemoveFailure]: handleUndoRemoveFailure,\n\n [login]: (Model) => {\n Model.all().delete();\n },\n }, initialState);\n\n return {\n fetch,\n fetchSuccess,\n fetchFailure,\n\n create,\n\n save,\n saveSuccess,\n saveFailure,\n\n remove,\n removeSuccess,\n removeFailure,\n\n removeWithUndo,\n removeWithUndoSuccess,\n removeWithUndoFailure,\n\n undoRemove,\n undoRemoveSuccess,\n undoRemoveFailure,\n\n reducer,\n };\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { appKey } from 'config';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getItemsArray, getIsButtonRunning } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n ...item,\n id: getKeyInfo(item.key).record,\n })),\n);\n\nconst energyButton = `${appKey}ts9c5c3c1r319`;\nconst consumptionByTimeButton = `${appKey}ts9c5c3c1r166`;\nconst consumptionByProfessionButton = `${appKey}ts9c5c3c1r133`;\n\nexport const getIsEnergyCalcing = getIsButtonRunning(energyButton);\nexport const getIsConsumptionCalcing = R.either(\n getIsButtonRunning(consumptionByTimeButton),\n getIsButtonRunning(consumptionByProfessionButton),\n);\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nimport roundNumber from 'utils/roundNumber';\n\nconst transformKeyArray = R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n);\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n removeWithUndoSuccess,\n} = generator({\n name: 'Patients',\n tableId: 5,\n parseItem: R.compose(\n R.omit(['custom_диагнозы']),\n R.evolve({\n ___territory: R.propOr(null, 'key'),\n custom_белки_1: roundNumber(2),\n custom_жиры_1: roundNumber(2),\n custom_углеводы_1: roundNumber(2),\n custom_страна: R.propOr(null, 'key'),\n custom_город: R.propOr(null, 'key'),\n custom_детская_жизненная_активность: R.propOr(null, 'key'),\n custom_жизненная_активность: R.propOr(null, 'key'),\n custom_спортивная_автивность: R.propOr(null, 'key'),\n custom_болезни: transformKeyArray,\n custom_сопутствующие_заболевания: transformKeyArray,\n custom_специфические_виды_питания: transformKeyArray,\n ___createduser: R.propOr(null, 'key'),\n custom_основное_заболевание: R.propOr(null, 'key'),\n custom_sexint_save: R.propOr(null, 'value'),\n custom_дата_рождения: value => R.isNil(value) ? value : moment(value).format('DD.MM.YYYY'),\n custom_коридор_спк: R.compose(\n R.map(R.evolve({\n родитель: R.replace('cXaX', appKey),\n элемент: R.replace('cXaX', appKey)\n })),\n R.defaultTo([]),\n ) as any\n })\n ),\n});\n\n\nexport const fetchList = fetchWithView(fetch, 'ts5c5cs9r193');\nexport const fetchItem = fetchWithView(fetch, 'patient_main');\nexport const fetchParams = fetchWithView(fetch, 'chart_params');\nexport const fetchNorm = fetchWithView(fetch, 'elements_norm');\nexport const fetchDiagnosis = fetchWithView(fetch, 'diagnosis');\nexport const fetchAnalyses = fetchWithView(fetch, 'analyses');\nexport const fetchDietanamnez = fetchWithView(fetch, 'dietanamnez');\nexport const fetchDietanamnezReport = fetchWithView(fetch, 'dietanamnez_report');\nexport const fetchForRation = fetchWithView(fetch, 'for_ration');\n\nexport const startVisit = createAction('PATIENTS__START_VISIT');\nexport const switchArchive = createAction<{ key: string }>('PATIENTS__SWITCH_ARCHIVE');\nexport const logPrint = createAction('PATIENTS__LOG_PRINT');\nexport const calcElementsNorm = createAction('PATIENTS__CALC_ELEMENTS_NORM');\nexport const calcEnergy = createAction('PATIENTS__CALC_ENERGY');\nexport const calcConsumptionByTime = createAction('PATIENTS__CALC_CONSUMPTION_BY_TIME');\nexport const calcConsumptionByProfession = createAction('PATIENTS__CALC_CONSUMPTION_BY_PROFESSION');\nexport const savePatientRequest = createAction('PATIENT__REQUEST_SAVE');\nexport const sendInvite = createAction('PATIENT__SEND_INVITE');\nexport const assignToStaff = createAction('PATIENT__ASIGN_TO_STAFF');\nexport const assignToStaffSuccess = createAction('PATIENT__ASIGN_TO_STAFF_SUCCESS');\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n removeWithUndoSuccess,\n};\n\nexport {\n getItem,\n getItemById,\n getKeyById,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItems,\n getIsEnergyCalcing,\n getIsConsumptionCalcing,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n\nexport * from './types';","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nexport default createOrmSelector(\n getDietanamnezKey,\n\n (session, key) => {\n const { Dietanamnez } = session;\n\n try {\n const result = Dietanamnez.withId(key).ref;\n\n return result;\n } catch (error) {\n return undefined;\n }\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n const list = Dietanamnez\n .exclude({\n isDeleted: true,\n })\n .filter({\n ___parent: patientKey,\n })\n .filter(item => !item.custom_селфтест_до)\n .orderBy('custom_дата_назначения')\n .toModelArray();\n\n return list\n }\n)","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientNorm from 'redux/selectors/getPatientNorm';\nimport { getVisibleList } from 'redux/modules/elements/selectors';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nconst merge = R.mergeWith(R.merge);\n\nexport default createOrmSelector(\n getDietanamnezKey,\n getPatientNorm,\n getVisibleList,\n\n (session, dietanamnezKey, patientNorm, elements) => {\n if (!dietanamnezKey) {\n return [];\n }\n\n const { Dietanamnez } = session;\n\n const items = (Dietanamnez\n .withId(dietanamnezKey)\n .custom_профиль_потребления_веществ || [])\n .map((item) => {\n try {\n const element = elements.find(element => element.key === item.элемент_состава);\n\n return {\n key: item.key,\n element: element.key,\n data: item.среднее_за_день,\n dataWithoutSupplement: item.среднее_за_день_без_бад,\n label: element.custom_наименование,\n sources: element.custom_источники,\n influence: element.custom_влияние,\n };\n } catch (e) {\n return null;\n }\n })\n .filter(item => !!item);\n const chartItems = R.indexBy(R.prop('element'), items);\n\n return merge(chartItems, patientNorm);\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { getValues } from 'redux/modules/elements/selectors';\n\nimport getDietanamnezChemistryData from '../getDietanamnezChemistryData';\n\nexport default createSelector(\n state => state,\n getDietanamnezChemistryData,\n\n (state, data) => data ? getValues(state, {\n chartId: 'dietanamnez',\n data,\n }) : [],\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nexport default createOrmSelector(\n getDietanamnezKey,\n\n (session, dietanamnezKey) => {\n const { Dietanamnez } = session;\n\n try {\n const dietamanez = Dietanamnez.withId(dietanamnezKey);\n\n return dietamanez.custom_частота_потребления_групп_продуктов.map(item => ([\n item.наименование,\n Math.round(item.частота * 100) / 100,\n ]));\n } catch (error) {\n return [];\n }\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { DietanamnezFrequency } = session;\n\n return DietanamnezFrequency\n .all()\n .toRefArray()\n .map(item => ({\n content: item.custom_частота,\n value: item.key,\n }));\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnez from '../getDietanamnez';\n\nexport default createSelector(\n getDietanamnez,\n\n R.compose(\n R.not,\n R.isNil,\n R.propOr(null, 'custom_дата_назначения'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnez from '../getDietanamnez';\n\nexport default createSelector(\n getDietanamnez,\n\n R.propOr(false, 'isAssigning'),\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nexport default createOrmSelector(\n getDietanamnezKey,\n\n (session, key) => {\n const { DietanamnezItem } = session;\n\n try {\n const items = DietanamnezItem\n .filter({\n ___parent: key,\n })\n .exclude({\n isDeleted: true,\n })\n .toRefArray();\n\n return items;\n } catch (error) {\n return [];\n }\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnez from '../getDietanamnez';\n\n\nexport default createSelector(\n getDietanamnez,\n\n R.compose(\n R.defaultTo([]),\n R.propOr([], 'custom_специфические_виды_питания'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport isLocalKey from 'utils/isLocalKey';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\nimport getDietanamnezItems from '../getDietanamnezItems';\nimport getDietanamnezKindsFood from '../getDietanamnezKindsFood';\n\nexport default createSelector(\n getDietanamnezKey,\n getDietanamnezItems,\n getDietanamnezKindsFood,\n\n (key, items, kindsFood) => {\n const isLocalItem = isLocalKey(key);\n const isEmptyItems = R.isEmpty(items);\n const isEmptyKindsFood = R.isEmpty(kindsFood);\n\n return isLocalItem || (isEmptyItems && isEmptyKindsFood);\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n\n const item = Dietanamnez\n .exclude({\n isDeleted: true,\n })\n .filter({\n ___parent: patientKey,\n })\n .filter(i => i.custom_дата_назначения)\n .orderBy('custom_дата_назначения')\n .last();\n\n if (!item) {\n return null;\n }\n\n return item.key;\n },\n);\n","import moment from 'moment';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nconst getName = (item) => {\n try {\n return item.custom_специалист.fullname;\n } catch (e) {\n return null;\n }\n};\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n\n return Dietanamnez\n .exclude({\n isDeleted: true,\n })\n .filter({\n ___parent: patientKey,\n })\n .filter(item => item.custom_дата_назначения)\n .orderBy('custom_дата_назначения', 'desc')\n .toModelArray()\n .map((item) => {\n const start = moment(item.custom_дата_назначения);\n const id = getKeyInfo(item.key).record;\n\n return {\n id: id ? id.toString() : undefined,\n key: item.key,\n dateStart: start.format(\"DD.MM.YYYY HH:mm\"),\n specialist: getName(item),\n isDeleting: item.isDeleting,\n custom_селфтест_до: item.custom_селфтест_до\n };\n })\n .filter(item => item.id);\n },\n);\n","import getPatientKey from 'redux/selectors/getPatientKey';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n const item = Dietanamnez\n .exclude({\n isDeleted: true,\n })\n .filter({\n ___parent: patientKey,\n custom_дата_назначения: null,\n })\n .orderBy('custom_дата_назначения')\n .last();\n\n if (!item || item.custom_селфтест_до) {\n return null;\n }\n\n return getKeyInfo(item.key).record;\n },\n);\n","import getPatientKey from 'redux/selectors/getPatientKey';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n const item = Dietanamnez\n .exclude({\n isDeleted: true,\n custom_селфтест_до: null,\n })\n .filter({\n ___parent: patientKey,\n custom_дата_назначения: null,\n })\n .orderBy('custom_дата_назначения')\n .last();\n\n if (!item) {\n return null;\n }\n\n return getKeyInfo(item.key).record;\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { DietanamnezPortion } = session;\n const items = DietanamnezPortion.all().toRefArray();\n\n return R.compose(\n R.map(R.map(item => ({\n label: item.custom_мера,\n value: item.custom_мера,\n }))),\n R.groupBy(R.prop('___parent')),\n )(items);\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nexport default createOrmSelector(\n getDietanamnezKey,\n\n (session, dietanamnezKey) => {\n const { Dietanamnez } = session;\n\n try {\n const dietamanez = Dietanamnez.withId(dietanamnezKey);\n\n return dietamanez.custom_профиль_потребления_продуктов.map(item => ([\n item.наименование,\n Math.round(item.среднее * 100) / 100,\n ]));\n } catch (error) {\n return [];\n }\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnez from '../getDietanamnez';\n\nexport default createSelector(\n getDietanamnez,\n\n R.propOr(2, 'custom_тип_да'),\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getUserType from 'redux/selectors/getUserType';\n\nimport getDietanamnezType from '../getDietanamnezType';\n\nexport default createOrmSelector(\n getDietanamnezType,\n getUserType,\n\n (session, daType, userType) => {\n const { DietanamnezTiles } = session;\n\n return DietanamnezTiles\n .exclude({\n ___parent: null,\n })\n .filter(({ custom_формат }) => !custom_формат || custom_формат === daType)\n .filter(({ custom_версия_приложения }) => !custom_версия_приложения || custom_версия_приложения === userType)\n .toRefArray();\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getMealsAll from 'redux/selectors/getMealsAll';\nimport getUserType from 'redux/selectors/getUserType';\nimport { getSelect } from \"redux/modules/products\";\n\nimport getDietanamnezKindsFood from '../getDietanamnezKindsFood';\nimport getDietanamnezItems from '../getDietanamnezItems';\nimport getDietanamnezTiles from '../getDietanamnezTiles';\nimport getDietanamnezType from '../getDietanamnezType';\n\nconst getTilesHidden = createOrmSelector(\n getDietanamnezKindsFood,\n getDietanamnezType,\n getUserType,\n\n (session, kindsFood, daType, userType) => {\n const { DietanamnezTiles } = session;\n const excluder = (item) => {\n const { custom_специфические_исключения } = item;\n\n return R.compose(\n R.isEmpty,\n R.intersection(custom_специфические_исключения),\n )(kindsFood);\n };\n\n const excludedByGroups = DietanamnezTiles\n .filter({\n ___parent: null,\n })\n .filter(({ custom_формат }) => !custom_формат || custom_формат === daType)\n .filter(({ custom_версия_приложения }) => !custom_версия_приложения || custom_версия_приложения === userType)\n .exclude(excluder)\n .toModelArray()\n .map(item => item.items.toRefArray());\n\n const excludedByTiles = DietanamnezTiles\n .exclude({\n ___parent: null,\n })\n .filter(({ custom_формат }) => !custom_формат || custom_формат === daType)\n .filter(({ custom_версия_приложения }) => !custom_версия_приложения || custom_версия_приложения === userType)\n .exclude(excluder)\n .toRefArray();\n\n return R.compose(\n R.concat(excludedByTiles),\n R.unnest,\n )(excludedByGroups);\n },\n);\n\nconst getSupplement = createSelector(\n (state) => state,\n\n (state,) => getSelect(null, \"supplement\", state)\n);\n\nexport default createSelector(\n getDietanamnezItems,\n getTilesHidden,\n getMealsAll,\n getSupplement,\n getDietanamnezTiles,\n\n (items, hiddenTiles, mealsArray, supplementsarray, tiles) => {\n const meals = R.indexBy(R.prop('key'), mealsArray);\n const supplements = R.indexBy(R.prop('key'), supplementsarray);\n const excludedKeys = R.pluck('key', hiddenTiles);\n const excludedTiles = R.map(item => ({\n key: item.key,\n label: item.custom_наименование,\n dish: item.key,\n byKindsFood: true,\n byItem: false,\n value: 2,\n }), hiddenTiles);\n const getIsProduct = R.contains('t4r');\n const getIsSupplement = R.contains('t157r');\n\n return R.compose(\n R.sort(R.comparator((a, b) => {\n if (a.byItem === b.byItem) {\n return a.label < b.label;\n }\n\n return a.byItem < b.byItem;\n })),\n R.concat(excludedTiles),\n R.reject(item => item.value === 1 && R.contains(item.custom_блюдо, excludedKeys)),\n R.map((item) => {\n const isProduct = getIsProduct(item.custom_блюдо);\n const isSupplement = getIsSupplement(item.custom_блюдо);\n let label = item.custom_блюдо\n\n if (isProduct) {\n label = R.pathOr(null, [item.custom_блюдо, 'custom_название'], meals)\n } else if (isSupplement) {\n label = R.pathOr(null, [item.custom_блюдо, 'custom_наименование'], supplements)\n } else {\n label = R.compose(\n R.propOr(null, 'custom_наименование'),\n R.find(R.propEq('key', item.custom_блюдо)),\n )(tiles)\n }\n\n return {\n key: item.key,\n label: item.custom_строка_поиска || label || item.custom_блюдо,\n dish: R.isEmpty(item.custom_список_блюд) ? [item.custom_блюдо] : item.custom_список_блюд,\n byItem: isProduct,\n value: item.custom_добавить_исключить,\n };\n }),\n )(items);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnezProducts from '../getDietanamnezProducts';\n\nexport default createSelector(\n getDietanamnezProducts,\n\n R.filter(R.propEq('value', 2)),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDietanamnezProducts from '../getDietanamnezProducts';\n\nexport default createSelector(\n getDietanamnezProducts,\n\n R.filter(R.propEq('value', 1)),\n);\n","import * as R from 'ramda';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { getElementsList } from 'redux/modules/elements/selectors';\nimport getDietanamnezKey from '../getDietanamnezKey';\n\nconst toPercent = value => Math.round(value * 100);\n\nconst prop = R.compose(\n toPercent,\n R.defaultTo(0),\n R.prop,\n);\n\nexport default createOrmSelector(\n getDietanamnezKey,\n getElementsList,\n\n (session, dietanamnezKey, elements) => {\n const { Dietanamnez } = session;\n\n try {\n const dietanamnez = Dietanamnez.withId(dietanamnezKey);\n\n return elements\n .filter(item => item.___parent)\n .map((element) => {\n const item = dietanamnez\n .custom_профиль_потребления_веществ\n .find(item => item.элемент_состава === element.key);\n\n return [\n element.custom_наименование,\n prop('среднее_за_день', item) / 100,\n prop('мясо', item),\n prop('рыба', item),\n prop('молоко_и_яйца', item),\n prop('напитки', item),\n prop('хлеб', item),\n prop('каши_макароны', item),\n prop('картофель', item),\n prop('овощи', item),\n prop('супы', item),\n prop('фрукты', item),\n prop('орехи', item),\n prop('сладкое', item),\n prop('жиры_соусы', item),\n prop('алкоголь', item),\n prop('фастфуд', item),\n ];\n });\n } catch (error) {\n console.error(error);\n return [];\n }\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nexport default createCachedOrmSelector(\n (state, props) => props.key,\n\n (session, key) => {\n const { DietanamnezTiles } = session;\n\n try {\n return DietanamnezTiles\n .withId(key)\n .map\n .toRefArray();\n } catch (error) {\n return [];\n }\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { getItemsList as getProductsItems } from 'redux/modules/meals';\nimport getUserType from 'redux/selectors/getUserType';\nimport getSupplementAll from 'redux/selectors/getSupplementAll';\n\nimport getDietanamnezItems from '../getDietanamnezItems';\nimport getDietanamnezKindsFood from '../getDietanamnezKindsFood';\nimport getDietanamnezType from '../getDietanamnezType';\n\nconst getPatientTiles = createOrmSelector(\n getDietanamnezKindsFood,\n getDietanamnezType,\n getUserType,\n\n (session, kindsFood, daType, userType) => {\n const { DietanamnezTiles } = session;\n\n return DietanamnezTiles\n .exclude({\n ___parent: null,\n })\n .filter(({ custom_формат }) => !custom_формат || custom_формат === daType)\n .filter(({ custom_версия_приложения }) => !custom_версия_приложения || custom_версия_приложения === userType)\n .filter((item) => {\n const { custom_специфические_исключения } = item;\n\n return R.compose(\n R.isEmpty,\n R.intersection(custom_специфические_исключения),\n )(kindsFood);\n })\n .toRefArray();\n },\n);\n\nexport default createSelector(\n getDietanamnezItems,\n getPatientTiles,\n state => getProductsItems(state.meals),\n getSupplementAll,\n\n (dietanamnez, tiles, products, supplementsList) => {\n const dishes = R.compose(\n R.unnest,\n R.map((item) => {\n const items = R.isEmpty(item.custom_список_блюд) ?\n [item.custom_блюдо] :\n item.custom_список_блюд;\n\n return R.compose(\n R.uniqBy(R.prop('___parent')),\n R.map((productKey) => {\n const product = R.find(R.propEq('value', productKey), products) || {};\n const key = R.head(product.custom_эталонные_блюда || []) ||\n item.custom_эталонное_блюдо_для_фронта;\n const tile = R.find(R.propEq('key', key), tiles);\n const parent = R.propOr(null, '___parent', tile);\n\n return {\n ___parent: parent || key,\n key: item.custom_блюдо,\n custom_наименование: item.custom_строка_поиска || product.custom_название,\n custom_ед_изм: product.custom_ед_изм_наименование,\n isProduct: true,\n };\n }),\n )(items);\n }),\n R.uniqBy(R.prop('custom_блюдо')),\n R.filter(item => R.contains('t4r', item.custom_блюдо)),\n R.values,\n )(dietanamnez);\n\n const supplements = supplementsList.map(item => ({\n ___parent: 'SUPPLEMENT',\n key: item.key,\n custom_иконка_url: item.custom_картинка_url,\n custom_наименование: item.custom_наименование,\n custom_количество: item.custom_макс_доз_в_день,\n custom_ед_изм: item.custom_лекарственная_форма,\n }));\n\n return R.groupBy(R.prop('___parent'), [...dishes, ...tiles, ...supplements]);\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getUserType from 'redux/selectors/getUserType';\n\nimport getDietanamnezKindsFood from '../getDietanamnezKindsFood';\nimport getDietanamnezTilesVisible from '../getDietanamnezTilesVisible';\nimport getDietanamnezType from '../getDietanamnezType';\n\nexport default createOrmSelector(\n getDietanamnezKindsFood,\n getDietanamnezTilesVisible,\n getDietanamnezType,\n getUserType,\n\n (session, kindsFood, items, daType, userType, supplements) => {\n const { DietanamnezTiles } = session;\n\n const result = DietanamnezTiles\n .filter({\n ___parent: null,\n })\n .filter(({ custom_формат }) => !custom_формат || custom_формат === daType)\n .filter(({ custom_версия_приложения }) => !custom_версия_приложения || custom_версия_приложения === userType)\n .filter((item) => {\n const { custom_специфические_исключения } = item;\n\n return R.compose(\n R.isEmpty,\n R.intersection(custom_специфические_исключения),\n )(kindsFood);\n })\n .filter((item) => {\n const groupItems = items[item.key];\n\n return !!groupItems;\n })\n .toRefArray()\n .concat(userType === 1 ? {\n key: 'SUPPLEMENT',\n custom_наименование: 'БАД',\n } : []);\n\n return result;\n },\n);\n","import * as R from 'ramda';\n\nimport { createSelector } from 'reselect';\n\nimport getDietanamnezLastIdWithoutNotEnded from '../getDietanamnezLastIdWithoutNotEnded';\n\nexport default createSelector(\n R.path(['routeParams', 'dietanamnezId']),\n (state, props) => R.pathOr(null, ['settings', 'dietanamnezId'], props),\n getDietanamnezLastIdWithoutNotEnded,\n\n (routeId, propsId, lastId) => {\n return lastId || propsId || routeId\n },\n);\n","import { put, call } from 'redux-saga/effects';\n\nimport waitFor from '../waitFor';\n\nexport default function* dispatchAndWait(action) {\n yield put(action);\n\n return yield call(waitFor, action);\n}\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { getKeyById } from \"redux/modules/patients\";\n\nimport getPatientId from \"../getPatientId\";\n\nexport default createSelector(\n getPatientId,\n R.path([\"patients\"]),\n\n getKeyById\n) as unknown as () => string;\n","import * as R from 'ramda';\n\n/**\n * Removes from the database all data referenced using virtual fields from an input object\n * NOTE: cache is required to handle cyclic references (e.g. Dish and DishGroup)\n */\nconst removeRelatedInner = (item, cache) => {\n R.forEachObjIndexed((_, fieldKey) => {\n R.forEach((relatedItem) => {\n const model = relatedItem.getClass();\n if (!cache.has(model)) {\n cache.set(model, new Set());\n }\n const set = cache.get(model);\n if (set.has(relatedItem.key)) {\n return; // this item is already scheduled for removal or removed\n }\n set.add(relatedItem.key);\n removeRelatedInner(relatedItem, cache);\n relatedItem.delete();\n }, item[fieldKey].toModelArray());\n }, item.getClass().virtualFields);\n};\n\nconst removeRelated = item => removeRelatedInner(item, new Map());\n\nexport default removeRelated;\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { attr, Model as ORMModel } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\nimport convertFromServerTimeZoneToCurrentTimeZone from 'utils/convertFromServerTimeZoneToCurrentTimeZone';\nimport removeRelated from 'utils/orm/removeRelated';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n} = generator({\n name: 'DiaryRation',\n tableId: 39,\n parseItem: R.evolve({\n custom_продолжительность: Number,\n custom_степень: R.propOr(null, 'key'),\n custom_цель: R.propOr(null, 'value'),\n custom_тип_шаблона: R.propOr(null, 'value'),\n custom_режим_питания: R.propOr(null, 'key'),\n custom_прописано_при: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_спец_виды_питания: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_начало_диеты: convertFromServerTimeZoneToCurrentTimeZone,\n ___parent: R.propOr(null, 'key'),\n ___owner: R.propOr(null, 'key'),\n ___createduser: R.propOr(null, 'key'),\n }),\n});\n\nexport default class Ration extends ORMModel {\n static modelName = 'Ration';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n custom_степень: attr(),\n custom_цель: attr(),\n custom_тип_шаблона: attr(),\n custom_режим_питания: attr(),\n custom_прописано_при: attr(),\n custom_спец_виды_питания: attr(),\n ___parent: attr(),\n ___owner: attr(),\n ___createduser: attr(),\n custom_не_назначен: attr(),\n custom_удалено: attr(),\n custom_название: attr(),\n custom_начало_диеты: attr(),\n custom_спк__до: attr(),\n custom_спк__от: attr(),\n custom_debuginfo: attr(),\n custom_степень_за_месяц: attr(),\n custom_текущая_длительность: attr(),\n custom_рекомендации: attr(),\n\n // custom_продолжительность: attr(), Write-Only\n // custom_создать_по_шаблону: attr(), Write-Only\n // custom_автогенерация: attr(), Write-Only\n }\n\n static reducer = reducer;\n\n get custom_продолжительность() {\n if (this.days.count()) {\n return this.days.count();\n }\n\n return this.custom_текущая_длительность;\n }\n\n get days() {\n return this // eslint-disable-line no-underscore-dangle\n ._days\n .exclude({\n isDeleted: true,\n })\n .exclude({\n isDeleting: true,\n })\n .orderBy('custom_номер');\n }\n\n getGroupsComposition(state) {\n const compositions = this.days.toModelArray().map(day => day.getGroupsComposition(state));\n\n return R.compose(\n R.map(R.map(R.multiply(1 / this.custom_продолжительность))),\n R.map(R.reduce(R.mergeWith(R.add), {})),\n R.transpose,\n )(compositions);\n }\n\n getComposition(state) {\n return R.reduce(R.mergeWith(R.add), {}, this.getGroupsComposition(state));\n }\n\n getIsFilled() {\n return R.all(day => day.getIsFilled(), this.days.toModelArray());\n }\n}\n\nexport const fetchRationComposition = createAction('DIARYRATION__FETCH_COMPOSITION');\nexport const fetchRationCompositionSuccess = createAction('DIARYRATION__FETCH_COMPOSITION_SUCCESS');\nexport const fetchRationCompositionFailure = createAction('DIARYRATION__FETCH_COMPOSITION_FAILURE');\nexport const fetchBase = fetchWithView(fetch, 'ts5c39cs6r434');\nexport const fetchPrint = fetchWithView(fetch, 'for_print');\nexport const fetchList = fetchWithView(fetch, 'ts5c39cs9r373');\nexport const fetchUnassigned = fetchWithView(fetch, 'ts5c39cs9r376');\nexport const fetchUnassignedTemplates = fetchWithView(fetch, '_unassigned_template');\nexport const fetchTemplates = fetchWithView(fetch, 'ts5c39cs9r374', {\n lazyLoad: true,\n});\nexport const fetchGeneratorTemplates = fetchWithView(fetch, 'ts5c39cs7r523', {\n useLS: true,\n});\nexport const fetchSystemTemplates = fetchWithView(fetch, 'ts5c39cs9r375', {\n useLS: true,\n});\nexport const fetchInstitutesTemplates = fetchWithView(fetch, 'ts5c39cs9r425', {\n lazyLoad: true,\n});\n\nexport const createTemplate = createAction('DIARYRATION__CREATE_TEMPLATE');\nexport const assign = createAction('DIARYRATION__ASSIGN');\nexport const manual = createAction('DIARYRATION__MANUAL');\nexport const autogenerate = createAction('DIARYRATION__AUTOGENERATE');\nexport const remove = createAction('DIARYRATION__REMOVE_CUSTOM');\nexport const addDay = createAction('DIARYRATION__ADD_DAY');\nexport const cleanupRelated = createAction('DIARYRATION__CLEANUP_RELATED');\nexport const checkDiet = createAction('DIARYRATION__CHECK_DIET');\nexport const checkDietSuccess = createAction('DIARYRATION__CHECK_DIET_SUCCESS');\nexport const checkDietFailure = createAction('DIARYRATION__CHECK_DIET_FAILURE');\n\nreducer.on(cleanupRelated, (Model, session, { key }) => {\n // HACK: remove related from second-level depth, because Days referenced\n // by foreign key _days are required for computing ration days length\n const item = Model.withId(key);\n R.forEachObjIndexed(\n (_, fieldKey) => R.forEach(\n relatedItem => removeRelated(relatedItem),\n item[fieldKey].toModelArray(),\n ),\n item.getClass().virtualFields,\n );\n});\n\nexport {\n fetch,\n fetchSuccess,\n\n create,\n save,\n saveSuccess,\n removeWithUndo,\n};\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Text.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Text extends PureComponent {\n static propTypes = {\n block: PropTypes.bool,\n inline: PropTypes.bool,\n children: PropTypes.node,\n color: PropTypes.oneOf([\n 'inherit',\n 'white',\n 'gray',\n 'red',\n 'red-dark',\n 'blue',\n ]),\n component: PropTypes.string,\n ellipsis: PropTypes.bool,\n size: PropTypes.oneOf([\n 'inherit',\n 'small',\n 'mini',\n 'medium',\n 'big',\n 'xbig'\n ]),\n uppercase: PropTypes.bool,\n title: PropTypes.string,\n weight: PropTypes.oneOf([\n 'bold',\n 'medium',\n ]),\n whiteSpace: PropTypes.oneOf([\n 'nowrap',\n ]),\n };\n\n static defaultProps = {\n block: false,\n inline: false,\n children: undefined,\n component: 'span',\n color: undefined,\n ellipsis: false,\n uppercase: undefined,\n title: undefined,\n size: undefined,\n weight: undefined,\n whiteSpace: undefined,\n };\n\n render() {\n const {\n block,\n inline,\n color,\n component,\n ellipsis,\n size,\n uppercase,\n weight,\n whiteSpace,\n inherit,\n } = this.props;\n const Tag = component;\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getApplicationUser from '../getApplicationUser';\n\nexport default createOrmSelector(\n getApplicationUser,\n\n (session, key) => {\n const { Worker } = session;\n\n const user = Worker\n .filter({\n custom_user: key,\n })\n .first();\n\n if (user) {\n return user.ref;\n }\n\n return undefined;\n },\n);\n","import * as R from 'ramda';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = R.compose(\n R.map(item => ({\n label: item.custom_название,\n value: item.key,\n })),\n getItemsArray,\n);\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n} = generator({\n name: 'Institutions',\n tableId: 48,\n parseItem: R.evolve({\n custom_страна: R.propOr(null, 'key'),\n custom_город: R.propOr(null, 'key'),\n custom_головное_учреждение: R.propOr(null, 'key'),\n custom_тип: R.propOr(null, 'value'),\n custom_схема_кастомизации: R.propOr(null, 'key'),\n custom_текущий_рекуррент: R.propOr(null, 'value'),\n }),\n});\n\nexport const trialInform = createAction('INSTITUTIONS__TRIAL_INFORM');\nexport const fetchItem = createAction('INSTITUTIONS__FETCH_ITEM');\nexport const fetchItemSuccess = createAction('INSTITUTIONS__FETCH_ITEM_SUCCESS');\nexport const fetchItemFailure = createAction('INSTITUTIONS__FETCH_ITEM_FAILURE');\nexport const stopAuto = createAction('INSTITUTIONS__STOP_AUTO');\nexport const stopAutoSuccess = createAction('INSTITUTIONS__STOP_AUTO_SUCCESS');\nexport const stopAutoFailure = createAction('INSTITUTIONS__STOP_AUTO_FAILURE');\nexport const fetchList = createAction('INSTITUTIONS__FETCH_LIST');\nexport const fetchListSuccess = createAction('INSTITUTIONS__FETCH_LIST_SUCCESS');\nexport const fetchListFailure = createAction('INSTITUTIONS__FETCH_LIST_FAILURE');\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n};\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItems,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","export { default } from './FieldConnected';\n","import { connect as connectSource } from 'react-redux';\n\nexport const connect = (mapStateToProps, mapDispatchToProps, mergeProps, options) => {\n return connectSource(mapStateToProps, mapDispatchToProps, mergeProps, {\n areStatesEqual: (next, prev) => {\n if (next.loading.isLoading && prev.loading.isLoading) {\n return true\n }\n\n return next === prev;\n },\n ...options,\n });\n}\n","import PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport containerQuery from 'decorators/containerQuery';\n\nimport styles from './Grid.module.css';\n\nconst cx = classNames.bind(styles);\n\nclass Row extends PureComponent {\n static propTypes = {\n align: PropTypes.string,\n children: PropTypes.node,\n containerQuery: PropTypes.object,\n noPrint: PropTypes.bool,\n maximize: PropTypes.bool,\n reverseIndent: PropTypes.bool,\n withProps: PropTypes.bool,\n };\n\n static defaultProps = {\n align: undefined,\n children: undefined,\n containerQuery: {},\n noPrint: false,\n reverseIndent: false,\n withProps: false,\n }\n\n static childContextTypes = {\n width: PropTypes.number,\n level: PropTypes.string,\n };\n\n getChildContext() {\n return {\n level: this.getLevel(),\n };\n }\n\n getLevel() {\n const cq = this.props.containerQuery;\n let level = 'medium';\n\n if (cq.row_width_lt_720) {\n level = 'small';\n } else if (cq.row_width_gt_1020) {\n level = 'big';\n }\n\n return level;\n }\n\n render() {\n const { withProps } = this.props;\n const level = this.getLevel();\n\n return (\n \n {withProps ?\n React.Children.map(this.props.children, child =>\n child ? React.cloneElement(child, {\n level,\n }) : child,\n ) :\n this.props.children\n }\n \n );\n }\n}\n\nexport default R.compose(\n containerQuery(styles),\n)(Row);\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport styles from './Grid.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst maxSize = {\n small: 4,\n medium: 6,\n big: 8,\n};\n\n\nexport default class Column extends Component {\n static propTypes = {\n big: PropTypes.oneOf(R.range(0, maxSize.big + 1)),\n children: PropTypes.node,\n indent: PropTypes.bool,\n borderRight: PropTypes.bool,\n medium: PropTypes.oneOf(R.range(0, maxSize.medium + 1)),\n offsetBig: PropTypes.oneOf(R.range(0, maxSize.big + 1)),\n offsetMedium: PropTypes.oneOf(R.range(0, maxSize.medium + 1)),\n offsetSmall: PropTypes.oneOf(R.range(0, maxSize.small + 1)),\n order: PropTypes.number,\n small: PropTypes.oneOf(R.range(0, maxSize.small + 1)),\n };\n\n static defaultProps = {\n big: undefined,\n children: undefined,\n indent: undefined,\n medium: undefined,\n offsetBig: undefined,\n offsetMedium: undefined,\n offsetSmall: undefined,\n order: undefined,\n small: undefined,\n };\n\n static contextTypes = {\n level: PropTypes.string,\n }\n\n getOrderByLevel() {\n const { level } = this.context;\n\n return this.props[`${level}Order`] || this.props.order;\n }\n\n render() {\n const {\n small,\n medium,\n big,\n offsetSmall,\n offsetMedium,\n offsetBig,\n indent,\n borderRight,\n } = this.props;\n const order = this.getOrderByLevel();\n const style = order ? {\n order,\n msFlexOrder: order,\n } : {};\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import isUUID from 'is-uuid';\n\nexport default isUUID.anyNonNil;\n","import * as R from 'ramda';\n\nconst CHART_PADDING_TOP = 5;\n\nconst baseColors = [\n {\n valid: '#4cc770',\n invalid: '#fc6b53',\n },\n];\n\nconst chemicalColors = {\n first: 'fc6b53',\n second: '801300',\n};\n\n\nconst groupedColors = [\n {\n valid: '#16b49c',\n },\n {\n valid: '#56e0bb',\n },\n {\n valid: '#97f1e8',\n },\n {\n valid: '#56bee0',\n },\n {\n valid: '#1679b4',\n },\n {\n valid: '#003b5e',\n },\n];\n\nconst propColorMap = {\n sapphirine: '#8ec5d0',\n};\n\n\nconst getPercent = (normWeight, value) => Math.round(value / (normWeight / 100));\n\n\nconst getOnePercent = (normMin, normMax) => {\n if (!normMax && !normMin) {\n return 1;\n }\n if (normMax < Infinity) {\n return (normMax / 65);\n }\n return (normMin / 35);\n};\n\nconst TYPE_NUMBER_HEX = 16;\n\nconst hex = (x) => {\n const x16 = x.toString(TYPE_NUMBER_HEX);\n return (x16.length === 1) ? `0${x16}` : x16;\n};\n\nconst calculatePartRgb = (ratio, color2, color1, startStr, endStr) => (\n Math.ceil(\n (parseInt(color1.substring(startStr, endStr), TYPE_NUMBER_HEX) * ratio) +\n (parseInt(color2.substring(startStr, endStr), TYPE_NUMBER_HEX) * (1 - ratio)),\n )\n);\n\nconst getColorChemical = (ratio, color2, color1) => {\n const r = calculatePartRgb(ratio, color2, color1, 0, 2);\n const g = calculatePartRgb(ratio, color2, color1, 2, 4);\n const b = calculatePartRgb(ratio, color2, color1, 4, 6);\n return `#${hex(r)}${hex(g)}${hex(b)}`;\n};\n\nconst getStandartChart = data => (\n [{\n start: 0,\n end: data,\n }]\n);\n\nconst getGroupedChart = R.compose(\n R.prop(1),\n R.mapAccum((lastValue, meal) => ([\n lastValue + meal, {\n start: lastValue,\n end: lastValue + meal,\n },\n ]), 0),\n);\n\nconst gradientByColor = {\n '#4cc770': id => `url(#greenGradient${id})`,\n '#fc6b53': id => `url(#redGradient${id})`,\n '#8ec5d0': id => `url(#sapphirineGradient${id})`,\n};\n\nconst getAFlow = (data, normMin, normMax) => {\n let end;\n\n if (data >= normMin && data <= normMax) {\n end = ((data - normMin) * (100 / (normMax - normMin)) * 0.3) + 35;\n } else if (data < normMin) {\n end = data * (100 / normMin) * 0.35;\n } else if (data >= normMax && (data < normMax * 2)) {\n end = ((data - normMax) * (100 / normMax) * 0.35) + 65;\n } else if (data > normMax && (data >= normMax * 2)) {\n end = 100;\n }\n\n return end;\n};\n\nconst getBFlow = (data, normMin) => {\n let end;\n\n if (data > normMin && data < normMin * 2) {\n end = ((data - normMin) * (100 / normMin) * 0.65) + 35;\n } else if (data >= normMin * 2) {\n end = 100;\n } else if (data <= normMin) {\n end = data * (100 / normMin) * 0.35;\n }\n\n return end;\n};\n\nconst getCFlow = (data, normMin, normMax) => {\n let end;\n\n if (data >= 0 && data < normMax) {\n end = data * (100 / normMax) * 0.65;\n } else if (data >= normMax && data < normMax * 2) {\n end = ((data - normMax) * (100 / normMax) * 0.35) + 65;\n } else if (data >= normMax * 2) {\n end = 100;\n }\n\n return end;\n};\n\nconst getEnd = (data, normMin, normMax) => {\n let end;\n\n if (normMin > 0 && normMax < Infinity) {\n end = getAFlow(data, normMin, normMax);\n } else if (normMin > 0 && !isFinite(normMax)) {\n end = getBFlow(data, normMin, normMax);\n } else if (normMin === 0 && isFinite(normMax)) {\n end = getCFlow(data, normMin, normMax);\n }\n\n return end;\n};\n\nconst getWithTwoBoundariesOfNorm = (data, normMin, normMax) => {\n if (R.isEmpty(data)) {\n return [];\n }\n\n if (!normMax && !normMin) {\n const dataArray = [].concat(data);\n const sum = R.sum(dataArray);\n let prevEnd = 0;\n\n const final = dataArray.map((item) => {\n const start = prevEnd;\n\n prevEnd = start + ((item / sum) * 50);\n\n return {\n start,\n end: prevEnd,\n };\n });\n\n return final;\n }\n\n if (Array.isArray(data)) {\n let prevEnd = 0;\n let sum = 0;\n\n return data.map((value) => {\n const percent = getOnePercent(normMin, normMax);\n const start = prevEnd;\n const end = getEnd(value + sum, normMin, normMax);\n\n prevEnd = end * percent;\n sum += value;\n\n return {\n start,\n end: prevEnd,\n };\n });\n }\n\n const percent = getOnePercent(normMin, normMax);\n const end = getEnd(data, normMin, normMax);\n\n return [{\n start: 0,\n end: end * percent,\n }];\n};\n\nconst getRatio = (percents) => {\n if (percents < 100) {\n return (100 - percents) / 100;\n }\n\n return (percents - 100) / 900;\n};\n\nconst getColorStatus = (valueInPercent, color) => {\n if (color) {\n return propColorMap[color];\n }\n const percents = valueInPercent <= 0 ? valueInPercent + 100 : valueInPercent;\n\n if (percents === 100) {\n return '#4cc770';\n }\n\n const ratio = getRatio(percents);\n return getColorChemical(R.clamp(0, 1, ratio), chemicalColors.first, chemicalColors.second);\n};\n\nexport {\n getStandartChart,\n getGroupedChart,\n getPercent,\n getOnePercent,\n getColorStatus,\n getWithTwoBoundariesOfNorm,\n gradientByColor,\n groupedColors,\n propColorMap,\n chemicalColors,\n baseColors,\n CHART_PADDING_TOP,\n};\n","/* eslint-disable no-undef */\n/* eslint-disable no-unused-expressions */\nimport cookie from 'react-cookie';\n\nexport const auth = (email, hash) => {\n const isSupport = cookie.load('isSupport');\n if (isSupport) {\n return;\n }\n window.carrotquest && carrotquest.auth(email, hash);\n};\n\nexport const identify = (data) => {\n const isSupport = cookie.load('isSupport');\n if (isSupport) {\n return;\n }\n window.carrotquest && carrotquest.identify(data);\n};\n\nexport const track = (event, props = null) => {\n window.carrotquest && carrotquest.track(event, props);\n};\n","import { auth, identify } from './carrot';\n\nexport const authorizeUserInCarrot = (email, hash, name) => {\n auth(email, hash);\n identify({\n $email: email,\n ...name,\n });\n};\n\nexport const authorizeUserInCarrotByUserData = (data) => {\n const email = data.custom_login;\n const hash = data.custom_хеш_пользователя;\n\n authorizeUserInCarrot(email, hash, {\n $name: data.custom_firstname,\n Фамилия: data.custom_lastname,\n Отчество: data.custom_midname,\n версия: data.custom_партнер ? 'schoold' : data.isLight ? 'lite' : 'pro',\n });\n};\n","import * as R from 'ramda';\nimport { select } from 'redux-saga/effects';\n\nimport {\n getItemByKey,\n} from 'redux/selectors';\nimport getFullName from 'utils/getFullName';\n\nimport { track } from '../carrot';\n\nfunction* trackPatientEvent(patientKey, event, props = {}) {\n const patient = yield select(getItemByKey(patientKey));\n const name = getFullName(patient);\n track(event, {\n ...props,\n patient_name: name,\n });\n}\n\nconst EVENT_ARCHIVE_PATIENT = 'archive_patient';\nexport function* trackArchivePatient(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ARCHIVE_PATIENT);\n}\n\nconst EVENT_UNARCHIVE_PATIENT = 'unarchive_patient';\nexport function* trackUnarchivePatient(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_UNARCHIVE_PATIENT);\n}\n\nconst EVENT_ADD_PATIENT = 'add_patient';\nexport function* trackAddPatient(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT);\n}\n\nconst EVENT_REMOVE_PATIENT = 'remove_patient';\nexport function* trackRemovePatient(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_REMOVE_PATIENT);\n}\n\nconst EVENT_ADD_PATIENT_NOTE = 'add_patient_note';\nexport function* trackAddPatientNote(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_NOTE);\n}\n\nconst EVENT_ADD_PATIENT_ANALYSIS = 'add_patient_analysis';\nexport function* trackAddPatientAnalysis(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_ANALYSIS);\n}\n\nconst EVENT_ADD_PATIENT_RATION = 'add_patient_ration';\nexport function* trackAddPatientRation(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_RATION);\n}\n\nconst EVENT_ADD_PATIENT_DIETANAMNEZ = 'add_patient_dietanamnez';\nexport function* trackAddPatientDietanamnez(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_DIETANAMNEZ);\n}\n\n/**\n * Returns a function of an entity and changes to that entity that checks\n * if some checked field is changed to a non-empty value and all checked fields\n * before were empty.\n * \n * Note: checkedFieldsRegistry is a registry of fields to check where values are\n * empty value checker functions (R.isEmpty, R.isNil, R.not, etc.)\n * \n * Every checked field can be undefined, so always check R.isNil; check array and\n * string fields using R.isEmpty, nullable using R.isNil, scalar using R.not\n */\nconst shouldTrackChangesFromCheckedFields = checkedFieldsRegistry =>\n (entity, changes) => {\n const checkedFields = R.keys(checkedFieldsRegistry);\n const isRegistryFieldEmpty = (registry, field) =>\n R.prop(field, checkedFieldsRegistry)(R.prop(field, registry));\n const isSomeCheckedChangedToNotEmpty = checkedFields.some(field => (\n R.has(field, changes) &&\n !isRegistryFieldEmpty(changes, field)\n ));\n const wasCheckedAllEmpty = checkedFields.every(field => (\n isRegistryFieldEmpty(entity, field)\n ));\n return isSomeCheckedChangedToNotEmpty && wasCheckedAllEmpty;\n };\n\n// For now track only if diagnosis before was empty\n// and any diagnosis field is being filled\nexport const shouldTrackAddPatientDiagnosis =\n shouldTrackChangesFromCheckedFields({\n custom_болезни: R.either(R.isEmpty, R.isNil),\n custom_сопутствующие_заболевания: R.either(R.isEmpty, R.isNil),\n custom_основное_заболевание: R.isNil,\n custom_анамнез: R.either(R.isEmpty, R.isNil),\n });\n\nconst EVENT_ADD_PATIENT_DIAGNOSIS = 'add_patient_diagnosis';\nexport function* trackAddPatientDiagnosis(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_DIAGNOSIS);\n}\n\n// Same as diagnosis\nexport const shouldTrackAddPatientAntropometry =\n shouldTrackChangesFromCheckedFields({\n // Antropometry\n custom_масса_тела: R.not,\n custom_рост: R.not,\n custom_объем_талии: R.not,\n custom_объем_бедер: R.not,\n custom_объем_плеча: R.not,\n // Composition\n custom_жировая_масса: R.not,\n custom_мышечная_масса: R.not,\n custom_складка_грудь_подмышка: R.not,\n custom_складка_живот: R.not,\n custom_складка_бедро: R.not,\n custom_общая_жидкость: R.not,\n custom_вунутриклеточная_жидкость: R.not,\n custom_внеклеточная_жидкость: R.not,\n custom_тощая_масса_тела: R.not,\n custom_активная_клеточная_масса: R.not,\n custom_висцеральный_жир: R.not,\n });\n\nconst EVENT_ADD_PATIENT_ANTROPOMETRY = 'add_patient_antropometry';\nexport function* trackAddPatientAntropometry(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_ANTROPOMETRY);\n}\n\nconst EVENT_ADD_PATIENT_CONSUMPTION = 'add_patient_consumption';\nexport function* trackAddPatientConsumption(patientKey) {\n yield trackPatientEvent(patientKey, EVENT_ADD_PATIENT_CONSUMPTION);\n}\n","/* eslint-disable require-yield */\n\nimport { track } from '../carrot';\n\nconst EVENT_ADD_RATION_TEMPLATE = 'add_ration_template';\nexport function* trackAddRationTemplate() {\n track(EVENT_ADD_RATION_TEMPLATE);\n}\n\nconst EVENT_ADD_MEAL = 'add_meal';\nexport function* trackAddMeal() {\n track(EVENT_ADD_MEAL);\n}\n\nconst EVENT_ADD_STAFF = 'add_staff';\nexport function* trackAddStaff() {\n track(EVENT_ADD_STAFF);\n}\n\nconst EVENT_RENEW_SUBSCRIPTION = 'renew_subscription';\nexport function* trackRenewSubscription() {\n track(EVENT_RENEW_SUBSCRIPTION);\n}\n\nconst EVENT_AUTHORIZE = 'authorize';\nexport function* trackAuthorize() {\n track(EVENT_AUTHORIZE);\n}\n\nconst EVENT_SIGNUP = 'signup';\nexport function* trackSignup(email, name) {\n track(EVENT_SIGNUP, {\n email,\n name,\n });\n}\n\nconst EVENT_ACTIVATE = 'activate';\nexport function* trackActivate(email, name) {\n track(EVENT_ACTIVATE, {\n email,\n name,\n });\n}\n","import createCachedSelector from 're-reselect';\nimport { createSelector as ormCreateSelector } from 'redux-orm';\n\nimport orm from 'redux/orm';\n\nconst createCachedOrmSelector = (...args) => {\n const resultFunc = args.pop();\n\n return createCachedSelector(\n state => state.orm,\n ...args,\n ormCreateSelector(orm, resultFunc),\n )(args[0]);\n};\n\nexport default createCachedOrmSelector;","import * as R from \"ramda\";\nimport { createAction } from \"redux-act\";\nimport moment from \"moment\";\nimport { attr, Model } from \"redux-orm\";\nimport fetchWithView from \"redux/utils/fetchWithView\";\n\nimport generator from \"redux/hor/orm-module\";\n\nconst { reducer, fetch, fetchSuccess, create, save, saveSuccess } = generator({\n name: \"staff\",\n tableId: 47,\n parseItem: R.evolve({\n ___territory: R.propOr(null, \"key\"),\n custom_состояние: R.propOr(null, \"value\"),\n custom_sexint: R.propOr(null, \"value\"),\n custom_role: R.propOr(null, \"key\"),\n custom_user: R.propOr(null, \"key\"),\n custom_страна: R.propOr(null, \"key\"),\n custom_город: R.propOr(null, \"key\"),\n custom_профиль: R.propOr(null, \"key\"),\n custom_партнер: R.propOr(null, \"key\"),\n custom_производители_бад: R.compose(R.pluck(\"key\"), R.defaultTo([])),\n custom_dob: (date) => (date ? moment(date) : undefined),\n }),\n});\n\nexport default class Worker extends Model {\n static modelName = \"Worker\";\n\n static options = {\n idAttribute: \"key\",\n };\n\n static fields = {\n ___createddate: attr(),\n ___territory: attr(),\n custom_состояние: attr(),\n custom_role: attr(),\n custom_user: attr(),\n custom_страна: attr(),\n custom_город: attr(),\n custom_dob: attr(),\n custom_firstname: attr(),\n custom_is_support: attr(),\n custom_lastname: attr(),\n custom_login: attr(),\n custom_midname: attr(),\n custom_sexint: attr(),\n custom_должность: attr(),\n custom_разрешен_вход_по_пользователем_до: attr(),\n custom_ред_сис_шаблонов: attr(),\n custom_редактирование_общих_блюд: attr(),\n custom_фото: attr(),\n custom_ключ_системного_пользователяold: attr(),\n custom_избранный: attr(),\n custom_хеш_пользователя: attr(),\n custom_мобильный_телефон: attr(),\n custom_verify_phone: attr(),\n custom_производители_бад: attr(),\n custom_профиль: attr(),\n custom_партнер: attr(),\n custom_inbody_user: attr(),\n custom_номер_нпа: attr(),\n custom_состоит_в_группе: attr(),\n };\n\n static reducer = reducer;\n\n get fullname() {\n return R.compose(\n R.join(\" \"),\n R.values,\n R.pick([\"custom_firstname\", \"custom_midname\", \"custom_lastname\"])\n )(this);\n }\n\n toString() {\n return `Worker: ${this.key}`;\n }\n}\n\nexport const changePassword = createAction(\"STAFF__CHANGE_PASSWORD\");\nexport const invite = createAction(\"STAFF__INVITE\");\nexport const inviteLight = createAction(\"STAFF__INVITE_GRP\");\nexport const saveProfile = createAction(\"STAFF__SAVE_PROFILE\");\nexport const fetchMe = fetchWithView(fetch, \"ts5c47cs9r173\");\nexport const allowLogin = createAction(\"STAFF__ALLOW_LOGIN\");\nexport const setRole = createAction(\"STAFF__CHANGE_ROLE\");\nexport const setStatus = createAction(\"STAFF__SET_STATUS\");\nexport const getMobilePhoneStatus = createAction(\"STAFF__GET_MOBILE_PHONE\");\n\nexport { fetch, fetchSuccess, save, saveSuccess, create };\n","const userInfoField = {\n locate: true,\n min: { limiter: 2 },\n max: { limiter: 50 },\n};\n\nconst defaultOptions = {\n /**\n * 1. Email\n */\n email: {\n required: true,\n email: true,\n },\n /**\n * 2. Pass\n */\n password: {\n required: true,\n simplePass: { errorText: 'Слишком простой пароль' },\n min: { limiter: 6, errorText: 'Пароль не может быть короче 6-ти символов' },\n },\n /**\n * 3. username\n */\n username: userInfoField,\n /**\n * 4. surname\n */\n surname: userInfoField,\n /**\n * 5. secondname\n */\n secondname: userInfoField,\n /**\n * 6. job\n */\n job: {\n max: { limiter: 200 },\n },\n /**\n * 7. city\n */\n city: {\n max: { limiter: 50 },\n },\n /**\n * 8. street\n */\n street: {\n max: { limiter: 200 },\n },\n /**\n * 9. house\n */\n house: {\n locateNum: true,\n max: { limiter: 4 },\n },\n /**\n * 10. casehouse\n */\n casehouse: {\n locateNum: true,\n max: { limiter: 4 },\n },\n /**\n * 11. phone\n */\n phone: {\n phone: true,\n },\n /**\n * 12. casehouse\n */\n agency: {\n max: { limiter: 200 },\n },\n /**\n * 13. role\n */\n role: {\n max: { limiter: 200 },\n },\n\n npa: {\n required: true,\n max: { limiter: 15 },\n },\n\n logo: {\n typeFiles: {\n correctTypes: ['image/png', 'image/jpg', 'image/jpeg'],\n errorText: 'Неверный тип файла',\n },\n sizeFiles: {\n correctSize: 2e6,\n errorText: 'Превышен размер файла',\n },\n },\n\n date: {\n date: true,\n },\n\n time: {\n time: true,\n },\n};\n\nexport default defaultOptions;\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { appKey } from \"config\";\n\nimport getUserProfile from \"../getUserProfile\";\nimport getUser from \"../getUser\";\nimport getInstitutionSubscriptionIsBlocked from \"../getInstitutionSubscriptionIsBlocked\";\n\nexport default createSelector(\n getUserProfile,\n getUser,\n getInstitutionSubscriptionIsBlocked,\n\n (profile, worker, isBlocked) => {\n const actualProfile = isBlocked && worker ? worker.custom_профиль : profile;\n\n if (window.location.pathname.toLowerCase() === \"/l\") {\n return true;\n }\n\n return R.equals(`${appKey}ts18r17`, actualProfile);\n }\n) as unknown as () => boolean;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDay from '../getDay';\n\nexport default createSelector(\n getDay,\n (state, props) => props ? props.dayKey : undefined,\n\n (day, dayKey) => dayKey || R.propOr(null, 'key', day),\n);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Icon.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Icon extends PureComponent {\n static propTypes = {\n height: PropTypes.number,\n icon: PropTypes.string,\n iconContent: PropTypes.string,\n width: PropTypes.number,\n };\n\n static defaultProps = {\n height: undefined,\n icon: undefined,\n iconContent: undefined,\n width: undefined,\n };\n\n render() {\n const { width, height, iconContent } = this.props;\n let icon;\n if (iconContent) {\n icon = iconContent;\n } else {\n try {\n icon = require(`!raw-loader!./icons/${this.props.icon}.svg`); // eslint-disable-line global-require\n } catch (err) {\n return null;\n }\n }\n\n return (\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport { Link as LinkRR } from 'react-router';\n\nimport Icon from 'components/Icon';\nimport IconLoader from 'components/IconLoader';\nimport IconDotLoader from 'components/IconDotLoader';\n\nimport styles from './Button.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Button extends PureComponent {\n static propTypes = {\n id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n block: PropTypes.bool,\n bordered: PropTypes.bool,\n children: PropTypes.node.isRequired,\n color: PropTypes.oneOf([\n 'white',\n 'blue',\n \"cerulean\",\n \"cerulean-animated\",\n \"dark-animated\",\n \"dark\"\n ]),\n title: PropTypes.string,\n component: PropTypes.string,\n disabled: PropTypes.bool,\n href: PropTypes.string,\n isDisableableLink: PropTypes.bool,\n isHovered: PropTypes.bool,\n isLoading: PropTypes.bool,\n noPadding: PropTypes.bool,\n isFictive: PropTypes.bool,\n routing: PropTypes.string,\n size: PropTypes.oneOf([\n 'small',\n 'big',\n \"medium\"\n ]),\n to: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n type: PropTypes.oneOf([\n 'button',\n 'submit',\n ]),\n upper: PropTypes.bool,\n rounded: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n static defaultProps = {\n isFictive: false,\n block: false,\n bordered: false,\n children: undefined,\n color: undefined,\n title: undefined,\n component: 'button',\n disabled: false,\n href: undefined,\n isDisableableLink: false,\n isHovered: false,\n isLoading: false,\n noPadding: false,\n routing: '',\n size: undefined,\n to: undefined,\n type: 'button',\n upper: false,\n onMouseDown: () => { }\n };\n\n getComponent() {\n const { component, to, href } = this.props;\n\n if (to) {\n return LinkRR;\n }\n\n if (href) {\n return 'a';\n }\n\n return component;\n }\n\n getIsIcon() {\n return this.props.children.type === Icon;\n }\n\n renderChild(child, key) {\n return (\n \n {child}\n \n );\n }\n\n render() {\n const {\n block,\n bordered,\n children,\n color,\n disabled,\n href,\n isHovered,\n isLoading,\n onClick,\n noPadding,\n size,\n to,\n type,\n upper,\n title,\n rounded,\n target,\n onMouseDown,\n isFictive,\n id,\n itemRef\n } = this.props;\n\n const ComponentName = this.getComponent();\n\n return (\n \n \n {React.Children.map(children, this.renderChild, this)}\n \n\n \n {this.getIsIcon() ? : }\n \n \n );\n }\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getKeyById,\n} from 'modules/Rations/redux/modules/ration/selectors';\n\nimport getRationId from '../getRationId';\n\nexport default createSelector(\n getRationId,\n (state, props = {}) => props.rationKey,\n R.path(['Rations', 'ration']),\n\n (rationId, possibleRationKey, ration) => {\n if (possibleRationKey) {\n return possibleRationKey;\n }\n\n return getKeyById(rationId, ration);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport const getToken = R.propOr('', 'token');\n\nexport const getLoginId = createSelector(\n (state) => state,\n (state) => state.auth.id\n)\nexport const isRegistryTest = createSelector(\n (state) => state.auth,\n (val) => val.type === 'registry'\n)","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { fk, attr, Model as ORMModel } from 'redux-orm';\n\nimport { appKey } from 'config';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nimport { getSumComposition } from 'redux/modules/productComposition';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n removeWithUndo,\n undoRemove,\n} = generator({\n name: 'DAY',\n tableId: 29,\n parentField: 'custom_рацион_пациента',\n parseItem: R.evolve({\n custom_рацион_пациента: R.propOr(null, 'key'),\n }),\n});\n\nexport default class Day extends ORMModel {\n static modelName = 'Day';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n custom_номер: attr(),\n custom_название_для_шаблона: attr(),\n custom_шаблон_дня: attr(),\n custom_записи_и_рекомендации: attr(),\n custom_рацион_пациента: fk('Ration', '_days'),\n custom_меню: attr(),\n }\n\n static reducer = reducer;\n\n get dishes() {\n return [];\n }\n\n get groups() {\n return this.custom_меню || {}\n }\n\n get items() {\n return Object.keys(this.custom_dishesjson).map(key => {\n return ({\n ___parent: this,\n key,\n custom_колич: this.custom_dishesjson[key],\n custom_блюдо: key.replace('cXaX', appKey),\n isActive: key === this.custom_ключ_активного_блюда,\n })\n })\n }\n\n getComposition(state) {\n const data = R.reduce(R.mergeWith(R.add), {}, this.getGroupsComposition(state));\n\n return data;\n }\n\n getGroupsComposition(state) {\n return R.compose(\n R.values,\n R.map(group => this.getGroupComposition(group, state)),\n Object.keys,\n )(this.groups);\n }\n\n getGroupComposition(time, state) {\n const group = this.groups[time];\n const compositions = group.группы_альтернатив.map(item => this.getDishComposition(item, state));\n\n return R.reduce(R.mergeWith(R.add), {}, compositions);\n }\n\n getDishComposition(dishGroup, state) {\n const dish = dishGroup.активное.replace('cXaX', appKey);\n const count = dishGroup.блюда[dishGroup.активное];\n\n return getSumComposition(count, dish, state);\n }\n\n getIsFilled() {\n return Object.values(this.groups).some(item => !!item.группы_альтернатив && item.группы_альтернатив.length > 0);\n }\n}\n\nexport const copy = createAction('DAY__COPY');\nexport const sort = createAction('DAY__SORT');\nexport const sortSuccess = createAction('DAY__SORT_SUCCESS');\nexport const sortFailure = createAction('DAY__SORT_FAILURE');\nexport const fillFromTemplate = createAction('DAY__FILL_FROM_TEMPLATE');\nexport const fillFromTemplateSuccess = createAction('DAY__FILL_FROM_TEMPLATE_SUCCESS');\nexport const fillFromTemplateFailure = createAction('DAY__FILL_FROM_TEMPLATE_FAILURE');\nexport const addGroup = createAction('DAY__ADD_GROUP');\nexport const removeGroup = createAction('DAY__REMOVE_GROUP');\nexport const updateGroupTime = createAction('DAY__UPDATE_GROUP_TIME');\nexport const sortGroupItems = createAction('DAY__SORT_GROUP_ITEMS');\nexport const removeDishGroup = createAction('DAY__REMOVE_DISHGROUP');\nexport const changeDishGroupActive = createAction('DAY__CHANGE_DISHGROUP_ACTIVE');\nexport const removeDishGroupDish = createAction('DAY__REMOVE_DISHGROUP_DISH');\nexport const addDishGroupDish = createAction('DAY__ADD_DISHGROUP_DISH');\nexport const changeDishGroupDishAmount = createAction('DAY__CHANGE_DISHGROUP_DISH_AMOUNT');\nexport const fetchItem = fetchWithView(fetch, 'ts5c29cs6r372');\nexport const fetchTemplates = fetchWithView(fetch, 'templates', {\n useLS: true,\n});\n\nconst handleAddGroup = (Model, session, payload) => {\n const { key, time } = payload;\n\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n\n day.update({\n custom_меню: {\n ...menu,\n [time]: {\n группы_альтернатив: [],\n }\n }\n })\n}\n\nconst handleRemoveGroup = (Model, session, payload) => {\n const { key, time } = payload;\n\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const newMenu = R.omit([time], menu);\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleUpdateGroupTime = (Model, session, payload) => {\n const { key, currentTime, newTime } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n\n if (menu[currentTime]) {\n const newMenu = R.omit([currentTime], menu);\n\n if(newMenu[newTime]) {\n newMenu[newTime][\"группы_альтернатив\"] = [...newMenu[newTime][\"группы_альтернатив\"] , ...menu[currentTime][\"группы_альтернатив\"]]\n }\n else {\n newMenu[newTime] = menu[currentTime];\n }\n\n day.update({\n custom_меню: newMenu,\n })\n }\n}\n\nconst handleSortGroupItems = (Model, session, payload) => {\n const { key, groupKey, itemKey, index } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const dishes = menu[groupKey].группы_альтернатив;\n\n const newDish = R.compose(\n R.addIndex(R.map)((item, itemIndex) => ({\n ...item,\n номер: itemIndex,\n })),\n R.insert(index, dishes[itemKey]),\n R.addIndex(R.filter)((item, itemIndex) => itemIndex !== itemKey),\n )(dishes);\n\n const newMenu = R.assocPath([groupKey, 'группы_альтернатив'], newDish, menu);\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleRemoveDishGroup = (Model, session, payload) => {\n const { key, groupKey, itemKey } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const dishes = menu[groupKey].группы_альтернатив;\n\n const newDish = dishes.filter((item, index) => index !== itemKey).map((item, index) => ({\n ...item,\n номер: index,\n }));\n\n const newMenu = R.assocPath([groupKey, 'группы_альтернатив'], newDish, menu);\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleRemoveDishGroupDish = (Model, session, payload) => {\n const { key, groupKey, itemKey, dishKey } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const newMenu = R.compose(\n R.over(R.lensPath([groupKey, 'группы_альтернатив']), R.compose(\n val => val.map((item, index) => ({\n ...item,\n номер: index,\n })),\n R.reject(R.isNil),\n )),\n R.over(R.lensPath([groupKey, 'группы_альтернатив', itemKey]), (value) => {\n const baseKey = dishKey.replace(appKey, 'cXaX');\n const newItems = R.omit([baseKey], value.блюда)\n\n if (Object.keys(newItems).length === 0) {\n return null;\n }\n\n return {\n ...value,\n активное: value.активное === baseKey ? Object.keys(newItems)[0] : value.активное,\n блюда: newItems\n }\n })\n )(menu);\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleChangeDishGroupActive = (Model, session, payload) => {\n const { key, groupKey, itemKey, newActiveKey } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const newMenu = R.assocPath(\n [groupKey, 'группы_альтернатив', itemKey, 'активное'],\n newActiveKey.replace(appKey, 'cXaX'),\n menu\n );\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleAddDishGroupDish = (Model, session, payload) => {\n const { key, groupKey, itemKey, dishKey, amount } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const baseKey = dishKey.replace(appKey, 'cXaX')\n\n if (itemKey !== undefined) {\n const newMenu = R.assocPath(\n [groupKey, 'группы_альтернатив', itemKey, 'блюда', baseKey],\n amount,\n menu\n );\n\n day.update({\n custom_меню: newMenu,\n })\n } else {\n const newMenu = R.over(\n R.lensPath([groupKey, 'группы_альтернатив']),\n value => value.concat({\n номер: value.length,\n активное: baseKey,\n блюда: {\n [baseKey]: amount,\n }\n }),\n menu\n );\n\n day.update({\n custom_меню: newMenu,\n })\n }\n}\n\nconst handleChangeDishGroupDishAmount = (Model, session, payload) => {\n const { key, groupKey, itemKey, dishKey, amount } = payload;\n const day = Model.withId(key);\n\n const menu = day.custom_меню || {};\n const baseKey = dishKey.replace(appKey, 'cXaX')\n const newMenu = R.assocPath(\n [groupKey, 'группы_альтернатив', itemKey, 'блюда', baseKey],\n amount,\n menu\n );\n\n day.update({\n custom_меню: newMenu,\n })\n}\n\nconst handleSort = (Model, session, payload) => {\n const { key, from, to } = payload;\n\n const list = Model\n .filter({\n custom_рацион_пациента: key,\n })\n .exclude({\n isDeleted: true,\n })\n .exclude({\n isDeleting: true,\n })\n .orderBy('custom_номер');\n\n const currentDayKey = list\n .filter({\n custom_номер: from,\n })\n .first()\n .ref\n .key;\n\n const days = list\n .toRefArray()\n .map(item => item.key);\n\n const newDays = R.compose(\n R.insert(to - 1, currentDayKey),\n R.without([currentDayKey]),\n )(days);\n\n newDays.forEach((dayKey, i) => Model.withId(dayKey).update({\n custom_номер: i + 1,\n }));\n};\n\nreducer.on(sort, handleSort);\nreducer.on(addGroup, handleAddGroup);\nreducer.on(removeGroup, handleRemoveGroup);\nreducer.on(updateGroupTime, handleUpdateGroupTime);\nreducer.on(sortGroupItems, handleSortGroupItems);\nreducer.on(removeDishGroup, handleRemoveDishGroup);\nreducer.on(removeDishGroupDish, handleRemoveDishGroupDish);\nreducer.on(changeDishGroupActive, handleChangeDishGroupActive);\nreducer.on(changeDishGroupDishAmount, handleChangeDishGroupDishAmount);\nreducer.on(addDishGroupDish, handleAddDishGroupDish);\n\nreducer.on(removeWithUndo, (Model, session, payload) => {\n const { key } = payload;\n\n const rationKey = Model.withId(key).ref.custom_рацион_пациента;\n\n Model.withId(key).update({\n isDeleting: true,\n });\n\n const firstDayNumber = Model\n .filter({\n custom_рацион_пациента: rationKey,\n })\n .exclude({\n isDeleted: true,\n })\n .exclude({\n isDeleting: true,\n })\n .orderBy('custom_номер')\n .first()\n .ref\n .custom_номер;\n\n\n handleSort(Model, session, {\n key: rationKey,\n from: firstDayNumber,\n to: 1,\n });\n});\n\nreducer.on(undoRemove, (Model, session, payload) => {\n const { key } = payload;\n\n Model.withId(key).update({\n isDeleted: false,\n isDeleting: false,\n });\n\n const day = Model.withId(key).ref;\n\n handleSort(Model, session, {\n key: day.custom_рацион_пациента,\n from: 1,\n to: 1,\n });\n});\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n removeWithUndo,\n};\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['auth', 'userAKey']),\n\n R.identity,\n);\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { getItemById, Patient } from \"redux/modules/patients\";\n\nimport getPatientId from \"../getPatientId\";\n\nexport default createSelector(\n getPatientId,\n R.path([\"patients\"]),\n\n getItemById\n) as unknown as () => Patient;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItem, getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItemsList = R.compose(\n memoizee(R.map(item => ({\n ...item,\n value: item.key,\n label: item.custom_название,\n }))),\n getItemsArray,\n);\n\nexport const getProductsByGroups = R.compose(\n memoizee(R.groupBy(R.prop('custom_группа'))),\n getItemsList,\n);\n\nexport const getIsCompositionCalcing = R.compose(\n R.propOr(false, 'isCalcComposition'),\n getItem,\n);\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\n\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst setKeyField = R.curry((main, secondary, item) => {\n if (item[main] || item[secondary]) {\n item[main] = item[main] || item[secondary]; // eslint-disable-line no-param-reassign\n }\n\n return item;\n});\n\nconst setKeysField = R.curry((main, secondary, item) => {\n if (item[main] || item[secondary]) {\n item[main] = item[main] || item[secondary].replace(/\"/g, '').split(','); // eslint-disable-line no-param-reassign\n }\n\n return item;\n});\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeSuccess,\n removeWithUndo,\n} = generator({\n name: 'Meals',\n tableId: 4,\n parseItem: R.compose(\n R.compose(\n setKeyField('custom_группа', 'custom_группа_ключ'),\n setKeysField('custom_эталонные_блюда', 'custom_эталонные_блюда_ключи'),\n setKeysField('custom_запрещено_к_употреблению_при', 'custom_запрещено_к_употреблению_при_ключи'),\n setKeysField('custom_не_применяется_в', 'custom_не_применяется_в_ключи'),\n ),\n R.evolve({\n ___owner: R.propOr(null, 'key'),\n ___territory: R.propOr(null, 'key'),\n custom_группа: R.propOr(null, 'key'),\n custom_ед_изм: R.propOr(null, 'key'),\n custom_порция: R.propOr(null, 'key'),\n custom_способ_приготовления: R.propOr(null, 'key'),\n custom_возрастнаягруппа: R.defaultTo([]),\n custom_эталонные_блюда: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_ед_изм_если_единица: R.propOr(null, 'key'),\n custom_применимость_в_схеме_питания: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_не_применяется_в: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_запрещено_к_употреблению_при: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_продукт_повышает: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n }),\n ),\n});\n\nexport const fetchItem = fetchWithView(fetch, 'ts5c4cs6r347');\nexport const fetchComposition = fetchWithView(fetch, 'ts5c4cs6r364', {\n cache: true,\n});\nexport const fetchSystemMeals = fetchWithView(fetch, 'ts5c4cs9r343', {\n useLS: true,\n});\nexport const fetchUserMeals = fetchWithView(fetch, 'ts5c4cs9r344');\nexport const fetchCatalogList = createAction('MEALS__FETCH_CATALOG_LIST');\nexport const fetchCatalogListSuccess = createAction('MEALS__FETCH_CATALOG_LIST_SUCCESS');\nexport const calcComposition = createAction('MEALS__CALC_COMPOSITION');\nexport const copyComposition = createAction('MEALS__COPY_COMPOSITION');\n\nexport {\n fetch,\n fetchSuccess,\n\n create,\n save,\n saveSuccess,\n remove,\n removeSuccess,\n removeWithUndo,\n};\n\nexport {\n getItemById,\n getKeyById,\n getItems,\n getItem,\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItemsList,\n getProductsByGroups,\n getIsCompositionCalcing,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","import { createAction, createReducer } from 'redux-act';\nimport { LOCATION_CHANGE } from 'react-router-redux';\n\nconst initialState = {\n application: true,\n};\n\nexport const showLoader = createAction('LOADER__SHOW');\nexport const hideLoader = createAction('LOADER__HIDE');\n\nconst handleSetLoader = status => (state, payload) => {\n if (typeof payload === 'string') {\n const currentStatus = state[payload];\n\n if (currentStatus === status) {\n return state;\n }\n\n return {\n ...state,\n [payload]: status,\n };\n }\n\n return {\n ...state,\n [payload.name]: {\n ...payload,\n status,\n },\n };\n};\n\nconst reducer = createReducer((on) => {\n on(showLoader, handleSetLoader(true));\n on(hideLoader, handleSetLoader(false));\n on(LOCATION_CHANGE, (state) => handleSetLoader(true)(state, 'global'));\n}, initialState);\n\nexport default reducer;\n","import * as R from 'ramda';\n\nconst getLoader = R.propOr(false);\n\nexport const getLoaderByType = (type, state) => {\n if (type !== 'global') {\n return getLoader(type, state);\n }\n\n return getLoader(type, state) && !getLoader('page', state);\n};\n","import reducer from './reducer';\n\nexport { showLoader, hideLoader } from './reducer';\n\nexport {\n getLoaderByType,\n} from './selectors';\n\nexport default reducer;\n","import * as R from \"ramda\";\nimport { createAction, createReducer } from \"redux-act\";\n\nconst initialState = {\n token: \"\",\n type: null,\n remember: false,\n timeLastRequest: undefined,\n hasInvite: null,\n};\n\nexport const login = createAction(\"AUTH__LOGIN\");\nexport const loginSuccess = createAction(\"AUTH__LOGIN_SUCCESS\");\nexport const loginFailure = createAction(\"AUTH__LOGIN_FAILURE\");\nexport const setProfile = createAction(\"AUTH__SET_PROFILE\");\nexport const setInviteByToken = createAction(\"INVITE__SET_BY_TOKEN\");\nexport const inviteByTokenSuccess = createAction(\"INVITE__BY_TOKEN_SUCCESS\");\nexport const inviteByTokenFailure = createAction(\"INVITE__BY_TOKEN_FAILURE\");\n\nexport const switchUser = createAction(\"AUTH__SWITCH_USER\");\nexport const switchUserSuccess = createAction(\"AUTH__SWITCH_USER_SUCCESS\");\n\nexport const logout = createAction(\"AUTH__LOGOUT\");\n\nexport const resendEmail = createAction(\"AUTH__RESEND_EMAIL\");\nexport const hideModal = createAction(\"AUTH__HIDE_MODAL\");\n\nconst handleLoginSuccess = (\n state,\n { response, remember, anonymous = false }\n) => {\n const token = R.path([\"data\", \"token\"], response);\n const domain = R.path([\"data\", \"domain\"], response);\n const userAKey = R.pathOr(null, [\"data\", \"UserAKey\"], response);\n const profileKey = R.pathOr(null, [\"data\", \"ProfileKey\"], response);\n\n return {\n ...state,\n remember,\n anonymous,\n domain: domain ? `https://${domain}` : undefined,\n token,\n userAKey,\n profileKey,\n };\n};\n\nconst handleLogout = () => initialState;\n\nconst handleSwitchUserSuccess = (state, payload) => {\n const { userAKey, token } = payload;\n\n return {\n ...state,\n userAKey,\n token,\n };\n};\n\nconst handleSetProfile = (state, profileKey) => ({\n ...state,\n profileKey,\n});\n\nexport default createReducer(\n {\n [loginSuccess]: handleLoginSuccess,\n [logout]: handleLogout,\n [switchUserSuccess]: handleSwitchUserSuccess,\n [setProfile]: handleSetProfile,\n },\n initialState\n);\n","import * as R from 'ramda';\nimport { put, call, select, all } from 'redux-saga/effects';\n\nimport {\n getItemByKey,\n} from 'redux/selectors';\n\nimport getErrorFromResponse from 'redux/utils/getErrorFromResponse';\nimport dispatchAndWait from 'redux/utils/dispatchAndWait';\nimport waitFor from 'redux/utils/waitFor';\nimport * as api from 'utils/api';\nimport isLocalKey from 'utils/isLocalKey';\n\nexport default function runButtonCreator({\n button,\n fetch,\n save,\n data = {},\n showError = true,\n}) {\n return function* runButton(action) {\n const { payload } = action;\n let { key } = payload;\n const currentItem = yield select(getItemByKey(key));\n const currentFields = R.pickAll(R.keys(data), currentItem);\n\n try {\n yield put(save({\n key,\n data: {\n ...data,\n [button]: true,\n },\n isLocal: true,\n }));\n\n if (isLocalKey(key)) {\n const success = yield waitFor(save({\n key,\n }));\n key = success.payload.response.data.key;\n }\n\n const response = yield call(api.post, {\n key,\n button,\n });\n\n const success = {\n type: `${action.type}_SUCCESS`,\n payload: {\n ...action.payload,\n response,\n },\n };\n\n const item = yield select(getItemByKey(key))\n\n if (fetch && item && !item.isDeleted) {\n yield dispatchAndWait(fetch({\n key,\n }));\n }\n\n yield put(save({\n key,\n data: {\n [button]: false,\n },\n isLocal: true,\n }));\n yield put(success);\n\n return success;\n } catch (error) {\n const status = R.pathOr(null, ['response', 'status'], error);\n const failure = {\n type: `${action.type}_FAILURE`,\n payload: {\n ...action.payload,\n error,\n },\n };\n\n if (showError) {\n const errorEffect = getErrorFromResponse(error, payload.form);\n yield all(errorEffect);\n }\n\n yield put(failure);\n yield put(save({\n key: action.payload.key,\n data: {\n ...currentFields,\n [button]: false,\n },\n isLocal: true,\n }));\n\n if (status !== 401) {\n throw error;\n }\n\n return null;\n }\n };\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport { Link as LinkRR } from 'react-router';\n\nimport IconDotLoader from 'components/IconDotLoader';\n\nimport styles from './Link.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Link extends PureComponent {\n static propTypes = {\n block: PropTypes.bool,\n bold: PropTypes.bool,\n black: PropTypes.bool,\n children: PropTypes.node.isRequired,\n color: PropTypes.oneOf([\n 'inherit',\n 'red',\n 'white',\n 'sapphirine',\n 'blue',\n ]),\n column: PropTypes.bool,\n disabled: PropTypes.bool,\n ellipsis: PropTypes.bool,\n hover: PropTypes.oneOf([\n 'white',\n 'blue',\n 'sky-blue',\n 'sapphirine',\n 'red',\n 'dark-red',\n 'custom',\n ]),\n href: PropTypes.string,\n inherit: PropTypes.bool,\n isActive: PropTypes.bool,\n isLoading: PropTypes.bool,\n large: PropTypes.bool,\n medium: PropTypes.bool,\n nowrap: PropTypes.bool,\n onlyActiveOnIndex: PropTypes.bool,\n sidebarMenu: PropTypes.bool,\n small: PropTypes.bool,\n to: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]),\n underline: PropTypes.bool,\n onClick: PropTypes.func,\n target: PropTypes.string,\n title: PropTypes.string,\n }\n\n static defaultProps = {\n block: false,\n bold: false,\n children: undefined,\n color: undefined,\n column: false,\n disabled: false,\n ellipsis: false,\n hover: undefined,\n href: undefined,\n inherit: false,\n isActive: false,\n isLoading: false,\n large: false,\n medium: false,\n nowrap: false,\n onlyActiveOnIndex: false,\n sidebarMenu: false,\n small: false,\n to: undefined,\n underline: false,\n onClick: () => {},\n title: undefined,\n }\n\n getTitle() {\n const { title, ellipsis, children } = this.props;\n\n if (title) {\n return title;\n }\n\n if (ellipsis) {\n return children;\n }\n\n return null;\n }\n\n render() {\n const {\n href,\n to,\n onClick,\n isActive,\n color,\n children,\n medium,\n small,\n large,\n bold,\n column,\n hover,\n disabled,\n underline,\n onlyActiveOnIndex,\n isLoading,\n nowrap,\n inherit,\n block,\n sidebarMenu,\n ellipsis,\n target,\n black,\n } = this.props;\n\n const props = {\n type: 'button',\n };\n let ComponentName = 'button';\n\n if (to) {\n ComponentName = LinkRR;\n props.to = to;\n props.type = null;\n props.activeClassName = cx('link_active');\n props.onlyActiveOnIndex = onlyActiveOnIndex;\n }\n\n if (href) {\n ComponentName = 'a';\n props.type = null;\n props.href = href;\n props.target = target;\n }\n\n return (\n \n \n {children}\n \n\n \n \n \n \n );\n }\n}\n","import memoizee from 'memoizee';\nimport * as R from 'ramda';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItemsList = memoizee(R.compose(\n R.map(item => ({\n ...item,\n value: item.key,\n label: item.custom_наименование,\n })),\n getItemsArray,\n));\n\nexport const getSelectData = getItemsList;\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\n\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeSuccess,\n removeWithUndo,\n} = generator({\n name: 'Ingredients',\n tableId: 51,\n parseItem: R.compose(\n (item) => {\n /* eslint-disable no-param-reassign */\n if (item.custom_группа || item.custom_группа_ключ) {\n item.custom_группа = item.custom_группа || item.custom_группа_ключ;\n }\n /* eslint-enable no-param-reassign */\n\n return item;\n },\n R.evolve({\n ___owner: R.propOr(null, 'key'),\n ___territory: R.propOr(null, 'key'),\n custom_группа: R.propOr(null, 'key'),\n custom_единица_измерения__гр_мл: R.propOr(null, 'key'),\n custom_территория_вспомогательное: R.propOr(null, 'key'),\n custom_специфические_виды_питания: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n }),\n ),\n});\n\nexport const fetchItem = fetchWithView(fetch, 'ts5c51cs6r348');\nexport const fetchSystemIngredients = fetchWithView(fetch, 'ts5c51cs9r345', {\n useLS: true,\n});\nexport const fetchUserIngredients = fetchWithView(fetch, 'ts5c51cs9r346');\nexport const fetchCatalogList = createAction('INGREDIENTS__FETCH_CATALOG_LIST');\nexport const fetchCatalogListSuccess = createAction('INGREDIENTS__FETCH_CATALOG_LIST_SUCCESS');\nexport const copyComposition = createAction('INGREDIENTS__COPY_COMPOSITION');\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeSuccess,\n removeWithUndo,\n};\n\nexport {\n getItemById,\n getKeyById,\n getItems,\n getItem,\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSelectData,\n getItemsList,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","import * as R from 'ramda';\n\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nexport const getSumComposition = (value, productKey, state) => {\n const composition = getItemsArrayByParent(productKey, state);\n\n if (!value) {\n return {};\n }\n\n return R.compose(\n R.map(elementValue => Math.round(elementValue * value) / 100),\n R.pluck('custom_значение'),\n R.indexBy(R.prop('custom_элемент_рациона')),\n )(composition);\n};\n\nexport const getIsHaveComposition = R.compose(\n R.not,\n R.isEmpty,\n getItemsArrayByParent,\n);\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n save,\n saveSuccess,\n remove,\n} = generator({\n name: 'ProductComposition',\n tableId: 30,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_элемент_рациона: R.prop('key'),\n custom_относится_к: R.prop('key'),\n custom_продукт: R.prop('key'),\n ___createduser: R.prop('key'),\n ___modifieduser: R.prop('key'),\n custom_значение: val => Math.round(val * 10) / 10,\n }),\n});\n\nexport {\n fetch,\n fetchSuccess,\n save,\n saveSuccess,\n remove,\n};\n\nexport {\n getItems,\n getItemsByParent,\n getItemsArrayByParent,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSumComposition,\n getIsHaveComposition,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport { appKey } from 'config';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\nimport convertFromServerTimeZoneToCurrentTimeZone from 'utils/convertFromServerTimeZoneToCurrentTimeZone';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeWithUndo,\n} = generator({\n name: 'Dietanamnezes',\n tableId: 140,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_специалист: R.propOr(null, 'key'),\n custom_тип_да: R.propOr(null, 'value'),\n custom_специфические_виды_питания: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_профиль_потребления_веществ: R.compose(\n R.map(R.evolve({\n элемент_состава: R.replace('cXaX', appKey)\n })),\n R.defaultTo([]),\n ),\n custom_профиль_потребления_продуктов: R.compose(\n R.map(R.evolve({\n продукт: R.replace('cXaX', appKey)\n })),\n R.defaultTo([]),\n ),\n custom_частота_потребления_групп_продуктов: R.compose(\n R.map(R.evolve({\n группа_продуктов: R.replace('cXaX', appKey)\n })),\n R.defaultTo([]),\n ),\n custom_дата_назначения: convertFromServerTimeZoneToCurrentTimeZone,\n }),\n});\n\nexport default class Dietanamnez extends Model {\n static modelName = 'Dietanamnez';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(),\n custom_специалист: fk('Worker', 'dietanamnez'),\n custom_фио_специалиста: attr(),\n custom_специфические_виды_питания: attr(),\n custom_дата_назначения: attr(),\n custom_диетанамнез_заключение: attr(),\n custom_заключение_недостаток: attr(),\n custom_заключение_избыток: attr(),\n custom_селфтест_до: attr(),\n custom_тип_да: attr(),\n custom_профиль_потребления_веществ: attr(),\n custom_профиль_потребления_продуктов: attr(),\n custom_частота_потребления_групп_продуктов: attr(),\n }\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchForm = fetchWithView(fetch, 'with_staff_name');\nexport const fetchReport = fetchWithView(fetch, 'report');\nexport const calcDietanamnezReport = createAction('DIETANAMNEZ__CALC_REPORT');\nexport const assign = createAction('DIETANAMNEZ__ASSIGN');\nexport const assignSuccess = createAction('DIETANAMNEZ__ASSIGN_SUCCESS');\nexport const switchType = createAction('DIETANAMNEZ__SWITCH_TYPE');\n\nexport {\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeWithUndo,\n};\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport moment from 'moment';\n\nimport { getItemsArray, getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nconst parseJournal = R.compose(\n R.reverse,\n R.sortBy(R.prop('date')),\n R.map(visit => ({\n date: R.propOr(null, 'custom_дата', visit),\n doctor: R.propOr(null, '___parent', visit),\n patient: R.propOr(null, 'custom_пациент', visit),\n action: R.compose(\n R.defaultTo('Прием'),\n R.propOr(null, 'custom_действие'),\n )(visit),\n })),\n);\n\nconst getJournal = createSelector(\n (userKey, state) => userKey === 'all' ? getItemsArray(state) : getItemsArrayByParent(userKey, state),\n\n parseJournal,\n);\n\nexport const getUserActiveDays = createSelector(\n getJournal,\n\n R.compose(\n R.uniqBy(value => moment(value).format('DD.MM.YYYY')),\n R.pluck('date'),\n ),\n);\n\nexport const getUserJournal = createSelector(\n date => date,\n (date, userKey, state) => getJournal(userKey, state),\n\n (date, journal) =>\n R.filter(\n R.propSatisfies(d => !date || moment(d).isSame(moment(date, 'DD.MM.YYYY'), 'day'), 'date'),\n journal,\n ),\n);\n\nexport const getPatientJournal = createSelector(\n R.identity,\n (patientKey, state) => getItemsArray(state),\n\n R.uncurryN(2, patientKey => R.compose(\n R.uniqBy(({ date, action }) => moment(date).format('DD.MM.YYYY') + action),\n parseJournal,\n R.filter(R.propEq('custom_пациент', patientKey)),\n )),\n);\n","import * as R from 'ramda';\nimport moment from 'moment';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n\n fetchSuccess,\n create,\n} = generator({\n name: 'Journal',\n tableId: 57,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_дата: val => moment(val).toDate(),\n custom_пациент: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n create,\n};\n\nexport {\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport {\n getUserJournal,\n getUserActiveDays,\n getPatientJournal,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","const publicLogin = {\n email: 'front@nutrilogic.com',\n password: '123456',\n remember: true,\n anonymous: true,\n};\n\nexport default publicLogin;","import * as R from 'ramda';\nimport { contextKey } from 'config';\n\nimport publicLogin from 'helpers/publicLogin';\nimport { request } from 'utils/api';\n\nexport default function getPublicToken(hasStrictDomain) {\n const { email, password, remember } = publicLogin;\n const rememberHeader = remember ? { Remember: 'true' } : {};\n\n return request.post('/authenticate/json/v2', undefined, {\n hasStrictDomain,\n auth: {\n username: email,\n password,\n },\n headers: {\n context: contextKey,\n ...rememberHeader,\n },\n }).then(R.path(['headers', 'token']));\n}\n\nfunction getPublicAuth() {\n const { email, password, remember } = publicLogin;\n const rememberHeader = remember ? { Remember: 'true' } : {};\n\n return request.post('/authenticate/json/v2', undefined, {\n auth: {\n username: email,\n password,\n },\n headers: {\n context: contextKey,\n ...rememberHeader,\n },\n }).then(res => res);\n}\n\nexport {\n getPublicAuth,\n getPublicToken\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Title.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Title extends PureComponent {\n static propTypes = {\n children: PropTypes.node.isRequired,\n color: PropTypes.oneOf([\n 'inherit',\n ]),\n component: PropTypes.string,\n ellipsis: PropTypes.bool,\n size: PropTypes.oneOf([\n 'small',\n 'medium',\n 'post-medium',\n 'big',\n ]),\n };\n\n static defaultProps = {\n children: undefined,\n color: undefined,\n component: undefined,\n ellipsis: false,\n size: undefined,\n weight: undefined,\n };\n\n getComponentBySize(size) {\n const map = {\n big: 'h1',\n medium: 'h3',\n };\n\n return map[size] || 'h2';\n }\n\n render() {\n const {\n color,\n size,\n component,\n ellipsis,\n } = this.props;\n const Tag = component || this.getComponentBySize(size);\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport isLocalKey from 'utils/isLocalKey';\n\nimport getDietanamnezId from '../getDietanamnezId';\n\nexport default createOrmSelector(\n getDietanamnezId,\n (state, props = {}) => props.dietanamnezKey,\n\n (session, id, itemKey) => {\n const { Dietanamnez } = session;\n\n try {\n const key = Dietanamnez\n .filter(item => item.key === id || item.oldKey === id || (itemKey && (item.key === itemKey || item.oldKey === itemKey)))\n .first()\n .ref\n .key;\n\n return key\n } catch (error) {\n if (!isLocalKey(id)) {\n const item = Dietanamnez\n .all()\n .toModelArray()\n .filter(i => i.id === Number(id))[0]\n\n return item ? item.key : null;\n }\n }\n },\n);\n","import reducer from './reducer';\n\nexport { setNotification } from './reducer';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","const simplePasswords = [\n 'password', '123456', '12345678', '1234', 'qwerty', '12345', 'dragon',\n 'pussy', 'baseball', 'football', 'letmein', 'monkey', '696969', 'abc123',\n 'mustang', 'michael', 'shadow', 'master', 'jennifer', '111111', '2000', 'jordan', 'superman',\n 'harley', '1234567', 'fuckme', 'hunter', 'fuckyou', 'trustno1', 'ranger', 'buster', 'thomas',\n 'tigger', 'robert', 'soccer', 'fuck', 'batman', 'test', 'pass', 'killer', 'hockey', 'george',\n 'charlie', 'andrew', 'michelle', 'love', 'sunshine', 'jessica', 'asshole', '6969', 'pepper',\n 'daniel', 'access', '123456789', '654321', 'joshua', 'maggie', 'starwars', 'silver', 'william',\n 'dallas', 'yankees', '123123', 'ashley', '666666', 'hello', 'amanda', 'orange', 'biteme',\n 'freedom', 'computer', 'sexy', 'thunder', 'nicole', 'ginger', 'heather', 'hammer', 'summer',\n 'corvette', 'taylor', 'fucker', 'austin', '1111', 'merlin', 'matthew', '121212', 'golfer',\n 'cheese', 'princess', 'martin', 'chelsea', 'patrick', 'richard', 'diamond', 'yellow',\n 'bigdog', 'secret', 'asdfgh', 'sparky', 'cowboy',\n];\n\nexport default simplePasswords;\n","import * as R from 'ramda';\nimport moment from 'moment';\nimport { isValidPhoneNumber } from \"react-phone-number-input\"\n\nimport { timeToMinutes } from 'utils/time';\n\nimport simplePasswords from '../simplePasswords';\n\nconst isEmpty = value => value === undefined || value === null || value === '';\n\nfunction email() {\n return value => isEmpty(value) || /^[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,8}$/i.test(value);\n}\n\nfunction date() {\n return value => isEmpty(value) || moment(value).isValid();\n}\n\nfunction minDate(config) {\n const minValue = R.propOr(null, 'limiter', config);\n\n return value => moment(value).isSameOrAfter(minValue);\n}\nfunction maxDate(config) {\n const maxValue = R.propOr(null, 'limiter', config);\n\n return value => moment(value).isSameOrBefore(maxValue);\n}\nfunction time() {\n return value => isEmpty(value) || timeToMinutes(value) <= 1440;\n}\n\nfunction timeFilled() {\n return value => isEmpty(value) || /\\d{2}:\\d{2}/.test(value);\n}\n\nfunction locate() {\n return value => /^[A-ZА-ЯЁа-яё-]*$/i.test(R.trim(value || ''));\n}\n\nfunction locateNum() {\n return value => /^[0-9A-ZА-ЯЁа-яё]*$/i.test(R.trim(value || ''));\n}\n\nfunction createNumberValidator(type) {\n return (value) => {\n const parsedValue = typeof value === 'string' ? value.replace(',', '.') : value;\n const number = parseFloat(parsedValue);\n\n let comparator = number >= 0;\n switch (type) {\n case 'positive':\n comparator = number > 0;\n break;\n case 'natural':\n comparator = number >= 0;\n break;\n default:\n comparator = true;\n }\n\n return isEmpty(value) || (/^[0-9.]*$/i.test(parsedValue) && isFinite(number) && comparator);\n };\n}\n\nfunction numeric() {\n return createNumberValidator('natural');\n}\n\nfunction positiveNumber() {\n return createNumberValidator('positive');\n}\n\nfunction required() {\n return value => !isEmpty(R.trim(!R.isNil(value) ? value.toString() : ''));\n}\n\nfunction nonRemovable() {\n return (value, _, initialValue) => !initialValue || value;\n}\n\nfunction min(config) {\n const limiter = R.propOr(null, 'limiter', config);\n return value => isEmpty(value) || !limiter || value.length >= limiter;\n}\n\nfunction max(config) {\n const limiter = R.propOr(null, 'limiter', config);\n return value => isEmpty(value) || !limiter || value.length <= limiter;\n}\n\nfunction phone() {\n return value => {\n return isEmpty(value) || isValidPhoneNumber(value);\n };\n}\n\nfunction pass() {\n return value => /^[0-9A-Z$@$!%*#?&]+$/i.test(value);\n}\n\nfunction simplePass() {\n return value => !R.contains(value, simplePasswords);\n}\n\nfunction typeFiles(config) {\n const correctTypes = R.propOr(null, 'correctTypes', config);\n\n return (file = {}) => {\n const mime = R.propOr(null, 'mime', file);\n\n return !correctTypes || !mime || R.contains(mime, correctTypes);\n };\n}\n\nfunction sizeFiles(config) {\n const correctSize = R.propOr(null, 'correctSize', config);\n\n return file => !correctSize || correctSize > R.pathOr(0, ['base64', 'length'], file);\n}\n\nfunction custom(config) {\n return (value, values) => config.validator(value, values);\n}\n\nfunction unique(config) {\n const formatValue = R.compose(\n R.replace(/[\"«», .\\-—]/g, ''),\n R.toLower,\n R.defaultTo(''),\n );\n\n const list = R.compose(\n R.map(formatValue),\n R.propOr([], 'list'),\n )(config);\n\n return value => !R.includes(formatValue(value), list);\n}\n\nconst validators = {\n email,\n date,\n minDate,\n maxDate,\n locate,\n numeric,\n positiveNumber,\n min,\n max,\n required,\n nonRemovable,\n phone,\n locateNum,\n pass,\n time,\n timeFilled,\n simplePass,\n typeFiles,\n sizeFiles,\n custom,\n unique,\n};\n\nexport default validators","const config = {\n min: {\n limiter: 10,\n },\n max: {\n limiter: 100,\n },\n typeFiles: {\n correctTypes: ['image/png', 'image/jpg', 'image/jpeg'],\n },\n sizeFiles: {\n correctSize: 2e6,\n },\n};\n\nexport default config;\n","import * as R from 'ramda';\n\nimport defaultConfig from './defaultConfig';\nimport defaultText from './defaultText';\n\nconst getErrorText = rules =>\n R.mapObjIndexed((firstError, fieldName) => {\n const validatorConfig = {\n ...defaultConfig[firstError],\n ...R.pathOr({}, [fieldName, firstError], rules),\n };\n const getText = R.propOr(defaultText[firstError], 'errorText', validatorConfig);\n const text = typeof getText === 'function' ? getText(validatorConfig) : getText;\n\n return text || firstError || 'Неизвестная ошибка';\n });\n\nexport default getErrorText;\n","import * as R from 'ramda';\nimport extend from 'deep-extend';\nimport validators from './validators';\nimport getErrorText from './getErrorText';\nimport defaultOptions from './defaultOptions';\nimport defaultConfig from './defaultConfig';\n\nexport default function createValidate(options, evolve = R.nthArg(0)) {\n return (valuesFields, props = {}) => {\n const realOptions = typeof options === 'function' ? options(valuesFields, props) : options;\n const config = extend({}, defaultOptions, realOptions);\n const rules = R.map(R.pickBy(Boolean), config);\n\n const values = evolve(R.pickAll(props.fields, valuesFields));\n const initialValues = props.initialValues ? evolve(props.initialValues) : {};\n\n return R.compose(\n // Получаем текст ошибки\n getErrorText(rules),\n\n // Отфильтровываем поля, у которых ошибки нет\n R.pickBy(Boolean),\n\n // Получаем первую ошибку\n R.mapObjIndexed(R.compose(\n R.head,\n R.keys,\n R.pickBy(R.complement(Boolean)),\n )),\n\n // Вызываем все валидаторы для всех полей\n R.mapObjIndexed((value, fieldName) => {\n const validatorList = rules[fieldName];\n\n return R.mapObjIndexed((validatorConfig, validatorName) => {\n if (!validators[validatorName]) {\n return true;\n }\n\n const validator = validators[validatorName]({\n ...defaultConfig[validatorName],\n ...validatorConfig,\n });\n\n return validator(value, values, initialValues[value]);\n }, validatorList);\n }),\n )(values);\n };\n}\n","import * as R from 'ramda';\nimport validators from './validators';\nimport defaultText from './defaultText';\n\nconst getErrorText = rules => (error) => {\n if (!error) {\n return undefined;\n }\n\n const validatorConfig = R.pathOr({}, [error], rules);\n const getText = R.propOr(defaultText[error], 'errorText', validatorConfig);\n const text = typeof getText === 'function' ? getText(validatorConfig) : getText;\n\n return text || 'Неизвестная ошибка';\n};\n\nexport default function createFieldValidate(rules) {\n return (value) => {\n const getError = R.compose(\n getErrorText(rules),\n R.head,\n R.keys,\n R.pickBy(R.complement(Boolean)),\n );\n\n if (!rules) {\n return undefined;\n }\n\n const { required, ...rest } = rules;\n\n const isValid = validators.required(required)(value);\n\n if (!isValid) {\n if (required) {\n return getError({\n required: false,\n });\n }\n\n return getError({});\n }\n\n return R.compose(\n getError,\n R.mapObjIndexed((validatorConfig, validatorName) => {\n if (!validators[validatorName]) {\n return true;\n }\n\n const validator = validators[validatorName](validatorConfig);\n\n return validator(value);\n }),\n )(rest);\n };\n}\n","import { applyContainerQuery } from 'react-container-query'; // eslint-disable-line\nimport * as R from 'ramda';\n\nconst getWidth = R.compose(\n Number,\n R.propOr(undefined, 1),\n);\n\nconst containerQuery =(styles = {}, query = {}) => (component) => {\n const calculatedQuery = R.compose(\n R.merge(query),\n R.reduce((acc, item) => ({\n ...acc,\n [item]: {\n minWidth: (getWidth(item.match(/gt_(\\d+)/)) || -1) + 1,\n maxWidth: (getWidth(item.match(/lt_(\\d+)/)) || Infinity) - 1,\n },\n }), {}),\n R.filter(key => R.contains('width_gt', key) || R.contains('width_lt', key)),\n R.keys,\n )(styles);\n\n return applyContainerQuery(component, calculatedQuery);\n};\n\nexport default containerQuery;","import { appKey, apiUrl } from 'config';\n\nexport const superuserRoleKey = `${appKey}ts8r4`;\nexport const liteTrialRoleKey = `${appKey}ts8r26`;\nexport const dietologRoleKey = `${appKey}ts8r18`;\n\nexport const subscriptionExpiredProfile = `${appKey}ts18r12`;\n\nexport const defaultIcon = `${apiUrl}/images_nutrilogic/dieta_icons/universal.svg`;\n","import memoizee from 'memoizee';\n\nconst requests = new Map();\n\nconst constructObject = memoizee((url, view, filter) => ({\n url,\n view,\n filter,\n}));\n\nconst getQueueKeyByConfig = (config) => {\n const url = config.url;\n const { filter, view } = config.headers;\n\n return constructObject(url, view, filter);\n};\n\nexport function queueRequest(config) {\n if (config.method !== 'get') {\n return config;\n }\n\n const cacheKey = getQueueKeyByConfig(config);\n const existItem = requests.get(cacheKey);\n\n if (!existItem) {\n requests.set(cacheKey, []);\n return config;\n }\n\n return new Promise((resolve, reject) => {\n requests.set(cacheKey, existItem.concat({\n resolve,\n reject,\n config,\n }));\n });\n}\n\nexport function queueResponse(payload) {\n const { config } = payload;\n const cacheKey = getQueueKeyByConfig(config);\n const existItem = requests.get(cacheKey);\n\n if (existItem) {\n requests.delete(cacheKey);\n existItem.forEach((request) => {\n request.reject({\n fromQueue: payload,\n });\n });\n }\n\n return payload;\n}\n\nexport function queueResponseError(error) {\n if (error.fromQueue) {\n return Promise.resolve({\n ...error.fromQueue,\n fromQueue: true,\n });\n }\n\n if (error.config) {\n const cacheKey = getQueueKeyByConfig(error.config);\n const existItem = requests.get(cacheKey);\n\n if (existItem) {\n requests.delete(cacheKey);\n existItem.forEach((request) => {\n request.reject(error);\n });\n }\n }\n\n return Promise.reject(error);\n}\n","import { getToken } from 'redux/modules/auth';\nimport { getItemLocalStorage, setItemLocalStorage } from '../localStorage';\n\nlet isRequested = {};\nlet cache = new Map();\nlet prevToken;\n\nconst construtCacheKey = (url, view, filter, data) => `${url}_${view}_${filter}_${data}`;\n\nconst getCacheKeyByConfig = (config) => {\n const url = config.url;\n const { filter, view } = config.headers;\n\n return construtCacheKey(url, view, filter, config.data);\n};\n\nconst setTimeCashWithTimeOut = (cacheKey, response) => {\n cache.set(cacheKey, {\n ...response,\n timeout: setTimeout(() => cache.delete(cacheKey), 5 * 60 * 1000),\n });\n};\n\n\nexport function getIsInCache(config) {\n const cacheKey = construtCacheKey(config.url, config.view, config.filter);\n const currentCache = cache.get(cacheKey);\n\n return !!currentCache;\n}\n\nexport function resetCache(store) {\n return () => {\n const token = getToken(store.getState().auth);\n\n if ((!token && prevToken) || (token && !prevToken)) {\n cache = new Map();\n isRequested = {};\n }\n\n prevToken = token;\n };\n}\n\nexport function requestCache(config) {\n if (!config.cache && !config.useLS) {\n return config;\n }\n\n const cacheKey = getCacheKeyByConfig(config);\n let currentCache = cache.get(cacheKey);\n let isLocalCache = !!currentCache;\n\n if (!currentCache && config.useLS) {\n currentCache = getItemLocalStorage({ cacheKey });\n isLocalCache = isRequested[cacheKey];\n isRequested[cacheKey] = true;\n }\n\n if (currentCache) {\n return Promise.reject({\n cache: {\n ...currentCache,\n fromCache: isLocalCache,\n },\n });\n }\n\n return config;\n}\n\nexport function responseCache(response) {\n const { config } = response;\n\n const cacheKey = getCacheKeyByConfig(config);\n const currentCache = cache.get(cacheKey);\n\n // TODO i dont know is need this cashing with timeout now\n if (currentCache) {\n clearTimeout(currentCache.timeout);\n }\n\n if (config.useLS && response.data.count !== 0) {\n setItemLocalStorage({ cacheKey, response });\n } else if (config.cache) {\n setTimeCashWithTimeOut(cacheKey, response);\n }\n\n return response;\n}\n\nexport function responseCacheError(error) {\n if (error.cache) {\n return Promise.resolve(error.cache);\n }\n\n return Promise.reject(error);\n}\n","import instance from '../../request';\n\nconst genericRequest = (config) => {\n switch (config.method.toUpperCase()) {\n case 'POST':\n return instance.post(config.url, config.data, config);\n case 'PUT':\n return instance.put(config.url, config.data, config);\n case 'DELETE':\n return instance.delete(config.url, config);\n default:\n return instance.get(config.url, config);\n }\n};\n\nexport default genericRequest;\n\n","import * as R from 'ramda';\nimport { pingFailure } from 'redux/modules/ping';\nimport { apiUrl } from 'config';\n\nimport genericRequest from '../genericRequest';\n\nlet requests = [];\n\nexport const handleServerMaintenance = store => () => {\n const serverUnderMaintenance = R.path(['ping', 'serverUnderMaintenance'], store.getState());\n\n if (serverUnderMaintenance || R.length(requests) === 0) {\n return Promise.resolve();\n }\n\n const getIndex = request => R.findIndex(R.equals(request), requests);\n\n return R.compose(\n val => Promise.all(val),\n R.map((request) => {\n request.resent = true; // eslint-disable-line no-param-reassign\n\n return genericRequest(request.response.config)\n .then((response) => {\n const index = getIndex(request);\n request.resolve(response);\n requests = R.remove(index, 1, requests);\n })\n .catch((response = {}) => {\n if (response.status === 503) {\n return;\n }\n\n const index = getIndex(request);\n request.reject(response);\n requests = R.remove(index, 1, requests);\n });\n }),\n R.reject(R.propEq('resent', true)),\n )(requests);\n};\n\nexport const dispatchPing = (store, payload) => store.dispatch(pingFailure(payload));\n\nconst getIsShouldReject = response =>\n response.status !== 503 || response.config.url === `${apiUrl}/ping/json/v2`;\n\nexport const serverMaintenanceInterceptor = (store, payload = {}) => {\n const { response = {} } = payload;\n\n if (getIsShouldReject(response)) {\n return Promise.reject(payload);\n }\n\n const resentRequestIndex = R.findIndex(R.pathEq(['response', 'config'], response.config), requests);\n const resentRequest = resentRequestIndex > -1 ? requests[resentRequestIndex] : null;\n const request = resentRequest ? {\n ...resentRequest,\n resent: false,\n } : {\n response,\n resent: false,\n };\n\n if (resentRequest) {\n requests = R.update(resentRequestIndex, request, requests);\n } else {\n requests = requests.concat(request);\n }\n\n dispatchPing(store, payload);\n\n return new Promise((resolve, reject) => {\n request.resolve = resolve;\n request.reject = reject;\n });\n};\n\nexport const getRequests = () => R.clone(requests);\n","import axios from 'axios';\nimport { apiUrl } from 'config';\n\nimport {\n queueRequest,\n queueResponse,\n queueResponseError,\n} from './utils/queue';\n\nimport interceptor, { interceptorError } from './utils/interceptor';\nimport {\n resetCache,\n requestCache,\n responseCache,\n responseCacheError,\n} from './utils/cache';\nimport {\n handleServerMaintenance,\n serverMaintenanceInterceptor,\n} from './utils/serverMaintenance';\n\nlet store;\nexport function setStore(_store) {\n store = _store;\n store.subscribe(resetCache(store));\n store.subscribe(handleServerMaintenance(store));\n}\n\nconst instance = axios.create({\n baseURL: apiUrl,\n});\n\ninstance.interceptors.request.use(queueRequest);\ninstance.interceptors.request.use(requestCache);\ninstance.interceptors.request.use(param => interceptor(store, param));\n\ninstance.interceptors.response.use(null, response => serverMaintenanceInterceptor(store, response));\ninstance.interceptors.response.use(responseCache, responseCacheError);\ninstance.interceptors.response.use(queueResponse, queueResponseError);\ninstance.interceptors.response.use(null, response => interceptorError(store, response));\n\nexport default instance;\n","import * as R from 'ramda';\nimport { apiUrl, proApiUrl } from 'config';\nimport { logout } from 'redux/modules/auth';\nimport { saveTokenInfo } from 'utils/cookie/token';\n\nimport request from '../../request';\nimport { loadingFinish } from \"../../../../redux/modules/loading\";\nimport { hideLoader } from \"../../../../redux/modules/loader\";\n\nexport default function interceptor(store, config) {\n const { auth = {} } = store.getState();\n\n let domain = apiUrl;\n\n if (!config.hasStrictDomain) {\n const pathname = window.location.pathname.toLowerCase();\n\n if (pathname === '/signup' || pathname === '/pro' || pathname === '/signup/' || pathname === '/invite' || (pathname === '/login' && window.location.search.toLowerCase().includes('lite=false'))) {\n domain = proApiUrl;\n } else if (auth.domain) {\n domain = auth.domain;\n }\n\n config.baseURL = domain;\n }\n\n\n const isPing = R.pathEq(['url'], '/ping/json/v2', config);\n const isAuth = R.pathEq(['url'], '/authenticate/json/v2', config);\n\n if (isAuth) {\n return config;\n }\n\n if (!auth.token && !R.pathOr(false, ['headers', 'token'], config) && !isPing) {\n store.dispatch(logout({ isSessionOver: true }));\n store.dispatch(loadingFinish());\n store.dispatch(hideLoader('page'));\n store.dispatch(hideLoader('application'));\n\n return Promise.reject({\n response: {\n status: 401,\n config,\n },\n });\n }\n\n saveTokenInfo(store.getState());\n\n const { token, remember } = auth;\n\n return R.compose(\n R.over(R.lensPath(['headers', 'token']), R.defaultTo(token)),\n c => remember ? R.set(R.lensPath(['headers', 'Remember']), remember, c) : config,\n )(config);\n}\n\nexport function interceptorError(store, error) {\n const { config, message, response = {} } = error;\n\n if (message === 'Network Error' && (config.attempts < 5 || !config.attempts)) {\n return request.request({\n ...config,\n attempts: (config.attempts || 0) + 1,\n });\n }\n\n if (response.status === 401 && !R.endsWith('/authenticate/json/v2', response.config.url)) {\n store.dispatch(logout({ isSessionOver: true }));\n }\n\n return Promise.reject(error);\n}\n","import * as R from 'ramda';\nimport createCachedSelector from 'redux/utils/createCachedOrmSelector';\n\nimport { appKey } from 'config';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nexport const getKeyById = id => id ? `${appKey}t39r${id}` : null;\n\nconst toTemplateInfo = item => ({\n ...item.ref,\n key: item.key,\n value: getKeyInfo(item.key).record.toString(),\n id: getKeyInfo(item.key).record.toString(),\n content: item.custom_название,\n duration: item.custom_продолжительность,\n owner: R.propOr(null, '___owner', item.ref),\n isDeleting: item['custom.custom_delete'],\n});\n\nconst getTemplatesByType = createCachedSelector(\n (state, type) => type,\n\n (session, type) => {\n const { Ration } = session;\n\n return Ration\n .filter({\n custom_тип_шаблона: type,\n })\n .exclude({\n isDeleting: true,\n })\n .exclude({\n isDeleted: true,\n })\n .orderBy(a => getKeyInfo(a.key).record)\n .toModelArray()\n .map(toTemplateInfo)\n .map(R.assoc('withView', true));\n },\n);\n\nexport const getPersonalTemplate = state => R.compose(\n R.map(R.assoc('withDelete', true)),\n R.map(R.assoc('withEdit', true)),\n R.reject(R.prop('custom_не_назначен')),\n getTemplatesByType,\n)(state, 1);\n\nexport const getInstituteTemplate = (state, right, userKey) =>\n R.compose(\n R.map((template) => {\n const isOwner = userKey === R.propOr(null, 'owner', template);\n const isCanEdit = right || isOwner;\n\n return R.compose(\n R.assoc('withDelete', isCanEdit),\n R.assoc('withEdit', isCanEdit),\n )(template);\n }),\n getTemplatesByType,\n )(state, 2);\n\nexport const getSystemTemplates = state => R.compose(\n R.sortBy(R.prop('content')),\n getTemplatesByType,\n)(state, 3);\n\nexport const getGeneratorTemplates = state => R.compose(\n R.sortBy(R.prop('content')),\n getTemplatesByType,\n)(state, 4);\n\nexport const getRecommendedTemplates = (energy, disease, excludedKingdsFood, state, editRight) => {\n const getFilter = (kindsFood, d) => R.compose(\n R.filter(R.propSatisfies((value = []) => {\n if (R.isEmpty(value) && !R.isEmpty(kindsFood)) {\n return false;\n }\n\n const intersection = R.intersection(kindsFood, value);\n\n return R.length(intersection) === R.length(value);\n }, 'custom_спец_виды_питания')),\n R.filter(R.propSatisfies((value = []) => {\n if (R.isEmpty(value) && !R.isEmpty(d)) {\n return false;\n }\n\n const intersection = R.intersection(d, value);\n\n return R.length(intersection) === R.length(value);\n }, 'custom_прописано_при')),\n );\n\n const namesTemplatesByTypes = {\n 1: 'личные',\n 2: 'учреждения',\n };\n const items = R.unnest([\n getTemplatesByType(state, 1),\n getTemplatesByType(state, 2),\n getTemplatesByType(state, 3),\n ]);\n\n const templates = R.compose(\n R.sortBy(R.prop('content')),\n R.map(R.assoc('withDelete', false)),\n R.map(R.assoc('withEdit', editRight)),\n R.filter(R.propSatisfies(prop => !prop || prop <= energy, 'custom_спк__от')),\n R.filter(R.propSatisfies(prop => !prop || prop >= energy, 'custom_спк__до')),\n R.map(item => ({\n ...item,\n label: namesTemplatesByTypes[item.custom_тип_шаблона],\n })),\n )(items);\n\n let result = getFilter(excludedKingdsFood, disease)(templates);\n\n if (R.isEmpty(result)) {\n result = getFilter([], disease)(templates);\n }\n\n if (R.isEmpty(result)) {\n result = getFilter(excludedKingdsFood, [])(templates);\n }\n\n if (R.isEmpty(result)) {\n result = getFilter([], [])(templates);\n }\n\n return result;\n};\n\nexport const getRestTemplates = (energy, disease, excludedKingdsFood, state, editRight) => {\n const recommended = R.compose(\n R.pluck('key'),\n getRecommendedTemplates,\n )(energy, disease, excludedKingdsFood, state);\n\n return R.compose(\n R.sortBy(R.prop('content')),\n R.map(R.assoc('withDelete', false)),\n R.map(R.assoc('withEdit', editRight)),\n R.reject(item => R.contains(item.key, recommended)),\n getSystemTemplates,\n )(state);\n};\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport ReactModal from 'react-modal';\n\nimport styles from './Modal.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Modal extends PureComponent {\n static propTypes = {\n children: PropTypes.node,\n isOpen: PropTypes.bool, // eslint-disable-line\n withClose: PropTypes.bool,\n onAfterClose: PropTypes.func,\n onRequestClose: PropTypes.func,\n };\n\n static defaultProps = {\n children: undefined,\n isOpen: false,\n withClose: false,\n onAfterClose: () => {},\n onRequestClose: () => {},\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.isOpen && !nextProps.isOpen) {\n setTimeout(() => {\n this.props.onAfterClose();\n }, 350);\n }\n }\n\n render() {\n const { onAfterClose, ...props } = this.props\n\n return (\n
\n \n {this.props.withClose &&\n \n }\n\n {this.props.children}\n \n
\n );\n }\n}\n","export { default } from './SelectConnected';\n","import * as R from \"ramda\";\nimport memoizee from \"memoizee\";\n\nimport { appKey } from \"config\";\n\nimport { getItem, getItemsArray } from \"redux/hor/module/selectors\";\nimport getKeyInfo from \"utils/getKeyInfo\";\n\nexport const getItemsList = (state, country) =>\n R.compose(\n memoizee(\n R.map((item) => ({\n ...item,\n value: item.key,\n label: item.custom_наименование,\n }))\n ),\n R.sortWith([\n R.descend((item) => (R.isEmpty(item.custom_from_bad) ? 0 : 1)),\n R.ascend(R.prop(\"custom_наименование\")),\n ]),\n R.filter((item) => {\n return !country || item.custom_страны.includes(country);\n }),\n getItemsArray\n )(state);\n\nexport const getProductsByGroups = R.compose(\n memoizee(R.groupBy(R.prop(\"custom_производитель\"))),\n getItemsList\n);\n\nexport const getIsCompositionCalcing = R.compose(\n R.propOr(false, `${appKey}ts9c4c3c1r8`),\n getItem\n);\n\nexport const getSetTechcard = memoizee(\n (key, state) => {\n return R.compose(\n R.map((key) => {\n const item = getItem(key, state);\n\n if (item) {\n const id = getKeyInfo(item.key).record;\n return {\n id,\n name: item.custom_наименование,\n href: `/catalog/supplement/${id}`,\n };\n }\n\n return null;\n }),\n R.propOr([], \"custom_from_bad\"),\n getItem\n )(key, state);\n },\n { length: 4 }\n);\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeWithUndo,\n} = generator({\n name: 'dietarySupplement',\n tableId: 157,\n parseItem: R.evolve({\n custom_производитель: R.propOr(null, 'key'),\n custom_лекарственная_форма: R.propOr(null, 'value'),\n custom_пол: R.propOr(0, 'value'),\n custom_from_bad: R.compose(\n R.pluck('key'),\n R.defaultTo([])\n ),\n custom_страны: R.compose(\n R.pluck('key'),\n R.defaultTo([])\n )\n }),\n});\n\nexport const fetchItem = fetch;\nexport const fetchCatalogList = fetchWithView(fetch, 'ts5c157cs9r572');\nexport const fetchList = createAction('DIETARY_SUPPLEMENT_FETCH');\nexport const fetchListSuccess = createAction('DIETARY_SUPPLEMENT_FETCH_SUCCESS');\nexport const fetchListFailure = createAction('DIETARY_SUPPLEMENT_FETCH_FAILURE');\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n removeWithUndo,\n};\n\nexport {\n getItemById,\n getKeyById,\n getItems,\n getItem,\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItemsList,\n getProductsByGroups,\n getIsCompositionCalcing,\n getSetTechcard,\n} from './selectors';\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","import * as R from \"ramda\";\nimport memoizee from \"memoizee\";\n\nimport { getItemsArray } from \"redux/hor/module/selectors\";\n\nexport const getItems = memoizee(\n R.compose(\n R.map((item) => ({\n label: item.custom_название,\n value: item.key,\n localization: item.custom_элементы_локализации,\n })),\n getItemsArray\n ),\n { max: 1 }\n);\n","import generator from \"redux/hor/module\";\nimport fetchWithView from \"redux/utils/fetchWithView\";\n\nconst { reducer, fetch } = generator({\n name: \"Countries\",\n tableId: 104,\n});\n\nexport const fetchList = fetchWithView(fetch, \"ts5c104cs9r301\", {\n useLS: true,\n});\n\nexport { getItems } from \"./selectors\";\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { attr, Model, fk } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport convertFromServerTimeZoneToCurrentTimeZone\n from 'utils/convertFromServerTimeZoneToCurrentTimeZone';\n\nconst {\n reducer,\n\n fetch,\n save,\n saveSuccess,\n} = generator({\n name: 'SubscriptionOperation',\n tableId: 123,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_счет: R.propOr(null, 'url'),\n custom_операция: R.propOr(null, 'key'),\n custom_тарифный_план: R.propOr(null, 'key'),\n custom_дата_для_однодневной: convertFromServerTimeZoneToCurrentTimeZone,\n }),\n});\n\nexport default class SubscriptionOperation extends Model {\n static modelName = 'SubscriptionOperation';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(),\n custom_currentstatus: attr(),\n custom_ordersumamount: attr(),\n custom_ordersumrequired: attr(),\n custom_дата_для_однодневной: attr(),\n custom_дата_операции: attr(),\n custom_значение_операции: attr(),\n custom_операция: attr(),\n custom_промокод: attr(),\n custom_счет: attr(),\n custom_ordernumber: attr(),\n custom_customernumber: attr(),\n custom_signaturevalue: attr(),\n custom_тарифный_план: fk('SubscriptionDay', 'operations'),\n }\n\n static reducer = reducer;\n}\n\nexport {\n fetch,\n save,\n saveSuccess,\n};\n\nexport const renewal = createAction('SUBSCRIPTIONOPERATIONS__RENEWAL');\nexport const cancel = createAction('SUBSCRIPTIONOPERATIONS__CANCEL');\nexport const changeFutureOneDayDate =\n createAction('SUBSCRIPTIONOPERATIONS__CHANGE_FUTURE_ONE_DAY_DATE');\nexport { default as saga } from './saga';\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItemsByCountry = memoizee(\n (city, state) => R.compose(\n R.map(item => ({\n label: item.custom_название,\n value: item.key,\n })),\n R.filter(R.propEq('custom_страна', city)),\n getItemsArray,\n )(state),\n { max: 1 },\n);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Cities',\n tableId: 105,\n parseItem: R.evolve({\n custom_страна: R.propOr(null, 'key'),\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c105cs9r300', {\n useLS: true,\n});\n\nexport {\n getItemsByCountry,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { attr, Model } from 'redux-orm';\nimport { createAction } from 'redux-act';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\nimport convertFromServerTimeZoneToCurrentTimeZone from 'utils/convertFromServerTimeZoneToCurrentTimeZone';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n removeWithUndoSuccess,\n} = generator({\n name: 'Supplement',\n tableId: 158,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n ___createddate: convertFromServerTimeZoneToCurrentTimeZone,\n }),\n});\n\nexport default class Supplement extends Model {\n static modelName = 'Supplement';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___createddate: attr(),\n ___parent: attr(),\n custom_рекомендации: attr(),\n custom_автогенерация: attr(),\n }\n\n static reducer = reducer;\n\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const saveManual = createAction('SUPPLEMENT__SAVE_MANUAL');\nexport const saveAuto = createAction('SUPPLEMENT__SAVE_AUTO');\nexport const autogenerateButton = createAction('SUPPLEMENT__AUTOGENERATE_BUTTON');\nexport const fetchList = fetchWithView(fetch, 'ts5c158cs9r573');\nexport const fetchItem = fetchWithView(fetch, 'ts5c158cs6r566');\n\nexport {\n fetch,\n fetchSuccess,\n\n create,\n save,\n saveSuccess,\n\n removeWithUndo,\n removeWithUndoSuccess,\n};\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'custom_role'),\n);\n","import { getRoleRights } from \"redux/modules/roles\";\nimport { getKeyById } from \"redux/modules/rights\";\nimport getUserRole from \"../getUserRole\";\n\nconst rights = {\n INSTITUTION_ADMINISTER: 3556,\n INSTITUTION_SUBSCRIBE: 3557,\n USER_CONTROL: 3558,\n PATIENT_RATION: 3560,\n PATIENT_REGISTER: 3561,\n PATIENT_DELETE: 3562,\n PATIENT_RECEPTION: 3563,\n PATIENT_PRINT: 18705693,\n} as const;\n\ntype Right = keyof typeof rights;\n\nexport function getUserRights(state) {\n const role = getUserRole(state);\n\n return getRoleRights(role, state.roles) as { [key in Right]?: boolean };\n}\n\nexport function getUserRight(right: Right, state) {\n const rightId = rights[right];\n\n if (!rightId) {\n throw new Error(\"Right should be one of list\");\n }\n\n const rightKey = getKeyById(rightId, state.rights);\n const userRights = getUserRights(state);\n\n return userRights[rightKey] || false;\n}\n","import moment from 'moment';\n\nconst convertFromServerTimeZoneToCurrentTimeZone = value => {\n if (!value) {\n return value;\n }\n\n const timeDifference = new Date().getTimezoneOffset() + 180\n const date = moment(value).add(-timeDifference, 'minutes').format();\n\n return date;\n}\n\nexport default convertFromServerTimeZoneToCurrentTimeZone;","import { createAction, createReducer } from 'redux-act';\nimport { LOCATION_CHANGE } from 'react-router-redux';\n\nimport * as R from 'ramda';\n\nconst initialState = {};\n\nexport const setNotification = createAction('NOTIFICATION__SET_NOTIFICATION');\n\nconst handleSetNotification = (state, payload) => {\n const types = ['isProcess', 'isDone', 'isFailedNetwork', 'isFailed', 'isInvalid', 'isRemove', 'isNextReception', 'isNpa', 'isInfo'];\n\n return R.reduce((acc, status) => {\n const action = payload[status];\n\n if (action !== undefined) {\n const lens = R.lensProp(status);\n return R.set(lens, action, acc);\n }\n return acc;\n }, state, types);\n};\n\nconst handleLocationChange = state =>\n handleSetNotification(state, {\n isProcess: false,\n isDone: false,\n isFailed: false,\n isRemove: false,\n isNpa: false\n });\n\nconst reducer = createReducer((on) => {\n on(setNotification, handleSetNotification);\n on(LOCATION_CHANGE, handleLocationChange);\n}, initialState);\n\nexport default reducer;\n","import cookie from 'react-cookie';\n\nfunction getTokenInfo() {\n const token = cookie.load('token');\n const domain = cookie.load('domain');\n const remember = cookie.load('tokenRemember') === 'true';\n const userAKey = cookie.load('userAKey');\n const profileKey = cookie.load('profileKey');\n\n if (!token) {\n return undefined;\n }\n\n return {\n token,\n domain,\n remember,\n userAKey,\n profileKey,\n };\n}\n\nfunction saveTokenInfo({ auth }) {\n if (auth.anonymous) {\n return;\n }\n\n\n const halfHour = 30 * 60 * 1000;\n const timeLiveToken = 999 * 2 * halfHour;\n\n const opt = {\n expires: new Date(Date.now() + timeLiveToken),\n path: '/',\n };\n\n if (auth.token) {\n cookie.save('token', auth.token, opt);\n cookie.save('tokenRemember', auth.remember, opt);\n cookie.save('userAKey', auth.userAKey, opt);\n cookie.save('profileKey', auth.profileKey, opt);\n\n if (auth.domain) {\n cookie.save('domain', auth.domain, opt);\n }\n } else {\n cookie.remove('token', opt);\n cookie.remove('tokenRemember', opt);\n cookie.remove('userAKey', opt);\n cookie.remove('profileKey', opt);\n cookie.remove('isSupport', opt);\n cookie.remove('APP', opt);\n }\n}\n\n\nexport { getTokenInfo, saveTokenInfo };\n","import * as R from 'ramda';\n\nimport { getErrorText } from 'utils/validation';\n\nconst apiNameMap = {\n EmptyRequiredFieldException: 'required',\n Cat_ObjectName_DuplicateValueException: 'unique',\n};\n\nconst fieldNameMap = {\n custom_login_save: 'custom_login',\n};\n\nconst defaultRules = {\n custom_login: {\n unique: {\n errorText: 'Пользователь с таким логином уже зарегистрирован',\n },\n },\n};\n\nexport default function validateFromResponse(response = {}, map = fieldNameMap, rules = defaultRules) {\n const { data = {} } = response;\n let { exception = {} } = data;\n\n\n if (R.contains('Пароль подтверждения неверен', exception.message || '') || R.contains('Пароль не правильный', exception.message || '')) {\n exception = {\n fieldName: 'custom.requared_password',\n fieldMessage: 'Введен неверный пароль',\n };\n }\n\n const { type, fieldMessage = '', fieldName = '' } = exception || {};\n const field = R.compose(\n item => R.propOr(item, item, map),\n R.replace(/\\./g, '_'),\n R.defaultTo(''),\n )(fieldName);\n\n if (!field) {\n return null;\n }\n\n return getErrorText(rules)({\n [field]: apiNameMap[type] || fieldMessage,\n });\n}\n","import * as R from 'ramda';\nimport { stopSubmit } from 'redux-form';\nimport { put } from 'redux-saga/effects';\nimport { setNotification } from 'redux/modules/notification';\nimport validateFromResponse from 'utils/validateFromResponse';\n\nimport getErrorTextFromResponse from '../getErrorTextFromResponse';\n\nconst parse = R.compose(\n R.map(put),\n R.reject(R.isNil),\n)\n\nexport default function getErrorFromResponse(error, form, type = 'global') {\n const { response = {} } = error;\n const formEffect = form ? stopSubmit(form, {\n _error: true,\n }) : undefined;\n\n if (error.message === 'Network Error') {\n return parse([\n setNotification({\n type,\n isProcess: false,\n isFailedNetwork: {\n exception: 'Error',\n },\n }),\n formEffect,\n ]);\n }\n\n const validationError = validateFromResponse(response);\n\n if (form && validationError) {\n return parse([stopSubmit(form, validationError)]);\n }\n\n const exception = getErrorTextFromResponse(error);\n\n return parse([\n setNotification({\n type,\n isProcess: false,\n isFailed: {\n exception,\n },\n }),\n formEffect,\n ]);\n}\n","import * as R from 'ramda';\n\nfunction roundNumber(precision, value) {\n if (typeof value !== 'number' || typeof precision !== 'number') {\n throw new Error('Value and precision should be number');\n }\n\n const accuracy = 10 ** precision;\n return Math.round(value * accuracy) / accuracy;\n}\n\nexport default R.curry(roundNumber);\n","import { attach, createEffect, createStore } from \"effector\";\nimport { sortBy } from \"remeda\";\n\nimport { request } from \"utils/api\";\n\nexport type Group = {\n group_id: string;\n name: string;\n patients?: string[];\n};\n\nexport const $groups = createStore([]);\n\nexport const $sortedGroups = $groups.map(sortBy((group) => group.name));\n\nexport const createGroupFx = createEffect({\n handler: async (group) => {\n const response = await request.post(\n `/c105a902t212r/json/v2`,\n {\n parameters: {\n name: group,\n },\n },\n {\n headers: {\n Function: \"AddGroup\",\n },\n }\n );\n\n return response.data;\n },\n});\n\nexport const updateGroupFx = createEffect<\n { id: string; name: string },\n Group[]\n>({\n handler: async ({ id, name }) => {\n const response = await request.post(\n `/c105a902t212r/json/v2`,\n {\n parameters: {\n group_id: id,\n name,\n },\n },\n {\n headers: {\n Function: \"UpdateGroup\",\n },\n }\n );\n\n return response.data;\n },\n});\n\nexport const removeGroupFx = createEffect({\n handler: async (id) => {\n const response = await request.post(\n `/c105a902t212r/json/v2`,\n {\n parameters: {\n group_id: id,\n },\n },\n {\n headers: {\n Function: \"RemoveGroup\",\n },\n }\n );\n\n return response.data;\n },\n});\n\nexport const removePatientFromGroup = attach({\n source: $groups,\n mapParams: (patientKey: string, groups) => ({\n patientKey,\n groupId: groups.find((group) => group.patients?.includes(patientKey))\n ?.group_id!,\n }),\n effect: createEffect<\n {\n patientKey: string;\n groupId: string;\n },\n Group[]\n >({\n handler: async ({ patientKey, groupId }) => {\n const response = await request.post(\n `/c105a902t212r/json/v2`,\n {\n parameters: {\n group_id: groupId,\n patient_key: patientKey,\n },\n },\n {\n headers: {\n Function: \"RemoveFromGroup\",\n },\n }\n );\n\n return response.data;\n },\n }),\n});\n\nexport const addPatientToGroup = createEffect<\n {\n patientKey: string;\n groupId: string | null;\n },\n Group[]\n>({\n handler: async ({ patientKey, groupId }) => {\n const response = await request.post(\n `/c105a902t212r/json/v2`,\n {\n parameters: {\n group_id: groupId,\n patient_key: patientKey,\n },\n },\n {\n headers: {\n Function: \"AddToGroup\",\n },\n }\n );\n\n return response.data;\n },\n});\n\nexport const setPatientGroupFx = createEffect<\n {\n patientKey: string;\n groupId: string | null;\n },\n Group[]\n>({\n handler: async ({ patientKey, groupId }) => {\n if (groupId === null) {\n return removePatientFromGroup(patientKey);\n }\n\n return addPatientToGroup({\n patientKey,\n groupId,\n });\n },\n});\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUserIsLight from '../getUserIsLight';\n\nexport default createSelector(\n getUserIsLight,\n\n (isLight) => {\n if (isLight) {\n return 1;\n }\n\n return 2;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItem } from 'redux/modules/institutions';\n\nimport getInstitutionKey from '../getInstitutionKey';\n\nexport default createSelector(\n getInstitutionKey,\n R.path(['institutions']),\n\n getItem,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(false, 'custom_ред_сис_шаблонов'),\n);\n","import * as R from 'ramda';\n\nimport { getItem } from 'redux/hor/module/selectors';\n\nexport const getInstitutionKey = R.compose(\n R.propOr(null, '___territory'),\n getItem,\n);\n\nexport const getProfileKey = R.compose(\n R.propOr(null, '___profile'),\n getItem,\n);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n} = generator({\n name: 'user',\n parseItem: R.evolve({\n ___territory: R.propOr(null, 'key'),\n ___profile: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetch,\n fetchSuccess,\n};\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getInstitutionKey,\n getProfileKey,\n} from './selectors';\n\nexport default reducer;\n","import { getList } from 'redux/modules/staff/selectors';\n\nexport default getList;\n","import * as R from 'ramda';\nimport { createAction, createReducer } from 'redux-act';\n\nconst initialState = {\n serverUnderMaintenance: false,\n};\n\nexport const ping = createAction('PING__PING');\nexport const pingSuccess = createAction('PING__PING_SUCCESS');\nexport const pingFailure = createAction('PING__PING_FAILURE');\n\nexport const handlePingSuccess = R.assoc('serverUnderMaintenance', false);\n\nexport const handlePingFailure = (state) => {\n if (state.serverUnderMaintenance) {\n return state;\n }\n\n return {\n ...state,\n serverUnderMaintenance: true,\n };\n};\n\nexport default createReducer({\n [pingSuccess]: handlePingSuccess,\n [pingFailure]: handlePingFailure,\n}, initialState);\n","import * as R from 'ramda';\n\nconst ignoreClear = [\n /conclusion-collapsed_.+/,\n /showChart_.+/,\n /useDietanamnez_.+/,\n];\n\nexport const setItem = (key, value) => {\n const item = JSON.stringify(value);\n try {\n localStorage.setItem(key, item);\n } catch (e) {\n // continue regardless of error\n }\n};\n\n\nexport const getItem = (key) => {\n const itemJson = localStorage.getItem(key);\n\n if (!itemJson) {\n return null;\n }\n\n return JSON.parse(itemJson);\n};\n\nexport const clear = () => {\n R.compose(\n R.forEach(key => localStorage.removeItem(key)),\n R.reject(value => R.any(R.test(R.__, value), ignoreClear)),\n R.keys,\n )(localStorage);\n};\nconst TTL = 72 * 60 * 60 * 1000; // время жизни для регистрации на селфтесте\nexport const setLSItemTTL = (key, value, ttl = TTL) => {\n\n const now = new Date();\n const item = {\n value: value,\n expiry: now.getTime() + ttl\n }\n try {\n localStorage.setItem(key, JSON.stringify(item))\n } catch (e) {\n\n }\n}\n\nexport const getLSItemTTL = (key) => {\n const itemStr = localStorage.getItem(key)\n\n if (!itemStr) {\n return null\n }\n const item = JSON.parse(itemStr)\n const now = new Date()\n\n if (now.getTime() > item.expiry) {\n\n localStorage.removeItem(key)\n return null\n }\n return item.value\n}\n","import * as R from 'ramda';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n} = generator({\n name: 'PatientAnalysis',\n tableId: 19,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_вид_анализа: R.prop('key'),\n }),\n});\n\nexport default class PatientAnalysis extends Model {\n static modelName = 'PatientAnalysis';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(), // TODO: fk to patient\n custom_вид_анализа: fk('AnalysisType'),\n custom_дата: attr(),\n custom_дата_текстом: attr(),\n }\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchAnalysis = fetchWithView(fetch, 'common');\n\nexport {\n fetchSuccess,\n create,\n save,\n saveSuccess,\n removeWithUndo,\n};\n","import * as R from 'ramda';\nimport { put, all, takeEvery } from 'redux-saga/effects';\n\nimport isLocalKey from 'utils/isLocalKey';\n\nimport { save } from './';\nimport { save as saveDietanamnezes } from '../dietanamnez';\n\nfunction* saveFlow(action) {\n const key = R.pathOr(null, ['data', '___parent'], action.payload);\n\n if (isLocalKey(key)) {\n yield put(saveDietanamnezes({\n key,\n }));\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(save, saveFlow),\n ]);\n}\n","import * as R from 'ramda';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n create,\n save,\n remove,\n} = generator({\n name: 'DietanamnezItem',\n tableId: 65,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_добавить_исключить: R.propOr(null, 'value'),\n custom_блюдо: R.propOr(null, 'key'),\n custom_частота_употребления: R.propOr(null, 'key'),\n custom_эталонное_блюдо_для_фронта: R.propOr(null, 'key'),\n custom_список_блюд: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n }),\n});\n\nexport default class DietanamnezItem extends Model {\n static modelName = 'DietanamnezItem';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('Dietanamnez', 'items'),\n custom_добавить_исключить: attr(),\n custom_блюдо: attr(),\n custom_количество: attr(),\n custom_список_блюд: attr(),\n custom_частота_употребления: attr(),\n custom_строка_поиска: attr(),\n custom_эталонное_блюдо_для_фронта: attr(),\n }\n}\n\nexport {\n fetchSuccess,\n create,\n save,\n remove,\n};\n\nexport { default as saga } from './saga.js';\n","import { createAction, createReducer } from 'redux-act';\n\nconst initialState = {};\n\nexport const checkPromo = createAction('SUBSCRIPTION_PROMOCODE_CHECK_PROMO');\nexport const setPromo = createAction('SUBSCRIPTION_PROMOCODE_SET_PROMO');\nexport const resetPromo = createAction('SUBSCRIPTION_PROMOCODE_RESET_PROMO');\n\nconst handleSetPromo = (state, payload) => ({\n ...state,\n ...payload,\n});\n\nconst handleResetPromo = () => initialState;\n\nexport default createReducer({\n [setPromo]: handleSetPromo,\n [resetPromo]: handleResetPromo,\n}, initialState);\n","import * as R from 'ramda';\nimport memoize from 'memoizee';\nimport moment from 'moment';\n\nconst formatItem = (item) => {\n const [lastname, firstname, midname] = item.custom_диетолог.label.split(' ');\n\n return {\n author: item.custom_диетолог.key,\n user: {\n lastname,\n firstname,\n midname,\n },\n patients: {\n all: R.defaultTo(0, item.custom_пациенты),\n added: R.defaultTo(0, item.custom_пациенты_за_день),\n },\n reception: {\n all: R.defaultTo(0, item.custom_приемов_всего),\n added: R.defaultTo(0, item.custom_приемов_за_день),\n },\n analysis: {\n all: R.defaultTo(0, item.custom_анализы_всего),\n added: item.custom_анализы_за_день___добавлено - item.custom_анализы_за_день___удалено,\n },\n anamnesis: {\n all: R.defaultTo(0, item.custom_диетанамнезы_всего),\n added: R.defaultTo(0, item.custom_диетанамнезы_за_день),\n },\n rations: {\n all: R.defaultTo(0, item.custom_рационы_всего),\n added: item.custom_рационы_за_день___добавлено - item.custom_рационы_за_день___удалено,\n },\n print: {\n all: item.custom_печать_всего,\n added: item.custom_печать_за_день,\n },\n };\n};\n\nconst dayFields = [\n 'custom_пациенты_за_день',\n 'custom_приемов_за_день',\n 'custom_анализы_за_день___добавлено',\n 'custom_анализы_за_день___удалено',\n 'custom_диетанамнезы_за_день',\n 'custom_рационы_за_день___добавлено',\n 'custom_рационы_за_день___удалено',\n 'custom_печать_за_день',\n];\nconst evolveConfig = R.reduce((acc, item) => ({\n ...acc,\n [item]: R.always(0),\n}), {}, dayFields);\nconst getPrevData = item => R.evolve({\n custom_пациенты: R.subtract(R.__, item.custom_пациенты_за_день),\n custom_приемов_всего: R.subtract(R.__, item.custom_приемов_за_день),\n custom_диетанамнезы_всего: R.subtract(R.__, item.custom_диетанамнезы_за_день),\n custom_печать_всего: R.subtract(R.__, item.custom_печать_за_день),\n custom_анализы_всего: R.subtract(\n R.__,\n item.custom_анализы_за_день___добавлено - item.custom_анализы_за_день___удалено,\n ),\n custom_рационы_всего: R.subtract(\n R.__,\n item.custom_рационы_за_день___добавлено - item.custom_рационы_за_день___удалено,\n ),\n}, item);\nconst initialGroup = {\n all: 0,\n added: 0,\n};\n\nconst getDayStatistic = memoize(\n (state, date, institution) => R.compose(\n R.map(formatItem),\n R.map((item) => {\n const isCurrent = moment(item.custom_data, moment.ISO_8601).format('DD.MM.YYYY') === date;\n\n if (isCurrent) {\n return item;\n }\n\n return R.evolve(evolveConfig, item);\n }),\n R.map(R.path(['max', 'fields'])),\n R.filter(R.pathEq(['max', 'fields', 'custom_учреждение_оригинальное', 'key'], institution)),\n R.propOr([], 'items'),\n )(state),\n { max: 1 },\n);\n\nconst mergeByUser = (start, end) =>\n R.compose(\n R.merge(end),\n R.mapObjIndexed((val, key) => ({\n all: val.all,\n added: val.all - R.pathOr(0, [key, 'all'], start),\n })),\n R.pick([\n 'patients',\n 'reception',\n 'analysis',\n 'anamnesis',\n 'rations',\n 'print',\n ]),\n )(end);\n\nconst getMonthStatistic = memoize(\n (state, institution) => R.compose(\n R.reject(R.isNil),\n R.map(({ max, min }) => {\n if (!min && !max) {\n return null;\n }\n\n const prevData = getPrevData(min ? min.fields : max.fields);\n\n return mergeByUser(formatItem(prevData), formatItem(max.fields));\n }),\n R.filter(R.pathEq(['max', 'fields', 'custom_учреждение_оригинальное', 'key'], institution)),\n R.propOr([], 'items'),\n )(state),\n { max: 1 },\n);\n\nexport const getEndDate = (date) => {\n const startOfMonth = moment(date, 'MM.YYYY');\n const endOfMonth = startOfMonth.endOf('month');\n const yesterday = moment().add(-1, 'day');\n return endOfMonth.isBefore(yesterday) ? endOfMonth : yesterday;\n};\n\nexport const getStatisticByInstitution = (state, date, institution) => {\n if (date.length !== 7) {\n return getDayStatistic(state, date, institution);\n }\n\n const startOfMonth = moment(date, 'MM.YYYY');\n const endOfMonth = startOfMonth.endOf('month');\n const yesterday = moment().add(-1, 'day');\n\n if (endOfMonth.isAfter(yesterday) && !endOfMonth.isSame(yesterday, 'month')) {\n return null;\n }\n\n return getMonthStatistic(state, institution);\n};\n\nconst mergeTotal = R.reduce((resultSum, tableTrValue) => R.mapObjIndexed((value, key) => {\n return {\n all: value.all + R.pathOr(0, [key, 'all'], tableTrValue),\n added: value.added + R.pathOr(0, [key, 'added'], tableTrValue),\n }\n}, resultSum), {\n patients: initialGroup,\n reception: initialGroup,\n analysis: initialGroup,\n anamnesis: initialGroup,\n rations: initialGroup,\n print: initialGroup,\n});\n\nexport const getStatisticTotal = memoize(\n table => R.isEmpty(table) ? {} : ({\n user: 'Всего',\n ...mergeTotal(table),\n }),\n { max: 1 },\n);\n\nexport const getStatisticData = (state, date, institution) => {\n if (institution !== 'all') {\n return getStatisticByInstitution(state, date, institution);\n }\n\n return R.compose(\n R.reject(R.isNil),\n R.map(({ key, label, inviteKey }) => {\n const data = R.compose(\n getStatisticTotal,\n getStatisticByInstitution,\n )(state, date, key);\n if (R.isEmpty(data)) {\n return null;\n }\n return {\n ...data,\n user: {\n firstname: label.replace(/Lite /g, ''), // TODO костыль пока нет бэка. По идее ничего не нужно\n inviteKey\n },\n };\n }),\n R.uniqBy(R.prop('key')),\n R.reject(R.isNil),\n R.map(R.path(['max', 'fields', 'custom_учреждение_оригинальное'])),\n R.propOr([], 'items'),\n )(state);\n};\n\nexport const getIsUserCanSee = R.compose(\n R.lt(1),\n R.length,\n R.uniqBy(R.prop('key')),\n R.reject(R.isNil),\n R.map(R.path(['max', 'fields', 'custom_учреждение_оригинальное'])),\n R.propOr([], 'items'),\n);\n","import { createAction, createReducer } from 'redux-act';\n\nexport const fetchData = createAction('STATISTIC__FETCH_DATA');\nexport const fetchDataSuccess = createAction('STATISTIC__FETCH_DATA_SUCCESS');\nexport const fetchDataFailure = createAction('STATISTIC__FETCH_DATA_FAILURE');\nexport const deleteDataRow = createAction('STATISTIC__DELETE_DATA');\nexport const toggleDelete = createAction('STATISTIC__DELETING_DATA')\n\nconst reducer = createReducer({\n [toggleDelete]: (state, payload) => {\n\n return {\n ...state,\n deleting: payload\n }\n },\n [fetchDataSuccess]: (state, payload) => {\n const { response, invites, me } = payload;\n const mergeDAta = response.data.data.map(item => {\n const { max } = item;\n invites.forEach(invite => {\n if (max.fields.custom_диетолог.label === invite.fields.custom_емейл_приглашенного && me !== invite.fields.___owner.key) {\n item.max.fields.custom_учреждение_оригинальное.inviteKey = invite.key;\n }\n })\n return item\n })\n return {\n ...state,\n items: mergeDAta,\n };\n },\n}, {\n items: [],\n deleting: null\n});\n\nexport {\n getEndDate,\n getStatisticData,\n getStatisticTotal,\n getIsUserCanSee,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\n\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Dietanamnez', 'dietanamnezPublic', 'renderPrint', 'patientId']),\n R.path(['routeParams', 'patientId']),\n R.path(['Catalog', 'patientInWork', 'patientId']),\n\n (zero, main, secondary) => zero || main || secondary,\n);\n","import options from './defaultOptions';\n\nexport const userFormPreset = {\n validation: {\n custom_фото: options.logo,\n custom_firstname: {\n ...options.username,\n required: true,\n },\n custom_lastname: {\n ...options.username,\n required: true,\n },\n custom_midname: options.username,\n custom_sexint: {},\n custom_должность: options.role,\n custom_мобильный_телефон: {\n required: true,\n ...options.phone,\n },\n custom_login: {\n ...options.email,\n unique: {\n errorText: 'Пользователь с таким логином уже зарегистрирован',\n },\n },\n },\n};\n\nexport const userFormLightPreset = {\n validation: {\n custom_фото: options.logo,\n custom_firstname: {\n ...options.username,\n required: true,\n },\n custom_lastname: {\n ...options.username,\n required: true,\n },\n custom_midname: options.username,\n custom_sexint: {},\n custom_должность: options.role,\n custom_мобильный_телефон: {\n required: true,\n ...options.phone,\n },\n custom_номер_нпа: {\n required: true,\n ...options.npa,\n },\n custom_login: {\n ...options.email,\n unique: {\n errorText: 'Пользователь с таким логином уже зарегистрирован',\n },\n },\n },\n}\n\nexport const instituteFormPreset = {\n validation: {\n custom_логотип: options.logo,\n custom_название: {\n ...options.agency,\n required: true,\n },\n custom_тип: {},\n custom_филиал: {},\n custom_город: {\n required: true,\n },\n custom_улица: {\n ...options.street,\n required: true,\n },\n custom_дом: {\n ...options.house,\n required: true,\n },\n custom_корпус: options.casehouse,\n// custom_телефон: options.phone,\n custom_эл_почта: {\n ...options.email,\n required: false,\n },\n },\n};\n","import { createAction, createReducer } from 'redux-act';\n\nconst initialState = {\n isLoading: false,\n};\n\nexport const loadingStart = createAction('LOADING_START');\nexport const loadingFinish = createAction('LOADING_FINISH');\n\nexport default createReducer({\n [loadingStart]: () => ({\n isLoading: true,\n }),\n [loadingFinish]: () => ({\n isLoading: false,\n }),\n}, initialState);\n","import * as R from 'ramda';\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nimport getUserIsLight from '../../selectors/getUserIsLight';\n\nexport const getElementsList = createOrmSelector(\n getUserIsLight,\n\n (session, isLight) => {\n const { Elements } = session;\n const filter = item => {\n return isLight ? item.custom_light : item.custom_used_in_pro\n };\n\n return Elements\n .filter(filter)\n .toRefArray()\n .concat(isLight ? {\n key: `${appKey}t28r0`,\n ___parent: null,\n custom_для_сортировки: 15,\n } : [])\n .map((item) => {\n\n if (!isLight) {\n return item;\n }\n\n if (item.key === `${appKey}t28r51554960` || item.key === `${appKey}t28r51554961`) {\n return R.compose(\n R.assoc('___parent', `${appKey}t28r3620`),\n R.assoc('custom_для_сортировки', 25),\n )(item);\n }\n\n if (item.key === `${appKey}t28r2038859`) {\n return R.compose(\n R.assoc('___parent', `${appKey}t28r3620`),\n R.assoc('custom_для_сортировки', 35),\n )(item);\n }\n\n if (item.key === `${appKey}t28r225`) {\n return R.compose(\n R.assoc('___parent', `${appKey}t28r3620`),\n R.assoc('custom_для_сортировки', 50),\n )(item);\n }\n\n if (item.key === `${appKey}t28r236`) {\n return R.compose(\n R.assoc('___parent', `${appKey}t28r3620`),\n R.assoc('custom_для_сортировки', 60),\n )(item);\n }\n\n const needChangeParent = R.propSatisfies(\n value => R.includes(value, [`${appKey}t28r221`, `${appKey}t28r222`, `${appKey}t28r223`]),\n '___parent',\n item,\n );\n\n if (needChangeParent) {\n const indexes = {\n [`${appKey}t28r12493202`]: 1,\n [`${appKey}t28r12493207`]: 2,\n [`${appKey}t28r12523083`]: 3,\n [`${appKey}t28r12497601`]: 4,\n [`${appKey}t28r12497603`]: 5,\n [`${appKey}t28r12523027`]: 6,\n [`${appKey}t28r12520074`]: 7,\n [`${appKey}t28r3582`]: 10,\n [`${appKey}t28r3583`]: 20,\n [`${appKey}t28r2038901`]: 25,\n [`${appKey}t28r228`]: 30,\n [`${appKey}t28r231`]: 40,\n [`${appKey}t28r233`]: 50,\n [`${appKey}t28r11374694`]: 60,\n };\n\n return R.compose(\n R.assoc('custom_для_сортировки', indexes[item.key]),\n R.assoc('___parent', `${appKey}t28r0`),\n )(item);\n }\n\n return item;\n });\n },\n);\n\nexport const getValues = createCachedOrmSelector(\n (state, props) => props.chartId || 'common',\n (state, props) => props.data,\n (state, props) => props.includeFieldName,\n (state, props) => props.useShortName,\n getElementsList,\n getUserIsLight,\n\n (session, chartId, data = {}, includeFieldName, useShortName, items, isLight) => {\n const groups = R.filter(R.propEq('___parent', null), items);\n\n const parseItems = (level, i) => R.compose(\n R.unnest,\n R.map((item) => {\n const subitems = R.filter(R.propEq('___parent', item.key), items);\n const parsedSubitems = parseItems(level + 1, subitems);\n const label = useShortName ?\n item.custom_сокращенное_наименование || item.custom_наименование :\n item.custom_наименование;\n\n const value = {\n ...(data || {})[item.key],\n element: item.key,\n label,\n size: R.prop('label', item.custom_ед_изм),\n nameField: includeFieldName ? item.key : undefined,\n sources: item.custom_источники,\n influence: item.custom_влияние,\n };\n\n if (level === 2 && isLight) {\n return [\n value,\n ...parsedSubitems,\n ];\n }\n\n return {\n ...value,\n subitems: parsedSubitems,\n };\n }),\n R.sortBy(R.prop('custom_для_сортировки')),\n )(i);\n\n return R.compose(\n R.reject(item => R.isEmpty(item.subitems)),\n parseItems\n )(1, groups);\n },\n);\n\nexport const getVisibleList = createOrmSelector(\n getElementsList,\n\n (session, items) => {\n const groups = R.compose(\n R.sortBy(R.prop('custom_для_сортировки')),\n R.filter(R.propEq('___parent', null)),\n )(items);\n\n const result = R.compose(\n R.unnest,\n R.unnest,\n R.map(item => {\n return R.compose(\n R.map(i => [i, ...R.filter(R.propEq('___parent', i.key), items)]),\n R.filter(R.propEq('___parent', item.key))\n )(items)\n }),\n )(groups);\n\n return result\n },\n);\n\nexport const getMineralsAndVitamins = createOrmSelector(\n (session) => {\n const { Elements } = session;\n\n const items = Elements\n .filter({\n ___parent: null,\n })\n .filter((item) => {\n const name = item.custom_наименование;\n\n return R.contains(name, ['Минералы', 'Витамины']);\n })\n .toModelArray()\n .reduce((m, i) => {\n const val = R.map(j => ({\n value: j.key,\n label: j.custom_наименование,\n }), i.items.toRefArray() || []);\n\n m[i.custom_наименование] = val; // eslint-disable-line no-param-reassign\n\n return m;\n }, {});\n\n return items;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n label: item.custom_наименование,\n value: item.key,\n hint: item.custom_описание_влияния,\n custom_специфическое_состояние: item.custom_специфическое_состояние,\n })),\n);\n\nexport const getSpecificConditions = createSelector(\n getItems,\n\n R.filter(R.prop('custom_специфическое_состояние')),\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Disease',\n tableId: 11,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c11cs9r20', {\n useLS: true,\n});\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItems,\n getSpecificConditions,\n} from './selectors';\n\nexport default reducer;\n","import { createSelector } from \"reselect\";\nimport * as R from \"ramda\";\n\nimport getUser from \"../getUser\";\n\nexport default createSelector(\n getUser,\n\n R.propOr(\"c105a902t104r5087852\", \"custom_страна\")\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getItems as getDiseaseItems,\n} from 'modules/Patient/redux/disease';\n\nexport default createSelector(\n R.path(['Patient', 'disease']),\n\n getDiseaseItems,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatientIllness from '../getPatientIllness';\nimport getIllnessList from '../getIllnessList';\nimport getPatientSpecificConditions from '../getPatientSpecificConditions';\n\nexport default createSelector(\n getPatientSpecificConditions,\n getPatientIllness,\n getIllnessList,\n\n (specificConditions, patientIllness, illnessList) => {\n const illness = R.compose(\n R.uniq,\n R.pluck('group'),\n R.filter(R.prop('group')),\n R.filter(item => R.contains(item.value, patientIllness)),\n )(illnessList);\n\n return [...illness, ...specificConditions];\n },\n);\n","import * as R from 'ramda';\n\nimport createSelector from 'redux/utils/createOrmSelector';\nimport getRationDays from '../getRationDays';\n\n// while removing the last day from a ration state.routeParams.dayId can contain a reference\n// to the removed day; in this case return the new last day\nexport default createSelector(\n (state, props = {}) => props.dayId || R.path(['routeParams', 'dayId'], state),\n getRationDays,\n\n (session, dayId, days) => {\n if (!dayId) {\n return dayId;\n }\n\n const result = Number(dayId);\n const maxDayId = days.length;\n return result <= maxDayId ? result : maxDayId;\n },\n);\n","import { ORM } from 'redux-orm';\nimport * as R from 'ramda';\n\nimport Elements from 'redux/modules/elements';\nimport Worker from 'redux/modules/staff';\nimport WorkerFlags from 'redux/modules/staffFlags';\nimport InstitutionSubscription from 'redux/modules/institutionSubscription';\nimport SubscriptionDay from 'redux/modules/subscriptionDays';\nimport SubscriptionOperation from 'redux/modules/subscriptionOperations';\nimport Partner from 'redux/modules/partner';\nimport Webinar from 'redux/modules/webinar';\nimport RegistrationLink from 'redux/modules/registrationLinks';\n\nimport AnalysisBlood from 'modules/Analyses/redux/modules/analysisBlood';\nimport AnalysisGenes from 'modules/Analyses/redux/modules/analysisGenes';\nimport AnalysisHair from 'modules/Analyses/redux/modules/analysisHair';\nimport AnalysisSalt from 'modules/Analyses/redux/modules/analysisSalt';\nimport AnalysisType from 'modules/Analyses/redux/modules/analysisType';\nimport AnalysisVitamin from 'modules/Analyses/redux/modules/analysisVitamin';\nimport ChemicalElement from 'modules/Analyses/redux/modules/chemicalElement';\nimport Gene from 'modules/Analyses/redux/modules/gene';\nimport Genotype from 'modules/Analyses/redux/modules/genotypes';\nimport PatientAnalysis from 'modules/Analyses/redux/modules/patientAnalysis';\nimport Vitamin from 'modules/Analyses/redux/modules/vitamin';\n\nimport Dietanamnez from 'modules/Dietanamnez/redux/modules/dietanamnez';\nimport DietanamnezFrequency from 'modules/Dietanamnez/redux/modules/dietanamnezFrequency';\nimport DietanamnezItem from 'modules/Dietanamnez/redux/modules/dietanamnezItem';\nimport DietanamnezPortion from 'modules/Dietanamnez/redux/modules/dietanamnezPortion';\nimport DietanamnezTiles from 'modules/Dietanamnez/redux/modules/dietanamnezTiles';\nimport TileImageMap from 'modules/Dietanamnez/redux/modules/tileImageMap';\n\nimport Ration from 'modules/Rations/redux/modules/ration';\nimport PatientsElements from 'modules/Rations/redux/modules/patientsElements';\nimport Day from 'modules/Rations/redux/modules/day';\nimport Supplement from 'modules/Supplement/redux/modules/supplement';\nimport SupplementDish from 'modules/Supplement/redux/modules/supplementDish';\n\nimport PatientReception from 'modules/Patient/redux/receptions';\n\nconst models = {\n 3: Gene,\n 6: Vitamin,\n 8: AnalysisType,\n 10: Genotype,\n 19: PatientAnalysis,\n 21: AnalysisGenes,\n 22: AnalysisVitamin,\n 23: ChemicalElement,\n 24: AnalysisBlood,\n 25: AnalysisHair,\n 27: AnalysisSalt,\n 28: Elements,\n 29: Day,\n 39: Ration,\n 44: DietanamnezFrequency,\n 49: DietanamnezTiles,\n 47: Worker,\n 65: DietanamnezItem,\n 66: DietanamnezPortion,\n 96: PatientsElements,\n 115: InstitutionSubscription,\n 119: SubscriptionDay,\n 123: SubscriptionOperation,\n 140: Dietanamnez,\n 158: Supplement,\n 160: SupplementDish,\n 171: TileImageMap,\n 172: PatientReception,\n 188: WorkerFlags,\n 192: Partner,\n 206: Webinar,\n 212: RegistrationLink,\n};\n\nconst orm = new ORM();\norm.register(...R.values(models));\n\nwindow.orm = orm;\n\nexport default orm;\n","import * as R from 'ramda';\nimport { fk, attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'bloodAnalysis',\n tableId: 24,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_химический_элемент: R.propOr(null, 'key'),\n custom_ед__изм: R.propOr(null, 'key'),\n }),\n});\n\nexport default class AnalysisBlood extends Model {\n static modelName = 'AnalysisBlood';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('PatientAnalysis'),\n custom_химический_элемент: fk('ChemicalElement'),\n custom_ед__изм: attr(),\n custom_факт: attr(),\n }\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import * as R from 'ramda';\nimport { fk, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'analysisGenes',\n tableId: 21,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_ген: R.propOr(null, 'key'),\n custom_генотип: R.propOr(null, 'key'),\n }),\n});\n\nexport default class AnalysisGenes extends Model {\n static modelName = 'AnalysisGenes';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('PatientAnalysis'),\n custom_ген: fk('Gene'),\n custom_генотип: fk('Genotype'),\n }\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import * as R from 'ramda';\nimport { fk, attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'analysisHair',\n tableId: 25,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_химический_элемент: R.propOr(null, 'key'),\n custom_ед__изм: R.propOr(null, 'key'),\n }),\n});\n\nexport default class AnalysisHair extends Model {\n static modelName = 'AnalysisHair';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('PatientAnalysis'),\n custom_химический_элемент: fk('ChemicalElement'),\n custom_ед__изм: attr(),\n custom_факт: attr(),\n }\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import * as R from 'ramda';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'analysisSalt',\n tableId: 27,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_химический_элемент: R.propOr(null, 'key'),\n }),\n});\n\nexport default class AnalysisSalt extends Model {\n static modelName = 'AnalysisSalt';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('PatientAnalysis'),\n custom_химический_элемент: fk('ChemicalElement'),\n custom_результат: attr(),\n }\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import * as R from 'ramda';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'analysisVitamin',\n tableId: 22,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_витамин: R.propOr(null, 'key'),\n custom_оценка: R.propOr(null, 'label'),\n }),\n});\n\nexport default class AnalysisVitamin extends Model {\n static modelName = 'AnalysisVitamin';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('PatientAnalysis'),\n custom_витамин: fk('Vitamin'),\n custom_оценка: attr(),\n }\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nexport const getNotesByPatient = createSelector(\n getItemsArrayByParent,\n\n R.identity,\n);\n","import * as R from 'ramda';\nimport { all, takeEvery, select } from 'redux-saga/effects';\nimport { trackAddPatientNote } from 'utils/carrot';\n\nimport {\n getItemByKey,\n} from 'redux/selectors';\nimport {\n saveSuccess,\n} from './';\n\nfunction* saveSuccessFlow(action) {\n const patientKey = R.pathOr(null, ['payload', 'data', '___parent'], action);\n const patient = yield select(getItemByKey(patientKey));\n // User can add notes for a patient while adding a patient; track only if a patient exist\n if (patient) {\n yield trackAddPatientNote(patientKey);\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(saveSuccess, saveSuccessFlow),\n ]);\n}\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n saveSuccess,\n remove,\n} = generator({\n name: 'PatientNotes',\n tableId: 9,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n save,\n saveSuccess,\n remove,\n};\n\n\nexport {\n getNotesByPatient,\n} from './selectors';\n\nexport default reducer;\n\nexport { default as saga } from './saga';\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport Icon from 'components/Icon';\n\n\nimport styles from './Info.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Info extends PureComponent {\n static propTypes = {\n alwaysTop: PropTypes.bool,\n alwaysBottom: PropTypes.bool,\n children: PropTypes.node,\n toggler: PropTypes.node,\n togglerFullSize: PropTypes.bool,\n width: PropTypes.number,\n singleLine: PropTypes.number,\n align: PropTypes.oneOf([\n 'left',\n ])\n }\n\n static defaultProps = {\n alwaysBottom: false,\n children: undefined,\n toggler: undefined,\n width: undefined,\n togglerFullSize: false,\n singleLine: undefined,\n }\n\n state = {\n hover: false,\n }\n\n handleShowTooltip = (event) => {\n if (!this.props.children) {\n return undefined;\n }\n\n const iconRect = event.target.getBoundingClientRect();\n const top = iconRect.top - 70;\n const bottom = window.innerHeight - iconRect.bottom;\n\n this.setState({\n top: top > bottom,\n height: Math.max(top, bottom),\n hover: true,\n });\n };\n\n handleHideTooltip = () => {\n this.setState({\n hover: false,\n });\n };\n\n renderButton() {\n const { toggler } = this.props;\n\n if (toggler) {\n return toggler;\n }\n\n return ;\n }\n\n render() {\n const { alwaysTop, alwaysBottom, toggler, togglerFullSize, width, singleLine, align, children } = this.props;\n const maxHeight = this.state.height - 50;\n\n return (\n \n \n {this.renderButton()}\n \n \n {children}\n \n \n );\n }\n}\n","export default function declOfNum(titles) {\n const cases = [2, 0, 1, 1, 1, 2];\n\n return (number) => {\n const indexByCase = cases[(number % 10 < 5) ? number % 10 : 5];\n const index = (number % 100 > 4 && number % 100 < 20) ? 2 : indexByCase;\n\n return titles ? titles[index] : '';\n };\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Button from 'components/Button';\nimport Title from 'components/Title';\n\nimport styles from './Subscription.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Subscription extends PureComponent {\n static propTypes = {\n children: PropTypes.node,\n isLoading: PropTypes.bool,\n submitBtn: PropTypes.string,\n cancelBtn: PropTypes.string,\n onCancel: PropTypes.func,\n onSubmit: PropTypes.func,\n }\n\n static defaultProps = {\n children: null,\n isLoading: false,\n submitBtn: null,\n cancelBtn: null,\n onCancel: () => { },\n onSubmit: () => { },\n }\n\n render() {\n const {\n submitBtn,\n cancelBtn,\n onSubmit,\n onCancel,\n isLoading,\n } = this.props;\n\n return (\n
\n
\n \n {this.props.children}\n \n
\n\n {(submitBtn || cancelBtn) &&\n
\n {submitBtn &&\n
\n \n {submitBtn}\n \n
\n }\n {cancelBtn &&\n
\n \n {cancelBtn}\n \n
\n }\n
\n }\n
\n );\n }\n}\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport * as selectors from 'redux/hor/module/selectors';\nimport roundNumber from 'utils/roundNumber';\n\nimport { getItemsList } from 'redux/modules/ingredients';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nconst getItemsArrayByParent = R.compose(\n // R.reject(R.prop('custom_системный_ингредиент')),\n selectors.getItemsArrayByParent,\n);\n\nconst getTechcard = memoizee((key, state, ingredientsState = {}, multiplier = 1) => {\n const ingredients = getItemsList(ingredientsState);\n\n return R.compose(\n R.map((item) => {\n const ingredient = R.find(R.propEq('key', item.custom_ингредиент), ingredients);\n const ingredientAmount = R.propOr('', 'custom_ед_изм_наименование', ingredient);\n const itemAmount = R.propOr('', 'custom_единица_измерения__гр_мл', item);\n const amountName = itemAmount || ingredientAmount;\n const count = roundNumber(2, item.custom_вес * multiplier);\n const value = item.custom_вес ? `${count} ${amountName}.` : null;\n\n return {\n id: getKeyInfo(item.custom_ингредиент).record,\n name: item.name || ingredient.custom_наименование,\n value,\n isSystem: ingredient && ingredient.custom_копия_блюда,\n };\n }),\n getItemsArrayByParent,\n )(key, state);\n}, { length: 4 });\n\nexport {\n getTechcard,\n getItemsArrayByParent,\n};\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n\n create,\n save,\n remove,\n} = generator({\n name: 'ProductTechCard',\n tableId: 54,\n parseItem: R.compose(\n R.evolve({\n ___parent: R.prop('key'),\n custom_ингредиент: R.prop('key'),\n custom_единица_измерения__гр_мл: R.prop('label'),\n custom_тип_приготовления: R.prop('key'),\n ___createduser: R.prop('key'),\n ___modifieduser: R.prop('key'),\n }),\n item => ({\n ...item,\n name: R.path(['custom_ингредиент', 'label'], item),\n }),\n ),\n});\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n remove,\n};\n\nexport {\n getTechcard,\n getItemsArrayByParent,\n} from './selectors';\n\nexport default reducer;\n","import { createSelector } from 'reselect';\n\nimport { appKey } from 'config';\n\nimport getSupplementId from '../getSupplementId';\n\nexport default createSelector(\n getSupplementId,\n\n id => id ? `${appKey}t158r${id}` : id,\n);\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n save,\n remove,\n} = generator({\n name: 'SupplementComposition',\n tableId: 161,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_элемент: R.prop('key'),\n }),\n});\n\nexport {\n fetch,\n fetchSuccess,\n save,\n remove,\n};\n\nexport {\n getItems,\n getItemsByParent,\n getItemsArrayByParent,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSumComposition,\n getIsHaveComposition,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nimport { getItemsList } from 'redux/modules/ingredients';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nconst getTechcard = memoizee((key, state, ingredientsState = {}) => {\n const ingredients = getItemsList(ingredientsState);\n\n return R.compose(\n R.map((item) => {\n const ingredient = R.find(R.propEq('key', item.custom_ингредиент), ingredients);\n\n\n return {\n id: getKeyInfo(item.custom_ингредиент).record,\n name: ingredient ? ingredient.custom_наименование : item.custom_ингредиент,\n };\n }),\n getItemsArrayByParent,\n )(key, state);\n}, { length: 4 });\n\nexport {\n getTechcard,\n};\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n\n create,\n save,\n remove,\n} = generator({\n name: 'SupplementTechCard',\n tableId: 164,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_ингредиент: R.prop('key'),\n }),\n});\n\nexport {\n fetch,\n fetchSuccess,\n create,\n save,\n remove,\n};\n\nexport {\n getItemsArrayByParent,\n} from 'redux/hor/module/selectors';\n\nexport {\n getTechcard,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { attr, Model as ORMModel } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n\n fetchSuccess,\n save,\n remove,\n} = generator({\n name: 'patientsElements',\n tableId: 96,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n custom_элемент_состава: R.prop('key'),\n }),\n});\n\nexport default class PatientsElements extends ORMModel {\n static modelName = 'PatientsElements';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(),\n custom_элемент_состава: attr(),\n }\n\n static reducer = reducer;\n}\n\nexport const updateList = createAction('PATIENTSELEMENTS__UPDATE_LIST');\nexport const updateListSuccess = createAction('PATIENTSELEMENTS__UPDATE_LIST_SUCCESS');\n\nreducer.on(updateListSuccess, (Model, session, { parentKey, items }) => {\n Model\n .filter({\n ___parent: parentKey\n })\n .delete();\n\n items.forEach(item => Model.upsert(item));\n});\n\nexport {\n fetchSuccess,\n save,\n remove,\n};","import * as R from \"ramda\";\nimport { attr, Model } from \"redux-orm\";\n\nimport getKeyInfo from \"utils/getKeyInfo\";\n\nimport generator from \"redux/hor/orm-module\";\nimport fetchWithView from \"redux/utils/fetchWithView\";\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n save,\n saveSuccess,\n removeWithUndo,\n} = generator({\n name: \"RegistrationLink\",\n tableId: 212,\n parseItem: R.evolve({\n ___parent: R.propOr(null, \"key\"),\n custom_тип_опроса: R.propOr(null, \"value\"),\n }),\n});\n\nexport default class RegistrationLink extends Model {\n static modelName = \"RegistrationLink\";\n\n static options = {\n idAttribute: \"key\",\n };\n\n static fields = {\n ___parent: attr(),\n custom_группа: attr(),\n custom_идентификатор: attr(),\n custom_именной: attr(),\n custom_тип_опроса: attr(),\n custom_дефолтный: attr(),\n };\n\n static reducer = reducer;\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchList = fetchWithView(fetch, \"ts5c212cs9r2985\");\n\nexport { fetch, fetchSuccess, save, saveSuccess, removeWithUndo };\n","const delay = timeout => new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, timeout);\n});\n\nexport default delay;\n","import * as R from \"ramda\";\nimport memoizee from \"memoizee\";\n\nimport { superuserRoleKey } from \"helpers/constants\";\n\nimport createOrmSelector from \"redux/utils/createOrmSelector\";\n\nimport constructFile from \"utils/constructFile\";\nimport capitalize from \"utils/capitalize\";\nimport getKeyInfo from \"utils/getKeyInfo\";\nimport ageOptions from \"utils/ageOptions\";\n\nimport {\n getUser,\n getCatalogGroups,\n getApplicationUser,\n getUserCountry,\n} from \"redux/selectors\";\nimport { getItem as getCookingTechnique } from \"redux/modules/cookingTechniques\";\nimport { getItem as getPortion } from \"redux/modules/portions\";\nimport { getItem as getMealType } from \"redux/modules/mealTypes\";\nimport { getItem as getEatingType } from \"redux/modules/specificEatingTypes\";\nimport { getItem as getDisease } from \"modules/Patient/redux/disease\";\nimport * as meals from \"redux/modules/meals\";\nimport * as ingredients from \"redux/modules/ingredients\";\nimport * as supplement from \"redux/modules/supplement\";\nimport { sexOptions } from \"modules/Catalog/components/ProductFormSupplement/ProductFormIngredient\";\n\nconst selectors = {\n meals,\n ingredients,\n supplement,\n};\n\nconst groupFieldByType = {\n meals: \"custom_группа\",\n ingredients: \"custom_группа\",\n supplement: \"custom_производитель\",\n};\n\nexport const getItemById = (type, id, state) =>\n selectors[type].getItemById(id, state[type]);\n\nexport const getKeyById = (type, id, state) =>\n selectors[type].getKeyById(id, state[type]);\n\nexport const getItem = (type, id, state) =>\n selectors[type].getItem(id, state[type]);\n\nexport const getImage = (type, key, state) => {\n const item = selectors[type].getItem(key, state[type]);\n const base64Image = constructFile(R.propOr(null, [\"custom_картинка\"], item));\n const imageUrl = R.path([\"custom_картинка\", \"url\"], item);\n const imageUrlField = R.path([\"custom_картинка_url\"], item);\n\n const image = imageUrlField || base64Image || imageUrl || null;\n return image;\n};\n\nconst arrayToString = R.compose(capitalize, R.toLower, R.join(\", \"));\n\nexport const getFeatures = (type, key, state) => {\n const item = selectors[type].getItem(key, state[type]);\n const portionKey = R.propOr(null, \"custom_порция\", item);\n const portion = R.propOr(\n null,\n \"custom_название\",\n getPortion(portionKey, state.portions)\n );\n const sexId = R.propOr(null, \"custom_пол\")(item);\n const sexName = R.compose(\n R.prop(\"label\"),\n R.head,\n R.filter(({ value }) => value === sexId)\n )(sexOptions);\n\n const groupField = groupFieldByType[type];\n const groupKey = R.propOr(null, groupField, item);\n const groups = getCatalogGroups(state);\n const group = R.find(R.propEq(\"key\", groupKey), groups);\n\n const cookingTechniqueKey = R.propOr(\n null,\n \"custom_способ_приготовления\",\n item\n );\n const cookingTechnique = R.propOr(\n null,\n \"custom_полное_наименование\",\n getCookingTechnique(cookingTechniqueKey, state.cookingTechniques)\n );\n\n const ingestion = R.compose(\n arrayToString,\n R.pluck(\"custom_наименование\"),\n R.reject(R.isNil),\n R.map((mealTypeKey) => getMealType(mealTypeKey, state.mealTypes)),\n R.propOr([], \"custom_применимость_в_схеме_питания\")\n )(item);\n\n const specificEatingTypes = R.compose(\n arrayToString,\n R.pluck(\"custom_наименование\"),\n R.reject(R.isNil),\n R.map((typeKey) => getEatingType(typeKey, state.specificEatingTypes)),\n R.defaultTo([]),\n R.propOr([], \"custom_специфические_виды_питания\")\n )(item);\n\n const features = [\n {\n name: \"Упаковка\",\n value: item.custom_расширенная_форма,\n },\n {\n name: \"Порция\",\n value: portion,\n },\n {\n name: type === \"supplement\" ? \"Производитель\" : \"Группа\",\n value: group.title,\n },\n {\n name: \"Способ приготовления\",\n value: cookingTechnique,\n },\n {\n name: \"Исключить для (виды питания)\",\n value: specificEatingTypes,\n },\n {\n name: \"Предпочтительный прием\",\n value: ingestion,\n },\n {\n name: \"Пол\",\n value: sexName,\n },\n {\n name: \"Возрастная группа\",\n value:\n ageOptions.slice(1).length ===\n (item.custom_возрастнаягруппа || []).length\n ? ageOptions[0].text\n : (item.custom_возрастнаягруппа || []).join(\", \"),\n },\n ];\n\n return R.reject(\n R.propSatisfies(R.either(R.isNil, R.isEmpty), \"value\"),\n features\n );\n};\n\nexport const getSource = createOrmSelector(\n (state, props) =>\n R.compose(\n R.propOr([], \"custom_продукт_повышает\"),\n selectors[props.type].getItem\n )(props.key, state[props.type]),\n (session, sourceKeys) => {\n const { Elements } = session;\n\n return R.map((elementKey) => {\n const element = Elements.withId(elementKey);\n\n return element.custom_наименование;\n }, sourceKeys);\n }\n);\n\nexport const getDiseases = (type, key, state) => {\n const item = selectors[type].getItem(key, state[type]);\n\n return R.compose(\n R.map((typeKey) => {\n const disease = getDisease(typeKey, state.Patient.disease);\n return disease.custom_наименование;\n }),\n R.defaultTo([]),\n R.propOr([], \"custom_запрещено_к_употреблению_при\")\n )(item);\n};\n\nexport const getDescription = (type, key, state) => {\n const item = selectors[type].getItem(key, state[type]);\n\n return R.propOr(null, \"custom_описание\", item);\n};\n\nexport const getRecipe = (type, key, state) => {\n const item = selectors[type].getItem(key, state[type]);\n\n return R.propOr(null, \"custom_рецепт\", item);\n};\n\nconst pathIsNotEmpty = R.compose(R.not, R.isNil, R.path);\n\nconst BASE = \"base\";\nconst PRIVATE = \"private\";\nconst INSTITUTION = \"institution\";\n\nexport const getCaption = (type, itemId, state) => {\n const item = selectors[type].getItemById(itemId, state[type]);\n const hasOwner = pathIsNotEmpty([\"___owner\"], item);\n const hasTerritory = pathIsNotEmpty([\"___territory\"], item);\n const hasShowInInstitution = R.pathEq(\n [\"custom_показывать_в_рамках_учреждения\"],\n true,\n item\n );\n\n if (!hasOwner && !hasTerritory) {\n return BASE;\n }\n\n return hasShowInInstitution ? INSTITUTION : PRIVATE;\n};\n\nconst getItemsArray = (userKey, type, state) => {\n const country = userKey ? getUserCountry(state) : null;\n const items = selectors[type].getItemsList(state[type], country);\n\n return R.compose(\n memoizee(\n R.map((item) => {\n const id = getKeyInfo(item.key).record;\n return {\n ...item,\n id,\n type,\n value: item.key,\n key: item.key,\n caption: getCaption(type, id, state),\n label: item.custom_наименование || item.custom_название,\n title: item.custom_наименование || item.custom_название,\n };\n })\n ),\n memoizee(R.reject(R.propOr(null, \"custom_черновик\")))\n )(items);\n};\n\nconst rejectByUser = (userKey, type, state) =>\n memoizee(\n R.reject((item) => {\n if (!userKey) {\n return false;\n }\n\n const isCurrentUserItem = R.propEq(\"___owner\", userKey, item);\n const id = getKeyInfo(item.key).record;\n const caption = getCaption(type, id, state);\n\n return caption === PRIVATE && !isCurrentUserItem;\n })\n );\n\nexport const getSelect = (userKey, type, state) => {\n if (!type) {\n return [];\n }\n\n return R.compose(\n rejectByUser(userKey, type, state),\n R.filter((item) => !userKey || !item.custom_скрытый),\n R.filter((item) => {\n if (!userKey) {\n return true;\n }\n\n if (type === \"supplement\") {\n return !item.custom_неактивен;\n }\n\n return true;\n }),\n getItemsArray\n )(userKey, type, state);\n};\n\nexport const getProductsByGroup = (userKey, type, groupKey, age, state) =>\n R.compose(\n R.filter(R.propOr(null, \"title\")),\n R.sortBy(R.propOr(null, \"title\")),\n R.map((item) => {\n const id = getKeyInfo(item.key).record;\n const caption = getCaption(type, id, state);\n\n return {\n id,\n title: item.title,\n key: item.key,\n caption,\n };\n }),\n R.filter((item) => {\n const itemAge = item.custom_возрастнаягруппа || [];\n const anyAge = R.contains(ageOptions[0].value);\n\n if (R.isEmpty(age) || anyAge(itemAge) || anyAge(age)) {\n return true;\n }\n\n return R.intersection(itemAge, age).length !== 0;\n }),\n R.filter((item) => {\n if (!userKey) {\n return true;\n }\n\n if (type === \"supplement\") {\n return !item.custom_неактивен;\n }\n\n return true;\n }),\n type === \"supplement\" ? R.identity : rejectByUser(userKey, type, state),\n R.reject(R.propOr(null, \"custom_скрытый\")),\n groupKey\n ? R.filter(R.propEq(groupFieldByType[type], groupKey))\n : R.identity,\n getItemsArray\n )(userKey, type, state);\n\nexport const getRigths = (type, itemId, state) => {\n const userItem = getUser(state);\n const userKey = getApplicationUser(state);\n const caption = getCaption(type, itemId, state);\n const isEditableBase = R.propOr(\n false,\n \"custom_редактирование_общих_блюд\",\n userItem\n );\n\n if (caption === BASE && isEditableBase) {\n return {\n isEditable: true,\n isDeletable: type === \"supplement\",\n };\n }\n\n const item = selectors[type].getItemById(itemId, state[type]);\n const productOwnerKey = R.propOr(null, \"___owner\", item);\n const isSuperUser =\n R.propOr(\"\", \"custom_role\", userItem) === superuserRoleKey;\n const isRight =\n (isSuperUser && caption === INSTITUTION) || userKey === productOwnerKey;\n\n return {\n isEditable: isRight,\n isDeletable: isRight,\n };\n};\n","import * as meals from '../meals';\nimport * as ingredients from '../ingredients';\nimport * as supplement from '../supplement';\n\nconst modules = {\n meals,\n ingredients,\n supplement,\n};\n\nconst handleAction = action => payload => modules[payload.type][action](payload);\n\nexport const fetch = handleAction('fetch');\nexport const create = handleAction('create');\nexport const save = handleAction('save');\nexport const remove = handleAction('remove');\nexport const removeWithUndo = handleAction('removeWithUndo');\nexport const copyComposition = handleAction('copyComposition');\n\nexport {\n getSelect,\n getProductsByGroup,\n getItemById,\n getKeyById,\n getItem,\n getImage,\n getFeatures,\n getSource,\n getDiseases,\n getRecipe,\n getCaption,\n getRigths,\n getDescription,\n} from './selectors';\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport memoize from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getSelectData = memoize(\n R.compose(\n R.sortBy(R.prop('label')),\n R.map(i => ({\n value: i.key,\n label: i.custom_наименование,\n })),\n getItemsArray,\n ),\n { max: 1 },\n);\n\nexport const getItems = createSelector(\n getItemsArray,\n (state, isLight) => isLight,\n\n (items, isLight) => R.compose(\n R.map(item => ({\n key: item.key,\n id: item.key,\n name: item.custom_наименование,\n text: item.custom_наименование,\n value: item.key,\n tooltip: item.custom_подсказка,\n })),\n R.filter(item => isLight ? item.custom_light : true),\n )(items),\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'specificEatingTypes',\n tableId: 18,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c18cs9r356', {\n useLS: true,\n});\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSelectData,\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\n\nconst getFirstName = R.compose(\n R.defaultTo(''),\n R.propOr('', 'custom_firstname'),\n);\nconst getMidName = R.compose(\n R.defaultTo(''),\n R.propOr('', 'custom_midname'),\n);\nconst getLastName = R.compose(\n R.defaultTo(''),\n R.propOr('', 'custom_lastname'),\n);\nconst getFullName = patient => `${getFirstName(patient)} ${getLastName(patient)}`;\nconst getRealFullName = R.compose(\n R.join(' '),\n R.values,\n R.pick(['custom_firstname', 'custom_midname', 'custom_lastname']),\n R.defaultTo({}),\n);\n\nexport default getFullName;\n\nexport {\n getFirstName,\n getMidName,\n getLastName,\n getRealFullName,\n};\n","import * as R from 'ramda';\n\nconst defaultResolver = () => '__default__';\n\n/**\n * Remember the previous computation result (by key - see resolver) and return\n * it (not a current one!) if it is deep equal to the current one.\n *\n * Use this if you always acquire new data from a selector, but new data is deep\n * equal to the previous selector result. (e.g. redux-orm model data when some\n * related model is changed).\n *\n * This is a hackish part of optimization strategy. Think twice before using it.\n *\n * @param {Function} fn A function which result to remember\n * @param {Function} resolver A function returning a cache key; default one always\n * returns default key\n * @returns {Function} Memoized function.\n */\nconst memoizeByResult = (fn, resolver = defaultResolver) => {\n const cache = new Map();\n return (...args) => {\n const newResult = fn(...args);\n const key = resolver(...args);\n const result = cache.get(key);\n if (newResult !== result && !R.equals(newResult, result)) {\n cache.set(key, newResult);\n return newResult;\n }\n return result;\n };\n};\n\nexport default memoizeByResult;\n","import * as R from 'ramda';\nimport moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nconst ids = {\n massBody: 137,\n calories: 169,\n caloriesActive: 3201,\n carbohydrates: 3200,\n proteins: 3198,\n fats: 3199,\n activeCellMass: 153,\n skinnyWeight: 152,\n muscleMass: 147,\n intracellularFluid: 151,\n extracellularFluid: 150,\n generalLiquid: 149,\n fatMass: 146,\n growth: 140,\n sizeShoulder: 144,\n sizeThigh: 143,\n sizeWaist: 142,\n pleatsStomach: 157,\n pleatsHips: 158,\n pleatsChest: 156,\n pleatsChestWoman: 159,\n harris: 6440796,\n visceralFat: 154,\n};\n\nconst values = R.map(item => `${appKey}t12r${item}`, ids);\n\nconst units = {\n massBody: 'кг',\n calories: 'ккал',\n caloriesActive: 'г',\n carbohydrates: 'г',\n proteins: 'г',\n fats: 'г',\n activeCellMass: 'кг',\n visceralFat: '',\n skinnyWeight: 'кг',\n muscleMass: 'кг',\n intracellularFluid: 'л',\n extracellularFluid: 'л',\n generalLiquid: 'л',\n fatMass: 'кг',\n growth: 'см',\n sizeShoulder: 'см',\n sizeThigh: 'см',\n sizeWaist: 'см',\n pleatsStomach: 'мм',\n pleatsHips: 'мм',\n pleatsChest: 'мм',\n pleatsChestWoman: 'мм',\n harris: 'ккал',\n};\n\nexport const getDateToChart = R.uncurryN(3, param => R.compose(\n R.sortBy(R.prop('date')),\n R.map(item => ({\n date: new Date(item.custom_дата),\n weight: item.custom_значение,\n unit: units[param] || 'кг',\n })),\n R.uniqWith(({ custom_дата: left }, { custom_дата: right }) => moment(left).isSame(right, 'day')),\n R.reverse,\n R.filter(R.propEq('custom_показатель', values[param])),\n R.reject(R.propEq('custom_значение', 0)),\n getItemsArrayByParent,\n));\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n\n fetchSuccess,\n create,\n} = generator({\n name: 'patientParams',\n tableId: 13,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_показатель: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n create,\n};\n\nexport {\n getDateToChart,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getSelectData = memoizee(\n R.compose(\n R.map(i => ({\n id: i.key,\n text: i.custom_наименование,\n value: i.key,\n })),\n R.sortBy(R.prop('custom_сортировка')),\n getItemsArray,\n ),\n { max: 1 },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'MealTypes',\n tableId: 36,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c36cs9r353', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getItem,\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSelectData,\n} from './selectors';\n\nexport default reducer;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './IconDotLoader.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class IconDotLoader extends PureComponent {\n static propTypes = {\n inline: PropTypes.bool,\n }\n\n static defaultProps = {\n inline: false,\n }\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n","const ageOptions = [ // Порядок важен\n {\n value: 'Любой возраст',\n text: 'Любой возраст',\n small: 'Любой возраст',\n min: 0,\n max: 100,\n },\n {\n value: '1-3 года',\n text: '1-3 года',\n small: '1-3',\n min: 1,\n max: 3,\n },\n {\n value: '4-6 лет',\n text: '4-6 лет',\n small: '4-6',\n min: 4,\n max: 6,\n },\n {\n value: '7-10 лет',\n text: '7-10 лет',\n small: '7-10',\n min: 7,\n max: 10,\n },\n {\n value: '11-17 лет',\n text: '11-17 лет',\n small: '11-17',\n min: 11,\n max: 17,\n },\n {\n value: '18 лет и старше',\n text: '18 и старше',\n small: '18+',\n min: 18,\n max: 100,\n },\n];\n\nexport default ageOptions;","import * as R from \"ramda\";\n\nimport { getItemsArray } from \"redux/hor/module/selectors\";\n\nexport const getNorm = (state, country) =>\n R.compose(\n R.map(\n R.compose(\n R.last,\n R.sortBy(R.prop(\"custom_страна\")),\n R.filter(\n (item) => !item.custom_страна || item.custom_страна === country\n )\n )\n ),\n R.groupBy(R.prop(\"element\")),\n R.map(\n ({\n ___parent: parent,\n custom_значение_от: min,\n custom_значение_до: max,\n custom_страна,\n }) => ({\n element: parent,\n normMin: min,\n normMax: max,\n norm: isFinite(max) ? (min + max) / 2 : min,\n custom_страна,\n })\n ),\n getItemsArray\n )(state);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'ELEMENT_NORMS',\n tableId: 64,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_страна: R.propOr(null, 'key'),\n custom_значение_от: Number,\n custom_значение_до: Number,\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c64cs9r350', {\n useLS: true,\n});\n\nexport {\n getNorm,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport moment from 'moment';\n\nexport const dateFieldMap = {\n custom_масса_тела: 'custom_масса_тела_1',\n custom_рост: 'custom_рост_1',\n custom_объем_талии: 'custom_объем_талии_1',\n custom_объем_бедер: 'custom_объем_бедер_1',\n custom_объем_плеча: 'custom_объем_плеча_1',\n custom_жировая_масса: 'custom_жировая_масса_1',\n custom_мышечная_масса: 'custom_мышечная_масса_1',\n custom_общая_жидкость: 'custom_общая_жидкость_1',\n custom_вунутриклеточная_жидкость: 'custom_внутриклеточная_жидкость',\n custom_внеклеточная_жидкость: 'custom_внеклеточная_жидкость_1',\n custom_тощая_масса_тела: 'custom_тощая_масса_тела_1',\n custom_активная_клеточная_масса: 'custom_активная_клеточная_масса_1',\n custom_висцеральный_жир: 'custom_висцеральный_жир_1',\n custom_складка_грудь_подмышка: 'custom_складка_грудь_подмышка_1',\n custom_складка_живот: 'custom_складка_живот_1',\n custom_складка_бедро: 'custom_складка_бедро_1',\n custom_дата_рождения: 'custom_дата_рождения_1',\n custom_число_калорий: 'custom_число_калорий_1',\n custom_окисление_белка: 'custom_окисление_белка_3',\n custom_окисление_жиров: 'custom_окисление_жиров_2',\n custom_окисление_углеводов: 'custom_окисление_углеводов_1',\n custom_число_калорий_при_физической_активности: 'custom_число_калорий_при_физической_активности_3',\n};\n\nexport const addDateField = (values = {}) =>\n R.compose(\n R.reduce((acc, field) => {\n\n if (!dateFieldMap[field] || !R.has(field, values)) {\n return acc;\n }\n return {\n ...acc,\n [dateFieldMap[field]]: values[field] === null ? null : moment().format('DD.MM.YYYY'),\n };\n }, {}),\n R.keys,\n )(dateFieldMap);\n","const constructFile = file => file ? `data:${file.mime};base64,${file.base64}` : undefined;\n\nexport default constructFile;","import { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getDietanamnezLastKeyWithoutNotEnded from '../getDietanamnezLastKeyWithoutNotEnded';\n\nexport default createSelector(\n getDietanamnezLastKeyWithoutNotEnded,\n\n (key) => {\n if (!key) {\n return null;\n }\n\n return getKeyInfo(key).record;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.compose(\n R.indexBy(R.prop('element')),\n R.map((item) => {\n const norm = R.propOr(null, 'норма_среднее', item);\n let min = R.propOr(null, 'от', item);\n let max = Number(R.propOr(null, 'до', item));\n\n if (min === 0 && max === 0) {\n min = null;\n max = null;\n }\n\n return {\n element: R.prop('элемент', item),\n norm,\n normMin: min,\n normMax: max,\n };\n }),\n R.propOr([], 'custom_коридор_спк')\n )\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getSelect } from 'redux/modules/products';\n\nconst getState = createSelector(\n R.path(['meals']),\n\n meals => ({ meals }),\n);\n\nexport default createSelector(\n getState,\n\n state => getSelect(null, 'meals', state),\n);\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport { getSelect } from \"redux/modules/products\";\nimport getApplicationUser from \"../getApplicationUser\";\n\nexport default createSelector(\n (state) => state,\n getApplicationUser,\n\n (state, appUser) => getSelect(appUser, \"supplement\", state)\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getUser from '../getUser';\n\nexport default createSelector(\n getUser,\n\n R.propOr(null, 'custom_ключ_системного_пользователяold'),\n) as unknown as () => string;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nconst emptyArray = [];\n\nexport default createSelector(\n getPatient,\n\n R.compose(\n R.defaultTo(emptyArray),\n R.propOr(emptyArray, 'custom_болезни'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getItems as getIllnessItems,\n} from 'modules/Patient/redux/illness';\n\nimport getDiseaseList from '../getDiseaseList';\n\nexport default createSelector(\n getDiseaseList,\n R.path(['Patient', 'illness']),\n\n getIllnessItems,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nconst emptyArray = [];\n\nexport default createSelector(\n getPatient,\n\n R.compose(\n R.defaultTo(emptyArray),\n R.propOr(emptyArray, 'custom_сопутствующие_заболевания'),\n ),\n);\n","import { getVisibleList } from 'redux/modules/elements/selectors';\n\nexport default getVisibleList;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getInstitutionKey } from 'redux/modules/user';\nimport getApplicationUser from '../getApplicationUser';\n\nexport default createSelector(\n getApplicationUser,\n R.path(['user']),\n\n (state, props) => props?.settings?.institutionKey,\n\n (user, state, key) => key || getInstitutionKey(user, state),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getPatientAllergen } from 'modules/Rations/redux/modules/allergen';\n\nimport getPatientKey from '../getPatientKey';\n\nexport default createSelector(\n getPatientKey,\n R.path(['Rations', 'allergen']),\n\n getPatientAllergen,\n);\n","import { createSelector } from 'reselect';\n\nimport getPatientEnergyMin from '../getPatientEnergyMin';\nimport getPatientEnergyMax from '../getPatientEnergyMax';\n\nexport default createSelector(\n getPatientEnergyMin,\n getPatientEnergyMax,\n\n (min, max) => {\n if (!min || !max) {\n return null;\n }\n\n return (min + max) / 2;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(0, 'custom_спк_энергия'),\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getRationKey from '../getRationKey';\n\nexport default createSelector(\n getRationKey,\n\n (session, rationKey) => {\n const { Ration } = session;\n\n if (!Ration.idExists(rationKey)) {\n return null;\n }\n\n return Ration.withId(rationKey).days.toRefArray();\n },\n);\n","import * as R from 'ramda';\n\nimport { getItemsArrayByParent, getItemWithAllFields } from 'redux/hor/module/selectors';\n\nexport const getItems = R.compose(\n R.map(R.evolve({\n custom_текст_поиска: (value) => {\n if (!value) {\n return value;\n }\n\n const [first, ...rest] = value;\n\n\n return first.toUpperCase() + rest.join('').toLowerCase();\n },\n })),\n R.map(getItemWithAllFields),\n getItemsArrayByParent,\n);\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n\n fetchSuccess,\n save,\n remove,\n} = generator({\n name: 'patientsAllergen',\n tableId: 138,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_ингредиенты_аллергены: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n }),\n});\n\nexport {\n fetchSuccess,\n save,\n remove,\n};\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\nimport moment from 'moment';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.compose(\n val => val ? moment().diff(moment(val, 'DD.MM.YYYY'), 'years') : null,\n R.propOr(null, 'custom_дата_рождения'),\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getDietanamnezKindsFood,\n getDietanamnezProductsIncluded,\n getDietanamnezProductsExcluded,\n} from 'modules/Dietanamnez/redux/selectors';\n\nimport ageOptions from 'utils/ageOptions';\nimport { setItem, getItem } from 'utils/localStorage';\n\nimport getPatientAge from '../getPatientAge';\nimport getMealsAll from '../getMealsAll';\nimport getPatientDisease from '../getPatientDisease';\nimport getDiseaseList from '../getDiseaseList';\nimport getPatientAllergen from '../getPatientAllergen';\n\nexport default createSelector(\n getMealsAll,\n getPatientDisease,\n getDiseaseList,\n getDietanamnezProductsIncluded,\n getDietanamnezProductsExcluded,\n getPatientAllergen,\n getDietanamnezKindsFood,\n getPatientAge,\n\n (\n productList,\n patientDisease,\n diseaseList,\n include,\n exclude,\n allergen,\n excludedKindsFood,\n age,\n ) => {\n const goodAgeOptions = R.compose(\n R.pluck('value'),\n R.filter(item => item.min <= age && item.max >= age),\n )(ageOptions);\n\n const getDish = R.compose(\n R.unnest,\n R.pluck('dish'),\n );\n const disease = R.indexBy(R.prop('value'), diseaseList);\n\n const patientKey = `c105a902t5r${window.location.href.split(\"patients/\")[1]?.split(\"/\")[0]}`;\n let allowedItems = getDish(include);\n if (!allowedItems?.length) {\n allowedItems = getItem(`DietanamnezProductsIncluded_${patientKey}`) ?? [];\n }\n setItem(`DietanamnezProductsIncluded_${patientKey}`, allowedItems);\n\n const forbiddenItems = R.compose(\n getDish,\n R.reject(R.propEq('byKindsFood', true)),\n )(exclude);\n\n const itWithoutStatus = R.compose(\n R.isEmpty,\n R.pick(['allowed', 'warning', 'forbidden']),\n );\n\n const setDietanamnezAllowed = (item) => {\n const dietanamnezGroups = R.propOr([], 'custom_эталонные_блюда', item);\n\n if (\n R.intersection(dietanamnezGroups, allowedItems)?.length ||\n R.contains(item.key, allowedItems)\n ) {\n return {\n ...item,\n allowed: 'dietanamnez',\n };\n }\n\n return item;\n };\n\n const setKindsFood = (item) => {\n const dietanamnezGroups = R.propOr([], 'custom_эталонные_блюда', item);\n const kindsFoodForbidden = R.compose(\n R.defaultTo([]),\n R.propOr([], 'custom_не_применяется_в'),\n )(item);\n\n const kindsFoodInter = R.intersection(excludedKindsFood, kindsFoodForbidden);\n const dietanamnezInter = R.intersection(forbiddenItems, dietanamnezGroups);\n\n if (\n !R.isEmpty(dietanamnezInter) ||\n !R.isEmpty(kindsFoodInter)\n ) {\n return {\n ...item,\n warning: 'dietanamnez',\n };\n }\n\n return item;\n };\n\n const setDiagnoses = (item) => {\n const diagnosesForbidden = R.compose(\n R.defaultTo([]),\n R.propOr([], 'custom_запрещено_к_употреблению_при'),\n )(item);\n\n const diagnosesInter = R.intersection(patientDisease, diagnosesForbidden);\n\n if (!R.isEmpty(diagnosesInter)) {\n return {\n ...item,\n forbidden: R.compose(\n R.defaultTo('diagnoses'),\n R.propOr(null, 'label'),\n R.propOr(null, diagnosesInter[0]),\n )(disease),\n };\n }\n\n return item;\n };\n\n const setAllergen = (item) => {\n if (R.contains(item.key, allergen)) {\n return {\n ...item,\n forbidden: 'allergen',\n };\n }\n\n return item;\n };\n\n const setAge = (item) => {\n const dishAges = item.custom_возрастнаягруппа || [];\n\n if (age && !R.isEmpty(dishAges) && R.intersection(dishAges, goodAgeOptions).length === 0) {\n return {\n ...item,\n forbidden: 'age',\n };\n }\n\n return item;\n };\n\n return R.map(R.compose(\n R.ifElse(itWithoutStatus, setAge, R.identity),\n R.ifElse(itWithoutStatus, setDietanamnezAllowed, R.identity),\n R.ifElse(itWithoutStatus, setKindsFood, R.identity),\n R.ifElse(itWithoutStatus, setAllergen, R.identity),\n R.ifElse(itWithoutStatus, setDiagnoses, R.identity),\n ), productList);\n },\n);\n","import * as R from 'ramda';\nimport { fk, attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport convertFromServerTimeZoneToCurrentTimeZone\n from 'utils/convertFromServerTimeZoneToCurrentTimeZone';\n\nconst {\n reducer,\n\n fetchSuccess,\n save,\n} = generator({\n name: 'InstitutionSubscription',\n tableId: 115,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_действующий_тарифный_план: R.propOr(null, 'key'),\n custom_текущий_вариант_подписки: R.propOr(null, 'key'),\n custom_оплачено: R.propOr(null, 'key'),\n custom_дата_начала_подписки: convertFromServerTimeZoneToCurrentTimeZone,\n custom_время_окончания_подписки: convertFromServerTimeZoneToCurrentTimeZone,\n }),\n});\n\nexport default class InstitutionSubscription extends Model {\n static modelName = 'InstitutionSubscription';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n custom_активных_пользователей: attr(),\n custom_время_окончания_подписки: attr(),\n custom_дата_начала_подписки: attr(),\n custom_действующий_тарифный_план: attr(), // fk\n custom_количество_пользователей: attr(),\n custom_оплачено_пользователей: attr(),\n custom_оплачено: fk('SubscriptionDay', 'futurePayments'),\n custom_текущий_вариант_подписки: fk('SubscriptionDay', 'payments'),\n custom_оплачено_дней: attr(),\n custom_остаток_бонусных_дней: attr(),\n custom_стоимость_текущей_подписки: attr(),\n }\n\n static reducer = reducer;\n}\n\nexport {\n fetchSuccess,\n save,\n};\n","import { fetchSuccess as meals } from 'redux/modules/meals';\nimport { fetchSuccess as patients } from 'redux/modules/patients';\nimport { fetchSuccess as notes } from 'modules/Patient/redux/notes';\nimport { fetchSuccess as patientParams } from 'redux/modules/patientParams';\nimport { fetchSuccess as analysisBlood } from 'modules/Analyses/redux/modules/analysisBlood';\nimport { fetchSuccess as analysisGenes } from 'modules/Analyses/redux/modules/analysisGenes';\nimport { fetchSuccess as analysisHair } from 'modules/Analyses/redux/modules/analysisHair';\nimport { fetchSuccess as analysisSalt } from 'modules/Analyses/redux/modules/analysisSalt';\nimport { fetchSuccess as analysisVitamin } from 'modules/Analyses/redux/modules/analysisVitamin';\nimport { fetchSuccess as analyses } from 'modules/Analyses/redux/modules/patientAnalysis';\nimport { fetchSuccess as day } from 'modules/Rations/redux/modules/day';\nimport { fetchSuccess as productComposition } from 'redux/modules/productComposition';\nimport { fetchSuccess as rations } from 'modules/Rations/redux/modules/ration';\nimport { fetchSuccess as staff } from 'redux/modules/staff';\nimport { fetchSuccess as techCard } from 'redux/modules/productTechCard';\nimport { fetchSuccess as journal } from 'redux/modules/journal';\nimport { fetchSuccess as dietanamnezItem } from 'modules/Dietanamnez/redux/modules/dietanamnezItem';\nimport { fetchSuccess as ingestion } from 'modules/Rations/redux/modules/ingestion';\nimport { fetchSuccess as elements } from 'modules/Rations/redux/modules/patientsElements';\nimport { fetchSuccess as allergenMeals } from 'modules/Rations/redux/modules/allergen';\nimport { fetchSuccess as institutionSubscription } from 'redux/modules/institutionSubscription';\nimport { fetchSuccess as allergen } from 'redux/modules/patientsAllergen';\nimport { fetchSuccess as dietanamnez } from 'modules/Dietanamnez/redux/modules/dietanamnez';\nimport { fetchSuccess as supplementRation } from 'modules/Supplement/redux/modules/supplement';\nimport { fetchSuccess as supplementRationDish } from 'modules/Supplement/redux/modules/supplementDish';\nimport { fetchSuccess as supplementAllergen } from 'modules/Supplement/redux/modules/supplementAllergen';\nimport { fetchSuccess as supplementComposition } from 'redux/modules/supplementComposition';\nimport { fetchSuccess as supplementTechCard } from 'redux/modules/supplementTechCard';\nimport { fetchSuccess as partner } from 'redux/modules/partner';\nimport { fetchSuccess as links } from 'redux/modules/registrationLinks';\n\nconst subitemsMap = {\n 4: meals,\n 5: patients,\n 9: notes,\n 13: patientParams,\n 19: analyses,\n 21: analysisGenes,\n 22: analysisVitamin,\n 24: analysisBlood,\n 25: analysisHair,\n 27: analysisSalt,\n 29: day,\n 30: productComposition,\n 39: rations,\n 47: staff,\n 54: techCard,\n 57: journal,\n 65: dietanamnezItem,\n 95: ingestion,\n 96: elements,\n 99: allergenMeals,\n 115: institutionSubscription,\n 138: allergen,\n 140: dietanamnez,\n 158: supplementRation,\n 160: supplementRationDish,\n 161: supplementComposition,\n 164: supplementTechCard,\n 167: supplementAllergen,\n 192: partner,\n 212: links,\n};\n\nexport default subitemsMap;","import * as R from 'ramda';\nimport { appKey } from 'config';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nconst parsers = {\n 98: {\n fields: {\n custom_элемент_рациона: R.prop('custom_элемент_состава'),\n custom_значение: R.prop('custom_количество'),\n custom_продукт: R.prop('custom_блюдо'),\n ___parent: R.prop('custom_блюдо'),\n },\n key: R.path(['fields', 'custom_source']),\n },\n 113: {\n fields: {\n custom_элемент_рациона: R.compose(\n R.objOf('key'),\n R.prop('custom_элемент_состава'),\n ),\n custom_значение: R.compose(\n Number,\n R.replace(',', '.'),\n R.prop('custom_количество'),\n ),\n custom_продукт: R.prop('custom_блюдо'),\n ___parent: R.compose(\n R.objOf('key'),\n R.prop('custom_блюдо'),\n ),\n },\n key: R.path(['fields', 'custom_source']),\n },\n 114: {\n fields: {\n custom_блюдо: R.prop('custom_блюдо'),\n custom_время: R.prop('custom_время'),\n custom_номер: R.prop('custom_номер'),\n custom_количество_план: R.compose(\n parseInt,\n R.prop('custom_план'),\n ),\n ___parent: R.prop('custom_дневной_рацион_пациента'),\n custom_ссылка_на_активное_блюдо: R.prop('custom_ссылка_на_активное_блюдо'),\n },\n key: R.path(['fields', 'custom_блюдо_рациона', 'key']),\n },\n 134: {\n fields: {\n custom_рецепт: R.prop('custom_рецепт'),\n },\n key: R.compose(\n R.replace('cXaX', appKey),\n R.path(['fields', 'custom_ключ_блюда'])\n ),\n },\n 135: {\n fields: {\n ___parent: R.compose(\n R.objOf('key'),\n R.replace('cXaX', appKey),\n R.prop('custom_ключ_блюда'),\n ),\n custom_ингредиент: fields => ({\n key: fields.custom_ключ_ингредиента,\n label: fields.custom_ингредиент,\n }),\n custom_единица_измерения__гр_мл: R.compose(\n R.objOf('label'),\n R.prop('custom_ед__изм'),\n ),\n custom_вес: R.prop('custom_вес'),\n },\n key: R.path(['fields', 'custom_ключ_тех_карты']),\n },\n 139: {\n fields: {\n custom_элемент_рациона: R.prop('custom_элемент_состава'),\n custom_значение: R.prop('custom_количество'),\n custom_продукт: R.prop('custom_блюдо'),\n ___parent: R.prop('custom_блюдо'),\n },\n key: R.path(['fields', 'custom_source']),\n },\n 166: {\n fields: {\n ___parent: R.compose(\n R.objOf('key'),\n R.prop('custom_бад_ключ'),\n ),\n custom_элемент: R.compose(\n R.objOf('key'),\n R.prop('custom_элемент_состава_бад'),\n ),\n custom_значение_на_порцию: R.prop('custom_количество_в_бад'),\n },\n key: R.path(['fields', 'custom_источник_ключ']),\n },\n};\n\nexport default function transformVirtualCategory(group) {\n const key = R.pathOr(null, ['list', 0, 'key'], group);\n const { table } = getKeyInfo(key);\n\n if (!parsers[table]) {\n return [group];\n }\n\n const list = group.list;\n const groupParsers = [].concat(parsers[table]);\n\n return R.map((parser) => {\n const transformedList = R.map((item) => {\n if (typeof parser === 'function') {\n return parser(item);\n }\n\n return {\n fields: R.map(val => val(item.fields), parser.fields),\n key: parser.key(item),\n };\n }, list);\n\n return {\n ...group,\n list: R.reject(R.isNil, transformedList),\n };\n }, groupParsers);\n}\n","import * as R from 'ramda';\nimport { put } from 'redux-saga/effects';\n\nimport getKeyInfo from 'utils/getKeyInfo';\nimport transformVirtualCategory from '../transformVirtualCategory';\n\nconst tableIdByLabel = {\n 'Блюда-аллергены пациента': 99,\n};\n\nexport default function getSubitemsEffect(response, subitems = {}) {\n return R.compose(\n R.reject(R.isNil),\n R.values,\n R.mapObjIndexed((group, id) => {\n const action = subitems[id];\n\n if (!action) {\n return null;\n }\n\n if (typeof action !== 'function') {\n throw new Error('Subitems config should contain function');\n }\n\n const parents = R.map(R.path(['fields', '___parent', 'key']), group.list);\n\n return put(action({\n response: group,\n parents: R.compose(\n R.reject(R.isNil),\n R.uniq,\n )([...parents, response.key]),\n }));\n }),\n R.reduce((acc, group) => {\n R.forEach((transformedGroup) => {\n const key = R.pathOr(null, ['list', 0, 'key'], transformedGroup);\n const table = key ? getKeyInfo(key).table : tableIdByLabel[group.label];\n\n if (!acc[table]) {\n acc[table] = transformedGroup; // eslint-disable-line no-param-reassign\n return;\n }\n\n acc[table] = { // eslint-disable-line no-param-reassign\n ...acc[table],\n list: [\n ...acc[table].list,\n ...transformedGroup.list,\n ],\n };\n }, transformVirtualCategory(group));\n\n return acc;\n }, {}),\n R.pathOr([], ['related', 'list']),\n )(response);\n}\n","import * as R from 'ramda';\nimport { appKey } from 'config';\n\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nconst firstIngestionKey = `${appKey}t36r1495`;\n\nexport const getFirstIngestionTime = (key, state) => {\n const items = getItemsArrayByParent(key, state);\n\n const time = R.compose(\n R.propOr('', 'custom_время'),\n R.find(R.propEq('custom_схема_питания', firstIngestionKey)),\n )(items);\n\n return time;\n};\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetchSuccess,\n save,\n} = generator({\n name: 'Ingestion',\n tableId: 95,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_схема_питания: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n save,\n};\n\nexport {\n getItemsArrayByParent,\n} from 'redux/hor/module/selectors';\n\nexport {\n getFirstIngestionTime,\n} from './selector';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getPatientAllergen = createSelector(\n R.identity,\n (_, state) => getItemsArray(state),\n\n R.uncurryN(2, key => R.compose(\n R.pluck('custom_блюдо'),\n R.filter(R.propEq('custom_пациент', key)),\n )),\n);\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetchSuccess,\n} = generator({\n name: 'Allergen',\n tableId: 99,\n parentField: 'custom_пациент',\n parseItem: R.evolve({\n custom_блюдо: R.propOr(null, 'key'),\n custom_пациент: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n};\n\nexport {\n getPatientAllergen,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n R.path(['productComposition']),\n\n (session, key, state) => {\n const { Day } = session;\n\n return Day\n .withId(key)\n .getComposition(state);\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n R.path(['productComposition']),\n\n (session, key, state) => {\n const { Day } = session;\n\n const compositions = Day\n .withId(key)\n .getGroupsComposition(state);\n\n const initial = R.compose(\n R.fromPairs,\n R.map(item => [item, [0]]),\n R.flatten,\n R.map(R.keys),\n )(compositions);\n\n return R.reduce(R.mergeWith((a, b) => a.concat(b || 0)), initial, compositions);\n },\n);\n","import * as R from 'ramda';\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getApplicationUser from 'redux/selectors/getApplicationUser';\nimport getStaff from 'redux/selectors/getStaff';\nimport getUserCanEditSystemTemplates from 'redux/selectors/getUserCanEditSystemTemplates';\nimport { getUserRight } from 'redux/selectors/getUserRights';\n\nimport getRationKey from '../getRationKey';\n\n// ration key is both temporary (uuid) and normal id;\n// both are accessed at the same time, so cache orm selector by a ration key\nexport default createCachedOrmSelector(\n getRationKey,\n getApplicationUser,\n getUserCanEditSystemTemplates,\n state => getUserRight('INSTITUTION_ADMINISTER', state),\n getStaff,\n\n (session, rationKey, userKey, canEditSystemTemplates, isAdmin, staff) => {\n const { Ration } = session;\n if (!Ration.idExists(rationKey)) {\n return null;\n }\n\n const ration = Ration.withId(rationKey);\n const item = ration.ref;\n const type = R.propOr(null, 'custom_тип_шаблона', item);\n const owner = R.propOr(null, '___owner', item);\n const isCurrentUserCanEdit = userKey === owner || isAdmin;\n const author = R.find(R.propEq('custom_ключ_системного_пользователяold', ration.___createduser), staff);\n\n return {\n ...item,\n specialist: R.compose(\n R.join(' '),\n R.values,\n R.pick(['custom_firstname', 'custom_midname', 'custom_lastname']),\n R.defaultTo({}),\n )(author),\n custom_продолжительность: ration.custom_продолжительность,\n withEdit: type === 3 ? canEditSystemTemplates : isCurrentUserCanEdit,\n withDelete: type === 3 ? false : isCurrentUserCanEdit,\n };\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRation from '../getRation';\n\nexport default createSelector(\n getRation,\n\n (ration) => {\n const target = R.propOr(null, 'custom_цель', ration);\n const grade = R.propOr(null, 'custom_степень_за_месяц', ration);\n\n return target * grade;\n },\n);\n","import { appKey } from 'config';\nimport { createSelector } from 'reselect';\n\nimport getPatientEnergyMax from 'redux/selectors/getPatientEnergyMax';\nimport getRationGrade from '../getRationGrade';\n\nconst getValue = (value, grade, deviationMin, deviationMax = 2 * deviationMin) => {\n if (grade > 0) {\n return {\n norm: value,\n min: value - deviationMin,\n max: value + deviationMax,\n };\n }\n\n if (grade < 0) {\n return {\n norm: value,\n min: value - deviationMax,\n max: value + deviationMin,\n };\n }\n\n return {\n norm: value,\n };\n};\n\nconst getEnergy = (grade, energy) => {\n const diff = grade > 0 ? 133 : 128;\n const value = energy + (diff * grade);\n return getValue(value, grade, 100);\n};\n\nconst getProtein = (grade, energy) => getValue(energy * 0.0375, grade, 4);\nconst getFats = (grade, energy) => getValue(energy * 0.0333, grade, 3, 7);\nconst getCarbohydrate = (grade, energy) => getValue(energy * 0.1375, grade, 14);\n\nexport default createSelector(\n getRationGrade,\n getPatientEnergyMax,\n\n (grade, energy) => {\n const normEnergy = getEnergy(grade, energy);\n\n if (!energy) {\n return {};\n }\n\n console.log({\n [`${appKey}t28r219`]: normEnergy,\n [`${appKey}t28r221`]: getProtein(grade, normEnergy.norm),\n [`${appKey}t28r222`]: getFats(grade, normEnergy.norm),\n [`${appKey}t28r223`]: getCarbohydrate(grade, normEnergy.norm),\n });\n\n return {\n [`${appKey}t28r219`]: normEnergy,\n [`${appKey}t28r221`]: getProtein(grade, normEnergy.norm),\n [`${appKey}t28r222`]: getFats(grade, normEnergy.norm),\n [`${appKey}t28r223`]: getCarbohydrate(grade, normEnergy.norm),\n };\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getDayComposition from '../getDayComposition';\nimport getRationNorm from '../getRationNorm';\n\nexport default createSelector(\n getDayComposition,\n getRationNorm,\n\n R.merge,\n);\n","import * as R from 'ramda';\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createCachedOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n R.path(['productComposition']),\n\n (session, dayKey, time, state) => {\n const { Day } = session;\n\n return Day.withId(dayKey).getGroupComposition(time, state);\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\nimport memoizeByResult from 'utils/memoizeByResult';\n\nimport getDayKey from '../getDayKey';\n\nexport default createCachedOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n\n memoizeByResult(\n (session, dayKey, time) => {\n const { Day } = session;\n const ration = Day.withId(dayKey).custom_рацион_пациента;\n\n return ration\n .days\n .exclude({\n key: dayKey,\n })\n .toModelArray()\n .filter(day => day.groups[time])\n .map(day => day.custom_номер);\n },\n (session, key) => key,\n ),\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\nimport memoizeByResult from 'utils/memoizeByResult';\n\nimport getDayKey from '../getDayKey';\n\nexport default createCachedOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n\n memoizeByResult(\n (session, dayKey, key) => {\n const { Day } = session;\n\n return Day\n .withId(dayKey)\n .groups[key]\n .группы_альтернатив\n },\n (_, dayKey, key) => `${dayKey}_${key}`,\n ),\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport timeToNumber from '../../../utils/timeToNumber';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n\n (session, key) => {\n const { Day } = session;\n const day = Day.withId(key);\n\n const groups = day.groups;\n\n return R.compose(\n R.sortBy(timeToNumber),\n R.keys,\n )(groups);\n },\n);\n","import * as R from 'ramda';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n\n (session, key) => {\n const { Day } = session;\n\n const groups = R.values(Day.withId(key).groups);\n\n return R.any(group => !group.группы_альтернатив.length, groups);\n },\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createSelector(\n getDayKey,\n\n (session, key) => {\n const { Day } = session;\n\n return Day.withId(key).getIsFilled();\n },\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getRationKey from '../getRationKey';\n\nexport default createSelector(\n getRationKey,\n\n (session, key) => {\n const { Ration } = session;\n\n return Ration\n .withId(key)\n .days\n .toModelArray()\n .filter(item => item.getIsFilled())\n .map(item => item.custom_номер);\n },\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nexport default createSelector(\n (session) => {\n const { Day } = session;\n\n return Day\n .filter({\n custom_шаблон_дня: true,\n })\n .toRefArray()\n .map(item => ({\n label: item.custom_название_для_шаблона,\n key: item.key,\n }));\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nimport getDayKey from '../getDayKey';\n\nconst getKey = (state, props) => props.isPatch ? props.itemKey : undefined;\n\nexport default createOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n getKey,\n\n (session, dayKey, groupKey, itemKey) => {\n const { Day } = session;\n\n const dishGroup = Day.withId(dayKey).groups[groupKey].группы_альтернатив[itemKey];\n\n if (!dishGroup) {\n return null;\n }\n\n const activeKey = dishGroup.активное.replace('cXaX', appKey);\n\n return {\n custom_колич: dishGroup.блюда[dishGroup.активное],\n custom_блюдо: activeKey,\n }\n },\n);","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n (state, props) => props.itemKey,\n\n (session, dayKey, groupKey, itemKey) => {\n const { Day } = session;\n\n const group = Day.withId(dayKey).groups[groupKey];\n\n if (!group) {\n return {};\n }\n\n const dishGroup = group.группы_альтернатив[itemKey];\n const activeKey = dishGroup.активное.replace('cXaX', appKey);\n\n return {\n key: activeKey,\n custom_колич: dishGroup.блюда[dishGroup.активное],\n custom_блюдо: activeKey,\n }\n },\n);\n","import * as R from 'ramda';\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\nimport { appKey } from 'config';\n\nimport getDayKey from '../getDayKey';\nimport getMealsWithStatus from 'redux/selectors/getMealsWithStatus';\n\nexport default createCachedOrmSelector(\n getDayKey,\n (state, props) => props.groupKey,\n (state, props) => props.itemKey,\n getMealsWithStatus,\n\n (session, dayKey, groupKey, itemKey, mealsArray) => {\n const { Day } = session;\n const meals = R.indexBy(R.prop('key'), mealsArray);\n\n const group = Day.withId(dayKey).groups[groupKey];\n\n if (!group) {\n return [];\n }\n\n const dishGroup = Day.withId(dayKey).groups[groupKey].группы_альтернатив[itemKey];\n\n return Object.keys(dishGroup.блюда)\n .map((baseKey) => {\n const key = baseKey.replace('cXaX', appKey)\n const amount = dishGroup.блюда[baseKey]\n const meal = meals[key] || {};\n\n return {\n ...meal,\n value: key,\n amount,\n label: meal.custom_название || baseKey,\n };\n });\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { getInstituteTemplate } from 'modules/Rations/redux/modules/ration/selectors';\nimport { getUserRight } from 'redux/selectors/getUserRights';\nimport getApplicationUser from 'redux/selectors/getApplicationUser';\n\nexport default createSelector(\n state => state,\n state => getUserRight('INSTITUTION_ADMINISTER', state),\n getApplicationUser,\n\n getInstituteTemplate,\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getApplicationUser from 'redux/selectors/getApplicationUser';\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createSelector(\n getApplicationUser,\n getPatientKey,\n\n (session, appUser, patientKey) => {\n const { Ration } = session;\n\n const lastRation = Ration\n .filter({\n ___parent: patientKey,\n ___owner: appUser,\n custom_не_назначен: true,\n custom_удалено: false,\n })\n .last();\n\n if (!lastRation) {\n return null;\n }\n\n return lastRation.key;\n },\n);\n","import { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getPatientRationNewKey from '../getPatientRationNewKey';\n\nexport default createSelector(\n getPatientRationNewKey,\n\n (key) => {\n if (!key) {\n return null;\n }\n\n return getKeyInfo(key).record;\n },\n);\n","import * as R from 'ramda';\nimport createSelector from 'redux/utils/createOrmSelector';\nimport moment from 'moment';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getStaff from 'redux/selectors/getStaff';\nimport getPatientKey from 'redux/selectors/getPatientKey';\nimport getAuthUser from 'redux/selectors/getAuthUser';\nimport { getUserRight } from 'redux/selectors/getUserRights';\n\nexport default createSelector(\n state => getUserRight('INSTITUTION_ADMINISTER', state),\n getAuthUser,\n getPatientKey,\n getStaff,\n\n (session, isAdmin, userKey, patientKey, staff) => {\n const { Ration } = session;\n\n return Ration\n .filter({\n ___parent: patientKey,\n custom_не_назначен: false,\n })\n .exclude({\n custom_удалено: true,\n })\n .filter(item => !item.isDeleted)\n .toModelArray()\n .sort((a, b) => moment(b.custom_начало_диеты) - moment(a.custom_начало_диеты))\n .map((item) => {\n const start = moment(item.custom_начало_диеты);\n const duration = item.custom_продолжительность;\n const id = getKeyInfo(item.key).record;\n const author = R.find(R.propEq('custom_ключ_системного_пользователяold', item.___createduser), staff);\n\n return {\n withDelete: R.pathEq(['___createduser'], userKey, item) || isAdmin,\n withView: R.pathEq(['___createduser'], userKey, item) || isAdmin,\n id: id ? id.toString() : undefined,\n key: item.key,\n title: item.custom_название || start.format('DD.MM.YYYY HH:mm'),\n dateStart: start.format('DD.MM.YYYY HH:mm'),\n duration,\n specialist: R.compose(\n R.join(' '),\n R.values,\n R.pick(['custom_firstname', 'custom_midname', 'custom_lastname']),\n R.defaultTo({}),\n )(author),\n isDeleting: item.isDeleting,\n };\n });\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { PatientsElements } = session;\n\n return PatientsElements\n .filter({\n ___parent: patientKey,\n })\n .toRefArray();\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRationTableElements from '../getRationTableElements';\n\nexport default createSelector(\n getRationTableElements,\n\n R.pluck('custom_элемент_состава'),\n);\n","import { appKey } from 'config';\n\nconst columns = [\n {\n name: 'ПП',\n width: 30,\n },\n {\n name: 'Время',\n width: 80,\n },\n {\n name: 'Продукт/Блюдо',\n width: 250,\n },\n {\n name: 'МЕРА, Г/МЛ',\n width: 100,\n },\n {\n name: 'ПОРЦИЯ',\n width: 120,\n },\n {\n name: 'ЭЦ, ККАЛ',\n width: 120,\n element: `${appKey}t28r219`,\n isEnergy: true,\n },\n {\n name: 'Б, Г',\n label: 'Белки',\n width: 80,\n element: `${appKey}t28r221`,\n isBzhu: true,\n k: 4,\n },\n {\n name: 'Ж, Г',\n label: 'Жиры',\n width: 80,\n element: `${appKey}t28r222`,\n isBzhu: true,\n k: 9,\n },\n {\n name: 'У, Г',\n label: 'Углеводы',\n width: 80,\n element: `${appKey}t28r223`,\n isBzhu: true,\n k: 4,\n },\n];\n\nexport default columns;","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getElementsVisible from 'redux/selectors/getElementsVisible';\n\nimport getRationTableElementsKey from '../getRationTableElementsKey';\n\nimport columns from './columns';\n\nexport default createSelector(\n getRationTableElementsKey,\n getElementsVisible,\n\n (selected, visible) =>\n R.compose(\n R.concat(columns),\n R.map((item) => {\n const name = item.custom_сокращенное_наименование || item.custom_наименование;\n\n return {\n name: `${name}, ${R.path(['custom_ед_изм', 'label'], item)}`,\n label: R.prop('custom_наименование', item),\n width: 80,\n element: R.prop('key', item),\n };\n }),\n R.sortBy(R.path(['custom_элемент_состава', 'key'])),\n R.uniq,\n R.filter(item => R.contains(item.key, selected)),\n )(visible),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRationColumns from '../getRationColumns';\n\nexport default createSelector(\n getRationColumns,\n\n R.compose(\n R.sum,\n R.pluck('width'),\n ),\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getRationKey from '../getRationKey';\n\nexport default createOrmSelector(\n getRationKey,\n R.path(['productComposition']),\n\n (session, key, state) => {\n const { Ration } = session;\n\n return Ration\n .withId(key)\n .getComposition(state);\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getRationKey from '../getRationKey';\n\nexport default createOrmSelector(\n getRationKey,\n R.path(['productComposition']),\n\n (session, key, state) => {\n const { Ration } = session;\n\n const compositions = Ration\n .withId(key)\n .getGroupsComposition(state);\n\n const initial = R.compose(\n R.fromPairs,\n R.map(item => [item, [0]]),\n R.flatten,\n R.map(R.keys),\n )(compositions);\n\n return R.reduce(R.mergeWith((a, b) => a.concat(b || 0)), initial, compositions);\n },\n);\n","\nimport createSelector from 'redux/utils/createOrmSelector';\n\nimport getRationDayNumber from '../getRationDayNumber';\nimport getRationKey from '../getRationKey';\n\nexport default createSelector(\n getRationDayNumber,\n getRationKey,\n\n (session, number, rationKey) => {\n const { Ration, Day } = session;\n\n if (!Ration.idExists(rationKey)) {\n return false;\n }\n\n const removingDays = Day\n .filter({ custom_рацион_пациента: rationKey })\n .exclude(day => !day.isDeleting);\n\n return !removingDays.count();\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRation from '../getRation';\n\nexport default createSelector(\n getRation,\n\n R.propOr(0, 'custom_продолжительность'),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRation from '../getRation';\n\nexport default createSelector(\n getRation,\n\n R.compose(\n R.not,\n R.propOr(false, 'custom_не_назначен'),\n ),\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nimport getRationKey from '../getRationKey';\n\nexport default createSelector(\n getRationKey,\n\n (session, rationKey) => {\n const { Ration } = session;\n\n const ration = Ration.withId(rationKey);\n\n if (!ration) {\n return false;\n }\n\n return ration[`${appKey}ts9c39c3c1r77`];\n },\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getRationKey from '../getRationKey';\n\nexport default createSelector(\n getRationKey,\n getRationKey,\n\n (session, rationKey) => {\n const { Ration } = session;\n\n return Ration.withId(rationKey).getIsFilled();\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getRation from '../getRation';\n\nexport default createSelector(\n getRation,\n\n R.compose(\n R.not,\n R.propEq('custom_тип_шаблона', 0),\n R.defaultTo({}),\n ),\n);\n","import * as R from 'ramda';\n\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { timeToMinutes } from \"utils/time\";\n\nimport getRationKey from '../getRationKey';\n\nexport default createOrmSelector(\n getRationKey,\n\n (session, rationKey) => {\n const { Ration } = session;\n\n return Ration\n .withId(rationKey)\n .days\n .orderBy('custom_номер')\n .toModelArray()\n .map((day) => {\n const number = day.custom_номер;\n\n return {\n key: day.key,\n date: `День ${number}`,\n sections: Object.keys(day.groups)\n .sort((a, b) => timeToMinutes(a) - timeToMinutes(b))\n .map(time => {\n const group = day.groups[time]\n\n return {\n time,\n data: group.группы_альтернатив.map((group, index) => index),\n }\n })\n .filter(groups => !R.isEmpty(groups.data)),\n };\n });\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\nimport memoizeByResult from 'utils/memoizeByResult';\n\nimport { appKey } from 'config';\n\nimport getRationKey from '../getRationKey';\nimport getRationDayNumber from '../getRationDayNumber';\n\nexport default createOrmSelector(\n getRationKey,\n getRationDayNumber,\n\n memoizeByResult(\n (session, rationKey, currentDay) => {\n const { Ration } = session;\n\n const dishList = Ration\n .withId(rationKey)\n .days\n .toModelArray()\n .map(day => {\n return Object.keys(day.groups).map(time => {\n const groups = day.groups[time].группы_альтернатив;\n\n return groups.map(group => {\n const dishes = Object.keys(group.блюда);\n\n return dishes.map(item => {\n const key = item.replace('cXaX', appKey);\n\n return {\n dish: key,\n number: Number(day.custom_номер),\n isActive: item === group.активное,\n }\n }).flat()\n }).flat()\n }).flat()\n }).flat();\n\n return R.compose(\n R.pickBy(R.complement(R.isEmpty)),\n R.map(R.omit([currentDay])),\n R.map(R.map(R.any(R.prop('isActive')))),\n R.map(R.groupBy(R.prop('number'))),\n R.groupBy(R.prop('dish')),\n )(dishList);\n },\n (_, rationKey) => rationKey,\n ),\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport {\n getSelectValues,\n} from 'modules/Rations/redux/modules/mode';\n\nexport default createSelector(\n R.path(['Rations', 'mode']),\n\n getSelectValues,\n);\n","import { createSelector } from 'reselect';\nimport * as R from 'ramda';\n\nimport getUserCanEditSystemTemplates from 'redux/selectors/getUserCanEditSystemTemplates';\n\nimport getRation from '../getRation';\n\nconst getSourceRation = createSelector(\n getRation,\n state => state,\n\n (ration, state) => {\n if (!ration || !ration.custom_debuginfo) {\n return null;\n }\n\n return getRation(state, {\n rationKey: ration.custom_debuginfo,\n });\n },\n);\n\nexport default createSelector(\n getSourceRation,\n getUserCanEditSystemTemplates,\n\n (sourceRation, isChosen) => {\n if (!isChosen || !sourceRation) {\n return null;\n }\n\n return R.propOr(null, 'custom_название', sourceRation);\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'activeGroup']),\n R.path(['Rations', 'ui', 'activeItem']),\n (state, props) => props.id,\n (state, props) => props.groupKey,\n\n (activeGroup, activeItem, id, groupKey) => {\n const isActiveByGroup = activeGroup && activeGroup === id;\n const isActiveByItem = activeItem && (activeItem[0] === groupKey && activeItem[1] === id);\n\n return isActiveByGroup || isActiveByItem;\n },\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getDayKey from '../getDayKey';\n\nexport default createOrmSelector(\n getDayKey,\n R.path(['Rations', 'ui', 'activeGroup']),\n R.path(['Rations', 'ui', 'activeItem']),\n (state, props) => props.groupKey,\n (state, props) => props.itemKey,\n\n (session, dayKey, activeGroup, activeItem, groupKey, itemKey) => {\n const isInactiveByGroup = activeGroup && activeGroup !== groupKey;\n const isInactiveByItem = activeItem && (activeItem[0] !== groupKey || (itemKey && activeItem[1] !== itemKey));\n\n return isInactiveByGroup || isInactiveByItem;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'isDisplayBzhuInRelativePercents']),\n\n R.identity,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'isFixed']),\n\n R.identity,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'activeMenu']),\n (state, props) => props.itemKey,\n\n R.equals,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'activeMenu']),\n\n item => !!item,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'activeGroup']),\n R.path(['Rations', 'ui', 'activeItem']),\n (state, props) => props.groupKey,\n\n (activeGroup, activeItem, groupKey) => {\n if (groupKey) {\n const isInactiveByGroup = activeGroup && activeGroup !== groupKey;\n\n return isInactiveByGroup || activeItem;\n }\n\n return !!activeItem || !!activeGroup;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['Rations', 'ui', 'width']),\n\n R.identity,\n);\n","import { getSystemTemplates } from 'modules/Rations/redux/modules/ration/selectors';\n\nexport default getSystemTemplates;\n","import { getGeneratorTemplates } from 'modules/Rations/redux/modules/ration/selectors';\n\nexport default getGeneratorTemplates;\n","import { getPersonalTemplate } from 'modules/Rations/redux/modules/ration/selectors';\n\nexport default getPersonalTemplate;\n","import { createSelector } from 'reselect';\n\nimport getInstitutionRationTemplates from '../getInstitutionRationTemplates';\nimport getRationSystemTemplates from '../getRationSystemTemplates';\nimport getRationGeneratorTemplates from '../getRationGeneratorTemplates';\nimport getUserRationTemplates from '../getUserRationTemplates';\n\nexport default createSelector(\n (state, props) => props.type,\n getInstitutionRationTemplates,\n getRationSystemTemplates,\n getUserRationTemplates,\n getRationGeneratorTemplates,\n\n (type, institutionTemplates, commonTemplates, personalTemplates, generatorTemplates) => {\n const templatesMap = {\n common: commonTemplates,\n personal: personalTemplates,\n institution: institutionTemplates,\n generator: generatorTemplates,\n };\n\n return templatesMap[type];\n },\n);\n","import { createSelector } from 'reselect';\n\nimport { getRecommendedTemplates } from 'modules/Rations/redux/modules/ration/selectors';\nimport { getDietanamnezKindsFood } from 'modules/Dietanamnez/redux/selectors';\n\nimport getPatientEnergy from 'redux/selectors/getPatientEnergy';\nimport getPatientDisease from 'redux/selectors/getPatientDisease';\nimport getUserCanEditSystemTemplates from 'redux/selectors/getUserCanEditSystemTemplates';\n\nexport default createSelector(\n getPatientEnergy,\n getPatientDisease,\n getDietanamnezKindsFood,\n state => state,\n getUserCanEditSystemTemplates,\n\n getRecommendedTemplates,\n);\n","import { createSelector } from 'reselect';\n\nimport { getRestTemplates } from 'modules/Rations/redux/modules/ration/selectors';\nimport { getDietanamnezKindsFood } from 'modules/Dietanamnez/redux/selectors';\n\nimport getPatientEnergy from 'redux/selectors/getPatientEnergy';\nimport getPatientDisease from 'redux/selectors/getPatientDisease';\nimport getUserCanEditSystemTemplates from 'redux/selectors/getUserCanEditSystemTemplates';\n\nexport default createSelector(\n getPatientEnergy,\n getPatientDisease,\n getDietanamnezKindsFood,\n state => state,\n getUserCanEditSystemTemplates,\n\n getRestTemplates,\n);\n","import { createSelector } from \"reselect\";\nimport * as R from \"ramda\";\nimport moment from \"moment\";\n\nimport getRation from \"../getRation\";\nimport getRationIsAssigned from \"../getRationIsAssigned\";\nimport getRationIsTemplate from \"../getRationIsTemplate\";\n\nconst getRationTitle = (ration) => {\n const start = moment(R.propOr(null, \"custom_начало_диеты\", ration));\n\n return `${start.format(\"DD.MM.YYYY HH:mm\")}`;\n};\n\nexport default createSelector(\n getRation,\n getRationIsAssigned,\n getRationIsTemplate,\n\n (ration, isAssigned, isTemplate) => {\n return R.compose(\n R.defaultTo(\n isAssigned && !isTemplate ? getRationTitle(ration) : \"Новый рацион\"\n ),\n R.propOr(null, \"custom_название\")\n )(ration);\n }\n);\n","import createSelector from 'redux/utils/createOrmSelector';\n\nimport getApplicationUser from 'redux/selectors/getApplicationUser';\n\nexport default createSelector(\n getApplicationUser,\n\n (session, appUser) => {\n const { Ration } = session;\n\n const lastRation = Ration\n .filter({\n ___owner: appUser,\n custom_не_назначен: true,\n custom_удалено: false,\n })\n .exclude({\n custom_тип_шаблона: 0,\n })\n .exclude({\n isDeleting: true,\n })\n .last();\n\n if (!lastRation) {\n return null;\n }\n\n return lastRation.key;\n },\n);\n","import { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getUserRationNewTemplateKey from '../getUserRationNewTemplateKey';\n\nexport default createSelector(\n getUserRationNewTemplateKey,\n\n (key) => {\n if (!key) {\n return null;\n }\n\n return getKeyInfo(key).record;\n },\n);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport Radio from 'components/Radio';\n\nimport styles from './RadioGroup.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class RadioGroup extends PureComponent {\n static propTypes = {\n disabled: PropTypes.bool,\n mobileVersion: PropTypes.bool,\n items: PropTypes.array.isRequired,\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n }\n\n static defaultProps = {\n disabled: false,\n items: [],\n name: undefined,\n onChange: () => {},\n }\n\n renderRadio(item, index) {\n return (\n
\n \n {item.content}\n \n
\n );\n }\n\n render() {\n return (\n
\n {this.props.items.map(this.renderRadio, this)}\n
\n );\n }\n}\n","export default function minutesToTime(value, delimiter = ' : ') {\n if (!value || value === '0') {\n return null;\n }\n\n const hour = `${Math.floor(value / 60)}`.padStart(2, '0');\n const minutes = `${value - (hour * 60)}`.padStart(2, '0');\n\n return `${hour}${delimiter}${minutes}`;\n}\n","export default function timeToMinutes(value) {\n if (!value) {\n return value;\n }\n\n if (!isNaN(value)) {\n return value\n }\n\n const [hour, minutes] = value.split(':')\n .map(item => parseInt(item.replace('_', '0'), 10) || 0);\n\n return (hour * 60) + minutes;\n}\n","import * as R from 'ramda';\nimport { createAction } from 'redux-act';\nimport { attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetch,\n save,\n} = generator({\n name: 'staffFlags',\n tableId: 188,\n parseItem: R.evolve({\n custom_пользователь: R.propOr(null, 'key'),\n }),\n});\n\nexport default class WorkerFlags extends Model {\n static modelName = 'WorkerFlags';\n\n static options = {\n idAttribute: 'key',\n };\n\n static fields = {\n custom_пользователь: attr(),\n custom_показана_подсказка_по_списку: attr(),\n custom_показана_подсказка_по_диаграмме: attr(),\n }\n\n static reducer = reducer;\n\n toString() {\n return `WorkerFlags: ${this.key}`;\n }\n}\n\nexport const saveFlag = createAction('STAFFFLAGS__SAVE_FLAG')\n\nexport {\n fetch,\n save,\n};\n","import { createAction, createReducer } from 'redux-act';\n\nconst initialState = {\n supplement: null,\n};\n\nexport const setHoveredSupplement = createAction('SUPPLEMENTNUI__SET_HOVERED_SUPPLEMENT');\nexport const showErrorModal = createAction('SUPPLEMENTNUI__SHOW_ERROR_MODAL');\nexport const hideErrorModal = createAction('SUPPLEMENTNUI__HIDE_ERROR_MODAL');\n\nconst handleSetHoveredSupplement = (state, payload) => {\n if (state.supplement === payload.key) {\n return state\n }\n\n return {\n ...state,\n supplement: payload.key,\n }\n};\n\nconst handleShowErrorModal = (state, payload) => ({\n ...state,\n modal: payload,\n})\n\nconst handleHideErrorModal = (state, payload) => ({\n ...state,\n modal: null,\n})\n\nexport default createReducer({\n [setHoveredSupplement]: handleSetHoveredSupplement,\n [showErrorModal]: handleShowErrorModal,\n [hideErrorModal]: handleHideErrorModal,\n}, initialState);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { getItem } from 'redux/hor/module/selectors';\n\nimport orm from 'redux/orm';\n\nconst getOrmItem = createOrmSelector(\n (state, key) => key,\n\n (session, key) => {\n let result;\n\n const models = R.pluck('modelName', orm.registry);\n const items = R.compose(\n R.values,\n R.pick(models),\n )(session);\n\n R.forEach((Model) => {\n if (Model.idExists(key)) {\n result = Model.withId(key).ref;\n }\n }, items);\n\n return result;\n },\n);\n\nfunction getItemByKey(key, state) {\n let result;\n\n R.forEachObjIndexed((val, prop) => {\n let item;\n\n if (prop[0].toUpperCase() === prop[0]) {\n item = getItemByKey(key, val);\n } else {\n item = getItem(key, val);\n }\n\n if (item) {\n result = item;\n }\n }, state);\n\n return result;\n}\n\nexport default R.curry((key, state) => {\n const data = getItemByKey(key, state);\n const ormItem = getOrmItem(state, key);\n\n return data || ormItem;\n});\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './Legend.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Legend extends PureComponent {\n static propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n required: PropTypes.bool,\n }\n\n static defaultProps = {\n children: undefined,\n required: false,\n }\n\n render() {\n const { required } = this.props;\n\n return (\n \n {this.props.children}\n {required && *}\n \n );\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"Edj3N\",\"column\":\"g5j8P\",\"row_reverseIndent\":\"yf1Bo\",\"row_maximize\":\"PfpMh\",\"column_medium_0\":\"URQ1k\",\"column_medium_1\":\"_2toY-\",\"column_medium_2\":\"xEgKO\",\"column_medium_3\":\"sdXl7\",\"column_medium_4\":\"UAL7e\",\"column_medium_5\":\"mXRgX\",\"column_medium_6\":\"urNAT\",\"column_offsetMedium_0\":\"v7l+W\",\"column_offsetMedium_1\":\"MmXM8\",\"column_offsetMedium_2\":\"igrty\",\"column_offsetMedium_3\":\"_28pWo\",\"column_offsetMedium_4\":\"_8hGGE\",\"column_offsetMedium_5\":\"u95RU\",\"column_offsetMedium_6\":\"M4riZ\",\"row_width_lt_720\":\"UZuS4\",\"column_small_0\":\"_1Tp5h\",\"column_indent\":\"crVlk\",\"column_small_1\":\"_1djQN\",\"column_small_2\":\"Y+mxn\",\"column_small_3\":\"oP3Y9\",\"column_small_4\":\"dV-MC\",\"column_offsetSmall_0\":\"tsNmH\",\"column_offsetSmall_1\":\"LKA4N\",\"column_offsetSmall_2\":\"IUnhR\",\"column_offsetSmall_3\":\"rg+1G\",\"column_offsetSmall_4\":\"ogB+Z\",\"row_width_gt_1020\":\"VwZ8L\",\"column_big_0\":\"nldV+\",\"column_big_1\":\"_74BGH\",\"column_big_2\":\"_9pGtD\",\"column_big_3\":\"_3-+vg\",\"column_big_4\":\"AeGbI\",\"column_big_5\":\"xPzW-\",\"column_big_6\":\"ryO6r\",\"column_big_7\":\"CgZpU\",\"column_big_8\":\"cLILP\",\"column_offsetBig_0\":\"_9GVj5\",\"column_offsetBig_1\":\"LQn1N\",\"column_offsetBig_2\":\"_3v3di\",\"column_offsetBig_3\":\"LG+xv\",\"column_offsetBig_4\":\"jdVDp\",\"column_offsetBig_5\":\"vs+WQ\",\"column_offsetBig_6\":\"iLFzi\",\"column_offsetBig_7\":\"Gbk1o\",\"column_offsetBig_8\":\"_5nBq2\",\"row_align_center\":\"b-O2s\",\"column_borderRight\":\"aR3uA\"};","import { version } from 'config';\nimport { setItem, getItem, clear } from 'utils/localStorage';\n\nconst appKeyVersion = 'version_app';\n\n\nconst setItemLocalStorage = ({ cacheKey, response }) => setItem(cacheKey, response);\nconst getItemLocalStorage = ({ cacheKey }) => getItem(cacheKey);\n\nconst initLocalStorage = () => {\n const appVersionLS = localStorage.getItem(appKeyVersion);\n\n if (!appVersionLS || appVersionLS !== version) {\n clear();\n localStorage.setItem(appKeyVersion, version);\n }\n};\n\nexport { getItemLocalStorage, setItemLocalStorage, initLocalStorage };\n","/* eslint-disable no-param-reassign */\n\nconst withFetcher = fetcher => (target) => {\n target.fetcher = fetcher;\n\n return target;\n};\n\nexport default withFetcher;","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport * as R from 'ramda';\nimport { Field } from 'redux-form';\nimport Checkbox from './Checkbox';\n\nclass CheckboxConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n name: undefined,\n value: undefined,\n onChange: () => {},\n };\n\n renderField = (field = {}) => {\n const handleChange = (checked) => {\n const value = field.input.value || [];\n const fieldValue = this.props.value;\n\n setTimeout(this.context.onFormChange, 0);\n\n if (!fieldValue) {\n this.props.onChange(checked);\n field.input.onChange(checked);\n return;\n }\n\n const newValue = checked ?\n R.uniq(R.concat(value, [this.props.value])) :\n R.without([this.props.value], value);\n\n this.props.onChange(checked);\n field.input.onChange(newValue);\n };\n\n const checked = this.props.value ?\n R.contains(this.props.value, field.input.value) :\n field.input.checked;\n\n return (\n \n );\n }\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n\n if (!reduxForm || !R.contains(this.props.name, reduxForm.fields)) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(CheckboxConnected)","/* eslint-disable no-param-reassign */\n\nexport default function pagePermissions(param) {\n const config = [].concat(param);\n\n return (target) => {\n target.pagePermission = config;\n\n return target;\n };\n}\n","import * as R from 'ramda';\nimport moment from 'moment';\nimport { all, takeEvery, put, select } from 'redux-saga/effects';\nimport { push } from 'react-router-redux';\nimport { reset } from 'redux-form';\n\nimport {\n getPatientId,\n getUserPatientReceptions,\n} from 'redux/selectors';\nimport { setNotification } from 'redux/modules/notification';\nimport {\n saveSuccess,\n} from './index';\n\nfunction* nextReceptionNotificationFlow() {\n const hasNotification = yield select(R.pathOr('false', ['notification', 'isNextReception']));\n const receptionList = yield select(state =>\n getUserPatientReceptions(state, {\n startDate: moment().toISOString(),\n endDate: moment().add(1, 'day').toISOString(),\n custom_отключено: false,\n }));\n if (hasNotification && !receptionList.length) {\n yield put(setNotification({\n type: 'global',\n isNextReception: false,\n }));\n } else if (receptionList.length) {\n yield put(setNotification({\n type: 'global',\n isNextReception: {\n receptionKey: receptionList[0].key,\n },\n }));\n }\n}\n\nfunction* saveSuccessFlow({ payload: { form } }) {\n // There are two forms, one on patient info page and one on calendar\n // Currently only the former uses URL to open modal,\n // so redirect to \"parent\" page after save success\n yield put(reset(form));\n\n if (form === 'profile_patient_reception_form') {\n const patientId = yield select(getPatientId);\n yield put(push(`/patients/${patientId}`));\n }\n // After closing a notification next one should appear if exists\n if (form === 'patient_reception_notification_form') {\n yield nextReceptionNotificationFlow();\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery('LOADING_FINISH', nextReceptionNotificationFlow),\n takeEvery(saveSuccess, saveSuccessFlow),\n ]);\n}\n","import * as R from 'ramda';\nimport { attr, Model, fk } from 'redux-orm';\nimport moment from 'moment';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nconst DEFAULT_VIEW = 'ts5c172cs9r616';\nconst ACTIVE_VIEW = 'active';\n\nconst {\n fetch,\n save,\n saveSuccess,\n removeWithUndo,\n\n reducer,\n} = generator({\n name: 'PatientReceptions',\n tableId: 172,\n parseItem: R.evolve({\n custom_vremya: value => R.isNil(value) ? value : moment(value),\n custom_время_удаления: value => R.isNil(value) ? value : moment(value),\n custom_planned_patient: R.propOr(null, 'key'),\n ___parent: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetch,\n save,\n saveSuccess,\n removeWithUndo,\n};\n\nexport default class PatientReceptions extends Model {\n static modelName = 'PatientReceptions';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('Worker', '_worker'),\n custom_vremya: attr(),\n custom_отключено: attr(),\n custom_planned_patient: attr(),\n custom_время_удаления: attr(),\n }\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchWithDefaultView = fetchWithView(fetch, DEFAULT_VIEW);\nexport const fetchWithActiveView = fetchWithView(fetch, ACTIVE_VIEW, {\n lazyLoad: true,\n});\n\nexport { default as saga } from './saga';\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nexport default class MiddleColumnHead extends PureComponent {\n static propTypes = {\n className: PropTypes.string.isRequired,\n }\n\n static defaultProps = {\n className: undefined,\n }\n\n render() {\n return (\n
\n
-100%
\n
Норма
\n
100%
\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport debounce from 'lodash.debounce';\nimport { appKey } from 'config';\nimport { createStructuredSelector } from 'reselect';\n\nimport roundNumber from 'utils/roundNumber';\n\nimport Text from 'components/Text';\nimport Info from 'components/Info';\nimport Icon from 'components/Icon';\nimport Link from 'components/Link';\nimport Barchart from 'components/Barchart';\n\nimport getNormText from './utils/getNormText';\n\nimport MiddleColumnHeadDefault from './default/MiddleColumnHead';\nimport MiddleColumnHeadChemical from './chemical/MiddleColumnHead';\n\nimport styles from './BarchartTable.module.css';\nimport getLocalization from 'redux/selectors/getLocalization';\nimport { connect } from 'utils/react-redux';\n\nconst cx = classNames.bind(styles);\n\nconst noInfo = {\n [`${appKey}t28r219`]: (field, patientId) => (\n
\n \n \n Для норм ЭЦ и
\n БЖУ посчитайте\n
\n \n суточ. потр-ние\n \n
\n
\n ),\n};\n\nconst mapStateToProps = createStructuredSelector({\n tooltip: state => getLocalization(state).tooltip_header_ind_norm,\n});\n\nclass BarchartTable extends PureComponent {\n static propTypes = {\n type: PropTypes.oneOf(['chemical']),\n data: PropTypes.array,\n patientId: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n fieldRenderer: PropTypes.func,\n valueName: PropTypes.string,\n noNormHint: PropTypes.bool,\n disabled: PropTypes.bool,\n multiplier: PropTypes.number,\n color: PropTypes.string,\n onToggle: PropTypes.func,\n isOpen: PropTypes.bool,\n noNorm: PropTypes.bool,\n noFact: PropTypes.bool,\n size: PropTypes.string,\n Tooltip: PropTypes.func,\n TooltipElement: PropTypes.func,\n };\n\n static defaultProps = {\n type: undefined,\n data: [],\n patientId: undefined,\n fieldRenderer: undefined,\n valueName: 'Факт',\n noNormHint: false,\n disabled: false,\n multiplier: 1,\n color: undefined,\n onToggle: () => { },\n isOpen: undefined,\n };\n\n state = {\n active: [],\n toolTipField: null,\n toolTipX: 0,\n toolTipY: 0,\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize);\n setTimeout(() => this.handleResize(), 0);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = debounce(() => this.handleMiddleColumn(this.middleColumn), 300)\n\n handleMiddleColumn = (node) => {\n if (!node) {\n return;\n }\n\n const nodeRect = node.getBoundingClientRect();\n const widthMiddleColumn = nodeRect.width - 40;\n const heightMiddleColumn = nodeRect.height;\n\n this.setState({\n widthMiddleColumn,\n heightMiddleColumn,\n });\n\n this.middleColumn = node;\n }\n\n handlePositionMouse = ({ x, y }) => {\n if (this.state.toolTipField) {\n this.setState({\n toolTipX: x,\n toolTipY: y,\n });\n }\n };\n\n handleMouseMove = (event) => {\n const x = event.clientX;\n const y = event.clientY;\n\n this.handlePositionMouse({ x, y });\n };\n\n handleMouseLeave = () => {\n this.setState({\n toolTipField: null,\n });\n };\n\n handleMouseEnter = (field, event) => {\n this.setState({\n toolTipField: field,\n toolTipX: event.clientX,\n toolTipY: event.clientY,\n });\n };\n\n handleActiveHiddenRow = R.memoizeWith(R.identity, key => () => {\n const { active } = this.state;\n const isRemove = R.includes(key, active);\n const result = isRemove ? R.without(key, active) : R.concat(active, [key]);\n\n this.setState({\n active: result,\n });\n })\n\n renderHead() {\n const infoNorm = (\n \n Инд. норма\n \n );\n\n const { type } = this.props;\n const columnHeadByType = {\n chemical: MiddleColumnHeadChemical,\n };\n const MiddleColumnHead = columnHeadByType[type] || MiddleColumnHeadDefault;\n\n return (\n
\n
\n {this.props.noFact ||\n
\n \n {this.props.valueName}\n \n
\n }\n \n \n
\n {this.props.noNorm ||\n
\n
\n \n {this.props.tooltip}\n \n
\n
\n }\n
\n );\n }\n\n renderBody() {\n const { data, isOpen } = this.props;\n const zeroedLength = data.length - 1;\n const isCanBeHidden = isOpen !== undefined;\n\n return data.map((group, index) => {\n const isHidden = isCanBeHidden && index !== 0 && !isOpen;\n const isShouldRenderToggler = isCanBeHidden && index === 0;\n\n return (\n
\n {this.renderGroup(group, 1, isHidden)}\n {isShouldRenderToggler && this.renderToggler()}\n {!isShouldRenderToggler && !isHidden && index !== zeroedLength &&\n
\n {this.renderRow({})}\n
\n }\n
\n );\n });\n }\n\n renderToggler() {\n const { isOpen } = this.props;\n\n return (\n
\n \n
\n );\n }\n\n renderGroup(group, level, isHidden = false) {\n if (!group.subitems || !group.subitems.length) {\n return [];\n }\n\n return group.subitems.map(field => (\n 1 && !R.contains(group.element, this.state.active)),\n })}\n >\n {this.renderRow(field, level)}\n {this.renderGroup(field, level + 1)}\n \n ));\n }\n\n renderRow(field, level) {\n const { TooltipElement } = this.props;\n const fontColor = field.color || (level === 1 ? null : 'gray');\n const sumValue = !R.isNil(field.data) ? R.sum([].concat(field.data)) : null;\n\n return (\n \n this.handleMouseEnter(field, event)}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\n {!R.isEmpty(field) &&\n this.renderElementCell(field, fontColor)\n }\n {this.state.toolTipField === field && TooltipElement &&\n \n }\n \n {this.props.noFact ||\n
\n {!R.isEmpty(field) &&\n \n {this.renderValueCell(sumValue, fontColor, field)}\n
\n }\n \n }\n
\n \n
\n {this.props.noNorm ||\n
\n {this.renderNormCell(field, fontColor)}\n
\n }\n \n );\n }\n\n renderElementCell(field, fontColor) {\n const { active } = this.state;\n const children = field.subitems || [];\n const withChildren = children.length > 0;\n const isActiveChild = R.includes(field.element, active);\n\n const text = `${field.label} ${(this.props.noFact || !field.size) ? '' : `, ${field.size}`}`;\n\n return (\n \n \n {text}\n \n {withChildren &&\n \n }\n \n );\n }\n\n renderValueCell(value, fontColor, field) {\n const { fieldRenderer } = this.props;\n const formattedValue = typeof value === 'number' ? roundNumber(2, value) : '-';\n if (R.is(Function, fieldRenderer)) {\n return fieldRenderer({\n ...field,\n name: field.element,\n value,\n });\n }\n\n if (field.element === \"c105a902t28r219\") {\n return (\n \n {Math.round(value)}\n \n )\n }\n\n return (\n \n {typeof formattedValue === \"number\" ? formattedValue.toFixed(2) : formattedValue}\n \n );\n }\n\n renderNormCell(field, fontColor) {\n if (!field.normMin && !field.normMax && noInfo[field.element] && !this.props.noNormHint) {\n return noInfo[field.element](field, this.props.patientId);\n }\n\n return (\n \n {getNormText(field)}\n \n );\n }\n\n render() {\n const { size } = this.props;\n\n return (\n \n {this.renderHead()}\n {this.renderBody()}\n \n );\n }\n}\n\nexport default R.compose(\n connect(mapStateToProps),\n)(BarchartTable)","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\nimport { defaultIcon } from 'helpers/constants';\n\nexport const getGroups = createSelector(\n getItemsArray,\n\n R.map(item => ({\n key: item.key,\n label: item.custom_группа || item.key,\n })),\n);\n\nexport const getCatalogGroups = createSelector(\n getItemsArray,\n\n R.compose(\n R.sortBy(R.prop('title')),\n R.map(item => ({\n key: item.key,\n id: getKeyInfo(item.key).record,\n title: item.custom_группа,\n icon: item.custom_иконка_url || defaultIcon,\n })),\n ),\n);\n\nexport const getSelectData = createSelector(\n getItemsArray,\n\n R.compose(\n R.sortBy(R.prop('label')),\n R.map(i => ({\n value: i.key,\n label: i.custom_группа,\n })),\n ),\n);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'ProductGroups',\n tableId: 52,\n parseItem: R.evolve({\n custom_производитель: R.propOr(null, 'key'),\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c52cs9r342', {\n useLS: true,\n});\n\nexport {\n getKeyById,\n getItemById,\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getGroups,\n getCatalogGroups,\n getSelectData,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\nimport { defaultIcon } from 'helpers/constants';\n\nexport const getSelectData = createSelector(\n getItemsArray,\n (state, groups) => groups,\n\n (items, groups) => R.compose(\n R.sortBy(R.prop('label')),\n R.map(item => ({\n value: item.key,\n label: item.custom_наименование,\n })),\n R.filter(item => R.isEmpty(groups) || R.contains(item.key, groups)),\n )(items),\n);\n\nexport const getCatalogGroups = createSelector(\n getItemsArray,\n (state, groups) => groups,\n\n (items, groups) => R.compose(\n R.sortBy(R.prop('title')),\n R.map(item => ({\n key: item.key,\n id: getKeyInfo(item.key).record,\n title: item.custom_наименование,\n custom_наименование: item.custom_наименование,\n custom_картинка_url: item.custom_картинка_url,\n image: item.custom_картинка_url,\n icon: defaultIcon,\n })),\n R.filter(item => R.isEmpty(groups) || R.contains(item.key, groups)),\n )(items),\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'SupplementGroups',\n tableId: 159,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c159cs9r567');\n\nexport {\n getKeyById,\n getItemById,\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getCatalogGroups,\n getSelectData,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport { appKey } from 'config';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nconst visibleRoles = [\n `${appKey}ts8r4`,\n `${appKey}ts8r18`,\n `${appKey}ts8r19`,\n];\n\nexport const getAllRoles = memoizee(\n R.compose(\n R.map(item => ({\n key: item.key,\n label: R.pathOr(null, ['custom_роль', 'label'], item),\n role: R.pathOr(null, ['custom_роль', 'key'], item),\n rights: R.compose(\n R.map(R.always(true)),\n R.indexBy(R.prop('key')),\n R.defaultTo([]),\n R.propOr([], 'custom_права_роли'),\n )(item),\n })),\n R.sortBy(item => visibleRoles[item.key]),\n getItemsArray,\n ),\n { max: 1 },\n);\n\n\nexport const getRoles = memoizee(\n R.compose(\n R.filter(R.pathSatisfies(R.contains(R.__, visibleRoles), ['role'])),\n getAllRoles,\n ),\n { max: 1 },\n);\n\nexport const getRolesSelect = memoizee(\n R.compose(\n R.map(item => ({\n value: item.role,\n label: item.label,\n })),\n getRoles,\n ),\n { max: 1 },\n);\n\nexport const getRole = (role, state) =>\n R.compose(\n R.find(R.propEq('role', role)),\n getAllRoles,\n )(state);\n\nexport const getRoleRights = R.compose(\n R.propOr({}, 'rights'),\n getRole,\n);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Roles',\n tableId: 102,\n parseItem: R.evolve({\n custom_роль: R.evolve({\n label: R.ifElse(R.equals('Суперпользователь'), R.always('Администратор'), R.identity),\n }),\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c102cs9r273', {\n useLS: true,\n});\n\nexport {\n getRoles,\n getRolesSelect,\n getRole,\n getRoleRights,\n} from './seletors';\n\nexport {\n fetch,\n};\n\nexport default reducer;\n","import * as R from 'ramda';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getSelectValues = R.compose(\n R.sortBy(R.prop('label')),\n R.map(item => ({\n list: R.propOr([], 'custom_схема_питания', item),\n label: R.propOr(null, 'custom_наименование', item),\n value: R.propOr(null, 'key', item),\n })),\n getItemsArray,\n);\n","import generator from 'redux/hor/module';\n\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'rationMode',\n tableId: 37,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c37cs9r73', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getSelectValues,\n} from './selectors';\n\nexport default reducer;\n","const text = {\n email: 'Неверный формат почты',\n date: 'Некорректная дата',\n time: 'Некорректное время',\n locate: 'Кириллица, латиница и дефис',\n locateNum: 'Кириллица, латиница и дефис',\n positiveNumber: 'Допустимы только числа',\n numeric: 'Допустимы только числа',\n required: 'Поле обязательно для заполнения',\n nonRemovable: 'Поле обязательно для заполнения',\n minDate: 'Эта дата уже прошла',\n maxDate: 'Эта дата еще не наступила',\n min: params => `Необходимо ввести не меньше ${params.limiter} символов`,\n max: params => `Нельзя ввести больше ${params.limiter} символов`,\n phone: 'Неверный формат телефона',\n simplePass: 'Только латиница, цифры и спец.символы',\n typeFiles: 'Неверный тип файла',\n sizeFiles: 'Превышен размер файла',\n unique: 'Такое значение уже существует',\n};\n\nexport default text;\n","import * as R from 'ramda';\nimport { attr, Model } from 'redux-orm';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n remove,\n} = generator({\n name: 'SupplementDish',\n tableId: 160,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_бад: R.propOr(null, 'key'),\n }),\n});\n\nexport default class SupplementDish extends Model {\n static modelName = 'SupplementDish';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(),\n custom_бад: attr(),\n custom_порций: attr(),\n custom_курс: attr(),\n }\n\n static reducer = reducer;\n\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchItem = fetch;\nexport const fetchList = fetchWithView(fetch, 'ts5c160cs9r574');\n\nexport {\n fetch,\n fetchSuccess,\n\n create,\n save,\n saveSuccess,\n remove,\n};\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\n\nimport Field from 'components/Field';\nimport Icon from 'components/Icon';\n\nimport styles from './FieldPassword.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class FieldPassword extends PureComponent {\n static propTypes = {\n value: PropTypes.string,\n }\n\n state = {\n type: 'password',\n }\n\n handleTypeChange = () => {\n this.setState(({ type }) => ({\n type: type === 'password' ? 'text' : 'password',\n }));\n }\n\n render() {\n return (\n
\n \n {this.props.value &&\n \n }\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { Field as FormField } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport FieldPassword from './FieldPassword';\n\nclass FieldPasswordConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n };\n\n static defaultProps = {\n name: undefined,\n onBlur: () => {},\n onChange: () => {},\n onFocus: () => {},\n };\n\n handleFocus = onFocus => (event) => {\n this.value = event.target.value;\n onFocus(event);\n this.props.onFocus(event);\n };\n\n handleBlur = onBlur => (eventOrValue) => {\n onBlur(eventOrValue);\n\n this.props.onBlur(eventOrValue);\n\n if ('target' in eventOrValue && this.value !== eventOrValue.target.value && this.context.onFormChange) {\n this.context.onFormChange();\n }\n };\n\n handleChange = onChange => (value, event) => {\n onChange(event);\n\n this.props.onChange(value, event);\n }\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n const isFieldArray = R.test(/\\[\\d+\\]/, this.props.name || '');\n\n if (!reduxForm || (!R.contains(this.props.name, reduxForm.fields) && !isFieldArray)) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(FieldPasswordConnected)","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getPortions = memoizee(\n R.compose(\n R.sortBy(R.prop('label')),\n R.map(i => ({\n name: i.custom_наименование,\n label: i.custom_название,\n value: i.key,\n amount: i.custom_мера,\n unit: R.pathOr(null, ['custom_ед_изм', 'label'], i),\n })),\n getItemsArray,\n ),\n { max: 1 },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Portions',\n tableId: 62,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c62cs9r355', {\n useLS: true,\n});\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getPortions,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n disease => disease,\n (disease, state) => getItemsArray(state),\n\n (disease, items) => {\n const diseaseMap = R.indexBy(R.prop('value'), disease);\n\n return R.map(item => ({\n label: item.custom_полное_наименование,\n value: item.key,\n group: item.custom_заболевание,\n hint: R.pathOr(null, [item.custom_заболевание, 'hint'], diseaseMap),\n }))(items);\n },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Illness',\n tableId: 151,\n parseItem: (item) => {\n item.custom_заболевание = item.custom_заболевание_ключ; // eslint-disable-line\n\n return item;\n },\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c151cs9r537', {\n useLS: true,\n});\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n} = generator({\n name: 'SubscriptionTariffs',\n tableId: 116,\n parseItem: R.evolve({\n custom_количество_дней_базового_периода: R.propOr(null, 'key'),\n custom_состав_тарифа: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c116cs9r394', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getItemsArray,\n} from 'redux/hor/module/selectors';\n\nexport default reducer;\n","import { createEvent, createStore } from \"effector\";\n\n/* Синхронизируем стор редакса с стором эффектора до тех пора, пока всё не переедет с редакса */\n\ntype StoreType = any;\n\nexport const $reduxStore = createStore(null);\n\nexport const updateStore = createEvent(\"UPDATE_STORE\");\n\n$reduxStore.on(updateStore, (_, data) => data);\n\nexport const fromReduxState = (selector: (state: any) => T) =>\n $reduxStore.map((state) => selector(state));\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getSelectData = memoizee(\n R.compose(\n R.sortBy(R.prop('label')),\n R.map(i => ({\n value: i.key,\n label: i.custom_полное_наименование,\n })),\n getItemsArray,\n ),\n { max: 1 },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'CookingTechniques',\n tableId: 50,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c50cs9r354', {\n useLS: true,\n});\n\nexport {\n getItem,\n} from 'redux/hor/module/selectors';\n\nexport {\n getSelectData,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getRightsList = memoizee(R.compose(\n R.map(item => ({\n key: R.prop('key', item),\n title: R.prop('custom_наименование', item),\n })),\n R.sortBy(R.prop('custom_порядок')),\n getItemsArray,\n));\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Rights',\n tableId: 58,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c58cs9r127', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getKeyById,\n} from 'redux/hor/module/selectors';\n\nexport {\n getRightsList,\n} from './seletors';\n\nexport default reducer;\n","import { takeLatest, all, put, call } from 'redux-saga/effects';\n\nimport delay from 'utils/delay';\n\nimport request from 'utils/api/request';\n\nimport {\n ping,\n pingSuccess,\n pingFailure,\n} from './index';\n\nfunction* pingFlow() {\n try {\n yield call(request.get, '/ping/json/v2');\n yield put(pingSuccess());\n } catch (error) {\n yield put(pingFailure({\n error,\n }));\n yield delay(5000);\n yield pingFlow();\n }\n}\n\nexport default function* saga() {\n yield all([\n takeLatest(ping, pingFlow),\n ]);\n}\n","import * as R from 'ramda';\nimport { takeEvery, all, call, select, put } from 'redux-saga/effects';\n\nimport { appKey } from 'config';\nimport { request } from 'utils/api';\n\nimport {\n getInstitutionKey\n} from 'redux/selectors';\n\nimport runButton from 'redux/utils/runButton';\nimport getSubitemsEffect from 'redux/utils/getSubitemsEffect';\n\nimport subitems from 'redux/modules/subitems';\n\nimport {\n getApplicationUser\n} from 'redux/selectors';\n\nimport {\n save,\n fetchItem,\n fetchSuccess,\n fetchItemSuccess,\n fetchItemFailure,\n\n stopAuto,\n stopAutoSuccess,\n stopAutoFailure,\n\n fetchList,\n fetchListSuccess,\n fetchListFailure,\n\n trialInform,\n} from './index';\n\nfunction* fetchItemFlow(action) {\n const userAkey = yield select(getApplicationUser)\n try {\n const response = yield call(() => request.post(`/${appKey}t179r/json/v2`, {\n parameters: {\n userAkey,\n },\n }, {\n headers: {\n Function: 'getFullUserInfo',\n },\n }));\n\n const data = response.data.учреждение;\n yield put(fetchSuccess({\n response: data,\n }))\n const effects = getSubitemsEffect(data, subitems);\n\n yield all(effects);\n yield put(fetchItemSuccess())\n } catch (error) {\n yield put(fetchItemFailure({\n ...action.payload,\n error,\n }))\n } finally {\n action.meta.resolve();\n }\n}\n\nfunction* stopAutoFlow(action) {\n const institution = yield select(getInstitutionKey);\n\n try {\n yield call(() => request.post(`/${appKey}t179r/json/v2`, {\n parameters: {\n inst_key: institution,\n cancellation_reason: action.payload.join(', '),\n },\n }, {\n headers: {\n Function: 'stopAutomaticRenewal',\n },\n }));\n\n yield call(fetchItemFlow);\n yield put(stopAutoSuccess())\n } catch (error) {\n yield put(stopAutoFailure({\n ...action.payload,\n error,\n }))\n } finally {\n action.meta.resolve();\n }\n}\n\nfunction* fetchListFlow(action) {\n try {\n const response = yield call(() => request.post(`/${appKey}t179r/json/v2`, {}, {\n headers: {\n token: action.payload.token,\n Function: 'getInstitutionsList',\n },\n }));\n\n yield put(fetchSuccess({\n ...action.payload,\n response: R.over(R.lensProp(['list']), (data) => {\n return Object.keys(data).map(key => ({\n key,\n fields: {\n custom_название: data[key]\n }\n }))\n }, response.data)\n }))\n yield put(fetchListSuccess())\n } catch (error) {\n yield put(fetchListFailure({\n ...action.payload,\n error,\n }))\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(trialInform, runButton({\n button: 'custom.informed',\n save,\n data: {\n custom_информирован_о_триальной_подписке: true,\n },\n })),\n\n takeEvery(fetchItem, fetchItemFlow),\n takeEvery(stopAuto, stopAutoFlow),\n takeEvery(fetchList, fetchListFlow)\n ]);\n}\n","import * as R from 'ramda';\nimport { all, takeLatest, put, select } from 'redux-saga/effects';\nimport delay from 'utils/delay';\n\nimport {\n setNotification,\n} from './reducer';\n\nimport {\n getCurrentNotification,\n} from './selectors';\n\nfunction* setNotificationFlow() {\n yield delay(1000);\n\n const current = yield select(getCurrentNotification);\n\n if (!current) {\n return;\n }\n\n if (R.includes(current.type, ['isDone', 'isInvalid'])) {\n yield delay(2000);\n\n yield put(setNotification({\n [current.type]: false,\n }));\n }\n\n if (current.type === 'isRemove') {\n const time = current.content.duration;\n const nextTime = time - 1;\n\n if (nextTime > 0) {\n yield put(setNotification({\n isRemove: {\n ...current.content,\n duration: nextTime,\n },\n }));\n } else {\n yield put(setNotification({\n isRemove: false,\n }));\n }\n }\n}\n\nexport default function* saga() {\n yield all([\n takeLatest(setNotification, setNotificationFlow),\n ]);\n}\n","import * as R from 'ramda';\nimport { takeEvery, all, put, select, call } from 'redux-saga/effects';\n\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\n\nimport dispatchAndWait from 'redux/utils/dispatchAndWait';\nimport runButton from 'redux/utils/runButton';\nimport {\n trackAddMeal,\n} from 'utils/carrot';\nimport isLocalKey from 'utils/isLocalKey';\n\nimport { getItemsArrayByParent as getTechcard, save as saveTechcard } from 'redux/modules/productTechCard';\nimport {\n getItemsArrayByParent as getComposition,\n save as saveComposition,\n fetchSuccess as fetchCompositionSuccess,\n} from 'redux/modules/productComposition';\n\nimport {\n save,\n saveSuccess,\n fetchComposition,\n fetchSystemMeals,\n fetchUserMeals,\n fetchCatalogList,\n fetchCatalogListSuccess,\n calcComposition,\n copyComposition,\n} from './index';\n\nfunction* calcCompositionFlow(action) {\n const { key } = action.payload;\n\n yield put(save({\n key,\n data: {\n isCalcComposition: true,\n },\n isLocal: true,\n }));\n\n const response = yield call(request.post, `/${appKey}t179r/json/v2`, {\n parameters: {\n dish: key,\n },\n }, {\n headers: {\n Function: 'fillCompositionDish',\n },\n });\n\n yield put(fetchCompositionSuccess({\n response: {\n list: response.data,\n },\n parents: [key],\n }));\n\n yield put(save({\n key,\n data: {\n isCalcComposition: false,\n },\n isLocal: true,\n }));\n}\n\nfunction* saveSuccessFlow(action) {\n const { meta, payload } = action;\n const { key, response } = payload;\n const newKey = R.pathOr(null, ['data', 'key'], response);\n\n if (key === newKey || !newKey) {\n return;\n }\n\n const techcard = yield select(state => getTechcard(key, state.productTechCard));\n const composition = yield select(state => getComposition(key, state.productComposition));\n\n const techcardEffect = techcard.map(item => put(saveTechcard({\n key: item.key,\n data: {\n ___parent: newKey,\n },\n })));\n const compositionEffect = composition.map(item => put(saveComposition({\n key: item.key,\n data: {\n ___parent: newKey,\n },\n })));\n\n yield all(techcardEffect);\n yield all(compositionEffect);\n\n if (isLocalKey(meta.entity.key)) {\n yield trackAddMeal();\n }\n}\n\nfunction* fetchCatalogListFlow(action) {\n try {\n yield all([\n dispatchAndWait(fetchSystemMeals(action.payload)),\n dispatchAndWait(fetchUserMeals(action.payload)),\n ])\n } catch (error) { }\n\n yield put(fetchCatalogListSuccess());\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(saveSuccess, saveSuccessFlow),\n takeEvery(fetchCatalogList, fetchCatalogListFlow),\n takeEvery(calcComposition, calcCompositionFlow),\n takeEvery(copyComposition, runButton({\n button: `${appKey}ts9c4c3c1r125`,\n fetch: fetchComposition,\n save,\n })),\n ]);\n}\n","import { takeEvery, all, put, select } from 'redux-saga/effects';\nimport * as R from 'ramda';\n\nimport { appKey } from 'config';\n\nimport dispatchAndWait from 'redux/utils/dispatchAndWait';\nimport runButton from 'redux/utils/runButton';\n\nimport { getItemsArrayByParent as getComposition, save as saveComposition } from 'redux/modules/productComposition';\n\nimport {\n save,\n saveSuccess,\n fetchItem,\n fetchSystemIngredients,\n fetchUserIngredients,\n fetchCatalogList,\n fetchCatalogListSuccess,\n copyComposition,\n} from './index';\n\nfunction* saveSuccessFlow(action) {\n const { payload } = action;\n const { key, response } = payload;\n const newKey = R.pathOr(null, ['data', 'key'], response);\n\n if (key === newKey || !newKey) {\n return;\n }\n\n const composition = yield select(state => getComposition(key, state.productComposition));\n\n const compositionEffect = composition.map(item => put(saveComposition({\n key: item.key,\n data: {\n ___parent: newKey,\n },\n })));\n\n yield all(compositionEffect);\n}\n\n\nfunction* fetchCatalogListFlow(action) {\n yield all([\n dispatchAndWait(fetchSystemIngredients(action.payload)),\n dispatchAndWait(fetchUserIngredients(action.payload)),\n ])\n yield put(fetchCatalogListSuccess());\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(saveSuccess, saveSuccessFlow),\n takeEvery(fetchCatalogList, fetchCatalogListFlow),\n takeEvery(copyComposition, runButton({\n save,\n button: `${appKey}ts9c51c3c1r53`,\n fetch: fetchItem,\n })),\n ]);\n}\n","import * as R from 'ramda';\nimport { takeEvery, all, select, put, call } from 'redux-saga/effects';\nimport { push } from 'react-router-redux';\nimport { startSubmit, stopSubmit } from 'redux-form';\nimport moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\nimport getKeyInfo from 'utils/getKeyInfo';\nimport { addDateField, dateFieldMap } from 'utils/dateField';\nimport roundNumber from 'utils/roundNumber';\nimport {\n trackArchivePatient,\n trackUnarchivePatient,\n trackAddPatient,\n trackRemovePatient,\n shouldTrackAddPatientDiagnosis,\n trackAddPatientDiagnosis,\n shouldTrackAddPatientAntropometry,\n trackAddPatientAntropometry,\n trackAddPatientConsumption,\n} from 'utils/carrot';\nimport { getChangedData } from 'redux/hor/module';\nimport { getItemByKey } from 'redux/selectors';\nimport { create as createParams } from 'redux/modules/patientParams';\nimport {\n getNotesByPatient,\n save as saveNote,\n} from 'modules/Patient/redux/notes';\nimport runButton from 'redux/utils/runButton';\nimport dispatchAndWait from 'redux/utils/dispatchAndWait';\nimport { setNotification } from '../notification';\n\nimport {\n fetchItem,\n save,\n saveSuccess,\n removeWithUndoSuccess,\n removeWithUndo,\n fetchParams,\n startVisit,\n logPrint,\n calcElementsNorm,\n calcEnergy,\n calcConsumptionByTime,\n calcConsumptionByProfession,\n savePatientRequest,\n switchArchive,\n sendInvite,\n fetchDietanamnez,\n assignToStaff,\n assignToStaffSuccess,\n} from './index';\n\nfunction* switchArchiveFlow(action) {\n const patient = yield select(getItemByKey(action.payload.key));\n const isInArchive = R.propOr(false, 'custom_в_архив_1', patient);\n const buttonPatientToArchive = `${appKey}ts9c5c3c1r194`;\n const buttonPatientFromArchive = `${appKey}ts9c5c3c1r195`;\n const button = isInArchive ? buttonPatientFromArchive : buttonPatientToArchive;\n\n yield runButton({\n button,\n save,\n data: {\n custom_в_архив_1: !isInArchive,\n },\n })(action);\n}\n\nfunction* saveFlow(action) {\n const { payload, meta } = action;\n const patient = meta.entity;\n const changed = getChangedData(patient, payload.data);\n\n const paramsMap = {\n custom_масса_тела: 137,\n custom_рост: 140,\n custom_объем_талии: 142,\n custom_объем_бедер: 143,\n custom_объем_плеча: 144,\n custom_жировая_масса: 146,\n custom_мышечная_масса: 147,\n custom_общая_жидкость: 149,\n custom_вунутриклеточная_жидкость: 151,\n custom_внеклеточная_жидкость: 150,\n custom_тощая_масса_тела: 152,\n custom_активная_клеточная_масса: 153,\n custom_висцеральный_жир: 154,\n custom_складка_грудь_подмышка: patient?.custom_sexint_save === 1 ? 156 : 159,\n custom_складка_живот: 157,\n custom_складка_бедро: 158,\n custom_число_калорий: 169,\n custom_окисление_белка: 3198,\n custom_окисление_жиров: 3199,\n custom_окисление_углеводов: 3200,\n custom_число_калорий_при_физической_активности: 3201,\n };\n const loggedChanged = R.pickBy((val, key) => R.has(key, paramsMap), changed);\n\n const effects = R.compose(\n R.values,\n R.mapObjIndexed((val, key) => put(createParams({\n data: {\n ___parent: payload.key,\n custom_показатель: `${appKey}t12r${paramsMap[key]}`,\n custom_значение: roundNumber(2, typeof val === 'number' ? val : parseFloat(val)),\n custom_дата: moment().toISOString(),\n },\n }))),\n )(loggedChanged);\n\n const dateFields = addDateField(changed);\n\n if (!payload.isLocal && !R.isEmpty(dateFields)) {\n yield put(save({\n key: payload.key,\n data: dateFields,\n isLocal: true,\n }));\n }\n\n yield all(effects);\n\n // Need data before editing to find if should track\n if (shouldTrackAddPatientDiagnosis(patient, changed)) {\n yield trackAddPatientDiagnosis(action.payload.key);\n }\n if (shouldTrackAddPatientAntropometry(patient, changed)) {\n yield trackAddPatientAntropometry(action.payload.key);\n }\n}\n\n/* eslint-disable complexity */\nfunction* saveSuccessFlow(action) {\n const { key, response, data } = action.payload;\n const newKey = R.pathOr(null, ['data', 'key'], response);\n\n if (R.has('custom_в_архив_1', data)) {\n yield (\n R.prop('custom_в_архив_1', data)\n ? trackArchivePatient\n : trackUnarchivePatient\n )(key);\n }\n\n if (key === newKey || !newKey) {\n return;\n }\n\n const notes = yield select(state => getNotesByPatient(key, state.Patient.notes));\n\n const effect = notes.map(note => dispatchAndWait(saveNote({\n key: note.key,\n data: {\n ___parent: newKey,\n },\n })));\n\n const patientId = getKeyInfo(newKey).record;\n\n try {\n yield all(effect);\n yield trackAddPatient(key);\n } catch (error) {\n console.error(error);\n } finally {\n yield put(push(`/patients/${patientId}`));\n }\n}\n\nfunction* calcEnergyFlow(action) {\n const { payload } = action;\n yield put(startSubmit(payload.form));\n const response = yield call(request.post, `/${payload.key}/json/v2`, {\n parameters: R.evolve({\n co2: R.compose(parseFloat, R.replace(',', '.')),\n o2: R.compose(parseFloat, R.replace(',', '.')),\n urea: R.compose(parseFloat, R.replace(',', '.')),\n urine: R.compose(parseFloat, R.replace(',', '.')),\n }, payload.data),\n }, {\n headers: {\n Function: 'KBZU_basedOnAnalyzes',\n },\n });\n\n const { data } = response;\n yield put(save({\n key: payload.key,\n data: {\n custom_число_калорий: data.k,\n custom_белки_1: data.b,\n custom_жиры_1: data.u,\n custom_углеводы_1: data.z,\n },\n isLocal: true,\n }));\n yield put(stopSubmit(payload.form));\n}\n\nfunction* removeWithUndoSuccessFlow(action) {\n yield trackRemovePatient(action.payload.key);\n}\n\nfunction* calcConsumptionByProfessionFlow(action) {\n yield runButton({\n button: `${appKey}ts9c5c3c1r133`,\n fetch: fetchItem,\n save,\n })(action);\n yield trackAddPatientConsumption(action.payload.key);\n}\n\nfunction* removeWithUndoFlow(action) {\n // Need to change location here and not on remove success, because the latter\n // shows an undo notification that would disappear after location change\n const currentLocation = window.location.pathname;\n const patientId = getKeyInfo(action.payload.key).record;\n const pathPrefix = `/patients/${patientId}`;\n if (R.startsWith(pathPrefix, currentLocation)) {\n yield put(push('/patients'));\n }\n}\n\nfunction* savePatientSuccessFlow(action) {\n const { payload } = action;\n const { key, value, fieldName, withNotification } = payload;\n const patient = R.pathOr({}, ['meta', 'entity'])(action);\n const fullFieldName = `custom_${fieldName}`;\n\n const prevDate = R.propOr(moment().subtract(1, 'days'), dateFieldMap[fullFieldName])(patient);\n const difference = moment(new Date(), 'DD-MM-YYYY').diff(moment(prevDate, 'DD-MM-YYYY'), 'days');\n\n if (difference <= 0) {\n return;\n }\n\n try {\n if (withNotification) {\n yield put(setNotification({\n type: 'global',\n isDone: false,\n isProcess: true,\n }));\n }\n\n yield call(request.post, `/${key}/json/v2`, {\n parameters: {\n equalAllowed: true,\n value,\n fieldName,\n },\n }, {\n headers: {\n Function: 'savePatientIndex',\n },\n });\n\n yield put(save({\n key,\n data: addDateField({ [fullFieldName]: value }),\n isLocal: true,\n }));\n\n yield put(fetchParams({\n key,\n }));\n\n if (withNotification) {\n yield put(setNotification({\n type: 'global',\n isDone: true,\n isProcess: false,\n }));\n }\n } catch (error) {\n console.error(error);\n throw error;\n }\n}\n\nfunction* sendInviteFlow(action) {\n const { payload, meta } = action;\n const { key, type, values } = payload;\n const { entity } = meta;\n\n yield put(startSubmit(payload.form));\n\n const entityFields = {\n PHONE: 'custom_телефон',\n EMAIL: 'custom_login',\n };\n const fieldToSend = {\n PHONE: 'custom_моб_тел',\n EMAIL: 'custom_e_mail',\n };\n\n const field = entityFields[type]\n\n yield put(save({\n key: entity.key,\n data: {\n [field]: values[field],\n },\n disableNotification: true,\n }))\n yield call(request.post, `/${appKey}t183r/json/v2`, {\n parameters: {\n custom_тип_да: payload.custom_тип_да,\n custom_аккаунт_для_пациента: key,\n [fieldToSend[type]]: values[field],\n }\n }, {\n headers: {\n Function: 'Greatecontactforselftest',\n },\n })\n\n yield dispatchAndWait(fetchDietanamnez({\n key,\n }));\n\n yield put(stopSubmit(payload.form));\n}\n\nfunction* assignToStaffFlow(action) {\n const { payload } = action;\n const { key } = payload;\n\n yield call(request.post, `/${key}/json/v2`, {}, {\n headers: {\n Function: 'AssignToStaff',\n },\n })\n\n yield put(save({\n key,\n data: {\n custom_самостоятельная_регистрация: false,\n },\n isLocal: true,\n disableNotification: true,\n }))\n\n yield put(assignToStaffSuccess());\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(startVisit, runButton({\n button: `${appKey}ts9c5c3c1r264`,\n save,\n })),\n takeEvery(logPrint, runButton({\n button: `${appKey}ts9c5c3c1r317`,\n save,\n })),\n takeEvery(calcElementsNorm, runButton({\n button: `${appKey}ts9c5c3c1r79`,\n save,\n })),\n takeEvery(calcEnergy, calcEnergyFlow),\n takeEvery(calcConsumptionByTime, runButton({\n button: `${appKey}ts9c5c3c1r166`,\n fetch: fetchItem,\n save,\n })),\n takeEvery(calcConsumptionByProfession, calcConsumptionByProfessionFlow),\n takeEvery(switchArchive, switchArchiveFlow),\n takeEvery(save, saveFlow),\n takeEvery(saveSuccess, saveSuccessFlow),\n takeEvery(removeWithUndoSuccess, removeWithUndoSuccessFlow),\n takeEvery(removeWithUndo, removeWithUndoFlow),\n takeEvery(savePatientRequest, savePatientSuccessFlow),\n takeEvery(sendInvite, sendInviteFlow),\n takeEvery(assignToStaff, assignToStaffFlow),\n ]);\n}\n","import * as R from 'ramda';\n\nimport { takeEvery, all, put, select } from 'redux-saga/effects';\n\nimport {\n getItemByKey,\n} from 'redux/selectors';\n\nimport {\n startVisit,\n switchArchive,\n logPrint,\n} from 'redux/modules/patients';\n\nimport {\n save as saveDietanamnezes,\n} from 'modules/Dietanamnez/redux/modules/dietanamnez';\n\nimport {\n assign as assignRation,\n} from 'modules/Rations/redux/modules/ration';\n\nimport {\n create,\n} from './index';\n\nfunction* startVisitFlow(action) {\n const { meta } = action;\n\n yield put(create({\n data: {\n ___parent: meta.userKey,\n custom_пациент: action.payload.key,\n custom_дата: Date.now(),\n custom_действие: 'Прием',\n },\n }));\n}\n\nfunction* switchArchiveFlow(action) {\n const { meta } = action;\n const patient = yield select(state => getItemByKey(action.payload.key, state));\n const isInArchive = R.propOr(false, 'custom_в_архив_1', patient);\n\n yield put(create({\n data: {\n ___parent: meta.userKey,\n custom_пациент: action.payload.key,\n custom_дата: Date.now(),\n custom_действие: isInArchive ? 'Возвращен из архива' : 'Перенесен в архив',\n },\n }));\n}\n\nfunction* logPrintFlow(action) {\n const { meta } = action;\n\n yield put(create({\n data: {\n ___parent: meta.userKey,\n custom_пациент: action.payload.key,\n custom_дата: Date.now(),\n custom_действие: 'Печать',\n },\n }));\n}\n\nfunction* saveDietanamnezesFlow(action) {\n const { meta } = action;\n const isAssign = !!R.pathOr(null, ['data', 'custom_дата_назначения'], action.payload);\n\n if (isAssign) {\n return;\n }\n\n yield put(create({\n data: {\n ___parent: meta.userKey,\n custom_пациент: meta.patientKey,\n custom_дата: Date.now(),\n custom_действие: 'Диетанамнез',\n },\n }));\n}\n\nfunction* assignRationFlow(action) {\n const { meta } = action;\n\n yield put(create({\n data: {\n ___parent: meta.userKey,\n custom_пациент: meta.patientKey,\n custom_дата: Date.now(),\n custom_действие: 'Рацион',\n },\n }));\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(startVisit, startVisitFlow),\n takeEvery(switchArchive, switchArchiveFlow),\n takeEvery(logPrint, logPrintFlow),\n takeEvery(saveDietanamnezes, saveDietanamnezesFlow),\n takeEvery(assignRation, assignRationFlow),\n ]);\n}\n","import * as R from 'ramda';\n\nimport { createSelector } from 'reselect';\n\nimport getDietanamnezLastIdWithoutNotEnded from '../getDietanamnezLastIdWithoutNotEnded';\n\nexport default createSelector(\n R.path(['routeParams', 'dietanamnezId']),\n (state, props) => R.pathOr(null, ['settings', 'dietanamnezId'], props),\n getDietanamnezLastIdWithoutNotEnded,\n\n (routeId, propsId, lastId) => propsId || routeId || lastId,\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getPatientKey from 'redux/selectors/getPatientKey';\n\nexport default createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Dietanamnez } = session;\n\n const item = Dietanamnez\n .exclude({\n isDeleted: true,\n })\n .filter({\n ___parent: patientKey,\n })\n .filter(i => i.custom_дата_назначения)\n .filter(i => !i.custom_селфтест_до)\n .orderBy('custom_дата_назначения')\n .last();\n\n if (!item) {\n return null;\n }\n\n return item.key;\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { appKey } from 'config';\n\nimport getUserProfile from '../getUserProfile';\n\nexport default createSelector(\n getUserProfile,\n\n R.equals(`${appKey}ts18r12`),\n);\n","import * as R from 'ramda';\nimport { takeEvery, all, put, select, call } from 'redux-saga/effects';\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\n\nimport { getItemsArrayByParent as getTechcard, save as saveTechcard } from 'redux/modules/supplementTechCard';\nimport { getItemsArrayByParent as getComposition, save as saveComposition } from 'redux/modules/supplementComposition';\n\nimport {\n fetchSuccess,\n saveSuccess,\n fetchList,\n fetchListSuccess,\n fetchListFailure,\n} from './index';\n\nfunction* saveSuccessFlow(action) {\n const { payload } = action;\n const { key, response } = payload;\n const newKey = R.pathOr(null, ['data', 'key'], response);\n\n if (key === newKey || !newKey) {\n return;\n }\n\n const techcard = yield select(state => getTechcard(key, state.supplementTechCard));\n const composition = yield select(state => getComposition(key, state.supplementComposition));\n\n const techcardEffect = techcard.map(item => put(saveTechcard({\n key: item.key,\n data: {\n ___parent: newKey,\n },\n })));\n const compositionEffect = composition.map(item => put(saveComposition({\n key: item.key,\n data: {\n ___parent: newKey,\n },\n })));\n\n yield all(techcardEffect);\n yield all(compositionEffect);\n}\n\nfunction* fetchListFlow(action) {\n try {\n const response = yield call(request.post, `/${appKey}t179r/json/v2`, {}, {\n headers: {\n Function: 'getBadList',\n }\n });\n\n yield put(fetchSuccess({\n ...action.payload,\n response: response.data,\n }))\n yield put(fetchListSuccess());\n } catch (error) {\n yield put(fetchListFailure({\n error,\n }))\n }\n}\nexport default function* saga() {\n yield all([\n takeEvery(saveSuccess, saveSuccessFlow),\n takeEvery(fetchList, fetchListFlow),\n ]);\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getPatient from '../getPatient';\n\nexport default createSelector(\n getPatient,\n\n R.propOr(0, 'custom_энергия__рассчетное'),\n);\n","import * as R from 'ramda';\nimport { startSubmit, stopSubmit, reset } from 'redux-form';\nimport { call, put, all, takeLatest, select } from 'redux-saga/effects';\nimport moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\n\nimport {\n getInstitutionDiscount,\n getInstitutionSubscription,\n getInstitutionSubscriptionIsExpired,\n} from 'redux/selectors';\n\nimport {\n save as saveSubscription,\n} from 'redux/modules/institutionSubscription';\n\nimport {\n checkPromo,\n setPromo,\n resetPromo,\n} from './reducer';\n\nfunction* checkPromoFlow(action) {\n const { payload } = action;\n const { promocode, form } = payload;\n const tariff = yield select(state => {\n return state.form.tariff.values.duration\n })\n\n try {\n yield put(startSubmit(form));\n const { data } = yield call(request.post, `/${appKey}t152r/json/v2`, {\n parameters: {\n promocode,\n tariff,\n exec: true,\n },\n }, {\n headers: {\n Function: 'getPromoKey',\n },\n });\n\n if (data.error) {\n yield put(stopSubmit(form, {\n _error: data.error,\n }));\n return;\n }\n\n if (!data.скидка) {\n const subscription = yield select(getInstitutionSubscription);\n const subscriptionIsIxpired = yield select(getInstitutionSubscriptionIsExpired);\n\n if (subscriptionIsIxpired) {\n location.reload(); // eslint-disable-line no-restricted-globals\n return;\n }\n\n yield put(saveSubscription({\n key: subscription.key,\n data: R.evolve({\n custom_время_окончания_подписки: value => moment(value).add(data.значение_промокода, 'days'),\n })(subscription),\n isLocal: true,\n }));\n } else {\n const institutionDiscount = yield select(getInstitutionDiscount);\n const discount = data.значение_промокода / 100;\n\n if (institutionDiscount > discount) {\n yield put(stopSubmit(form, {\n _error: 'Этот промокод дает скидку меньше, чем ваша постоянная скидка.',\n }));\n\n return;\n }\n\n yield put(setPromo({\n value: data.key,\n discount,\n }));\n }\n\n yield put(stopSubmit(form));\n yield put(reset(form));\n } catch (error) {\n\n yield put(stopSubmit(form, {\n _error: error,\n }));\n }\n\n}\n\nfunction* resetPromoFlow(action) {\n yield put(reset(action.payload.form));\n}\n\nexport default function* saga() {\n yield all([\n takeLatest(checkPromo, checkPromoFlow),\n takeLatest(resetPromo, resetPromoFlow),\n ]);\n}\n","import { createSelector } from 'reselect';\nimport * as R from 'ramda';\n\nexport default createSelector(\n R.compose(\n Number,\n R.path(['routeParams', 'supplementId']),\n ),\n (state, props = {}) => props.supplementId,\n\n (routeId, propsId) => propsId || routeId,\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n (state, { rationId } = {}) => rationId || R.path(['routeParams', 'rationId'], state),\n\n R.identity,\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getRationDayNumber from '../getRationDayNumber';\nimport getRationKey from '../getRationKey';\n\nexport default createOrmSelector(\n getRationDayNumber,\n getRationKey,\n\n (session, number, rationKey) => {\n const { Ration, Day } = session;\n\n\n if (!Ration.idExists(rationKey)) {\n return null;\n }\n\n try {\n return Ration\n .withId(rationKey)\n .days\n .filter({\n custom_номер: number,\n })\n .first()\n .ref;\n } catch (error) {\n const day = Day\n .filter({\n custom_номер: number,\n custom_рацион_пациента: rationKey,\n })\n .first()\n\n return day && day.ref;\n }\n },\n);\n","import { request } from 'utils/api';\n\nimport { appKey } from 'config';\n\nexport async function getVariable(name: string): Promise {\n const response = await request.post(`/${appKey}t155r/json/v2`, {\n parameters: {\n name,\n },\n }, {\n headers: {\n Function: 'getAppVariable',\n },\n })\n\n const { fields } = response.data;\n\n const data = fields.custom_значение || fields.custom_json_value as T;\n\n return data;\n}","import * as R from 'ramda';\nimport { takeEvery, all, select, put, call } from 'redux-saga/effects';\nimport { startSubmit, stopSubmit } from 'redux-form';\nimport { stringify } from 'query-string';\nimport delay from 'utils/delay';\n\nimport { appKey, oneDayKey } from 'config';\n\nimport {\n getItemByKey,\n getUserEmail,\n getInstitutionTariffIsTrial,\n getInstitutionTariffIsSpecial,\n getInstitutionSubscriptionIsExpired,\n getInstitutionSubscriptionIsBlocked,\n getInstitutionWorkplaceCount,\n getInstitutionSubscriptionState,\n getUserIsLight\n} from 'redux/selectors';\nimport { fetchItem as fetchInstitution } from 'redux/modules/institutions';\n\nimport dispatchAndWait from 'redux/utils/dispatchAndWait';\nimport { trackRenewSubscription } from 'utils/carrot';\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getVariable } from 'api/getVariable';\n\nimport {\n fetch,\n save,\n\n cancel,\n renewal,\n changeFutureOneDayDate,\n} from './index';\n\nconst nameById = {\n 10698526: 'Pro-1д',\n 5370656: 'Pro-1',\n 5371410: 'Pro-12',\n 5370654: 'Lite-1',\n 5370883: 'Lite-12',\n};\n\nfunction* getOperationParams(entity) {\n const operationId = getKeyInfo(entity.custom_операция).record;\n const tariffId = getKeyInfo(entity.custom_тарифный_план).record;\n\n let text = nameById[tariffId];\n let quantity = entity.custom_значение_операции;\n\n if (operationId === 5370661) {\n const workplaces = yield select(getInstitutionWorkplaceCount);\n text = 'Pro Подписка дополнительный аккаунт';\n quantity -= workplaces;\n }\n\n return { text, quantity };\n}\n\nfunction* getFormYoomoney(entity) {\n const email = yield select(getUserEmail);\n const form = document.createElement('form');\n form.setAttribute('method', 'post');\n form.setAttribute('action', 'https://yoomoney.ru/eshop.xml');\n\n const { text, quantity } = yield call(getOperationParams, entity);\n\n const fields = {\n shopId: '143678',\n scid: '103820',\n sum: entity.custom_ordersumrequired,\n customerNumber: entity.custom_customernumber,\n orderNumber: entity.custom_ordernumber,\n ym_merchant_receipt: JSON.stringify({\n customerContact: email,\n taxSystem: 2,\n items: [\n {\n quantity,\n price: {\n amount: entity.custom_ordersumrequired / quantity,\n },\n tax: 1,\n text,\n paymentMethodType: 'full_payment',\n paymentSubjectType: 'service',\n },\n ],\n }),\n };\n\n Object.keys(fields).forEach((key) => {\n const value = fields[key];\n const i = document.createElement('input');\n\n i.setAttribute('name', key);\n i.setAttribute('value', value);\n form.appendChild(i);\n });\n\n document.body.appendChild(form);\n form.submit();\n}\n\nfunction* getFormRobokassa(entity, merchantLogin, isTest) {\n const { text } = yield call(getOperationParams, entity);\n\n const params = {\n MerchantLogin: merchantLogin,\n OutSum: entity.custom_ordersumrequired.toFixed(0),\n Description: `Оказание услуг доступа к ПО Нутрилоджик. Учетный период - ${text}`,\n InvoiceID: getKeyInfo(entity.key).record,\n Receipt: encodeURIComponent(encodeURIComponent(\n JSON.stringify({\n \"sno\": \"usn_income\",\n \"items\": [\n {\n \"name\": `Оказание услуг доступа к ПО Нутрилоджик. Учетный период - ${text}`,\n \"quantity\": 1,\n \"sum\": +entity.custom_ordersumrequired.toFixed(0),\n \"payment_method\": \"full_payment\",\n \"payment_object\": \"service\",\n \"tax\": \"none\",\n },\n ]\n })\n )),\n Culture: 'ru',\n Encoding: 'utf-8',\n SignatureValue: entity.custom_signaturevalue,\n }\n\n if (isTest) {\n window.location = `https://auth.robokassa.ru/Merchant/Index.aspx?${stringify({\n ...params,\n IsTest: 1,\n })}`;\n } else {\n yield new Promise((resolve) => {\n const script = document.createElement('script');\n script.src = 'https://auth.robokassa.ru/Merchant/bundle/robokassa_iframe.js';\n script.addEventListener('load', () => {\n resolve()\n })\n\n document.body.appendChild(script);\n })\n\n window.Robokassa.StartPayment({\n ...params,\n Recurring: entity.custom_recurring,\n })\n\n yield new Promise(resolve => {\n window.addEventListener('message', (event) => {\n if (event?.data?.action === \"closeRobokassaFrame\") {\n resolve();\n }\n })\n })\n }\n}\n\nfunction* saveSuccessFlow(action) {\n const { key, response } = action.payload;\n const newKey = R.pathOr(null, ['data', 'key'], response);\n\n if (key === newKey || !newKey) {\n return;\n }\n\n const isBlocked = yield select(getInstitutionSubscriptionIsBlocked);\n\n if (isBlocked) {\n window.location = '/user/subscription';\n }\n}\n\nfunction* cancelFlow(action) {\n try {\n yield dispatchAndWait(save({\n key: action.payload.key,\n data: {\n custom_currentstatus: 'cancelOrder',\n },\n }));\n\n const isExpired = yield select(getInstitutionSubscriptionIsExpired);\n\n if (isExpired) {\n window.location = '/patients';\n }\n } catch (e) {\n\n }\n}\n\nfunction* checkOperation(key) {\n let newItem;\n\n for (var i = 0; i < 3; i++) {\n yield call(delay, 5000);\n yield dispatchAndWait(fetch({ key }));\n newItem = yield select(getItemByKey(key));\n if (newItem.custom_currentstatus === \"PostProcessingDone\") {\n return newItem;\n }\n }\n\n return newItem;\n}\n\nfunction* renewalFlow(action) {\n const { payload } = action;\n const { type, data, form } = payload;\n\n yield put(startSubmit(form));\n\n yield dispatchAndWait(fetchInstitution());\n\n try {\n const isTrial = yield select(getInstitutionTariffIsTrial);\n const isSpecial = yield select(getInstitutionTariffIsSpecial);\n const isLight = yield select(getUserIsLight);\n const state = yield select(getInstitutionSubscriptionState);\n const isNewSubscriptionOneDay = data.custom_тарифный_план === oneDayKey;\n let actionId = null;\n if (isNewSubscriptionOneDay) {\n actionId = 6448820; // Покупка однодневной подписки\n } else if (isTrial || isSpecial) {\n actionId = 5370660; // Смена тарифного плана\n } else {\n actionId = 5385772; // Продление текущего тарифного плана\n }\n const response = yield dispatchAndWait(save({\n data: {\n ...data,\n custom_currentstatus: type,\n custom_recurring: isLight && (state !== 'DEFAULT_RECURRING' || !!data.custom_промокод),\n custom_операция: data.custom_операция || `${appKey}t122r${actionId}`,\n },\n }));\n\n if (type === 'newOrder') {\n const key = response.payload.response.data.key;\n\n yield dispatchAndWait(fetch({\n key,\n }));\n const item = yield select(getItemByKey(key));\n const [payments, merchantLogin] = yield all([\n call(getVariable, 'payments'),\n call(getVariable, 'MerchantLogin')\n ])\n const isTest = payments[payments.use]?.active?.isTest || false;\n if (payments.use === 'umoney') {\n yield call(getFormYoomoney, item, merchantLogin, isTest);\n } else if (payments.use === 'robokassa') {\n yield call(getFormRobokassa, item, merchantLogin, isTest);\n }\n\n const newItem = yield call(checkOperation, item.key);\n\n if (newItem.custom_currentstatus === \"PostProcessingDone\") {\n yield dispatchAndWait(fetchInstitution());\n action.meta.resolve(true);\n yield put(stopSubmit(form));\n } else {\n action.meta.resolve(false);\n yield put(stopSubmit(form));\n }\n } else {\n yield call(saveSuccessFlow, response);\n yield put(stopSubmit(form));\n }\n } catch (error) {\n console.error(error);\n yield put(stopSubmit(form));\n }\n\n yield trackRenewSubscription();\n}\n\nfunction* changeFutureOneDayDateFlow(action) {\n try {\n const response = yield dispatchAndWait(save({\n data: {\n ...action.payload.data,\n custom_currentstatus: 'newManualOrder',\n custom_операция: `${appKey}t122r6449623`, // Перенос даты однодневной подписки\n },\n }));\n // Текущая подписка учреждения изменилась, если перенесли дату на текущий день\n yield dispatchAndWait(fetchInstitution());\n yield call(saveSuccessFlow, response);\n } catch (error) {\n console.error(error);\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(cancel, cancelFlow),\n takeEvery(renewal, renewalFlow),\n takeEvery(changeFutureOneDayDate, changeFutureOneDayDateFlow),\n ]);\n}\n","import * as R from 'ramda';\n\nexport const getPromo = R.identity;\n","import * as R from 'ramda';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getCorrectionValuesByWeight = (weight, state) =>\n R.compose(\n R.map((item) => {\n const itemWeight = R.propOr(1, 'custom_от_массы_тела', item) * weight;\n\n return {\n value: item.key,\n label: `${itemWeight.toFixed(1)} кг/мес`,\n };\n }),\n R.sortBy(R.prop('custom_от_массы_тела')),\n getItemsArray,\n )(state);\n","import generator from 'redux/hor/module';\n\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'rationCorrection',\n tableId: 106,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c106cs9r318', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getCorrectionValuesByWeight,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.compose(\n R.map(item => ({\n ...item,\n key: item.key,\n title: item.custom_заголовок,\n text: (item.custom_содержимое || '').replace(/ R.compose(\n R.filter(R.propEq('___owner', userKey)),\n getItemsArray,\n)(state);\n","import * as R from 'ramda';\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetch,\n save,\n remove,\n} = generator({\n name: 'UserNotificationsExcluded',\n tableId: 142,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n ___owner: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetch,\n save,\n remove,\n};\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport { Field as FormField } from 'redux-form';\nimport containerQuery from 'decorators/containerQuery';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport { connect } from 'utils/react-redux';\nimport { Row, Column } from 'components/Grid';\nimport Button from 'components/Button';\nimport Field from 'components/Field';\nimport FieldPassword from 'components/FieldPassword';\nimport Text from 'components/Text';\nimport Title from 'components/Title';\nimport Info from 'components/Info';\nimport AvatarPicker from 'components/AvatarPicker';\nimport RadioGroup from 'components/RadioGroup';\nimport RequiredNotice from 'components/RequiredNotice';\nimport Link from 'components/Link';\nimport Checkbox from 'components/Checkbox';\nimport Select from 'components/Select';\nimport FieldDate from 'components/FieldDate';\nimport styles from './UserForm.module.css';\nimport {getUser} from \"../../redux/selectors\";\n\nconst cx = classNames.bind(styles);\n\nconst radioGroupSex = [\n {\n id: 'radioGroupSexMale',\n value: '1',\n content: 'Мужской',\n },\n {\n id: 'radioGroupSexFemale',\n value: '2',\n content: 'Женский',\n },\n];\n\nconst mapStateToProps = () => {\n return (state) => {\n const {\n User: { statistic: { deleting } }\n } = state\n return {\n deleting,\n }\n }\n}\n\nclass UserForm extends PureComponent {\n static propTypes = {\n cities: PropTypes.array,\n containerQuery: PropTypes.object,\n countries: PropTypes.array,\n dirty: PropTypes.bool,\n emptyCities: PropTypes.array,\n step: PropTypes.string,\n valid: PropTypes.bool,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onExitGroup: PropTypes.func,\n submitting: PropTypes.bool,\n isAccessOpen: PropTypes.bool,\n onAddAccess: PropTypes.func,\n onConfirm: PropTypes.func,\n isLight: PropTypes.bool,\n isConfirmed: PropTypes.bool,\n deleting: PropTypes.bool,\n invite: PropTypes.object,\n }\n\n static defaultProps = {\n cities: [],\n containerQuery: PropTypes.object,\n countries: [],\n dirty: false,\n emptyCities: [],\n step: 'registration',\n valid: false,\n onReset: () => { },\n onSubmit: () => { },\n onExitGroup: () => {},\n submitting: false,\n isAccessOpen: false,\n onAddAccess: () => { },\n isLight: false,\n invite: {},\n }\n\n handlerOnFocusLinkRegistry = (event) => {\n event.target.select()\n }\n\n renderSupportButton() {\n const { isAccessOpen } = this.props;\n\n const button = (\n \n Открыть доступ поддержке\n \n );\n\n if (isAccessOpen) {\n return (\n \n \n Вы уже дали временный доступ службе поддержки. Дождитесь истечения текущего.\n \n \n );\n }\n\n return button;\n }\n\n renderForm() {\n const { step, isLight, isPartner, invite: { inviteName, inviteKey }, deleting } = this.props;\n const isInvite = step === 'invite';\n const isProfile = step === 'profile';\n const isRegistration = step === 'registration';\n const titleByStep = {\n invite: 'Приглашение',\n registration: 'Регистрация пользователя',\n };\n const isRequired = isInvite || isRegistration;\n const hasInvite = inviteKey && inviteName;\n\n return (\n \n \n
\n \n
\n
\n
\n\n \n \n \n {(isRegistration || isInvite) &&\n
\n \n {titleByStep[step]}\n \n
\n }\n\n {isRegistration &&
\n \n
}\n
\n \n
\n
\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n \n \n
\n Дата рождения\n
\n
\n \n
\n
\n \n
\n Пол\n
\n \n
\n
\n\n
\n \n {(isProfile && process.env.REACT_APP_API !== 'dd') &&\n (\n
\n {this.props.isConfirmed && input?.value === this.props.phoneValue || this.props.isConfirmedPhone ?\n \n подтвержден\n :\n \n Подтвердить\n \n }\n
\n )}\n />\n }\n
\n {\n isLight &&\n
\n \n
\n }\n {!isLight &&\n
\n \n
\n }\n\n {isProfile &&\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n }\n {\n (isLight && !isRegistration) && hasInvite &&\n
\n \n (\n
\n this.props.onExitGroup(inviteKey)}\n >\n Выйти\n \n
\n )}\n />\n
\n }\n {!isProfile &&
}\n {!isInvite && !isProfile &&\n
\n \n
\n }\n {isProfile &&\n
\n
\n \n Изменить пароль\n \n
\n
\n {this.renderSupportButton()}\n
\n
\n }\n {(isRegistration || isInvite) &&\n
\n \n
\n }\n
\n
\n
\n
\n
\n
\n );\n }\n\n renderButtons() {\n const { valid, dirty, step, onReset, submitting } = this.props;\n const isRegistration = step === 'registration';\n const isInvite = step === 'invite';\n const isProfile = step === 'profile';\n\n return (\n
\n
\n\n {(isRegistration || isInvite) &&\n
\n
\n \n Продолжить\n \n
\n\n {process.env.REACT_APP_API !== 'dd' &&
\n \n Нажимая “Продолжить” вы соглашаетесь с \n
\n \n Пользовательским соглашением\n \n {' '}\n и\n {' '}\n \n Политикой конфиденциальности\n \n *\n
\n \n
}\n
\n }\n\n {isProfile &&\n
\n
\n \n
\n
\n \n
\n
\n }\n
\n );\n }\n\n render() {\n return (\n \n {this.renderForm()}\n {this.renderButtons()}\n \n );\n }\n}\n\nexport default R.compose(\n containerQuery(styles),\n connect(mapStateToProps)\n)(UserForm);\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport Text from 'components/Text';\nimport Legend from 'components/Legend';\n\nimport styles from './RequiredNotice.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class RequiredNotice extends PureComponent {\n render() {\n return (\n
\n \n Поля отмеченные звездочкой (\n \n ) обязательны для заполнения\n \n
\n );\n }\n}\n","import * as R from 'ramda';\n\nconst getItem = (val) => {\n const result = {\n key: val.key,\n ...val.fields,\n };\n\n if (val.subitems) {\n result.subitems = R.map(getItem, val.subitems);\n }\n\n return result;\n};\n\nexport default function parseResult(response, items, parseItem) {\n const data = response.list || R.pick(['fields', 'key'], response);\n const array = [].concat(data);\n\n\n let isChanged = false;\n const newItems = R.reduce((itemsByKey, item) => {\n const key = item.key;\n const parsedItem = parseItem(getItem(item));\n const current = itemsByKey[key];\n\n if (!current) {\n itemsByKey[key] = parsedItem; // eslint-disable-line\n isChanged = true;\n } else {\n const newItem = {\n ...current,\n ...parsedItem,\n };\n const isEquals = R.equals(newItem, current);\n\n if (!isEquals) {\n isChanged = true;\n itemsByKey[key] = newItem; // eslint-disable-line\n }\n }\n\n return itemsByKey;\n }, { ...items }, array);\n\n if (!isChanged) {\n return items;\n }\n\n return newItems;\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { setNotification } from './reducer';\n\nconst errorsState = ['isFailed', 'isFailedNetwork'];\nconst types = ['isProcess', 'isDone', 'isRemove', 'isNextReception', ...errorsState, 'isNba', 'isInfo'];\n\nexport const getCurrentNotification = createSelector(\n state => state.notification,\n\n (state) => {\n const notification = R.reduce((acc, status) => {\n return {\n ...acc,\n [status]: R.propOr(false, status, state),\n }\n }, {}, types);\n\n const item = R.compose(\n R.head,\n R.keys,\n R.pickBy(Boolean),\n )(notification);\n\n if (R.isNil(item)) {\n return null;\n }\n\n const common = {\n onClose: setNotification({\n [item]: false,\n }),\n };\n\n return {\n type: item,\n content: R.is(Object, notification[item]) ? {\n ...common,\n ...notification[item],\n } : common,\n };\n },\n);\n","import * as R from 'ramda';\nimport { take, race } from 'redux-saga/effects';\n\nexport default function* waitFor(action) {\n const successType = `${action.type}_SUCCESS`;\n const failureType = `${action.type}_FAILURE`;\n\n while (true) {\n const [success, failure] = yield race([\n take(successType),\n take(failureType),\n ]);\n\n const isSameKey = R.eqBy(R.path(['payload', 'key']));\n const isSameView = R.eqBy(R.path(['payload', 'view']));\n if (!R.pathOr(false, ['payload', 'isLocal'], success)) {\n if (isSameKey(action, success) && isSameView(action, success)) {\n return success;\n }\n\n if (isSameKey(failure) && isSameView(action, failure)) {\n throw failure;\n }\n }\n }\n}\n","import { attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\n\nconst {\n reducer,\n fetch,\n fetchSuccess,\n create,\n save,\n saveSuccess,\n} = generator({\n name: 'partner',\n tableId: 192,\n});\n\nexport default class Partner extends Model {\n static modelName = 'Partner';\n\n static options = {\n idAttribute: 'key',\n };\n\n static fields = {\n custom_subscribe_url: attr(),\n custom_ссылка_на_логотип: attr(),\n custom_ссылка_на_логитип_в_печати: attr(),\n }\n\n static reducer = reducer;\n}\n\nexport {\n fetch,\n fetchSuccess,\n save,\n saveSuccess,\n create,\n};\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getProfileKey } from 'redux/modules/user';\nimport getApplicationUser from '../getApplicationUser';\n\nexport default createSelector(\n R.path(['auth', 'profileKey']),\n getApplicationUser,\n R.path(['user']),\n\n (authProfileKey, userKey, state) => {\n const profileKey = getProfileKey(userKey, state);\n\n return profileKey || authProfileKey;\n },\n);\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport containerQuery from 'decorators/containerQuery';\n\nimport constructFile from 'utils/constructFile';\n\nimport styles from './AvatarPicker.module.css';\n\nconst cx = classNames.bind(styles);\n\nclass AvatarPicker extends PureComponent {\n static propTypes = {\n containerQuery: PropTypes.object.isRequired,\n error: PropTypes.string,\n fileTitle: PropTypes.string,\n id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n title: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n ]).isRequired,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n square: PropTypes.bool,\n }\n\n static defaultProps = {\n containerQuery: {},\n error: undefined,\n fileTitle: 'Изменить фото',\n id: undefined,\n title: 'Фото',\n value: undefined,\n onChange: () => {},\n disabled: false,\n square: false,\n }\n\n handleChange = (e) => {\n const reader = new FileReader();\n const name = R.last(e.target.value.split('\\\\'));\n const file = e.target.files[0];\n\n if (!file) {\n return;\n }\n\n reader.onload = (event) => {\n const result = event.target.result.split(/[:;,]/);\n const mime = result[1];\n const base64 = result[3];\n\n this.props.onChange({\n mime,\n base64,\n name,\n });\n };\n\n reader.readAsDataURL(e.target.files[0]);\n }\n\n\n render() {\n const { id, title, fileTitle, value, disabled, square } = this.props;\n const withFile = !R.isEmpty(value);\n\n const styleImg = {\n backgroundImage: `url(${constructFile(value)})`,\n };\n\n return (\n \n \n\n \n \n );\n }\n}\n\nexport default R.compose(\n containerQuery(styles),\n)(AvatarPicker);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport { Field } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport AvatarPicker from './AvatarPicker';\n\nclass FilePickerConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n };\n\n static defaultProps = {\n name: undefined,\n }\n\n handleChange = onChange => (event) => {\n onChange(event);\n setTimeout(this.context.onFormChange, 0);\n }\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n if (!this.props._reduxForm) { // eslint-disable-line no-underscore-dangle\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(FilePickerConnected)","export default function getErrorTextFromResponse(error) {\n const { response = {}, message, code } = error || {};\n const { status, statusText, data } = response;\n const { exception = {} } = data || {};\n\n if (exception.type || exception.message ) {\n return `${exception.type} — ${exception.message}.`;\n }\n\n if (status || statusText) {\n return `${status}. ${statusText}`;\n }\n\n if (code || message) {\n return `${code}. ${message}`\n }\n\n return '';\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getPatientAllergen = createSelector(\n R.identity,\n (_, state) => getItemsArray(state),\n\n R.uncurryN(2, key => R.compose(\n R.pluck('custom_бад'),\n R.filter(R.propEq('custom_пациент', key)),\n )),\n);\n","import * as R from 'ramda';\n\nimport generator from 'redux/hor/module';\n\nconst {\n reducer,\n fetchSuccess,\n} = generator({\n name: 'SupplementAllergen',\n tableId: 167,\n parentField: 'custom_пациент',\n parseItem: R.evolve({\n custom_пациент: R.propOr(null, 'key'),\n custom_бад: R.propOr(null, 'key'),\n }),\n});\n\nexport {\n fetchSuccess,\n};\n\nexport {\n getPatientAllergen,\n} from './selectors';\n\nexport default reducer;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Message from 'components/Message';\n\nimport styles from './Error.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Error extends PureComponent {\n static propTypes = {\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n }\n\n static defaultProps = {\n error: undefined,\n }\n\n render() {\n const { error } = this.props;\n\n return (\n
\n \n
\n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Icon from 'components/Icon';\n\nimport styles from './Message.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Message extends PureComponent {\n static propTypes = {\n icon: PropTypes.string,\n text: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n ]),\n inlineBlock: PropTypes.bool,\n };\n\n static defaultProps = {\n icon: 'error',\n text: 'Some error',\n inlineBlock: false,\n };\n\n render() {\n const { icon, text, inlineBlock } = this.props;\n\n return (\n
\n
\n \n
\n
{text}
\n
\n );\n }\n}\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nconst typeOrder = [\n `${appKey}t8r192`,\n `${appKey}t8r194`,\n `${appKey}t8r195`,\n `${appKey}t8r193`,\n `${appKey}t8r196`,\n];\n\nexport default createOrmSelector(\n (session) => {\n const { AnalysisType } = session;\n\n return AnalysisType\n .all()\n .filter(item => R.contains(item.key, typeOrder))\n .orderBy(item => R.indexOf(item.key, typeOrder))\n .toModelArray()\n .map(i => ({\n value: i.key,\n label: i.custom_наименование,\n }));\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getAnalysesTypes from '../getAnalysesTypes';\n\nexport default createSelector(\n getAnalysesTypes,\n\n R.concat([{\n value: 'all',\n label: 'Все анализы',\n }]),\n);\n","import * as R from 'ramda';\n\nimport { createSelector } from 'reselect';\n\nexport default createSelector(\n R.path(['routeParams', 'analysisId']),\n (state, props = {}) => props.analysisId,\n\n (stateId, propsId) => propsId || stateId,\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport { appKey } from 'config';\n\nimport isLocalKey from 'utils/isLocalKey';\n\nimport getAnalysisId from '../getAnalysisId';\n\nexport default createOrmSelector(\n getAnalysisId,\n\n (session, id) => {\n if (!id) {\n return id;\n }\n\n if (!isLocalKey(id)) {\n return `${appKey}t19r${id}`;\n }\n\n try {\n const { PatientAnalysis } = session;\n const item = PatientAnalysis.filter({ oldKey: id }).first();\n\n return item.key;\n } catch (error) {\n return id;\n }\n },\n);\n","import moment from 'moment';\n\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { PatientAnalysis } = session;\n\n let item;\n\n if (PatientAnalysis.idExists(analysisKey)) {\n item = PatientAnalysis.withId(analysisKey);\n } else {\n item = PatientAnalysis.filter({ oldKey: analysisKey }).first();\n }\n\n if (!item) {\n return {};\n }\n\n return {\n key: item.key || analysisKey,\n id: item.id,\n time: item.custom_дата_текстом || 'Сегодня',\n type: item.custom_вид_анализа.key,\n typeId: item.custom_вид_анализа.id,\n caption: item.custom_вид_анализа.custom_наименование,\n date: item.custom_дата || moment(),\n ___parent: item.___parent,\n };\n },\n);\n","import * as R from 'ramda';\nimport createCachedSelector from 're-reselect';\n\nimport getAnalysisItem from '../getAnalysisItem';\nimport getAnalysisDataBlood from './getAnalysisDataBlood';\nimport getAnalysisDataGenes from './getAnalysisDataGenes';\nimport getAnalysisDataVitamin from './getAnalysisDataVitamin';\nimport getAnalysisDataHair from './getAnalysisDataHair';\nimport getAnalysisDataSalt from './getAnalysisDataSalt';\n\nconst types = {\n 194: getAnalysisDataBlood,\n 196: getAnalysisDataGenes,\n 193: getAnalysisDataVitamin,\n 192: getAnalysisDataHair,\n 195: getAnalysisDataSalt,\n};\n\nexport default createCachedSelector(\n (state, props) => R.compose(\n type => types[type](state, props),\n R.prop('typeId'),\n getAnalysisItem,\n )(state, props),\n\n R.identity,\n)((state, props) => props.analysisId);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, key) => {\n const { AnalysisBlood } = session;\n\n return AnalysisBlood\n .filter({\n ___parent: key,\n })\n .toModelArray()\n .map(item => ({\n key: item.key,\n itemKey: item.custom_химический_элемент.key,\n label: `${item.custom_химический_элемент.custom_наименование}, мкг/л`,\n value: item.custom_факт,\n }));\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, key) => {\n const { AnalysisGenes } = session;\n\n return AnalysisGenes\n .filter({\n ___parent: key,\n })\n .toModelArray()\n .map(item => ({\n key: item.key,\n itemKey: item.custom_ген.key,\n label: item.custom_ген.custom_название,\n value: item.custom_генотип.custom_наименование,\n }));\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, key) => {\n const { AnalysisVitamin } = session;\n\n return AnalysisVitamin\n .filter({\n ___parent: key,\n })\n .toModelArray()\n .map(item => ({\n key: item.key,\n itemKey: item.custom_витамин.key,\n label: item.custom_витамин.custom_наименование,\n value: item.custom_оценка,\n }));\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, key) => {\n const { AnalysisHair } = session;\n\n return AnalysisHair\n .filter({\n ___parent: key,\n })\n .toModelArray()\n .map(item => ({\n key: item.key,\n itemKey: item.custom_химический_элемент.key,\n label: `${item.custom_химический_элемент.custom_наименование}, мкг/г`,\n value: item.custom_факт,\n }));\n },\n);\n","import createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createCachedOrmSelector(\n getAnalysisKey,\n\n (session, key) => {\n const { AnalysisSalt } = session;\n\n return AnalysisSalt\n .filter({\n ___parent: key,\n })\n .toModelArray()\n .map(item => ({\n key: item.key,\n itemKey: item.custom_химический_элемент.key,\n label: item.custom_химический_элемент.custom_наименование,\n value: item.custom_результат ? 'Обнаружено' : 'Не обнаружено',\n }));\n },\n);\n","import createCachedSelector from 're-reselect';\n\nimport getAnalysisItem from '../getAnalysisItem';\nimport getAnalysisData from '../getAnalysisData';\n\nexport default createCachedSelector(\n getAnalysisItem,\n getAnalysisData,\n\n (item, data) => ({\n ...item,\n data,\n }),\n)((state, props) => props.analysisId);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getAnalysisItem from '../getAnalysisItem';\n\nexport default createSelector(\n getAnalysisItem,\n\n R.prop('caption'),\n);\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Link from 'components/Link';\nimport Text from 'components/Text';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport styles from './More.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst OPEN_MAX_HEIGHT = 2000;\nconst TRANSITION_DELAY = 300;\n\nexport const shouldShowButton = self =>\n (!self.textNode || self.textNode.scrollHeight > self.textNode.offsetHeight);\n\nexport default class More extends PureComponent {\n static propTypes = {\n backgroundColor: PropTypes.oneOf([\n 'dayWhite',\n ]),\n lineHeight: PropTypes.number,\n lines: PropTypes.number,\n text: PropTypes.string,\n }\n\n static defaultProps = {\n backgroundColor: undefined,\n lineHeight: 19.6,\n lines: 3,\n text: '',\n }\n\n state = {\n open: false,\n showButton: false,\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.setShowButtonDelayed);\n this.setShowButton();\n }\n\n componentDidUpdate() {\n this.setShowButtonDelayed();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.setShowButtonDelayed);\n }\n\n handleClick = () => {\n if (this.state.open) {\n this.setState({\n open: false,\n });\n } else {\n this.setState({\n open: true,\n });\n }\n }\n\n setShowButton = () => {\n this.setState({\n showButton: shouldShowButton(this),\n });\n }\n\n setShowButtonDelayed = () => {\n if (!this.state.open) {\n setTimeout(this.setShowButton, TRANSITION_DELAY);\n }\n }\n\n setNode = (textNode) => {\n this.textNode = textNode;\n };\n\n render() {\n const buttonText = !this.state.open ? 'Развернуть' : 'Свернуть';\n const {\n backgroundColor,\n lines,\n lineHeight,\n } = this.props;\n const hasBackground = !R.isNil(backgroundColor);\n const showButton = this.props.text.length > 0 && this.state.showButton;\n const height = lines * lineHeight;\n\n return (\n \n \n {this.props.text}\n \n \n \n {showButton &&\n \n {buttonText}\n \n }\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport containerQuery from 'decorators/containerQuery';\n\nimport Text from 'components/Text';\nimport Select from 'components/Select';\nimport More from 'components/More';\n\nimport styles from './AnalysRow.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport class AnalysRow extends PureComponent {\n static propTypes = {\n selectList: PropTypes.array,\n title: PropTypes.string,\n influence: PropTypes.string,\n selectName: PropTypes.string,\n disabledInitially: PropTypes.bool,\n containerQuery: PropTypes.object,\n }\n\n static defaultProps = {\n selectList: [],\n }\n\n state = {\n focused: false,\n disabled: this.props.disabledInitially,\n }\n\n handleFocusSelect = () => {\n this.setState({ focused: true });\n }\n\n handleBlurSelect = () => {\n this.setState({ focused: false });\n }\n\n handleSelectChange = () => {\n this.setState({ disabled: false });\n }\n\n handleClose = () => {\n this.setState({ focused: false });\n }\n\n render() {\n const {\n selectList,\n title,\n influence,\n selectName,\n items,\n } = this.props;\n const { focused, disabled } = this.state;\n\n const options = items ?\n selectList.filter(i => R.contains(i.value, items)) :\n selectList;\n\n return (\n
\n \n \n {title}\n
\n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default R.compose(\n containerQuery(styles),\n)(AnalysRow);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport { reduxForm } from 'redux-form';\nimport { connect } from 'utils/react-redux';\n\nimport onFormChange from 'decorators/onFormChange';\n\nimport {\n getAnalysisId,\n getAnalysisKey,\n} from '../redux/selectors';\nimport {\n save as saveAnalysis,\n} from '../redux/modules/patientAnalysis';\n\nexport default function formAnalysisItem({\n save,\n saveParameterCreator,\n formatValue = R.identity,\n}) {\n return (WrappedComponent) => {\n const mapStateToProps = () => {\n const getInitialValues = memoizee(R.objOf('value'), { max: 1 });\n\n return (state, props) => {\n const { name, value } = props;\n const analysisId = getAnalysisId(state);\n\n return {\n analysisKey: getAnalysisKey(state, { analysisId }),\n initialValues: getInitialValues(value),\n form: name,\n };\n };\n };\n\n const mapDispatchToProps = {\n save,\n saveAnalysis,\n };\n\n class FormedContainer extends PureComponent {\n static propTypes = {\n analysisKey: PropTypes.string,\n name: PropTypes.string,\n reset: PropTypes.func.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n save: PropTypes.func.isRequired,\n saveAnalysis: PropTypes.func.isRequired,\n updateKey: PropTypes.string,\n }\n\n handleSubmit = this.props.handleSubmit(({ value: originalValue }) => {\n const value = formatValue(originalValue);\n\n if (R.isNil(value)) {\n return;\n }\n\n if (R.isEmpty(value)) {\n this.props.reset();\n return;\n }\n\n this.handleSave(value);\n });\n\n handleSave = (value) => {\n const { analysisKey, updateKey, name } = this.props;\n\n return this.props.save({\n key: updateKey,\n data: {\n ___parent: analysisKey,\n ...saveParameterCreator({\n key: name,\n value,\n }),\n },\n });\n }\n\n render() {\n return (\n
\n \n \n );\n }\n }\n\n return R.compose(\n connect(mapStateToProps, mapDispatchToProps),\n reduxForm({\n enableReinitialize: true,\n fields: [\n 'value',\n ],\n }),\n onFormChange('handleSubmit'),\n )(FormedContainer);\n };\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport AnalysRow from '../../components/AnalysRow';\nimport { save } from '../../redux/modules/analysisGenes';\nimport formAnalysisItem from '../../utils/formAnalysisItem';\n\nconst saveParameterCreator = ({\n key,\n value,\n}) => ({\n custom_ген: key,\n custom_генотип: value,\n});\n\nclass GeneticAnalysisItemContainer extends PureComponent {\n static propTypes = {\n title: PropTypes.string,\n influence: PropTypes.string,\n selectList: PropTypes.array,\n items: PropTypes.array,\n name: PropTypes.string,\n disabledInitially: PropTypes.bool,\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default R.compose(\n formAnalysisItem({\n save,\n saveParameterCreator,\n }),\n)(GeneticAnalysisItemContainer);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport AnalysRow from '../../components/AnalysRow';\nimport { save } from '../../redux/modules/analysisVitamin';\nimport formAnalysisItem from '../../utils/formAnalysisItem';\n\nconst saveParameterCreator = ({\n key,\n value,\n}) => ({\n custom_витамин: key,\n custom_оценка: value,\n});\n\nclass GeneticAnalysisItemContainer extends PureComponent {\n static propTypes = {\n title: PropTypes.string,\n influence: PropTypes.string,\n selectList: PropTypes.array,\n name: PropTypes.string,\n disabledInitially: PropTypes.bool,\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default R.compose(\n formAnalysisItem({\n save,\n saveParameterCreator,\n }),\n)(GeneticAnalysisItemContainer);\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport containerQuery from 'decorators/containerQuery';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Text from 'components/Text';\nimport Link from 'components/Link';\nimport Icon from 'components/Icon';\n\nimport GenesRow from '../../containers/AnalysisItemGenes';\nimport VitaminRow from '../../containers/AnalysisItemVitamin';\n\nimport styles from './RowsTable.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst getDefaultRows = R.filter(R.prop('showByDefault'));\nconst getNotDefaultRows = R.reject(R.prop('showByDefault'));\nconst showShortListByDefault = R.compose(\n R.all(R.propSatisfies(R.isNil, 'value')),\n R.reject(R.prop('showByDefault')),\n);\n\nclass RowsTable extends PureComponent {\n static propTypes = {\n rows: PropTypes.array,\n selectList: PropTypes.array,\n titles: PropTypes.array,\n vitaminsAnalys: PropTypes.bool,\n containerQuery: PropTypes.object,\n }\n\n static defaultProps = {\n rows: [],\n titles: [],\n };\n\n state = {\n showShortList: showShortListByDefault(this.props.rows),\n }\n\n handleToggleList = () => {\n this.setState({\n showShortList: !this.state.showShortList,\n });\n }\n\n render() {\n const {\n titles,\n selectList,\n vitaminsAnalys,\n } = this.props;\n const { showShortList } = this.state;\n const notDefault = getNotDefaultRows(this.props.rows);\n const rows = showShortList ?\n getDefaultRows(this.props.rows) :\n [...getDefaultRows(this.props.rows), ...notDefault];\n const AnalysRow = vitaminsAnalys ? VitaminRow : GenesRow;\n const rowsList = rows.map(item => (\n \n \n \n ));\n const tableHeader = titles.map((item, index) => (\n \n \n {item}\n \n \n ));\n\n return (\n
\n
\n {tableHeader}\n
\n
\n {rowsList}\n
\n {!R.isEmpty(notDefault) &&\n
\n \n
\n \n
\n {showShortList ? 'Показать все' : 'Показать основные'}\n \n
\n }\n
\n );\n }\n}\n\nexport default R.compose(\n containerQuery(styles),\n)(RowsTable);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport RowsTable from '../../components/RowsTable';\n\nconst tableTitles = ['Ген', 'Генотип', 'Влияние'];\n\nexport default class AnalysisGenes extends PureComponent {\n static propTypes = {\n data: PropTypes.array,\n itemSelectDictionary: PropTypes.array,\n }\n\n render() {\n const {\n data,\n itemSelectDictionary,\n } = this.props;\n\n return (\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Select from 'components/Select';\n\nimport styles from './AnalysisItemSalt.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class AnalysisItemSalt extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n label: PropTypes.string,\n options: PropTypes.array,\n }\n\n render() {\n const {\n name,\n label,\n options,\n } = this.props;\n\n return (\n
\n
\n {label}\n
\n
\n \n
\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport AnalysisItemSalt from '../../components/AnalysisItemSalt';\nimport { save } from '../../redux/modules/analysisSalt';\nimport formAnalysisItem from '../../utils/formAnalysisItem';\n\nconst saveParameterCreator = ({\n key,\n value,\n}) => ({\n custom_химический_элемент: key,\n custom_результат: value,\n});\n\nclass AnalysisItemSaltContainer extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n label: PropTypes.string,\n options: PropTypes.array,\n updateKey: PropTypes.array,\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default R.compose(\n formAnalysisItem({\n save,\n saveParameterCreator,\n }),\n)(AnalysisItemSaltContainer);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport AnalysisItemSalt from '../../containers/AnalysisItemSalt';\n\nimport styles from './AnalysisSalt.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class AnalysisSalt extends PureComponent {\n static propTypes = {\n data: PropTypes.array,\n itemSelectDictionary: PropTypes.array,\n }\n\n static defaultProps = {\n data: [],\n }\n\n renderItem(item) {\n const { itemSelectDictionary } = this.props;\n\n return (\n \n \n \n );\n }\n\n render() {\n return (\n
\n {this.props.data.map(this.renderItem, this)}\n
\n );\n }\n}\n","import * as R from 'ramda';\n\nconst formatValue = (i) => {\n if (R.isNil(i)) {\n return '';\n } else if (R.is(Number, i)) {\n return String(i);\n } else if (i === '') {\n return i;\n }\n\n return String(Number.parseFloat(R.replace(',', '.', i)));\n};\n\nexport default formatValue;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Field from 'components/Field';\n\nimport { save } from '../../redux/modules/analysisBlood';\nimport formAnalysisItem from '../../utils/formAnalysisItem';\nimport formatValue from '../../utils/bloodAndHairAnalysis/formatValue';\n\nconst saveParameterCreator = ({\n key,\n value,\n}) => ({\n custom_химический_элемент: key,\n custom_факт: value,\n});\n\nclass BloodAnalysisItemContainer extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n }\n\n render() {\n const { name } = this.props;\n\n return (\n \n );\n }\n}\n\nexport default R.compose(\n formAnalysisItem({\n save,\n saveParameterCreator,\n formatValue,\n }),\n)(BloodAnalysisItemContainer);\n","import createValidate from 'utils/validation';\n\nexport default createValidate({\n value: {\n numeric: true,\n },\n});\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport BarchartTable from 'components/BarchartTable';\n\nimport AnalysisItemBlood from '../../containers/AnalysisItemBlood';\nimport getValidator from '../../utils/bloodAndHairAnalysis/getValidator';\n\nexport default class BloodAnalysis extends PureComponent {\n static propTypes = {\n data: PropTypes.array,\n }\n\n fieldRenderer(options) {\n const {\n name,\n value,\n update,\n updateKey,\n } = options;\n\n return (\n \n );\n }\n\n\n render() {\n const { data } = this.props;\n\n return (\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Field from 'components/Field';\n\nimport { save } from '../../redux/modules/analysisHair';\nimport formAnalysisItem from '../../utils/formAnalysisItem';\nimport formatValue from '../../utils/bloodAndHairAnalysis/formatValue';\n\nconst saveParameterCreator = ({\n key,\n value,\n}) => ({\n custom_химический_элемент: key,\n custom_факт: value,\n});\n\nclass HairAnalysisItemContainer extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n }\n\n render() {\n const { name } = this.props;\n\n return (\n \n );\n }\n}\n\nexport default R.compose(\n formAnalysisItem({\n save,\n saveParameterCreator,\n formatValue,\n }),\n)(HairAnalysisItemContainer);\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport BarchartTable from 'components/BarchartTable';\n\nimport AnalysisItemHair from '../../containers/AnalysisItemHair';\nimport getValidator from '../../utils/bloodAndHairAnalysis/getValidator';\n\nexport default class HairAnalysis extends PureComponent {\n static propTypes = {\n data: PropTypes.array,\n }\n\n fieldRenderer(state) {\n const {\n name,\n value,\n update,\n updateKey,\n } = state;\n\n return (\n \n );\n }\n\n render() {\n const { data } = this.props;\n\n return (\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport RowsTable from '../../components/RowsTable';\n\nconst tableTitles = ['Витамин', 'Оценка', 'Рекомендации'];\n\nexport default class VitaminsAnalys extends PureComponent {\n static propTypes = {\n data: PropTypes.array,\n itemSelectDictionary: PropTypes.array,\n }\n\n render() {\n const {\n data,\n itemSelectDictionary,\n } = this.props;\n\n return (\n \n );\n }\n}\n","import getAnalysisItem from '../getAnalysisItem';\n\nimport AnalysisGenes from '../../../components/AnalysisGenes';\nimport AnalysisSalt from '../../../components/AnalysisSalt';\nimport AnalysisBlood from '../../../components/AnalysisBlood';\nimport AnalysisHair from '../../../components/AnalysisHair';\nimport AnalysisVitamin from '../../../components/AnalysisVitamin';\n\nconst getAnalysisViewComponent = (state) => {\n const analysis = getAnalysisItem(state);\n const { typeId } = analysis || {};\n const analysisTypeToStateMap = {\n 194: AnalysisBlood,\n 196: AnalysisGenes,\n 193: AnalysisVitamin,\n 192: AnalysisHair,\n 195: AnalysisSalt,\n };\n\n if (!typeId) {\n return () => null;\n }\n\n return analysisTypeToStateMap[typeId];\n};\n\nexport default getAnalysisViewComponent;","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { ChemicalElement, AnalysisBlood } = session;\n\n const subitems = ChemicalElement\n .filter({\n custom_анализ_волос: true,\n })\n .toRefArray()\n .map((item) => {\n const existedItem = AnalysisBlood\n .filter({\n ___parent: analysisKey,\n custom_химический_элемент: item.key,\n })\n .first() || {};\n\n const commonProps = {\n chemicalElement: item.key,\n normMin: item.custom_норма_анализа_крови_от__мг,\n norm: item.custom_норма_анализа_крови__мг,\n normMax: item.custom_норма_анализа_крови_до__мг,\n label: `${item.custom_наименование}, мкг/л`,\n nameField: item.key,\n element: item.key,\n };\n\n return {\n ...commonProps,\n data: existedItem.custom_факт,\n updateKey: existedItem.key,\n };\n });\n\n return [\n {\n element: 'root',\n subitems,\n },\n ];\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { Gene, AnalysisGenes } = session;\n\n return Gene\n .all()\n .toRefArray()\n .map((item) => {\n const existedItem = AnalysisGenes\n .filter({\n ___parent: analysisKey,\n custom_ген: item.key,\n })\n .first() || {};\n\n const gene = existedItem.custom_генотип;\n\n return {\n key: item.key,\n title: item.custom_название,\n influence: item.custom_описание,\n showByDefault: item.custom_видно_по_умолчанию,\n value: gene ? gene.key : undefined,\n items: item.custom_генотипы,\n updateKey: existedItem.key,\n };\n });\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { ChemicalElement, AnalysisHair } = session;\n\n const subitems = ChemicalElement\n .filter({\n custom_анализ_крови: true,\n })\n .toRefArray()\n .map((item) => {\n const existedItem = AnalysisHair\n .filter({\n ___parent: analysisKey,\n custom_химический_элемент: item.key,\n })\n .first() || {};\n\n const commonProps = {\n chemicalElement: item.key,\n normMin: item.custom_норма_анализа_волос_от__мг,\n norm: item.custom_норма_анализа_волос__мг,\n normMax: item.custom_норма_анализа_волос_до__мг,\n label: `${item.custom_наименование}, мкг/г`,\n nameField: item.key,\n element: item.key,\n };\n\n return {\n ...commonProps,\n data: existedItem.custom_факт,\n updateKey: existedItem.key,\n };\n });\n\n return [\n {\n element: 'root',\n subitems,\n },\n ];\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { ChemicalElement, AnalysisSalt } = session;\n\n return ChemicalElement\n .filter({\n custom_анализ_мочи: true,\n })\n .toRefArray()\n .map((item) => {\n const existedItem = AnalysisSalt\n .filter({\n ___parent: analysisKey,\n custom_химический_элемент: item.key,\n })\n .first() || {};\n\n return {\n key: item.key,\n label: item.custom_наименование,\n value: existedItem.custom_результат,\n updateKey: existedItem.key,\n };\n });\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getAnalysisKey from '../../getAnalysisKey';\n\nexport default createOrmSelector(\n getAnalysisKey,\n\n (session, analysisKey) => {\n const { Vitamin, AnalysisVitamin } = session;\n\n return Vitamin\n .all()\n .toRefArray()\n .map((item) => {\n const existedItem = AnalysisVitamin\n .filter({\n ___parent: analysisKey,\n custom_витамин: item.key,\n })\n .first() || {};\n\n return {\n key: item.key,\n title: item.custom_наименование,\n influence: item.custom_рекомендации,\n showByDefault: true,\n value: existedItem.custom_оценка,\n updateKey: existedItem.key,\n };\n });\n },\n);\n","import {\n getAnalysisItem,\n} from '../../selectors';\n\nimport getAnalysisViewBlood from './getAnalysisViewBlood';\nimport getAnalysisViewGenes from './getAnalysisViewGenes';\nimport getAnalysisViewHair from './getAnalysisViewHair';\nimport getAnalysisViewSalt from './getAnalysisViewSalt';\nimport getAnalysisViewVitamin from './getAnalysisViewVitamin';\n\nexport const getAnalysisStatefulConfig = (state, type) => {\n const analysisTypeToStateMap = {\n 194: getAnalysisViewBlood,\n 196: getAnalysisViewGenes,\n 193: getAnalysisViewVitamin,\n 192: getAnalysisViewHair,\n 195: getAnalysisViewSalt,\n };\n\n return analysisTypeToStateMap[type] || (() => undefined);\n};\n\nconst getAnalysisViewData = (state) => {\n const analysis = getAnalysisItem(state);\n const { typeId } = analysis;\n const transformData = getAnalysisStatefulConfig(state, typeId);\n\n if (!transformData) {\n return null;\n }\n\n return transformData(state);\n};\n\nexport default getAnalysisViewData","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { Genotype } = session;\n\n return Genotype\n .all()\n .toRefArray()\n .map(item => ({\n label: item.custom_наименование,\n value: item.key,\n }));\n },\n);\n","import * as R from 'ramda';\n\nimport getAnalysisItem from '../getAnalysisItem';\nimport getGenotypes from '../getGenotypes';\n\nconst analysisTypeToStateMap = {\n 192: R.always(null),\n 196: getGenotypes,\n 193: R.always([\n { value: 'В норме', label: 'В норме' },\n { value: 'Повышено', label: 'Повышено' },\n { value: 'Понижено', label: 'Понижено' },\n ]),\n 194: R.always(null),\n 195: R.always([\n { value: false, label: 'Не обнаружено' },\n { value: true, label: 'Обнаружено' },\n ]),\n};\n\nconst getAnalysisViewOptions = (state) => {\n const analysis = getAnalysisItem(state);\n const { typeId } = analysis;\n const getData = analysisTypeToStateMap[typeId] || R.always(null);\n\n return getData(state);\n};\n\nexport default getAnalysisViewOptions;","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { ChemicalElement } = session;\n\n return ChemicalElement.all().toRefArray();\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getAnalysis from '../getAnalysis';\n\nexport default createSelector(\n (state, props) => R.pathOr([], ['location', 'query', 'comparision'], props),\n R.identity,\n\n (items, state) => R.map(item => getAnalysis(state, {\n analysisId: item,\n }), items),\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { Gene } = session;\n\n return Gene.all().toRefArray();\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nexport default createOrmSelector(\n (session) => {\n const { Vitamin } = session;\n\n return Vitamin\n .all()\n .toRefArray()\n .map(item => ({\n key: item.key,\n label: item.custom_наименование,\n }));\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport getAnalysisItem from '../getAnalysisItem';\nimport getChemicalElements from '../getChemicalElements';\nimport getGenes from '../getGenes';\nimport getVitamins from '../getVitamins';\n\nconst getChemicalList = prop => createSelector(\n getChemicalElements,\n\n R.compose(\n R.map(item => ({\n key: item.key,\n label: R.prop('custom_наименование', item),\n })),\n R.filter(R.prop(prop)),\n ),\n);\n\nconst types = {\n 194: getChemicalList('custom_анализ_крови'),\n 196: createSelector(\n getGenes,\n\n R.map(item => ({\n key: item.key,\n label: R.prop('custom_название', item),\n })),\n ),\n 193: getVitamins,\n 192: getChemicalList('custom_анализ_волос'),\n 195: getChemicalList('custom_анализ_мочи'),\n};\n\nexport default createSelector(\n (state, props) => R.compose(\n type => types[type](state, props),\n R.prop('typeId'),\n getAnalysisItem,\n )(state, props),\n\n R.identity,\n);\n","import * as R from 'ramda';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\nimport moment from 'moment';\n\nimport { appKey } from 'config';\n\nimport isLocalKey from 'utils/isLocalKey';\n\nimport {\n getPatientKey,\n} from 'redux/selectors';\n\nconst icons = {\n 192: {\n icon: 'biochemical',\n height: 24,\n width: 16,\n },\n 196: {\n icon: 'genetic',\n height: 30,\n width: 30,\n },\n 193: {\n icon: 'vitamins',\n height: 28,\n width: 22,\n },\n 194: {\n icon: 'microelements',\n height: 30,\n width: 24,\n },\n 195: {\n icon: 'urine',\n height: 26,\n width: 22,\n },\n};\n\nexport default createOrmSelector(\n (state, props = {}) => props.filter || 'all',\n getPatientKey,\n\n (session, filter, patientKey) => {\n const { PatientAnalysis } = session;\n\n return PatientAnalysis\n .filter({\n ___parent: patientKey,\n })\n .exclude({\n isDeleted: true,\n })\n .exclude(item => isLocalKey(item.key))\n .orderBy(item => moment(item.custom_дата).valueOf(), 'desc')\n .filter(item => item.custom_вид_анализа !== `${appKey}t8r6440794`)\n .filter(item => filter === 'all' || filter === item.custom_вид_анализа)\n .toModelArray()\n .map(item => {\n if (!item.custom_вид_анализа) {\n return null;\n }\n\n return ({\n id: item.id,\n key: item.key,\n iconProps: R.prop(item.custom_вид_анализа.id, icons),\n time: item.custom_дата_текстом,\n type: item.custom_вид_анализа.key,\n caption: item.custom_вид_анализа.custom_наименование,\n date: item.custom_дата,\n isDeleting: item.isDeleting,\n })\n })\n .filter(Boolean)\n },\n);\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArrayByParent } from 'redux/hor/module/selectors';\n\nexport const getSumComposition = memoizee((value, productKey, state) => {\n const composition = getItemsArrayByParent(productKey, state);\n console.log(\"----------------\");\n console.log(composition);\n\n if (!value) {\n return {};\n }\n\n return R.reduce((acc, item) => {\n const element = R.prop('custom_элемент', item);\n const elementValue = R.prop('custom_значение_на_порцию', item);\n const lens = R.lensProp(element);\n const realValue = Math.round(elementValue * value) / 100;\n\n return R.set(lens, realValue, acc);\n }, {}, composition);\n});\n\nexport const getIsHaveComposition = R.compose(\n R.not,\n R.isEmpty,\n getItemsArrayByParent,\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\nimport moment from 'moment';\nimport * as R from 'ramda';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nimport getPatientKey from 'redux/selectors/getPatientKey';\nimport getSupplementKey from 'redux/selectors/getSupplementKey';\n\nexport const getSupplement = createOrmSelector(\n getSupplementKey,\n\n (session, key) => {\n const { Supplement } = session;\n\n const item = Supplement\n .filter({\n key,\n })\n .first();\n\n if (item) {\n return item.ref;\n }\n\n return item;\n },\n);\n\nexport const getLastSupplementRation = createOrmSelector(\n getPatientKey,\n\n (session, patientKey) => {\n const { Supplement } = session;\n\n return Supplement\n .filter({\n ___parent: patientKey,\n })\n .exclude({\n isDeleted: true,\n })\n .exclude({\n isDeleting: true,\n })\n .orderBy(a => getKeyInfo(a.key).record)\n .last();\n },\n);\n\nexport const getLastSupplementRationKey = R.compose(\n item => item ? item.key : null,\n getLastSupplementRation,\n);\n\nexport const getLastSupplementRationId = R.compose(\n item => item ? item.id : null,\n getLastSupplementRation,\n);\n\nexport const getSupplementItems = createOrmSelector(\n getPatientKey,\n getSupplementKey,\n\n (session, patientKey, supplementKey) => {\n const { Supplement } = session;\n\n return Supplement\n .filter({\n ___parent: patientKey,\n })\n .exclude(item => item.isDeleted && item.key !== supplementKey)\n .orderBy(a => getKeyInfo(a.key).record, 'desc')\n .toModelArray()\n .map(item => ({\n value: item.id,\n label: moment(item.___createddate).format('DD.MM.YYYY HH:mm'), // eslint-disable-line no-underscore-dangle\n }));\n },\n);\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n label: item.custom_наименование,\n value: item.key,\n text: item.custom_описание,\n })),\n);\n","import { all, takeEvery, call, put } from 'redux-saga/effects';\nimport { startSubmit, stopSubmit } from 'redux-form';\n\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\n\nimport {\n fetchItem\n} from 'redux/modules/patients'\n\nimport {\n loadId,\n loadIdSuccess,\n loadIdFailure,\n loadInbodyReport,\n loadInbodyReportSuccess,\n loadInbodyReportFailure,\n} from './index';\n\nfunction* loadInbodyReportFlow({ payload }) {\n const key = payload.key\n const inbodyid = payload.inbodyid\n\n try {\n if (payload.form) {\n yield put(startSubmit(payload.form));\n }\n\n const response = yield call(request.post, `/${appKey}t179r/json/v2`, {\n parameters: {\n patient_key: key,\n inbodyid,\n },\n }, {\n headers: {\n Function: 'getInbodyMetering',\n }\n })\n\n if (response.data.error) {\n if (payload.form) {\n yield put(stopSubmit(payload.form, {\n id: 'Отчет с таким InBodyId не найден. Проверьте номер и повторите попытку.',\n }))\n }\n yield put(loadInbodyReportFailure())\n return\n }\n\n yield put(fetchItem({\n key,\n }))\n\n yield put(loadInbodyReportSuccess({\n ...response.data.data,\n }))\n yield put(stopSubmit(payload.form))\n } catch (error) {\n yield put(loadInbodyReportFailure(error))\n yield put(stopSubmit(payload.form, {\n id: 'Отчет с таким InBodyId не найден. Проверьте номер и повторите попытку.',\n }))\n }\n}\n\n\nfunction* loadIdFlow(action) {\n const key = action.payload.key\n\n try {\n const response = yield call(request.post, `/${appKey}t179r/json/v2`, {\n parameters: {\n patient_key: key,\n },\n }, {\n headers: {\n Function: 'getInbodyID',\n }\n })\n\n const id = response.data.data.inbodyid\n\n yield put(loadIdSuccess(id))\n } catch (error) {\n yield put(loadIdFailure({\n ...action.payload,\n error,\n }))\n }\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(loadId, loadIdFlow),\n takeEvery(loadInbodyReport, loadInbodyReportFlow),\n ]);\n}\n","import { createAction, createReducer } from 'redux-act'\n\nexport const loadId = createAction('INBODY__LOADID')\nexport const loadIdSuccess = createAction('INBODY__LOADID_SUCCESS')\nexport const loadIdFailure = createAction('INBODY__LOADID_FAILURE')\n\nexport const loadInbodyReport = createAction('INBODY__LOADREPORT')\nexport const loadInbodyReportSuccess = createAction('INBODY__LOADREPORT_SUCCESS')\nexport const loadInbodyReportFailure = createAction('INBODY__LOADREPORT_FAILURE')\n\n\nconst reducer = createReducer({\n [loadIdSuccess]: (state, id) => ({\n ...state,\n id,\n }),\n [loadIdFailure]: (state) => ({\n ...state,\n id: null,\n }),\n}, {\n id: null,\n})\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n\nexport { default as saga } from './saga';\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport Text from 'components/Text';\n\nimport styles from './Checkbox.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Checkbox extends PureComponent {\n static propTypes = {\n align: PropTypes.string,\n checked: PropTypes.bool,\n children: PropTypes.node,\n disabled: PropTypes.bool,\n block: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string,\n noWrap: PropTypes.bool,\n sizeCheck: PropTypes.oneOf([\n 'medium',\n 'small',\n ]),\n size: PropTypes.oneOf([\n 'big',\n 'medium',\n 'small',\n ]),\n theme: PropTypes.oneOf([\n 'bright',\n 'tag',\n 'disabled',\n 'sapphirine',\n 'sapphirine-hover',\n 'dark',\n 'thin',\n ]),\n value: PropTypes.string,\n onChange: PropTypes.func,\n }\n\n static defaultProps = {\n align: undefined,\n checked: false,\n children: undefined,\n disabled: false,\n id: undefined,\n name: undefined,\n noWrap: false,\n size: undefined,\n sizeCheck: undefined,\n theme: undefined,\n value: undefined,\n onChange: () => { },\n }\n\n handleChange = (event) => {\n this.props.onChange(event.target.checked, this.props.value, event);\n }\n\n render() {\n const {\n name,\n id,\n checked,\n\n children,\n size,\n sizeCheck,\n theme,\n noWrap,\n align,\n value,\n disabled,\n block,\n } = this.props;\n return (\n \n \n \n \n {children &&\n (noWrap ? children :
\n \n {children}\n \n
)\n }\n
\n \n );\n }\n}\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n\tgetItemsArray,\n\n\tR.map(item => ({\n\t\tlabel: item.custom_наименование,\n\t\tvalue: item.key,\n\t\ttext: item.custom_описание,\n\t})),\n);\n","import { all, takeEvery, call, put } from 'redux-saga/effects';\nimport { startSubmit, stopSubmit } from 'redux-form';\n\nimport { appKey } from 'config';\n\nimport { request } from 'utils/api';\n\nimport {\n\tfetchItem\n} from 'redux/modules/patients'\n\nimport {\n\tloadFiles,\n\tloadFilesSuccess,\n\tloadFilesFailure,\n\tloadMedassReport,\n\tloadMedassReportSuccess,\n\tloadMedassReportFailure,\n} from './index';\n\nfunction* loadMedassReportFlow({ payload }) {\n\tconst key = payload.key;\n\n\ttry {\n\t\tif (payload.form) {\n\t\t\tyield put(startSubmit(payload.form));\n\t\t}\n\n\t\tconst response = yield call(request.put, `/${key}/json/v2`, {\n\t\t\tparameters: {\n\t\t\t\tpatient_key: key,\n\t\t\t},\n\t\t\tdata: payload.imageFile ?\n\t\t\t\t{\n\t\t\t\t\tcustom_медасс_csv: payload.csvFile,\n\t\t\t\t\tcustom_медасс_jpg: payload.imageFile,\n\t\t\t\t} :\n\t\t\t\t{\n\t\t\t\t\tcustom_медасс_csv: payload.csvFile,\n\t\t\t\t}\n\t\t})\n\n\t\tif (response.data.error) {\n\t\t\tif (payload.form) {\n\t\t\t\tyield put(stopSubmit(payload.form))\n\t\t\t}\n\t\t\tyield put(loadMedassReportFailure())\n\t\t\treturn\n\t\t}\n\n\t\tyield put(fetchItem({\n\t\t\tkey,\n\t\t}))\n\n\t\tyield put(loadMedassReportSuccess({\n\t\t\t...response.data.data,\n\t\t}))\n\t\tyield put(stopSubmit(payload.form))\n\t} catch (error) {\n\t\tyield put(loadMedassReportFailure(error))\n\t\tyield put(stopSubmit(payload.form))\n\t}\n}\n\n\nfunction* loadFilesFlow(action) {\n\tconst key = action.payload.key\n\n\ttry {\n\t\tconst response = yield call(request.post, `/${key}/json/v2`, {\n\t\t\tparameters: {\n\t\t\t\tpatient_key: key,\n\t\t\t},\n\t\t})\n\n\t\tconst { csvFile, imageFile } = response.data.data;\n\n\t\tyield put(loadFilesSuccess(csvFile, imageFile))\n\t} catch (error) {\n\t\tyield put(loadFilesFailure({\n\t\t\t...action.payload,\n\t\t\terror,\n\t\t}))\n\t}\n}\n\nexport default function* saga() {\n\tyield all([\n\t\ttakeEvery(loadFiles, loadFilesFlow),\n\t\ttakeEvery(loadMedassReport, loadMedassReportFlow),\n\t]);\n}\n","import { createAction, createReducer } from 'redux-act'\n\nexport const loadFiles = createAction('MEDASS__LOADFILES')\nexport const loadFilesSuccess = createAction('MEDASS__LOADFILES_SUCCESS')\nexport const loadFilesFailure = createAction('MEDASS__LOADFILES_FAILURE')\n\nexport const loadMedassReport = createAction('MEDASS__LOADREPORT')\nexport const loadMedassReportSuccess = createAction('MEDASS__LOADREPORT_SUCCESS')\nexport const loadMedassReportFailure = createAction('MEDASS__LOADREPORT_FAILURE')\n\nconst reducer = createReducer({\n\t[loadFilesSuccess]: (state, csvFile, imageFile) => ({\n\t\t...state,\n\t\tcsvFile,\n\t\timageFile,\n\t}),\n\t[loadFilesFailure]: (state) => ({\n\t\t...state,\n\t\tcsvFile: null,\n\t\timageFile: null,\n\t})\n}, {\n\tcsvFile: null,\n\timageFile: null,\n})\n\nexport {\n\tgetItems,\n} from './selectors';\n\nexport default reducer;\n\nexport { default as saga } from './saga';\n","import { put, all, takeEvery } from 'redux-saga/effects';\n\nimport { setPatient, setPatientSuccess } from './index';\n\nfunction* setParamsFlow() {\n yield put(setPatientSuccess());\n}\n\nexport default function* saga() {\n yield all([\n takeEvery(setPatient, setParamsFlow),\n ]);\n}\n","import { createReducer, createAction } from 'redux-act';\n\nconst initialState = {\n patientId: null,\n};\n\nexport const setPatient = createAction('CATALOG__SET_PATIENT');\nexport const setPatientSuccess = createAction('CATALOG__SET_PATIENT_SUCCESS');\n\nconst handleGetPatient = (state, patientId) => ({\n ...state,\n patientId,\n});\n\nconst reducer = createReducer((on) => {\n on(setPatient, handleGetPatient);\n}, initialState);\n\nexport { default as saga } from './saga';\n\nexport default reducer;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"analysRow\":\"ymPAA\",\"container\":\"GHuk7\",\"column\":\"gzhIz\",\"analysRow_width_lt_752\":\"xnjtP\",\"column_type_3\":\"Grw-4\",\"container_focused\":\"w0-qV\",\"container_disabled\":\"VKRzS\",\"column_type_1\":\"ve7ND\",\"column_type_2\":\"_1AxwY\",\"text_disabled\":\"ChG8h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowsTable\":\"SKymW\",\"titleColumn\":\"d+5x2\",\"titles\":\"BkFjq\",\"rowContainer\":\"nA8K6\",\"plusIcon\":\"uWtNU\",\"rowsTable_width_lt_752\":\"HuR9l\",\"titleColumn_type_3\":\"F7PnX\",\"titleColumn_type_1\":\"CSUmK\",\"titleColumn_type_2\":\"_97ZXR\",\"show_all_button\":\"_0y7Wf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"-HmCK\",\"content\":\"ewyno\",\"sidebar\":\"cdtbr\",\"page\":\"PEoG9\",\"link\":\"O6KBN\",\"icon\":\"MMTD6\",\"note\":\"Gd91H\",\"layout_width_lt_810\":\"MVY8W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatarPicker\":\"_1e-+H\",\"input\":\"_8L2aZ\",\"label\":\"QpnFR\",\"avatar\":\"oAX0r\",\"image\":\"iEAb4\",\"text-wrap\":\"iitZC\",\"title\":\"hA92t\",\"error\":\"tdZkh\",\"avatarPicker_square\":\"z5o1G\",\"avatarPicker_type_value\":\"AxTf+\",\"avatarPicker_width_gt_400\":\"Y5xlP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userForm\":\"w+xDx\",\"title\":\"e1SIo\",\"subtitle\":\"eg1Tw\",\"filePicker\":\"Xl8eo\",\"container\":\"_3OIe9\",\"fieldset\":\"KiMU1\",\"form\":\"a1baY\",\"hr\":\"RvZlI\",\"field\":\"wNOlo\",\"phone\":\"XJWQf\",\"radio-title\":\"_1H89r\",\"select-title\":\"eA68v\",\"select-group\":\"MF2ot\",\"link\":\"i24EQ\",\"selectInstitute\":\"fC75I\",\"buttons\":\"IYliP\",\"button\":\"fF3-T\",\"checkbox\":\"-qEAM\",\"line\":\"xEyIF\",\"required\":\"NFztO\",\"userForm_width_lt_690\":\"uBtpd\",\"selectInstitute_hidden\":\"vf2XZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"instituteForm\":\"iH3yJ\",\"title\":\"_4XJ5M\",\"subtitle\":\"V8LCd\",\"container\":\"v777w\",\"form\":\"_1rwlp\",\"field\":\"_4Z3NB\",\"radio\":\"_1CRX1\",\"radio-title\":\"RtaBL\",\"hr\":\"ujWaG\",\"fields-title\":\"bTUzN\",\"fields-line\":\"LYxfM\",\"fields-item\":\"xx6en\",\"buttons\":\"R-0OL\",\"button\":\"i1XLa\",\"instituteForm_width_lt_690\":\"H3fuB\",\"filePicker\":\"_88DDK\",\"hr_wide\":\"PLZGU\",\"field_hidden\":\"wXjMT\",\"filePicker_registration\":\"hJ5eW\"};","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Content.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Content extends PureComponent {\n static propTypes = {\n borderTop: PropTypes.bool,\n children: PropTypes.node.isRequired,\n maximize: PropTypes.bool,\n indentTop: PropTypes.bool,\n indentBottom: PropTypes.bool,\n paddingXOff: PropTypes.bool,\n };\n\n static defaultProps = {\n borderTop: false,\n children: undefined,\n maximize: false,\n indentTop: true,\n indentBottom: true,\n paddingXOff: false,\n };\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport Title from 'components/Title';\nimport Text from 'components/Text';\nimport Button from 'components/Button';\nimport Error from 'components/Error';\nimport Info from 'components/Info';\n\nimport styles from './ModalForm.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class ModalForm extends PureComponent {\n state = {\n type: 'main'\n }\n static propTypes = {\n align: PropTypes.oneOf([\n 'center',\n 'right',\n ]),\n cancelBtn: PropTypes.string,\n children: PropTypes.node,\n deleteBtn: PropTypes.string,\n error: PropTypes.string,\n submitBtn: PropTypes.string,\n additionSubmitBtn: PropTypes.string,\n submitting: PropTypes.bool,\n theme: PropTypes.string,\n title: PropTypes.node,\n valid: PropTypes.bool,\n validDelete: PropTypes.bool,\n size: PropTypes.oneOf([\n 'small',\n 'wide',\n ]),\n noPadding: PropTypes.bool,\n onCancel: PropTypes.func,\n changeType: PropTypes.func,\n onDelete: PropTypes.func,\n onSubmit: PropTypes.func,\n deleteTooltip: PropTypes.string,\n submitInvalidTooltip: PropTypes.string,\n }\n\n static defaultProps = {\n cancelBtn: 'Отменить',\n children: undefined,\n deleteBtn: undefined,\n error: undefined,\n submitBtn: 'Продолжить',\n additionSubmitBtn: null,\n submitting: false,\n theme: undefined,\n title: undefined,\n valid: false,\n validDelete: true,\n size: undefined,\n noPadding: false,\n changeType: () => {},\n onCancel: () => { },\n onDelete: () => { },\n onSubmit: () => { },\n deleteTooltip: null,\n submitInvalidTooltip: null,\n }\n\n renderAdditionalSubmitBtn = () => {\n const {\n valid,\n submitting,\n theme,\n additionSubmitBtn,\n changeType\n } = this.props;\n const handleOnClick = () => {\n changeType('additional');\n }\n return (\n \n {additionSubmitBtn}\n \n );\n }\n\n renderSubmitBtn = () => {\n const {\n submitBtn,\n valid,\n submitting,\n theme,\n submitInvalidTooltip\n } = this.props;\n\n const button = (\n \n {submitBtn}\n \n );\n\n if (!submitInvalidTooltip || valid) {\n return button;\n }\n\n return (\n \n \n {submitInvalidTooltip}\n \n \n )\n }\n\n renderDeleteBnt = () => {\n const {\n deleteBtn,\n valid,\n validDelete,\n deleteTooltip,\n submitting,\n theme,\n onDelete,\n } = this.props;\n\n const button = (\n \n {deleteBtn}\n \n );\n\n if (!deleteTooltip) {\n return button;\n }\n\n return (\n \n \n {this.props.deleteTooltip}\n \n \n );\n }\n\n render() {\n const {\n title,\n children,\n cancelBtn,\n deleteBtn,\n theme,\n onSubmit,\n onCancel,\n error,\n align,\n size,\n noPadding,\n } = this.props;\n\n return (\n \n
\n {title && (\n
\n {typeof title === 'string' ? (\n \n {title}\n \n ) : (\n title\n )}\n
\n )}\n {children && React.Children.map(children, child => child && (\n
\n {child}\n
\n ))}\n
\n\n {error &&\n
\n \n
\n }\n\n {(this.props.submitBtn || this.props.cancelBtn) &&\n
\n
\n {\n this.props.additionSubmitBtn &&\n
\n {this.renderAdditionalSubmitBtn()}\n
\n }\n {this.props.submitBtn &&\n
\n {this.renderSubmitBtn()}\n
\n }\n {deleteBtn &&\n
\n {this.renderDeleteBnt()}\n
\n }\n {this.props.cancelBtn &&\n
\n \n {cancelBtn}\n \n
\n }\n
\n
\n }\n \n );\n }\n}\n","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport { connect } from 'utils/react-redux';\n\nconst IS_SOME_FIELD_ACTIVE_PROP_NAME = 'INTERNAL__isSomeFieldActive';\n\nconst onFormChange = (submitName, loggingName, submitOnUnmount = true) => (Target) => {\n // If the context is inside OnFormChange, on the first render it will be empty, because we need\n // to acquire Target's ref inside OnFormChange::render to populate context, but ref is not\n // defined on the first getChildContext call, and so children would not, acquire a new context\n // and there would be a bug with form fields not submitting when blurring\n Target.childContextTypes = {\n onFormChange: PropTypes.func,\n onLogging: PropTypes.func,\n };\n\n Target.prototype.getChildContext = function getChildContext() {\n return {\n onFormChange: this[submitName],\n onLogging: this[loggingName],\n };\n };\n\n const mapStateToProps = (state, { form }) => ({\n [IS_SOME_FIELD_ACTIVE_PROP_NAME]:\n !R.isNil(R.path(['form', form, 'active'], state)),\n });\n\n class OnFormChange extends React.PureComponent {\n static propTypes = {\n [IS_SOME_FIELD_ACTIVE_PROP_NAME]: PropTypes.bool,\n };\n\n componentWillUnmount() {\n if (this.props[IS_SOME_FIELD_ACTIVE_PROP_NAME] && this.targetRef && submitOnUnmount) {\n this.targetRef[submitName]();\n }\n }\n\n handleTargetRef = (el) => {\n this.targetRef = el;\n };\n\n targetRef = null;\n\n render() {\n return (\n \n );\n }\n }\n\n return connect(mapStateToProps)(OnFormChange);\n};\n\nexport default onFormChange;","import * as R from 'ramda';\nimport { createReducer, createAction } from 'redux-act';\n\nimport { logout } from 'redux/modules/auth';\n\nconst getOrigin = R.pathOr(null, ['location', 'host']);\n\nconst checkOrigin = () => {\n try {\n return getOrigin(window.opener) !== getOrigin(window);\n } catch (e) {\n return true;\n }\n};\n\nconst initialState = {\n openedWindows: [],\n isNeedSideBar: checkOrigin(),\n};\n\nexport const openWindow = createAction('WINDOWS_OPEN__OPEN_ONE_WINDOW');\nexport const closeWindows = createAction('WINDOWS_OPEN__CLOSE_ALL_WINDOWS');\n\nconst handleOpenWindow = (state, url) => {\n const width = Math.min(window.screen.width, 1200);\n const height = Math.min(window.screen.height, 800);\n const newWindow = window.open(url, null, `width=${width},height=${height}`);\n const openedWindows = state.openedWindows.concat(newWindow);\n\n return {\n ...state,\n openedWindows,\n };\n};\n\nconst handleCloseWindows = (state) => {\n state.openedWindows.forEach((oneWindow) => {\n oneWindow.close();\n });\n return initialState;\n};\n\nconst reducer = createReducer((on) => {\n on(openWindow, handleOpenWindow);\n on(closeWindows, handleCloseWindows);\n on(logout, handleCloseWindows);\n}, initialState);\n\nexport default reducer;\n","import Page from 'components/Page';\n\nexport default Page;\n","import * as R from 'ramda';\nimport { fk, attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Elements',\n tableId: 28,\n parseItem: R.evolve({\n ___parent: R.propOr(null, 'key'),\n }),\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c28cs9r349', {\n useLS: true,\n});\n\nexport default class Elements extends Model {\n static modelName = 'Elements';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('Elements', 'items'),\n custom_наименование: attr(),\n custom_сокращенное_наименование: attr(),\n custom_ед_изм: attr(), // TODO: fk\n custom_для_сортировки: attr(),\n custom_light: attr(),\n custom_used_in_pro: attr(),\n custom_источники: attr(),\n custom_влияние: attr(),\n }\n\n toString() {\n return `Elements: ${this.key}`;\n }\n}\n","import { createAction, createReducer } from 'redux-act';\nimport * as R from 'ramda';\nimport { LOCATION_CHANGE } from 'react-router-redux';\n\nconst initialState = {\n width: 0,\n isFixed: false,\n activeItem: null,\n activeGroup: null,\n isDisplayBzhuInRelativePercents: false,\n};\n\nexport const setWidth = createAction('RATIONUI__SET_WIDTH');\nexport const setFixed = createAction('RATIONUI__SET_IS_FIXED');\nexport const setActiveItem = createAction('RATIONUI__SET_ACTIVE_ITEM');\nexport const setActiveGroup = createAction('RATIONUI__SET_ACTIVE_GROUP');\nexport const setMenuItem = createAction('RATIONUI__SET_MENU_ITEM');\nexport const toggleDisplayBzhuInRelativePercents =\n createAction('RATIONUI__TOGGLE_DISPLAY_BZHU_IN_RELATIVE_PERCENT');\n\nconst handleAction = (prop, mergeState = R.assoc) => (state, payload) => {\n if (state[prop] === payload) {\n return state;\n }\n\n return mergeState(prop, payload, state);\n};\n\nconst handleSetWidth = handleAction('width');\nconst handleSetFixed = handleAction('isFixed');\nconst handleSetActiveItem = handleAction('activeItem', (prop, payload, state) => ({\n ...state,\n activeItem: payload,\n activeGroup: null,\n}));\nconst handleSetActiveGroup = handleAction('activeGroup', (prop, payload, state) => ({\n ...state,\n activeItem: null,\n activeGroup: payload,\n}));\nconst handleSetMenuItem = (state, payload) => ({\n ...state,\n activeMenu: state.activeMenu === payload ? undefined : payload,\n});\nconst handleChangeRoute = state => ({\n ...state,\n isFixed: false,\n activeItem: null,\n activeGroup: null,\n});\nconst handleToggleDisplayBzhuInRelativePercents = state => ({\n ...state,\n isDisplayBzhuInRelativePercents: !state.isDisplayBzhuInRelativePercents,\n});\n\nexport default createReducer({\n [setWidth]: handleSetWidth,\n [setFixed]: handleSetFixed,\n [setActiveItem]: handleSetActiveItem,\n [setActiveGroup]: handleSetActiveGroup,\n [setMenuItem]: handleSetMenuItem,\n [LOCATION_CHANGE]: handleChangeRoute,\n [toggleDisplayBzhuInRelativePercents]: handleToggleDisplayBzhuInRelativePercents,\n}, initialState);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nexport default class Option extends Component {\n static propTypes = {\n onClick: PropTypes.func.isRequired,\n children: PropTypes.node,\n value: PropTypes.string,\n className: PropTypes.string,\n activeClassName: PropTypes.string,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n title: PropTypes.string,\n };\n\n static defaultProps = {\n activeClassName: '',\n }\n\n onClick: Function = () => {\n const { disabled, onClick, value } = this.props;\n if (!disabled) {\n onClick(value);\n }\n };\n\n render() {\n const { children, className, activeClassName, active, disabled, title } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames/bind';\nimport { Editor as DraftEditor } from 'react-draft-wysiwyg';\nimport { EditorState, ContentState, CharacterMetadata } from 'draft-js';\nimport { stateToHTML } from 'draft-js-export-html';\nimport { stateFromHTML } from 'draft-js-import-html';\nimport Icon from 'components/Icon';\n\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\n\nimport Option from './Option';\nimport styles from './Editor.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Editor extends PureComponent {\n static propTypes = {\n isLight: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n value: PropTypes.string,\n children: PropTypes.node,\n withNumber: PropTypes.bool,\n titleLength: PropTypes.number,\n\n title: PropTypes.node,\n maxLength: PropTypes.number,\n }\n\n static defaultProps = {\n scrollable: false,\n onFocus: () => { },\n onBlur: () => { },\n onChange: () => { },\n value: '',\n children: undefined,\n withNumber: false,\n maxLength: 0,\n }\n\n constructor(props) {\n super(props);\n const contentState = stateFromHTML(this.props.value);\n const editorState = EditorState.createWithContent(contentState);\n\n this.state = {\n editorState,\n isFocused: false,\n };\n }\n\n handleEditorStateChange = (state, b, c) => {\n let editorState = state;\n\n const contentState = editorState.getCurrentContent();\n const oldContent = this.state.editorState.getCurrentContent();\n const { maxLength } = this.props;\n\n if (contentState === oldContent || contentState.getPlainText().length <= maxLength) {\n\n if (editorState.getLastChangeType() === 'insert-characters') {\n editorState = this.removeInlineStyles(editorState, ['BOLD', 'ITALIC']);\n }\n\n this.setState({ editorState });\n\n const value = stateToHTML(contentState);\n if (value !== this.props.value) {\n this.props.onChange(value);\n }\n }\n }\n // https://github.com/facebook/draft-js/issues/119#issuecomment-190277461\n handleBeforeInput = (chars) => {\n const contentState = this.state.editorState.getCurrentContent();\n const totalLength = contentState.getPlainText().length + chars.length;\n return totalLength > this.props.maxLength;\n }\n\n handleFocus = (event) => {\n this.setState({\n isFocused: true,\n });\n this.props.onFocus(event);\n }\n\n handleBlur = (event) => {\n this.setState({\n isFocused: false,\n });\n this.props.onBlur(event);\n }\n\n removeInlineStyles = (editorState, retainInlineStyles) => {\n let isChanged = false;\n const blocks = editorState\n .getCurrentContent()\n .getBlocksAsArray()\n .map(singleBlock =>\n singleBlock.set(\n \"characterList\",\n singleBlock.getCharacterList().map(charMetaData => {\n\n if (!charMetaData) {\n return charMetaData;\n }\n const entity = charMetaData.getEntity();\n const style = charMetaData.getStyle();\n const newStyle = style.intersect(retainInlineStyles)\n\n if (style.size !== newStyle.size) {\n isChanged = true\n }\n\n return CharacterMetadata.create({\n entity: entity,\n style: newStyle,\n });\n })\n )\n );\n\n if (isChanged) {\n return EditorState.createWithContent(\n ContentState.createFromBlockArray(blocks)\n );\n }\n\n return editorState\n };\n\n renderOptions({ config, currentState, onChange }) {\n const iconMap = {\n bold: 'b',\n italic: 'i',\n unordered: 'list_u',\n ordered: 'list_o',\n };\n\n return (\n
\n {config.options.map((style, index) => {\n return (\n \n \n \n )\n })\n }\n
\n );\n }\n\n render() {\n const { editorState } = this.state;\n const length = editorState.getCurrentContent().getPlainText().length;\n const { maxLength, titleLength } = this.props;\n\n return (\n \n
\n {this.props.children}\n
\n\n {this.props.withNumber &&\n \n {maxLength && maxLength > 0 ? maxLength - length : length}\n \n }\n\n { }}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n handleBeforeInput={this.handleBeforeInput} // eslint-disable-line react/jsx-handler-names\n toolbar={!this.props.isLight ? {\n options: ['inline', 'list'],\n inline: {\n options: ['bold', 'italic'],\n component: this.renderOptions,\n },\n list: {\n options: ['unordered', 'ordered'],\n component: this.renderOptions,\n },\n } : {\n options: [],\n }}\n handlePastedText={() => { }}\n />\n \n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { Field } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Editor from './Editor';\n\nclass EditorConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n onBlur: PropTypes.func,\n };\n\n static defaultProps = {\n name: undefined,\n onBlur: () => { },\n };\n\n handleBlur = onBlur => (event) => {\n onBlur(event);\n\n this.props.onBlur();\n\n if (this.context.onFormChange) {\n this.context.onFormChange();\n }\n };\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n\n if (!reduxForm || !R.includes(this.props.name, reduxForm.fields)) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(EditorConnected);\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getFilterOptions = memoizee(\n R.compose(\n R.map(R.pluck('custom_исключить')),\n R.groupBy(R.prop('custom_поиск')),\n getItemsArray,\n ),\n { max: 1 },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'FilterOptions',\n tableId: 109,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c109cs9r340', {\n useLS: true,\n});\n\nexport {\n getFilterOptions,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport memoizee from 'memoizee';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getUnits = memoizee(\n R.compose(\n R.map(i => ({\n label: i.custom_наименование,\n value: i.key,\n })),\n getItemsArray,\n ),\n { max: 1 },\n);\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'Units',\n tableId: 2,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c2cs9r352', {\n useLS: true,\n});\n\nexport {\n getUnits,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n label: item.custom_наименование,\n value: item.key,\n text: item.custom_описание,\n })),\n);\n","import generator from 'redux/hor/module';\n\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'PatientActivityLife',\n tableId: 15,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c15cs9r1836', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n label: item.custom_наименование,\n value: item.key,\n text: item.custom_описание,\n })),\n);\n","import generator from 'redux/hor/module';\n\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'PatientActivitySport',\n tableId: 16,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c16cs9r29', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Page.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Page extends PureComponent {\n static propTypes = {\n children: PropTypes.node,\n bgColor: PropTypes.string,\n }\n\n static defaultProps = {\n children: undefined,\n bgColor: undefined,\n }\n\n render() {\n const { bgColor } = this.props;\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import * as R from \"ramda\";\nimport { createSelector } from \"reselect\";\n\nimport getInstitution from \"../getInstitution\";\n\nexport enum SubscriptionState {\n \"IAP_ACTIVE\" = 10,\n \"IAP_RECURRING\" = 12,\n \"DEFAULT\" = 20,\n \"DEFAULT_RECURRING\" = 22,\n \"ERROR\" = 30,\n}\n\nexport default createSelector(\n getInstitution,\n\n (state) => state.custom_текущий_рекуррент || SubscriptionState.ERROR\n) as () => SubscriptionState;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nexport default class Gradient extends PureComponent {\n static propTypes = {\n dark: PropTypes.string.isRequired,\n light: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n }\n\n static defaultProps = {\n dark: undefined,\n light: undefined,\n name: undefined,\n }\n\n render() {\n const { light, dark, name } = this.props;\n\n return (\n \n \n \n \n \n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport Gradient from '../Gradient';\n\nexport default class Defs extends PureComponent {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n id: PropTypes.string,\n gradientColor: PropTypes.string,\n extraWidth: PropTypes.number,\n }\n\n render() {\n const { width, height, id, gradientColor, extraWidth } = this.props;\n const redGradientDarkColor = gradientColor || '#fc6b53';\n\n return (\n \n \n \n \n \n \n \n\n \n\n \n\n \n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ToolTip.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Tooltip extends PureComponent {\n static propTypes = {\n toolTipX: PropTypes.number,\n toolTipY: PropTypes.number,\n toolTipColor: PropTypes.string,\n toolTipText: PropTypes.string,\n }\n\n render() {\n return (\n \n {this.props.toolTipText}\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport {\n getPercent,\n gradientByColor,\n groupedColors,\n baseColors,\n CHART_PADDING_TOP,\n} from '../../helpers';\n\nexport default class OneRect extends PureComponent {\n static propTypes = {\n rectStart: PropTypes.number,\n rectEnd: PropTypes.number,\n index: PropTypes.number,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n height: PropTypes.number,\n norm: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n id: PropTypes.string,\n data: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n ]),\n dataInCenter: PropTypes.number,\n x: PropTypes.func,\n width: PropTypes.func,\n }\n\n getIsValid(isGrouped) {\n const {\n normMin,\n normMax,\n rectEnd,\n } = this.props;\n\n return isGrouped || (rectEnd >= normMin && rectEnd <= normMax) || !this.props.norm;\n }\n\n render() {\n const {\n rectStart,\n rectEnd,\n index,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n height,\n id,\n data,\n dataInCenter,\n x,\n width,\n } = this.props;\n\n const isGrouped = Array.isArray(data);\n const percent = getPercent(dataInCenter, rectEnd - rectStart);\n const colorMap = isGrouped ? groupedColors : baseColors;\n const isValid = this.getIsValid(isGrouped);\n const color = R.pathOr('', [index, isValid ? 'valid' : 'invalid'], colorMap);\n const gradientColor = gradientByColor[color] ? gradientByColor[color](id) : color;\n\n return (\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nexport default class Triangle extends PureComponent {\n static propTypes = {\n height: PropTypes.number,\n triangles: PropTypes.array,\n x: PropTypes.func,\n }\n\n static defaultProps = {\n height: 0,\n triangles: [],\n x: () => {\n },\n }\n\n render() {\n const { height, triangles, x } = this.props;\n\n return (\n \n {triangles.map((norm, index) => (\n \n {norm !== 0 &&\n \n }\n \n ))}\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Triangle from './Triangle';\n\nexport default class NormRangeLine extends PureComponent {\n static propTypes = {\n norm: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n height: PropTypes.number,\n multiplier: PropTypes.number,\n x: PropTypes.func,\n y: PropTypes.func,\n }\n\n static defaultProps = {\n norm: undefined,\n normMin: undefined,\n normMax: undefined,\n multiplier: 0,\n height: 0,\n triangles: [],\n x: () => {},\n y: () => {},\n }\n\n getNorms() {\n const { norm, multiplier } = this.props;\n const normMaxValue = isFinite(this.props.normMax) ? this.props.normMax : norm * 3;\n const normMin = isFinite(this.props.normMin) ? this.props.normMin / multiplier : null;\n const normMax = normMaxValue ? normMaxValue / multiplier : null;\n\n return [normMin, normMax];\n }\n\n render() {\n const { height, y, x } = this.props;\n const [normMin, normMax] = this.getNorms();\n const triangles = this.getNorms();\n\n if (R.isNil(normMin) || R.isNil(normMax)) {\n return null;\n }\n\n return (\n \n \n \n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nexport default class VerticalLine extends PureComponent {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n y: PropTypes.func,\n }\n\n static defaultProps = {\n width: 0,\n height: 0,\n y: () => {},\n }\n\n render() {\n const { height, width, y } = this.props;\n const getX = (index, list) => width * (index / (list.length - 1));\n const line = [0, 1, 2];\n\n return (\n \n {line.map((item, _, list) => (\n \n ))}\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport scaleLinearImport from 'd3-scale/src/linear';\nimport memoizee from 'memoizee';\n\nimport Defs from './Defs';\n\nimport TooltipDefault from './Tooltip';\nimport OneRectDefault from './default/OneRect';\nimport HighertLimitDefault from './default/HighertLimit';\nimport NormRangeLineDefault from './default/NormRangeLine';\nimport VerticalLineDefault from './default/VerticalLine';\n\nimport styles from './Barchart.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst scaleLinear = scaleLinearImport.default || scaleLinearImport;\n\nexport default class Barchart extends PureComponent {\n static propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.number,\n ]),\n norm: PropTypes.number,\n dataChart: PropTypes.array,\n dataInCenter: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n id: PropTypes.string,\n multiplier: PropTypes.number,\n color: PropTypes.oneOf(['sapphirine']),\n gradientColor: PropTypes.string,\n OneRect: PropTypes.func,\n HighertLimit: PropTypes.func,\n NormRangeLine: PropTypes.func,\n VerticalLine: PropTypes.func,\n Tooltip: PropTypes.func,\n extraWidth: PropTypes.number,\n noNorm: PropTypes.bool,\n isEmpty: PropTypes.bool,\n size: PropTypes.string,\n };\n\n static defaultProps = {\n dataChart: [],\n width: 0,\n height: 0,\n multiplier: 1,\n OneRect: OneRectDefault,\n HighertLimit: HighertLimitDefault,\n NormRangeLine: NormRangeLineDefault,\n VerticalLine: VerticalLineDefault,\n Tooltip: TooltipDefault,\n extraWidth: 15,\n };\n\n state = {\n toolTipX: 0,\n toolTipY: 0,\n toolTipOnChart: false,\n toolTipShow: false,\n toolTipText: null,\n };\n\n\n handlePositionMouse = ({ x, y }) => {\n if (this.state.toolTipOnChart) {\n this.setState({\n toolTipX: x,\n toolTipY: y,\n toolTipShow: true,\n });\n }\n };\n\n handleMouseMove = (event) => {\n const x = event.clientX;\n const y = event.clientY;\n\n if (!this.props.noNorm) {\n this.setState({\n toolTipShow: false,\n });\n\n this.handleDebounceMouseMove({ x, y });\n } else {\n this.handlePositionMouse({ x, y });\n }\n };\n\n handleDebounceMouseMove = debounce(event => this.handlePositionMouse(event), 200);\n\n handleMouseLeave = () => {\n this.setState({\n toolTipShow: false,\n toolTipOnChart: false,\n });\n };\n\n handleMouseEnter = memoizee((text, color) => (event) => {\n this.setState({\n toolTipX: event.clientX,\n toolTipY: event.clientY,\n toolTipColor: color,\n toolTipOnChart: true,\n toolTipShow: true,\n toolTipText: `${text}%`,\n });\n });\n\n\n renderMainChart(data, x, y) {\n if (!this.props.data) {\n return null;\n }\n\n const { OneRect } = this.props;\n return data.map((rect, index, list) => (\n \n ));\n }\n\n\n renderBarChart() {\n const {\n data,\n width,\n extraWidth,\n height,\n color,\n id,\n multiplier,\n dataInCenter,\n dataChart,\n normMin,\n norm,\n normMax,\n gradientColor,\n } = this.props;\n\n const x = scaleLinear().range([0, width]);\n const y = scaleLinear().range([0, height]);\n\n x.domain([0, dataInCenter * 2]);\n y.domain([0, height]);\n\n const { HighertLimit, NormRangeLine, VerticalLine } = this.props;\n\n return (\n \n \n\n \n \n\n {this.renderMainChart(dataChart, x, y)}\n\n \n\n {this.props.noNorm ||\n \n \n \n }\n \n \n );\n }\n\n render() {\n const { Tooltip, size, isEmpty } = this.props;\n const addHandler = size && !isEmpty;\n\n return (\n \n {this.renderBarChart()}\n\n {this.state.toolTipShow &&\n \n }\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport * as R from 'ramda';\n\nimport {\n gradientByColor,\n getColorStatus,\n CHART_PADDING_TOP,\n} from '../../helpers';\n\nexport default class OneRect extends PureComponent {\n static propTypes = {\n index: PropTypes.number,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n height: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n id: PropTypes.string,\n data: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n ]),\n x: PropTypes.func,\n width: PropTypes.number,\n color: PropTypes.string,\n }\n\n state = {\n withAnimation: false,\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.getSum(nextProps.data) !== this.getSum(this.props.data)) {\n this.setState({\n withAnimation: true,\n });\n }\n }\n\n getSum(data) {\n if (Array.isArray(data)) {\n return R.sum(data);\n }\n\n return data;\n }\n\n getPercent = () => {\n const { data, normMin, normMax } = this.props;\n const sum = R.sum([].concat(data));\n\n if (sum < normMin) {\n return Math.floor(((sum - normMin) * (100 / normMin)));\n } else if (sum > normMax && normMax) {\n return Math.ceil(sum * (100 / normMax));\n }\n return 100;\n }\n\n getColor(color) {\n const { id } = this.props;\n\n const gradientColor = gradientByColor[color] ? gradientByColor[color](id) : `url(#redGradient${id})`;\n\n if (this.props.index === 0) {\n return gradientColor;\n }\n\n return color;\n }\n\n render() {\n const {\n index,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n height,\n x,\n width,\n } = this.props;\n\n const valueInPercent = this.getPercent();\n const color = getColorStatus(valueInPercent, this.props.color);\n\n return (\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport {\n getColorStatus,\n getOnePercent,\n CHART_PADDING_TOP,\n} from '../../helpers';\n\nexport default class HighertLimit extends PureComponent {\n static propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n ]),\n dataChart: PropTypes.array,\n dataInCenter: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n height: PropTypes.number,\n color: PropTypes.oneOf(['sapphirine']),\n x: PropTypes.func,\n y: PropTypes.func,\n }\n\n static defaultProps = {\n\n }\n\n getPercent = () => {\n const { data, normMin, normMax } = this.props;\n const sum = Array.isArray(data) ? R.sum(data) : data;\n\n\n if (sum < normMin) {\n return Math.floor(((sum - normMin) * (100 / normMin)));\n } else if (sum > normMax) {\n return Math.floor(sum * (100 / normMax));\n }\n return 100;\n }\n\n getIsRender() {\n const { normMax, normMin, dataChart } = this.props;\n const data = R.compose(\n R.propOr(0, 'end'),\n R.last,\n )(dataChart);\n const onePercent = getOnePercent(normMin, normMax);\n if (!data || (!normMax && !normMin)) {\n return false;\n }\n\n if (isFinite(normMax) && !normMax) {\n return false;\n }\n\n if (data < (100 * onePercent)) {\n return false;\n }\n\n return true;\n }\n\n render() {\n const { height, dataInCenter, x, y } = this.props;\n const isRendered = this.getIsRender();\n const valueInPercent = this.getPercent();\n const color = getColorStatus(valueInPercent, this.props.color);\n const start = dataInCenter * 2;\n const duration = isRendered ? 0.3 : 0;\n\n return (\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Triangle from '../../default/NormRangeLine/Triangle';\n\nimport { getOnePercent } from '../../helpers';\n\nexport default class NormRangeLine extends PureComponent {\n static propTypes = {\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n height: PropTypes.number,\n x: PropTypes.func,\n y: PropTypes.func,\n }\n\n static defaultProps = {\n normMin: undefined,\n normMax: undefined,\n height: 0,\n x: () => {},\n y: () => {},\n }\n\n getTriangles({ onePercent, normMin, normMax }) {\n if (normMax < (100 * onePercent)) {\n return [normMin, normMax];\n }\n return [normMin];\n }\n\n render() {\n if (R.isNil(this.props.normMin) && R.isNil(this.props.normMax)) {\n return null;\n }\n\n const onePercent = getOnePercent(this.props.normMin, this.props.normMax);\n const normMaxValue = isFinite(this.props.normMax) ? 65 * onePercent : 110 * onePercent;\n const normMin = isFinite(this.props.normMin) && this.props.normMin > 0 ? 35 * onePercent : 0;\n const normMax = normMaxValue || null;\n const { height, x, y } = this.props;\n const triangles = this.getTriangles({ onePercent, normMin, normMax });\n\n return (\n \n \n \n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\n\nimport { getOnePercent } from '../../helpers';\n\nexport default class VerticalLine extends PureComponent {\n static propTypes = {\n height: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n y: PropTypes.func,\n x: PropTypes.func,\n }\n\n static defaultProps = {\n width: 0,\n height: 0,\n y: () => {},\n x: () => {},\n }\n\n render() {\n const { height, normMin, normMax, y, x } = this.props;\n const onePercent = getOnePercent(normMin, normMax);\n const getX = index => x(onePercent * index);\n const line = [0, 35, 65, 100];\n\n return (\n \n {line.map((item, index, list) => (\n \n ))}\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\n\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport BarChart from './Barchart';\n\nimport {\n getGroupedChart,\n getStandartChart,\n getWithTwoBoundariesOfNorm,\n getOnePercent,\n getColorStatus,\n} from './helpers';\n\nimport OneRect from './chemical/OneRect';\nimport HighertLimit from './chemical/HighertLimit';\nimport NormRangeLine from './chemical/NormRangeLine';\nimport VerticalLine from './chemical/VerticalLine';\n\nconst propsByType = {\n chemical: {\n OneRect,\n HighertLimit,\n NormRangeLine,\n VerticalLine,\n },\n};\n\nclass BarChartDefault extends PureComponent {\n static propTypes = {\n type: PropTypes.string,\n data: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n ]),\n norm: PropTypes.number,\n normMin: PropTypes.number,\n normMax: PropTypes.number,\n width: PropTypes.number,\n color: PropTypes.string,\n };\n\n static defaultProps = {\n width: 0,\n height: 0,\n multiplier: 1,\n };\n\n getPercent = () => {\n const { data, normMin, normMax } = this.props;\n const sum = Array.isArray(data) ? R.sum(data || [0]) : data;\n\n if (sum < normMin) {\n return Math.floor(((sum - normMin) * (100 / normMin)));\n } else if (sum > normMax) {\n return Math.ceil(sum * (100 / normMax));\n }\n return 100;\n }\n\n getDataCenterChart() {\n return this.props.norm || R.sum([].concat(this.props.data));\n }\n\n getChemicalDataCenterChart() {\n const { normMin, normMax } = this.props;\n\n if (!normMin && !normMax) {\n return 50;\n }\n\n return (getOnePercent(normMin, normMax) || 0) * 50;\n }\n\n getData() {\n if (this.props.type === 'chemical') {\n const { data, normMin, normMax, width } = this.props;\n\n const dataInCenter = this.getChemicalDataCenterChart();\n const dataChart = getWithTwoBoundariesOfNorm(data, normMin, normMax, width);\n const valueInPercent = this.getPercent();\n const gradientColor = getColorStatus(valueInPercent, this.props.color);\n return {\n dataInCenter,\n dataChart,\n gradientColor,\n };\n }\n\n const { data } = this.props;\n const dataInCenter = this.getDataCenterChart();\n const isGrouped = Array.isArray(data);\n const dataChart = isGrouped ? getGroupedChart(data) : getStandartChart(data);\n\n return {\n dataInCenter,\n isGrouped,\n dataChart,\n };\n }\n\n render() {\n const { type } = this.props;\n return (\n \n );\n }\n}\n\n\nexport default BarChartDefault;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './Radio.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Radio extends PureComponent {\n static propTypes = {\n checked: PropTypes.bool.isRequired,\n children: PropTypes.node,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).isRequired,\n theme: PropTypes.oneOf([\n 'right',\n ]),\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n mobileVersion: PropTypes.bool,\n }\n\n static defaultProps = {\n checked: false,\n children: undefined,\n disabled: false,\n id: undefined,\n name: undefined,\n value: undefined,\n theme: undefined,\n onBlur: () => { },\n onChange: () => { },\n onFocus: () => { },\n };\n\n handleChange = (event) => {\n this.props.onChange(event.target.value);\n };\n\n render() {\n const {\n id,\n name,\n value,\n checked,\n children,\n disabled,\n theme,\n onFocus,\n onBlur,\n mobileVersion\n } = this.props;\n\n return (\n \n \n
\n {children}\n
\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { Field } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Radio from './Radio';\n\nclass RadioConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n value: PropTypes.string,\n mobileVersion: PropTypes.bool,\n };\n\n static defaultProps = {\n name: undefined,\n value: undefined,\n };\n\n handleChange = onChange => (event) => {\n onChange(event);\n setTimeout(this.context.onFormChange, 0);\n }\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n\n if (!reduxForm || !R.contains(this.props.name, reduxForm.fields)) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(RadioConnected)","import * as R from 'ramda';\nimport { createSelector } from 'reselect';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getItems = createSelector(\n getItemsArray,\n\n R.map(item => ({\n label: item.custom_наименование,\n value: item.key,\n text: item.custom_описание,\n })),\n);","import generator from 'redux/hor/module';\n\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'PatientActivityChild',\n tableId: 15,\n});\n\nexport const fetchList = fetchWithView(fetch, 'ts5c15cs9r1837', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n\nexport {\n getItems,\n} from './selectors';\n\nexport default reducer;","import * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport moment from 'moment';\n\nimport { getItemsArray } from 'redux/hor/module/selectors';\n\nexport const getStatisticDates = memoizee((institution, state) => R.compose(\n R.map(item => moment(item.custom_дата).toDate()),\n R.filter(item => institution === 'all' || institution === item.custom_учреждение),\n getItemsArray,\n)(state), { max: 1 });\n","import generator from 'redux/hor/module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n fetch,\n reducer,\n} = generator({\n name: 'statisticDates',\n tableId: 131,\n});\n\nexport const fetchStatisticDates = fetchWithView(fetch, 'ts5c131cs9r443');\n\nexport {\n getStatisticDates,\n} from './selectors';\n\nexport default reducer;\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './IconLoader.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class IconLoader extends PureComponent {\n static propTypes = {\n size: PropTypes.oneOf([\n 'small',\n ]),\n }\n\n static defaultProps = {\n size: null,\n }\n\n render() {\n const { size } = this.props;\n\n return (\n
\n \n
\n );\n }\n}\n","import * as R from 'ramda';\nimport { attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n\n fetch,\n} = generator({\n name: 'SubscriptionDay',\n tableId: 119,\n parseItem: R.evolve({\n ___parent: R.prop('key'),\n }),\n});\n\nexport default class SubscriptionDay extends Model {\n static modelName = 'SubscriptionDay';\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: attr(),\n custom_название: attr(),\n custom_стоимость: attr(),\n custom_стоимость_исходная: attr(),\n custom_количество_месяцев_подписки: attr(),\n }\n\n static reducer = reducer;\n}\n\nexport const fetchList = fetchWithView(fetch, 'ts5c119cs9r401', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n","import { attr, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nimport getKeyInfo from 'utils/getKeyInfo';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'AnalysisType',\n tableId: 8,\n});\n\nexport default class AnalysisType extends Model {\n static modelName = 'AnalysisType';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n custom_наименование: attr(),\n }\n\n get id() {\n return getKeyInfo(this.key).record;\n }\n}\n\nexport const fetchList = fetchWithView(fetch, 'ts5c8cs9r17', {\n useLS: true,\n});\n\nexport {\n fetch,\n};\n","import * as R from 'ramda';\nimport { attr, fk, Model } from 'redux-orm';\n\nimport generator from 'redux/hor/orm-module';\nimport fetchWithView from 'redux/utils/fetchWithView';\n\nconst {\n reducer,\n fetch,\n} = generator({\n name: 'DietanamnezTiles',\n tableId: 49,\n parseItem: (el => {\n const categoryName = el.___parent ? el.___parent.name : \"\";\n return R.assoc(\"categoryName\", categoryName, R.evolve({\n ___parent: R.propOr(null, 'key'),\n custom_специфические_исключения: R.compose(\n R.pluck('key'),\n R.defaultTo([]),\n ),\n custom_ед_изм: R.propOr(null, 'label'),\n custom_формат: R.propOr(null, 'value'),\n custom_версия_приложения: R.propOr(null, 'value'),\n })(el))\n }\n )\n})\n\nexport const fetchList = fetchWithView(fetch, 'ts5c49cs9r104', {\n useLS: true,\n});\n\nexport default class DietanamnezTiles extends Model {\n static modelName = 'DietanamnezTiles';\n\n static reducer = reducer;\n\n static options = {\n idAttribute: 'key',\n }\n\n static fields = {\n ___parent: fk('DietanamnezTiles', 'items'),\n categoryName: attr(),\n custom_наименование: attr(),\n custom_иконка_url: attr(),\n custom_специфические_исключения: attr(),\n custom_ед_изм: attr(),\n custom_частота_употребления: attr(),\n custom_количество: attr(),\n custom_добавить_исключить: attr(),\n custom_картинка_с_порциями_url: attr(),\n custom_light: attr(),\n custom_формат: attr(),\n custom_версия_приложения: attr(),\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\n\nimport { Row, Column } from 'components/Grid';\nimport Field from 'components/Field';\nimport Select from 'components/Select';\nimport ImagePicker from 'components/ImagePicker';\nimport Editor from 'components/Editor';\n\nimport styles from './ProductFormIngredient.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst medicineOptions = [\n {\n label: 'Таблетка',\n value: 1,\n },\n {\n label: 'Капсула',\n value: 2,\n },\n {\n label: 'Драже',\n value: 3,\n },\n {\n label: 'Гранула',\n value: 4,\n },\n {\n label: 'Порошок (грамм)',\n value: 5,\n },\n {\n label: 'Суточная доза',\n value: 6,\n },\n];\n\nexport const sexOptions = [\n {\n value: 0,\n label: 'Для всех',\n },\n {\n value: 1,\n label: 'Мужской',\n },\n {\n value: 2,\n label: 'Женский',\n },\n];\n\nexport default class ProductFormIngredient extends PureComponent {\n static propTypes = {\n productGroups: PropTypes.array,\n specificEatingTypes: PropTypes.array,\n units: PropTypes.array,\n };\n\n renderSelect(title, params) {\n return (\n
\n \n
\n );\n }\n\n render() {\n return (\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n \n {this.renderSelect('Производитель', {\n name: 'custom_производитель',\n options: this.props.productGroups,\n })}\n \n \n {this.renderSelect('Лекарственная форма', {\n name: 'custom_лекарственная_форма',\n options: medicineOptions,\n })}\n \n \n {this.renderSelect('Пол', {\n name: 'custom_пол',\n options: sexOptions,\n })}\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n Описание\n \n
\n
\n
\n );\n }\n}\n","import * as R from 'ramda';\nimport moment from 'moment';\nimport createOrmSelector from 'redux/utils/createOrmSelector';\nimport createCachedOrmSelector from 'redux/utils/createCachedOrmSelector';\n\nconst getItems = createOrmSelector(\n (session) => {\n const { Worker } = session;\n\n return Worker\n .all()\n .orderBy('custom_login')\n .toRefArray()\n .map((item) => {\n const status = R.propOr(null, 'custom_состояние', item);\n const isInvite = status === 31;\n const getBold = isInvite ?\n R.compose(\n date => moment(date).format('DD.MM.YYYY'),\n R.propOr(undefined, '___createddate'),\n ) : R.propOr(null, 'custom_lastname');\n const getData = isInvite ?\n R.compose(\n date => moment(date).format('hh:mm:ss'),\n R.propOr(undefined, '___createddate'),\n ) : R.compose(\n R.join(' '),\n R.reject(R.isNil),\n R.values,\n R.pick(['custom_firstname', 'custom_midname']),\n );\n\n return {\n ...item,\n main: {\n login: item.custom_login,\n bold: getBold(item),\n data: getData(item),\n },\n role: R.propOr(null, 'custom_role', item),\n };\n });\n },\n);\n\nconst getItemsByStatus = status => R.compose(\n R.filter(R.propEq('custom_состояние', status)),\n getItems,\n);\n\nexport const getActiveItems = getItemsByStatus(2);\nexport const getInactiveItems = getItemsByStatus(3);\nexport const getInvitedItems = getItemsByStatus(31);\n\nexport const getList = createOrmSelector(\n (session) => {\n const { Worker } = session;\n\n return Worker\n .all()\n .toRefArray();\n },\n);\n\nexport const getSelectList = R.compose(\n R.map(item => ({\n value: item.key,\n label: `${item.main.bold} ${item.main.data}`,\n })),\n getActiveItems,\n);\n\nexport const getItem = createCachedOrmSelector(\n (state, key) => key,\n\n (session, key) => {\n const { Worker } = session;\n\n try {\n if (Worker.idExists(key)) {\n return Worker\n .withId(key)\n .ref;\n }\n\n return Worker\n .filter({\n oldKey: key,\n })\n .last()\n .ref;\n } catch (error) {\n return null;\n }\n },\n);\n","import createOrmSelector from 'redux/utils/createOrmSelector';\n\nimport getSupplementKey from 'redux/selectors/getSupplementKey';\n\nexport const getSupplementDish = createOrmSelector(\n getSupplementKey,\n\n (session, supplementKey) => {\n const { SupplementDish } = session;\n\n return SupplementDish\n .filter({\n ___parent: supplementKey,\n })\n .exclude({\n isDeleting: true,\n })\n .exclude({\n isDeleted: true,\n })\n .toRefArray();\n },\n);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"barchart\":\"_7pgCz\",\"chart\":\"_0zWZP\",\"toolTip\":\"I0v4L\",\"barchart_size_mini\":\"NmkR9\"};","import React, { PureComponent } from 'react';\nimport { Field as FormField } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport { dateFieldMap } from 'utils/dateField';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport moment from 'moment';\n\nclass FieldDate extends PureComponent {\n static propTypes = {\n name: PropTypes.string,\n }\n\n static defaultProps = {\n name: undefined,\n }\n\n renderField = (field = {}) => {\n const date = moment(field.input.value, 'DD.MM.YYYY');\n\n if (!date.isValid()) {\n return null;\n }\n\n return (\n \n {date.format('D MMM / YYYY').replace('.', '')}\n \n );\n }\n\n render() {\n const { _reduxForm: reduxForm = {} } = this.props;\n const { fields = [] } = reduxForm || {};\n const name = dateFieldMap[this.props.name];\n\n if (!reduxForm || !R.contains(this.props.name, fields) || !R.contains(name, fields)) {\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(FieldDate)","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport InputMask from 'react-input-mask';\nimport * as R from 'ramda';\n\nimport FieldDate from './FieldDate';\nimport styles from './Field.module.css';\nimport PhoneInput from 'react-phone-number-input'\nimport \"./PhoneInput.css\";\n\nconst cx = classNames.bind(styles);\n\nexport default class Field extends PureComponent {\n state = {\n phoneValue: this.props.value\n }\n\n static propTypes = {\n autoFocus: PropTypes.bool,\n active: PropTypes.bool,\n center: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n hint: PropTypes.string,\n id: PropTypes.string,\n indent: PropTypes.bool,\n interval: PropTypes.string,\n label: PropTypes.string,\n mask: PropTypes.string,\n mimicSelect: PropTypes.bool,\n name: PropTypes.string,\n noOverflow: PropTypes.bool,\n note: PropTypes.string,\n placeholder: PropTypes.string,\n required: PropTypes.bool,\n symbol: PropTypes.string,\n tooltipError: PropTypes.bool,\n touched: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n noBorder: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyPress: PropTypes.func,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n maxLength: PropTypes.number,\n submitFailed: PropTypes.bool,\n phone: PropTypes.bool,\n mobileVersion: PropTypes.bool\n }\n\n static defaultProps = {\n autoFocus: false,\n active: false,\n center: false,\n error: undefined,\n hint: undefined,\n id: undefined,\n indent: false,\n interval: undefined,\n label: undefined,\n mask: undefined,\n mimicSelect: false,\n name: undefined,\n noOverflow: false,\n note: undefined,\n placeholder: undefined,\n required: false,\n symbol: undefined,\n tooltipError: false,\n touched: true,\n type: 'text',\n value: undefined,\n noBorder: false,\n onChange: () => { },\n onBlur: () => { },\n onFocus: () => { },\n disabled: false,\n readOnly: false,\n phone: false,\n mobileVersion: false\n }\n\n handleChange = (event) => {\n this.props.onChange(event.target.value, event);\n\n\n }\n\n phoneHandleChange = (value) => {\n this.setState({ phoneValue: value || \"\" }, () => {\n const trueEvent = new Event(\"input\", { bubbles: true });\n this.truePhone.dispatchEvent(trueEvent);\n });\n }\n\n componentDidUpdate() {\n if (this.props.phone) {\n this.setState({ phoneValue: this.props.value });\n }\n }\n\n\n render() {\n const {\n autoFocus,\n id,\n touched,\n active,\n label,\n symbol,\n interval,\n value,\n placeholder,\n required,\n error,\n tooltipError,\n note,\n hint,\n center,\n indent,\n mimicSelect,\n noOverflow,\n onBlur,\n onFocus,\n onClick,\n type,\n disabled,\n readOnly,\n mask,\n maxLength,\n submitFailed,\n noBorder,\n phone,\n mobileVersion\n } = this.props;\n const withError = error && (touched && (!active || submitFailed)); // || (error && phone && touched)\n\n const InputElement = InputMask.default || InputMask;\n const Input = !R.isNil(mask) && InputElement ? InputElement : 'input';\n\n return (\n \n {interval &&\n
\n {interval}\n
\n }\n {!(phone && mask) ? :\n <>\n this.truePhone = el}\n >\n \n {\n this.truePhone.dispatchEvent(new Event(\"blur\", { bubbles: true }));\n\n }}\n id={id}\n onKeyPress={this.props.onKeyPress}\n value={value}\n disabled={disabled}\n onChange={this.phoneHandleChange}\n />\n\n \n }\n\n\n\n {symbol &&\n
\n {symbol}\n
\n }\n\n
\n {label &&\n \n {label}\n {required && *}\n \n }\n {hint &&\n
\n {hint}\n
\n }\n \n {note || }\n \n {withError &&\n \n {error}\n \n }\n \n );\n }\n}\n","import React, { PureComponent } from \"react\";\nimport { Field as FormField } from \"redux-form\";\nimport { withReduxForm } from \"redux-form/es/ReduxFormContext\";\nimport PropTypes from \"prop-types\";\nimport * as R from \"ramda\";\n\nimport Field from \"./Field\";\n\nclass FieldConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n onLogging: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n isLoggingEqualValues: PropTypes.bool,\n autoFocus: PropTypes.bool,\n mobileVersion: PropTypes.bool,\n };\n\n static defaultProps = {\n name: undefined,\n onBlur: () => {},\n onChange: () => {},\n onFocus: () => {},\n isLoggingEqualValues: false,\n mobileVersion: false,\n };\n\n state = {\n isСhanging: false,\n };\n\n handleKeyPress = (event) => {\n if (event.which === 13 && this.context.onFormChange) {\n this.context.onFormChange();\n this.value = event.target.value;\n }\n };\n\n handleFocus = (onFocus) => (event) => {\n this.value = event.target.value;\n onFocus(event);\n this.props.onFocus(event);\n };\n\n handleBlur = (onBlur) => (eventOrValue) => {\n const value = R.pathOr(\"\", [\"target\", \"value\"])(eventOrValue);\n const isEquals = this.value === value;\n onBlur(eventOrValue);\n this.props.onBlur(eventOrValue);\n\n if (this.props.isLoggingEqualValues && this.state.isСhanging && isEquals) {\n const key = R.path([\"_reduxForm\", \"patientKey\"], this.props);\n this.setState({ isСhanging: false });\n this.context.onLogging({\n key,\n value,\n fieldName: this.props.name.replace(\"custom_\", \"\"),\n withNotification: true,\n });\n }\n\n if (!isEquals && this.context.onFormChange && !this.props.disableSubmit) {\n this.context.onFormChange();\n }\n };\n\n handleChange = (onChange) => (value, event) => {\n onChange(event);\n this.props.onChange(value, event);\n this.setState({ isСhanging: true });\n };\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n const isFieldArray = R.test(/\\[\\d+\\]/, this.props.name || \"\");\n\n if (\n !reduxForm ||\n (!R.contains(this.props.name, reduxForm.fields) && !isFieldArray)\n ) {\n return ;\n }\n\n return ;\n }\n}\n\nexport default withReduxForm(FieldConnected);\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport { isWebUri } from 'valid-url';\n\nimport constructFile from 'utils/constructFile';\n\nimport Button from 'components/Button';\n\nimport styles from './ImagePicker.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class ImagePicker extends PureComponent {\n static propTypes = {\n error: PropTypes.string,\n fileTitle: PropTypes.string,\n id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n title: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n ]),\n onChange: PropTypes.func,\n }\n\n static defaultProps = {\n error: undefined,\n fileTitle: 'Изменить',\n id: undefined,\n title: 'Выбрать',\n value: {},\n onChange: () => {},\n }\n\n handleChange = (e) => {\n const reader = new FileReader();\n const name = R.last(e.target.value.split('\\\\'));\n const file = e.target.files[0];\n\n if (!file) {\n return;\n }\n\n reader.onload = (event) => {\n const result = event.target.result.split(/[:;,]/);\n const mime = result[1];\n const base64 = result[3];\n\n this.props.onChange({\n mime,\n base64,\n name,\n });\n };\n\n reader.readAsDataURL(e.target.files[0]);\n }\n\n fileRef = (file) => { this.file = file; };\n\n render() {\n const { id, title, fileTitle, value } = this.props;\n const withFile = !R.isEmpty(value);\n const src = isWebUri(value.url) ? value.url : constructFile(value);\n\n return (\n \n );\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport { Field } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport ImagePicker from './ImagePicker';\n\nclass ImagePickerConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n };\n\n static defaultProps = {\n name: undefined,\n };\n\n handleChange = onChange => (event) => {\n onChange(event);\n setTimeout(this.context.onFormChange, 0);\n }\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n if (!this.props._reduxForm) { // eslint-disable-line no-underscore-dangle\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nexport default withReduxForm(ImagePickerConnected)","import PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport Icon from 'components/Icon';\nimport Title from 'components/Title';\n\nimport styles from './Success.module.css';\n\nconst cx = classNames.bind(styles);\n\nexport default class Success extends PureComponent {\n static propTypes = {\n children: PropTypes.node.isRequired,\n noPadding: PropTypes.bool,\n }\n\n static defaultProps = {\n text: undefined,\n noPadding: false,\n }\n\n render() {\n const { children, noPadding } = this.props;\n\n return (\n \n
\n \n
\n \n {children}\n \n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport classNames from 'classnames/bind';\nimport ReactDOM from 'react-dom';\nimport ReactSelect from 'react-select';\nimport Icon from 'components/Icon';\nimport memoizee from 'memoizee';\nimport Fuse from 'fuse.js';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport ClickOutside from 'react-click-outside';\nimport IconLoaderFilled from 'components/IconLoaderFilled';\n\nimport styles from './Select.module.css';\n\nconst cx = classNames.bind(styles);\n\nconst SELECT_HEIGHT = 250;\nconst emptyOptions = [];\nconst concat = memoizee((options, extra, extraOnTop) => {\n if (extraOnTop) {\n return R.concat(extra, options);\n }\n\n return R.concat(options, extra);\n}, { length: 2 });\nconst selectFilterOptions = R.nthArg(0);\nconst fuzzyFilterOptions = (options, search) => {\n const fuse = new Fuse(options, {\n location: 0,\n distance: 30,\n threshold: 0.2,\n maxPatternLength: 100,\n keys: [\n 'label',\n ],\n });\n\n return fuse.search(R.trim(search));\n};\n\nexport default class Select extends PureComponent {\n static propTypes = {\n active: PropTypes.bool,\n alwaysShowExtra: PropTypes.bool,\n autofocus: PropTypes.bool,\n autosize: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n extraOptions: PropTypes.array,\n filterOptions: PropTypes.func,\n grouped: PropTypes.bool,\n hideValue: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.string,\n menuRenderer: PropTypes.func,\n minLengthForResult: PropTypes.number,\n multi: PropTypes.bool,\n noBorder: PropTypes.bool,\n normal: PropTypes.bool,\n openOnFocus: PropTypes.bool,\n optionRenderer: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.object),\n placeholder: PropTypes.string,\n possibleOpenLeft: PropTypes.bool,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n searchPlaceholder: PropTypes.string,\n searchable: PropTypes.bool,\n small: PropTypes.bool,\n smallArrow: PropTypes.bool,\n submitFailed: PropTypes.bool,\n theme: PropTypes.oneOf([\n '',\n 'blue',\n 'alternative',\n 'dish',\n 'plain',\n 'statistic',\n ]),\n touched: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.number,\n PropTypes.string,\n PropTypes.array,\n PropTypes.bool,\n ]),\n valueRenderer: PropTypes.func,\n withoutDefaultSelected: PropTypes.bool,\n labelsList: PropTypes.array,\n\n onBlur: PropTypes.func,\n onBlurResetsInput: PropTypes.bool,\n onChange: PropTypes.func,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n onCloseResetsInput: PropTypes.bool,\n onSelectResetsInput: PropTypes.bool,\n onFocus: PropTypes.func,\n onInput: PropTypes.func,\n onSubmit: PropTypes.func,\n resetOnChange: PropTypes.bool,\n noWrap: PropTypes.bool,\n block: PropTypes.bool,\n setRef: PropTypes.func,\n extraOnTop: PropTypes.bool,\n closeOnSelect: PropTypes.bool,\n notFoundText: PropTypes.string,\n };\n\n static defaultProps = {\n active: false,\n alwaysShowExtra: false,\n autofocus: false,\n autosize: true,\n disabled: false,\n error: false,\n extraOptions: [],\n filterOptions: undefined,\n grouped: false,\n hideValue: false,\n id: undefined,\n label: '',\n menuRenderer: undefined,\n minLengthForResult: 0,\n multi: false,\n noBorder: false,\n normal: false,\n onBlurResetsInput: false,\n onCloseResetsInput: false,\n onSelectResetsInput: false,\n openOnFocus: true,\n optionRenderer: undefined,\n options: [],\n placeholder: ' ',\n possibleOpenLeft: false,\n readOnly: false,\n required: false,\n searchable: false,\n searchPlaceholder: '',\n small: false,\n smallArrow: false,\n submitFailed: false,\n static: false,\n theme: '',\n touched: true,\n value: null,\n valueRenderer: undefined,\n withoutDefaultSelected: false,\n onChange: () => { },\n onBlur: () => { },\n onClose: () => { },\n onFocus: () => { },\n onInput: () => { },\n onSubmit: () => { },\n onOpen: () => { },\n resetOnChange: false,\n noWrap: false,\n labelsList: [],\n setRef: () => { },\n extraOnTop: false,\n notFoundText: 'Ничего не найдено',\n };\n\n state = {\n label: '',\n openUp: false,\n openLeft: false,\n hideTemporarily: true,\n }\n\n componentWillMount() {\n this.setOptions(this.props);\n }\n\n componentDidMount() {\n if (!this.props.multi && !this.props.onBlurResetsInput) {\n this.setLabel(this.props.value, this.props.options);\n }\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.options !== this.props.options) {\n this.changed = false;\n this.setState({\n label: '',\n openUp: false,\n openLeft: false,\n hideTemporarily: true,\n isLoading: false,\n });\n this.input.setState({ inputValue: '' });\n }\n\n this.setOptions(nextProps);\n\n if (!this.props.multi && !this.props.onBlurResetsInput) {\n this.setLabel(nextProps.value, nextProps.options);\n }\n }\n\n handleOpen = () => {\n const select = this.container;\n let selectParent = select;\n let selectGrandParent = null;\n const htmlTag = document.getElementsByTagName('html')[0];\n\n while (!selectGrandParent) {\n selectParent = selectParent.parentNode;\n selectGrandParent = selectParent.style.overflow === 'hidden' ? selectParent : null;\n\n if (selectParent === htmlTag) {\n selectGrandParent = htmlTag;\n }\n }\n\n const selectParentHeight = selectGrandParent.offsetHeight;\n const selectOffsetTop = select.offsetTop;\n\n const body = document.body;\n const html = document.documentElement;\n const documentHeight = Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n );\n const canScroll = documentHeight - window.innerHeight - window.scrollY;\n\n const openUp = selectOffsetTop + SELECT_HEIGHT > selectParentHeight;\n const selectBox = select.getBoundingClientRect();\n const isPageBottom = selectBox.top + SELECT_HEIGHT > window.innerHeight + canScroll;\n\n this.setState({\n openUp: isPageBottom || openUp,\n });\n\n this.handleOpenLeft(selectGrandParent);\n }\n\n handleOpenLeft(selectGrandParent) {\n if (this.props.possibleOpenLeft) {\n setTimeout(() => {\n if (this.input && this.input.menuContainer) {\n const menuOuter = this.input.menuContainer;\n const selectParentWidth = selectGrandParent.offsetWidth;\n const menuRect = menuOuter.getBoundingClientRect();\n\n if (menuRect && menuRect.right > selectParentWidth) {\n this.setState({ openLeft: true, hideTemporarily: false });\n } else {\n this.setState({ openLeft: false, hideTemporarily: false });\n }\n }\n }, 0);\n }\n\n this.props.onOpen();\n }\n\n handleInput = (value = '', mimicEvent) => {\n const { multi, resetOnChange, onBlurResetsInput, searchable } = this.props;\n const newValue = this.props.onInput(value);\n if (value === this.state.label) {\n return value;\n }\n\n this.setState({\n label: value,\n });\n\n if (!mimicEvent) {\n this.changed = false;\n }\n\n if ((value === '' && !multi && this.props.value && !onBlurResetsInput) || (!mimicEvent && resetOnChange)) {\n if (searchable) {\n this.props.onChange(null);\n }\n }\n\n this.setOptions(this.props, value);\n\n return newValue;\n }\n\n handleChange = (item) => {\n if (this.props.multi) {\n this.handleChangeMulti(item);\n } else {\n\n this.handleChangeSingle(item);\n }\n\n this.changed = true;\n };\n\n handleChangeSingle = (item) => {\n if (!item) {\n return;\n }\n\n const { value } = item[0] || item;\n\n this.props.onChange(value, this.state.label);\n this.setLabel(value, this.props.options);\n }\n\n handleChangeMulti = (item) => {\n const current = this.props.value;\n const values = R.pluck('value', item);\n const lastValue = R.last(values);\n\n const newValue = R.contains(lastValue, current) ?\n R.without([lastValue], current) :\n R.concat([lastValue], current);\n\n this.props.onChange(newValue, this.state.label);\n }\n\n handleFocus = () => {\n this.changed = false;\n this.props.onFocus();\n }\n\n handleMenuWheel = (event) => {\n const { deltaY, currentTarget } = event;\n const { scrollTop, scrollHeight, offsetHeight } = currentTarget;\n\n const isMaxScroll = scrollHeight === scrollTop + offsetHeight && deltaY > 0;\n const isMinScroll = scrollTop === 0 && deltaY < 0;\n\n if (isMinScroll || isMaxScroll) {\n event.preventDefault();\n }\n }\n\n handleBlur = () => {\n if (this.props.onBlurResetsInput) {\n this.changed = false;\n this.setState({\n label: '',\n });\n this.setOptions(this.props, '');\n }\n\n this.setState({ openLeft: false });\n this.props.onBlur();\n }\n\n handleClickOutside = () => {\n this.input.setState({ isOpen: false });\n }\n\n setContainer = (node) => {\n this.container = ReactDOM.findDOMNode(node); // eslint-disable-line react/no-find-dom-node\n }\n\n setInput = (node) => {\n this.input = node;\n this.props.setRef(node);\n }\n\n setLabel(key, options) {\n if (!this.props.searchable) {\n return;\n }\n\n const value = R.find(R.propEq('value', key), [\n ...options,\n ...this.props.extraOptions,\n ...this.props.labelsList,\n ]);\n const label = R.compose(\n R.defaultTo(''),\n R.defaultTo(key),\n R.propOr(null, 'label'),\n )(value);\n\n if (!key && this.props.resetOnChange) {\n return;\n }\n\n if (this.input && label) {\n this.input.setState({ inputValue: label }); // eslint-disable-line\n }\n\n if (this.state.label !== label && label) {\n this.handleInput(label, true);\n }\n }\n\n setOptions(props = this.props, label = this.state.label) {\n if (this.changed) {\n return;\n }\n\n const { searchable, minLengthForResult, options, extraOptions } = props;\n const isHidden = searchable && this.state.label < minLengthForResult;\n\n this.index = this.index || 0;\n this.index += 1;\n\n if (!this.props.filterOptions) {\n const list = isHidden ? emptyOptions : this.filterOptions(label, options, extraOptions);\n this.setOptionsState(this.index)(list);\n } else {\n this.setState({\n isLoading: true,\n });\n\n this.props.filterOptions(label, options, this.setOptionsState(this.index));\n }\n }\n\n setOptionsState = index => (options) => {\n if (index !== this.index) {\n return;\n }\n\n this.setState({\n options,\n isLoading: false,\n });\n }\n\n getOptions() {\n return this.props.searchable ? this.state.options : this.props.options;\n }\n\n getIsWithError() {\n const { error, touched, submitFailed, active } = this.props;\n\n return error && (touched || submitFailed) && !active;\n }\n\n getNoResultText() {\n const { searchable, minLengthForResult } = this.props;\n const { label, isLoading } = this.state;\n const hideOptions = searchable && label.length < minLengthForResult;\n\n if (hideOptions) {\n return this.props.searchPlaceholder;\n }\n\n if (isLoading) {\n return 'Поиск...';\n }\n\n return this.props.notFoundText;\n }\n\n filterOptions = memoizee((search, options, extraOptions) => {\n const { searchable, minLengthForResult, extraOnTop } = this.props;\n\n if (!searchable) {\n return concat(options, extraOptions, extraOnTop);\n }\n\n if (search.length < minLengthForResult) {\n return [];\n }\n\n if (!search.length) {\n return concat(options, extraOptions, extraOnTop);\n }\n\n const result = fuzzyFilterOptions(options, search);\n\n return (R.isEmpty(result) && !this.props.alwaysShowExtra)\n ? []\n : concat(result, extraOptions, extraOnTop);\n })\n\n arrowRenderer = () => (\n \n )\n\n renderOption = (option, index, list, isFocused) => {\n if (!option.template) {\n return option.label;\n }\n\n return option.template(option, index, list, isFocused);\n };\n\n render() {\n const {\n searchable,\n value,\n noBorder,\n small,\n grouped,\n id,\n multi,\n withoutDefaultSelected,\n } = this.props;\n const { openUp, openLeft, isLoading } = this.state;\n const withError = this.getIsWithError();\n const withoutSelected = R.isNil(withoutDefaultSelected) ? searchable : withoutDefaultSelected;\n const options = this.getOptions();\n const noResultsText = this.getNoResultText();\n\n return (\n { }}\n className={cx({\n select: true,\n select_resetable: this.props.onBlurResetsInput,\n select_block: this.props.block,\n select_disabled: this.props.disabled,\n select_noWrap: this.props.noWrap,\n select_empty: R.isEmpty(options),\n select_searchable: searchable,\n select_noBorder: noBorder,\n select_small: small,\n select_normal: this.props.normal,\n [`select_${this.props.theme}`]: this.props.theme,\n select_smallArrow: this.props.smallArrow,\n select_openUp: openUp,\n select_openLeft: openLeft,\n select_grouped: grouped,\n select_state_error: withError,\n select_multi: multi,\n select_hide_temporarily: this.props.possibleOpenLeft && this.state.hideTemporarily,\n select_type_overflow: !this.props.autosize,\n })}\n ref={this.setContainer}\n >\n {this.props.label &&\n \n {this.props.label}\n {this.props.required && *}\n \n }\n\n \n {withError &&\n \n {this.props.error}\n \n }\n \n

\n {this.state.label}\n

\n \n \n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { Field } from 'redux-form';\nimport { withReduxForm } from 'redux-form/es/ReduxFormContext';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\n\nimport Select from './Select';\n\nclass SelectConnected extends PureComponent {\n static contextTypes = {\n onFormChange: PropTypes.func,\n };\n\n static propTypes = {\n name: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n ]),\n };\n\n static defaultProps = {\n name: undefined,\n onChange: () => { },\n onFocus: () => { },\n value: undefined,\n };\n\n handleChange = onChange => (event) => {\n onChange(event);\n this.props.onChange(event);\n setTimeout(this.context.onFormChange, 0);\n }\n\n renderField = (field = {}) => (\n \n );\n\n render() {\n const { _reduxForm: reduxForm } = this.props;\n const isFieldArray = R.test(/\\[\\d+\\]/, this.props.name || '');\n\n if (!reduxForm || (!R.includes(this.props.name, reduxForm.fields) && !isFieldArray)) {\n\n return (\n