{"version":3,"sources":["webpack:///./src/common/jwt.service.js","webpack:///./src/components/Header/LoginHeader/LoginHeader.vue?1926","webpack:///./src/components/Modals/ModalSigning/ModalSigning.vue?3434","webpack:///./src/components/Signing/CertificateList/props.js","webpack:///src/components/Signing/CertificateItem/CertificateItem.vue","webpack:///./src/components/Signing/CertificateItem/CertificateItem.vue?55a4","webpack:///./src/components/Signing/CertificateItem/props.js","webpack:///./src/components/Signing/CertificateItem/useCertificateItem.js","webpack:///./src/components/Signing/CertificateItem/CertificateItem.vue","webpack:///./src/components/Signing/CertificateItem/CertificateItem.vue?f537","webpack:///src/components/Signing/CertificateList/CertificateList.vue","webpack:///./src/components/Signing/CertificateList/CertificateList.vue?7c12","webpack:///./src/components/Signing/CertificateList/useCertificateList.js","webpack:///./src/components/Signing/CertificateList/CertificateList.vue","webpack:///./src/components/Signing/CertificateList/CertificateList.vue?63ac","webpack:///./src/components/Modals/ModalSigning/ModalSigning.vue?4cff","webpack:///src/components/Modals/ModalSigning/ModalSigning.vue","webpack:///./src/components/Modals/ModalSigning/ModalSigning.vue","webpack:///./src/components/Modals/ModalSigning/index.js","webpack:///./src/components/uikit/UiModal/UiModalV2.vue?1373","webpack:///./src/components/Header/AppLogo/AppLogo.vue?0328","webpack:///./src/common/date/dateFormats.js","webpack:///src/components/Support/SupportForm/SupportForm.vue","webpack:///./src/common/sign/signHelpers.js","webpack:///./src/components/uikit/UiModal/UiModalV2.vue?e32b","webpack:///./src/components/uikit/UiModal/UiModalV2.vue?ed5f","webpack:///src/components/uikit/UiModal/UiModalV2.vue","webpack:///./src/components/uikit/UiModal/UiModalV2.vue","webpack:///./src/components/uikit/UiModal/index.js","webpack:///./src/common/hooksDocument.js","webpack:///./src/common/telegram/telegramSendHelpers.js","webpack:///./src/components/Support/SupportIcon/SupportIcon.vue?a8b0","webpack:///./src/components/uikit/CheckMark/CheckMark.vue?3a02","webpack:///./src/components/uikit/CheckMark/CheckMark.vue","webpack:///./src/components/Notification.vue?baf8","webpack:///./src/components/Support/SupportIcon/SupportIcon.vue?382a","webpack:///./src/components/uikit/UiBtn/UiBtn.vue?544e","webpack:///./src/components/uikit/UiBtn/UiBtn.vue?696f","webpack:///src/components/uikit/UiBtn/UiBtn.vue","webpack:///./src/components/uikit/UiBtn/props.js","webpack:///./src/components/uikit/UiBtn/UiBtn.vue","webpack:///./src/components/uikit/AppTooltip/index.js","webpack:///./src/components/uikit/AppTooltip/props.js","webpack:///./src/components/uikit/AppTooltip/AppTooltipV2.vue?8a43","webpack:///src/components/uikit/AppTooltip/AppTooltipV2.vue","webpack:///./src/components/uikit/AppTooltip/AppTooltipV2.vue","webpack:///./src/components/uikit/AppTooltip/AppTooltipV2.vue?322d","webpack:///./src/components/uikit/AppTooltip/AppTooltip.vue?0000","webpack:///src/components/uikit/AppTooltip/AppTooltip.vue","webpack:///./src/components/uikit/AppTooltip/AppTooltip.vue","webpack:///./src/components/uikit/AppTooltip/AppTooltip.vue?62b6","webpack:///./src/components/uikit/Lists/UiListGroup/UiListGroup.vue?ff37","webpack:///./src/plugins/vuetify.js","webpack:///./src/store/param.module.js","webpack:///./src/store/auth.module.js","webpack:///./src/store/msg.module.js","webpack:///./src/store/app.module.js","webpack:///./src/store/modules/estimate.js","webpack:///./src/store/modules/dictionary.js","webpack:///./src/store/modules/signing.js","webpack:///./src/store/modules/layout.js","webpack:///./src/store/modules/locales.js","webpack:///./src/store/modules/filter.js","webpack:///./src/store/modules/workflow.js","webpack:///./src/store/modules/documentMaster.js","webpack:///./src/store/modules/pwa.js","webpack:///./src/store/modules/modals.js","webpack:///./src/store/modules/support.js","webpack:///./src/store/index.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/uikit/Typography/UiText/UiText.vue?bb39","webpack:///./src/components/uikit/Typography/UiText/UiText.vue?0311","webpack:///src/components/uikit/Typography/UiText/UiText.vue","webpack:///./src/components/uikit/Typography/UiText/UiText.vue","webpack:///./src/components/uikit/Typography/UiText/index.js","webpack:///./src/components/Modals/ModalNotification/ModalNotification.vue?8036","webpack:///./src/components/Modals/ModalNotification/props.js","webpack:///src/components/Modals/ModalNotification/ModalNotification.vue","webpack:///./src/components/Modals/ModalNotification/ModalNotification.vue?72f3","webpack:///./src/components/Modals/ModalNotification/useModalNotification.js","webpack:///./src/components/Modals/ModalNotification/ModalNotification.vue","webpack:///./src/components/Modals/ModalNotification/index.js","webpack:///./src/components/Support/SupportForm/SupportForm.vue?269c","webpack:///./src/constants/role/Role.js","webpack:///./src/App.vue?d4b6","webpack:///./src/common/buildUtils/getBuilder.js","webpack:///./src/components/Header/AppLogo/AppLogo.vue?1f44","webpack:///./src/components/Header/AppLogo/AppLogo.vue?6da9","webpack:///src/components/Header/AppLogo/AppLogo.vue","webpack:///./src/components/Header/AppLogo/props.js","webpack:///./src/components/Header/AppLogo/AppLogo.vue","webpack:///./src/components/Header/AppLogo/AppLogo.vue?749e","webpack:///./src/components/uikit/Lists/UiList/UiList.vue?56ef","webpack:///src/components/uikit/Lists/UiList/UiList.vue","webpack:///./src/components/uikit/Lists/UiList/props.js","webpack:///./src/components/uikit/Lists/UiList/UiList.vue","webpack:///./src/components/uikit/Lists/UiList/UiList.vue?8f6c","webpack:///./src/components/Header/LanguageSelect/props.js","webpack:///./src/components/Header/LanguageSelect/LanguageSelect.vue?97be","webpack:///src/components/Header/LanguageSelect/LanguageSelect.vue","webpack:///./src/components/Header/LanguageSelect/LanguageSelect.vue","webpack:///./src/components/Header/LanguageSelect/LanguageSelect.vue?5926","webpack:///./src/components/Header/LoginHeader/LoginHeader.vue?8744","webpack:///src/components/Header/LoginHeader/LoginHeader.vue","webpack:///./src/components/Header/LoginHeader/LoginHeader.vue","webpack:///./src/components/Header/LoginHeader/LoginHeader.vue?74b3","webpack:///./src/components/uikit/Lists/UiListGroup/UiListGroup.vue?0471","webpack:///src/components/uikit/Lists/UiListGroup/UiListGroup.vue","webpack:///./src/components/uikit/Lists/UiListGroup/UiListGroup.vue","webpack:///./src/components/uikit/Lists/UiListGroup/UiListGroup.vue?84cb","webpack:///./src/components/uikit/Lists/UiListItem/UiListItem.vue?5895","webpack:///src/components/uikit/Lists/UiListItem/UiListItem.vue","webpack:///./src/components/uikit/Lists/UiListItem/props.js","webpack:///./src/components/uikit/Lists/UiListItem/UiListItem.vue","webpack:///./src/components/uikit/Lists/UiListItem/UiListItem.vue?b1c8","webpack:///./src/components/Header/EgHeader/EgHeader.vue?598e","webpack:///src/components/Header/EgHeader/EgHeader.vue","webpack:///./src/components/Header/EgHeader/EgHeader.vue","webpack:///./src/components/Header/EgHeader/EgHeader.vue?0a25","webpack:///./src/components/EgDrawer.vue?a96b","webpack:///src/components/EgDrawer.vue","webpack:///./src/components/EgDrawer.vue","webpack:///./src/components/EgDrawer.vue?44c6","webpack:///./src/components/Layout/EgFooter/EgFooter.vue?9346","webpack:///src/components/Layout/EgFooter/EgFooter.vue","webpack:///./src/components/Layout/EgFooter/EgFooter.vue","webpack:///./src/components/Layout/EgFooter/index.js","webpack:///./src/components/Layout/EgFooter/EgFooter.vue?890a","webpack:///./src/components/Confirm.vue?63cf","webpack:///src/components/Confirm.vue","webpack:///./src/components/Confirm.vue","webpack:///./src/components/Confirm.vue?0be3","webpack:///./src/components/Notification.vue?aa79","webpack:///src/components/Notification.vue","webpack:///./src/components/Notification.vue","webpack:///./src/components/Notification.vue?69d4","webpack:///./src/components/Modals/AppModals/AppModals.vue?e2ae","webpack:///src/components/Modals/AppModals/AppModals.vue","webpack:///./src/components/Modals/AppModals/AppModals.vue","webpack:///./src/components/Modals/AppModals/AppModals.vue?0881","webpack:///./src/components/Support/SupportIcon/SupportIcon.vue?71b0","webpack:///src/components/Support/SupportIcon/SupportIcon.vue","webpack:///./src/components/Support/SupportIcon/SupportIcon.vue","webpack:///./src/components/Support/SupportIcon/SupportIcon.vue?adc0","webpack:///./src/components/Support/SupportForm/SupportForm.vue?1a5c","webpack:///./src/components/Support/SupportForm/SupportForm.vue","webpack:///./src/components/Support/SupportChat/SupportChat.vue?a9bd","webpack:///src/components/Support/SupportChat/SupportChat.vue","webpack:///./src/components/Support/SupportForm/SupportForm.vue?260b","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/components/Support/SupportChat/SupportChat.vue","webpack:///./src/components/Support/SupportChat/SupportChat.vue?75d8","webpack:///./src/common/support/useSupportWindow.js","webpack:///./src/App.vue","webpack:///./src/App.vue?5441","webpack:///./src/registerServiceWorker.js","webpack:///./src/plugins/axios.js","webpack:///./src/main.js","webpack:///./src/common/date.filter.js","webpack:///./src/common/error.filter.js","webpack:///./src/components/Notification.vue?7990","webpack:///./src/common/date/dateHelpers.js","webpack:///./src/common/api.service.js","webpack:///./src/components/Signing/CertificateItem/CertificateItem.vue?ad44","webpack:///./src/components/uikit/Input/ImgInput/ImgInput.vue?10a6","webpack:///./src/common/locale/localeHelpers.js","webpack:///./src/components/uikit/CheckMark/CheckMark.vue?8a7c","webpack:///./src/components/Header/LoginHeader/LoginHeader.vue?b4b9","webpack:///./src/components/Signing/CertificateList/CertificateList.vue?fcb3","webpack:///./src/common/Theme/useColor.js","webpack:///./src/constants/document/StatusName.js","webpack:///./src/common/settings/paramHelpers.js","webpack:///./src/components/uikit/UiModal/UiModalV2.vue?8fe5","webpack:///./src/components/uikit/UiBtn/UiBtn.vue?add6","webpack:///./src/components/uikit/UiMenu/UiMenu.vue?c2bb","webpack:///./src/components/uikit/CheckMark/CheckMark.vue?7be0","webpack:///./src/components/Modals/ModalSigning/ModalSigning.vue?f086","webpack:///./src/components/uikit/Lists/UiListGroup/UiListGroup.vue?8d77","webpack:///./src/common/documentSection/overtime/overtimeHelpers.js","webpack:///./src/common/documentSection/documentSectionHelpers.js","webpack:///./src/components/uikit/Lists/UiList/UiList.vue?f039","webpack:///./src/App.vue?2397","webpack:///./src/components/Confirm.vue?9227","webpack:///./src/router/paths.js","webpack:///./src/router/index.js","webpack:///./src/common/dataUtils/objectHelpers.js","webpack:///./src/common/documentSection/vacation/vacationHelpers.js","webpack:///./src/common/settings/useParam.js","webpack:///./src/common/helpers.js","webpack:///./src/components/uikit/Input/ImgInput/ImgInput.vue?fbd3","webpack:///./src/components/uikit/Input/ImgInput/ImgInput.vue?1172","webpack:///src/components/uikit/Input/ImgInput/ImgInput.vue","webpack:///./src/components/uikit/Input/ImgInput/ImgInput.vue","webpack:///./src/components/uikit/Input/ImgInput/index.js","webpack:///./src/components/uikit/CheckMark/CheckMark.vue?1ca8","webpack:///./src/components/uikit/UiMenu/UiMenu.vue?43ba","webpack:///./src/components/uikit/UiMenu/UiMenu.vue?7418","webpack:///src/components/uikit/UiMenu/UiMenu.vue","webpack:///./src/components/uikit/UiMenu/props.js","webpack:///./src/components/uikit/UiMenu/UiMenu.vue","webpack:///./src/components/Header/EgHeader/EgHeader.vue?eeca","webpack:///./src/components/Header/EgHeader/EgHeader.vue?c3c5","webpack:///./src/components/uikit/Typography/UiText/UiText.vue?cd10","webpack:///./src/common/locale/useLanguage.js","webpack:///./src/components/uikit/UiBtn/UiBtn.vue?0564","webpack:///./src/common/documentSection/request/requestHelpers.js","webpack:///./src/common/sign/signPrepare.js","webpack:///./src/common/role/roleHelpers.js","webpack:///./src/constants/document/ObjectName.js","webpack:///./src/components/uikit/Lists/UiListItem/UiListItem.vue?01e5","webpack:///./src/components/Confirm.vue?d075","webpack:///./src/components/uikit/Lists/UiList/UiList.vue?7755","webpack:///./src/common/settings/paramUtils.js","webpack:///./src/components/PinCode/PinCodeV2.vue?827e","webpack:///./src/components/uikit/Buttons/ButtonClose/ButtonClose.vue?b58e","webpack:///./src/components/uikit/Buttons/ButtonClose/ButtonClose.vue?50e8","webpack:///src/components/uikit/Buttons/ButtonClose/ButtonClose.vue","webpack:///./src/components/uikit/Buttons/ButtonClose/ButtonClose.vue","webpack:///./src/components/uikit/UiMenu/UiMenu.vue?653b","webpack:///./src/common/text/section/vacationText.js","webpack:///./src/components/Layout/EgFooter/EgFooter.vue?3908","webpack:///./src/components/uikit/UiBadge/UiBadge.vue?7b9a","webpack:///./src/components/uikit/UiBadge/UiBadge.vue?9ac9","webpack:///./src/components/uikit/UiBadge/props.js","webpack:///./src/common/dataUtils/stringHelpers.js","webpack:///src/components/uikit/UiBadge/UiBadge.vue","webpack:///./src/components/uikit/UiBadge/UiBadge.vue?a599","webpack:///./src/components/uikit/UiBadge/useBadge.js","webpack:///./src/components/uikit/UiBadge/UiBadge.vue","webpack:///./src/components/uikit/UiBadge/index.js","webpack:///./src/components/PinCode/PinCodeV2.vue?1347","webpack:///./src/components/uikit/Typography/UiText/UiText.vue?062d","webpack:///./src/plugins/i18n.js","webpack:///./src/components/Layout/EgFooter/EgFooter.vue?6d95","webpack:///./src/components/uikit/Lists/UiListItem/UiListItem.vue?bd72","webpack:///./src/components/Support/SupportChat/SupportChat.vue?b727","webpack:///./src/components/Modals/ModalNotification/ModalNotification.vue?0813","webpack:///./src/components/Support/SupportChat/SupportChat.vue?5293","webpack:///./src/components/uikit/UiBadge/UiBadge.vue?9569","webpack:///./src/components/uikit/TooltipIcon.vue?3457","webpack:///./src/components/uikit/TooltipIcon.vue?2729","webpack:///src/components/uikit/TooltipIcon.vue","webpack:///./src/components/uikit/TooltipIcon.vue","webpack:///./src/common/document/documentHelpers.js","webpack:///./src/components/uikit/Input/ImgInput/ImgInput.vue?3eb1","webpack:///./src/common/avatarHooks.js","webpack:///./src/components/Support/SupportForm/SupportForm.vue?f69e","webpack:///./src/components/Modals/ModalSigning/ModalSigning.vue?3f0c","webpack:///./src/constants/client/ClientName.js","webpack:///./src/common/bitrix/tasks/tasksHelpers.js","webpack:///./src/components/PinCode/PinCodeV2.vue?cfa8","webpack:///./src/components/PinCode/PinCodeV2.vue?4195","webpack:///src/components/PinCode/PinCodeV2.vue","webpack:///./src/components/PinCode/PinCodeV2.vue","webpack:///./src/components/PinCode/index.js"],"names":["isTokenExpired","token","offsetSeconds","d","this","getTokenExpirationDate","valueOf","Date","decoded","decodeToken","exp","setUTCSeconds","access_token","parts","Object","prototype","hasOwnProperty","call","split","length","Error","urlBase64Decode","JSON","parse","e","name","message","stack","str","output","replace","window","atob","module","exports","certificates","type","Array","activeCertificate","Number","props","certificate","isActive","Boolean","default","setup","emit","certificateDate","computed","moment","validTo","format","handleSetCertificate","_vm","_h","$createElement","_c","_self","staticClass","on","attrs","_v","class","_s","$t","components","TooltipIcon","CertificateItem","state","commit","useStore","checkboxCertificate","ref","signing","checkboxRememberCertificate","toggleCheckboxRemember","setCertificate","index","_l","item","key","$event","model","value","callback","$$v","expression","CertificateList","PinCode","ButtonClose","CheckMark","UiModal","UiText","isOpen","isLocal","isPageDocument","signMethod","String","emits","isSignType2","isPinSuccess","isSignType1","isPluginError","isSignTypeNone","isSignType3","own","isModalOpen","setCertificates","attemptsSignCode","text","debug","storedCert","setActiveCertificate","certIndex","router","push","pinCode","isCodeTrue","attemptsCode","captionTitle","inputPinCode","isLoadingCode","updateCode","onFinish","isLoadingSign","isSigningError","isSigningSuccess","document","signType","stateDetachedSignature","signingErrorText","isSigningErrorText","isCanSign","isSignDisabled","isInfoBlock","handleClose","handleSign","setPinSuccess","scopedSlots","_u","fn","_e","proxy","$style","Subtitle","Caption","context","locals","ModalSigning","setLocale","locale","localeHelpers","getLocale","dayjs","getDateWithHoursAndMinutes","date","isEng","getDateAndTime","getMonthTextAndYear","year","textMonth","getYear","getFormattedDate","getDateAndTimeNow","getDateNow","getDateTimeSubtractDay","day","subtract","getDateAddDay","add","ImgInput","t","to","problem","formName","formContact","formOrganization","setUserData","formRef","isFieldOrganizationNameDisabled","formText","isAttemptSend","isLoading","isSuccess","isAuthenticated","isFieldNameDisabled","checkField","handleSend","handleFileList","fileInputList","paramIsSupportFormRecipientVisible","selectSupport","selectProblem","itemSupport","handleClearSelect","checkIsValid","isValidFile","getSignature","store","profile","auth","params","param","data","signature","employeeId","employee_id","companyBehalfSignature","company_behalf_signature","role","roleHelpers","getBusinessRole","helpers","checkString","checkIsSignature","getCertificates","getUserCertificates","error","createSignature","print","hash","createDetachedSignature","checkIsSignWorkflow","workflow","isForSign","is_for_sign","checkSignAvailable","workflowRequestList","getRoleByRouteMeta","status_id","status","objectId","object_id","startsWith","find","i","reject","business_role","getSignZip","clientCode","client","code","fileName","files","file_name","slice","join","method","path","client_code","setRequest","openModal","request","title","size","fullScreen","Dialog","Card","Title","HeaderButtons","_t","BtnClose","FooterButtons","getCalendarAllowedDates","calendarDate","dateDisabled","paramWorkdayCalendarRestriction","paramHelpers","app","calendars","rule","weekendDays","isoWeekday","typeList","paramVacationValidateForbiddenExcept","includes","start_date","end_date","handleResetDate","routeId","assign","checkFieldComment","paramFieldCommentImportant","is_comment_field_important","getCalendarDays","typeValue","getters","APP_GET_CALENDAR_DAYS","getMinDate","documentTypeCode","checkParamTypeInclude","paramPastDayAllowed","getDocumentTypes","section","types","APP_GET_PROP","filter","map","id","name_eng","nameEng","getAvailableWorkflow","APP_GET_AVAILABLE_WORKFLOW","getAvailableSectionWorkflow","APP_GET_AVAILABLE_SECTION_WORKFLOW","checkEditableWorkflow","statusList","editable","getRequestId","object","requestType","requestTypeList","requestTypes","getProfile","currentRequestType","requestInfo","legal_document_id","toISOString","organization_id","request_type_id","TableService","requestResponse","requestData","botToken","process","VUE_APP_TELEGRAM_BOT_SUPPORT_TOKEN","chatId","VUE_APP_TELEGRAM_SUPPORT_CHAT_ID","sendHtmlToTelegramBot","a","buttons","telegramUrl","fetch","headers","body","stringify","chat_id","parse_mode","reply_markup","component","inner","svg","variant","color","icon","img","isActiveRouteOff","isIcon","isRound","href","handleClick","open","cssVars","activeRoute","_obj","Btn","Round","Active","style","Icon","Slot","tooltip","position","isOpenOnClick","openDelay","isTranslateOff","isLeft","isTop","isRight","isBottom","currentPosition","checkPosition","hintDesk","$vuetify","breakpoint","smAndDown","mdAndDown","_g","_b","display","checkIsWebpack","AppTooltipV2","AppTooltip","Vue","use","Vuetify","lang","locales","ru","en","current","theme","dark","themes","light","primary","colors","orange","darken2","secondary","grey","darken1","accent","green","red","accent3","lighten2","lighten4","options","customProperties","iconfont","storageState","localStorage","getItem","loading","host","leftDrawer","offline","logo","apiDomain","apiEndpoint","apiVersion","VUE_APP_API_VERSION","initParams","is_support_form_visible","hide_unread_bell","hide_user_guide","hide_grants_button","language_switch_off","vuetify","framework","location","origin","storeParam","propName","currentState","prop","newState","setItem","mutations","PARAM_SET_LOADING","PARAM_SET_LOCALE","PARAM_SET_DOMAIN","PARAM_SET_DEBUG","PARAM_SET_THEME","PARAM_SET_CLIENT","payload","documentElement","setAttribute","toLowerCase","axios","get","jsonFile","pathName","pathname","PARAM_SET_DATA","forEach","paramItem","password_expiration","PARAM_SET_PROP","keys","last","pop","reduce","o","k","save","PARAM_SET_EMPTY","PARAM_GET_PROP","propNames","lastName","getLoading","getParamData","getApiUrl","actions","sessionStorage","fingerprint","loginDate","redirect","expirePassword","lastRestoreDate","currentRole","isGoogleCodeField","pinCodeAttempts","isTfaMsgShown","isSupportForm","storeAuth","storage","destroyInactive","toDestroy","$children","$refs","content","vm","_inactive","$destroy","console","log","$options","AUTH_GET_PROP","JwtService","isAdmin","isAuthorizedRoles","isPowerUser","isEmployee","isCandidate","isManager","isReviewer","isHr","isAccountant","isRecruiter","isProfileLoaded","login","getGrant","grant_id","grants","getEmployee","grant","employee_name","employee_name_eng","organization_name","organization_name_eng","getClient","client_id","getToken","refreshTokenExist","getRefreshToken","refresh_token","getCookie","getFingerprint","roles","r","indexOf","AUTH_SET_PROP","AUTH_SET_LOADING","AUTH_SET_FINGERPRINT","AUTH_SET_ERROR","AUTH_SET_TOKEN","timeout","setTimeout","dispatch","AUTH_SET_PROFILE","scope","language","AUTH_SET_EXPIRE_PASSWORD","password_doesnt_expire","expireDays","passwordUpdateDate","password_update_date","passwordExpiration","diff","AUTH_SET_EMPTY","AUTH_SET_CURRENT_ROLES","AUTH_SHOW_GOOGLE_FIELD","AUTH_SET_PIN_CODE_ATTEMPTS","AUTH_SET_TWO_FACTOR","two_factor","AUTH_SET_TFA_MSG_SHOWN","AUTH_SET_SUPPORT_FORM","paramCheckIsSupportFormVisible","AUTH_SET_PHOTONAME","photo_name","AUTH_LOGIN","TokenService","resToken","isGoogleAuth","tfa","isWrongCode","isMissingCode","Promise","resolve","message_eng","i18n","AUTH_SSO_LOGIN","accessToken","refreshToken","token_type","expires_in","AUTH_REFRESH_TOKEN","refresh","$route","AUTH_PULL_PROFILE","UserService","resUser","bottom","AUTH_UPDATE_PROFILE","edit","REGISTER","email","AUTH_LOGOUT","isSsoUser","paramSsoClient","paramSsoLogoutUrl","remove","isDelete","disableRoute","currentIndex","items","getCurrentIndex","getLastIndex","getCurrentMessage","viewed","paramLoaded","parameters","messages","screensets","layouts","lastIncomingDate","statuses","reports","documentTypes","expenseTypes","expenseGoals","workflowSection","subordination","subordinationAll","incomplete","templates","vacations","vacationLimits","vacationCorrection","employeeRest","expenses","btrips","absences","sickleaves","statements","pd_agreement","home_office","overtimes","requests","requestsSigning","candidates","employees","users","organizations","granted","timesheets","recruitments","countries","currencies","material_assistances","objectsData","imageUrl","filterPrepare","filterDocument","getVacations","getExpenses","getBtrips","getOvertimes","getMaterialAssistances","getDocuments","concat","replaced","vacation_schedule_period","document_type_id","document_type_code","statement_date","mdate","isValid","endDate","getCalendars","days","skip","weekday","working","APP_GET_DATEDIFF","start","startDate","startOf","end","dailyInfo","totalDays","info","clone","isSameOrBefore","APP_GET_UNREAD_MESSAGES","read_date","APP_GET_VACATION_REST","rest_item","restItem","daysRest","days_rest","hireDate","employee_start_date","onDate","on_date","endOf","restOnDate","norma","getDayInYear","isYear","planned","Math","floor","daysUsed","limit_item","sum","APP_GET_VACATION_LIMIT","limitItem","period","dynamic_days_limit","restOnYear","days_limit","days_unplanned","days_planned","APP_GET_OVERTIME_REST","APP_GET_STRUCTURE_TREE","root","rootCurrentUser","onlyManager","b","manager_id","resChildrens","recursiveChildrens","level","c","resGrandChildrens","gc","children","extend","hide","position_eng","locked","disabled","resMe","resStructure","manager_name","manager_name_eng","unattachedEmployees","resUnassignedChildren","resUnassignedEmployees","APP_GET_IMAGE_URL","APP_SET_PROP","APP_SET_LAST_INCOMING","APP_SET_MESSAGES","APP_SET_NEW_MESSAGES","sort","create_date","hasNew","existsMessage","m","APP_SET_DATA","APP_SET_CANDIDATES","APP_SET_EMPLOYEES","APP_SET_USERS","APP_SET_ORGANIZATIONS","APP_SET_GRANTS","APP_SET_GRANTED","APP_SET_PARAMETERS","APP_SET_CALENDARS","APP_SET_STATUSES","APP_SET_DOCUMENT_TYPES","APP_SET_REQUEST_TYPES","APP_SET_WORKFLOW","APP_SET_REPORTS","APP_SET_TEMPLATES","APP_SET_EXPENSE_TYPES","APP_SET_SUBORDINATION","APP_SET_SUBORDINATION_ALL","APP_SET_INCOMPLETE","APP_SET_VACATIONS","sub","APP_SET_VACATION_LIMITS","APP_SET_EXPENSES","APP_SET_BTRIPS","APP_SET_MATERIAL_ASSISTANCES","APP_SET_RECRUITMENTS","APP_SET_ABSENCES","APP_SET_SICKLEAVES","APP_SET_STATEMENTS","APP_SET_PD_AGREEMENT","APP_SET_HOMEOFFICE","APP_SET_OVERTIMES","APP_SET_REQUESTS","APP_SET_REQUEST","existDocument","APP_SET_REQUESTS_SIGNING","APP_SET_TIMESHEETS","APP_SET_SCREENSETS","visible","APP_SET_STRUCTURE_TREE","recursiveChildren","APP_ADD_DOCUMENT","documents","itemId","APP_EDIT_DOCUMENT","existItem","APP_DEL_DOCUMENT","itemIndex","findIndex","splice","APP_SET_EMPTY","paramData","clearDataByLogout","clear_data_by_logout","APP_SET_OBJECTS_DATA","APP_SET_VACATION_CORRECTION","APP_SET_EMPLOYEE_REST","APP_SET_IMAGE_URL","APP_PULL_MASTERDATA","isRoleGF","batchParams","startYear","batchId","rowsPerPage","filterObject","select","orderBy","BatchService","post","getBatch","APP_PULL_INCOMING","today","toDate","filterDate","paramEmailDaysDelt","recipient","APP_PULL_MESSAGES","reload","registratorID","ViewService","getMessages","APP_PULL_PARAMETERS","getParameters","APP_PULL_STATUSES","getStatuses","APP_PULL_SCREENSETS","getResult","APP_PULL_DOCUMENT_TYPES","APP_PULL_REQUEST_TYPES","APP_PULL_EXPENSE_TYPES","APP_PULL_EXPENSE_GOALS","APP_PULL_WORKFLOW","getWorkflow","APP_PULL_REPORTS","getReports","APP_PULL_TEMPLATES","getTemplates","APP_PULL_INCOMPLETE","then","response","APP_PULL_SUBORDINATION","APP_PULL_SUBORDINATION_ALL","APP_PULL_VACATIONS","isExistDocument","documentHelpers","isDocumentInList","getData","isGF","vacation_powerusers_pagination","APP_PULL_VACATION_LIMITS","APP_PULL_VACATION_CORRECTION","APP_PULL_EMPLOYEE_REST","APP_PULL_EXPENSES","APP_PULL_BTRIPS","reviewer","APP_PULL_RECRUITMENTS","APP_PULL_ABSENCES","APP_PULL_SICKLEAVES","APP_PULL_STATEMENTS","APP_PULL_PD_AGREEMENT","APP_PULL_HOMEOFFICE","APP_PULL_OVERTIMES","hours_plan_day","details","time_shift_plan_day_hours","hours_plan_night","time_shift_plan_night_hours","hours_fact_day","time_shift_fact_day_hours","hours_fact_night","time_shift_fact_night_hours","APP_PULL_REQUESTS","view","APP_PULL_HR_REQUESTS","APP_PULL_REQUEST","requestTypeCode","request_type_code","result","APP_PULL_REQUESTS_SIGNING","filterQuery","request_type_name","endDay","endsWith","APP_PULL_MATERIAL_ASSISTANCES","APP_PULL_CANDIDATES","APP_PULL_EMPLOYEES","APP_PULL_USERS","APP_PULL_ORGANIZATIONS","APP_PULL_GRANTS","APP_PULL_GRANTED","APP_PULL_TIMESHEETS","APP_PULL_OBJECTS_DATA","createSelectionList","estimateList","estimateSubList","estimateAll","estimateYear","goals","valuation","education","planningGoals","planningEducation","communication","rating","goalsWeightTotal","planningGoalsWeightTotal","appraisal","agreement","approve","planning","all","estimatePeriods","periodData","dictionary","scale","grade","periodType","history","estimateResult","prize","goal_mark","final_mark","createFormSelection","selectionList","planningEstimateId","formLayoutTabs","ESTIMATE_SET_EMPTY","SET_ESTIMATE_SELECTION","DELETE_ESTIMATE_DOCUMENT","filteredList","el","APP_SET_ESTIMATE","APP_SET_ESTIMATE_SUB_LIST","APP_SET_ESTIMATE_ALL","APP_SET_ESTIMATE_YEAR","APP_SET_ESTIMATE_GOALS","ESTIMATE_SET_COMMUNICATION","ESTIMATE_SET_RATING","APP_CALCULATE_GOALS_WEIGHT","total","values","weight","APP_CALCULATE_PLANNING_GOALS_WEIGHT","APP_SET_ESTIMATE_VALUATION","APP_SET_ESTIMATE_EDUCATION","APP_SET_ESTIMATE_PLANNING","APP_SET_ESTIMATE_PLANNING_EDUCATION","APP_SET_ESTIMATE_APPRAISAL","table","APP_SET_ESTIMATE_SUBORDINATION","APP_SET_ESTIMATE_PERIODS","APP_SET_ESTIMATE_PERIOD_DATA","APP_SET_ESTIMATE_PERIOD","APP_SET_ESTIMATE_DICTIONARY","list","APP_SET_ESTIMATE_HISTORY","APP_SET_ESTIMATE_PRIZE","APP_SET_ESTIMATE_RESULT","APP_SET_INSTRUCTION_ACTUAL","field","form","APP_SET_ESTIMATE_USER_SETTING","user","ESTIMATE_SET_FORM_SELECTION","ESTIMATE_SET_PERIOD_EMPLOYEES","ESTIMATE_SET_PLANNING_ESTIMATE_ID","ESTIMATE_SET_LAYOUT_TAB","ESTIMATE_PULL_PERIOD_EMPLOYEES","showError","formId","APP_PULL_ESTIMATE_ALL","update","APP_PULL_ESTIMATE_ALL_YEAR","APP_PULL_ESTIMATE","userID","rootState","element","estimate_period_date","estimate_start_date","estimate_end_date","APP_PULL_ESTIMATE_YEAR","currentYear","getFullYear","APP_PULL_ESTIMATE_EMPLOYEE_LIST","APP_PULL_ESTIMATE_SUB","APP_PULL_ESTIMATE_GOALS","ESTIMATE_PULL_COMMUNICATIONS","ESTIMATE_PULL_RATING","APP_PULL_ESTIMATE_VALUATION","sortedData","localeCompare","APP_PULL_ESTIMATE_EDUCATION","APP_PULL_ESTIMATE_PLANNING_GOALS","APP_PULL_ESTIMATE_PLANNING_EDUCATION","APP_PULL_ESTIMATE_APPRAISAL_AGREEMENT","APP_PULL_ESTIMATE_APPRAISAL_APPROVE","ESTIMATE_PULL_APPRAISAL_PLANNING","APP_PULL_ESTIMATE_APPRAISAL_ALL","APP_PULL_ESTIMATE_SUBORDINATION","APP_PULL_ESTIMATE_PERIODS","APP_PULL_ESTIMATE_PERIOD_DATA","APP_PULL_ESTIMATE_DICTIONARY","dictionary_code","ESTIMATE_PULL_DICTIONARY_PERIOD","APP_PULL_ESTIMATE_HISTORY","sortedList","ESTIMATE_PULL_RESULT","ESTIMATE_PULL_RESULT_EMPLOYEE","ESTIMATE_PULL_PLANNING","planned_estimate_id","ESTIMATE_PULL_LAYOUT_TAB","isUpdateAvailable","SET_UPDATE_APP_SHOW","BtripGoals","btripCities","EducationMark","PotentialRating","PerformanceRating","BtripDestination","DictionaryNameList","OvertimeHoursList","hour","OvertimeShiftList","OvertimeReasonList","OvertimeBreakTime","hour_start","hour_end","break","SET_DICTIONARY","SET_DICTIONARY_LIST","listName","UPDATE_DICTIONARY","updatedItem","CLEAR_DICTIONARY","PULL_DICTIONARY","PULL_COUNTRY_CITIES","countryCode","country_code","PULL_DICTIONARY_CITIES","btripDestinationValue","EDIT_DICTIONARY","isModalSigning","isLocalModalSigning","isSigningLoading","signingDocument","signingDocumentList","detachedSignature","signCode","userCertificates","openModalSigning","documentList","setRequestSigning","closeModalSigning","deleteRequest","signingDocumentListToggle","docIndex","signingSelectAllDocListToSign","signingDocumentListClear","signingStart","signingFinish","setSigningError","signingSetSuccess","signingDocumentUpdateData","signingResetModal","signingSetCertificate","signingToggleRememberCertificate","signingAddDataInDocument","signingSetDocData","signingSetDocListData","SIGNING_SET_ATTEMPTS_CODE","SIGNING_SET_CODE","SIGNING_SET_USER_CERTIFICATES","issued_date_formatted","issued_date","expiration_date_formatted","expiration_date","SIGNING_PROCESS","saveDoc","workflowList","signHelpers","isType3","isCades","reportResponse","workflowRequest","documentRequest","workflowRequestData","docRequestStatusData","streebog_hash","thumbprint","detached_signature","workflow_id","ReportService","sign","signStamp","responseData","request_id","workflowData","next_status_id","indicators","docStatusData","registrator_id","requestResult","file","sign_date","status_date","newFile","document_object_id","performDocumentAfterSaveAction","documentPath","success","SIGNING_DOCUMENT","isMultiSigning","_cadesCertificate","SerialNumber","certSerialNumber","issuedDate","validFrom","expirationDate","removeItem","SIGNING_PULL_USER_CERTIFICATES","SET_CERTIFICATE_USER","certificatePin","res","SIGNING_SAVE_CERTIFICATE","certificate_id","certificateData","is_informed","isModalNotification","notification","routeLink","MODALS_TOGGLE","MODALS_NOTIFICATION_SET_TEXT","MODAL_NOTIFICATION_OPEN","MODAL_NOTIFICATION_CLOSE","tabFields","LAYOUT_SET_TAB_FIELDS","LAYOUT_GET_TAB_FIELDS","layout","isLayout","object_layout","textList","LOCALES_SET_EMPTY","LOCALES_SET_TEXT","LOCALES_GET_TEXT","routeFilter","FILTER_GET","route","user_id","FILTER_SET","workflowSectionList","WORKFLOW_SET_EMPTY","WORKFLOW_SET_SECTION","WORKFLOW_SET_REQUEST","WORKFLOW_PULL_SECTION","tableFilter","tableData","WORKFLOW_PULL_REQUEST","supportForm","SUPPORT_SET_FORM_ROLE","documentMasterData","isMasterFormValid","masterFormList","individualFormList","DOCUMENT_MASTER_SET_MAIN_DOCUMENT_DATA","DOCUMENT_MASTER_SET_FORM_LIST","DOCUMENT_MASTER_SET_INDIVIDUAL_LIST","DOCUMENT_MASTER_SET_VALID","DOCUMENT_MASTER_GET_FORM_LIST","DOCUMENT_MASTER_GET_INDIVIDUAL_FORM_LIST","fact_comments","time_shift_fact_comments","fact_comments_eng","time_shift_fact_comments_eng","Vuex","Store","modules","msg","estimate","pwa","modals","support","documentMaster","webpackContext","req","webpackContextResolve","__webpack_require__","textAlign","noMargin","border","Container","Primary","Secondary","Light","H2","H3","H4","H5","XLarge","Large","BodyMain","BodyCard","Small","XSmall","Cap","Left","Center","Right","Border","Margin","useRouter","notificationText","isRouteLink","handleRedirect","ModalNotification","ROLE_CODE","hr","employee","manager","gf","ROLE_NAME","isLogin","srcLogo","isAuthentication","Logo","isSubTitle","selectItem","selectRoute","itemTitle","returnItem","handleItemClick","selectClass","Ul","Li","ListContent","SubTitle","isList","UiList","UiMenu","UiBtn","isWebpack","languagesList","selectedItemLang","paramLocale","watch","handleLanguage","val","mounted","methods","$store","$i18n","AppLogo","LanguageSelect","btnList","Buttons","handleOpenList","isShowGroupList","_obj$1","Group","GroupOpen","GroupList","GroupListHide","UiListGroup","UiListItem","UiBadge","authOnly","paramHideUserGuide","downloadPhoto","paramHideUnreadBell","paramHideGrantsButton","paramLanguageSwitchOff","grantsExists","tt","itemFilter","isRightMenu","unreadMessages","imgUrl","checkRole","iconData","hint","handleDrawerToggle","$router","handleAction","menuItem","handleStopAction","roleSplit","arrRoles","isArray","resRoles","getGrantName","employeeName","profileName","AppBar","Link","BtnBoard","Avatar","Profile","tooltipNotification","set","version","mode","EgFooter","Content","Divider","dialog","defaultOptions","agree","cancel","zIndex","width","_k","keyCode","apply","arguments","directives","rawName","domProps","nativeOn","agreeText","cancelText","passportSnackbar","slotActions","messageCount","msgDisplay","msgNavigatorDisabled","msgInterval","valueInterval","opacity","msgDefault","navigator","Ok","refreshing","registration","lastAction","autoLogoutWarning","checkInterval","lastIndex","auto_logout_time","getLastMessage","showMessage","created","now","addEventListener","setInterval","showUpdate","bind","serviceWorker","checkExpirePassword","undefined","getNextMessage","clearInterval","$nextTick","showOffline","detail","showMessageUpdate","showAutoLogoutWarning","waiting","postMessage","prevMessage","nextMessage","onOk","onClose","onClick","srcElement","tagName","hrefContent","preventDefault","resetAutoLogoutTimer","checkAutoLogoutTimer","removeEventListener","Snackbar","Notification","Button","SupportIcon","SupportForm","Success","SuccessTitle","SuccessText","Form","FormHidden","FormContent","Select","Action","VIcon","isFormVisible","handleToggleForm","handleCloseForm","EgHeader","LoginHeader","EgDrawer","Confirm","AppModals","SupportChat","Outside","isSupportFormState","setFormByLocalStorage","storedSupportFormValue","setSupportFormLocalStorage","isAuth","themeName","isLayoutLogin","init","$root","$confirm","confirm","handleUpdate","Background","fullPath","register","ready","registered","cached","updatefound","updated","dispatchEvent","CustomEvent","VueAxios","defaults","isRefreshing","refreshSubscribers","interceptors","config","baseURL","url","originalRequest","cb","Authorization","catch","productionTip","errorValue","VueMask","VueCompositionAPI","$moment","render","h","App","$mount","checkIsPastDate","inputDate","isBefore","getBreakTime","startTime","endTime","duration","breakEntry","entry","countDayNightHours","totalNightHours","totalDayHours","nextMinute","parseFloat","toFixed","addTime","timeStr","hoursToAdd","time","newTime","getNextDay","getHourDifference","isNaN","abs","getDateAddWorkDay","isoWeek","x","apiQueue","currentId","addQueue","delQueue","ApiService","resource","responseType","requestId","apiErr","results","opt","urlQueryToArray","withCredentials","cookieExist","restore","jsonrpc","uniqueConstraints","uniqueAction","notify","createSecret","action","saveSecret","rpcRequest","gaSecret","twoFactor","removeSecret","checkSecret","externalLink","link","checkSso","session_state","sessionState","silence","del","DownloadService","DownloadFileService","UploadService","original_name","formData","append","rpcBatchRequest","ExcelFileService","template","getTextByAlias","alias","textItem","trim","s","Option","querySelector","getComputedStyle","getPropertyValue","STATUS_NAME","empty","draft","prepared","agreed","isChipsActualOff","chips_actual_off","locationFilterOnGrid","location_filter_show_in_grid","paramVacationPlanPriority","vacation_plan_priority","paramBtripDateDisable","btrip_date_disable","paramVacationValidateForbiddenPeriod","vacation_validate_forbidden_period","paramApproveForbiddenPeriod","approve_forbidden_period","paramVacationSchedule","vacation_schedule","paramIsVacationValidateProcessCorrectionTogether","vacation_validate_process_correction_together","paramCheckSickleaveNumberOnClose","check_sickleave_number_on_close","workday_calendar_restriction","paramPastDayRestriction","pastday_calendar_restriction","pastday_calendar_allowed","vacation_validate_forbidden_except","paramWeeklyDoctypeList","weekly_doctype_list","email_days_delt","sso_client","sso_logout","createAbsence","documentTypeList","create_dayoff","documentTypeId","absenceWorkflow","nextStatusId","OBJECT_NAME","absence","absenceId","documentId","dayoff_date","dayOffDate","creator_id","creator","organization","absenceData","document_type","overtime_ids","absenceResult","agreedDayOff","organizationId","nextStatus","isWorkflowReject","overtime","updateVacationReplacedList","saveParentVacationStatus","deleteCorrectionRequest","compensation_type","dayoff_agreed","performDocumentBeforeSaveAction","getVacationCorrectionReplacedData","checkWeeklyDocTypeList","isString","checkMultipleOfWeek","meta","archive","can","payslip","vacschedule","rev","rec","VueRouter","base","VUE_APP_BASE_URL","linkActiveClass","routes","paths","scrollBehavior","from","savedPosition","y","skinName","skin","beforeEach","next","query","matched","skinRoute","afterEach","findObjectKey","obj","keyToFind","getVacationScheduleInfo","vacationLimitItems","planList","deleteUndefined","getCurrentYear","some","vacationItem","parentVacation","replaced_vacation_ids","parentVacationType","parentVacationObject","vacation","system","statusItem","parentVacationData","getId","editList","doc","checkVacationCorrectedAvailable","correctionDoc","checkVacationCorrectedWorkflowAvailable","days_corrected","replacedText","getForbiddenParam","paramList","workflowItem","workflowNextStatus","paramName","foundKey","getVacationForbiddenPeriodDayLimit","paramValue","checkVacationForbiddenPeriodAvailable","forbiddenExceptList","documentTypeData","getDocumentTypeData","isDocTypeExpect","dayLimit","diffInDays","ceil","checkActionForbiddenPeriod","isAvailablePeriod","textForbiddenPeriodHint","useParam","paramApiDomain","paramDebug","dismissalPeriod","dismissal_period","requestDefaultNumberPage","paramRequestPage","request_default_number_per_page","reissueCertificateAllowed","reissue_certificate_allowed","paramIsSupportFormVisible","paramIsVacationCorrection","vacation_correction","paramVacationPowerusersPagination","paramVacationValidateForbiddenPeriodWdays","vacation_validate_forbidden_period_wdays","paramIsEmployeeTeamViewVisible","is_employee_team_view_visible","paramBtripDefaultCity","btrip_starting_point","paramCommentLength","comment_length","paramVacationVisibleHours","vacation_visible_hours","paramVacationShiftUnpaidLeaveOverhoursPerDay","vacation_shift_unpaid_leave_overhours_per_day","paramVacationCorrectionMoveRecentYearOnly","vacation_correction_move_recent_year_only","paramMaxFileCount","upload_max_filecount","paramMaxFileSize","upload_max_filesize","paramIsUserProfileContactTabVisible","is_userprofile_contact_tab_visible","is_support_form_recipient_visible","paramIsVacationOffScheduleMoveRecentYearOnly","vacation_offschedule_recent_year_only","paramVacationOffScheduleExceptCodes","vacation_offschedule_except_codes","paramNotificationShowDelta","notification_show_delta","paramVacationEmployeeRestVisible","vacation_employee_rest_visible","paramAbsenceEmployeeRestVisible","absence_employee_rest_visible","paramTwoFactorsShowInProfile","two_factors_show_in_profile","paramSendEmailCodeShowInProfile","send_email_code_show_in_profile","paramSendSmsCodeShowInProfile","send_sms_code_show_in_profile","paramOvertimeEmployeeConfirmation","overtime_employee_confirmation","paramOvertimeOverHoursPerDay","overtime_overhours_per_day","paramOvertimeOverHoursAdjacentDays","overtime_overhours_adjacent_days","paramIsOvertimeShiftBlockVisible","overtime_shift_block_visible","paramCheckBTripOnHoliday","check_btrip_onholiday","paramVacationValidateRest","vacation_validate_rest","paramVacationValidateRestYear","vacation_validate_rest_year","numberRegex","isIE","ua","userAgent","msie","trident","edge","getMobileOperatingSystem","vendor","opera","test","MSStream","matches","cookie","match","RegExp","decodeURIComponent","setCookie","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","cookiename","cookieEnabled","setTime","getTime","getHash","excludes","plugins","indexedDb","canvas","adBlock","screenResolution","availableScreenResolution","enumerateDevices","pixelRatio","doNotTrack","audio","preprocessor","parser","UAParser","getOS","getBrowser","getEngine","Fingerprint2","fingerprintHash","requestIdleCallback","capitalize","txt","charAt","toUpperCase","substr","createGuid","random","toString","extIcon","ext","icons","pdf","png","jpg","tiff","bmp","xls","zip","isObject","isEmptyObject","intersection","o1","o2","arrayDiff","arrayDiffByKey","arrays","arr","others","unique","Set","mergeDeep","target","source","assignFrom","objectWithout","debounce","delay","timeoutID","clearTimeout","args","that","groupBy","xs","rv","pairs","pair","getRandomAvatar","avatars","base64ToArrayBuffer","base64","binaryString","len","bytes","Uint8Array","charCodeAt","buffer","arrayBufferToBase64","arrayBuffer","stringChar","byte","fromCharCode","b64str","btoa","crop","aspectRatio","inputImage","Image","onload","inputWidth","naturalWidth","inputHeight","naturalHeight","inputImageAspectRatio","outputWidth","outputHeight","outputX","outputY","outputImage","createElement","height","getContext","drawImage","src","sound","freq","finishedCallback","ctx","AudioContext","webkitAudioContext","volume","createGain","gain","osc","createOscillator","connect","destination","frequency","noteOn","stop","noteOff","getInitials","w","substring","findElementsInObjects","obj1","obj2","id1","findDuplicateKeysInObjects","checkMaxLength","evt","maxLength","getDayNextYear","month","getMonth","currentDay","getDate","getUniqueValue","getUniqueValueByKey","Map","getDiffMonths","date1","date2","round","getDayNextMonth","monthValue","dayNextMonth","getFirstMonthDay","firstDay","getLastMonthDay","lastDay","checkDateWeekend","formattedDay","isWorkingDate","isWeekendDays","getDayOfWeekIndex","setArrayItemToFirstPosition","array","fromIndex","unshift","getPrependIcon","getPrependIconColor","getMaxArrayObjectValueByKey","max","signatureText","useLanguage","getEmployeesLocations","uniqueLocations","responseDetail","uniqueLocation","checkEqualValues","compareList","item1","item2","every","checkForDuplicateStateDocument","compareArrayName","moduleName","arrayName","existingItem","checkRequiredFields","requiredList","checkNumberValues","numbersList","fieldName","isStringArray","strings","refInput","validations","isDragOver","onDrop","addFiles","onDragOver","onDragLeave","handleClearItem","urlFile","handleAddFiles","bytesToSize","ImgFile","Img","FileInput","FileLabel","DragOver","TextLabel","modelValue","isOpenHover","isNotClose","isNotCloseOutside","maxWidth","right","top","left","maxHeight","screenHeight","screenWidth","isOpenClick","updateEmit","getElementPosition","resizeObserver","ResizeObserver","observe","refMenu","refSubMenu","handleClickOutside","disconnect","handleOpenMenu","handleCloseMenu","isHover","styleMenu","Menu","MenuClick","Activator","MenuHover","Open","Submenu","profileLanguage","localeTextList","global","defineEng","getLanguageField","getRequestData","requestList","docRequestId","fileList","currentRoute","checkRoleAssistant","checkManagerAsEmployee","manager_as_employee","isDot","isCounter","Counter","Dot","CounterValue","VueI18n","translate","fallbackLocale","silentTranslationWarn","require","dateTimeFormats","short","shortWithTime","minute","long","hour12","getTypeHintByDetail","documentType","getDocumentTypeHint","getDocumentCommentHint","checkFieldCommentRequired","comment_require","checkFileAttached","attach_require","deleted","checkValidDocument","isCheckDayLimit","check_limit","getCalendarDocuments","checkFillingData","countingLineBreaks","getCalendarItemColor","validateComment","comments","comments_eng","commentsEng","isCommentRequired","isComment","hooksDocument","documentsList","isDocumentCreator","creatorId","profileId","isDocumentManagerCreator","employeeData","managerId","getProfilePhoto","employeePhotoState","byteLength","extension","employeePhoto","deleteProfilePhoto","getDataPhoto","photoName","originalNamePhoto","dataPhoto","CLIENT_NAME","ferrero","novonordisk","getBitrixTaskSupportLink","attempts","codeLength","isAttemptsNull","otp","rules","isCodeDisabled","Code","$emit","Attempts","Done"],"mappings":"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","file":"js/app.c136315d.js","sourcesContent":["export default {\n\n isTokenExpired: function (token, offsetSeconds = 0) {\n const d = this.getTokenExpirationDate(token)\n offsetSeconds = offsetSeconds || 0\n if (d === null) {\n return false\n }\n\n // Token expired?\n return !(d.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)))\n },\n\n getTokenExpirationDate: function (token) {\n const decoded = this.decodeToken(token)\n if (!decoded) return\n if (typeof decoded.exp === 'undefined') {\n return null\n }\n\n const d = new Date(0) // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp)\n\n return d\n },\n\n decodeToken: function (token) {\n if (!token || !token.access_token) return\n try {\n let accessToken\n if (Object.prototype.hasOwnProperty.call(token, 'access_token')) {\n accessToken = token.access_token\n } else {\n accessToken = token\n }\n\n const parts = accessToken.split('.')\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts')\n }\n const decoded = this.urlBase64Decode(parts[1])\n if (!decoded) {\n throw new Error('Cannot decode the token')\n }\n\n return JSON.parse(decoded)\n } catch (e) {\n throw new Error('Ошибка ' + e.name + ':' + e.message + '\\n' + e.stack)\n }\n },\n\n urlBase64Decode: function (str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/')\n switch (output.length % 4) {\n case 0: { break }\n case 2: { output += '=='; break }\n case 3: { output += '='; break }\n default: {\n throw new Error('Illegal base64url string!')\n }\n }\n return window.atob(output)\n },\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"LoginHeader__Container__1UDov\",\"Buttons\":\"LoginHeader__Buttons__3WLD0\"};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isModalOpen)?_c('UiModal',{attrs:{\"title\":\"Electronic signature\",\"size\":\"500px\"},on:{\"close\":_vm.handleClose},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('ButtonClose',{on:{\"click\":_vm.handleClose}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")]),(_vm.isCanSign && !_vm.isSigningSuccess)?[_c('VBtn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"loading\":_vm.isLoadingSign,\"disabled\":_vm.isSignDisabled,\"data-test\":\"sign-button\"},on:{\"click\":_vm.handleSign}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Sign\"))+\" \")])]:_vm._e()]},proxy:true}],null,false,759763936)},[(_vm.isInfoBlock)?[(_vm.isPluginError)?_c('div',[_c('VAlert',{attrs:{\"border\":\"left\",\"colored-border\":\"\",\"type\":\"error\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Signature plugin not found.\"))+\" \")])],1):_vm._e(),(_vm.isSigningSuccess)?_c('div',[_c('CheckMark'),_c('div',{staticClass:\"subtitle-1\",class:_vm.$style.Subtitle,attrs:{\"data-test\":\"sign-success-text\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"The document has been successfully signed.\"))+\" \")])],1):_vm._e(),(_vm.isSigningError)?_c('div',[_c('VAlert',{attrs:{\"border\":\"left\",\"colored-border\":\"\",\"type\":\"error\",\"elevation\":\"2\"}},[_c('div',{staticClass:\"mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"An error occurred while signing the document.\"))+\" \")]),(_vm.isSigningErrorText)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.signingErrorText))+\" \")]):_vm._e()])],1):_vm._e()]:[(_vm.isSignTypeNone)?_c('div',[_c('VAlert',{attrs:{\"border\":\"left\",\"colored-border\":\"\",\"type\":\"error\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Contact support to specify the type of signature.\"))+\" \")])],1):_vm._e(),(_vm.captionTitle.length)?_c('div',{class:_vm.$style.Caption},[_c('UiText',{attrs:{\"size\":\"bodyCard\",\"no-margin\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.captionTitle))+\" \")])],1):_vm._e(),(_vm.isSignType2 || _vm.isSignType3)?[(_vm.certificates.length)?_c('div',{staticClass:\"mb-2\"},[_c('div',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('Select a certificate to sign:'))+\" \")])]):_vm._e()]:_vm._e(),(_vm.isSignType3)?_c('div',[(_vm.certificates.length)?[_c('CertificateList',{attrs:{\"certificates\":_vm.certificates,\"active-certificate\":_vm.activeCertificate},on:{\"setCertificate\":_vm.setActiveCertificate}})]:_c('div',[_vm._v(_vm._s(_vm.$t(\"No certificates found.\")))])],2):_vm._e()],(_vm.isSignType2 && !_vm.isSigningSuccess)?_c('PinCode',{attrs:{\"title\":\"Enter PIN\",\"attempts\":_vm.attemptsCode,\"is-code-true\":_vm.isCodeTrue,\"is-loading-code\":_vm.isLoadingCode},on:{\"inputCode\":_vm.inputPinCode},model:{value:(_vm.pinCode),callback:function ($$v) {_vm.pinCode=$$v},expression:\"pinCode\"}}):_vm._e()],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n certificates: {\n type: Array\n },\n activeCertificate: {\n type: Number\n }\n};\n","\n \n \n mdi-file-document-edit-outline\n \n \n \n {{ certificate.name }}\n \n \n {{ $t(\"Valid until\") }} - {{ certificateDate }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateItem.vue?vue&type=script&lang=js&\"","export default {\n certificate: {\n type: Object\n },\n isActive: {\n type: Boolean,\n default: false\n }\n};\n","import { computed } from '@vue/composition-api';\nimport moment from 'moment';\n\nexport default function useCertificateItem (props, { emit }) {\n const certificateDate = computed(() =>\n moment(props.certificate.validTo).format('YYYY-MM-DD HH:mm:ss')\n );\n\n const handleSetCertificate = () => {\n emit('click');\n };\n\n return {\n certificateDate,\n handleSetCertificate\n };\n}\n","import { render, staticRenderFns } from \"./CertificateItem.vue?vue&type=template&id=5074079b&scoped=true&\"\nimport script from \"./CertificateItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CertificateItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CertificateItem.vue?vue&type=style&index=0&id=5074079b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5074079b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VCard',{staticClass:\"CertificateItem\",on:{\"click\":_vm.handleSetCertificate}},[_c('VIcon',{attrs:{\"size\":\"50\",\"color\":_vm.isActive ? 'primary' : ''}},[_vm._v(\" mdi-file-document-edit-outline \")]),_c('div',{staticClass:\"CertificateItem__content\"},[_c('div',{staticClass:\"subtitle-1\",class:[_vm.isActive ? 'primary--text' : '']},[_vm._v(\" \"+_vm._s(_vm.certificate.name)+\" \")]),_c('div',{class:[_vm.isActive ? 'primary--text' : '']},[_vm._v(\" \"+_vm._s(_vm.$t(\"Valid until\"))+\" - \"+_vm._s(_vm.certificateDate)+\" \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n {{ $t('For security purposes, information about the selected certificate is stored only on your computer.') }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateList.vue?vue&type=script&lang=js&\"","import { useStore } from '@vueblocks/vue-use-vuex';\nimport { ref } from '@vue/composition-api';\n\nexport default function useCertificateList (props, { emit }) {\n const { state, commit } = useStore();\n\n const checkboxCertificate = ref(state.signing.checkboxRememberCertificate);\n\n const setCertificate = (index) => {\n emit('setCertificate', index);\n };\n\n const toggleCheckboxRemember = () => {\n commit('signingToggleRememberCertificate');\n };\n\n return {\n checkboxCertificate,\n toggleCheckboxRemember,\n setCertificate\n };\n}\n","import { render, staticRenderFns } from \"./CertificateList.vue?vue&type=template&id=0737091e&scoped=true&\"\nimport script from \"./CertificateList.vue?vue&type=script&lang=js&\"\nexport * from \"./CertificateList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CertificateList.vue?vue&type=style&index=0&id=0737091e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0737091e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"CertificateList\"},[_vm._l((_vm.certificates),function(item,index){return _c('CertificateItem',{key:index,attrs:{\"certificate\":item,\"isActive\":_vm.activeCertificate === index},on:{\"click\":function($event){return _vm.setCertificate(index, item)}}})}),_c('div',{staticClass:\"CertificateListRemember\"},[_c('VCheckbox',{staticClass:\"CertificateListRemember__checkbox\",attrs:{\"label\":_vm.$t('Remember the Certificate'),\"hide-details\":\"\"},on:{\"click\":_vm.toggleCheckboxRemember},model:{value:(_vm.checkboxCertificate),callback:function ($$v) {_vm.checkboxCertificate=$$v},expression:\"checkboxCertificate\"}}),_c('TooltipIcon',[_vm._v(\" \"+_vm._s(_vm.$t('For security purposes, information about the selected certificate is stored only on your computer.'))+\" \")])],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalSigning.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalSigning.vue?vue&type=script&lang=js&\"","\n \n \n \n \n {{ $t(\"Signature plugin not found.\") }}\n \n \n \n \n \n {{ $t(\"The document has been successfully signed.\") }}\n \n \n \n \n \n {{ $t(\"An error occurred while signing the document.\") }}\n \n \n {{ $t(signingErrorText) }}\n \n \n \n \n \n \n \n {{ $t(\"Contact support to specify the type of signature.\") }}\n \n \n \n \n {{ $t(captionTitle) }}\n \n \n \n \n \n {{ $t('Select a certificate to sign:') }}\n \n \n \n \n \n \n \n {{ $t(\"No certificates found.\") }}\n \n \n \n \n \n {{ $t(\"Close\") }}\n \n \n \n {{ $t(\"Sign\") }}\n \n \n \n \n\n\n\n\n\n","import { render, staticRenderFns } from \"./ModalSigning.vue?vue&type=template&id=3884e3e8&\"\nimport script from \"./ModalSigning.vue?vue&type=script&lang=js&\"\nexport * from \"./ModalSigning.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModalSigning.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import ModalSigning from './ModalSigning.vue';\n\nexport default ModalSigning;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Card\":\"UiModalV2__Card__2kRxI\",\"Title\":\"UiModalV2__Title__1TVHu\",\"HeaderButtons\":\"UiModalV2__HeaderButtons__2u81x\",\"FooterButtons\":\"UiModalV2__FooterButtons__3UjfZ\",\"BtnClose\":\"UiModalV2__BtnClose__1U7Cw\",\"Dialog\":\"UiModalV2__Dialog__3aOGs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Logo\":\"AppLogo__Logo__1UccN\"};","import dayjs from 'dayjs';\nimport localeHelpers from '@/common/locale/localeHelpers';\nimport 'dayjs/locale/ru';\nimport 'dayjs/locale/en';\n\n// doc https://day.js.org/ru-RU/\n\nconst setLocale = () => {\n const locale = localeHelpers.getLocale();\n\n dayjs.locale(locale)\n}\n\n// 01.01.2000, 00:00\nexport const getDateWithHoursAndMinutes = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale()\n\n const format = localeHelpers.isEng()\n ? 'M/D/YYYY, h:mm A'\n : 'DD.MM.YYYY, HH:mm';\n\n return dayjs(date).format(format);\n};\n\n// 01.01.2000, 00:00:00:000\nexport const getDateWithHoursAndSeconds = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale()\n\n const format = localeHelpers.isEng()\n ? 'MM.DD.YYYY, HH:mm:ss.SSS'\n : 'DD.MM.YYYY, HH:mm:ss.SSS';\n\n return dayjs(date).format(format);\n};\n\n// 01.01.2000, 00:00:00\nexport const getDateAndTime = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale()\n\n const format = localeHelpers.isEng()\n ? 'M/D/YYYY, HH:mm:ss'\n : 'DD.MM.YYYY, HH:mm:ss';\n\n return dayjs(date).format(format);\n};\n\n// 2000-01-01\nexport const getFullDate = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale()\n\n const format = localeHelpers.isEng()\n ? 'YYYY-DD-MM'\n : 'YYYY-MM-DD';\n\n return dayjs(date).format(format);\n};\n\n// январь 2000\nexport const getMonthTextAndYear = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale();\n\n const year = dayjs(date).year();\n const textMonth = dayjs(date).format('MMMM');\n\n return localeHelpers.isEng() ? `${textMonth} ${year}` : `${textMonth} ${year} г.`;\n};\n\n// 2000 год\nexport const getYear = (date) => {\n if (!date) {\n return '';\n }\n\n const year = dayjs(date).year();\n\n return localeHelpers.isEng() ? year : `${year} г.`;\n};\n\n// 01.01.2000\nexport const getFormattedDate = (date) => {\n if (!date) {\n return '';\n }\n\n setLocale();\n\n const format = localeHelpers.isEng() ? 'M/D/YYYY' : 'DD.MM.YYYY';\n\n return dayjs(date).format(format);\n};\n\nexport const subtractMonthDate = (date, num) => {\n return dayjs(date).subtract(num, 'month');\n};\n\n// 01.01.2020 00:00:00 текущая дата\nexport const getDateAndTimeNow = () => {\n setLocale()\n\n const format = localeHelpers.isEng()\n ? 'MM.DD.YYYY HH:mm:ss'\n : 'DD.MM.YYYY HH:mm:ss';\n\n return dayjs().format(format);\n};\n\n// 2020-01-01 текущая дата\nexport const getDateNow = () => {\n return dayjs().format('YYYY-MM-DD');\n};\n\n// 2020-01-01 12:30:00 вычитает количество дней от текущей даты (если нету day вернет текущая дату)\nexport const getDateTimeSubtractDay = (day) => {\n const format = 'YYYY-MM-DD HH:mm:ss'\n if (day) return dayjs().subtract(day, 'day').format(format)\n return dayjs().format(format);\n};\n\n// 2020-01-01 прибавляет количество дней к текущей даты (если нету day вернет текущая дату)\nexport const getDateAddDay = (day) => {\n const format = 'YYYY-MM-DD'\n if (day) return dayjs().add(day, 'day').format(format)\n return dayjs().format(format)\n}\n","\n\n\n \n \n \n {{ $t('User support') }}\n \n \n \n mdi-close\n \n \n \n \n \n \n {{ $t('Message sent!') }}\n \n \n {{ $t('We will contact you shortly.') }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mdi-send\n \n {{ $t('Send') }}\n \n \n \n \n \n\n\n\n","import store from '@/store'\nimport { getUserCertificates, createDetachedSignature } from 'crypto-pro';\nimport roleHelpers from '@/common/role/roleHelpers.js';\nimport helpers from '@/common/helpers'\n\nexport default {\n getSignature () {\n const {\n auth: { profile },\n param: { data: params },\n } = store.state\n const {\n signature,\n employee_id: employeeId,\n } = profile\n const { company_behalf_signature: companyBehalfSignature } = params;\n const role = roleHelpers.getBusinessRole();\n const isSignature = !!helpers.checkString(signature)?.length\n const isEmployeeId = !!helpers.checkString(employeeId)?.length\n const isSignatureMissing = !isSignature && isEmployeeId\n\n // Если ревьюер и указан параметр, то выбирается тип из параметра\n if (\n role === 'reviewer' &&\n companyBehalfSignature?.length\n ) {\n return companyBehalfSignature;\n }\n\n // Для остальных проверяем поле signature\n if (isSignatureMissing) {\n // store.commit('MSG_SET_ITEM', {\n // text: 'Не определено поле signature',\n // debug: true,\n // })\n }\n\n return signature;\n },\n\n // Проверка, что у профиля есть подписание\n checkIsSignature () {\n return !!Number(this.getSignature())\n },\n\n async getCertificates () {\n let data = []\n\n try {\n data = await getUserCertificates();\n } catch (error) {\n data.error = error\n }\n\n return data;\n },\n\n async createSignature (print, hash) {\n let data = [];\n\n try {\n data = await createDetachedSignature(print, hash);\n } catch (error) {\n data.error = error\n }\n\n return data\n },\n\n // Проверка на необходимость подписи документа\n checkIsSignWorkflow (workflow) {\n const { is_for_sign: isForSign } = workflow;\n\n return !!Number(isForSign);\n },\n\n // Проверка на возможность подписания документа\n checkSignAvailable (document) {\n const {\n workflow: { workflowRequestList },\n } = store.state;\n\n const role = roleHelpers.getRoleByRouteMeta();\n\n if (!document?.status_id) {\n return false\n }\n\n const { status_id: status, object_id: objectId } = document;\n\n // Если подписывается КЭДО\n const isCades = !!objectId?.startsWith('request_push_signed');\n\n // В разделах с документами проверка по кнопке воркфлоу\n if (!isCades) {\n return true\n }\n\n const workflowItem = workflowRequestList?.[role]?.find(\n (i) =>\n i.status_id === status &&\n i.reject === '0' &&\n i.object_id === objectId &&\n i.business_role === role,\n );\n\n return !!workflowItem;\n },\n\n // Скачать архив подписи\n getSignZip (document) {\n const { code: clientCode } = store.state.param.client;\n\n if (!document) {\n store.commit('MSG_SET_ITEM', {\n text: 'Подписание: Нет документа для скачивания',\n debug: true,\n });\n\n return\n }\n\n const fileName = document?.files?.[0]?.file_name?.split('_').slice(0, -1).join('_')\n const filePath = `\\\\${clientCode}\\\\signature\\\\${fileName}.zip`\n\n const data = {\n method: 'file.get',\n path: filePath,\n client_code: clientCode,\n format: 'zip',\n name: `${fileName}.zip`,\n };\n\n return data\n },\n\n setRequest (document) {\n store.commit('setRequestSigning', document);\n },\n\n openModal (document, request) {\n store.commit('openModalSigning', {\n document,\n method: 'add',\n });\n\n // Если передаётся реквест, то записать его в стор\n if (request) {\n this.setRequest(request)\n }\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VDialog',{attrs:{\"persistent\":\"\",\"max-width\":_vm.size,\"height\":_vm.fullScreen ? '100%' : 'min-content',\"content-class\":_vm.$style.Dialog},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('div',{staticClass:\"elevation-1\",class:_vm.$style.Card},[_c('div',{class:_vm.$style.Title},[_c('UiText',{attrs:{\"size\":\"h3\",\"no-margin\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.title))+\" \")]),_c('div',{class:_vm.$style.HeaderButtons},[_vm._t(\"headerButtons\"),_c('VBtn',{class:_vm.$style.BtnClose,attrs:{\"icon\":\"\",\"variant\":\"text\",\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.handleClose()}}},[_c('VIcon',[_vm._v(\"mdi-close\")])],1)],2)],1),_vm._t(\"default\"),_c('div',{class:_vm.$style.FooterButtons},[_vm._t(\"buttons\")],2)],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiModalV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiModalV2.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n {{ $t(title) }}\n \n \n \n\n \n mdi-close\n \n \n \n \n \n \n \n \n \n\n\n\n","import { render, staticRenderFns } from \"./UiModalV2.vue?vue&type=template&id=49866c28&\"\nimport script from \"./UiModalV2.vue?vue&type=script&lang=js&\"\nexport * from \"./UiModalV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiModalV2.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import UiModal from './UiModalV2.vue';\n\nexport default UiModal;\n","import store from '@/store'\nimport moment from 'moment'\nimport { TableService } from '@/common/api.service.js';\nimport paramHelpers from '@/common/settings/paramHelpers'\nimport { checkParamTypeInclude } from '@/common/settings/paramUtils'\n\nexport default {\n // получить доступные дни календаря\n getCalendarAllowedDates (document, calendarDate, dateDisabled) {\n const paramWorkdayCalendarRestriction = paramHelpers?.paramWorkdayCalendarRestriction()\n const { calendars = [] } = store?.state?.app ?? {}\n let rule = ''\n const weekendDays = [6, 7] // индекс выходных дней\n\n // если нет документа или нет параметра\n if (!document && !calendarDate) {\n return 1 // все дни\n }\n\n const date = moment(calendarDate).isoWeekday()\n\n if (paramWorkdayCalendarRestriction?.length) {\n const typeList = paramWorkdayCalendarRestriction?.split(/;/)\n const isTypeExist = typeList?.find((i) => i === document?.code)\n\n if (isTypeExist) {\n rule = 'onlyWeekdays'\n }\n }\n const validateForbiddenExcept = paramHelpers.paramVacationValidateForbiddenExcept().includes(document?.code)\n // блокируем дни до даты\n if (!validateForbiddenExcept && dateDisabled && calendarDate < dateDisabled) {\n return 0\n }\n\n if (rule === 'onlyWeekdays') {\n // Если выходной - это перенесённый день с будней\n const isWorking = calendars?.find(i => calendarDate >= i.start_date && calendarDate <= i.end_date && i.type === 'working')\n\n if (isWorking) {\n return 1\n }\n\n // если дата совпадает с индексом выходного дня, то блокируем её\n if (weekendDays?.find((i) => i === date)) {\n return 0 // блокировать выходные\n }\n\n // найти праздники\n const calendarItem = calendars?.find(i => calendarDate >= i.start_date && calendarDate <= i.end_date && (i.type === 'holiday' || i.type === 'non-working'))\n\n // блокируем праздники\n if (calendarItem) {\n return 0\n }\n }\n\n return 1 // все дни\n },\n\n // сброс даты\n handleResetDate (model, routeId) {\n const resetData = {\n start_date: null,\n end_date: null,\n }\n\n // для редактирования не сбрасываем\n if (!routeId) {\n model = Object.assign(model, resetData)\n }\n\n return model\n },\n\n // TODO: устаревший способ. Удалить когда не будет использоваться\n // проверка на обязательное поле коммент\n checkFieldComment (document) {\n const { is_comment_field_important: paramFieldCommentImportant } = store.state.param.data\n\n if (!document || !paramFieldCommentImportant) {\n return false\n }\n\n const paramTypesList = paramFieldCommentImportant.split(';')\n const isTypeExist = paramTypesList.find((i) => i === document?.code)\n\n return !!isTypeExist\n },\n\n // посчитать количество дней\n getCalendarDays (model, type) {\n let typeValue = 0 // все дни\n\n if (type === 'work') {\n typeValue = 2 // рабочие\n }\n\n return store.getters.APP_GET_CALENDAR_DAYS({\n start_date: model.start_date,\n end_date: model.end_date,\n type: typeValue,\n })\n },\n\n // минимальная дата для документов в параметре\n // Если возвращает undefined - значит принудительно не должно быть ограничений\n // Если возвращает null - значит не нашлось совпадений на ограничения\n // Оба значения выключают условие в календаре\n // null необходимо чтобы дальше в документе делать разграничения на пришедшее значения\n getMinDate (document = {}, role = '') {\n const { code: documentTypeCode = '' } = document\n\n // HR может создавать на любые даты\n if (role === 'hr') {\n return undefined\n }\n\n // pastday_calendar_allowed делать доступным все даты. Повышенный приоритет\n if (checkParamTypeInclude(paramHelpers.paramPastDayAllowed(), documentTypeCode)) {\n return undefined;\n }\n\n // pastday_calendar_restriction - минимальная дата \"сегодня\"\n // if (checkParamTypeInclude(paramHelpers.paramPastDayRestriction(), documentTypeCode)) {\n // return new Date().toISOString(); // сегодня\n // }\n\n return null // все даты\n },\n\n // Получить типы документов\n getDocumentTypes (section) {\n // section - указание раздела документа\n\n let types = store.getters.APP_GET_PROP('documentTypes');\n\n if (section) {\n types = types?.filter((item) => item?.object_id?.startsWith(section));\n }\n\n return types.map(\n ({ id = '', code = '', name = '', name_eng: nameEng = '' }) => {\n return {\n id,\n code,\n name,\n name_eng: nameEng ?? name,\n };\n },\n );\n },\n\n // Получить доступный workflow\n getAvailableWorkflow (objectId, role, status) {\n return store.getters.APP_GET_AVAILABLE_WORKFLOW({\n object_id: objectId,\n business_role: role,\n status_id: status,\n });\n },\n\n getAvailableSectionWorkflow (objectId, role, status) {\n return store.getters.APP_GET_AVAILABLE_SECTION_WORKFLOW({\n object_id: objectId,\n business_role: role,\n status_id: status,\n });\n },\n\n // Проверка что воркфлоу доступен для редактирования\n checkEditableWorkflow (statusList) {\n const workflow = statusList?.find((i) => i.reject === '0');\n\n return workflow?.editable === '1' || false;\n },\n\n // Добавить запись в request и записать к документу\n async getRequestId (document, object, requestType = '') {\n const { requestTypes: requestTypeList } = store.state.app;\n const profile = store.getters.getProfile\n\n const currentRequestType = requestTypeList.find((i) => i.code === requestType);\n\n if (!currentRequestType) {\n store.commit('MSG_SET_ITEM', {\n text: 'Не найден тип реквеста',\n debug: true,\n });\n\n return\n }\n\n const requestInfo = {\n object_id: object,\n status_id: 'prepared',\n legal_document_id: document?.id,\n date: new Date().toISOString(),\n employee_id: profile?.employee_id,\n organization_id: profile?.organization_id,\n request_type_id: currentRequestType?.id ?? '',\n };\n\n const requestResponse = await TableService.add({\n object: 'request',\n data: [requestInfo],\n });\n\n const requestData = requestResponse?.[1]?.data?.[0];\n\n return requestData?.id ?? '';\n },\n}\n","const botToken = process?.env?.VUE_APP_TELEGRAM_BOT_SUPPORT_TOKEN ?? ''\nconst chatId = process?.env?.VUE_APP_TELEGRAM_SUPPORT_CHAT_ID ?? ''\n\nexport const sendHtmlToTelegramBot = async (data) => {\n const { text = '', buttons = {} } = data ?? {}\n if (\n !botToken?.length &&\n !chatId?.length\n ) {\n return\n }\n\n const telegramUrl = `https://api.telegram.org/bot${botToken}/sendMessage`;\n\n try {\n await fetch(telegramUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n chat_id: chatId,\n text,\n parse_mode: 'HTML',\n reply_markup: buttons?.reply_markup,\n }),\n });\n } catch (error) {\n // Ничего не показывать на клиенте\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Button\":\"SupportIcon__Button__3J-oP\",\"pulse\":\"SupportIcon__pulse__1OPi1\",\"Icon\":\"SupportIcon__Icon__2PmY5\"};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.inner},[_c('svg',{class:_vm.$style.svg,attrs:{\"viewBox\":\"0 0 48 48\",\"fill\":\"none\",\"stroke\":\"#3DA35A\",\"stroke-width\":\"7\",\"stroke-dasharray\":\"100\"}},[_c('path',{attrs:{\"d\":\"M 12,22 L 22,31 L 36,13\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CheckMark.vue?vue&type=template&id=38c2ebe0&scoped=true&\"\nvar script = {}\nimport style0 from \"./CheckMark.vue?vue&type=style&index=0&lang=scss&module=true&\"\nimport style1 from \"./CheckMark.vue?vue&type=style&index=1&id=38c2ebe0&lang=scss&scoped=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n \"38c2ebe0\",\n null\n \n)\n\nexport default component.exports","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Snackbar\":\"Notification__Snackbar__1G8zV\",\"Notification\":\"Notification__Notification__1TgqC\",\"Title\":\"Notification__Title__2Jhrx\",\"BtnClose\":\"Notification__BtnClose__2D-NG\"};","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportIcon.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportIcon.vue?vue&type=style&index=0&lang=scss&module=true&\"","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:[\n _vm.$style.Btn, ( _obj = {}, _obj[_vm.$style.Round] = _vm.isRound, _obj[_vm.$style.Active] = _vm.activeRoute(), _obj[_vm.$style[(\"Size__\" + _vm.size)]] = _vm.size, _obj[_vm.$style[(\"Variant__\" + _vm.variant)]] = _vm.variant, _obj )\n ],style:(_vm.cssVars(_vm.color)),on:{\"click\":_vm.handleClick}},[(_vm.img)?_c('img',{class:_vm.$style.Icon,attrs:{\"src\":_vm.img}}):(_vm.icon)?_c('span',{class:(\"mdi \" + _vm.icon + \" \" + (_vm.$style.Icon))}):_vm._e(),(!_vm.isIcon)?_c('div',{class:_vm.$style.Slot},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBtn.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n\n\n\n","export default {\n variant: {\n type: String,\n default: 'text',\n },\n color: {\n type: String,\n default: 'secondary',\n },\n size: {\n type: String,\n default: '',\n },\n icon: {\n type: String,\n default: '',\n },\n img: {\n type: String,\n default: '',\n },\n isActiveRouteOff: {\n type: Boolean,\n default: false,\n },\n isIcon: {\n type: Boolean,\n default: false,\n },\n isRound: {\n type: Boolean,\n default: false,\n },\n to: {\n type: [Object],\n default: () => ({}), // { name: 'home'}\n },\n href: {\n type: String,\n default: '',\n },\n};\n","import { render, staticRenderFns } from \"./UiBtn.vue?vue&type=template&id=ff99d6f6&\"\nimport script from \"./UiBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./UiBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiBtn.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import { checkIsWebpack } from '@/common/buildUtils/getBuilder'\n\nimport AppTooltipV2 from './AppTooltipV2.vue';\nimport AppTooltip from './AppTooltip.vue';\n\nlet tooltip\n\nif (checkIsWebpack()) {\n tooltip = AppTooltipV2\n} else tooltip = AppTooltip\n\nexport default tooltip;\n","export default {\n position: {\n type: String,\n default: 'bottom',\n },\n text: {\n type: String,\n default: '',\n },\n isOpenOnClick: {\n type: Boolean,\n default: false,\n },\n openDelay: {\n type: Number,\n default: 0,\n },\n isTranslateOff: {\n type: Boolean,\n default: false,\n },\n};\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppTooltipV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppTooltipV2.vue?vue&type=script&lang=js&\"","\n \n \n \n \n \n \n {{ $t(text) }}\n \n\n\n\n","import { render, staticRenderFns } from \"./AppTooltipV2.vue?vue&type=template&id=2dc18aae&\"\nimport script from \"./AppTooltipV2.vue?vue&type=script&lang=js&\"\nexport * from \"./AppTooltipV2.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VTooltip',{staticClass:\"AppTooltip\",attrs:{\"open-on-hover\":_vm.hintDesk,\"open-on-click\":_vm.hintDesk,\"top\":_vm.currentPosition.isTop,\"right\":_vm.currentPosition.isRight,\"bottom\":_vm.currentPosition.isBottom,\"left\":_vm.currentPosition.isLeft,\"open-delay\":_vm.openDelay},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_vm._t(\"default\")],2)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(_vm.text)))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppTooltip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppTooltip.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n {{ isTranslateOff ? text : $t(text) }}\n \n \n\n","import { render, staticRenderFns } from \"./AppTooltip.vue?vue&type=template&id=5de831c3&\"\nimport script from \"./AppTooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./AppTooltip.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VTooltip',{staticClass:\"AppTooltip\",attrs:{\"open-on-hover\":_vm.hintDesk,\"open-on-click\":_vm.isOpenOnClick,\"location\":_vm.currentPosition,\"open-delay\":_vm.openDelay},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',_vm._b({},'div',props,false),[_vm._t(\"default\")],2)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.isTranslateOff ? _vm.text : _vm.$t(_vm.text))+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// extracted by mini-css-extract-plugin\nmodule.exports = {\"GroupList\":\"UiListGroup__GroupList__1hXix\",\"GroupListHide\":\"UiListGroup__GroupListHide__3Z7x4\",\"Group\":\"UiListGroup__Group__2ZHlS\",\"GroupOpen\":\"UiListGroup__GroupOpen__10LBQ\"};","import '@mdi/font/css/materialdesignicons.css'\nimport Vue from 'vue'\nimport Vuetify from 'vuetify'\nimport colors from 'vuetify/lib/util/colors'\nimport 'vuetify/dist/vuetify.min.css'\nimport ru from 'vuetify/es5/locale/ru'\nimport en from 'vuetify/es5/locale/en'\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n lang: {\n locales: { ru, en },\n current: 'ru',\n },\n theme: {\n dark: false,\n themes: {\n light: {\n primary: colors.orange.darken2,\n secondary: colors.grey.darken1,\n accent: colors.green.darken1,\n error: colors.red.accent3,\n },\n dark: {\n primary: colors.orange.lighten2,\n secondary: colors.grey.lighten4,\n },\n options: {\n customProperties: true,\n },\n },\n },\n iconfont: 'mdi',\n})\n","import vuetify from '../plugins/vuetify'\nimport axios from 'axios'\nimport store from './index'\n\nconst STORAGE_KEY = 'EmployeeGate'\n// Получим состояние из хранилища браузера\nconst storageState = JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || { param: {} }\n\n// Значения, которые будут обязательно установлены при каждом выполнении\nlet state = {\n loading: false,\n title: 'Employee Gate',\n locale: 'ru',\n host: null,\n leftDrawer: false,\n offline: false,\n theme: {\n dark: false,\n logo: 'themes/logo/EG.png',\n themes: {\n light: null,\n dark: null,\n },\n },\n debug: (process.env.VUE_APP_DEBUG === 'true'),\n apiDomain: process.env.VUE_APP_API_DOMAIN,\n apiEndpoint: process.env.VUE_APP_API_ENDPOINT,\n apiVersion: process.env.VUE_APP_API_VERSION,\n client: null,\n data: {},\n initParams: {\n is_support_form_visible: '0',\n hide_unread_bell: '0',\n hide_user_guide: '0',\n hide_grants_button: '0',\n language_switch_off: '0',\n },\n}\n\n// Объединенное состояние\nstate = Object.assign({}, state, storageState.param)\nstate.data = Object.assign({}, state?.initParams)\n\nvuetify.framework.theme.dark = state.theme.dark\nif (state.theme.themes.light) vuetify.framework.theme.themes.light = state.theme.themes.light\nif (state.theme.themes.dark) vuetify.framework.theme.themes.dark = state.theme.themes.dark\n\nstate.host = window.location.origin\n\n// Функция для сохранения свойств Param\nconst storeParam = function (propName) {\n const currentState = JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || { param: {} }\n if (!currentState.param) currentState.param = {}\n const prop = {}\n prop[propName] = state[propName]\n const newState = currentState\n newState.param = Object.assign(newState.param, prop)\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(newState))\n}\n\nconst getters = {\n PARAM_GET_PROP: state => propName => {\n // Если свойство в свою очередь является вложенным объектом, например \"data.Google_ClientID\"\n const propNames = propName.split('.')\n const lastName = propNames.pop()\n\n const objData = propNames.reduce(function (o, k) {\n return (o[k] = o[k] || {})\n }, state)\n\n return objData[lastName] // objData == state.data; lastName == \"Google_ClientID\"\n },\n getLoading: state => {\n return state.loading\n },\n getLocale: state => {\n return state.locale\n },\n getParamData: state => propName => {\n return state.data[propName]\n },\n getApiUrl: state => {\n return `${state.apiDomain}${state.apiEndpoint}${state.apiVersion ? '/v' + state.apiVersion : ''}`\n },\n}\n\nconst mutations = {\n PARAM_SET_LOADING (state, data) {\n state.loading = data\n },\n PARAM_SET_LOCALE (state, data) {\n state.locale = data\n },\n PARAM_SET_DOMAIN (state, data) {\n state.apiDomain = data\n storeParam('apiDomain')\n },\n PARAM_SET_DEBUG (state, data) {\n state.debug = data\n },\n PARAM_SET_THEME (state, data) {\n if (!data || !data.themes) return\n state.theme = data\n vuetify.framework.theme.dark = state.theme.dark\n if (state.theme.themes.light) vuetify.framework.theme.themes.light = state.theme.themes.light\n if (state.theme.themes.dark) vuetify.framework.theme.themes.dark = state.theme.themes.dark\n storeParam('theme')\n },\n async PARAM_SET_CLIENT (state, payload) {\n state.client = payload\n storeParam('client')\n\n // Загрузим тему\n let clientCode = payload?.code ?? 'eg'\n // Если на тестовом приходит название с _tmp, то обрезать часть названия, чтобы подставлялись стили как и на проде, с одного файла\n if (clientCode?.includes('_tmp')) {\n clientCode = clientCode?.split('_tmp').join('');\n }\n\n // Добавление атрибута с темой тегу html\n document.documentElement.setAttribute('data-theme', clientCode?.toLowerCase());\n // Запись localStorage для использования стилей при отрисовке страницы и при выходе из аккаунта\n localStorage.setItem('theme', clientCode);\n\n let jsonFile\n try {\n jsonFile = await axios.get(`themes/${clientCode}.json`)\n } catch {}\n\n if (!jsonFile || !jsonFile.data) {\n jsonFile = await axios.get('themes/EG.json')\n }\n\n if (jsonFile?.data?.themes) {\n if (this.PARAM_SET_THEME) {\n this.PARAM_SET_THEME(state, jsonFile.data)\n } else if (this.commit) {\n this.commit('PARAM_SET_THEME', jsonFile.data)\n }\n }\n\n // Заменим url\n const pathName = window.location.pathname.replace(/\\//g, '')\n if (pathName && payload.code && payload.code !== pathName) {\n window.location.pathname.replace(pathName, payload.code)\n }\n },\n PARAM_SET_DATA (state, payload) {\n payload.data.forEach(paramItem => {\n state.data[paramItem.code] = paramItem.value\n })\n storeParam('data')\n\n const passwordExpiration = state.data.password_expiration\n if (passwordExpiration) {\n store.commit('AUTH_SET_EXPIRE_PASSWORD')\n }\n },\n PARAM_SET_PROP (state, payload) {\n const keys = payload.propName.split('.')\n const last = keys.pop()\n\n const objData = keys.reduce(function (o, k) {\n return (o[k] = o[k] || {})\n }, state)\n\n objData[last] = payload.data\n\n if (payload.save) {\n storeParam(keys[0] || last)\n }\n },\n PARAM_SET_EMPTY: (state) => {\n state.data = Object.assign({}, state?.initParams)\n storeParam('data')\n },\n}\n\nconst actions = {\n}\n\n// Проверим хост под которым запущено приложение, определим client_code\nif (window.location.pathname) {\n const pathName = window.location.pathname.replace(/\\//g, '')\n if (pathName && pathName !== 'portal') {\n mutations.PARAM_SET_CLIENT(state, { id: null, code: pathName })\n }\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import JwtService from '@/common/jwt.service'\nimport { TokenService, UserService } from '@/common/api.service'\nimport router from '@/router/index'\nimport store from './index'\nimport helpers from '@/common/helpers'\nimport moment from 'moment'\nimport i18n from '../plugins/i18n'\nimport paramHelpers from '@/common/settings/paramHelpers'\n\nconst STORAGE_KEY = 'EmployeeGate'\n// Получим состояние из хранилища браузера\nconst localStorage = JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || { auth: {} }\nconst sessionStorage = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { auth: {} }\n\n// Значения, которые будут обязательно установлены при каждом выполнении\nlet state = {\n token: {},\n profile: {},\n fingerprint: null,\n loginDate: null,\n status: null,\n redirect: null,\n expirePassword: null,\n lastRestoreDate: null,\n currentRole: null,\n isGoogleCodeField: false,\n pinCodeAttempts: 3,\n isTfaMsgShown: false,\n isSupportForm: false,\n}\n\n// Объединенное состояние\nstate = Object.assign({}, state, localStorage.auth, sessionStorage.auth)\n\n// Функция для сохранения свойств Auth\nconst storeAuth = function (propName, storage = 'sessionStorage') {\n const currentState = JSON.parse(window[storage].getItem(STORAGE_KEY)) || { auth: {} }\n if (!currentState.auth) currentState.auth = {}\n const prop = {}\n prop[propName] = state[propName]\n const newState = currentState\n newState.auth = Object.assign(newState.auth, prop)\n window[storage].setItem(STORAGE_KEY, JSON.stringify(newState))\n}\n\n// const wait = async function (ms) {\n// return new Promise(resolve => {\n// setTimeout(resolve, ms)\n// })\n// }\n\nfunction destroyInactive () {\n // Удалим все закешированные _inactive компоненты внутри VContent (следствие тэга keep alive)\n const toDestroy = []\n router.app.$children[0].$refs.content.$children.forEach(vm => {\n if (vm._inactive === true) toDestroy.push(vm)\n })\n toDestroy.forEach(vm => {\n vm.$destroy()\n console.log('Destroyed component ' + vm.$options.name)\n })\n}\n\nconst getters = {\n AUTH_GET_PROP: (state, propName) => {\n return state[propName]\n },\n isAuthenticated: (state) => {\n return state && state.token && !!state.token.access_token && (!JwtService.isTokenExpired(state.token) || true)\n },\n isAdmin: (state, getters) => getters.isAuthorizedRoles('admin'),\n isPowerUser: (state, getters) => getters.isAuthorizedRoles('admin,hr,accountant'),\n isEmployee: (state, getters) => getters.isAuthorizedRoles('employee'),\n isCandidate: (state, getters) => getters.isAuthorizedRoles('candidate'),\n isManager: (state, getters) => getters.isAuthorizedRoles('manager'),\n isReviewer: (state, getters) => getters.isAuthorizedRoles('reviewer'),\n isHr: (state, getters) => getters.isAuthorizedRoles('hr'),\n isAccountant: (state, getters) => getters.isAuthorizedRoles('accountant'),\n isRecruiter: (state, getters) => getters.isAuthorizedRoles('recruiter'),\n isProfileLoaded: (state) => state.profile && !!state.profile.login,\n getProfile: (state) => state.profile,\n getGrant: (state) => {\n if (state.profile && state.profile.grant_id && state.profile.grants) {\n return state.profile.grants.find((i) => i.id === state.profile.grant_id)\n }\n },\n getEmployee: (state, getters) => {\n const grant = getters.getGrant\n return {\n id: grant ? grant.employee_id : state.profile.employee_id,\n name: grant ? grant.employee_name : state.profile.name,\n name_eng: grant ? grant.employee_name_eng : state.profile.name_eng,\n organization_id: grant ? grant.organization_id : state.profile.organization_id,\n organization_name: grant ? grant.organization_name : state.profile.organization_name,\n organization_name_eng: grant ? grant.organization_name_eng : state.profile.organization_name_eng,\n }\n },\n getClient: (state) => {\n if (state.profile && state.profile.client_id) {\n return { id: state.profile.client_id, code: state.profile.client_code }\n }\n return store.getters.PARAM_GET_PROP('client')\n },\n getToken: (state) => state.token,\n refreshTokenExist: (state) => {\n // if (state.token && state.token.refresh_token) return true\n // return helpers.cookieExist('refresh_token')\n return state.refreshTokenExist\n },\n getRefreshToken: (state) => {\n // Если мы получали токен в этом сеансе (логин или рефреш)\n // Тогда refreshToken все еще есть в нашем state\n if (state.token && state.token.refresh_token) return state.token.refresh_token\n // Если мы раньше уже проходили аутентификацию и наш браузер поддерживает куки\n // И кука не HttpOnly\n return helpers.getCookie('refresh_token')\n },\n getTokenExpirationDate: (state) => JwtService.getTokenExpirationDate(state.token),\n getFingerprint: (state) => state.fingerprint,\n isAuthorizedRoles: (state, getters) => roles => {\n if (!getters.isAuthenticated) {\n return false\n }\n if (state.profile && state.profile.roles) {\n for (const r of state.profile.roles) {\n if (r && roles.indexOf(r) >= 0) {\n return true\n }\n }\n }\n return false\n },\n}\n\nconst mutations = {\n AUTH_SET_PROP: (state, payload) => {\n const keys = payload.propName.split('.')\n const last = keys.pop()\n\n const objData = keys.reduce(function (o, k) {\n return (o[k] = o[k] || {})\n }, state)\n\n objData[last] = payload.data\n\n if (payload.save) {\n storeAuth(keys[0] || last)\n }\n },\n AUTH_SET_LOADING: (state) => {\n state.status = 'loading'\n },\n AUTH_SET_FINGERPRINT: (state, payload) => {\n state.fingerprint = payload.fingerprint\n storeAuth('fingerprint', 'localStorage')\n },\n AUTH_SET_ERROR: (state, payload) => {\n state.token = {}\n state.profile = {}\n state.isAuthenticated = false\n state.status = 'error'\n },\n AUTH_SET_TOKEN: (state, payload) => {\n const token = payload.data || state.token\n if (!token) {\n return\n }\n state.status = 'success'\n state.token = token\n // Не рекомендуется хранить access_token в localStorage браузера\n // Либо оставляем его только в переменных сеанса (Vuex Store), тогда удаляется при релоаде\n\n // Или сохраним в sessionStorage, тогда удаляется при закрытии вкладки\n storeAuth('token')\n\n if (payload.loginDate) {\n state.loginDate = payload.loginDate\n storeAuth('loginDate')\n }\n\n // API должен был нам передать куку refresh_token, убедимся что она установлена\n // state.refreshTokenExist = helpers.cookieExist('refresh_token')\n\n // Подключим таймер на срок жизни токена\n const expirationDate = store.getters.getTokenExpirationDate\n const timeout = expirationDate - new Date() - 1 * 1000 * 60 // за 1 минуту до даты окончания т.е. через 29 минут после получения\n setTimeout(() => {\n if (state.token && state.token.refresh_token) {\n console.log('timeout: Осталось менее 1 минуты действия access_token, выполним refresh')\n store.dispatch('AUTH_REFRESH_TOKEN')\n }\n }, timeout)\n },\n AUTH_SET_PROFILE (state, payload) {\n state.profile = payload\n storeAuth('profile')\n // Когда нам стал известен client_code\n // Проверим, если у нас в сторе установлен другой client_code, выполним очистку\n const client = store.getters.PARAM_GET_PROP('client')\n if (client && client.id && client.id !== state.profile.client_id) {\n store.commit('APP_SET_EMPTY', { scope: 'full' })\n }\n store.commit('PARAM_SET_CLIENT', { id: state.profile.client_id, code: state.profile.client_code })\n // И scope\n if (state.profile.scope === 'debug') {\n store.commit('PARAM_SET_DEBUG', true)\n }\n // И locale\n store.commit('PARAM_SET_LOCALE', state?.profile?.language)\n // И expirePassword\n if (this.AUTH_SET_EXPIRE_PASSWORD) {\n this.AUTH_SET_EXPIRE_PASSWORD(state)\n } else if (this.commit) {\n this.commit('AUTH_SET_EXPIRE_PASSWORD')\n }\n },\n AUTH_SET_EXPIRE_PASSWORD: (state) => {\n if (state.profile.password_doesnt_expire === '1') return\n // Определим количество дней действия пароля\n let expireDays\n const passwordUpdateDate = state.profile.password_update_date\n if (!passwordUpdateDate) expireDays = -1\n const passwordExpiration = store.getters.getParamData('password_expiration')\n if (passwordUpdateDate && passwordExpiration) {\n expireDays = moment().diff(moment(passwordUpdateDate), 'days') // 26\n expireDays = passwordExpiration - expireDays // 30 - 26 = 4\n }\n if (expireDays) {\n state.expirePassword = expireDays\n storeAuth('expirePassword')\n }\n },\n AUTH_SET_EMPTY: (state) => {\n state.token = {}\n state.profile = {}\n state.isAuthenticated = false\n state.status = null\n state.loginDate = null\n state.expirePassword = null\n storeAuth('loginDate')\n const sessionStorage = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { auth: {} }\n sessionStorage.auth = {}\n window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(sessionStorage))\n },\n AUTH_SET_CURRENT_ROLES: (state, payload) => {\n state.currentRole = payload\n },\n AUTH_SHOW_GOOGLE_FIELD: (state, payload) => {\n state.isGoogleCodeField = payload;\n },\n AUTH_SET_PIN_CODE_ATTEMPTS: (state, payload) => {\n state.pinCodeAttempts = payload;\n },\n AUTH_SET_TWO_FACTOR: (state, payload) => {\n state.profile.two_factor = payload;\n },\n // Не показывать сообщение о необходимости TFA, если оно уже ранее было показано\n AUTH_SET_TFA_MSG_SHOWN: (state, payload) => {\n state.isTfaMsgShown = true\n },\n // Выставить отображение формы поддержки\n AUTH_SET_SUPPORT_FORM: (state) => {\n state.isSupportForm = paramHelpers.paramCheckIsSupportFormVisible()\n },\n AUTH_SET_PHOTONAME: (state, payload) => {\n const sessionStorage = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { auth: {} }\n if (sessionStorage?.auth?.profile) {\n sessionStorage.auth.profile.photo_name = payload ?? null\n window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(sessionStorage))\n }\n },\n}\n\nconst actions = {\n AUTH_LOGIN: async (context, payload) => {\n context.commit('APP_SET_EMPTY') // , { scope: 'full' }\n destroyInactive()\n try {\n let resToken\n if (!payload.login && payload.grant) {\n resToken = await TokenService.grant({ grant: payload.grant })\n context.commit('AUTH_SET_EMPTY')\n } else {\n context.commit('AUTH_SET_EMPTY')\n resToken = await TokenService.get(payload)\n }\n if (!resToken) {\n throw new Error()\n }\n\n const isGoogleAuth = resToken?.options?.params?.tfa?.two_factor === 'Google';\n const isWrongCode = resToken?.error === 'Wrong secret code value';\n const isMissingCode = resToken?.error === 'Missing secret code value';\n\n if (\n isGoogleAuth &&\n (isMissingCode || isWrongCode)\n ) {\n context.commit('AUTH_SHOW_GOOGLE_FIELD', true);\n\n if (isWrongCode) {\n context.commit(\n 'AUTH_SET_PIN_CODE_ATTEMPTS',\n context.state.pinCodeAttempts - 1,\n );\n }\n return;\n }\n\n const loginDate = new Date()\n context.commit('AUTH_SET_TOKEN', { data: resToken.token, loginDate })\n await new Promise(resolve => setTimeout(resolve, 20))\n await context.dispatch('AUTH_PULL_PROFILE')\n // Дождемся загрузки всех мастерданных\n await context.dispatch('APP_PULL_MASTERDATA')\n\n context.commit('AUTH_SHOW_GOOGLE_FIELD', false);\n context.commit('AUTH_SET_SUPPORT_FORM')\n } catch (apiErr) {\n // Некоторые ошибки покажем на экране\n if (apiErr.code) { // && apiErr.code.indexOf('-327') > -1\n const text = context.getters.getLocale === 'en' && apiErr.message_eng ? apiErr.message_eng : apiErr.message\n context.commit('MSG_SET_ITEM', { text })\n } else {\n context.commit('MSG_SET_ITEM', { text: i18n.t('Login failed') })\n }\n context.commit('APP_SET_SUBORDINATION', [])\n context.commit('AUTH_SET_ERROR')\n context.commit('AUTH_SET_EMPTY')\n throw apiErr\n }\n },\n\n AUTH_SSO_LOGIN: async ({ commit, dispatch }, payload) => {\n const {\n token: { access_token: accessToken, refresh_token: refreshToken },\n } = payload;\n\n commit('AUTH_SET_TOKEN', {\n data: {\n token_type: 'Bearer',\n access_token: accessToken,\n expires_in: null,\n refresh_token: refreshToken,\n },\n });\n await new Promise((resolve) => setTimeout(resolve, 20));\n await dispatch('AUTH_PULL_PROFILE')\n await dispatch('APP_PULL_MASTERDATA')\n },\n\n AUTH_REFRESH_TOKEN: async (context, payload) => {\n const refreshToken = context.getters.getRefreshToken\n // const refreshTokenExist = helpers.cookieExist('refresh_token')\n // if (!refreshToken && !helpers.cookieEnabled()) {\n // context.commit('AUTH_SET_ERROR')\n // if (router.app.$route.name !== 'login') router.push({ name: 'login' })\n // }\n // Если мы не логинились еще, нет смысла пытаться обновить токен\n if (!state.loginDate && !refreshToken) {\n context.commit('AUTH_SET_EMPTY')\n // TODO: делало редирект\n // if (router.app.$route.name !== 'login') router.push({ name: 'login' })\n return\n }\n try {\n const resToken = await TokenService.refresh(refreshToken)\n if (!resToken) throw new Error()\n if (resToken && resToken.data && resToken.data.error) throw new Error(resToken.data.error)\n context.commit('AUTH_SET_TOKEN', { data: resToken.token })\n context.commit('MSG_SET_ITEM', { text: 'New token installed', debug: true })\n await new Promise(resolve => setTimeout(resolve, 10))\n } catch (err) {\n context.commit('MSG_SET_ITEM', { text: 'Refresh token failed', debug: true })\n context.commit('AUTH_SET_ERROR')\n context.commit('AUTH_SET_EMPTY')\n if (router.app.$route.name !== 'login') router.push({ name: 'login' })\n }\n },\n\n AUTH_PULL_PROFILE: async (context, payload) => {\n try {\n const resUser = await UserService.get()\n context.commit('AUTH_SET_PROFILE', resUser.profile)\n } catch (err) {\n let text = String(err)\n switch (text) {\n case 'Error: Expired token':\n text = 'Срок действия ссылки закончился. Воспользуйтесь восстановлением пароля еще раз.The link has been expired. Try to restore your password again'\n break;\n }\n context.commit('MSG_SET_ITEM', {\n color: 'primary',\n timeout: 15000,\n bottom: false,\n text: text,\n })\n context.commit('AUTH_SET_ERROR')\n context.commit('AUTH_SET_EMPTY')\n // throw new Error(err)\n if (router.app.$route.name !== 'login') router.push({ name: 'login' })\n }\n },\n\n AUTH_UPDATE_PROFILE: async (context, payload) => {\n try {\n const resUser = await UserService.edit(payload)\n if (resUser && resUser.length > 0 && resUser[1].data && resUser[1].data.length > 0 && resUser[1].data[0].id) {\n await context.dispatch('AUTH_PULL_PROFILE')\n }\n } catch (err) {\n context.commit('MSG_SET_ITEM', { text: i18n.t('Update profile failed') })\n context.commit('AUTH_SET_ERROR')\n throw new Error(err)\n }\n },\n\n REGISTER: (context, payload) => {\n const token = {\n token_type: 'Bearer',\n access_token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnZXRyYXRlIiwic3ViIjoiYWxpay5kYXRza29AZ21haWwuY29tIiwidXNlcmlkIjoiOSIsImlhdCI6MTU4NDQ0NjIwNSwianRpIjoiZGI3ZDk4NjNlNDVlZTlhMDM1MzdjODZiMWM3NTE1M2I0MjM0ODY3MCIsImV4cCI6MTU4NzAzODIwNX0.NmwOj9mcePHwSn9gCGr3AHGUd-wX6DT0w469jWj09js',\n expires_in: 1587038205,\n }\n context.commit('AUTH_SET_TOKEN', { data: token })\n\n const profile = {\n email: payload.email,\n name: payload.email,\n }\n context.commit('AUTH_SET_PROFILE', profile)\n },\n AUTH_LOGOUT: async (context, payload) => {\n const isSsoUser = paramHelpers.paramSsoClient()\n const paramSsoLogoutUrl = paramHelpers.paramSsoLogoutUrl()\n\n await TokenService.remove({ isDelete: isSsoUser })\n\n // в дальнейшем можно не передавать признак full при логауте, тогда справочники останутся в localStorage\n context.commit('APP_SET_EMPTY') // , { scope: 'full' }\n context.commit('PARAM_SET_EMPTY')\n context.commit('AUTH_SET_EMPTY')\n context.commit('MSG_SET_EMPTY')\n context.commit('ESTIMATE_SET_EMPTY')\n context.commit('LOCALES_SET_EMPTY')\n context.commit('WORKFLOW_SET_EMPTY')\n\n if (isSsoUser && paramSsoLogoutUrl?.length) {\n window.location.href = paramSsoLogoutUrl\n }\n\n if ((!payload || !payload?.disableRoute) && router?.app?.$route?.name !== 'login') router.push({ name: 'login' })\n destroyInactive()\n },\n}\n\nexport default {\n state,\n actions,\n mutations,\n getters,\n}\n","const state = {\n currentIndex: null,\n items: [],\n}\n\nconst getters = {\n getCurrentIndex: state => {\n return state.currentIndex\n },\n getLastIndex: state => {\n return state.items.length - 1\n },\n getCurrentMessage: state => {\n return state.items[state.currentIndex]\n },\n}\n\nconst mutations = {\n 'MSG_SET_ITEM' (state, data) {\n state.currentIndex = state.items.length\n data.index = state.currentIndex\n state.items.push(data)\n },\n 'MSG_SET_VIEWED' (state, index) {\n const message = state.items.find(i => i.index === index)\n message.viewed = true\n },\n // 'MSG_SET_PREV' (state) {\n // if (state.currentIndex > 0) {\n // state.currentIndex = state.currentIndex - 1\n // }\n // },\n // 'MSG_SET_NEXT' (state) {\n // if (state.currentIndex < state.items.length - 1) {\n // state.currentIndex = state.currentIndex + 1\n // }\n // }\n 'MSG_SET_EMPTY' (state) {\n state.currentIndex = null\n state.items = []\n },\n 'MSG_SET_ALL_VIEWED' (state) {\n state.items.forEach(message => {\n message.viewed = true\n })\n },\n}\n\nconst actions = {\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import { ViewService, TableService, BatchService } from '@/common/api.service'\nimport store from './index'\nimport moment from 'moment'\nimport i18n from '../plugins/i18n'\nimport documentHelpers from '@/common/document/documentHelpers.js'\nimport paramHelpers from '@/common/settings/paramHelpers.js'\nimport { getDayInYear } from '@/common/date/dateHelpers';\n\nconst STORAGE_KEY = 'EmployeeGate'\n// Получим состояние из хранилища браузера\nconst localStorage = JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || { app: {} }\nconst sessionStorage = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { app: {} }\n\n// Значения, которые будут обязательно установлены при каждом выполнении\nlet state = {\n paramLoaded: false,\n parameters: [],\n messages: [],\n screensets: [],\n layouts: {},\n lastIncomingDate: null,\n calendars: [],\n statuses: [],\n reports: [],\n documentTypes: [],\n requestTypes: [],\n expenseTypes: [],\n expenseGoals: [],\n workflow: [],\n workflowSection: [],\n subordination: [],\n subordinationAll: [],\n incomplete: [],\n templates: [],\n vacations: [],\n vacationLimits: [],\n vacationCorrection: [],\n employeeRest: [],\n expenses: [],\n btrips: [],\n absences: [],\n sickleaves: [],\n statements: [],\n pd_agreement: [],\n home_office: [],\n overtimes: [],\n requests: [],\n requestsSigning: [],\n candidates: [],\n employees: [],\n users: [],\n organizations: [],\n grants: [],\n granted: [],\n timesheets: [],\n recruitments: [],\n countries: [],\n currencies: [],\n material_assistances: [],\n objectsData: [],\n imageUrl: null,\n};\n\nconst localStorageObjects = ['organizations', 'requestTypes', 'documentTypes', 'expenseTypes', 'expenseGoals', 'statuses', 'calendars', 'parameters', 'templates', 'countries', 'currencies']\n// 'reports' решили не хранить в LS т.к. там теперь есть аттачи\n// 'workflow' решили не хранить в LS т.к. на него накладывается ограничение по ролям\n\n// Объединенное состояние\nstate = Object.assign({}, state, localStorage.app, sessionStorage.app)\n\n// Функция для сохранения свойств App\nconst storeApp = function (propName) {\n /* const currentLocalState = JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || { app: {} }\n const currentSessionState = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { app: {} }\n if (!currentLocalState.app) currentLocalState.app = {}\n if (!currentSessionState.app) currentSessionState.app = {}\n const newLocalState = currentLocalState\n const newSessionState = currentSessionState\n\n let propNames = []\n if (propName instanceof Array) propNames = propName\n else propNames = [propName]\n\n let localStateModified = false\n let sessionStateModified = false\n propNames.forEach(pname => {\n const prop = {}\n prop[pname] = state[pname]\n if (localStorageObjects.find(i => i === pname)) {\n newLocalState.app = Object.assign(newLocalState.app, prop)\n localStateModified = true\n } else {\n newSessionState.app = Object.assign(newSessionState.app, prop)\n sessionStateModified = true\n }\n })\n if (localStateModified) window.localStorage.setItem(STORAGE_KEY, JSON.stringify(newLocalState))\n if (sessionStateModified) window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(newSessionState)) */\n}\n\n// Функция для подготовки фильтра\nconst filterPrepare = function (filter = null) {\n let filterDocument\n if (store.getters.isCandidate || store.getters.isEmployee || store.getters.isManager) {\n if (!filter || (filter.indexOf('employee_id') < 0 && filter.indexOf('manager_id')) < 0) {\n if (store.getters.isCandidate || store.getters.isEmployee) filterDocument = `employee_id eq '${store.getters.getProfile.employee_id}'`\n if (store.getters.isManager) filterDocument = (filterDocument ? filterDocument + ' or ' : '') + `manager_id eq '${store.getters.getProfile.employee_id}'`\n if (filterDocument) filterDocument = `(${filterDocument})`\n }\n }\n return filterDocument\n}\n\nconst getters = {\n getVacations: (state) => state.vacations,\n getExpenses: (state) => state.expenses,\n getBtrips: (state) => state.btrips,\n getOvertimes: (state) => state.overtimes,\n getMaterialAssistances: (state) => state.material_assistances,\n getDocuments: (state) => {\n return Array.prototype.concat(\n state.vacations\n .filter(i => i.replaced !== '1')\n .map(i => {\n const ObjectId = (i.type === 'schedule' ? 'vacation_schedule' : (i.type === 'correction' && i.vacation_schedule_period ? 'vacation_correction' : 'vacation'))\n return { object_id: ObjectId, id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id }\n }),\n state.btrips.map(i => { return { object_id: 'btrip', id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id } }),\n state.overtimes.map(i => { return { object_id: 'overtime', id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id } }),\n state.absences.map(i => { return { object_id: 'absence', id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id } }),\n state.expenses.map(i => { return { object_id: 'expense', id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id } }),\n state.material_assistances.map(i => { return { object_id: 'material_assistance', id: i.id, employee_id: i.employee_id, start_date: i.start_date, end_date: i.end_date, document_type_id: i.document_type_id, status_id: i.status_id } }),\n state.home_office.map(i => {\n return {\n object_id: 'home_office',\n id: i.id,\n employee_id: i.employee_id,\n start_date: i.start_date,\n end_date: i.end_date,\n document_type_id: i.document_type_id,\n status_id: i.status_id,\n document_type_code: i.document_type_code,\n }\n }),\n state.sickleaves.map(i => {\n return {\n object_id: 'sickleave',\n id: i.id,\n employee_id: i.employee_id,\n start_date: i.start_date,\n end_date: i.end_date,\n document_type_id: i.document_type_id,\n status_id: i.status_id,\n document_type_code: i.document_type_code,\n }\n }),\n state.statements.map(i => {\n return {\n object_id: 'statement',\n id: i.id,\n employee_id: i.employee_id,\n start_date: i.statement_date,\n document_type_id: i.document_type_id,\n status_id: i.status_id,\n document_type_code: i.document_type_code,\n }\n }),\n )\n },\n APP_GET_PROP: state => propName => {\n // Если свойство в свою очередь является вложенным объектом, например \"data.ShowLegDetails\"\n const propNames = propName.split('.')\n const lastName = propNames.pop()\n\n const objData = propNames.reduce(function (o, k) {\n return (o[k] = o[k] || {})\n }, state)\n return objData[lastName] // objData == state.data; lastName == \"ShowLegDetails\"\n },\n APP_GET_AVAILABLE_WORKFLOW: state => payload => {\n return state.workflow.filter((item) =>\n item.object_id === payload.object_id &&\n item.business_role === payload.business_role &&\n item.status_id === payload.status_id &&\n (!('reject' in payload) || item.reject === payload.reject),\n )\n },\n APP_GET_AVAILABLE_SECTION_WORKFLOW: state => payload => {\n return state?.workflow?.filter((item) =>\n item?.object_id?.startsWith(payload?.object_id) &&\n item?.business_role === payload?.business_role &&\n item?.status_id === payload?.status_id &&\n (!('reject' in payload) || item?.reject === payload?.reject),\n )\n },\n // type = 0 (календарные)\n // type = 1 (календарные без учета праздников)\n // type = 2 (рабочие)\n APP_GET_CALENDAR_DAYS: state => payload => {\n const mdate = moment(payload.start_date)\n if (!mdate.isValid()) return false\n const endDate = moment(payload.end_date).format('YYYY-MM-DD')\n const getCalendars = (type, mdate) => {\n return state.calendars.filter(\n (d) =>\n d.type === type &&\n mdate.format('YYYY-MM-DD') >= d.start_date &&\n mdate.format('YYYY-MM-DD') <= d.end_date,\n );\n };\n let days = 0\n let type = payload.type\n if (!type) type = 1\n while (mdate.format('YYYY-MM-DD') <= endDate) {\n let skip = false\n if (type >= 1) {\n const calendars = getCalendars('holiday', mdate)\n if (calendars.length > 0) skip = true\n }\n if (type === 2 && !skip) {\n const weekday = mdate.format('E') // 1..7\n const working = getCalendars('working', mdate)\n if (weekday >= 6 && working.length === 0) skip = true\n const nonWorking = getCalendars('non-working', mdate)\n if (nonWorking.length > 0) skip = true\n }\n if (!skip) days++\n mdate.add(1, 'days')\n }\n return days\n },\n APP_GET_DATEDIFF: state => payload => {\n // payload = { startDate, endDate, dailyInfo = [1, 0, 0, 0, 0, 0, 1] }\n const start = moment(payload.startDate).startOf('days')\n const end = moment(payload.endDate).startOf('days')\n const dailyInfo = payload.dailyInfo || [1, 1, 1, 1, 1, 1, 1]\n let totalDays = 0\n dailyInfo.forEach((info, index) => {\n if (info === 1) {\n let current = start.clone()\n if (current.isoWeekday() <= index) {\n current = current.isoWeekday(index)\n } else {\n current.add(1, 'weeks').isoWeekday(index)\n }\n while (current.isSameOrBefore(end)) {\n current.day(7 + index)\n totalDays += 1\n }\n }\n })\n return totalDays\n },\n APP_GET_UNREAD_MESSAGES: state => payload => {\n return state?.messages?.filter((i) => !i?.read_date)\n },\n APP_GET_VACATION_REST: state => payload => {\n if (!payload.rest_item) return\n const restItem = payload.rest_item\n const daysRest = Number(restItem?.days_rest)\n const startDate = payload?.start_date\n // const endDate = moment(payload?.end_date)\n const hireDate = moment(restItem.employee_start_date)\n const onDate = moment(restItem.on_date)\n\n // Дата сотрудника приведенная к последней дате остатков\n let onDateEmp\n if (hireDate.date() > onDate.date()) {\n onDateEmp = moment([onDate.get('year'), onDate.get('month'), hireDate.get('date')]).add(-1, 'months')\n if (!onDateEmp.isValid()) {\n // Для 31 числа например, возьмем конец месяца\n onDateEmp = moment([onDate.get('year'), onDate.get('month'), 1]).add(-1, 'months').endOf('month')\n }\n } else {\n onDateEmp = moment([onDate.get('year'), onDate.get('month'), hireDate.get('date')]) // тот же месяц\n if (!onDateEmp.isValid()) {\n onDateEmp = moment([onDate.get('year'), onDate.get('month'), 1]).endOf('month')\n }\n }\n // Определим число целых месяцев от ближайшей даты сотрудника\n // let fullMonth = startDate.diff(onDateEmp, 'months') // целое\n // // if (onDate.add(fullMonth, 'months') > startDate) {\n // if (startDate.diff(onDateEmp, 'months') > fullMonth) {\n // fullMonth = fullMonth - 1\n // }\n // // Остаток после расчета целых месяцев\n // if (\n // (startDate.diff(moment(onDateEmp).add(fullMonth, 'months'), 'days') + 2 >= 15) &&\n // endDate?.month() !== 11 // Не считать остаток в декабре\n // ) {\n // fullMonth = fullMonth + 1\n // }\n\n // Положенный отпуск за оставшееся дни\n let restOnDate = 0\n if (restItem?.norma) {\n restOnDate = daysRest + Number(restItem?.norma) / getDayInYear({ isYear: true }) * (getDayInYear({ date: startDate }) + 1)\n } else {\n restOnDate = daysRest\n }\n // Если нужно вернуть только плановые дни (без схоженных)\n if (payload.planned) return Math.floor(restOnDate)\n\n // Вычтем все отпуска, которые сотрудник завел уже после даты остатка (в любом статусе кроме Заменено)\n // Но до даты начала запрашиваемого отпуска\n let daysUsed = state.vacations\n .filter(i => i.employee_id === restItem.employee_id &&\n i.document_type_id === restItem.document_type_id &&\n Number(i?.reject) === 0 &&\n // Будем вычитать отпуска после даты остатка\n i.start_date > (payload.limit_item ? payload.limit_item.on_date : restItem.on_date) &&\n i.start_date <= payload.start_date &&\n i.replaced !== '1',\n ).reduce((sum, i) => { return sum + 1 * i.days }, 0)\n if (!daysUsed) daysUsed = 0\n return Math.floor(restOnDate - daysUsed)\n },\n APP_GET_VACATION_LIMIT: state => payload => {\n const limitItem = payload.limit_item\n // Проверим плановую строчку и исключим взятые отпуска вне графика (они уменьшают лимит)\n let daysUsed = state.vacations\n .filter(i => i.employee_id === limitItem.employee_id &&\n i.document_type_id === limitItem.document_type_id &&\n !i.vacation_schedule_period &&\n i.replaced !== '1' &&\n // будем вычитать отпуска взятые после даты лимита\n i.start_date > limitItem.on_date &&\n // и до окончания планового года (тут не очевидно..)\n i.start_date <= limitItem.period + '-12-31',\n ).reduce((sum, i) => { return sum + 1 * i.days }, 0)\n if (!daysUsed) daysUsed = 0\n // Если установлен параметр будем пересчитывать days_limit на конец года, зная rest_item на сегодня\n const paramData = store.getters.PARAM_GET_PROP('data')\n if (paramData.dynamic_days_limit === '1' && !!payload.rest_item) {\n const restOnYear = store.getters.APP_GET_VACATION_REST({ planned: true, rest_item: payload.rest_item, start_date: limitItem.period + '-12-31' })\n if (restOnYear * 1 > limitItem.norma * 1) {\n limitItem.days_limit = restOnYear\n } else {\n limitItem.days_limit = limitItem.norma\n }\n }\n limitItem.days_limit = limitItem.days_limit - daysUsed\n limitItem.days_unplanned = limitItem.days_limit * 1 - limitItem.days_planned * 1\n\n return limitItem\n },\n APP_GET_OVERTIME_REST: state => payload => {\n if (!payload.rest_item) return\n const restItem = payload.rest_item\n // Вычтем все неотклоненные отгулы, которые сотрудник использовал после даты остатка\n // const documentTypeDO = state.documentTypes.find(i => i.code === 'dayoff_for_overtime')\n let daysUsed = state.absences\n .filter(i => i.employee_id === restItem.employee_id &&\n i.document_type_id === restItem.document_type_id &&\n i.start_date > restItem.on_date &&\n i.status_id !== 'declined',\n ).reduce((sum, i) => { return sum + 1 * i.days }, 0)\n if (!daysUsed) daysUsed = 0\n // вариант с конвертацией часы в дни\n // return ((restItem.days_rest * 8 + restItem.hours_rest * 1 + addItem.days * 8 + addItem.hours * 1 - daysUsed * 8) / 8).toFixed(0)\n return restItem.days_rest * 1 - daysUsed * 1\n },\n APP_GET_STRUCTURE_TREE: state => payload => {\n const {\n rootCurrentUser = false,\n employeeId = '',\n } = payload ?? {}\n\n // Если нужно дерево руководителей, тогда предварительно удалим строки сотрудников, которым никто не подчиняется\n let data = payload?.data ?? state?.subordination?.filter(i => i.type === 'direct')\n if (payload.onlyManager) {\n data = data.filter(a => {\n return !!data.find(b => b.manager_id === a.employee_id)\n })\n }\n let root\n if (payload.employeeId) { // me\n root = data.find((e) => { return e.employee_id === payload.employeeId })\n }\n if (!root) {\n // Найдем директора, у него руководитель он сам\n root = data.find((e) => { return e.employee_id === e.manager_id })\n }\n if (!root) return\n\n // Первые потомки\n const childrens = data.filter(e => e.manager_id === root.employee_id && e.employee_id !== root.employee_id)\n\n // Рекурсивно обойдём строки и сформируем дерево\n // Если полноправный юзер, то всё дерево, иначе до вторых потомков\n const recursiveChildrens = function (items, level) {\n if (!items || items.length === 0) return []\n const resChildrens = []\n level = level + 1\n items.forEach(c => {\n if (!c.employee_id) return\n let resGrandChildrens\n if (store.getters.isPowerUser || level < 2) {\n resGrandChildrens = recursiveChildrens(data.filter(gc => gc.manager_id === c.employee_id), level)\n }\n resChildrens.push({\n id: c.employee_id,\n name: c.employee_name,\n name_eng: c.employee_name_eng,\n photo_name: c.photo_name,\n children: resGrandChildrens,\n extend: false,\n hide: false,\n position: c?.position ?? '',\n position_eng: c?.position_eng ?? '',\n locked: c.disabled ?? false,\n })\n })\n return resChildrens\n }\n const resChildrens = recursiveChildrens(childrens, 0)\n\n const resMe = {\n id: root.employee_id,\n name: root.employee_name, // me\n name_eng: root.employee_name_eng,\n photo_name: root.photo_name,\n children: resChildrens,\n hide: false,\n position: root?.position ?? '',\n position_eng: root?.position_eng ?? '',\n locked: root.disabled ?? false,\n }\n\n const resStructure = []\n\n // Строить от текущего пользователя\n if (employeeId?.length && rootCurrentUser) {\n resStructure.push({\n ...resMe,\n position: root?.position ?? '',\n position_eng: root?.position_eng ?? '',\n })\n } else if (root.manager_id !== root.employee_id) { // Если это не генеральный\n resStructure.push(\n {\n id: root.manager_id,\n name: root.manager_name, // my manager\n name_eng: root.manager_name_eng,\n position: root?.position ?? '',\n position_eng: root?.position_eng ?? '',\n isManager: true,\n photo_name: '',\n children: [resMe],\n locked: root.disabled ?? false,\n },\n )\n } else {\n // Добавим к генеральному директору сотрудников, которые не прикреплены\n const unattachedEmployees = data.filter(e => !e.manager_id)\n if (unattachedEmployees.length > 0) {\n const resUnassignedChildren = []\n unattachedEmployees.forEach(i => {\n resUnassignedChildren.push(\n {\n id: i.employee_id,\n name: i.employee_name,\n name_eng: i.employee_name_eng,\n children: [],\n position: i?.position ?? '',\n position_eng: i?.position_eng ?? '',\n locked: i.disabled ?? false,\n },\n )\n })\n const resUnassignedEmployees = {\n id: 'UnassignedEmployees',\n name: 'Нераспределенные сотрудники',\n name_eng: 'Unassigned Employees',\n children: resUnassignedChildren,\n hide: false,\n }\n resMe.children.push(resUnassignedEmployees)\n }\n resStructure.push(resMe)\n }\n return resStructure\n },\n APP_GET_IMAGE_URL: (state) => state?.imageUrl,\n}\n\nconst mutations = {\n APP_SET_PROP: (state, payload) => {\n const keys = payload.propName.split('.')\n const last = keys.pop()\n\n const objData = keys.reduce(function (o, k) {\n return (o[k] = o[k] || {})\n }, state)\n\n objData[last] = payload.data\n\n if (payload.save) {\n const propName = keys[0] || last\n storeApp(propName)\n }\n },\n APP_SET_LAST_INCOMING: () => {\n state.lastIncomingDate = new Date()\n storeApp('lastIncomingDate')\n },\n APP_SET_MESSAGES: (state, payload) => {\n if (payload) {\n state.messages = payload\n }\n storeApp(['messages'])\n },\n APP_SET_NEW_MESSAGES: (state, payload) => {\n // Оставим в сторе сообщения не старше 30 дней или непрочтенные\n // const oldDate = moment().add(-30, 'days').format('YYYY-MM-DD HH:mm:ss')\n // let messages = state.messages.filter((i) => i.create_date > oldDate || !i.read_date)\n // не будем чистить месседжи\n let messages = state.messages\n messages = messages.sort((a, b) => a.create_date < b.create_date ? -1 : 1)\n let hasNew = false\n payload.forEach(i => {\n const existsMessage = messages.find((m) => m.id === i.id)\n if (existsMessage) {\n Object.assign(existsMessage, i)\n } else {\n // i.unread = true\n if (!i.read_date) hasNew = true\n messages.push(i)\n }\n })\n if (hasNew) store.commit('MSG_SET_ITEM', { text: i18n.t('New message received') })\n state.messages = messages\n storeApp(['messages'])\n },\n APP_SET_DATA: (state, payload) => {\n state[payload.propName] = payload.data\n storeApp(payload.propName)\n },\n APP_SET_CANDIDATES: (state, payload) => {\n state.candidates = payload\n storeApp('candidates')\n },\n APP_SET_EMPLOYEES: (state, payload) => {\n state.employees = payload\n storeApp('employees')\n },\n APP_SET_USERS: (state, payload) => {\n state.users = payload\n storeApp('users')\n },\n APP_SET_ORGANIZATIONS: (state, payload) => {\n state.organizations = payload\n storeApp('organizations')\n },\n APP_SET_GRANTS: (state, payload) => {\n state.grants = payload\n storeApp('grants')\n },\n APP_SET_GRANTED: (state, payload) => {\n state.granted = payload\n },\n APP_SET_PARAMETERS: (state, payload) => {\n state.parameters = payload\n storeApp('parameters')\n },\n APP_SET_CALENDARS: (state, payload) => {\n state.calendars = payload\n storeApp('calendars')\n },\n APP_SET_STATUSES: (state, payload) => {\n state.statuses = payload\n storeApp('statuses')\n },\n APP_SET_DOCUMENT_TYPES: (state, payload) => {\n state.documentTypes = payload\n storeApp('documentTypes')\n },\n APP_SET_REQUEST_TYPES: (state, payload) => {\n state.requestTypes = payload\n storeApp('requestTypes')\n },\n APP_SET_WORKFLOW: (state, payload) => {\n state.workflow = payload\n storeApp('workflow')\n },\n APP_SET_REPORTS: (state, payload) => {\n state.reports = payload\n storeApp('reports')\n },\n APP_SET_TEMPLATES: (state, payload) => {\n state.templates = payload\n storeApp('templates')\n },\n APP_SET_EXPENSE_TYPES: (state, payload) => {\n state.expenseTypes = payload\n storeApp('expenseTypes')\n },\n APP_SET_SUBORDINATION: (state, payload) => {\n state.subordination = payload\n storeApp('subordination')\n },\n APP_SET_SUBORDINATION_ALL: (state, payload) => {\n state.subordinationAll = payload\n },\n APP_SET_INCOMPLETE: (state, payload) => {\n state.incomplete = payload\n storeApp('incomplete')\n store.commit('APP_SET_LAST_INCOMING')\n },\n APP_SET_VACATIONS: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.vacations = payload.data\n // Временно заблокируем сохранение в сторадж большого размера данных\n if (state.vacations.length < 1000) {\n storeApp('vacations')\n }\n },\n APP_SET_VACATION_LIMITS: (state, payload) => {\n state.vacationLimits = payload\n storeApp('vacationLimits')\n },\n APP_SET_EXPENSES: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.expenses = payload.data\n storeApp('expenses')\n },\n APP_SET_BTRIPS: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.btrips = payload.data\n storeApp('btrips')\n },\n APP_SET_MATERIAL_ASSISTANCES: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.material_assistances = payload.data\n storeApp('material_assistances')\n },\n APP_SET_RECRUITMENTS: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.recruitments = payload.data\n storeApp('recruitments')\n },\n APP_SET_ABSENCES: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.absences = payload.data\n storeApp('absences')\n },\n APP_SET_SICKLEAVES: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.sickleaves = payload.data\n storeApp('sickleaves')\n },\n APP_SET_STATEMENTS: (state, payload) => {\n state.statements = payload\n },\n APP_SET_PD_AGREEMENT: (state, payload) => {\n state.pd_agreement = payload\n },\n APP_SET_HOMEOFFICE: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.home_office = payload.data\n storeApp('home_office')\n },\n APP_SET_OVERTIMES: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.overtimes = payload.data\n storeApp('overtimes')\n },\n APP_SET_REQUESTS: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.requests = payload.data\n storeApp('requests')\n },\n // Добавить реквест в список\n APP_SET_REQUEST: (state, payload) => {\n const { data = {} } = payload;\n\n if (!Object.keys(data).length) {\n return;\n }\n\n const existDocument = state?.requests?.find((i) => i.id === data?.id);\n\n if (existDocument) {\n Object.assign(existDocument, data);\n return;\n }\n\n state.requests.push(data);\n },\n APP_SET_REQUESTS_SIGNING: (state, payload) => {\n state.requestsSigning = payload\n },\n APP_SET_TIMESHEETS: (state, payload) => {\n const profile = store.getters.getProfile\n const grant = store.getters.getGrant\n payload.data.forEach(i => {\n i.own = (i.employee_id === profile.employee_id)\n i.sub = (i.manager_id === (grant ? grant.employee_id : profile.employee_id))\n })\n state.timesheets = payload.data\n storeApp('timesheets')\n },\n APP_SET_SCREENSETS: (state, payload) => {\n if (payload && payload.length > 0) {\n payload.forEach(i => {\n i.visible = (i.visible === '1')\n })\n }\n state.screensets = payload\n storeApp('screensets')\n },\n APP_SET_STRUCTURE_TREE: (state, payload) => {\n if (!payload || !payload.items || payload.items.length === 0) return\n // Обойдём дерево и обновим в таблице subordination поля manager_id, manager_name, manager_name_eng\n const item = payload.items[0]\n\n const recursiveChildren = function (items) {\n if (!items || items.length === 0) return []\n items.forEach(c => {\n console.log(c.name)\n recursiveChildren(c.children)\n })\n }\n recursiveChildren(item.children)\n },\n APP_ADD_DOCUMENT: (state, payload) => {\n const documents = state[payload.document]\n const itemId = payload.itemId || 'id'\n const existItem = documents.find(i => i[itemId] === payload.item[itemId])\n if (!existItem) {\n documents.push(payload.item)\n storeApp(payload.document)\n }\n },\n APP_EDIT_DOCUMENT: (state, payload) => {\n const documents = state[payload.document] || state[`${payload.document}s`];\n if (!documents) {\n return\n }\n const itemId = payload.itemId || 'id'\n const existItem = documents.find(i => i[itemId] === payload.item[itemId])\n if (existItem) {\n Object.assign(existItem, payload.item)\n storeApp(payload.document)\n }\n },\n APP_DEL_DOCUMENT: (state, payload) => {\n const documents = state[payload.document]\n const itemId = payload.itemId || 'id'\n const itemIndex = documents?.findIndex(i => i[itemId] === payload.item[itemId])\n if (itemIndex > -1) {\n documents.splice(itemIndex, 1)\n storeApp(payload.document)\n }\n },\n APP_SET_EMPTY: (state, payload) => {\n const paramData = store.getters.PARAM_GET_PROP('data')\n const clearDataByLogout = (payload && payload.scope) || paramData.clear_data_by_logout || 'data'\n\n // Параметры очищаем всегда\n state.parameters = []\n\n if (clearDataByLogout !== 'none') { // clearDataByLogout === 'data' || clearDataByLogout === 'full'\n Object.assign(state, {\n subordination: [],\n incomplete: [],\n vacations: [],\n vacationLimits: [],\n expenses: [],\n btrips: [],\n absences: [],\n sickleaves: [],\n home_office: [],\n requests: [],\n overtimes: [],\n employees: [],\n candidates: [],\n recruitments: [],\n timesheets: [],\n messages: [],\n layouts: {},\n screensets: [],\n lastIncomingDate: null,\n reports: [],\n workflow: [], // workflow зависит от ролей, поэтому его лучше очищать с признаком data\n workflowSection: [],\n })\n // Удаляем все app параметры из sessionStorage\n const sessionStorage = JSON.parse(window.sessionStorage.getItem(STORAGE_KEY)) || { app: {} }\n sessionStorage.app = {}\n window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(sessionStorage))\n }\n\n if (clearDataByLogout === 'full') {\n Object.assign(state, {\n organizations: [],\n requestTypes: [],\n documentTypes: [],\n expenseTypes: [],\n expenseGoals: [],\n statuses: [],\n calendars: [],\n templates: [],\n currencies: [],\n countries: [],\n })\n // Сохраним пустые значения в localStorage кроме некоторых\n // const localStorageExcept = ['messages', 'layouts', 'lastIncomingDate']\n // const localStorageExcept = []\n // storeApp(localStorageObjects.filter(i => localStorageExcept.indexOf(i) < 0))\n storeApp(localStorageObjects)\n }\n },\n APP_SET_OBJECTS_DATA: (state, payload) => {\n state.objectsData = payload\n },\n APP_SET_VACATION_CORRECTION: (state, payload) => {\n state.vacationCorrection = payload\n },\n APP_SET_EMPLOYEE_REST: (state, payload) => {\n state.employeeRest = payload\n },\n APP_SET_IMAGE_URL: (state, payload) => {\n state.imageUrl = payload ?? null\n },\n}\n\nconst actions = {\n APP_PULL_MASTERDATA: async (context) => {\n if (!context.getters.isAuthenticated) {\n return\n }\n const profile = context.getters.getProfile\n const isRoleGF = profile.roles.includes('gf_manager')\n // Подготовим Batch запрос к API\n const batchParams = []\n let startYear = moment().startOf('year')\n // let prevYear = startYear.subtract(1, 'years')\n startYear = startYear.format('YYYY-MM-DD')\n // prevYear = prevYear.format('YYYY-MM-DD')\n\n // const lastMonth = moment().add(-3, 'months').format('YYYY-MM-DD')\n\n // const paramData = context.getters.PARAM_GET_PROP('data')\n // if (!paramData || Object.getOwnPropertyNames(paramData).length <= 1) { // Пустой vuex объект может содержать одно значение '__ob__: Observer'\n batchParams.push({ batchId: 1, method: 'view.get', object: 'parameters', filter: `disabled eq 0 and (organization_id is null or organization_id eq '${profile.organization_id}')`, rowsPerPage: 'all' })\n // }\n const filterDocument = filterPrepare()\n const roles = profile.roles.join(';')\n let filterObject\n // Для кандидатов\n if (context.getters.isCandidate) {\n filterObject = \"object_id = 'recruitment'\"\n const filter = (filterDocument ? filterDocument + ' and ' : '') + `start_date ge '${startYear}'`\n if (!state.recruitments || state.recruitments.length === 0) {\n batchParams.push({ batchId: 16, method: 'view.get', object: 'recruitment', rowsPerPage: 'all', filter })\n }\n } else {\n // Не для кандидатов\n if (!state.calendars || state.calendars.length === 0) {\n batchParams.push({ batchId: 3, method: 'view.get', object: 'calendar', select: 'start_date, end_date, type', rowsPerPage: 'all' })\n }\n if (!state.requestTypes || state.requestTypes.length === 0) {\n batchParams.push({ batchId: 5, method: 'view.get', object: 'request_type', rowsPerPage: 'all', filter: 'disabled eq 0', orderBy: 'sort' })\n }\n if (!state.expenseTypes || state.expenseTypes.length === 0) {\n batchParams.push({ batchId: 6, method: 'view.get', object: 'expense_type', rowsPerPage: 'all', filter: 'disabled eq 0' })\n }\n if (!state.expenseGoals || state.expenseGoals.length === 0) {\n batchParams.push({ batchId: 24, method: 'view.get', object: 'expense_goal', rowsPerPage: 'all', filter: 'disabled eq 0' })\n }\n if (!state.countries || state.countries.length === 0) {\n batchParams.push({ batchId: 21, method: 'view.get', object: 'country', rowsPerPage: 'all', filter: 'disabled eq 0' })\n }\n if (!state.currencies || state.currencies.length === 0) {\n batchParams.push({ batchId: 22, method: 'view.get', object: 'currency', rowsPerPage: 'all', filter: 'disabled eq 0' })\n }\n }\n\n // Для любых ролей\n if (!state.screensets || state.screensets.length === 0) {\n batchParams.push({ batchId: 19, method: 'view.get', object: 'screenset', rowsPerPage: 'all', orderBy: 'sort' })\n }\n if (!state.statuses || state.statuses.length === 0) {\n batchParams.push({ batchId: 2, method: 'view.get', object: 'status', rowsPerPage: 'all' })\n }\n if (!state.documentTypes || state.documentTypes.length === 0) {\n const filter = (filterObject ? filterObject + ' and ' : '') + `disabled eq 0 and (organization_id is null or organization_id eq '${profile.organization_id}')`\n batchParams.push({ batchId: 4, method: 'view.get', object: 'document_type', rowsPerPage: 'all', filter })\n }\n if (!state.workflow || state.workflow.length === 0) {\n let filter = (filterObject ? filterObject + ' and ' : '') + `disabled eq 0 and (organization_id is null or organization_id eq '${profile.organization_id}')`\n if (!context.getters.isAdmin) {\n filter = filter + ` and '${roles}' like '%'+business_role+'%'`\n }\n batchParams.push({ batchId: 7, method: 'view.get', object: 'workflow', rowsPerPage: 'all', filter })\n }\n /* if (!state.reports || state.reports.length === 0) {\n const filter = (filterObject ? filterObject + ' and ' : '') + 'disabled eq 0'\n batchParams.push({ batchId: 15, method: 'view.get', object: 'report', rowsPerPage: 'all', filter })\n } */\n if (!state.incomplete || state.incomplete.length === 0) {\n const filter = '' // (filterObject || '')\n batchParams.push({ batchId: 9, method: 'view.get', object: 'incomplete', rowsPerPage: 'all', filter })\n }\n // Подготовим батч для message\n // Решили не делать загрузку messages вместе с начальной загрузкой\n // Убираем отсюда, мессаджи загрузятся вместе с APP_PULL_INCOMING через 1 минуту\n /*\n let filterDate\n let filter\n if (state.messages.length > 0) {\n const lastMessage = [...state.messages].pop()\n filterDate = lastMessage.create_date\n } else {\n filterDate = moment().add(-30, 'days').format('YYYY-MM-DD HH:mm:ss') // первый раз запросим за 30 дней назад\n filter = 'read_date is null' // и все непрочтенные независимо от даты\n }\n filter = (filter ? filter + ' or ' : '') + `create_date gt '${filterDate}'`\n console.log(filter)\n batchParams.push(\n { batchId: 18, method: 'view.get', object: 'messages', filter, orderBy: 'create_date', rowsPerPage: 'all' }\n )\n */\n\n // Для сотрудников и руководителей\n if ((context.getters.isEmployee || context.getters.isManager) && !isRoleGF) {\n const filterDocument = filterPrepare()\n if (!state.subordination || state.subordination.length === 0) {\n batchParams.push({ batchId: 8, method: 'view.get', object: 'subordination', filter: filterDocument, rowsPerPage: 'all', orderBy: 'employee_name' })\n }\n /* if (!state.vacations || state.vacations.length === 0) {\n batchParams.push({ batchId: 10, method: 'view.get', object: 'vacation', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${prevYear}'`, orderBy: 'start_date' })\n }\n if (!state.expenses || state.expenses.length === 0) {\n batchParams.push({ batchId: 11, method: 'view.get', object: 'expense', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${lastMonth}'`, orderBy: 'start_date' })\n }\n if (!state.btrips || state.btrips.length === 0) {\n batchParams.push({ batchId: 12, method: 'view.get', object: 'btrip', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.absences || state.absences.length === 0) {\n batchParams.push({ batchId: 13, method: 'view.get', object: 'absence', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.home_office || state.home_office.length === 0) {\n batchParams.push({ batchId: 25, method: 'view.get', object: 'home_office', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.overtimes || state.overtimes.length === 0) {\n batchParams.push({ batchId: 14, method: 'view.get', object: 'overtime', rowsPerPage: 'all', filter: `${filterDocument} and start_date ge '${startYear}'`, orderBy: 'start_date' })\n } */\n\n // Решили убрать начальную загрузку документов по отпускам, иначе долго\n // Они будут загружены при первом входе в UVacations\n /*\n if (!state.requests || state.requests.length === 0) {\n batchParams.push({ batchId: 20, method: 'view.get', object: 'vacation_limit_usage', filter: filterDocument, rowsPerPage: 'all' })\n }\n */\n }\n\n // роль gf_manager загружает все данные без фильтра\n if (isRoleGF) {\n if (!state.subordination || state.subordination.length === 0) {\n batchParams.push({ batchId: 8, method: 'view.get', object: 'subordination', rowsPerPage: 'all', orderBy: 'employee_name' })\n }\n /* if (!state.vacations || state.vacations.length === 0) {\n batchParams.push({ batchId: 10, method: 'view.get', object: 'vacation', rowsPerPage: 'all', filter: `start_date ge '${prevYear}'`, orderBy: 'start_date' })\n }\n if (!state.expenses || state.expenses.length === 0) {\n batchParams.push({ batchId: 11, method: 'view.get', object: 'expense', rowsPerPage: 'all', filter: `start_date ge '${lastMonth}'`, orderBy: 'start_date' })\n }\n if (!state.btrips || state.btrips.length === 0) {\n batchParams.push({ batchId: 12, method: 'view.get', object: 'btrip', rowsPerPage: 'all', filter: `start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.absences || state.absences.length === 0) {\n batchParams.push({ batchId: 13, method: 'view.get', object: 'absence', rowsPerPage: 'all', filter: `start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.home_office || state.home_office.length === 0) {\n batchParams.push({ batchId: 25, method: 'view.get', object: 'home_office', rowsPerPage: 'all', filter: `start_date ge '${startYear}'`, orderBy: 'start_date' })\n }\n if (!state.overtimes || state.overtimes.length === 0) {\n batchParams.push({ batchId: 14, method: 'view.get', object: 'overtime', rowsPerPage: 'all', filter: `start_date ge '${startYear}'`, orderBy: 'start_date' })\n } */\n }\n\n // Для сотрудников или hr\n if (context.getters.isEmployee || context.getters.isHr) {\n if (!state.requests || state.requests.length === 0) {\n // let filter\n // if (context.getters.isHr) filter = \"process eq 'manual'\"\n // if (context.getters.isEmployee) filter = `employee_id eq '${context.getters.getProfile.employee_id}'`\n // Тут вопрос, что показывать кадровику, который еще и employee\n // batchParams.push({ batchId: 17, method: 'view.get', object: 'request', rowsPerPage: 'all', filter: `${filter} and date ge '${startYear}'`, orderBy: 'date' })\n }\n }\n\n // Для полноправных\n if (context.getters.isAuthorizedRoles('admin,hr,recruiter,accountant')) {\n if (!state.organizations || state.organizations.length === 0) {\n batchParams.push({ batchId: 23, method: 'view.get', object: 'organization', rowsPerPage: 'all' })\n }\n }\n\n if (batchParams.length === 0) return\n const getBatch = await BatchService.post(batchParams)\n if (getBatch[1]) {\n context.commit('PARAM_SET_DATA', { data: getBatch[1].data })\n context.commit('APP_SET_PROP', { propName: 'paramLoaded', data: true })\n }\n if (getBatch[2]) context.commit('APP_SET_STATUSES', getBatch[2].data)\n if (getBatch[3]) context.commit('APP_SET_CALENDARS', getBatch[3].data)\n if (getBatch[4]) context.commit('APP_SET_DOCUMENT_TYPES', getBatch[4].data)\n if (getBatch[5]) context.commit('APP_SET_REQUEST_TYPES', getBatch[5].data)\n if (getBatch[6]) context.commit('APP_SET_EXPENSE_TYPES', getBatch[6].data)\n if (getBatch[7]) context.commit('APP_SET_WORKFLOW', getBatch[7].data)\n if (getBatch[8]) context.commit('APP_SET_SUBORDINATION', getBatch[8].data)\n if (getBatch[9]) context.commit('APP_SET_INCOMPLETE', getBatch[9].data)\n if (getBatch[15]) context.commit('APP_SET_REPORTS', getBatch[15].data)\n if (getBatch[10]) context.commit('APP_SET_VACATIONS', { data: getBatch[10].data })\n if (getBatch[11]) context.commit('APP_SET_EXPENSES', { data: getBatch[11].data })\n if (getBatch[12]) context.commit('APP_SET_BTRIPS', { data: getBatch[12].data })\n if (getBatch[13]) context.commit('APP_SET_ABSENCES', { data: getBatch[13].data })\n if (getBatch[14]) context.commit('APP_SET_OVERTIMES', { data: getBatch[14].data })\n if (getBatch[16]) context.commit('APP_SET_RECRUITMENTS', { data: getBatch[16].data })\n if (getBatch[17]) context.commit('APP_SET_REQUESTS', { data: getBatch[17].data })\n if (getBatch[18]) context.commit('APP_SET_NEW_MESSAGES', getBatch[18].data)\n if (getBatch[19]) context.commit('APP_SET_SCREENSETS', getBatch[19].data)\n if (getBatch[20]) context.commit('APP_SET_VACATION_LIMITS', getBatch[20].data)\n if (getBatch[21]) context.commit('APP_SET_DATA', { propName: 'countries', data: getBatch[21].data })\n if (getBatch[22]) context.commit('APP_SET_DATA', { propName: 'currencies', data: getBatch[22].data })\n if (getBatch[23]) context.commit('APP_SET_ORGANIZATIONS', getBatch[23].data)\n if (getBatch[24]) context.commit('APP_SET_DATA', { propName: 'expenseGoals', data: getBatch[24].data })\n if (getBatch[25]) context.commit('APP_SET_HOMEOFFICE', { data: getBatch[25].data })\n // return getBatch // Лучше этим результатом не пользоваться, та необработанные данные\n },\n APP_PULL_INCOMING: async (context) => {\n if (!context?.getters?.isAuthenticated) {\n return\n }\n // Будем запрашивать не чаще чем раз в минуту\n const today = moment().add(-1, 'minutes').toDate()\n if (state?.lastIncomingDate && state?.lastIncomingDate > today) {\n return\n }\n // context.dispatch('APP_PULL_MESSAGES')\n // context.dispatch('APP_PULL_INCOMPLETE', { reload: true })\n const batchParams = []\n // let filterDate\n // // Подготовим батч для message (на непрочитнные пофигу)\n // if (state.messages.length > 0) {\n // const lastMessage = [...state.messages].pop()\n // filterDate = lastMessage.create_date\n // } else {\n // filterDate = moment().add(-90, 'days').format('YYYY-MM-DD HH:mm:ss') // первый раз запросим за 30 дней назад\n // }\n const profile = store?.getters?.getProfile\n const filterDate = moment().add(-paramHelpers?.paramEmailDaysDelt(), 'days').format('YYYY-MM-DD HH:mm:ss')\n const recipient = context?.getters?.isHr ? 'hr' : profile?.employee_id\n\n const filter = `read_date is null and recipient_id in ('${recipient}','${profile?.id}') and create_date gt '${filterDate}'`\n\n batchParams.push({\n batchId: 1,\n method: 'view.get',\n object: 'messages',\n filter,\n orderBy: 'create_date',\n rowsPerPage: 'all',\n })\n // Подготовим батч для incomplete\n batchParams.push(\n { batchId: 2, method: 'view.get', object: 'incomplete' },\n )\n try {\n const getBatch = await BatchService.post(batchParams)\n if (getBatch[1]) {\n context.commit('APP_SET_NEW_MESSAGES', getBatch[1].data)\n }\n if (getBatch[2]) {\n context.commit('APP_SET_INCOMPLETE', getBatch[2].data)\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка в APP_PULL_INCOMING',\n debug: true,\n });\n }\n },\n\n APP_PULL_MESSAGES: async (context, payload) => {\n // тут мы всегда грузим по регистратору\n if ((!payload || !payload?.reload) && state?.messages?.length) {\n return state?.messages\n }\n\n let filter = payload?.filter ?? ''\n\n if (payload?.registratorID) {\n if (filter) {\n filter += ' and '\n }\n filter += `registrator_id eq '${payload?.registratorID}'`\n }\n if (!filter) {\n const profile = store?.getters?.getProfile\n const filterDate = moment().add(-paramHelpers?.paramEmailDaysDelt(), 'days').format('YYYY-MM-DD HH:mm:ss')\n const recipient = context?.getters?.isHr ? 'hr' : profile?.employee_id\n\n filter = `read_date is null and recipient_id in ('${recipient}','${profile?.id}') and create_date gt '${filterDate}'`\n }\n\n try {\n const getMessages = await ViewService.get({\n object: 'messages',\n filter,\n orderBy: 'create_date',\n rowsPerPage: 'all',\n }, true)\n\n if (getMessages) {\n context.commit('APP_SET_NEW_MESSAGES', getMessages?.data)\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка в APP_PULL_MESSAGES',\n debug: true,\n });\n }\n return state?.messages\n },\n\n APP_PULL_PARAMETERS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.parameters.length > 0) {\n return state.parameters\n }\n const getParameters = await ViewService.get({ object: 'parameters', rowsPerPage: 'all' }, true)\n if (getParameters && getParameters.data) {\n context.commit('APP_SET_PARAMETERS', getParameters.data)\n context.commit('PARAM_SET_DATA', { data: getParameters.data })\n context.commit('APP_SET_PROP', { propName: 'paramLoaded', data: true })\n return getParameters.data\n }\n },\n APP_PULL_STATUSES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.statuses.length > 0) {\n return state.statuses\n }\n const getStatuses = await ViewService.get({ object: 'status', rowsPerPage: 'all' }, true)\n if (getStatuses) context.commit('APP_SET_STATUSES', getStatuses.data)\n return state.statuses\n },\n APP_PULL_SCREENSETS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.screensets.length > 0) {\n return state.screensets\n }\n const getResult = await ViewService.get({ object: 'screenset', rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_SCREENSETS', getResult.data)\n return state.screensets\n },\n APP_PULL_DOCUMENT_TYPES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.documentTypes.length > 0) {\n return state.documentTypes\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getDocuments = await ViewService.get({ object: 'document_type', rowsPerPage: 'all', filter }, true)\n if (getDocuments) context.commit('APP_SET_DOCUMENT_TYPES', getDocuments.data)\n return state.documentTypes\n },\n APP_PULL_REQUEST_TYPES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.requestTypes.length > 0) {\n return state.requestTypes\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getDocuments = await ViewService.get({ object: 'request_type', rowsPerPage: 'all', filter, orderBy: 'sort' }, true)\n if (getDocuments) context.commit('APP_SET_REQUEST_TYPES', getDocuments.data)\n return state.requestTypes\n },\n APP_PULL_EXPENSE_TYPES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.expenseTypes.length > 0) {\n return state.expenseTypes\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getResult = await ViewService.get({ object: 'expense_type', rowsPerPage: 'all', filter }, true)\n if (getResult) context.commit('APP_SET_EXPENSE_TYPES', getResult.data)\n return state.expenseTypes\n },\n APP_PULL_EXPENSE_GOALS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.expenseGoals.length > 0) {\n return state.expenseGoals\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getResult = await ViewService.get({ object: 'expense_goal', rowsPerPage: 'all', filter }, true)\n if (getResult) context.commit('APP_SET_DATA', { propName: 'expenseGoals', data: getResult.data })\n return state.expenseGoals\n },\n APP_PULL_WORKFLOW: async (context, payload) => {\n if ((!payload || !payload.reload) && state.workflow.length > 0) {\n return state.workflow\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getWorkflow = await ViewService.get({ object: 'workflow', rowsPerPage: 'all', filter }, true)\n if (getWorkflow) context.commit('APP_SET_WORKFLOW', getWorkflow.data);\n return state.workflow\n },\n APP_PULL_REPORTS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.reports.length > 0) {\n return state.reports\n }\n let filter\n if (!store.getters.isPowerUser) filter = 'disabled eq 0'\n const getReports = await ViewService.get({ object: 'report', rowsPerPage: 'all', filter }, true)\n if (getReports) context.commit('APP_SET_REPORTS', getReports.data)\n return state.reports\n },\n APP_PULL_TEMPLATES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.templates.length > 0) {\n return state.templates\n }\n const getTemplates = await ViewService.get({ object: 'templates', rowsPerPage: 'all' }, true)\n if (getTemplates) context.commit('APP_SET_TEMPLATES', getTemplates.data)\n return state.templates\n },\n APP_PULL_INCOMPLETE: (context, payload) => {\n if ((!payload || !payload.reload) && state.incomplete.length > 0) {\n return state.incomplete\n }\n ViewService.get({ object: 'incomplete' }, true).then(response => {\n context.commit('APP_SET_INCOMPLETE', response.data)\n return state.incomplete\n })\n },\n APP_PULL_SUBORDINATION: async (context, payload) => {\n let select\n select = ''\n if (!payload || !payload.reload) {\n if ((!store.getters.isEmployee || state.subordination.length > 0) && (!store.getters.isManager || state.subordination.length > 1) && (!store.getters.isPowerUser || state.subordination.length > 10)) {\n return state.subordination\n }\n }\n if (payload && payload.select) select = payload.select\n let filter\n if (payload && payload.filter) filter = payload.filter\n let filterDocument\n // if (!store.getters.isPowerUser && (store.getters.isEmployee || store.getters.isManager)) {\n // if (!filter || (filter.indexOf('employee_id') < 0 && filter.indexOf('manager_id')) < 0) {\n // if (store.getters.isEmployee) filterDocument = `employee_id eq '${store.getters.getProfile.employee_id}'`\n // if (store.getters.isManager) filterDocument = (filterDocument ? filterDocument + ' or ' : '') + `manager_id eq '${store.getters.getProfile.employee_id}'`\n // if (filterDocument) filterDocument = `(${filterDocument})`\n // }\n // }\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'subordination', select, filter, rowsPerPage: 'all', orderBy: 'employee_name' }, true)\n if (getResult) context.commit('APP_SET_SUBORDINATION', getResult.data)\n return state.subordination\n },\n APP_PULL_SUBORDINATION_ALL: async (context) => {\n if (state.subordinationAll.length) {\n return state.subordinationAll;\n }\n\n const getResult = await ViewService.get({ object: 'subordination', rowsPerPage: 'all', orderBy: 'employee_name' }, true)\n\n if (getResult) {\n context.commit('APP_SET_SUBORDINATION_ALL', getResult.data)\n }\n },\n APP_PULL_VACATIONS: async (context, payload) => {\n const { id, reload } = payload\n const isExistDocument = documentHelpers.isDocumentInList(state?.vacations, id)\n\n const getData = async () => {\n let filter = payload && payload?.filter ? payload?.filter : ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n if (payload?.isGF) {\n filter = ''\n }\n\n const paramData = context.getters.PARAM_GET_PROP('data')\n if (store.getters.isPowerUser && paramData.vacation_powerusers_pagination === '1') {\n if (filter.indexOf('employee_id') < 0 && filter.indexOf('manager_id') < 0) {\n filter = '1 eq 0'\n }\n }\n try {\n const getResult = await ViewService.get({\n object: 'vacation',\n filter,\n rowsPerPage: 'all',\n },\n true,\n )\n if (getResult) context.commit('APP_SET_VACATIONS', { data: getResult?.data })\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка при запросе APP_PULL_VACATIONS',\n debug: true,\n })\n }\n }\n\n if ((id && !isExistDocument) || reload) {\n await getData()\n return state?.vacations\n }\n\n if (state?.vacations?.length) return state?.vacations\n\n await getData()\n return state?.vacations\n },\n APP_PULL_VACATION_LIMITS: async (context, payload) => {\n let filter = payload && payload.filter ? payload.filter : ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'vacation_limit_usage', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_VACATION_LIMITS', getResult.data)\n return state.vacationLimits\n },\n APP_PULL_VACATION_CORRECTION: async ({ commit }, payload) => {\n const filter = payload?.filter || ''\n try {\n const { data } = await ViewService.get({\n object: 'vacation_corrected',\n filter,\n rowsPerPage: 'all',\n },\n true,\n )\n if (data) {\n commit('APP_SET_VACATION_CORRECTION', data);\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания vacation_corrected',\n debug: true,\n });\n }\n },\n APP_PULL_EMPLOYEE_REST: async ({ commit }, payload) => {\n if ((!payload || !payload?.reload) && state?.employeeRest?.length) {\n return state?.employeeRest\n }\n\n let filter = payload?.filter ?? ''\n const objectId = payload?.objectId ?? ''\n\n if (objectId) {\n if (filter) filter += ' and '\n filter += `object_id eq '${objectId}'`\n }\n\n try {\n const { data } = await ViewService.get({\n object: 'employee_rest',\n object_id: objectId,\n filter,\n }, true)\n\n if (data) {\n data.map(i => (i.days_rest = Number(i?.days_rest)))\n commit('APP_SET_EMPLOYEE_REST', data);\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания employee_rest',\n debug: true,\n });\n }\n },\n APP_PULL_EXPENSES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.expenses.length > 0) {\n return state.expenses\n }\n let filter = payload.filter || ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'expense', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_EXPENSES', { data: getResult.data })\n return state.expenses\n },\n APP_PULL_BTRIPS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.btrips.length > 0) {\n return state.btrips\n }\n let filter = payload.filter || ''\n if (context.getters.isEmployee || context.getters.isManager) {\n if (!filter) filter = ''\n if (filter.indexOf('employee_id') < 0 && filter.indexOf('manager_id') < 0) {\n let filterDocument = ''\n if (context.getters.isEmployee) filterDocument = `employee_id eq '${context.getters.getProfile.employee_id}'`\n if (context.getters.isManager) filterDocument = filterDocument + (filterDocument ? ' or ' : '') + `manager_id eq '${context.getters.getProfile.employee_id}'`\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n }\n }\n\n if (payload?.isGF || payload?.reviewer) {\n filter = ''\n }\n\n const getResult = await ViewService.get({ object: 'btrip', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_BTRIPS', { data: getResult.data })\n return state.btrips\n },\n APP_PULL_RECRUITMENTS: async (context, payload) => {\n if ((!payload || !payload.reload) && state.recruitments.length > 0) {\n return state.recruitments\n }\n let filter = payload.filter || ''\n if (context.getters.isEmployee || context.getters.isManager) {\n if (!filter) filter = ''\n if (filter.indexOf('employee_id') < 0 && filter.indexOf('manager_id') < 0) {\n let filterDocument\n if (context.getters.isEmployee) filterDocument = `employee_id eq '${context.getters.getProfile.employee_id}'`\n if (context.getters.isManager) filterDocument = filterDocument + (filterDocument ? ' or ' : '') + `manager_id eq '${context.getters.getProfile.employee_id}'`\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n }\n }\n\n const getResult = await ViewService.get({ object: 'recruitment', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_RECRUITMENTS', { data: getResult.data })\n return state.recruitments\n },\n APP_PULL_ABSENCES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.absences.length > 0) {\n return state.absences\n }\n let filter = payload.filter || ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n if (payload?.isGF) {\n filter = ''\n }\n\n const getResult = await ViewService.get({ object: 'absence', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_ABSENCES', { data: getResult.data })\n return state.absences\n },\n APP_PULL_SICKLEAVES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.sickleaves.length > 0) {\n return state.sickleaves\n }\n\n let filter = payload.filter || ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'sickleave', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) {\n context.commit('APP_SET_SICKLEAVES', { data: getResult.data })\n }\n\n return state.sickleaves\n },\n APP_PULL_STATEMENTS: async ({ commit }, payload) => {\n const filter = payload?.filter ?? ''\n\n try {\n const { data } = await ViewService.get(\n { object: 'statement', filter, rowsPerPage: 'all' },\n true,\n );\n if (data) {\n commit('APP_SET_STATEMENTS', data);\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_statement',\n debug: true,\n });\n }\n\n return state.statements;\n },\n\n APP_PULL_PD_AGREEMENT: async ({ commit }, payload) => {\n if ((!payload || !payload?.reload) && state?.pd_agreement?.length) {\n return state?.pd_agreement\n }\n const filter = payload?.filter ?? ''\n try {\n const { data } = await ViewService.get({\n object: 'pd_agreement',\n filter,\n rowsPerPage: 'all',\n }, true);\n\n if (data) {\n commit('APP_SET_PD_AGREEMENT', data);\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_pd_agreement',\n debug: true,\n });\n }\n return state?.pd_agreement;\n },\n\n APP_PULL_HOMEOFFICE: async (context, payload) => {\n if (!payload?.reload && state.home_office.length) {\n return state.home_office\n }\n\n let filter = payload.filter || ''\n const filterDocument = filterPrepare(filter)\n\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n if (payload?.isGF) {\n filter = ''\n }\n\n const getResult = await ViewService.get({ object: 'home_office', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_HOMEOFFICE', { data: getResult.data })\n\n return state.home_office\n },\n APP_PULL_OVERTIMES: async (context, payload) => {\n if ((!payload || !payload?.reload) && state?.overtimes?.length) {\n return state?.overtimes\n }\n try {\n let filter = payload?.filter || ''\n const filterDocument = filterPrepare(filter)\n\n if (filterDocument) {\n filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n }\n\n if (payload?.isGF || payload?.reviewer) {\n filter = ''\n }\n\n const getResult = await ViewService.get({\n object: 'overtime',\n filter,\n rowsPerPage: 'all',\n }, true)\n\n if (getResult) {\n const data = getResult?.data?.map((item) => ({\n ...item,\n hours_plan_day: item?.details?.time_shift_plan_day_hours ?? 0,\n hours_plan_night: item?.details?.time_shift_plan_night_hours ?? 0,\n hours_fact_day: item?.details?.time_shift_fact_day_hours ?? 0,\n hours_fact_night: item?.details?.time_shift_fact_night_hours ?? 0,\n }));\n\n context.commit('APP_SET_OVERTIMES', { data })\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка в методе APP_PULL_OVERTIMES',\n debug: true,\n });\n }\n return state?.overtimes\n },\n APP_PULL_REQUESTS: async (context, payload) => {\n try {\n // if (!context.getters.isCandidate && !context.getters.isEmployee && !context.getters.isManager) return\n if ((!payload || !payload.reload) && state.requests.length > 0) {\n return state.requests\n }\n let filter = payload?.filter || ''\n let filterDocument // = filterPrepare(filter)\n if (!filter || filter.indexOf('employee_id') < 0) {\n if (context.getters.isCandidate || context.getters.isEmployee) filterDocument = `employee_id eq '${context.getters.getProfile.employee_id}'`\n if (context.getters.isAdmin) filterDocument = `creator_id eq '${context.getters.getProfile.id}'`\n if (filterDocument) filterDocument = `(${filterDocument})`\n }\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n let view = 'request'\n if (payload.role === 'hr') view = 'history_hr'\n\n const getResult = await ViewService.get({\n object: view,\n filter,\n rowsPerPage: 'all',\n }, true)\n\n if (getResult) context.commit('APP_SET_REQUESTS', { data: getResult.data })\n return state.requests\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_request или view_history_hr',\n debug: true,\n });\n return {}\n }\n },\n APP_PULL_HR_REQUESTS: async ({ commit }) => {\n try {\n const { data } = await ViewService.get(\n { object: 'request_hr', rowsPerPage: 'all' },\n true,\n );\n\n if (data) {\n commit('APP_SET_REQUESTS', { data });\n }\n\n return data;\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_request_hr',\n debug: true,\n });\n return {}\n }\n },\n APP_PULL_REQUEST: async ({ commit }, payload) => {\n const id = payload?.id ?? ''\n const requestTypeCode = payload?.request_type_code ?? ''\n\n if (!id?.length || !requestTypeCode?.length) {\n commit('MSG_SET_ITEM', {\n text: 'Загрузка Request: Не указан id или request_type_code',\n debug: true,\n });\n return {};\n }\n\n const filter = `legal_document_id eq '${id}' and request_type_code eq '${requestTypeCode}'`;\n\n try {\n const result = await ViewService.get(\n { object: 'request', filter, rowsPerPage: 'all' },\n true,\n );\n\n const data = result?.data?.[0] ?? {};\n\n if (data) {\n commit('APP_SET_REQUEST', { data });\n }\n\n return data;\n } catch (error) {\n return {}\n }\n },\n APP_PULL_REQUESTS_SIGNING: async ({ commit }, payload) => {\n const { filter = {} } = payload\n\n // Запрашивать только реквесты с файлами и с выставленным статусом\n let filterQuery = 'files_count > 0 and status_id IS NOT NULL and';\n\n if (filter?.request_type_name?.length) {\n filterQuery = `${filterQuery} files_json LIKE '%${filter?.request_type_name}%' and`;\n }\n // Если задана только одна дата\n if (\n filter?.period?.[0]?.length &&\n !filter?.period?.[1]?.length\n ) {\n filterQuery = `${filterQuery} date >= '${filter?.period?.[0]}' and`;\n }\n\n // Если заданы обе даты\n if (\n filter?.period?.[0]?.length &&\n filter?.period?.[1]?.length\n ) {\n // Необходимо добавлять 1 день, чтобы получать документы созданные после полуночи\n const endDay = moment(filter?.period?.[1])\n .add(1, 'days')\n .format('YYYY-MM-DD');\n\n filterQuery = `${filterQuery} date >= '${filter?.period?.[0]}' and date <= '${endDay}' and`;\n }\n\n if (filter?.status_id?.length) {\n filterQuery = `${filterQuery} status_id eq '${filter.status_id}' and`;\n }\n\n // Удалить and, если им заканчивается запрос\n if (filterQuery.endsWith('and')) {\n filterQuery = filterQuery.slice(0, -3);\n }\n\n try {\n const { data } = await ViewService.get(\n {\n object: 'request_push_signed',\n filter: filterQuery,\n rowsPerPage: 'all',\n },\n true,\n );\n\n if (data) {\n commit('APP_SET_REQUESTS_SIGNING', data)\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_requests',\n debug: true,\n });\n }\n },\n APP_PULL_MATERIAL_ASSISTANCES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.expenses.length > 0) {\n return state.material_assistances\n }\n let filter = payload.filter || ''\n const filterDocument = filterPrepare(filter)\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n if (payload?.reviewer) {\n filter = ''\n }\n\n const getResult = await ViewService.get({ object: 'material_assistance', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_MATERIAL_ASSISTANCES', { data: getResult.data })\n return state.material_assistances\n },\n APP_PULL_CANDIDATES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.candidates.length > 0) {\n return state.candidates\n }\n let filter = payload.filter || ''\n let filterDocument\n if (store.getters.isEmployee || store.getters.isManager) {\n if (!filter || (filter.indexOf('id') < 0 && filter.indexOf('manager_id')) < 0) {\n if (store.getters.isEmployee) filterDocument = `id eq '${store.getters.getProfile.employee_id}'`\n if (store.getters.isManager) filterDocument = filterDocument + (filterDocument ? ' or ' : '') + `manager_id eq '${store.getters.getProfile.employee_id}'`\n if (filterDocument) filterDocument = `(${filterDocument})`\n }\n }\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'candidate', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_CANDIDATES', getResult.data)\n return state.candidates\n },\n APP_PULL_EMPLOYEES: async (context, payload) => {\n if ((!payload || !payload.reload) && state.employees.length > 0) {\n return state.employees\n }\n let select\n if (payload && payload.select) select = payload.select\n let filter\n if (payload && payload.filter) filter = payload.filter\n let filterDocument\n if (store.getters.isEmployee || store.getters.isManager) {\n if (!filter || (filter.indexOf('id') < 0 && filter.indexOf('manager_id')) < 0) {\n if (store.getters.isEmployee) filterDocument = `id eq '${store.getters.getProfile.employee_id}'`\n if (store.getters.isManager) filterDocument = (filterDocument ? filterDocument + ' or ' : '') + `manager_id eq '${store.getters.getProfile.employee_id}'`\n if (filterDocument) filterDocument = `(${filterDocument})`\n }\n }\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n if (payload.reviewer) {\n filter = ''\n }\n\n const getResult = await ViewService.get({ object: 'employee', filter, select, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_EMPLOYEES', getResult.data)\n return state.employees\n },\n APP_PULL_USERS: async (context, payload) => {\n if (!store.getters.isAdmin) return\n if ((!payload || !payload.reload) && state.users.length > 0) {\n return state.users\n }\n let select\n if (payload && payload.select) select = payload.select\n let filter\n if (payload && payload.filter) filter = payload.filter\n let filterDocument\n if (!store.getters.isPowerUser && (store.getters.isEmployee || store.getters.isManager)) {\n if (!filter || (filter.indexOf('id') < 0 && filter.indexOf('emloyee_id')) < 0) {\n if (store.getters.isEmployee) filterDocument = `employee_id eq '${store.getters.getProfile.employee_id}'`\n if (!filterDocument) filterDocument = `id eq '${store.getters.getProfile.id}'`\n if (filterDocument) filterDocument = `(${filterDocument})`\n }\n }\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n\n const getResult = await ViewService.get({ object: 'users', filter, select, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_USERS', getResult.data)\n return state.users\n },\n APP_PULL_ORGANIZATIONS: async (context, payload) => {\n // if (!store.getters.isPowerUser) return\n if ((!payload || !payload.reload) && state.organizations.length > 0) {\n return state.organizations\n }\n const getResult = await ViewService.get({ object: 'organization', rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_ORGANIZATIONS', getResult.data)\n return state.organizations\n },\n APP_PULL_GRANTS: async (context, payload) => {\n if (!store.getters.isAdmin) return\n if ((!payload || !payload.reload) && state.grants.length > 0) {\n return state.grants\n }\n // TableService only for admin role\n const getResult = await TableService.get({ object: 'grants', rowsPerPage: 'all', orderBy: 'name' }, true)\n if (getResult) context.commit('APP_SET_GRANTS', getResult.data)\n return state.grants\n },\n APP_PULL_GRANTED: async (context, payload) => {\n try {\n const getResult = await ViewService.get({\n object: 'granted',\n rowsPerPage: 'all',\n orderBy: 'name',\n }, true)\n\n if (!getResult) throw new Error()\n\n context.commit('APP_SET_GRANTED', getResult.data)\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка при запросе APP_PULL_GRANTED',\n debug: true,\n })\n }\n },\n APP_PULL_TIMESHEETS: async (context, payload) => {\n if (!payload?.reload && state?.timesheets?.length) {\n return state.timesheets\n }\n let filter = payload?.filter || ''\n // const filterDocument = filterPrepare(filter)\n const filterDocument = ''\n if (filterDocument) filter = (filter ? filter + ' and ' : '') + `(${filterDocument})`\n const getResult = await ViewService.get({ object: 'timesheet', filter, rowsPerPage: 'all' }, true)\n if (getResult) context.commit('APP_SET_TIMESHEETS', { data: getResult.data })\n return state.timesheets\n },\n APP_PULL_OBJECTS_DATA: async (context, payload) => {\n if (state.objectsData.length) {\n return state.objectsData\n }\n\n const result = await ViewService.get({ object: 'object', rowsPerPage: 'all' }, true)\n\n if (result) {\n context.commit('APP_SET_OBJECTS_DATA', result.data)\n }\n },\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import { ViewService } from '@/common/api.service'\nimport store from '@/store'\n\nconst getDefaultState = () => {\n return {\n createSelectionList: [],\n estimateList: [],\n estimateSubList: [],\n estimateAll: [],\n estimateYear: [],\n subordination: [],\n goals: [],\n valuation: [],\n education: [],\n planningGoals: [],\n planningEducation: [],\n communication: [],\n rating: [],\n goalsWeightTotal: null,\n planningGoalsWeightTotal: null,\n appraisal: {\n agreement: [],\n approve: [],\n planning: [],\n all: [],\n },\n estimatePeriods: [],\n periodData: [],\n period: [],\n dictionary: {\n valuation: [],\n scale: [],\n grade: [],\n periodType: [],\n },\n history: [],\n estimateResult: [],\n prize: {\n goal_mark: null,\n final_mark: null,\n },\n createFormSelection: [],\n selectionList: [],\n planningEstimateId: null,\n formLayoutTabs: [],\n }\n};\n\nconst state = getDefaultState();\n\nconst getters = {}\n\nconst mutations = {\n ESTIMATE_SET_EMPTY (state) {\n Object.assign(state, getDefaultState())\n },\n SET_ESTIMATE_SELECTION (state, payload) {\n state.createSelectionList = payload\n },\n DELETE_ESTIMATE_DOCUMENT (state, payload) {\n const filteredList = state.createSelectionList.filter((el) => el.id !== payload?.item?.id)\n state[payload.document] = filteredList\n },\n APP_SET_ESTIMATE: (state, payload) => {\n state.estimateList = payload\n },\n APP_SET_ESTIMATE_SUB_LIST: (state, payload) => {\n state.estimateSubList = payload\n },\n APP_SET_ESTIMATE_ALL: (state, payload) => {\n state.estimateAll = payload\n },\n APP_SET_ESTIMATE_YEAR: (state, payload) => {\n state.estimateYear = payload\n },\n APP_SET_ESTIMATE_GOALS: (state, payload) => {\n state.goals = payload.data\n },\n ESTIMATE_SET_COMMUNICATION: (state, payload) => {\n state.communication = payload.data;\n },\n ESTIMATE_SET_RATING: (state, payload) => {\n state.rating = payload.data;\n },\n APP_CALCULATE_GOALS_WEIGHT: (state, payload) => {\n // TODO: переписать подсчёт веса в одну функицю\n const total = Object.values(state.goals).reduce((t, { weight }) => {\n if (weight) {\n const weightNumber = Number(weight.replace(/,/g, '.'))\n return t + weightNumber\n }\n }, 0)\n state.goalsWeightTotal = total\n },\n APP_CALCULATE_PLANNING_GOALS_WEIGHT: (state, payload) => {\n const total = Object.values(state.planningGoals).reduce((t, { weight }) => {\n if (weight) {\n const weightNumber = Number(weight.replace(/,/g, '.'))\n return t + weightNumber\n }\n }, 0)\n state.planningGoalsWeightTotal = total\n },\n APP_SET_ESTIMATE_VALUATION: (state, payload) => {\n state.valuation = payload.data\n },\n APP_SET_ESTIMATE_EDUCATION: (state, payload) => {\n state.education = payload.data\n },\n APP_SET_ESTIMATE_PLANNING: (state, payload) => {\n state.planningGoals = payload.data\n },\n APP_SET_ESTIMATE_PLANNING_EDUCATION: (state, payload) => {\n state.planningEducation = payload.data\n },\n APP_SET_ESTIMATE_APPRAISAL: (state, payload) => {\n state.appraisal[payload.table] = payload.data\n },\n APP_SET_ESTIMATE_SUBORDINATION: (state, payload) => {\n state.subordination = payload\n },\n APP_SET_ESTIMATE_PERIODS: (state, payload) => {\n state.estimatePeriods = payload\n },\n APP_SET_ESTIMATE_PERIOD_DATA: (state, payload) => {\n state.periodData = payload\n },\n APP_SET_ESTIMATE_PERIOD: (state, payload) => {\n state.period = payload\n },\n APP_SET_ESTIMATE_DICTIONARY: (state, payload) => {\n state.dictionary[payload.name] = payload.list\n },\n APP_SET_ESTIMATE_HISTORY: (state, payload) => {\n state.history = payload\n },\n APP_SET_ESTIMATE_PRIZE: (state, payload) => {\n state.prize = payload\n },\n APP_SET_ESTIMATE_RESULT: (state, payload) => {\n state.estimateResult = payload\n },\n APP_SET_INSTRUCTION_ACTUAL: (state, payload) => {\n const { id, field = '', value = '' } = payload\n\n const form = state.estimateAll.find(i => i.id === id);\n\n if (!form) {\n return\n }\n\n form[field] = value;\n },\n APP_SET_ESTIMATE_USER_SETTING: (state, payload) => {\n if (!payload) return\n\n const user = state.selectionList.find(i => i.id === payload.id);\n\n Object.assign(user, payload)\n },\n ESTIMATE_SET_FORM_SELECTION: (state, payload) => {\n state.createFormSelection = payload\n },\n ESTIMATE_SET_PERIOD_EMPLOYEES: (state, payload) => {\n state.selectionList = payload;\n },\n ESTIMATE_SET_PLANNING_ESTIMATE_ID: (state, payload) => {\n state.planningEstimateId = payload;\n },\n ESTIMATE_SET_LAYOUT_TAB: (state, payload) => {\n state.formLayoutTabs = payload;\n },\n}\n\nconst actions = {\n ESTIMATE_PULL_PERIOD_EMPLOYEES: async (context, payload) => {\n let result = null\n\n const showError = () => {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания периодов сотрудников',\n debug: true,\n });\n }\n\n try {\n result = await ViewService.get(\n {\n object: 'estimate',\n rowsPerPage: 'all',\n filter: `estimate_period_id eq '${payload?.formId}'`,\n },\n true)\n } catch (error) {\n showError()\n }\n\n if (!result?.data) {\n showError();\n return []\n }\n\n context.commit('ESTIMATE_SET_PERIOD_EMPLOYEES', result.data);\n\n return state.selectionList;\n },\n APP_PULL_ESTIMATE_ALL: async (context, payload) => {\n if (state.estimateAll.length && !payload?.update) {\n return state.estimateAll\n }\n\n await ViewService.get({ object: 'estimate', rowsPerPage: 'all' }, true).then((response) => {\n context.commit('APP_SET_ESTIMATE_ALL', response.data)\n })\n },\n APP_PULL_ESTIMATE_ALL_YEAR: async (context, payload) => {\n const { estimateAll } = state\n\n if (payload?.update) {\n await ViewService.get(\n { object: 'estimate', rowsPerPage: 'all' },\n true,\n ).then(response => {\n context.commit(\n 'APP_SET_ESTIMATE_ALL',\n response.data,\n );\n });\n }\n\n if (payload?.year) {\n return estimateAll.filter((i) => i.year === payload.year)\n }\n\n return estimateAll\n },\n APP_PULL_ESTIMATE: async (context, payload) => {\n const userID = context.rootState?.auth?.profile?.employee_id\n const id = payload?.id ? payload.id : userID\n const filter = `employee_id = '${id}'`\n\n if (state.estimateList.length && !payload?.update) {\n return state.estimateList\n }\n\n await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true).then((response) => {\n response.data.forEach(element => {\n element.estimate_period_date = `${element.estimate_start_date} - ${element.estimate_end_date}`;\n });\n\n context.commit('APP_SET_ESTIMATE', response.data)\n })\n\n return state.estimateList;\n },\n APP_PULL_ESTIMATE_YEAR: async (context, payload) => {\n const currentYear = new Date().getFullYear()\n let filter\n\n if (payload?.year) {\n filter = `year = '${payload?.year}'`\n } else {\n filter = `year = '${currentYear}'`\n }\n\n const result = await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true)\n\n if (result?.data) {\n const { data } = result\n\n context.commit('APP_SET_ESTIMATE_YEAR', data);\n return data\n }\n },\n APP_PULL_ESTIMATE_EMPLOYEE_LIST: async (context, payload) => {\n let result = null;\n const id = payload?.id\n\n if (!id) {\n store.commit('MSG_SET_ITEM', {\n text: 'Не передаётся id для скачивания форм',\n debug: true,\n });\n return;\n }\n\n const filter = `employee_id = '${id}'`;\n\n try {\n result = await ViewService.get(\n { object: 'estimate', filter, rowsPerPage: 'all' },\n true,\n )\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания форм оценки сотрудника',\n debug: true,\n });\n }\n\n if (result?.data) {\n result.data.forEach(element => {\n element.estimate_period_date = `${element.estimate_start_date} - ${element.estimate_end_date}`;\n });\n\n return result.data;\n }\n\n return []\n },\n APP_PULL_ESTIMATE_SUB: async (context, payload) => {\n const id = payload?.id\n let filter = ''\n\n if (id) {\n filter = `employee_id = '${id}'`\n }\n\n await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true).then(({ data }) => {\n context.commit('APP_SET_ESTIMATE_SUB_LIST', data)\n })\n },\n APP_PULL_ESTIMATE_GOALS: async (context, payload) => {\n const filter = `estimate_id = '${payload.formId}'`;\n\n const getResult = await ViewService.get({ object: 'estimate_goals', filter, rowsPerPage: 'all', orderBy: 'sort' }, true)\n\n if (getResult) {\n context.commit('APP_SET_ESTIMATE_GOALS', { data: getResult.data })\n context.commit('APP_CALCULATE_GOALS_WEIGHT')\n }\n\n return state.goals\n },\n ESTIMATE_PULL_COMMUNICATIONS: async ({ commit }, payload) => {\n const filter = `estimate_id = '${payload?.formId}'`;\n\n try {\n const result = await ViewService.get(\n { object: 'estimate_communication', filter, rowsPerPage: 'all' },\n true,\n );\n\n const { data } = result;\n\n if (data) {\n commit('ESTIMATE_SET_COMMUNICATION', {\n data,\n });\n }\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания списка Коммуникации',\n debug: true,\n });\n }\n\n return state.communication;\n },\n ESTIMATE_PULL_RATING: async ({ commit }, payload) => {\n const filter = `estimate_id = '${payload?.formId}'`;\n\n try {\n const result = await ViewService.get(\n { object: 'estimate_rating', filter, rowsPerPage: 'all' },\n true,\n );\n\n const { data } = result;\n\n if (data) {\n commit('ESTIMATE_SET_RATING', {\n data,\n });\n }\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания списка Рейтинг',\n debug: true,\n });\n }\n\n return state.rating;\n },\n APP_PULL_ESTIMATE_VALUATION: async (context, payload) => {\n const filter = `estimate_id = '${payload.formId}'`;\n\n const getResult = await ViewService.get({ object: 'estimate_valuation', filter, rowsPerPage: 'all' }, true)\n const { data } = getResult\n const sortedData = data.sort((a, b) => a.sort?.localeCompare(b.sort))\n\n if (getResult) context.commit('APP_SET_ESTIMATE_VALUATION', { data: sortedData })\n return state.valuation\n },\n APP_PULL_ESTIMATE_EDUCATION: async (context, payload) => {\n const filter = `estimate_id = '${payload.formId}'`;\n\n const getResult = await ViewService.get({ object: 'estimate_education', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_EDUCATION', { data: getResult.data })\n\n return state.education\n },\n APP_PULL_ESTIMATE_PLANNING_GOALS: async (context, payload) => {\n const filter = `estimate_id = '${payload.formId}'`;\n\n const getResult = await ViewService.get({ object: 'estimate_planning_goals', filter, rowsPerPage: 'all', orderBy: 'sort' }, true)\n\n if (getResult) {\n context.commit('APP_SET_ESTIMATE_PLANNING', { data: getResult.data })\n context.commit('APP_CALCULATE_PLANNING_GOALS_WEIGHT')\n }\n\n return state.planningGoals\n },\n APP_PULL_ESTIMATE_PLANNING_EDUCATION: async (context, payload) => {\n const filter = `estimate_id = '${payload.formId}'`;\n\n const getResult = await ViewService.get({ object: 'estimate_planning_education', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_PLANNING_EDUCATION', { data: getResult.data })\n\n return state.planningEducation\n },\n APP_PULL_ESTIMATE_APPRAISAL_AGREEMENT: async (context, payload) => {\n const userID = context.rootState.auth.profile.employee_id\n const filter = `employee_id != '${userID}' AND manager_id = '${userID}' AND period_status != '2' AND type in ('1','2')`;\n const getResult = await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_APPRAISAL', { data: getResult.data, table: 'agreement' })\n\n return state.appraisal.agreement\n },\n APP_PULL_ESTIMATE_APPRAISAL_APPROVE: async (context, payload) => {\n const userID = context.rootState.auth.profile.employee_id\n const filter = `manager_id != '${userID}' AND employee_id != '${userID}' AND period_status != '2'`\n const getResult = await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_APPRAISAL', { data: getResult.data, table: 'approve' })\n\n return state.appraisal.approve\n },\n ESTIMATE_PULL_APPRAISAL_PLANNING: async (context, payload) => {\n const userID = context.rootState.auth.profile.employee_id\n const filter = `employee_id != '${userID}' AND manager_id = '${userID}' AND type = '3'`;\n\n let result = []\n\n try {\n result = await ViewService.get(\n { object: 'estimate', filter, rowsPerPage: 'all' },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания списка планирования',\n debug: true,\n });\n }\n\n const { data } = result\n\n if (data) {\n context.commit('APP_SET_ESTIMATE_APPRAISAL', {\n data,\n table: 'planning',\n });\n }\n\n return state.appraisal.planning\n },\n APP_PULL_ESTIMATE_APPRAISAL_ALL: async (context, payload) => {\n const userID = context.rootState.auth.profile.employee_id\n const filter = `employee_id != '${userID}' AND period_status != '2'`;\n const getResult = await ViewService.get({ object: 'estimate', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_APPRAISAL', { data: getResult.data, table: 'all' })\n\n return state.appraisal.all\n },\n APP_PULL_ESTIMATE_SUBORDINATION: async (context, payload) => {\n if (state.subordination.length) {\n return state.subordination\n }\n\n const filter = payload?.filter ? payload?.filter : ''\n const getResult = await ViewService.get({ object: 'subordination', filter, rowsPerPage: 'all', orderBy: 'employee_name' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_SUBORDINATION', getResult.data)\n\n return state.subordination\n },\n APP_PULL_ESTIMATE_PERIODS: async (context, payload) => {\n const getResult = await ViewService.get({ object: 'estimate_period', rowsPerPage: 'all', orderBy: 'create_date' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_PERIODS', getResult.data)\n\n return state.estimatePeriods\n },\n APP_PULL_ESTIMATE_PERIOD_DATA: async (context, payload) => {\n const filter = `id = '${payload.id}'`\n const getResult = await ViewService.get({ object: 'estimate_period', filter, rowsPerPage: 'all' }, true)\n\n if (getResult) context.commit('APP_SET_ESTIMATE_PERIOD_DATA', getResult.data[0])\n },\n APP_PULL_ESTIMATE_DICTIONARY: async (context, payload) => {\n if (state.dictionary.valuation.length && state.dictionary.scale.length && state.dictionary.grade.length) {\n return\n }\n\n const filter = \"dictionary_object_id = 'estimate'\"\n const getResult = await ViewService.get({ object: 'dictionary_element', filter, rowsPerPage: 'all', orderBy: 'sort' }, true)\n\n if (getResult) {\n const { data } = getResult\n const valuation = data.filter((i) => i.dictionary_code === 'BaseCompetence')\n const scale = data.filter((i) => i.dictionary_code === 'ScaleCompetence')\n const grade = data.filter((i) => i.dictionary_code === 'GradeScale')\n\n context.commit('APP_SET_ESTIMATE_DICTIONARY', { name: 'valuation', list: valuation })\n context.commit('APP_SET_ESTIMATE_DICTIONARY', { name: 'scale', list: scale })\n context.commit('APP_SET_ESTIMATE_DICTIONARY', { name: 'grade', list: grade })\n }\n },\n ESTIMATE_PULL_DICTIONARY_PERIOD: async (context, payload) => {\n if (state?.dictionary?.periodType?.length) {\n return\n }\n\n const filter = \"dictionary_object_id = 'estimate' AND dictionary_code = 'PeriodType'\"\n let result = null\n\n try {\n result = await ViewService.get(\n {\n object: 'dictionary_element',\n filter,\n rowsPerPage: 'all',\n orderBy: 'sort',\n },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания справочника типов периодов',\n debug: true,\n });\n }\n\n if (result?.data) {\n const { data: list } = result;\n\n context.commit('APP_SET_ESTIMATE_DICTIONARY', {\n name: 'periodType',\n list,\n });\n }\n },\n APP_PULL_ESTIMATE_HISTORY: async (context, payload) => {\n if (state.history.length > 0) {\n return state.history;\n }\n\n const filter = \"object_id = 'estimate'\"\n const getResult = await ViewService.get({ object: 'document_status', filter, rowsPerPage: 'all', orderBy: 'create_date', sort: 'asc' }, true)\n\n if (getResult) {\n const sortedList = getResult.data.sort((a, b) => new Date(b.create_date) - new Date(a.create_date))\n\n context.commit('APP_SET_ESTIMATE_HISTORY', sortedList)\n }\n },\n ESTIMATE_PULL_RESULT: async (context, payload) => {\n let result = []\n\n try {\n result = await ViewService.get(\n {\n object: 'estimate_result',\n rowsPerPage: 'all',\n sort: 'asc',\n },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания таблицы результатов',\n debug: true,\n });\n }\n\n if (result?.data) {\n const { data } = result\n\n context.commit('APP_SET_ESTIMATE_RESULT', data);\n return data;\n }\n\n return []\n },\n ESTIMATE_PULL_RESULT_EMPLOYEE: async (context, payload) => {\n let result = []\n\n try {\n result = await ViewService.get(\n {\n object: 'estimate_result_employee',\n rowsPerPage: 'all',\n sort: 'asc',\n },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания таблицы результатов',\n debug: true,\n });\n }\n\n if (result?.data) {\n const { data } = result\n\n context.commit('APP_SET_ESTIMATE_RESULT', data);\n return data;\n }\n\n return []\n },\n ESTIMATE_PULL_PLANNING: async (context, payload) => {\n // Если id получен, то не перекачивать\n if (state.planningEstimateId) {\n return\n }\n\n let result = null\n\n try {\n result = await ViewService.get(\n {\n object: 'planned_estimate',\n rowsPerPage: 'all',\n },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания таблицы планирования',\n debug: true,\n });\n }\n\n if (result?.data) {\n const { data } = result\n\n context.commit(\n 'ESTIMATE_SET_PLANNING_ESTIMATE_ID',\n data?.[0]?.planned_estimate_id,\n );\n }\n },\n ESTIMATE_PULL_LAYOUT_TAB: async (context, payload) => {\n if (state.formLayoutTabs.length) {\n return;\n }\n\n let result = null\n const filter = \"object_layout = 'estimate'\"\n\n try {\n result = await ViewService.get(\n {\n object: 'layout_tab',\n rowsPerPage: 'all',\n filter,\n orderBy: 'sort',\n },\n true,\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_layout_tab',\n debug: true,\n });\n }\n\n if (result?.data) {\n const { data } = result\n\n context.commit(\n 'ESTIMATE_SET_LAYOUT_TAB',\n data,\n );\n }\n },\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import { ViewService, TableService } from '@/common/api.service'\n\nconst state = {\n BtripGoals: [],\n btripCities: [],\n EducationMark: [],\n PotentialRating: [],\n PerformanceRating: [],\n BtripDestination: [],\n DictionaryNameList: {\n BtripDestination: 'BtripDestination',\n },\n OvertimeHoursList: [\n {\n id: 1,\n text: 'С 9 до 18, перерыв на обед 1 час',\n hour: '8',\n },\n {\n id: 2,\n text: 'С 9 до 14, без перерыва на обед',\n hour: '5',\n },\n {\n id: 5,\n text: 'Иное',\n hour: '0',\n value: 'other',\n },\n ],\n OvertimeShiftList: [\n {\n id: 1,\n text: 'Я1',\n hour: '8',\n },\n {\n id: 2,\n text: 'Я2',\n hour: '8',\n },\n {\n id: 3,\n text: 'Я3',\n hour: '8',\n },\n {\n id: 4,\n text: 'Я4',\n hour: '8',\n },\n ],\n OvertimeReasonList: [\n {\n id: 1,\n text: 'Производственная необходимость',\n },\n {\n id: 2,\n text: 'Иное',\n value: 'other',\n },\n ],\n OvertimeBreakTime: [\n {\n id: 1,\n hour_start: 0,\n hour_end: 4,\n break: 0,\n },\n {\n id: 2,\n hour_start: 5,\n hour_end: 9,\n break: 0.5,\n },\n {\n id: 3,\n hour_start: 10,\n hour_end: 12,\n break: 0.75,\n },\n {\n id: 4,\n hour_start: 13,\n hour_end: 24,\n break: 1,\n },\n ],\n};\n\nconst getters = {}\n\nconst mutations = {\n SET_DICTIONARY: (state, payload) => {\n const { name, data } = payload\n\n state[name] = data\n },\n SET_DICTIONARY_LIST: (state, payload) => {\n const { listName, data } = payload\n state[listName] = [...state[listName], ...data]\n },\n UPDATE_DICTIONARY: (state, { name, updatedItem }) => {\n const index = state[name].findIndex(item => item.id === updatedItem.id)\n\n if (index !== -1) {\n state[name][index] = { ...state[name][index], ...updatedItem }\n }\n },\n CLEAR_DICTIONARY: (state, name) => {\n if (!state[name]) return\n state[name] = []\n },\n}\n\nconst actions = {\n PULL_DICTIONARY: async ({ commit }, payload) => {\n const { name } = payload\n\n // выходим если не указано имя словаря или данные уже загружены\n if (!name || state[name]?.length) return\n\n const filter = `dictionary_code = '${name}'`\n try {\n const getResult = await ViewService.get({\n object: 'dictionary_element',\n filter,\n rowsPerPage: 'all',\n orderBy: 'sort',\n }, true)\n\n if (!getResult) throw new Error()\n\n const { data } = getResult\n\n commit('SET_DICTIONARY', { data, name })\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса в PULL_DICTIONARY',\n debug: true,\n });\n }\n },\n PULL_COUNTRY_CITIES: async ({ commit }, payload) => {\n // не качаем все данные без фильтра по стране\n if (!payload) return\n\n let filter = ''\n const { countryCode = null } = payload\n\n // проверим есть ли уже города для этой страны\n const isExistCities = state.btripCities.find((i) => i.country_code === countryCode)\n\n // если найдены города в стейте, то не качаем\n if (isExistCities) return\n\n if (countryCode) {\n filter = `country_code = '${countryCode}'`\n }\n\n const getResult = await ViewService.get({ object: 'city', filter, rowsPerPage: 'all', orderBy: 'sort' }, true)\n\n if (getResult) {\n const { data } = getResult\n\n commit('SET_DICTIONARY_LIST', { listName: 'btripCities', data })\n }\n },\n PULL_DICTIONARY_CITIES: async ({ commit }) => {\n const btripDestinationValue = state?.DictionaryNameList?.BtripDestination\n\n if (!btripDestinationValue?.length) return\n\n const filter = `dictionary_code = '${btripDestinationValue}'`\n try {\n const getResult = await ViewService.get({\n object: 'dictionary_element',\n filter,\n select: 'id, code, name, name_eng, description, description_eng, disabled',\n rowsPerPage: 'all',\n orderBy: 'sort',\n }, true)\n\n if (!getResult?.data) throw new Error()\n\n commit('CLEAR_DICTIONARY', btripDestinationValue)\n\n const { data } = getResult\n\n commit('SET_DICTIONARY_LIST', { listName: btripDestinationValue, data })\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса в PULL_DICTIONARY_CITIES',\n debug: true,\n })\n }\n },\n\n EDIT_DICTIONARY: async ({ commit }, { object, name, updatedItem }) => {\n try {\n await TableService.edit({ object, data: [updatedItem] })\n\n commit('UPDATE_DICTIONARY', { name, updatedItem })\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса на редактирование в EDIT_DICTIONARY',\n debug: true,\n })\n }\n },\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import store from '@/store';\nimport { ViewService, TableService, ReportService } from '@/common/api.service.js';\nimport signHelpers from '@/common/sign/signHelpers';\nimport roles from '@/common/role/roleHelpers.js';\nimport moment from 'moment';\nimport i18n from '@/plugins/i18n'\nimport { performDocumentAfterSaveAction } from '@/common/documentSection/documentSectionHelpers.js';\nimport { deleteRequest } from '@/common/sign/signPrepare';\n\nconst state = {\n isModalSigning: false,\n isLocalModalSigning: false,\n isSigningLoading: false,\n isSigningError: false,\n isSigningSuccess: false,\n signMethod: null,\n signingDocument: {},\n signingDocumentList: [],\n request: {},\n activeCertificate: {},\n detachedSignature: null,\n attemptsCode: 3,\n signCode: '',\n signingErrorText: '',\n userCertificates: [],\n checkboxRememberCertificate: true,\n};\n\nconst getters = {};\n\nconst mutations = {\n openModalSigning (state, payload) {\n if (payload?.isLocal) {\n state.isLocalModalSigning = true;\n } else {\n state.isModalSigning = true;\n }\n\n // Если передано несколько документов\n if (payload?.documentList?.length) {\n state.signingDocumentList = payload?.documentList;\n } else {\n state.signingDocument = payload?.document ?? null;\n }\n\n state.signMethod = payload?.method ?? '';\n },\n setRequestSigning (state, payload) {\n state.request = payload\n },\n closeModalSigning (state) {\n if (Object.keys(state.request)?.length) {\n deleteRequest(state.signingDocument, state.request)\n }\n\n state.signingDocument = {};\n state.signingDocumentList = [];\n state.activeCertificate = {};\n state.detachedSignature = {};\n state.isModalSigning = false;\n state.isLocalModalSigning = false;\n state.signingErrorText = '';\n state.isSigningLoading = false;\n state.isSigningError = false;\n state.isSigningSuccess = false;\n state.request = {}\n },\n signingDocumentListToggle (state, payload) {\n const docIndex = state.signingDocumentList?.findIndex((i) => i.id === payload?.id)\n\n if (docIndex >= 0) {\n state.signingDocumentList.splice(docIndex, 1);\n return;\n }\n\n state.signingDocumentList.push(payload);\n },\n // Выбрать все документы из таблицы для подписи\n signingSelectAllDocListToSign (state, payload) {\n state.signingDocumentList = payload\n },\n // Очистить выбранные документы\n signingDocumentListClear (state) {\n state.signingDocumentList = [];\n },\n signingStart (state) {\n state.isSigningLoading = true;\n },\n signingFinish (state) {\n state.isSigningLoading = false;\n },\n setSigningError (state, payload) {\n state.isSigningError = true;\n state.isSigningLoading = false;\n state.signingErrorText = payload;\n },\n signingSetSuccess (state) {\n state.isSigningSuccess = true;\n },\n // Обновить данные документа в стейте\n signingDocumentUpdateData (state, payload) {\n // Подписание одного документа\n if (Object.keys(state.signingDocument).length) {\n state.signingDocument = Object.assign(payload?.document, payload?.workflow);\n\n return\n }\n\n // Мульти подписание\n if (state.signingDocumentList?.length) {\n const docIndex = state.signingDocumentList.findIndex((i) => i.id === payload?.document?.id);\n\n state.signingDocumentList[docIndex] = Object.assign(\n payload?.document,\n payload?.workflow,\n );\n }\n },\n signingResetModal (state) {\n state.isSigningError = false;\n state.isSigningSuccess = false;\n },\n signingSetCertificate (state, payload) {\n state.activeCertificate = payload;\n },\n signingToggleRememberCertificate (state) {\n state.checkboxRememberCertificate = !state.checkboxRememberCertificate;\n },\n signingAddDataInDocument (state, payload) {\n state.signingDocument = Object.assign(state.signingDocument, payload);\n },\n signingSetDocData (state, payload) {\n state.signingDocument.role = payload?.role ?? null\n state.signingDocument.signature = payload?.signature ?? null;\n },\n signingSetDocListData (state, payload) {\n state.signingDocumentList.forEach(element => {\n element.role = payload?.role ?? null\n element.signature = payload?.signature ?? null\n });\n },\n SIGNING_SET_ATTEMPTS_CODE: (state, payload) => {\n state.attemptsCode = payload;\n },\n SIGNING_SET_CODE: (state, payload) => {\n state.signCode = payload;\n },\n SIGNING_SET_USER_CERTIFICATES: (state, payload) => {\n payload.forEach(i => {\n i.issued_date_formatted = moment(i.issued_date).format('DD-MM-YYYY HH:mm:ss')\n i.expiration_date_formatted = moment(i.expiration_date).format('DD-MM-YYYY HH:mm:ss')\n })\n state.userCertificates = payload\n },\n};\n\nconst actions = {\n // Старт процедуры подписания\n SIGNING_PROCESS: async ({ commit, rootState, dispatch }, payload) => {\n // TODO: saveDoc возможно устарело, т.к. теперь сохранение документа всегда через модальное окно.\n const { document, saveDoc } = payload;\n // @saveDoc - сохранение документа в процессе подписания. В разделах используется отдельное сохранение\n\n const { signMethod } = state;\n\n const {\n app: { workflow: workflowList, requests },\n auth: { profile },\n } = rootState;\n\n const signature = signHelpers.getSignature();\n const isType3 = signature === '3'\n // Проверка что подписание происходит из КЭДО\n const isCades = !!document?.object_id?.startsWith('request_push_signed');\n // Для КЭДО определять по роуту, в разделах по приходящей роли\n let role = isCades ? roles.getRoleByRouteMeta() : document?.role;\n // Если всё равно роль не найдена, то определить по роуту (была проблема на таблице раздела документа)\n if (!role?.length) {\n role = roles.getRoleByRouteMeta();\n }\n\n if (!document?.role?.length) {\n document.role = roles.getRoleByRouteMeta();\n }\n\n if (!document?.signature?.length) {\n document.signature = signature;\n }\n\n let reportResponse = null;\n let workflow = {};\n let workflowRequest = {};\n // Реквест для документа\n let documentRequest = {};\n // Воркфлоу для реквеста\n let workflowRequestData = {};\n // Данные статуса для документа реквеста\n let docRequestStatusData = {};\n\n const data = [];\n\n const showError = (text) => {\n data.error = text;\n commit('setSigningError', text);\n\n return data;\n };\n\n if (!isCades) {\n // если object_id = если начинается request_push_signed то не искать\n documentRequest = requests?.find(\n (i) =>\n i.legal_document_id === document?.id &&\n i.request_type_code === document?.request_type_code,\n );\n\n if (!documentRequest) {\n return showError('Подписание: Не найден request');\n }\n\n // У новых реквестов может быть не задан\n if (!documentRequest?.status_id) {\n documentRequest.status_id = 'empty';\n }\n }\n\n // Подписываем через УКЭП\n if (isType3) {\n // Если нет ни одного файла, то ошибка. Пока подписываются только документы с ранее созданным файлом\n if (!document.files?.[0]?.streebog_hash?.length) {\n return showError('Signature: No file or hash to subscribe');\n }\n\n const detachedSignature = await signHelpers.createSignature(\n state?.activeCertificate?.thumbprint,\n document?.files?.[0]?.streebog_hash,\n );\n\n if (detachedSignature.error) {\n return showError(detachedSignature.error);\n }\n\n document.detached_signature = detachedSignature;\n }\n\n if (signMethod === 'stamp') {\n // Workflow из текущего документа до подписания\n workflow = workflowList?.find((i) => i.id === document?.workflow_id);\n\n if (!workflow) {\n return showError('Signing: No workflow');\n }\n }\n\n try {\n if (signMethod === 'add') {\n // В КЭДО подписывается сам документ, в разделе реквест документа\n reportResponse = await ReportService.sign(isCades ? document : documentRequest);\n }\n if (signMethod === 'stamp') {\n reportResponse = await ReportService.signStamp(document);\n }\n } catch (error) {\n return showError(error);\n }\n\n if (!reportResponse) {\n return showError('Signing: No response from server');\n }\n\n // если не пришла data или пришла ошибка\n if (!reportResponse?.[1]?.data || reportResponse?.[1]?.error) {\n return showError('Signing: Did not receive a response from the server');\n }\n\n const responseData = reportResponse?.[1]?.data;\n\n if (signMethod === 'stamp') {\n if (!responseData?.request_id) {\n return showError('Signing: Request_id not received');\n }\n }\n\n if (signMethod === 'add') {\n if (!responseData?.hash) {\n return showError('Signing: Image hash not found');\n }\n\n if (isCades) {\n workflow = workflowList?.find(\n (i) =>\n i.status_id === document?.status_id &&\n i.object_id === document?.object_id &&\n i.business_role === role,\n );\n } else {\n workflow = workflowList?.find((i) => i.id === document?.workflow?.id);\n }\n\n if (!isCades) {\n workflowRequest = workflowList?.find(\n (i) =>\n i.status_id === documentRequest?.status_id &&\n i.object_id === documentRequest?.object_id &&\n i.business_role === role,\n );\n }\n\n if (!workflow) {\n return showError('Signing: No workflow');\n }\n }\n\n const workflowData = {\n status_id: workflow.next_status_id,\n workflow_id: workflow.id,\n indicators: workflow.indicators,\n };\n\n const docStatusData = {\n ...workflowData,\n registrator_id: document?.id,\n organization_id: profile?.organization_id,\n };\n\n if (!isCades) {\n workflowRequestData = {\n status_id: workflowRequest?.next_status_id,\n workflow_id: workflowRequest?.id,\n indicators: workflowRequest?.indicators,\n };\n\n docRequestStatusData = {\n ...workflowRequestData,\n registrator_id: documentRequest?.id,\n organization_id: profile?.organization_id,\n };\n }\n\n // Сохранение статуса\n if (payload?.saveDoc) {\n let result = null;\n let requestResult = null;\n\n try {\n result = await TableService.add({\n object: 'document_status',\n data: [\n {\n object_id: document.object_id,\n ...docStatusData,\n },\n ],\n });\n } catch (error) {\n return showError('Signing: Error writing status');\n }\n\n if (!result?.[1]?.data) {\n return showError('Signing: Error writing status');\n }\n\n if (!isCades) {\n try {\n requestResult = await TableService.add({\n object: 'document_status',\n data: [\n {\n object_id: documentRequest?.object_id,\n ...docRequestStatusData,\n },\n ],\n });\n } catch (error) {\n return showError('Signing: Error writing status');\n }\n\n if (!requestResult?.[1]?.data) {\n return showError('Signing: Error writing status');\n }\n }\n }\n\n if (responseData?.file) {\n // Добавить новый файл\n if (!document?.files?.length) {\n document.files = [];\n document.files[0] = responseData?.file;\n } else {\n // Перезаписать файл\n document.files[0] = Object.assign(\n document.files[0],\n responseData?.file,\n );\n }\n }\n\n // Проставить дату подписания которая приходит с бэка\n if (responseData?.sign_date) {\n document.status_date = responseData.sign_date;\n }\n\n if (signMethod === 'stamp') {\n if (responseData?.request_id) {\n document.request_id = responseData.request_id;\n }\n\n if (responseData?.file) {\n data.newFile = responseData?.file;\n }\n\n // Сохранить данные о файла, если сохранение документа в рамках подписи\n if (responseData?.file) {\n responseData.file.document_object_id = document.id;\n\n try {\n await TableService.edit({\n object: 'files',\n data: [responseData.file],\n });\n } catch (error) {\n return showError('Signing: Error writing file data');\n }\n }\n }\n\n // Обновить реквест новыми данными о воркфлоу\n Object.assign(documentRequest, workflowRequestData);\n\n commit('APP_EDIT_DOCUMENT', {\n document: 'requests',\n item: documentRequest,\n });\n\n performDocumentAfterSaveAction(document, workflow);\n\n if (saveDoc) {\n // Путь для сохранения данных в стейте\n const documentPath = isCades ? 'requestsSigning' : document?.object_id;\n const item = Object.assign(document, workflowData);\n\n await commit('signingDocumentUpdateData', {\n document,\n workflow: workflowData,\n });\n\n await commit(\n 'APP_EDIT_DOCUMENT',\n {\n document: documentPath,\n item,\n },\n { root: true },\n );\n\n data.success = true;\n\n return data;\n }\n },\n SIGNING_DOCUMENT: async ({ commit, dispatch }, payload) => {\n const {\n signingDocument,\n signingDocumentList,\n } = state;\n const signature = signHelpers.getSignature();\n const role = roles.getRoleByRouteMeta();\n const isMultiSigning = !!signingDocumentList?.length\n const isType3 = signature === '3'\n\n let data = [];\n\n commit('signingStart');\n\n if (isMultiSigning) {\n commit('signingSetDocListData', { role, signature });\n }\n\n const showError = (text) => {\n data.error = text;\n commit('setSigningError', text);\n\n return data;\n };\n\n if (isType3) {\n const certSerialNumber = await state?.activeCertificate?._cadesCertificate?.SerialNumber ?? ''\n const issuedDate = state.activeCertificate?.validFrom ?? ''\n const expirationDate = state.activeCertificate?.validTo ?? ''\n\n if (\n !certSerialNumber?.length ||\n !issuedDate?.length ||\n !expirationDate?.length\n ) {\n const errorText = 'CryptoPro method hasn\\'t returned the proper certificate data. Kindly ask you to try again in 15 minutes.'\n\n return showError(errorText);\n }\n\n if (state.checkboxRememberCertificate) {\n // Запомнить сертификат по дате выпуска. Дата - единственное уникальное открытое значение\n localStorage.setItem(\n 'storedCertificate',\n issuedDate,\n );\n } else {\n // Удалить ранее выбранный сертификат\n localStorage.removeItem('storedCertificate');\n }\n\n // Для УКЭП необходимо сохранить в базу все данные о сертификате\n await dispatch('SIGNING_SAVE_CERTIFICATE')\n }\n\n if (isMultiSigning) {\n // Пройти по очереди по всем документам\n for (const file of signingDocumentList) {\n data = await dispatch(\n 'SIGNING_PROCESS',\n { document: file, saveDoc: payload?.saveDoc ?? null },\n { root: true },\n );\n }\n } else {\n // Подпись одного документа\n data = await dispatch(\n 'SIGNING_PROCESS',\n {\n document: signingDocument,\n saveDoc: payload?.saveDoc ?? null,\n },\n { root: true },\n );\n }\n\n if (!data?.success) {\n return data\n }\n\n // Для подписи документа в разделе вернуть все данные о документе\n if (!isMultiSigning) {\n data.result = signingDocument;\n }\n\n commit('signingFinish');\n commit('signingSetSuccess');\n\n return data;\n },\n SIGNING_PULL_USER_CERTIFICATES: async (context) => {\n const filter = 'disabled = 0'\n try {\n const { data } = await ViewService.get(\n { object: 'certificate', filter, rowsPerPage: 'all' },\n true,\n );\n if (data) {\n context.commit('SIGNING_SET_USER_CERTIFICATES', data)\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: i18n.t('Error reading data from view_certificate'),\n debug: true,\n });\n }\n },\n SET_CERTIFICATE_USER: async ({ commit }, data) => {\n try {\n const res = await ReportService.certificatePin(data);\n if (!res?.[1]?.data?.[0]) {\n throw new Error();\n }\n const certificate = res[1].data[0];\n commit('SIGNING_SET_USER_CERTIFICATES', [certificate]);\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса на перевыпуск в методе SET_CERTIFICATE_USER',\n debug: true,\n });\n throw new Error();\n }\n },\n SIGNING_SAVE_CERTIFICATE: async ({ dispatch, getters, rootState }) => {\n // Запросить текущие сертификаты\n await dispatch('SIGNING_PULL_USER_CERTIFICATES')\n // Получить текущий сертификат\n const certSerialNumber = await state.activeCertificate?._cadesCertificate?.SerialNumber ?? ''\n // Сравнить текущий сертификат с имеющимися в базе\n const isAlready = !!state?.userCertificates?.find((i) => i.certificate_id === certSerialNumber)\n\n // Если сертификат уже есть, то сохраняться не требуется\n if (isAlready) {\n return\n }\n\n const issuedDate = moment(state.activeCertificate?.validFrom).format('YYYY-MM-DD HH:mm:ss')\n const expirationDate = moment(state.activeCertificate?.validTo).format('YYYY-MM-DD HH:mm:ss')\n\n const certificateData = {\n name: `E=${rootState?.auth?.profile?.email ?? ''}`,\n employee_id: getters?.getEmployee?.id ?? '',\n certificate_id: certSerialNumber,\n issued_date: issuedDate,\n expiration_date: expirationDate,\n create_date: moment().format('YYYY-MM-DD HH:mm:ss'),\n text: `Сертификат ${certSerialNumber}, с ${issuedDate} до ${expirationDate}`,\n type: '3',\n is_informed: '1',\n disabled: '0',\n }\n\n try {\n await TableService.add({\n object: 'certificate',\n data: [certificateData],\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка сохранение сертификата УКЭП',\n debug: true,\n });\n }\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import { ViewService } from '@/common/api.service.js';\n\nconst state = {\n tabFields: [],\n}\n\nconst getters = {}\n\nconst mutations = {\n LAYOUT_SET_TAB_FIELDS: (state, payload) => {\n state.tabFields = Object.assign(state.tabFields, payload);\n },\n};\n\nconst actions = {\n LAYOUT_GET_TAB_FIELDS: async ({ commit }, payload) => {\n const { layout = '' } = payload ?? {};\n\n // Поиск layout в ранее полученных данных\n const isLayout = state.tabFields.find(\n (i) => String(i.object_layout) === String(layout),\n );\n\n // выходим если не указано имя layout или данные уже загружены\n if (!layout.length || isLayout) {\n return;\n }\n\n const filter = `object_layout = '${layout}'`;\n\n try {\n const result = await ViewService.get(\n {\n object: 'layout_tab_field',\n filter,\n rowsPerPage: 'all',\n },\n true,\n );\n\n if (result) {\n const { data } = result;\n\n commit('LAYOUT_SET_TAB_FIELDS', data)\n }\n } catch (error) {\n console.log('error', error);\n }\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import { ViewService } from '@/common/api.service.js';\n\nconst getDefaultState = () => {\n return {\n textList: [],\n };\n}\n\nconst state = getDefaultState();\n\nconst getters = {};\n\nconst mutations = {\n LOCALES_SET_EMPTY (state) {\n Object.assign(state, getDefaultState());\n },\n LOCALES_SET_TEXT: (state, payload) => {\n state.textList = payload;\n },\n};\n\nconst actions = {\n LOCALES_GET_TEXT: async ({ commit }, payload) => {\n if (state.textList?.length) {\n return;\n }\n\n try {\n const result = await ViewService.get(\n {\n object: 'lan',\n rowsPerPage: 'all',\n },\n true,\n );\n\n if (result) {\n const { data } = result;\n\n commit('LOCALES_SET_TEXT', data)\n }\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания lan',\n debug: true,\n });\n }\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import store from '@/store';\nimport { ViewService } from '@/common/api.service.js';\n\nconst state = {\n routeFilter: [],\n};\n\nconst getters = {};\n\nconst mutations = {\n FILTER_SET (state, payload) {\n state.routeFilter.push(payload);\n },\n};\n\nconst actions = {\n FILTER_GET: async ({ commit, rootState }, payload) => {\n const { route } = payload\n const {\n auth: { profile },\n } = rootState;\n\n if (!route) {\n return\n }\n\n // Проверка на имеющиеся фильтры\n const isExist = state?.routeFilter?.find((i) => i.route === route);\n\n // Не скачивать если фильтр уже имеется в store\n if (isExist) {\n return\n }\n\n try {\n const result = await ViewService.get(\n {\n object: 'user_filter',\n filter: `route_name eq '${String(route)}'`,\n rowsPerPage: 'all',\n },\n true,\n );\n\n // Найти фильтр для конкретного user\n let filter = result?.data?.find((i) => i.user_id === profile.id);\n\n // Если фильтра нет, выставляем default\n if (!filter) {\n filter = result?.data?.find((i) => i.name.toLowerCase() === 'default');\n }\n\n const data = {\n route,\n ...filter?.parameters?.[0] ?? {},\n };\n\n commit('FILTER_SET', data);\n } catch (error) {\n console.error('Запрос user_filter:', error?.message);\n store.commit('MSG_SET_ITEM', {\n text: error?.message,\n debug: true,\n });\n }\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import { ViewService, TableService } from '@/common/api.service';\nimport store from '@/store'\n\nconst getDefaultState = () => {\n return {\n workflowSectionList: {},\n workflowRequestList: {},\n }\n};\n\nconst state = getDefaultState();\n\nconst getters = {}\n\nconst mutations = {\n WORKFLOW_SET_EMPTY (state) {\n Object.assign(state, getDefaultState());\n },\n WORKFLOW_SET_SECTION: (state, payload) => {\n if (!payload) return;\n\n const { section, data, role } = payload;\n\n if (!state.workflowSectionList[section]) {\n state.workflowSectionList[section] = {};\n }\n\n if (!state.workflowSectionList[section]?.[role]) {\n state.workflowSectionList[section][role] = {};\n }\n\n state.workflowSectionList[section][role] = data;\n },\n WORKFLOW_SET_REQUEST: (state, payload) => {\n if (!payload) return;\n\n const { data, role } = payload;\n\n if (!state.workflowRequestList[role]) {\n state.workflowRequestList[role] = {};\n }\n\n state.workflowRequestList[role] = data;\n },\n};\n\nconst actions = {\n WORKFLOW_PULL_SECTION: async ({ commit }, payload) => {\n // обязательно передавать название раздела\n if (!payload?.section || !payload?.role) return;\n\n const { section, role } = payload;\n\n if (state.workflowSectionList?.[section]?.[role]?.length) {\n return;\n }\n\n const filter = `object_id LIKE '${section}%' and business_role eq '${role}' and disabled eq 0`;\n\n try {\n const { data } = await ViewService.get(\n { object: 'workflow', filter, rowsPerPage: 'all' },\n true,\n );\n\n if (data) {\n commit('WORKFLOW_SET_SECTION', { section, data, role });\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_workflow',\n debug: true,\n });\n }\n\n const tableFilter = `object_id like '%${section}%' and business_role eq 'system'`;\n\n // Отдельно запросить для роли system способом TableService\n try {\n const { data: tableData } = await TableService.get(\n { object: 'workflow', filter: tableFilter, rowsPerPage: 'all' },\n true,\n );\n\n if (tableData) {\n commit('WORKFLOW_SET_SECTION', { section, data: tableData, role: 'system' });\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания table workflow',\n debug: true,\n });\n }\n },\n WORKFLOW_PULL_REQUEST: async ({ commit }, payload) => {\n // обязательно передавать название раздела\n if (!payload?.role) return;\n\n const { role } = payload;\n\n if (state.workflowRequestList?.[role]?.length) {\n return;\n }\n\n const filter =\n `object_id LIKE 'request_push%' and business_role eq '${role}'`;\n\n try {\n const { data } = await ViewService.get(\n { object: 'workflow', filter, rowsPerPage: 'all' },\n true,\n );\n\n if (data) {\n commit('WORKFLOW_SET_REQUEST', { data, role });\n }\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка скачивания view_workflow request_push',\n debug: true,\n });\n }\n },\n};\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import { ViewService } from '@/common/api.service'\n\nconst state = {\n documentMasterData: {},\n isMasterFormValid: true,\n masterFormList: [],\n individualFormList: [],\n};\n\nconst getters = {}\n\nconst mutations = {\n DOCUMENT_MASTER_SET_MAIN_DOCUMENT_DATA: (state, payload = {}) => {\n state.documentMasterData = payload\n },\n DOCUMENT_MASTER_SET_FORM_LIST: (state, payload = []) => {\n state.masterFormList = payload\n },\n DOCUMENT_MASTER_SET_INDIVIDUAL_LIST: (state, payload = []) => {\n state.individualFormList = payload\n },\n DOCUMENT_MASTER_SET_VALID: (state, payload) => {\n state.isMasterFormValid = payload\n },\n}\n\nconst actions = {\n DOCUMENT_MASTER_GET_FORM_LIST: async ({ commit }, payload) => {\n const { section = '' } = payload ?? {}\n\n if (!section?.length) {\n return []\n }\n\n const filter = ''\n\n try {\n const result = await ViewService.get({ object: `${section}_list`, filter, rowsPerPage: 'all' }, true)\n\n if (result?.data) {\n const { data } = result\n\n commit('DOCUMENT_MASTER_SET_FORM_LIST', data);\n return data\n }\n } catch (error) {\n return []\n }\n },\n DOCUMENT_MASTER_GET_INDIVIDUAL_FORM_LIST: async ({ commit }, payload) => {\n const { filter = '' } = payload ?? {}\n\n try {\n const result = await ViewService.get({\n object: 'overtime',\n filter,\n rowsPerPage: 'all',\n }, true)\n\n if (result) {\n const data = result?.data?.map((item) => ({\n ...item,\n hours_plan_day: item?.details?.time_shift_plan_day_hours ?? 0,\n hours_plan_night: item?.details?.time_shift_plan_night_hours ?? 0,\n hours_fact_day: item?.details?.time_shift_fact_day_hours ?? 0,\n hours_fact_night: item?.details?.time_shift_fact_night_hours ?? 0,\n fact_comments: item?.details?.time_shift_fact_comments ?? 0,\n fact_comments_eng: item?.details?.time_shift_fact_comments_eng ?? 0,\n }));\n\n commit('DOCUMENT_MASTER_SET_INDIVIDUAL_LIST', data)\n }\n } catch (error) {\n commit('MSG_SET_ITEM', {\n text: 'Ошибка в методе DOCUMENT_MASTER_GET_INDIVIDUAL_FORM_LIST',\n debug: true,\n });\n }\n\n return state?.individualFormList\n },\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","const state = {\n isUpdateAvailable: false\n}\n\nconst getters = {}\n\nconst mutations = {\n SET_UPDATE_APP_SHOW: (state) => {\n state.isUpdateAvailable = true\n }\n}\n\nconst actions = {}\n\nexport default {\n state,\n getters,\n actions,\n mutations\n}\n","const state = {\n isModalNotification: false,\n notification: {\n text: '',\n routeLink: '',\n },\n}\n\nconst getters = {}\n\nconst mutations = {\n MODALS_TOGGLE: (state, payload) => {\n switch (payload) {\n case 'notification':\n state.isModalNotification = !state.isModalNotification;\n break;\n default:\n break;\n }\n },\n MODALS_NOTIFICATION_SET_TEXT: (state, payload) => {\n state.notification.text = payload;\n },\n MODAL_NOTIFICATION_OPEN: (state, payload) => {\n const { text = '', routeLink = '' } = payload ?? {}\n state.notification.text = text;\n state.notification.routeLink = routeLink;\n state.isModalNotification = true\n },\n MODAL_NOTIFICATION_CLOSE: (state, payload) => {\n state.notification.text = '';\n state.notification.routeLink = '';\n state.isModalNotification = false\n },\n};\n\nconst actions = {\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","const state = {\n supportForm: {\n role: '',\n },\n};\n\nconst getters = {}\n\nconst mutations = {\n // Выставить роль, которая уйдет с формой поддержки\n SUPPORT_SET_FORM_ROLE: (state, payload) => {\n state.supportForm.role = payload ?? ''\n },\n}\n\nconst actions = {}\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport param from './param.module'\nimport auth from './auth.module'\nimport msg from './msg.module'\nimport app from './app.module'\nimport estimate from './modules/estimate'\nimport pwa from './modules/pwa'\nimport dictionary from './modules/dictionary'\nimport signing from './modules/signing';\nimport modals from './modules/modals';\nimport layout from './modules/layout';\nimport locales from './modules/locales';\nimport filter from './modules/filter';\nimport workflow from './modules/workflow';\nimport support from './modules/support';\nimport documentMaster from './modules/documentMaster';\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n modules: {\n param,\n auth,\n msg,\n app,\n estimate,\n pwa,\n dictionary,\n signing,\n modals,\n layout,\n locales,\n filter,\n workflow,\n support,\n documentMaster,\n },\n});\n\nexport default store\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n _vm.$style.Container,\n ( _obj = {}, _obj[_vm.$style.Primary] = _vm.color === 'primary', _obj[_vm.$style.Secondary] = _vm.color === 'secondary', _obj[_vm.$style.Light] = _vm.color === 'light', _obj[_vm.$style.H2] = _vm.size === 'h2', _obj[_vm.$style.H3] = _vm.size === 'h3', _obj[_vm.$style.H4] = _vm.size === 'h4', _obj[_vm.$style.H5] = _vm.size === 'h5', _obj[_vm.$style.XLarge] = _vm.size === 'xLarge', _obj[_vm.$style.Large] = _vm.size === 'large', _obj[_vm.$style.BodyMain] = _vm.size === 'bodyMain', _obj[_vm.$style.BodyCard] = _vm.size === 'bodyCard', _obj[_vm.$style.Small] = _vm.size === 'small', _obj[_vm.$style.XSmall] = _vm.size === 'xSmall', _obj[_vm.$style.Cap] = _vm.size === 'caption', _obj[_vm.$style.Left] = _vm.textAlign === 'left', _obj[_vm.$style.Center] = _vm.textAlign === 'center', _obj[_vm.$style.Right] = _vm.textAlign === 'right', _obj[_vm.$style.Border] = _vm.border, _obj[_vm.$style.Margin] = _vm.noMargin, _obj ) ]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiText.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiText.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n\n\n\n","import { render, staticRenderFns } from \"./UiText.vue?vue&type=template&id=28c475ec&\"\nimport script from \"./UiText.vue?vue&type=script&lang=js&\"\nexport * from \"./UiText.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiText.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import UiText from './UiText.vue';\n\nexport default UiText;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isModalOpen)?_c('UiModal',{attrs:{\"title\":\"Notification\",\"size\":\"500px\"},on:{\"close\":_vm.handleClose},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('VBtn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.handleClose}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")]),(_vm.isRouteLink)?_c('VBtn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.handleRedirect}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Go\"))+\" \")]):_vm._e()]},proxy:true}],null,false,175914546)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.notificationText))+\" \")])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isOpen: {\n type: Boolean,\n default: false,\n },\n isLocal: {\n type: Boolean,\n default: false,\n },\n};\n","\n\n\n \n \n {{ $t(notificationText) }}\n \n \n \n {{ $t(\"Close\") }}\n \n \n {{ $t(\"Go\") }}\n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalNotification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalNotification.vue?vue&type=script&lang=js&\"","import { computed } from '@vue/composition-api'\nimport { useStore } from '@vueblocks/vue-use-vuex';\nimport { useRouter } from 'vue2-helpers/vue-router';\n\nexport default function useModalNotification (props, { emit }) {\n const { state, commit } = useStore();\n const router = useRouter();\n\n const isModalOpen = computed(() => props.isLocal ? props?.isOpen : state?.modals?.isModalNotification);\n const notificationText = computed(() => state?.modals?.notification?.text);\n const routeLink = computed(() => state?.modals?.notification?.routeLink);\n const isRouteLink = computed(() => Boolean(routeLink?.value?.length));\n\n const handleClose = () => {\n if (props.isLocal) {\n emit('closeModal')\n return\n }\n\n commit('MODALS_TOGGLE', 'notification')\n }\n\n const handleRedirect = () => {\n handleClose()\n router.push(routeLink.value)\n }\n\n return {\n isModalOpen,\n isRouteLink,\n notificationText,\n routeLink,\n handleClose,\n handleRedirect,\n }\n}\n","import { render, staticRenderFns } from \"./ModalNotification.vue?vue&type=template&id=bea2b148&scoped=true&\"\nimport script from \"./ModalNotification.vue?vue&type=script&lang=js&\"\nexport * from \"./ModalNotification.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModalNotification.vue?vue&type=style&index=0&id=bea2b148&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bea2b148\",\n null\n \n)\n\nexport default component.exports","import ModalNotification from './ModalNotification.vue'\n\nexport default ModalNotification;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"SupportForm__Container__2Flt4\",\"Content\":\"SupportForm__Content__2mFDC\",\"FormContent\":\"SupportForm__FormContent__2b2rk\",\"Success\":\"SupportForm__Success__3FPpL\",\"SuccessTitle\":\"SupportForm__SuccessTitle__3RCjn\",\"FormHidden\":\"SupportForm__FormHidden__3LLwk\",\"Caption\":\"SupportForm__Caption__32gqE\",\"Title\":\"SupportForm__Title__21Yso\",\"Select\":\"SupportForm__Select__1SbUu\",\"VIcon\":\"SupportForm__VIcon__DPpmu\"};","export const ROLE_CODE = {\n hr: 'hr',\n employee: 'employee',\n manager: 'manager',\n reviewer: 'reviewer',\n gf: 'gf_manager',\n};\n\nexport const ROLE_NAME = {\n hr: 'Hr',\n employee: 'Employee',\n manager: 'Manager',\n reviewer: 'Reviewer',\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Content\":\"App__Content__1W-B-\",\"Background\":\"App__Background__1ju8g\"};","export const checkIsWebpack = () => {\n return typeof process !== 'undefined' && process.env.VUE_APP_BUILDER === 'webpack'\n};\n","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLogo.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLogo.vue?vue&type=style&index=0&lang=scss&module=true&\"","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLogo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLogo.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n\n\n\n","export default {\n isLogin: {\n type: Boolean,\n default: false,\n },\n};\n","import { render, staticRenderFns } from \"./AppLogo.vue?vue&type=template&id=a8c5c3d2&\"\nimport script from \"./AppLogo.vue?vue&type=script&lang=js&\"\nexport * from \"./AppLogo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppLogo.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RouterLink',{attrs:{\"to\":{ name: 'home' }}},[_c('img',{class:_vm.$style.Logo,attrs:{\"src\":_vm.srcLogo,\"alt\":\"EmployeeGate\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiList.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n {{ !isTranslateOff ? $t(item[itemTitle]) : item[itemTitle] }}\n \n {{ !isTranslateOff ? $t(item.text) : item.text }}\n \n \n \n \n\n\n\n","export default {\n items: {\n type: Array,\n default () {\n return []\n },\n },\n isSubTitle: {\n type: Boolean,\n default: false,\n },\n selectItem: {\n type: Number,\n default: -1,\n },\n selectRoute: {\n type: String,\n default: '',\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n isTranslateOff: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n default: 'secondary',\n },\n returnItem: {\n type: String,\n default: '',\n },\n};\n","import { render, staticRenderFns } from \"./UiList.vue?vue&type=template&id=025980f0&\"\nimport script from \"./UiList.vue?vue&type=script&lang=js&\"\nexport * from \"./UiList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiList.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{class:_vm.$style.Ul,style:(_vm.cssVars(_vm.color))},_vm._l((_vm.items),function(item,i){\nvar _obj;\nreturn _c('li',{key:i,class:[_vm.$style.Li, ( _obj = {}, _obj[_vm.$style.Active] = _vm.selectClass(item, i), _obj )],on:{\"click\":function($event){return _vm.handleItemClick(item)}}},[(item.img)?_c('img',{class:_vm.$style.Icon,attrs:{\"src\":item.img}}):(item.icon)?_c('span',{class:(\"mdi \" + (item.icon) + \" \" + (_vm.$style.Icon))}):_vm._e(),_c('div',{class:_vm.$style.ListContent},[_vm._v(\" \"+_vm._s(!_vm.isTranslateOff ? _vm.$t(item[_vm.itemTitle]) : item[_vm.itemTitle])+\" \"),(_vm.isSubTitle)?_c('samp',{class:_vm.$style.SubTitle},[_vm._v(\" \"+_vm._s(!_vm.isTranslateOff ? _vm.$t(item.text) : item.text)+\" \")]):_vm._e()])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isList: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n default: 'secondary',\n },\n};\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSelect.vue?vue&type=script&lang=js&\"","\n\n\n \n \n\n \n \n \n {{ languagesList[selectedItemLang].lang }}\n \n \n \n \n \n\n","import { render, staticRenderFns } from \"./LanguageSelect.vue?vue&type=template&id=9b879266&\"\nimport script from \"./LanguageSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSelect.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isList)?_c('UiList',{attrs:{\"items\":_vm.languagesList,\"select-item\":_vm.selectedItemLang,\"is-translate-off\":\"\",\"return-item\":\"lang\",\"color\":_vm.color},on:{\"click\":_vm.handleLanguage}}):_c('UiMenu',{scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('UiBtn',_vm._b({attrs:{\"icon\":\"mdi-web\",\"color\":_vm.color}},'UiBtn',props,false),[_vm._v(\" \"+_vm._s(_vm.languagesList[_vm.selectedItemLang].lang)+\" \")])]}}])},[_c('UiList',{attrs:{\"items\":_vm.languagesList,\"select-item\":_vm.selectedItemLang,\"is-translate-off\":\"\",\"return-item\":\"lang\",\"color\":_vm.color},on:{\"click\":_vm.handleLanguage}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginHeader.vue?vue&type=script&lang=js&\"","\n\n\n \n \n\n \n \n \n \n \n \n\n\n\n","import { render, staticRenderFns } from \"./LoginHeader.vue?vue&type=template&id=81b16be0&\"\nimport script from \"./LoginHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./LoginHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoginHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container},[_c('AppLogo',{attrs:{\"is-login\":\"\"}}),_c('div',{class:_vm.$style.Buttons},[_c('LanguageSelect',{attrs:{\"color\":\"eg-secondary\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListGroup.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n \n\n\n\n","import { render, staticRenderFns } from \"./UiListGroup.vue?vue&type=template&id=3502c268&\"\nimport script from \"./UiListGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./UiListGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiListGroup.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{on:{\"click\":_vm.handleOpenList}},[_vm._t(\"activator\",null,{\"props\":{'class': [_vm.$style.Group, ( _obj = {}, _obj[_vm.$style.GroupOpen] = _vm.isShowGroupList, _obj )]}})],2),_c('div',{class:[_vm.$style.GroupList, ( _obj$1 = {}, _obj$1[_vm.$style.GroupListHide] = !_vm.isShowGroupList, _obj$1 )]},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListItem.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n\n\n\n","export default {\n icon: {\n type: String,\n default: '',\n },\n img: {\n type: String,\n default: '',\n },\n color: {\n type: String,\n default: 'secondary',\n },\n};\n","import { render, staticRenderFns } from \"./UiListItem.vue?vue&type=template&id=f50ebfd0&\"\nimport script from \"./UiListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./UiListItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiListItem.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.$style.Li,style:(_vm.cssVars(_vm.color))},[(_vm.img)?_c('img',{class:_vm.$style.Icon,attrs:{\"src\":_vm.img}}):(_vm.icon)?_c('span',{class:(\"mdi \" + _vm.icon + \" \" + (_vm.$style.Icon))}):_vm._e(),_c('div',{class:_vm.$style.ListContent},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgHeader.vue?vue&type=script&lang=js&\"","\n \n \n \n\n \n EmployeeGate\n \n\n \n\n \n \n \n \n \n mdi-camera\n \n \n\n \n \n {{ grant ?\n getGrantName()\n :\n tt(profile, 'name') || profile.login || 'UserName'\n }}\n \n \n\n \n \n \n \n mdi-bell\n \n \n \n \n\n \n \n \n\n \n\n \n \n \n \n \n \n \n {{ $t('Language') }}\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import { render, staticRenderFns } from \"./EgHeader.vue?vue&type=template&id=7cb76126&\"\nimport script from \"./EgHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./EgHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EgHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('VAppBar',{staticClass:\"elevation-3\",class:_vm.$style.AppBar,attrs:{\"app\":\"\",\"hide-on-scroll\":\"\",\"scroll-behavior\":\"hide\",\"height\":\"56\",\"scroll-threshold\":\"56\"}},[_c('AppLogo'),_c('RouterLink',{class:_vm.$style.Link,attrs:{\"to\":{ name: 'home'}}},[_vm._v(\" EmployeeGate \")]),_c('VProgressLinear',{attrs:{\"active\":_vm.loading,\"indeterminate\":_vm.loading,\"absolute\":\"\",\"location\":\"bottom\",\"bottom\":\"\",\"height\":\"2\",\"color\":\"primary\"}}),_c('VSpacer'),_c('div',{class:_vm.$style.BtnBoard},[(_vm.isAuthenticated)?_c('RouterLink',{class:_vm.$style.Avatar,attrs:{\"to\":{ name: 'employee' }}},[(_vm.imgUrl)?_c('VImg',{attrs:{\"src\":_vm.imgUrl}}):_c('VIcon',{attrs:{\"color\":\"secondary\"}},[_vm._v(\" mdi-camera \")])],1):_vm._e(),(_vm.isAuthenticated)?_c('UiBtn',{staticClass:\"hidden-sm-and-down\",attrs:{\"is-active-route-off\":\"\",\"to\":{ name: 'profile'}}},[_c('div',{class:_vm.$style.Profile},[_vm._v(\" \"+_vm._s(_vm.grant ? _vm.getGrantName() : _vm.tt(_vm.profile, 'name') || _vm.profile.login || 'UserName')+\" \")])]):_vm._e(),(_vm.isAuthenticated && !_vm.paramHideUnreadBell)?_c('AppTooltip',{attrs:{\"text\":_vm.tooltipNotification}},[_c('UiBtn',{attrs:{\"to\":{ name: 'umessages'}}},[_c('UiBadge',{attrs:{\"value\":_vm.unreadMessages,\"is-dot\":\"\"}},[_c('VIcon',[_vm._v(\" mdi-bell \")])],1)],1)],1):_vm._e(),(_vm.grantsExists && _vm.isAuthenticated && !_vm.paramHideGrantsButton)?_c('AppTooltip',{attrs:{\"text\":_vm.iconData.hint,\"is-translate-off\":\"\"}},[_c('UiBtn',{staticClass:\"hidden-sm-and-down\",attrs:{\"to\":{ name: 'ugrants'},\"icon\":_vm.iconData.type,\"is-icon\":\"\"}})],1):_vm._e(),(!_vm.paramLanguageSwitchOff)?_c('LanguageSelect',{staticClass:\"hidden-sm-and-down\"}):_vm._e(),_c('UiMenu',{attrs:{\"is-not-close\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('UiBtn',_vm._b({attrs:{\"is-icon\":\"\",\"icon\":\"mdi-dots-vertical\",\"disabled\":!_vm.isAuthenticated}},'UiBtn',props,false))]}}]),model:{value:(_vm.isRightMenu),callback:function ($$v) {_vm.isRightMenu=$$v},expression:\"isRightMenu\"}},[(!_vm.paramLanguageSwitchOff)?_c('UiListGroup',{staticClass:\"hidden-md-and-up\",scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('UiListItem',_vm._b({attrs:{\"icon\":\"mdi-translate\"}},'UiListItem',props,false),[_vm._v(\" \"+_vm._s(_vm.$t('Language'))+\" \")])]}}],null,false,2425850830)},[_c('LanguageSelect',{attrs:{\"is-list\":\"\"}})],1):_vm._e(),_c('UiList',{attrs:{\"items\":_vm.itemFilter,\"select-route\":\"key\"},on:{\"click\":_vm.handleAction}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgDrawer.vue?vue&type=script&lang=js&\"","\n \n \n \n \n {{$t('Power Data')}}\n \n \n \n \n\n \n\n \n \n {{$t('Users')}}\n \n \n \n mdi-account-multiple\n \n {{ $t('Employees') }}\n \n \n \n mdi-shield-account\n \n {{ $t('Users') }}\n \n\n \n {{$t('Dictionaries')}}\n \n\n \n \n mdi-list-status\n \n {{ $t('Statuses') }}\n \n \n \n mdi-sitemap\n \n {{ $t('Workflows') }}\n \n \n \n mdi-file-document-multiple\n \n {{ $t('Reports') }}\n \n \n \n mdi-format-list-bulleted-type\n \n {{ $t('Document Types') }}\n \n \n \n mdi-playlist-plus\n \n {{ $t('Request Types') }}\n \n \n \n mdi-newspaper-plus\n \n {{ $t('Request Types') }}\n \n\n \n \n\n\n\n","import { render, staticRenderFns } from \"./EgDrawer.vue?vue&type=template&id=c18b8ae2&\"\nimport script from \"./EgDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./EgDrawer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isAdmin)?_c('v-navigation-drawer',{attrs:{\"mini-variant\":\"\",\"absolute\":\"\",\"expand-on-hover\":\"\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_c('strong',[_vm._v(_vm._s(_vm.$t('Power Data')))])]),_c('v-list-item-subtitle')],1)],1)]},proxy:true}],null,false,1268540951),model:{value:(_vm.leftDrawer),callback:function ($$v) {_vm.leftDrawer=$$v},expression:\"leftDrawer\"}},[_c('v-divider'),_c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"pl-10\"},[_vm._v(_vm._s(_vm.$t('Users')))])],1),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'employees'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-account-multiple\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Employees')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'users'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-shield-account\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Users')))])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"pl-10\"},[_vm._v(_vm._s(_vm.$t('Dictionaries')))])],1),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'statuses'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-list-status\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Statuses')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'workflows'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-sitemap\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Workflows')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'reports'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-file-document-multiple\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Reports')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'documenttypes'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-format-list-bulleted-type\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Document Types')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'expensetypes'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-playlist-plus\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Request Types')))])],1):_vm._e(),(_vm.isAdmin)?_c('v-list-item',{attrs:{\"to\":{ name: 'requesttypes'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-newspaper-plus\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Request Types')))])],1):_vm._e()],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgFooter.vue?vue&type=script&lang=js&\"","\n\n\n \n \n © {{ currentYear }} UCMS Group\n \n |\n \n v {{ version }} {{ mode }}\n \n \n\n\n\n","import { render, staticRenderFns } from \"./EgFooter.vue?vue&type=template&id=e0f46f1c&\"\nimport script from \"./EgFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./EgFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EgFooter.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import EgFooter from './EgFooter.vue';\n\nexport default EgFooter;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VFooter',{class:_vm.$style.Container,attrs:{\"app\":\"\",\"absolute\":\"\"}},[_c('div',{class:_vm.$style.Content},[_c('div',[_vm._v(\"© \"+_vm._s(_vm.currentYear)+\" UCMS Group\")]),_c('div',{class:_vm.$style.Divider},[_vm._v(\" | \")]),_c('div',[_vm._v(\" v \"+_vm._s(_vm.version)+\" \"+_vm._s(_vm.mode))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirm.vue?vue&type=script&lang=js&\"","\n \n \n \n {{ $t(title) }}\n \n \n \n \n \n \n {{$t(options.agreeText)}}\n {{$t(options.cancelText)}}\n \n \n \n\n\n\n\n\n","import { render, staticRenderFns } from \"./Confirm.vue?vue&type=template&id=50a31f98&\"\nimport script from \"./Confirm.vue?vue&type=script&lang=js&\"\nexport * from \"./Confirm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Confirm.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{style:({ zIndex: _vm.options.zIndex }),attrs:{\"max-width\":_vm.options.width},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.cancel.apply(null, arguments)}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":_vm.options.color,\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',{staticClass:\"white--text\"},[_vm._v(_vm._s(_vm.$t(_vm.title)))])],1),_c('VCardText',{directives:[{name:\"show\",rawName:\"v-show\",value:(!!_vm.message),expression:\"!!message\"}]},[_c('div',{class:_vm.$style.Content,domProps:{\"innerHTML\":_vm._s(_vm.message)}})]),_c('v-card-actions',{staticClass:\"pt-0\"},[_c('v-spacer'),(_vm.options.agreeText)?_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},nativeOn:{\"click\":function($event){return _vm.agree.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.$t(_vm.options.agreeText)))]):_vm._e(),(_vm.options.cancelText)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},nativeOn:{\"click\":function($event){return _vm.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.$t(_vm.options.cancelText)))]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=js&\"","\n\n \n \n 0\"\n :model-value=\"valueInterval / msg.timeout * 100\"\n :value=\"valueInterval / msg.timeout * 100\"\n color=\"white\"\n />\n \n \n {{ messageCount > 1 ? `${t('Number of notifications')}: ${messageCount}` : '' }}\n \n \n \n \n mdi-close\n \n \n \n \n \n \n \n \n \n mdi-chevron-left\n \n \n \n \n mdi-chevron-right\n \n \n \n \n {{ t('Ok') }}\n \n \n \n\n\n\n\n\n","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=60738e08&\"\nimport script from \"./Notification.vue?vue&type=script&lang=js&\"\nexport * from \"./Notification.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.msg)?_c('VSnackbar',{class:[_vm.$style.Snackbar, (!_vm.msg.bottom && _vm.isWebpack) ? 'mt-16' : 'mt-2'],style:('opacity: ' + _vm.opacity),attrs:{\"color\":_vm.msg.color,\"top\":!_vm.msg.bottom,\"bottom\":!!_vm.msg.bottom,\"right\":\"\",\"elevation\":\"2\",\"vertical\":\"\",\"location\":!!_vm.msg.bottom ? 'bottom right': 'top right',\"timeout\":_vm.msg.timeout,\"multi-line\":\"\",\"width\":\"360\"},nativeOn:{\"click\":function($event){return _vm.onClick.apply(null, arguments)}},scopedSlots:_vm._u([{key:_vm.slotActions,fn:function(ref){\nvar attrs = ref.attrs;\nreturn [(!!_vm.msg.bottom && _vm.msg.navigator && _vm.debug)?[(_vm.getLastMessage(_vm.currentIndex - 1))?_c('VBtn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.prevMessage}},[_c('VIcon',[_vm._v(\" mdi-chevron-left \")])],1):_vm._e(),(_vm.getNextMessage(_vm.currentIndex + 1))?_c('VBtn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.nextMessage}},[_c('VIcon',[_vm._v(\" mdi-chevron-right \")])],1):_vm._e()]:_vm._e(),(_vm.msg.Ok)?_c('VBtn',_vm._b({attrs:{\"text\":\"\"},on:{\"click\":_vm.onOk}},'VBtn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.t('Ok'))+\" \")]):_vm._e()]}}],null,true),model:{value:(_vm.msgDisplay),callback:function ($$v) {_vm.msgDisplay=$$v},expression:\"msgDisplay\"}},[_c('div',{class:_vm.$style.Notification},[(_vm.msg.timeout > 0)?_c('VProgressLinear',{attrs:{\"model-value\":_vm.valueInterval / _vm.msg.timeout * 100,\"value\":_vm.valueInterval / _vm.msg.timeout * 100,\"color\":\"white\"}}):_vm._e(),_c('div',{class:_vm.$style.Title},[_c('small',[_vm._v(\" \"+_vm._s(_vm.messageCount > 1 ? ((_vm.t('Number of notifications')) + \": \" + _vm.messageCount) : '')+\" \")]),_c('VSpacer'),_c('VBtn',{class:_vm.$style.BtnClose,attrs:{\"icon\":\"\",\"size\":\"small\",\"variant\":\"text\"},on:{\"click\":_vm.onClose}},[_c('VIcon',[_vm._v(\" mdi-close \")])],1)],1),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.msg.text)}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModals.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppModals.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n\n","import { render, staticRenderFns } from \"./AppModals.vue?vue&type=template&id=7abb4d97&\"\nimport script from \"./AppModals.vue?vue&type=script&lang=js&\"\nexport * from \"./AppModals.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ModalSigning'),_c('ModalNotification')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportIcon.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n","import { render, staticRenderFns } from \"./SupportIcon.vue?vue&type=template&id=3f0ca20f&\"\nimport script from \"./SupportIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./SupportIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SupportIcon.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container},[_c('AppTooltip',{attrs:{\"text\":\"Ask Us for Support\",\"position\":\"left\"}},[_c('button',{class:_vm.$style.Button},[_c('div',{class:_vm.$style.Icon},[_c('span',{staticClass:\"mdi mdi-face-agent\"})])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SupportForm.vue?vue&type=template&id=2fdb70ac&\"\nimport script from \"./SupportForm.vue?vue&type=script&lang=js&\"\nexport * from \"./SupportForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SupportForm.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportChat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportChat.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"formRef\",class:_vm.$style.Container},[_c('div',{class:_vm.$style.Caption},[_c('div',{class:_vm.$style.Title},[_vm._v(\" \"+_vm._s(_vm.$t('User support'))+\" \")]),_c('div',[_c('VBtn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.handleClose}},[_c('VIcon',[_vm._v(\"mdi-close\")])],1)],1)]),_c('div',{class:_vm.$style.Content},[(_vm.isSuccess)?_c('div',{class:_vm.$style.Success},[_c('div',{class:_vm.$style.SuccessTitle},[_vm._v(\" \"+_vm._s(_vm.$t('Message sent!'))+\" \")]),_c('div',{class:_vm.$style.SuccessText},[_vm._v(\" \"+_vm._s(_vm.$t('We will contact you shortly.'))+\" \")])]):_vm._e(),_c('div',{class:[_vm.$style.Form, ( _obj = {}, _obj[_vm.$style.FormHidden] = _vm.isSuccess, _obj )]},[_c('div',{class:_vm.$style.FormContent},[_c('VTextField',{attrs:{\"label\":_vm.$t('Please provide your full name'),\"outlined\":\"\",\"variant\":\"outlined\",\"hide-details\":\"auto\",\"error\":!_vm.checkField(_vm.formName),\"disabled\":_vm.isFieldNameDisabled},model:{value:(_vm.formName),callback:function ($$v) {_vm.formName=$$v},expression:\"formName\"}}),_c('VTextField',{attrs:{\"label\":_vm.$t('Organization'),\"outlined\":\"\",\"variant\":\"outlined\",\"hide-details\":\"auto\",\"error\":!_vm.checkField(_vm.formOrganization),\"disabled\":_vm.isFieldOrganizationNameDisabled},model:{value:(_vm.formOrganization),callback:function ($$v) {_vm.formOrganization=$$v},expression:\"formOrganization\"}}),_c('VTextField',{attrs:{\"label\":_vm.$t('Contact information (email and\\\\or phone number)'),\"outlined\":\"\",\"variant\":\"outlined\",\"hide-details\":\"auto\",\"error\":!_vm.checkField(_vm.formContact),\"disabled\":_vm.isLoading},model:{value:(_vm.formContact),callback:function ($$v) {_vm.formContact=$$v},expression:\"formContact\"}}),(_vm.paramIsSupportFormRecipientVisible)?_c('VSelect',{class:_vm.$style.Select,attrs:{\"items\":_vm.itemSupport,\"label\":_vm.$t('Pick the team to address your request to'),\"item-title\":\"text\",\"return-object\":\"\",\"outlined\":\"\",\"variant\":\"outlined\",\"dense\":\"\",\"density\":\"compact\",\"hide-details\":\"auto\",\"error\":!_vm.checkField(_vm.selectSupport.text)},on:{\"change\":function($event){return _vm.handleClearSelect()},\"update:model-value\":function($event){return _vm.handleClearSelect()}},model:{value:(_vm.selectSupport),callback:function ($$v) {_vm.selectSupport=$$v},expression:\"selectSupport\"}}):_vm._e(),(_vm.paramIsSupportFormRecipientVisible)?_c('VSelect',{class:_vm.$style.Select,attrs:{\"label\":_vm.$t(\"Pick the topic\"),\"items\":_vm.selectSupport.problem,\"outlined\":\"\",\"variant\":\"outlined\",\"dense\":\"\",\"density\":\"compact\",\"hide-details\":\"auto\",\"error\":!_vm.checkField(_vm.selectProblem),\"disabled\":!_vm.selectSupport},model:{value:(_vm.selectProblem),callback:function ($$v) {_vm.selectProblem=$$v},expression:\"selectProblem\"}}):_vm._e(),_c('VTextarea',{attrs:{\"label\":_vm.$t('Ask us a question'),\"placeholder\":_vm.$t('Describe the difficulties you encounter while working with the program'),\"outlined\":\"\",\"variant\":\"outlined\",\"hide-details\":\"auto\",\"no-resize\":\"\",\"error\":!_vm.checkField(_vm.formText),\"disabled\":_vm.isLoading},model:{value:(_vm.formText),callback:function ($$v) {_vm.formText=$$v},expression:\"formText\"}}),(_vm.isAuthenticated)?_c('ImgInput',{on:{\"checkIsValid\":_vm.checkIsValid,\"updateValue\":_vm.handleFileList}}):_vm._e()],1),_c('div',{class:_vm.$style.Action},[_c('VBtn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading},on:{\"click\":function($event){return _vm.handleSend()}}},[_c('VIcon',{class:_vm.$style.VIcon},[_vm._v(\" mdi-send \")]),_vm._v(\" \"+_vm._s(_vm.$t('Send'))+\" \")],1)],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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 mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SupportChat.vue?vue&type=template&id=6186302f&\"\nimport script from \"./SupportChat.vue?vue&type=script&lang=js&\"\nexport * from \"./SupportChat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SupportChat.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container},[_c('div',{class:_vm.$style.Content},[(_vm.isFormVisible)?_c('div',{class:_vm.$style.Form},[_c('SupportForm',{on:{\"close\":function($event){return _vm.handleCloseForm()}}}),_c('div',{class:_vm.$style.Outside,on:{\"click\":function($event){return _vm.handleCloseForm()}}})],1):_vm._e(),_c('div',{class:_vm.$style.Icon,on:{\"click\":function($event){return _vm.handleToggleForm()}}},[_c('SupportIcon')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, computed } from '@vue/composition-api';\nimport { useStore } from '@vueblocks/vue-use-vuex';\n\nexport default function useSupportWindow () {\n const { state } = useStore();\n\n const isSupportFormState = computed(() => state?.auth?.isSupportForm ?? false)\n\n const supportFormStorageName = 'support-window'\n const isSupportForm = ref(false)\n\n // Выставить форму по данным в localStorage\n const setFormByLocalStorage = () => {\n const storedSupportFormValue = localStorage.getItem(supportFormStorageName);\n isSupportForm.value = !!JSON.parse(storedSupportFormValue);\n }\n\n // Переключение настроек в localStorage\n const setSupportFormLocalStorage = () => {\n // Если в стайте выставлено значение, то обновить localStorage\n if (isSupportFormState.value) {\n window.localStorage.setItem(\n supportFormStorageName,\n String(isSupportFormState.value),\n );\n } else {\n // Иначе удалить запись\n localStorage.removeItem(supportFormStorageName);\n }\n\n setFormByLocalStorage()\n }\n\n return {\n isSupportFormState,\n isSupportForm,\n setFormByLocalStorage,\n setSupportFormLocalStorage,\n }\n}\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6e093250&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VApp',{class:( _obj = {}, _obj[_vm.$style.Background] = _vm.isLayoutLogin, _obj ),attrs:{\"id\":\"inspire\"}},[(_vm.isLayoutLogin)?_c('LoginHeader'):_c('EgHeader'),_c('EgDrawer'),_c('VMain',{ref:\"content\",staticClass:\"mt-5\"},[(_vm.initialized)?[_c('RouterView',{key:_vm.$route.fullPath,on:{\"handleUpdate\":_vm.handleUpdate}})]:[_c('VSkeletonLoader',{staticClass:\"mx-auto\",attrs:{\"max-width\":\"500\",\"type\":\"date-picker\"}})]],2),_c('Notification',{ref:\"notification\"}),_c('Confirm',{ref:\"confirm\"}),_c('AppModals'),(_vm.isSupportForm)?_c('SupportChat'):_vm._e(),_c('EgFooter')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready () {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB',\n )\n },\n registered (registration) {\n console.log('Service worker has been registered.')\n\n // Routinely check for app updates by testing for a new service worker.\n setInterval(() => {\n registration.update()\n }, 1000 * 60 * 60) // e.g. hourly checks\n },\n cached () {\n console.log('Content has been cached for offline use.')\n },\n updatefound () {\n console.log('New content is downloading.')\n },\n updated (registration) {\n console.log('New content is available; please refresh.')\n\n // Add a custom event and dispatch it.\n // Used to display of a 'refresh' banner following a service worker update.\n // Set the event payload to the service worker registration object.\n document.dispatchEvent(\n new CustomEvent('swUpdated', { detail: registration }),\n )\n },\n offline (registration) {\n console.log('No internet connection found. App is running in offline mode.')\n\n document.dispatchEvent(\n new CustomEvent('swOffline', { detail: registration }),\n )\n },\n error (error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import Vue from 'vue'\nimport axios from 'axios'\nimport VueAxios from 'vue-axios'\nimport store from '../store'\nimport router from '../router'\n\nVue.use(VueAxios, axios)\nVue.axios.defaults.timeout = 1800000\n\nlet isRefreshing = false\nlet refreshSubscribers = []\n\nfunction subscribeTokenRefresh (cb) {\n refreshSubscribers.push(cb)\n}\n\nfunction onRefreshed (token) {\n refreshSubscribers.map(cb => cb(token))\n}\n\naxios.interceptors.request.use(\n config => {\n // Если вызов не нашего api, продолжим\n if (config.baseURL !== store.getters.getApiUrl) {\n return config\n }\n // Установим всем нашим запросам кастомный загловок\n config.headers['x-fingerprint'] = store.getters.getFingerprint\n\n // Проверим срок жизни токена и если осталось 1 минуту до окончания или меньше, перезапросим refresh_token, чтобы не ждать 401 ошибки\n if (store.getters.isAuthenticated &&\n !(config.params && config.params.method && config.params.method.indexOf('token') > -1) &&\n !(config.data && config.data.method && config.data.method.indexOf('token') > -1)) {\n if (isRefreshing === true) {\n console.log(`request.use: Мы в процессе обновления токена, добавим ${config.url} запрос в очередь`)\n // refreshSubscribers.push(config)\n // return\n const originalRequest = config\n const retryOrigReq = new Promise((resolve, reject) => {\n subscribeTokenRefresh(token => {\n // replace the expired token and retry\n originalRequest.headers.Authorization = 'Bearer ' + token\n console.log(`request.use: Выполняем отложенный запрос ${originalRequest.url}`)\n resolve(axios(originalRequest))\n })\n })\n return retryOrigReq\n }\n const expirationDate = store.getters.getTokenExpirationDate\n const msDiff = expirationDate - new Date() // in ms\n if (msDiff / 1000 < 30) { // 30 сек\n console.log(`request.use: Осталось менее 1 минуты действия токена, добавим запрос ${config.url} в очередь и выполним refresh`)\n isRefreshing = true\n // queu.push(config)\n store.dispatch('AUTH_REFRESH_TOKEN')\n .then(() => {\n console.log('request.use: Refresh token is complete')\n // if (queu.length > 0) {\n // queu.forEach(originalRequest => {\n // originalRequest.headers.Authorization = `Bearer ${store.getters.getToken.access_token}`\n // console.log(`request.use: Выполняем отложенный запрос ${originalRequest.url}`)\n // axios(originalRequest)\n // })\n // }\n // const CancelToken = axios.CancelToken\n // const source = CancelToken.source()\n // config.cancelToken = source.token\n isRefreshing = false\n onRefreshed(store.getters.getToken.access_token)\n refreshSubscribers = []\n })\n .catch(() => {\n console.log('request.use: Ошибка при передаче RefreshToken')\n store.commit('AUTH_SET_EMPTY')\n router.push({ name: 'login' }, () => {})\n })\n }\n }\n return config\n },\n error => {\n return Promise.reject(error)\n },\n)\n\naxios.interceptors.response.use(\n response => {\n if (response.data && response.data.error) {\n const apiError = response.data.error\n if (apiError.code === -32708) { // Wrong access_token value\n console.log('request.use: Неверное значение access_token')\n store.commit('AUTH_SET_EMPTY')\n router.push({ name: 'login' }, () => {})\n }\n }\n return response\n },\n)\n/*\naxios.interceptors.response.use(\n response => response,\n error => {\n if (error.response && error.response.status === 401) {\n // Это может быть отложенный запрос со старым токеном, пропустим его (его как-то надо было отменить раньше...)\n if (error.config.cancelToken) return\n\n console.log('response.use: Получили ошибку 401, скорее всего истек срок действия токена')\n if (error.response.data && error.response.data.error && error.response.data.error.code === -32708) {\n console.log(`response.use: отложим запрос ${error.config.url} и выполним refresh`)\n const originalRequest = error.config\n store.dispatch('AUTH_REFRESH_TOKEN')\n .then(() => {\n console.log('response.use: Refresh token is complete')\n if (originalRequest) {\n const retryOriginalRequest = new Promise((resolve) => {\n originalRequest.headers.Authorization = `Bearer ${store.getters.getToken.access_token}`\n console.log(`response.use: Выполняем отложенный запрос ${originalRequest.url}`)\n resolve(axios(originalRequest))\n })\n return retryOriginalRequest\n }\n })\n .catch(() => {\n console.log('response.use: Ошибка при передаче RefreshToken')\n store.commit('AUTH_SET_EMPTY')\n this.$router.push({ name: 'login' }, () => {})\n // console.log(error)\n })\n }\n } else {\n // Ошибка с cancelToken возникает при отмене оригинального запроса и заменой его на новый\n if (error && error.message.indexOf('cancelToken') > -1) {\n console.log('response.use: cancelToken error')\n } else {\n return Promise.reject(error)\n }\n }\n }\n)\n*/\n","import Vue from 'vue'\nimport App from './App.vue'\nimport './registerServiceWorker'\nimport router from './router'\nimport store from './store'\nimport vuetify from './plugins/vuetify'\nimport i18n from './plugins/i18n'\nimport DateFilter from './common/date.filter'\nimport ErrorFilter from './common/error.filter'\nimport moment from 'moment'\nimport VueMask from 'v-mask'\nimport VueCompositionAPI from '@vue/composition-api'\nimport './plugins/axios'\n\nVue.config.productionTip = false\nVue.filter('date', DateFilter)\nVue.filter('error', ErrorFilter)\nVue.use(VueMask)\nVue.use(VueCompositionAPI)\n\nVue.prototype.$moment = moment\n\nconst vm = new Vue({\n router,\n store,\n vuetify,\n i18n,\n render: h => h(App),\n})\n\nvm.$mount('#app')\n","import format from 'date-fns/format'\n\nexport default date => {\n return format(new Date(date), 'MMMM D, YYYY')\n}\n","export default errorValue => {\n return `${errorValue[0]}`\n}\n","export { default } from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=scss&module=true&\"","import store from '@/store';\nimport dayjs from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport { getDateAddDay } from '@/common/date/dateFormats';\n\n// возвращает количество дней до конца года (isYear кол. дней в году)\nexport const getDayInYear = ({ isYear, date }) => {\n const startDate = isYear ? dayjs().startOf('year') : dayjs()\n // от сегодня (isYear от начала года) до заданной даты (date)\n if (date) return dayjs(date).diff(startDate, 'day')\n return dayjs().endOf('year').diff(startDate, 'day');\n}\n\n// Проверка, что день уже прошёл\nexport const checkIsPastDate = (date) => {\n if (!date?.length) {\n return false;\n }\n\n const inputDate = dayjs(date, 'YYYY-MM-DD');\n const today = dayjs().startOf('day'); // Текущая дата без времени\n\n return inputDate?.isBefore(today);\n};\n\nexport const getBreakTime = (start, end) => {\n const startTime = dayjs(start, 'HH:mm');\n let endTime = dayjs(end, 'HH:mm');\n\n if (endTime?.isBefore(startTime)) {\n endTime = endTime.add(1, 'day');\n }\n\n const duration = endTime.diff(startTime, 'hour', true);\n\n const breakEntry = store?.state?.dictionary?.OvertimeBreakTime?.find(\n (entry) => duration >= entry.hour_start && duration <= entry.hour_end,\n );\n\n return breakEntry?.break ?? 0;\n}\n\n// Совпадение даты без учета времени\nexport const checkSameDay = (date1 = '', date2 = '') => {\n return dayjs(date1).isSame(dayjs(date2), 'day');\n}\n\n// Подсчитать дневные и ночные часы\nexport const countDayNightHours = (startTime, endTime) => {\n const NIGHT_START = 22;\n const NIGHT_END = 6;\n const start = dayjs(startTime, 'HH:mm');\n let end = dayjs(endTime, 'HH:mm');\n\n if (end.isBefore(start)) {\n end = end.add(1, 'day');\n }\n\n let totalNightHours = 0;\n let totalDayHours = 0;\n let current = start;\n\n while (current.isBefore(end)) {\n const nextMinute = current.add(1, 'minute');\n const hour = current.hour();\n\n if (hour >= NIGHT_START || hour < NIGHT_END) {\n totalNightHours += 1 / 60;\n } else {\n totalDayHours += 1 / 60;\n }\n\n current = nextMinute;\n }\n\n return {\n totalDayHours: parseFloat(totalDayHours.toFixed(2)),\n totalNightHours: parseFloat(totalNightHours.toFixed(2)),\n };\n}\n\nexport const addTime = (timeStr = '', hoursToAdd = 0) => {\n const time = dayjs(timeStr, 'HH:mm');\n const newTime = time.add(hoursToAdd * 60, 'minute');\n\n return newTime?.format('HH:mm');\n}\n\n// Получить следующий день от переданного\nexport const getNextDay = (date = '') => {\n if (!date?.length) {\n return ''\n }\n\n return dayjs(date).add(1, 'day').format('YYYY-MM-DD')\n}\n\n// Получить разницу часов\nexport const getHourDifference = (startTime, endTime) => {\n const start = dayjs(startTime, 'HH:mm');\n let end = dayjs(endTime, 'HH:mm');\n\n // Если endTime меньше startTime, значит, это следующие сутки\n if (end?.isBefore(start)) {\n end = end.add(1, 'day');\n }\n\n const diff = end.diff(start, 'hour', true);\n\n if (isNaN(diff)) return 0;\n\n return Math.abs(diff);\n}\n\n// вычисляем дату с учетом всех выходных до первого рабочего дня (day количество рабочих дней)\nexport const getDateAddWorkDay = (day) => {\n dayjs.extend(isoWeek);\n const weekendDays = [6, 7] // выходные\n const { calendars = [] } = store?.state?.app ?? {}\n let i = 0\n let x = Number(day) + 1\n while (i < x) {\n const date = getDateAddDay(i)\n if (weekendDays.includes(dayjs(date).isoWeekday())) {\n x++\n } else {\n calendars.find(el => {\n if ((el?.start_date === date && (el?.type === 'holiday' || el?.type === 'non-working'))) {\n x++\n }\n })\n }\n i++\n }\n // вернет дату окончания\n return getDateAddDay(i - 1)\n}\n","import Vue from 'vue'\nimport store from '@/store'\nimport helpers from '@/common/helpers'\nimport axios from 'axios'\n\nconst apiQueue = []\nlet currentId = 0\n\nfunction addQueue (item) {\n currentId = currentId + 1\n apiQueue.push({ id: currentId, item })\n store.commit('PARAM_SET_LOADING', (apiQueue.length > 0))\n return currentId\n}\nfunction delQueue (id) {\n const index = apiQueue.findIndex(i => i.id === id)\n if (index > -1) {\n apiQueue.splice(index, 1)\n store.commit('PARAM_SET_LOADING', (apiQueue.length > 0))\n }\n}\n\nconst ApiService = {\n get (resource, params, auth = false, config = {}) {\n config.baseURL = store.getters.getApiUrl\n config.params = params\n if (!config.responseType) config.responseType = 'json'\n if (!config.headers) config.headers = {}\n config.headers['Accept-Language'] = store.state.param.locale\n if (auth) {\n if (!store.getters.isAuthenticated || !store.getters.getToken.access_token) throw new Error('Empty')\n config.headers.Authorization = `Bearer ${store.getters.getToken.access_token}`\n }\n const requestId = addQueue({ resource, params })\n return Vue.axios.get(resource, config)\n .then(response => {\n delQueue(requestId)\n if (!response) {\n throw new Error('Empty')\n }\n if (response && response.data && response.data.error) throw Object.assign(new Error(), { response })\n\n if (response.data && response.data.result) {\n return response.data.result\n } else {\n return response\n }\n })\n .catch(error => {\n delQueue(requestId)\n console.log('ApiService.get: Error')\n if (error.response && error.response.data && error.response.data.error) {\n const apiErr = error.response.data.error\n const message = apiErr.message_eng && store.getters.getLocale === 'en' ? apiErr.message_eng : apiErr.message\n store.commit('MSG_SET_ITEM', {\n text: message,\n debug: true,\n })\n throw Object.assign(new Error(), apiErr)\n }\n if (error && error.message.indexOf('Empty') === -1) throw new Error(error)\n })\n },\n\n post (resource, params, auth = false, config = {}) {\n config.baseURL = store.getters.getApiUrl\n if (!config.headers) config.headers = {}\n config.headers['Accept-Language'] = store.state.param.locale\n if (auth) {\n if (!store.getters.isAuthenticated || !store.getters.getToken.access_token) return\n config.headers.Authorization = `Bearer ${store.getters.getToken.access_token}`\n }\n const requestId = addQueue({ resource, params })\n return Vue.axios.post(resource, params, config)\n .then(response => { // (this.result = response.data.result))\n delQueue(requestId)\n if (!response) {\n throw new Error('Empty')\n }\n if (response && response.data && response.data.error) throw Object.assign(new Error(), { response })\n\n // Если вернулся массив ответов и в них задан rpc.id, перенумеруем массив response\n if (Array.isArray(response.data)) {\n const results = []\n response.data.forEach(item => {\n if (item.id) {\n results[item.id] = item.result\n }\n // Здесь же в цикле проверим ответы с ошибкой в batch\n if (item.error) {\n store.commit('MSG_SET_ITEM', {\n text: `[rpc.id: ${item.id}]: ${item.error.message}`,\n debug: true,\n })\n }\n })\n return results\n } else {\n return response.data.result\n }\n })\n .catch(error => {\n delQueue(requestId)\n console.log('ApiService.post: Error')\n if (error.response && error.response.data && error.response.data.error) {\n const apiErr = error.response.data.error\n const message = apiErr.message_eng && store.getters.getLocale === 'en' ? apiErr.message_eng : apiErr.message\n store.commit('MSG_SET_ITEM', {\n text: message,\n debug: true,\n })\n throw Object.assign(new Error(), apiErr)\n }\n if (error && error.message && error.message.indexOf('Empty') === -1) throw new Error(error)\n })\n },\n\n}\n\nexport default ApiService\n\nexport const TokenService = {\n get (params) {\n if (!params.email) delete params.email\n if (!params.pinCode) delete params.pinCode\n if (!params.details) delete params.details\n const opt = {\n method: 'token.get',\n params: params,\n }\n if (params.details) {\n opt.params = Object.assign(opt.params, helpers.urlQueryToArray(params.details))\n delete opt.params.details\n }\n if (!opt.params.client) {\n const client = store.getters.getClient\n if (client) opt.params.client = client.id\n }\n opt.params.host = window.location.href\n // const fingerprint = store.getters.getFingerprint\n // if (fingerprint) opt.params.fingerprint = fingerprint\n return ApiService.post('token', opt, false, { withCredentials: true })\n },\n async refresh (token) {\n const refreshToken = token && token.refresh_token ? token.refresh_token : token\n // return ApiService.get('token', { method: 'token.refresh', refresh_token: refreshToken })\n const opt = {\n method: 'token.refresh',\n params: {},\n }\n if (refreshToken) opt.params.refreshToken = refreshToken\n // const fingerprint = store.getters.getFingerprint\n // if (fingerprint) opt.params.fingerprint = fingerprint\n return ApiService.post('token', opt, false, { withCredentials: true })\n },\n async grant (params) {\n // return ApiService.get('token', { method: 'token.grant', grant: params.grant }, true)\n const opt = {\n method: 'token.grant',\n params: {\n grant: params.grant,\n },\n }\n // const fingerprint = store.getters.getFingerprint\n // if (fingerprint) opt.params.fingerprint = fingerprint\n return ApiService.post('token', opt, true, { withCredentials: true })\n },\n remove (params) {\n const { isDelete = false } = params\n const refreshToken = store.getters.getRefreshToken\n const refreshTokenExist = helpers.cookieExist('refresh_token')\n if (!isDelete && (!refreshToken && !refreshTokenExist)) {\n return\n }\n // return ApiService.get('token', { method: 'token.refresh', refresh_token: refreshToken })\n const opt = {\n method: 'token.remove',\n params: {},\n }\n if (refreshToken) opt.params.refreshToken = refreshToken\n return ApiService.post('token', opt, true, { withCredentials: true })\n },\n async restore (params) {\n const opt = {\n method: 'token.restore',\n params: params,\n }\n if (params.details) {\n opt.params.data = Object.assign(opt.params.data, helpers.urlQueryToArray(params.details))\n delete opt.params.details\n }\n if (!opt.params.data.client) {\n const client = store.getters.getClient\n if (client) opt.params.data.client = client.id\n }\n return ApiService.post('token', opt, false)\n },\n}\n\nexport const UserService = {\n get () {\n // const rpcRequest = {\n // jsonrpc: '2.0',\n // method: 'user.get',\n // id: 1\n // }\n // return ApiService.post('rpc', rpcRequest, true)\n\n const params = {}\n params.method = 'user.get'\n return ApiService.get('user', params, true)\n },\n edit (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.edit',\n id: 1,\n params: params,\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n add (params) {\n params.uniqueConstraints = ['email']\n params.uniqueAction = 'getExistID'\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.add',\n id: 1,\n params: params,\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n notify (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.notify',\n id: 1,\n params: params,\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join('') })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message })\n }\n return response\n })\n },\n createSecret (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.auth',\n id: 1,\n params: {\n data: {\n action: 'createSecret',\n },\n },\n }\n return ApiService.post('rpc', rpcRequest, true)\n },\n saveSecret (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.auth',\n id: 1,\n params: {\n data: {\n action: 'saveSecret',\n gaSecret: params?.gaSecret ?? '',\n twoFactor: 'Google',\n pinCode: params?.pinCode ?? '',\n },\n },\n };\n\n return ApiService.post('rpc', rpcRequest, true)\n },\n removeSecret (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.auth',\n id: 1,\n params: {\n data: {\n action: 'removeSecret',\n gaSecret: '',\n twoFactor: '',\n },\n },\n };\n\n return ApiService.post('rpc', rpcRequest, true)\n },\n checkSecret (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.auth',\n id: 1,\n params: { data: { action: 'checkSecret', pinCode: params.pinCode } },\n }\n return ApiService.post('rpc', rpcRequest, true)\n },\n externalLink (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'user.auth',\n id: 1,\n params: { data: { action: 'externalLink', code: params.code } },\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (response && response.length > 0 && response[1].data && response[1].data.link) {\n return response[1].data.link\n }\n })\n },\n checkSso (params) {\n const { code = '', session_state: sessionState = '', state = '' } = params\n const baseURL = store?.getters?.getApiUrl ?? '';\n\n if (!baseURL?.length) {\n return\n }\n\n return axios.get(`${baseURL}/microsoft_oauth`, {\n params: {\n code,\n state,\n session_state: sessionState,\n },\n });\n },\n}\n\nexport const ViewService = {\n get (params, auth = false) {\n params.method = 'view.get'\n return ApiService.get('view', params, auth)\n },\n}\n\nexport const TableService = {\n get (params) {\n params.method = 'table.get'\n return ApiService.get('table', params, true)\n },\n edit (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'table.edit',\n id: 1,\n params: {\n object: params.object,\n data: params.data,\n },\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n add (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'table.add',\n id: 1,\n params: params,\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response) && !params.silence) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n del (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'table.del',\n id: 1,\n params: {\n object: params.object,\n data: params.data,\n },\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response) && !params.silence) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n}\n\nexport const ReportService = {\n get (params, auth = true) {\n const object = params.object_id\n params.method = 'report.get'\n delete params.object_id\n return ApiService.get(`report/${object}`, params, auth, { responseType: 'arraybuffer' })\n },\n sign (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'sign.add',\n id: 1,\n params,\n }\n delete params.workflow;\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item?.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n certificatePin (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'sign.certificate',\n id: 1,\n params,\n }\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item?.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n signStamp (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'sign.stamp',\n id: 1,\n params,\n }\n delete params.startDate;\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item?.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n signCode (params) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'sign.pin_check',\n id: 1,\n params: params,\n }\n delete params.startDate;\n return ApiService.post('rpc', rpcRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item?.message) {\n messages.push(item.message)\n }\n })\n store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n}\n\nexport const DownloadService = {\n get (params, auth = true) {\n const file = params.file\n params.method = 'file.download'\n delete params.file\n delete params.name // это original_name, для api он не нужен\n return ApiService.get(`files/${file}`, params, auth, { responseType: 'arraybuffer' })\n },\n}\n\nexport const DownloadFileService = {\n get (params, auth = true) {\n const file = params.file\n const fileName = params.name;\n params.method = 'file.get'\n delete params.file\n delete params.name\n\n if (params.path) {\n return ApiService.get(`file/${fileName}`, params, auth, {\n responseType: 'arraybuffer',\n });\n }\n\n return ApiService.get(`file/${file}`, params, auth, { responseType: 'arraybuffer' })\n },\n}\n\nexport const UploadService = {\n post (params, auth = false) {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: 'file.upload',\n id: 1,\n params: {\n object_id: params.object_id,\n registrator_id: params.registrator_id,\n original_name: params.original_name,\n },\n }\n const formData = params.formData\n formData.append('jsonrpc', rpcRequest.jsonrpc)\n formData.append('method', rpcRequest.method)\n formData.append('id', rpcRequest.id)\n formData.append('params', JSON.stringify(rpcRequest.params))\n return ApiService.post('rpc', formData, true, { headers: { 'Content-Type': 'multipart/form-data' } })\n .then(response => {\n if (!response) throw new Error('Empty')\n store.commit('MSG_SET_ITEM', {\n text: response.message,\n debug: true,\n })\n })\n },\n}\n\nexport const BatchService = {\n post (batchParams) {\n const rpcBatchRequest = []\n batchParams.forEach(params => {\n const rpcRequest = {\n jsonrpc: '2.0',\n method: params.method,\n id: params.batchId,\n params: params,\n }\n rpcBatchRequest.push(rpcRequest)\n })\n\n return ApiService.post('rpc', rpcBatchRequest, true)\n .then(response => {\n if (!response) throw new Error('Empty')\n if (Array.isArray(response)) {\n const messages = []\n response.forEach(item => {\n if (item && item.message) {\n messages.push(item.message)\n }\n })\n if (messages.length > 0) store.commit('MSG_SET_ITEM', { text: messages.join(''), debug: true })\n } else {\n store.commit('MSG_SET_ITEM', { text: response.message, debug: true })\n }\n return response\n })\n },\n}\n\nexport const ExcelFileService = {\n get (params, auth = true) {\n const template = params.template\n params.method = 'excel.get'\n delete params.template\n return ApiService.get(`excel/${template}`, params, auth, { responseType: 'arraybuffer' })\n },\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateItem.vue?vue&type=style&index=0&id=5074079b&lang=scss&scoped=true&\"","export { default } from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImgInput.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImgInput.vue?vue&type=style&index=0&lang=scss&module=true&\"","import store from '@/store';\n\nexport default {\n getLocale () {\n const {\n param: { locale },\n } = store.state;\n\n return locale;\n },\n\n isEng () {\n const {\n param: { locale },\n } = store.state;\n\n return locale === 'en';\n },\n\n // Получить данные текста по алиасу\n getTextByAlias (alias = '') {\n const { textList = [] } = store?.state?.locales ?? {}\n const textItem = textList?.find((i) => i.alias === alias) ?? {}\n\n if (!textItem) {\n return ''\n }\n\n const { name_eng: nameEng = '', name = '' } = textItem\n\n const text = this.isEng() ? nameEng : name;\n\n return text?.trim() ?? ''\n },\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckMark.vue?vue&type=style&index=1&id=38c2ebe0&lang=scss&scoped=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CertificateList.vue?vue&type=style&index=0&id=0737091e&lang=scss&scoped=true&\"","export const cssVars = (color) => {\n var s = new Option().style;\n s.color = color;\n if (s.color) {\n return { '--color': s.color }\n } else {\n const root = document.querySelector(':root');\n const colors = getComputedStyle(root).getPropertyValue(`--${color}`);\n return { '--color': colors }\n }\n}\n","export const STATUS_NAME = {\n empty: 'empty',\n draft: 'draft',\n prepared: 'prepared',\n agreed: 'agreed',\n created: 'created',\n};\n","import store from '@/store';\n\nexport default {\n isChipsActualOff () {\n return !!Number(store.state?.param?.data?.chips_actual_off);\n },\n locationFilterOnGrid () {\n return !!Number(store.state?.param?.data?.location_filter_show_in_grid);\n },\n paramVacationPlanPriority () {\n return store?.state?.param?.data?.vacation_plan_priority ?? '';\n },\n paramBtripDateDisable () {\n return store?.state?.param?.data?.btrip_date_disable ?? '';\n },\n paramVacationValidateForbiddenPeriod () {\n return Number(\n store?.state?.param?.data?.vacation_validate_forbidden_period ?? 0,\n );\n },\n paramApproveForbiddenPeriod () {\n return Number(\n store?.state?.param?.data?.approve_forbidden_period ?? 0,\n );\n },\n paramVacationSchedule () {\n return !!Number(store?.state?.param?.data?.vacation_schedule ?? 0);\n },\n paramIsVacationValidateProcessCorrectionTogether () {\n return !!Number(\n store?.state?.param?.data\n ?.vacation_validate_process_correction_together ?? 0,\n );\n },\n paramCheckSickleaveNumberOnClose () {\n return !!Number(store?.state?.param?.data?.check_sickleave_number_on_close ?? 0);\n },\n // Видимость формы техподдержки\n paramCheckIsSupportFormVisible () {\n return !!Number(store?.state?.param?.data?.is_support_form_visible ?? 0);\n },\n // Работа в выходной день. В параметре список типов документов.\n paramWorkdayCalendarRestriction () {\n return store?.state?.param?.data?.workday_calendar_restriction ?? '';\n },\n // Блокировка минимальной даты. В параметре список типов документов.\n paramPastDayRestriction () {\n return store?.state?.param?.data?.pastday_calendar_restriction ?? '';\n },\n // Разблокировка минимальной даты. В параметре список типов документов.\n paramPastDayAllowed () {\n return store?.state?.param?.data?.pastday_calendar_allowed ?? '';\n },\n // Не проверять период запрета до наступления отпуска (document_type_codes)\n paramVacationValidateForbiddenExcept () {\n return store?.state?.param?.data?.vacation_validate_forbidden_except ?? '';\n },\n // Список документов с недельными периодами\n paramWeeklyDoctypeList () {\n return store?.state?.param?.data?.weekly_doctype_list ?? '';\n },\n // количество дней для сообщений при входе\n paramEmailDaysDelt () {\n return Number(store?.state?.param?.data?.email_days_delt ?? 3);\n },\n // Клиент является SSO\n paramSsoClient () {\n return !!Number(store?.state?.param?.data?.sso_client ?? 0);\n },\n paramSsoLogoutUrl () {\n return store?.state?.param?.data?.sso_logout ?? '';\n },\n};\n","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiModalV2.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiModalV2.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBtn.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBtn.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiMenu.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiMenu.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckMark.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckMark.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalSigning.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalSigning.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListGroup.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListGroup.vue?vue&type=style&index=0&lang=scss&module=true&\"","import store from '@/store';\nimport dayjs from 'dayjs';\nimport { TableService } from '@/common/api.service';\n\nimport { ROLE_CODE } from '@/constants/role/Role';\nimport { STATUS_NAME } from '@/constants/document/StatusName';\nimport { OBJECT_NAME } from '@/constants/document/ObjectName';\n\nexport const createAbsence = async (document, workflow) => {\n if (!document) return;\n\n const {\n documentTypes: documentTypeList = [],\n workflow: workflowList = [],\n } = store?.state?.app;\n\n const {\n id: documentTypeId = '',\n code: documentTypeCode = '',\n } = documentTypeList?.find(({ code }) => code === workflow?.detail?.create_dayoff);\n\n const absenceWorkflow = workflowList?.find(({\n object_id: objectId = '',\n next_status_id: nextStatusId = '',\n reject = '',\n business_role: role = '',\n }) =>\n objectId === OBJECT_NAME?.absence &&\n nextStatusId === STATUS_NAME?.draft &&\n role === ROLE_CODE?.employee &&\n reject === '0',\n );\n\n let absenceId = ''\n\n const {\n id: documentId = '',\n start_date: start = '',\n end_date: end = '',\n dayoff_date: dayOffDate = '',\n creator_id: creator = '',\n employee_id: employee = '',\n organization_id: organization = '',\n } = document;\n\n const absenceData = {\n start_date: dayOffDate,\n end_date: dayOffDate,\n date: dayjs(),\n days: dayjs(end).diff(dayjs(start), 'day') + 1,\n creator_id: creator,\n employee_id: employee,\n document_type: documentTypeCode,\n document_type_id: documentTypeId,\n status_id: absenceWorkflow?.next_status_id ?? '',\n indicators: absenceWorkflow?.indicators ?? '',\n organization_id: organization ?? '',\n overtime_ids: documentId,\n };\n\n try {\n const absenceResult = await TableService.add({ object: 'absence', data: [absenceData] });\n absenceId = absenceResult?.[1]?.data?.[0]?.id ?? '';\n\n if (!absenceId?.length) {\n throw new Error()\n }\n\n await TableService.add({\n object: 'document_status',\n data: [{\n object_id: absenceWorkflow?.object_id ?? '',\n registrator_id: absenceId,\n status_id: absenceWorkflow?.next_status_id ?? '',\n workflow_id: absenceWorkflow?.id ?? '',\n organization_id: absenceData.organization_id ?? '',\n }],\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', { text: 'Ошибка создания absence', debug: true });\n return {}\n }\n\n return {\n routeLink: `uabsence/${absenceId}`,\n }\n};\n\nexport const agreedDayOff = async (document = {}) => {\n if (!document) return;\n\n const {\n workflow: workflowList = [],\n timesheets = [],\n } = store?.state?.app ?? [];\n\n // Найти документ, где дата отгула равно дате начала отсутствия\n const {\n overtime_ids: absenceId = '',\n organization_id: organizationId = '',\n } = timesheets?.find((i) => i.id === document?.id)\n\n if (!absenceId?.length) {\n return\n }\n\n const absenceWorkflow = workflowList?.find(({\n object_id: objectId = '',\n next_status_id: nextStatusId = '',\n reject = '',\n business_role: role = '',\n }) =>\n objectId === OBJECT_NAME?.absence &&\n nextStatusId === STATUS_NAME?.agreed &&\n role === ROLE_CODE?.manager &&\n reject === '0',\n );\n\n try {\n await TableService.add({\n object: 'document_status',\n data: [{\n object_id: absenceWorkflow?.object_id ?? '',\n registrator_id: absenceId,\n status_id: absenceWorkflow?.next_status_id ?? '',\n workflow_id: absenceWorkflow?.id ?? '',\n organization_id: organizationId,\n }],\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', { text: 'Ошибка смены статуса документа Отсутствия', debug: true });\n }\n}\n","import {\n saveParentVacationStatus,\n updateVacationReplacedList,\n deleteCorrectionRequest,\n getVacationCorrectionReplacedData,\n} from '@/common/documentSection/vacation/vacationHelpers';\nimport {\n createAbsence,\n agreedDayOff,\n} from '@/common/documentSection/overtime/overtimeHelpers';\nimport paramHelpers from '@/common/settings/paramHelpers';\nimport { checkParamTypeInclude } from '@/common/settings/paramUtils'\nimport helpers from '@/common/helpers'\n\nimport { ROLE_CODE } from '@/constants/role/Role';\nimport { OBJECT_NAME } from '@/constants/document/ObjectName';\n\n// Выполнить необходимые действия после сохранения документа\nexport const performDocumentAfterSaveAction = async (document, workflow) => {\n const {\n next_status_id: nextStatus = '',\n reject = 0,\n object_id: objectId = '',\n business_role: role = '',\n detail = {},\n } = workflow ?? {};\n const isWorkflowReject = !!(Number(reject) ?? 0)\n\n let data = {}\n\n if (!document || !objectId?.length) {\n return;\n }\n\n switch (objectId) {\n case 'vacation_correction':\n // Отправка корректировки\n if (\n (\n nextStatus === 'prepared' || // Сотрудник\n nextStatus === 'accepted' // HR\n ) &&\n !isWorkflowReject &&\n paramHelpers.paramIsVacationValidateProcessCorrectionTogether()\n ) {\n updateVacationReplacedList(document, workflow);\n }\n\n // Отзыв корректировки\n if (\n (\n nextStatus === 'draft'\n // || nextStatus === 'agreed' // Отключена, т.к. HR должен отклонять отдельно каждую корректировку\n ) &&\n isWorkflowReject &&\n paramHelpers.paramIsVacationValidateProcessCorrectionTogether()\n ) {\n updateVacationReplacedList(document, workflow);\n }\n\n // Руководитель согласовывает корректировку\n if (nextStatus === 'agreed' && !isWorkflowReject) {\n saveParentVacationStatus(document);\n }\n\n // Отзыв корректировки\n if (\n nextStatus === 'declined' &&\n isWorkflowReject &&\n role !== ROLE_CODE?.hr // HR отклоняет отдельно каждую\n ) {\n updateVacationReplacedList(document, workflow);\n }\n\n // При сбросе до черновика удалить реквест\n if (nextStatus === 'draft' && isWorkflowReject) {\n deleteCorrectionRequest(document);\n }\n\n break;\n\n case OBJECT_NAME?.overtime : {\n if (document?.compensation_type === 'dayoff') {\n if (detail?.create_dayoff?.length) {\n data = await createAbsence(document, workflow)\n }\n\n if (detail?.dayoff_agreed) {\n agreedDayOff(document, workflow)\n }\n }\n break;\n }\n\n default:\n break;\n }\n\n return data\n};\n\nexport const performDocumentBeforeSaveAction = (document, workflow) => {\n const {\n next_status_id: nextStatus = '',\n reject = 0,\n object_id: objectId = '',\n } = workflow ?? {};\n const isWorkflowReject = !!(Number(reject) ?? 0);\n\n if (!document || !objectId?.length) {\n return;\n }\n\n switch (objectId) {\n case 'vacation_correction':\n // Сотрудник отправляет корректировку\n if (nextStatus === 'prepared' && !isWorkflowReject) {\n // Получить данные о replaced документе без изменения данных отображаемых на странице\n return getVacationCorrectionReplacedData(document);\n }\n break;\n\n default:\n return document;\n }\n}\n\n// Проверка на тип документа, который должен идти ровными неделями (7, 14, 21 дней и т.д.)\nexport const checkWeeklyDocTypeList = (code = '') => {\n if (!helpers.isString(code) || !code?.length) {\n return false\n }\n\n return checkParamTypeInclude(paramHelpers?.paramWeeklyDoctypeList(), code)\n}\n\nexport const checkMultipleOfWeek = (days = 0) => {\n days = Number(days)\n\n // Не проверять 0, т.к. при 0 выдаёт true\n if (days === 0) {\n return false\n }\n\n return days % 7 === 0;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListContent\":\"UiList__ListContent__1Qf55\",\"SubTitle\":\"UiList__SubTitle__swxqN\",\"Ul\":\"UiList__Ul__22-Pz\",\"Li\":\"UiList__Li__1CWts\",\"Icon\":\"UiList__Icon__1vdHQ\",\"Active\":\"UiList__Active__1Ynco\"};","export { default } from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirm.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirm.vue?vue&type=style&index=0&lang=scss&module=true&\"","const path = [\r\n {\r\n path: '/',\r\n name: 'home',\r\n meta: {\r\n roles: 'user,employee,manager,candidate,recruiter,hr,accountant, reviewer,admin',\r\n },\r\n component: () => import('@/views/Home'),\r\n },\r\n {\r\n name: 'login',\r\n path: '/login',\r\n component: () => import('@/views/Login'),\r\n },\r\n {\r\n name: 'detail',\r\n path: '/detail',\r\n component: () => import('@/views/Login'),\r\n },\r\n {\r\n name: 'register',\r\n path: '/register',\r\n component: () => import('@/views/Register'),\r\n },\r\n {\r\n name: 'settings',\r\n path: '/settings',\r\n component: () => import('@/views/SettingsView'),\r\n },\r\n {\r\n name: 'sso',\r\n path: '/sso',\r\n component: () => import('@/views/SSO/SsoView'),\r\n },\r\n {\r\n name: 'ssoLogout',\r\n path: '/sso-logout',\r\n component: () => import('@/views/SSO/SsoLogout'),\r\n },\r\n {\r\n name: 'guide',\r\n path: '/guide',\r\n component: () => import('@/views/Guide'),\r\n },\r\n {\r\n name: 'profile',\r\n path: '/profile',\r\n component: () => import('@/views/Profile'),\r\n },\r\n {\r\n name: 'ugrants',\r\n path: '/ugrants',\r\n component: () => import('@/views/UGrants'),\r\n },\r\n {\r\n path: '/about',\r\n name: 'about',\r\n component: () => import('@/views/About.vue'),\r\n },\r\n {\r\n path: '/estimate/',\r\n name: 'estimate',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import('@/views/Estimate/EstimateLayout/EstimateLayout.vue'),\r\n children: [\r\n {\r\n name: 'estimate-archive-all',\r\n path: 'archive/:year',\r\n component: () => import('@/views/Estimate/EstimateArchiveAll.vue'),\r\n },\r\n {\r\n name: 'estimate-forms-actual',\r\n path: ':year/actual-forms/',\r\n component: () => import('@/views/Estimate/HR/EstimateForms.vue'),\r\n },\r\n {\r\n name: 'estimate-forms',\r\n path: ':year/forms/',\r\n component: () => import('@/views/Estimate/HR/EstimateForms.vue'),\r\n },\r\n {\r\n name: 'estimate-results',\r\n path: ':year/results/',\r\n component: () => import('@/views/Estimate/HR/EstimateResults.vue'),\r\n },\r\n {\r\n name: 'estimate-valuation',\r\n path: ':year/valuation/',\r\n component: () => import('@/views/Estimate/HR/EstimateValuation.vue'),\r\n },\r\n {\r\n path: 'archive/:year',\r\n name: 'estimateArchive',\r\n component: () => import('@/views/Estimate/EstimateArchive.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: '/estimate-period/',\r\n name: 'estimate-period',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import('@/views/Estimate/Create/EstimateCreate.vue'),\r\n children: [\r\n {\r\n path: ':id/',\r\n name: 'estimate-period-edit',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import('@/views/Estimate/Create/EstimateCreate.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: '/estimate-own/',\r\n name: 'estimate-own',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/views/Estimate/EstimateLayout/EstimateLayout.vue'),\r\n children: [\r\n {\r\n path: ':year/goals/',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/components/Estimate/Tables/EstimateGoals.vue'),\r\n },\r\n {\r\n path: ':year/valuation',\r\n name: 'estimateValuation',\r\n component: () => import('@/components/Estimate/Tables/EstimateValuation.vue'),\r\n },\r\n {\r\n path: ':year/education',\r\n name: 'estimateEducation',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/components/Estimate/Tables/EstimateEducation.vue'),\r\n },\r\n {\r\n path: ':year/planning-goals/',\r\n name: 'estimate-own-planning-goals',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/components/Estimate/Tables/EstimatePlanningGoals.vue'),\r\n },\r\n {\r\n path: ':year/planning-education/',\r\n name: 'estimate-own-planning-education',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/components/Estimate/Tables/EstimatePlanningEducation.vue'),\r\n },\r\n {\r\n path: 'archive/:year',\r\n name: 'estimateArchive-own',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/views/Estimate/EstimateArchive.vue'),\r\n },\r\n {\r\n path: ':year/results/',\r\n name: 'estimate-results-own',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/views/Estimate/HR/EstimateResults.vue'),\r\n },\r\n {\r\n name: 'estimate-form',\r\n path: ':year/form/:id/',\r\n meta: {\r\n own: true,\r\n },\r\n component: () => import('@/views/Estimate/EstimateArchive.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: '/estimate-sub/',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'estimate-sub',\r\n component: () => import('@/views/Estimate/EstimateLayout/EstimateLayout.vue'),\r\n children: [\r\n {\r\n path: ':year/agreement/',\r\n meta: {\r\n sub: true,\r\n },\r\n name: 'estimateAgreement',\r\n component: () => import('@/views/Estimate/EstimateAgreementSub.vue'),\r\n },\r\n {\r\n path: ':year/approve/',\r\n meta: {\r\n sub: true,\r\n },\r\n name: 'estimateApprove',\r\n component: () => import('@/views/Estimate/EstimateApproveSub.vue'),\r\n },\r\n {\r\n name: 'estimate-sub-planning',\r\n path: ':year/planning/',\r\n meta: {\r\n sub: true,\r\n },\r\n component: () => import('@/views/Estimate/EstimatePlanningSub.vue'),\r\n },\r\n {\r\n path: ':year/employee/:id',\r\n meta: {\r\n sub: true,\r\n archive: true,\r\n },\r\n name: 'estimateEmployee',\r\n component: () => import('@/views/Estimate/EstimateEmployee.vue'),\r\n },\r\n {\r\n name: 'estimate-results-sub',\r\n path: ':year/results/',\r\n meta: {\r\n sub: true,\r\n },\r\n component: () => import('@/views/Estimate/HR/EstimateResults.vue'),\r\n },\r\n {\r\n name: 'estimate-forms-sub',\r\n path: ':year/forms/',\r\n meta: {\r\n sub: true,\r\n },\r\n component: () => import('@/views/Estimate/HR/EstimateForms.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: '/estimate-grading/:id',\r\n meta: {\r\n own: true,\r\n },\r\n name: 'estimate-grading',\r\n component: () => import('@/views/Estimate/EstimateGrading/EstimateGrading.vue'),\r\n },\r\n {\r\n path: '/estimate-grading-sub/:id',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'estimate-grading-sub',\r\n props: { sub: true },\r\n component: () => import('@/views/Estimate/EstimateGrading/EstimateGrading.vue'),\r\n },\r\n {\r\n path: '/estimate-grading-hr/:id',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,admin',\r\n },\r\n name: 'estimate-grading-hr',\r\n props: { sub: true },\r\n component: () => import('@/views/Estimate/EstimateGrading/EstimateGrading.vue'),\r\n children: [\r\n {\r\n path: 'archive/:year/',\r\n name: 'estimate-grading-archive',\r\n component: () => import('@/views/Estimate/EstimateGrading/EstimateGrading.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: '/employees',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,admin,reviewer,accountant',\r\n },\r\n name: 'employees',\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Employees.vue'\r\n ),\r\n },\r\n {\r\n path: '/employee/:id?',\r\n name: 'employee',\r\n meta: {\r\n hr: true,\r\n roles: 'employee,hr,recruiter',\r\n },\r\n component: () => import('@/views/Employee.vue'),\r\n },\r\n {\r\n path: '/external-link',\r\n meta: {\r\n roles: 'employee',\r\n },\r\n name: 'external-link',\r\n component: () => import('@/views/ExternalLink.vue'),\r\n },\r\n {\r\n path: '/candidates',\r\n meta: {\r\n hr: true,\r\n roles: 'recruiter,hr',\r\n can: true,\r\n },\r\n name: 'candidates',\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Employees.vue'\r\n ),\r\n },\r\n {\r\n path: '/umessages',\r\n name: 'umessages',\r\n component: () => import('@/views/UMessages.vue'),\r\n },\r\n {\r\n path: '/structure',\r\n name: 'structure',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,admin',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/StructureManagement/StructureManagement.vue'\r\n ),\r\n },\r\n {\r\n path: '/structure-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'structure-own',\r\n component: () => import('@/views/StructureManagement/StructureManagement.vue'),\r\n },\r\n {\r\n path: '/structure-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'structure-sub',\r\n component: () => import('@/views/StructureManagement/StructureManagement.vue'),\r\n },\r\n {\r\n name: 'ufiles',\r\n path: '/ufiles',\r\n meta: {\r\n hr: true,\r\n roles: 'admin,hr',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UFiles'\r\n ),\r\n },\r\n {\r\n name: 'ufiles-can',\r\n path: '/ufiles-can',\r\n meta: {\r\n roles: 'recruiter',\r\n can: true,\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UFiles'\r\n ),\r\n },\r\n {\r\n name: 'utimesheet',\r\n path: '/utimesheet',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UTimesheet'\r\n ),\r\n },\r\n {\r\n name: 'utimesheet-own',\r\n path: '/utimesheet-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UTimesheet'\r\n ),\r\n },\r\n {\r\n name: 'utimesheet-sub',\r\n path: '/utimesheet-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UTimesheet'\r\n ),\r\n },\r\n {\r\n name: 'urequests-own',\r\n path: '/urequests-own/:id?',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n component: () => import('@/views/URequests'),\r\n },\r\n {\r\n name: 'urequests-sub',\r\n path: '/urequests-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n component: () => import('@/views/URequests'),\r\n },\r\n {\r\n name: 'urequests-payslip',\r\n path: '/urequests-payslip',\r\n meta: {\r\n own: true,\r\n payslip: true,\r\n roles: 'employee',\r\n },\r\n component: () => import('@/views/URequests'),\r\n },\r\n {\r\n name: 'urequests-vacschedule',\r\n path: '/urequests-vacschedule',\r\n meta: {\r\n own: true,\r\n vacschedule: true,\r\n roles: 'employee',\r\n },\r\n component: () => import('@/views/URequests'),\r\n },\r\n // Все запросы сотрудников для кадровиков\r\n {\r\n name: 'requests',\r\n path: '/requests',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Requests'\r\n ),\r\n },\r\n // Отчеты и аналитика для кадровиков\r\n {\r\n path: '/urequest',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,admin',\r\n },\r\n name: 'urequest',\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/URequest'\r\n ),\r\n },\r\n {\r\n name: 'urequests',\r\n path: '/urequests/:id?',\r\n meta: {\r\n own: true,\r\n hr: true,\r\n roles: 'hr,admin',\r\n },\r\n component: () => import('@/views/URequests'),\r\n },\r\n // Запросы сотрудников\r\n {\r\n path: '/urequest-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'urequest-own',\r\n props: { own: true },\r\n component: () => import('@/views/URequest'),\r\n },\r\n // Отчеты и аналитика для менеджеров\r\n {\r\n path: '/urequest-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'urequest-sub',\r\n props: { sub: true },\r\n component: () => import('@/views/URequest'),\r\n },\r\n // Карточки документов\r\n {\r\n path: '/uvacation/:id?',\r\n name: 'uvacation',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UVacation.vue'\r\n ),\r\n },\r\n {\r\n path: '/uexpense/:id?',\r\n name: 'uexpense',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UExpense.vue'\r\n ),\r\n },\r\n {\r\n path: '/ubtrip/:id?',\r\n name: 'ubtrip',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UBTrip.vue'\r\n ),\r\n },\r\n {\r\n path: '/uabsence/:id?',\r\n name: 'uabsence',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UAbsence.vue'\r\n ),\r\n },\r\n {\r\n path: '/usickleave/:id?',\r\n name: 'usickleave',\r\n component: () => import(\r\n '@/views/Sickleaves/SickleavesPage.vue'\r\n ),\r\n },\r\n {\r\n path: '/uhomeoffice/:id?',\r\n name: 'uhomeoffice',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UHomeOffice.vue'\r\n ),\r\n },\r\n {\r\n path: '/uovertime/:id?',\r\n name: 'uovertime',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UOvertime.vue'\r\n ),\r\n },\r\n {\r\n name: 'request',\r\n path: '/request/:id?',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Request'\r\n ),\r\n },\r\n {\r\n path: '/urecruitment/:id?',\r\n name: 'urecruitment',\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/URecruitment.vue'\r\n ),\r\n },\r\n {\r\n path: '/urecruitment-own',\r\n meta: {\r\n own: true,\r\n roles: 'candidate',\r\n },\r\n name: 'urecruitment-own',\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/URecruitment.vue'\r\n ),\r\n },\r\n\r\n // Списковые формы документов\r\n {\r\n path: '/uvacations',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'uvacations',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UVacations.vue'\r\n ),\r\n },\r\n {\r\n path: '/uvacations-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'uvacations-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UVacations.vue'\r\n ),\r\n },\r\n {\r\n path: '/uvacations-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uvacations-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UVacations.vue'\r\n ),\r\n },\r\n {\r\n path: '/uexpenses',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'uexpenses',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UExpenses.vue'\r\n ),\r\n },\r\n {\r\n path: '/uexpenses-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'uexpenses-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UExpenses.vue'\r\n ),\r\n },\r\n {\r\n path: '/uexpenses-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uexpenses-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UExpenses.vue'\r\n ),\r\n },\r\n {\r\n path: '/uexpenses-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n name: 'uexpenses-rev',\r\n props: { rev: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UExpenses.vue'\r\n ),\r\n },\r\n {\r\n path: '/ubtrips',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'ubtrips',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UBTrips.vue'\r\n ),\r\n },\r\n {\r\n path: '/ubtrips-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'ubtrips-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UBTrips.vue'\r\n ),\r\n },\r\n {\r\n path: '/ubtrips-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'ubtrips-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UBTrips.vue'\r\n ),\r\n },\r\n {\r\n path: '/ubtrips-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n name: 'ubtrips-rev',\r\n props: {\r\n rev: true,\r\n },\r\n component: () => import(\r\n '@/views/UBTrips.vue'\r\n ),\r\n },\r\n {\r\n path: '/absences',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'uabsences',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UAbsences.vue'\r\n ),\r\n },\r\n {\r\n path: '/uabsences-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'uabsences-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UAbsences.vue'\r\n ),\r\n },\r\n {\r\n path: '/uabsences-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uabsences-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UAbsences.vue'\r\n ),\r\n },\r\n {\r\n path: '/usickleaves',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'usickleaves',\r\n component: () => import(\r\n '@/views/Sickleaves/SickleavesMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/usickleaves-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'usickleaves-own',\r\n props: { own: true },\r\n component: () => import(\r\n '@/views/Sickleaves/SickleavesMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/usickleaves-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'usickleaves-sub',\r\n props: {\r\n sub: true,\r\n },\r\n component: () => import(\r\n '@/views/Sickleaves/SickleavesMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/ustatements',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n name: 'ustatements',\r\n component: () => import(\r\n '@/views/Statement/StatementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/ustatements-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'ustatements-own',\r\n props: {\r\n own: true,\r\n },\r\n component: () => import(\r\n '@/views/Statement/StatementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/ustatements-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'ustatements-sub',\r\n props: {\r\n sub: true,\r\n },\r\n component: () => import(\r\n '@/views/Statement/StatementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/ustatements-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n name: 'ustatements-rev',\r\n props: {\r\n rev: true,\r\n },\r\n component: () => import(\r\n '@/views/Statement/StatementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/ustatement/:id?',\r\n name: 'ustatement',\r\n component: () => import(\r\n '@/views/Statement/StatementPage.vue'\r\n ),\r\n },\r\n {\r\n name: 'homeoffices',\r\n path: '/homeoffices',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UHomeOffices'\r\n ),\r\n },\r\n {\r\n path: '/uhomeoffices-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'uhomeoffices-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UHomeOffices.vue'\r\n ),\r\n },\r\n {\r\n path: '/uhomeoffices-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uhomeoffices-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UHomeOffices.vue'\r\n ),\r\n },\r\n {\r\n path: '/overtimes',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,accountant',\r\n },\r\n name: 'uovertimes',\r\n component: () => import(\r\n '@/views/UOvertimes'\r\n ),\r\n },\r\n {\r\n path: '/overtime-master-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'overtime-master-sub',\r\n component: () => import(\r\n '@/views/OvertimeMaster/OvertimeMasterMain'\r\n ),\r\n },\r\n {\r\n path: '/overtime-master-form/:id?',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'overtime-master-form',\r\n component: () => import(\r\n '@/views/Overtime/OvertimeMaster'\r\n ),\r\n },\r\n {\r\n path: '/uovertimes-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'uovertimes-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UOvertimes.vue'\r\n ),\r\n },\r\n {\r\n path: '/uovertimes-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uovertimes-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UOvertimes.vue'\r\n ),\r\n },\r\n {\r\n path: '/uovertimes-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n name: 'uovertimes-rev',\r\n props: {\r\n rev: true,\r\n },\r\n component: () => import(\r\n '@/views/UOvertimes.vue'\r\n ),\r\n },\r\n {\r\n path: '/urecruitments-rec',\r\n meta: {\r\n rec: true,\r\n roles: 'recruiter',\r\n },\r\n name: 'urecruitments-rec',\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/URecruitments.vue'\r\n ),\r\n },\r\n {\r\n path: '/urecruitments',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n name: 'urecruitments',\r\n component: () => import(\r\n /* webpackChunkName: \"recruitment\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/URecruitments.vue'\r\n ),\r\n },\r\n {\r\n name: 'vacationplanning',\r\n path: '/vacationplanning',\r\n meta: {\r\n hr: true,\r\n roles: 'hr,reviewer,accountant',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"hr\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/VacationPlanning'\r\n ),\r\n },\r\n // Админка\r\n {\r\n path: '/statuses',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'statuses',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Statuses'\r\n ),\r\n },\r\n {\r\n path: '/workflows',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'workflows',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Workflows'\r\n ),\r\n },\r\n {\r\n path: '/screensets',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'screensets',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Screensets'\r\n ),\r\n },\r\n {\r\n path: '/reports',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'reports',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Reports'\r\n ),\r\n },\r\n {\r\n path: '/documenttypes',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'documenttypes',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/DocumentTypes'\r\n ),\r\n },\r\n {\r\n path: '/expensetypes',\r\n meta: {\r\n roles: 'admin,accountant',\r\n },\r\n name: 'expensetypes',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/ExpenseTypes'\r\n ),\r\n },\r\n {\r\n path: '/expensegoals',\r\n meta: {\r\n roles: 'admin,accountant',\r\n },\r\n name: 'expensegoals',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/ExpenseGoals'\r\n ),\r\n },\r\n {\r\n path: '/requesttypes',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'requesttypes',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/RequestTypes'\r\n ),\r\n },\r\n {\r\n path: '/users',\r\n meta: {\r\n hr: true,\r\n roles: 'admin,hr',\r\n },\r\n name: 'users',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Users.vue'\r\n ),\r\n },\r\n {\r\n path: '/grants',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'grants',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Grants.vue'\r\n ),\r\n },\r\n {\r\n path: '/parameters',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'parameters',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Parameters.vue'\r\n ),\r\n },\r\n {\r\n path: '/templates',\r\n meta: {\r\n hr: true,\r\n roles: 'admin,hr',\r\n },\r\n name: 'templates',\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/Templates.vue'\r\n ),\r\n },\r\n {\r\n name: 'vacationlimits',\r\n path: '/vacationlimits',\r\n meta: {\r\n hr: true,\r\n roles: 'admin,hr',\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"admin\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/VacationLimits'\r\n ),\r\n },\r\n {\r\n name: 'btripcities',\r\n path: '/btripcities',\r\n meta: {\r\n hr: true,\r\n roles: 'admin,hr',\r\n },\r\n component: () => import(\r\n '@/views/BtripCities/BtripCities.vue'\r\n ),\r\n },\r\n // Эксперименты...\r\n {\r\n path: '/tables/employees_1C',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'tables/employees_1C',\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"tables\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/tables/Employees_1C.vue'\r\n ),\r\n },\r\n {\r\n path: '/tables/employees',\r\n meta: {\r\n roles: 'admin',\r\n },\r\n name: 'tables/employees',\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"tables\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/tables/Employees.vue'\r\n ),\r\n },\r\n {\r\n path: '/materialassistances',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n name: 'materialassistances',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UMaterialassistances'\r\n ),\r\n },\r\n {\r\n path: '/materialassistances-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n name: 'materialassistances-own',\r\n props: { own: true },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UMaterialassistances'\r\n ),\r\n },\r\n {\r\n path: '/materialassistances-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n name: 'materialassistances-rev',\r\n props: {\r\n rev: true,\r\n },\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UMaterialassistances'\r\n ),\r\n },\r\n {\r\n path: '/materialassistance/:id?',\r\n name: 'materialassistance',\r\n component: () => import(\r\n /* webpackChunkName: \"documents\" */\r\n /* webpackMode: \"lazy\" */\r\n '@/views/UMaterialassistance.vue'\r\n ),\r\n },\r\n {\r\n path: '/upapers-own',\r\n name: 'upapers-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n component: () => import(\r\n '@/views/Papers/PapersMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/papers',\r\n name: 'papers',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n '@/views/Papers/PapersHR.vue'\r\n ),\r\n },\r\n {\r\n path: '/ucades',\r\n name: 'ucades',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n '@/views/Cades/CadesView.vue'\r\n ),\r\n },\r\n {\r\n path: '/ucades-own',\r\n name: 'ucades-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n props: {\r\n own: true,\r\n },\r\n component: () => import(\r\n '@/views/Cades/CadesView.vue'\r\n ),\r\n },\r\n {\r\n path: '/ucades-rev',\r\n name: 'ucades-rev',\r\n meta: {\r\n rev: true,\r\n roles: 'reviewer',\r\n },\r\n component: () => import(\r\n '@/views/Cades/CadesView.vue'\r\n ),\r\n },\r\n {\r\n path: '/ucades-sub',\r\n name: 'ucades-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n component: () => import(\r\n '@/views/Cades/CadesView.vue'\r\n ),\r\n },\r\n {\r\n path: '/uemployee-rest-sub',\r\n meta: {\r\n sub: true,\r\n roles: 'manager',\r\n },\r\n name: 'uemployee-rest-sub',\r\n props: { sub: true },\r\n component: () => import(\r\n '@/views/EmployeeRest'\r\n ),\r\n },\r\n {\r\n path: '/updagreements-own',\r\n name: 'updagreements-own',\r\n meta: {\r\n own: true,\r\n roles: 'employee',\r\n },\r\n props: { own: true },\r\n component: () => import(\r\n '@/views/UpdAgreement/UpdAgreementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/updagreements',\r\n name: 'updagreements',\r\n meta: {\r\n hr: true,\r\n roles: 'hr',\r\n },\r\n component: () => import(\r\n '@/views/UpdAgreement/UpdAgreementMain.vue'\r\n ),\r\n },\r\n {\r\n path: '/updagreement/:id?',\r\n name: 'updagreement',\r\n component: () => import(\r\n '@/views/UpdAgreement/UpdAgreement.vue'\r\n ),\r\n },\r\n // Оставлять его в конце, иначе может возникать ошибка 404\r\n {\r\n path: '/:pathMatch(.*)*',\r\n component: () => import(\r\n '@/views/404'\r\n ),\r\n },\r\n]\r\n\r\n// В конце дополним path компонентами скинов, если они есть\r\nconst skinComponents = {}\r\nconst availableComponents = null\r\n// const availableComponents = require.context('@/views/skins', true, /\\.vue$/)\r\n\r\nif (availableComponents) {\r\n availableComponents.keys().forEach(filePath => {\r\n const fileParts = filePath.split('/')\r\n const fileName = fileParts.pop() // for ex: UVacations.vue\r\n const componentName = fileName.split('.')[0] // for ex: UVacations\r\n const parentFolder = fileParts.pop() // for ex: perfetti\r\n if (parentFolder !== '.') {\r\n skinComponents[componentName] = { component: availableComponents(filePath).default, skin: parentFolder }\r\n }\r\n })\r\n\r\n const pathLength = path.length\r\n for (const skinName in skinComponents) {\r\n for (let index = 0; index < pathLength; index++) {\r\n const route = path[index]\r\n // Ищем такие маршруты, у которых в наименовании есть клиентский компонент, например uvacations\r\n if (route.name.toLowerCase().indexOf(skinName.toLowerCase()) !== -1) {\r\n const newRoute = Object.assign({}, route)\r\n newRoute.name = newRoute.name + '-' + skinComponents[skinName].skin // for ex.: uvacations-sub-perfetti\r\n newRoute.component = skinComponents[skinName].component\r\n path.push(newRoute)\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default path\r\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport paths from './paths'\nimport store from '../store/index'\n// import { checkIsSsoClient, redirectSsoUser } from '@/common/sso/ssoLoginHelpers';\n\nconst scrollBehavior = function (to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n}\n\nVue.use(VueRouter)\n\nconst router = new VueRouter({\n mode: 'hash',\n base: process.env.VUE_APP_BASE_URL || '/',\n linkActiveClass: 'active',\n routes: paths,\n scrollBehavior,\n})\n\nconst profile = store?.getters?.getProfile\nconst skinName = profile ? profile.skin : undefined\n\nrouter.beforeEach(async (to, from, next) => {\n // проверим, если среди параметров есть токен, применим его\n // если токен в параметрах по ссылке, то будет действовать только до протухания токена\n // поскольку refresh_token у нас нет, через 30 мин придется вводить заново логин\\пароль\n\n let accessToken = null\n const refreshToken = null\n\n // проверим, если среди параметров есть client_id, сохраним в хранилище и учтем его при логине\n if (to.query && (to.query.client || to.query.client_code)) {\n store.commit('PARAM_SET_CLIENT', { id: to.query.client, code: to.query.client_code })\n delete to.query.client\n delete to.query.client_code\n next()\n }\n\n if (to.query && to.query.token) {\n accessToken = to.query.token\n }\n if (accessToken) {\n store.commit('AUTH_SET_EMPTY')\n store.commit('APP_SET_EMPTY')\n store.commit('AUTH_SET_TOKEN', { data: { token_type: 'Bearer', access_token: accessToken, expires_in: null, refresh_token: refreshToken } })\n const config = {\n baseURL: store.getters.getApiUrl,\n params: {\n method: 'user.get',\n },\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n }\n await Vue.axios.get('user', config)\n .then((result) => {\n store.commit('AUTH_SET_PROFILE', result.data.result.profile)\n store.dispatch('APP_PULL_MASTERDATA')\n if (to.query.token) delete to.query.token\n next({ name: to.name || 'home', query: to.query })\n })\n .catch(() => {\n store.commit('AUTH_SET_EMPTY')\n next({ name: 'login' })\n })\n }\n\n // Проверка на SSO пользователя\n // const isSso = checkIsSsoClient()\n\n // Если SSO, то перенаправить на вход\n // if (\n // isSso &&\n // !accessToken &&\n // to?.name !== 'sso' &&\n // to?.name !== 'ssoLogout'\n // ) {\n // redirectSsoUser()\n // return\n // }\n\n // проверяем залогинен ли пользователь, и если нет, перенаправляем на страницу логина\n // и если отсутствует значение refresh_token\n\n if (\n !store.getters.isAuthenticated &&\n to.name !== 'login' &&\n to.name !== 'register' &&\n to.name !== 'settings' &&\n to.name !== 'detail' &&\n to.name !== 'sso' &&\n to.name !== 'ssoLogout'\n ) {\n store.commit('AUTH_SET_EMPTY');\n // если нужно было перейти по какому-то роуту, сформируем query с редиректом\n if (to.name && to.name !== 'home' && to.path !== '/') {\n store.commit('AUTH_SET_PROP', { propName: 'redirect', data: to.path })\n }\n if (from.name === 'login') {\n return next(false)\n } else {\n next({ name: 'login' })\n }\n }\n // проверяем права на маршрут с ролями, если доступ не авторизован, отклоним\n if (to.matched && to.matched.length > 0 && to.matched[0].meta.roles && !store.getters.isAuthorizedRoles(to.matched[0].meta.roles)) {\n return next(false)\n }\n // проверяем если существует скиновые маршруты с тем же именем, сделаем редирект на них\n if (skinName && to.name.indexOf(skinName) === -1) {\n const skinRoute = to.name + '-' + skinName\n const routeResolve = router.options.routes.find((r) => r.name === skinRoute)\n if (routeResolve) {\n next({ name: skinRoute })\n }\n }\n next()\n})\n\nrouter.afterEach((to, from) => {\n // подвесим на навигацию, проверку входящих обновлений: messages, incomplete...\n if (store.getters.isAuthenticated) {\n store.dispatch('APP_PULL_INCOMING')\n }\n})\n\nexport default router\n","// Найти значение в объекта по наименованию ключа\nexport const findObjectKey = (obj = {}, keyToFind = '') => {\n return Object.keys(obj).find(key => key === keyToFind);\n}\n","import store from '@/store';\nimport moment from 'moment';\nimport i18n from '@/plugins/i18n'\nimport { TableService } from '@/common/api.service';\nimport helpers from '@/common/helpers';\nimport paramHelpers from '@/common/settings/paramHelpers';\nimport documentHelpers from '@/common/document/documentHelpers'\nimport { checkParamTypeInclude } from '@/common/settings/paramUtils'\nimport { findObjectKey } from '@/common/dataUtils/objectHelpers';\nimport { textForbiddenPeriodHint } from '@/common/text/section/vacationText'\n\nimport { ROLE_CODE } from '@/constants/role/Role';\n\n// Данные для планирования отпуска\nexport const getVacationScheduleInfo = (vacationLimitItems, documentTypes) => {\n const paramVacationPlanPriority = paramHelpers\n .paramVacationPlanPriority()\n .split(';');\n const planList = helpers.deleteUndefined(paramVacationPlanPriority);\n const currentYear = helpers.getCurrentYear();\n const item = {};\n\n if (\n !vacationLimitItems?.length ||\n !documentTypes?.length ||\n !planList?.length\n ) {\n return item;\n }\n\n // Найти отпуск, удовлетворяющий всем условиям\n planList.some((element) => {\n const type = documentTypes?.find((i) => i.code === element);\n\n const vacationItem = vacationLimitItems.find((i) => {\n return (\n Number(i.period) === Number(currentYear + 1) && // всегда период это следующий год\n i.document_type_id === type?.id && // совпадает тип документа, для пришедшего из стема\n Number(i.days_unplanned) > 0 // есть доступные дни для распределения\n );\n });\n\n if (vacationItem) {\n Object.assign(item, vacationItem);\n return true;\n }\n });\n\n return item;\n};\n\nexport const saveParentVacationStatus = async (document) => {\n if (!document) {\n return\n }\n\n const parentVacation = store?.state?.app?.vacations?.find(\n (i) => document?.replaced_vacation_ids?.includes(i.id),\n );\n\n const parentVacationType = parentVacation?.type ?? ''\n\n const parentVacationObject = parentVacationType === 'none' ? 'vacation' : `vacation_${parentVacationType}`\n\n if (!parentVacation?.object_id?.length) {\n parentVacation.object_id = parentVacationObject\n }\n\n const workflow = store?.state?.workflow?.workflowSectionList?.vacation?.system?.find((i) => {\n return i.object_id === parentVacation?.object_id;\n });\n\n const statusItem = {\n object_id: parentVacation?.object_id ?? '',\n registrator_id: parentVacation?.id ?? '',\n status_id: workflow?.next_status_id ?? '',\n workflow_id: workflow?.id ?? '',\n organization_id: parentVacation?.organization_id ?? '',\n };\n\n // Обновить данные родительского компонента\n const parentVacationData = {\n ...parentVacation,\n replaced: '1',\n status_id: workflow?.next_status_id ?? '',\n indicators: workflow?.indicators ?? '',\n };\n\n try {\n await TableService.add({\n object: 'document_status',\n data: [statusItem],\n });\n\n await TableService.edit({\n object: 'vacation',\n data: [parentVacationData],\n });\n\n store.commit('APP_EDIT_DOCUMENT', {\n document: 'vacations',\n item: parentVacationData,\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка изменения parent vacation',\n debug: true,\n });\n }\n\n return parentVacation ?? []\n};\n\n// Получить список перенесённым документов этого отпуска и обновить его в базе\nexport const updateVacationReplacedList = async (document, workflow) => {\n let list = [];\n\n const getId = (id) => {\n return id?.split(':')?.[0];\n };\n\n // У корректировки найти данных о других корректировках в этом же отпуска.\n // Отображать список кроме текущего документа\n if (document?.replaced_vacation_ids?.length) {\n list = store?.state?.app?.vacations?.filter((i) => {\n const id = getId(i?.replaced_vacation_ids);\n\n return (\n id === getId(document?.replaced_vacation_ids) && i.id !== document?.id\n );\n });\n }\n\n try {\n await Promise.all(\n list?.map(async (item) => {\n const statusItem = {\n object_id: workflow?.object_id ?? '',\n registrator_id: item?.id ?? '',\n status_id: workflow?.next_status_id ?? '',\n workflow_id: workflow?.id ?? '',\n organization_id: item?.organization_id ?? '',\n };\n\n await TableService.add({\n object: 'document_status',\n data: [statusItem],\n });\n }),\n );\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка изменения списка корректировок',\n debug: true,\n });\n }\n\n // Список на редактирование стейта\n const editList = []\n\n list.forEach((item) => {\n const data = {\n ...item,\n indicators: workflow?.indicators ?? '',\n status_id: workflow?.next_status_id ?? '',\n workflow_id: workflow?.id ?? '',\n }\n\n editList.push(data);\n })\n\n editList.forEach((item) => {\n store.commit('APP_EDIT_DOCUMENT', {\n document: 'vacations',\n item,\n });\n });\n}\n\n// Удалить реквест корректировки\nexport const deleteCorrectionRequest = async (document) => {\n let list = [];\n\n const getId = (id) => {\n return id?.split(':')?.[0];\n };\n\n list = store?.state?.app?.vacations?.filter((i) => {\n const id = getId(i?.replaced_vacation_ids);\n\n return (\n id === getId(document?.replaced_vacation_ids)\n );\n });\n\n // Если нет файлов, то выйти\n if (!list?.length) {\n return\n }\n\n // Перезапросить реквесты, для определения нужного\n await store.dispatch('APP_PULL_REQUESTS')\n\n const request = {}\n\n list.forEach(element => {\n const doc = store?.state?.app?.requests?.find((i) => i?.legal_document_id === element?.id)\n\n if (doc) {\n Object.assign(request, doc);\n }\n });\n\n try {\n TableService.del({\n object: 'request',\n data: [request],\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка отзыва корректировки',\n debug: true,\n });\n }\n}\n\n// Проверка, что есть доступные дни корректировки\nexport const checkVacationCorrectedAvailable = (document) => {\n const { type = '' } = document ?? {};\n\n if (type === 'none') {\n return false\n }\n\n const correctionDoc = store?.state?.app?.vacationCorrection?.find(\n (i) => i.id === document?.id,\n );\n\n return !!Number(correctionDoc?.days_rest ?? 0) ?? false;\n}\n\n// Проверить что документ доступен для смены статуса\nexport const checkVacationCorrectedWorkflowAvailable = (document) => {\n const { type = '' } = document ?? {};\n\n if (!type?.length) {\n return false\n }\n\n // В график и корректировка должна проверять наличие days_corrected\n // Если уже есть эти дни, то документе есть перенесённые дни и у самого документа нельзя менять статус\n if (\n type === 'schedule' ||\n type === 'correction'\n ) {\n const correctionDoc = store?.state?.app?.vacationCorrection?.find(\n (i) => i.id === document?.id,\n );\n\n // Если уже есть перенесенные дни, то воркфлоу не показывать\n return !(Number(correctionDoc?.days_corrected) > 0);\n }\n\n return true;\n}\n\n// Получить документ с выставленным replaced ids перед сохранением\nexport const getVacationCorrectionReplacedData = (document) => {\n if (\n document?.own &&\n document?.type === 'correction' &&\n document?.replaced_vacation_ids?.length\n ) {\n const replacedText = `${document?.replaced_vacation_ids}:${document?.days}`;\n\n const replacedDoc = {\n ...document,\n replaced_vacation_ids: replacedText,\n };\n\n return replacedDoc;\n }\n\n return document;\n};\n\nconst getForbiddenParam = (document = {}, role = '', objectId = '') => {\n const { workflow: workflowList = [] } = store?.state?.app || {};\n const { data: paramList = {} } = store?.state?.param ?? {}\n\n // Текущий воркфлоу\n const workflowItem = workflowList?.find(i =>\n i?.status_id === document?.status_id &&\n i?.business_role === role &&\n i?.reject === '0' &&\n i?.object_id === objectId,\n );\n\n if (!workflowItem) {\n return ''\n }\n\n const { next_status_id: workflowNextStatus = '' } = workflowItem ?? {};\n\n // Название параметра (например: prepared_forbidden_period)\n const paramName = `${workflowNextStatus}_forbidden_period`;\n // Найти ключ в объекте параметров\n const foundKey = findObjectKey(paramList, paramName);\n\n return foundKey ?? ''\n}\n\n// Получить количество дней у параметра forbidden_period\nexport const getVacationForbiddenPeriodDayLimit = (document = {}, role = '', objectId = '') => {\n const { data: paramList = {} } = store?.state?.param ?? {}\n\n const foundKey = getForbiddenParam(document, role, objectId)\n const paramValue = paramList?.[foundKey] ?? 0\n\n return Number(paramValue)\n}\n\n// Проверка, что отпуск можно отправить\nexport const checkVacationForbiddenPeriodAvailable = (document = {}, role = '', objectId = '') => {\n const { start_date: startDate = null } = document\n\n // const isCreator = documentHelpers.isDocumentCreator(document)\n // const isManagerCreator = documentHelpers.isDocumentManagerCreator(document)\n\n // // Если создаёт HR, то не проверять\n // if (!isCreator && !isManagerCreator) {\n // return true\n // }\n\n const forbiddenExceptList = paramHelpers.paramVacationValidateForbiddenExcept()\n const documentTypeData = documentHelpers.getDocumentTypeData(document)\n const isDocTypeExpect = checkParamTypeInclude(forbiddenExceptList, documentTypeData?.code)\n\n // Если есть совпадение с параметром, то не проверять документ\n if (isDocTypeExpect) {\n return true\n }\n\n const foundKey = getForbiddenParam(document, role, objectId)\n const dayLimit = getVacationForbiddenPeriodDayLimit(document, role, objectId)\n\n if (\n (!dayLimit && foundKey?.length) || // Если пришло 0, то не проверять\n !startDate // Если нет даты, скорее всего документ сломан\n ) {\n return false\n }\n\n const diffInDays = moment(startDate).diff(new Date(), 'days', true);\n\n return Math.ceil(diffInDays) > Number(dayLimit);\n}\n\nexport const checkActionForbiddenPeriod = (document = {}, workflow = {}) => {\n const { business_role: role = '', object_id: objectId = '' } = workflow\n const isAvailablePeriod = checkVacationForbiddenPeriodAvailable(document, role, objectId)\n\n if (\n isAvailablePeriod ||\n role === ROLE_CODE?.hr\n ) {\n return false\n }\n\n return {\n message: i18n.t(textForbiddenPeriodHint),\n };\n}\n","import { useStore } from '@vueblocks/vue-use-vuex';\nimport { computed } from '@vue/composition-api';\n\nexport default function useParam () {\n const { state } = useStore();\n const { data: params } = state.param\n\n // API domain\n const paramApiDomain = computed(() => state?.param?.apiDomain ?? '');\n\n // Debug\n const paramDebug = computed(() => state?.param?.debug ?? false);\n\n const dismissalPeriod = computed(() => Number(params?.dismissal_period ?? 0));\n\n const requestDefaultNumberPage = computed(() => {\n const paramRequestPage = params?.request_default_number_per_page\n const defaultValue = 5\n\n if (!paramRequestPage?.length) {\n return defaultValue\n }\n if (Number(paramRequestPage) < 1) {\n return defaultValue\n }\n return Number(paramRequestPage)\n });\n\n const reissueCertificateAllowed = computed(() => !!Number(params?.reissue_certificate_allowed ?? 0));\n\n // Отображение формы для обращения в техподдержку\n const paramIsSupportFormVisible = computed(() => !!Number(state?.param?.data?.is_support_form_visible ?? 0));\n\n // Доступность корректировки\n const paramIsVacationCorrection = computed(() => !!Number(params?.vacation_correction ?? 0));\n\n const paramVacationPowerusersPagination = computed(() => !!Number(params?.vacation_powerusers_pagination ?? 0));\n\n // Количество дней до заявления на отпуск\n const paramVacationValidateForbiddenPeriod = computed(() => Number(params?.vacation_validate_forbidden_period ?? 0));\n\n // Количество рабочих дней до заявления на отпуск\n const paramVacationValidateForbiddenPeriodWdays = computed(() => Number(params?.vacation_validate_forbidden_period_wdays ?? 0));\n\n const paramIsEmployeeTeamViewVisible = computed(() => !!Number(params?.is_employee_team_view_visible ?? 0));\n\n // Количество дней до согласования отпуска\n const paramApproveForbiddenPeriod = computed(() => Number(params?.approve_forbidden_period ?? 0));\n\n // Город по-умолчанию в командировке\n const paramBtripDefaultCity = computed(() => params?.btrip_starting_point ?? '');\n\n // Допустимое количество символов в комментарии\n const paramCommentLength = computed(() => Number(params?.comment_length ?? 256));\n\n // Типы отпусков, для которых доступны \"Часы\"\n const paramVacationVisibleHours = computed(() => params?.vacation_visible_hours ?? '');\n\n // Ограничение часов для типа отпуска\n const paramVacationShiftUnpaidLeaveOverhoursPerDay = computed(() =>\n Number(params?.vacation_shift_unpaid_leave_overhours_per_day ?? 7));\n\n // Ограничение года переноса отпуска текущим годом\n const paramVacationCorrectionMoveRecentYearOnly = computed(() => !!Number(params?.vacation_correction_move_recent_year_only ?? 0));\n\n const paramHideUserGuide = computed(() => !!Number(state?.param?.data?.hide_user_guide ?? 0));\n\n const paramHideUnreadBell = computed(() => !!Number(state?.param?.data?.hide_unread_bell ?? 0));\n\n const paramHideGrantsButton = computed(() => !!Number(state?.param?.data?.hide_grants_button ?? 0));\n\n const paramLanguageSwitchOff = computed(() => !!Number(state?.param?.data?.language_switch_off ?? 0));\n\n // количество файлов для отправки\n const paramMaxFileCount = computed(() => Number(params?.upload_max_filecount ?? 3));\n\n // max размер файла для отправки\n const paramMaxFileSize = computed(() => Number(params?.upload_max_filesize ?? 5));\n\n // SSO Client\n const paramSsoClient = computed(() => !!Number(params?.sso_client ?? 0));\n\n // SSO logout url\n const paramSsoLogoutUrl = computed(() => params?.sso_logout ?? '');\n\n // вкладка контакты в профиле пользователя\n const paramIsUserProfileContactTabVisible = computed(() => !!Number(params?.is_userprofile_contact_tab_visible ?? 0));\n\n // язык\n const paramLocale = computed(() => state?.param?.locale ?? 'ru');\n\n // Отображать доп поля на форме тех. поддержки\n const paramIsSupportFormRecipientVisible = computed(() => !!Number(params?.is_support_form_recipient_visible ?? 0));\n\n // Ограничения отпуска \"Вне графика\" текущим годом\n const paramIsVacationOffScheduleMoveRecentYearOnly = computed(() => !!Number(params?.vacation_offschedule_recent_year_only ?? 0));\n\n // Список типов документа отпуска для блокировки\n const paramVacationOffScheduleExceptCodes = computed(() => params?.vacation_offschedule_except_codes ?? '');\n\n // количество дней для сообщений\n const paramNotificationShowDelta = computed(() => Number(params?.notification_show_delta ?? 90));\n\n // Отображение остатка дней в отпусках\n const paramVacationEmployeeRestVisible = computed(() => !!Number(params?.vacation_employee_rest_visible ?? 0));\n\n // Отображение остатка дней в отсутствиях\n const paramAbsenceEmployeeRestVisible = computed(() => !!Number(params?.absence_employee_rest_visible ?? 0));\n\n // Отображение двухфакторной аутентификации в профайле\n const paramTwoFactorsShowInProfile = computed(() => !!Number(params?.two_factors_show_in_profile ?? 0));\n\n // Отображение подтверждения по email в профайле\n const paramSendEmailCodeShowInProfile = computed(() => !!Number(params?.send_email_code_show_in_profile ?? 0));\n\n // Отображение SMS подтверждений в профайле\n const paramSendSmsCodeShowInProfile = computed(() => !!Number(params?.send_sms_code_show_in_profile ?? 0));\n\n // Подтверждение переработки сотрудником\n const paramOvertimeEmployeeConfirmation = computed(() => !!Number(params?.overtime_employee_confirmation ?? 0));\n\n // Максимальное количество часов переработки\n const paramOvertimeOverHoursPerDay = computed(() => Number(params?.overtime_overhours_per_day ?? 0));\n\n // Сверхурочные часы\n const paramOvertimeOverHoursAdjacentDays = computed(() => Number(params?.overtime_overhours_adjacent_days ?? 0));\n\n // Сверхурочные часы\n const paramIsOvertimeShiftBlockVisible = computed(() => !!Number(params?.overtime_shift_block_visible ?? 0));\n\n // для возможности взять командировку в выходной\n const paramCheckBTripOnHoliday = computed(() => Number(params?.check_btrip_onholiday ?? 0));\n\n // для остатка отпуска на дату начала периода\n const paramVacationValidateRest = computed(() => Number(params?.vacation_validate_rest ?? 0));\n\n // для остатка отпуска на конец года\n const paramVacationValidateRestYear = computed(() => Number(params?.vacation_validate_rest_year ?? 0));\n\n return {\n paramApiDomain,\n paramDebug,\n dismissalPeriod,\n requestDefaultNumberPage,\n reissueCertificateAllowed,\n paramIsSupportFormVisible,\n paramIsVacationCorrection,\n paramVacationPowerusersPagination,\n paramVacationValidateForbiddenPeriod,\n paramVacationValidateForbiddenPeriodWdays,\n paramIsEmployeeTeamViewVisible,\n paramApproveForbiddenPeriod,\n paramBtripDefaultCity,\n paramCommentLength,\n paramVacationVisibleHours,\n paramVacationShiftUnpaidLeaveOverhoursPerDay,\n paramVacationCorrectionMoveRecentYearOnly,\n paramHideUserGuide,\n paramHideUnreadBell,\n paramHideGrantsButton,\n paramLanguageSwitchOff,\n paramMaxFileCount,\n paramMaxFileSize,\n paramSsoClient,\n paramSsoLogoutUrl,\n paramIsUserProfileContactTabVisible,\n paramLocale,\n paramIsSupportFormRecipientVisible,\n paramIsVacationOffScheduleMoveRecentYearOnly,\n paramVacationOffScheduleExceptCodes,\n paramNotificationShowDelta,\n paramVacationEmployeeRestVisible,\n paramAbsenceEmployeeRestVisible,\n paramTwoFactorsShowInProfile,\n paramSendEmailCodeShowInProfile,\n paramSendSmsCodeShowInProfile,\n paramOvertimeEmployeeConfirmation,\n paramOvertimeOverHoursPerDay,\n paramOvertimeOverHoursAdjacentDays,\n paramIsOvertimeShiftBlockVisible,\n paramCheckBTripOnHoliday,\n paramVacationValidateRest,\n paramVacationValidateRestYear,\n };\n}\n","import * as Fingerprint2 from 'fingerprintjs2'\nimport * as UAParser from 'ua-parser-js'\nimport moment from 'moment'\nimport useLanguage from '@/common/locale/useLanguage';\nimport { ViewService } from '@/common/api.service.js'\nimport store from '@/store'\n\nexport default {\n\n numberRegex: /^[0-9]+$/,\n\n isIE () {\n var ua = window.navigator.userAgent // Check the userAgent property of the window.navigator object\n var msie = ua.indexOf('MSIE ') // IE 10 or older\n var trident = ua.indexOf('Trident/') // IE 11\n var edge = ua.indexOf('Edge/')\n return (msie > 0 || trident > 0 || edge > 0)\n },\n\n getMobileOperatingSystem: function () {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera\n // Windows Phone must come first because its UA also contains \"Android\"\n if (/windows phone/i.test(userAgent)) {\n return 'Windows Phone'\n }\n if (/android/i.test(userAgent)) {\n return 'Android'\n }\n // iOS detection from: http://stackoverflow.com/a/9039885/177710\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n return 'iOS'\n }\n return undefined\n },\n\n // возвращает куки с указанным name,\n // или undefined, если ничего не найдено\n getCookie: function (name) {\n const matches = document.cookie.match(new RegExp(\n '(?:^|; )' + name.replace(/([.$?*|{}()[\\]\\\\/+^])/g, '\\\\$1') + '=([^;]*)',\n ))\n return matches ? decodeURIComponent(matches[1]) : undefined\n },\n\n setCookie: function (name, value, options = {}) {\n options = {\n path: '/',\n // при необходимости добавьте другие значения по умолчанию\n ...options,\n }\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString()\n }\n\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\n\n for (const optionKey in options) {\n updatedCookie += '; ' + optionKey\n const optionValue = options[optionKey]\n if (optionValue !== true) {\n updatedCookie += '=' + optionValue\n }\n }\n document.cookie = updatedCookie\n },\n\n deleteCookie: function (cookiename) {\n this.setCookie(cookiename, '', {\n 'max-age': -1,\n })\n },\n\n cookieEnabled: function () {\n let cookieEnabled = document.cookieEnabled\n if (!cookieEnabled) {\n const d = new Date()\n d.setTime(d.getTime() + (10000))\n document.cookie = 'testcookie=xxx;path=/;expires=' + d.toUTCString()\n cookieEnabled = document.cookie.indexOf('testcookie=') !== -1\n }\n return cookieEnabled\n },\n\n cookieExist: function (cookiename) {\n const simpleCookie = this.getCookie(cookiename)\n if (simpleCookie) return true\n // Проверим HttpOnly cookie с помощью попытки записать cookie с таким же именем\n const d = new Date()\n d.setTime(d.getTime() + (1000))\n const expires = 'expires=' + d.toUTCString()\n\n document.cookie = cookiename + '=new_value;path=/;' + expires\n if (document.cookie.indexOf(cookiename + '=') === -1) {\n return true\n } else {\n return false\n }\n },\n\n getFingerprint: function () {\n return new Promise((resolve, reject) => {\n async function getHash () {\n const options = {\n excludes: {\n plugins: true,\n localStorage: true,\n sessionStorage: true,\n indexedDb: true,\n canvas: true,\n adBlock: true,\n screenResolution: true,\n availableScreenResolution: true,\n enumerateDevices: true,\n pixelRatio: true,\n doNotTrack: true,\n audio: true,\n },\n preprocessor: (key, value) => {\n if (key === 'userAgent') {\n const parser = new UAParser(value)\n // return customized user agent (without browser version)\n return `${parser.getOS().name} :: ${parser.getBrowser().name} :: ${parser.getEngine().name}`\n }\n return value\n },\n }\n\n try {\n const components = await Fingerprint2.getPromise(options)\n const values = components.map(component => component.value)\n console.log('fingerprint hash components', components)\n\n const fingerprintHash = String(Fingerprint2.x64hash128(values.join(''), 31))\n console.log(fingerprintHash)\n return fingerprintHash\n } catch (e) {\n reject(e)\n }\n }\n\n if (window.requestIdleCallback) {\n // console.log('get fp hash @ requestIdleCallback')\n requestIdleCallback(async () => resolve(await getHash()))\n } else {\n // console.log('get fp hash @ setTimeout')\n setTimeout(async () => resolve(await getHash()), 500)\n }\n })\n },\n\n capitalize: function (str) {\n if (!str) return\n return str.replace(/\\w\\S*/g, function (txt) {\n if (!txt) return\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n })\n },\n\n createGuid: function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0; const v = c === 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n },\n\n extIcon: function (fileName) {\n const parts = fileName.split('.')\n const ext = parts.pop()\n const icons = {\n pdf: 'mdi-file-pdf',\n png: 'mdi-file-image',\n jpg: 'mdi-file-image',\n svg: 'mdi-file-image',\n tiff: 'mdi-file-image',\n bmp: 'mdi-file-image',\n txt: 'mdi-file-document-outline',\n xls: 'mdi-file-excel',\n doc: 'mdi-file-word',\n zip: 'mdi-zip-box',\n }\n return icons[ext] ? icons[ext] : 'mdi-file'\n },\n\n isObject: function (obj) {\n return (obj && typeof obj === 'object' && !Array.isArray(obj) && obj !== null)\n },\n\n isEmptyObject: function (obj) {\n return !Object.keys(obj).length\n },\n\n intersection: function (o1, o2) {\n return Object.keys(o1).filter({}.hasOwnProperty.bind(o2))\n },\n\n /*\n arrayDiff:\n const a = ['a', 'd', 'e'];\n const b = ['a', 'b', 'c', 'd'];\n arrayDiff(a, b); // (3) [\"e\", \"b\", \"c\"]\n */\n arrayDiff (a, b) {\n return [\n ...a.filter(x => b.indexOf(x) === -1),\n ...b.filter(x => a.indexOf(x) === -1),\n ]\n },\n\n /* arrayDiffByKey:\n const a = [{k:1}, {k:2}, {k:3}];\n const b = [{k:1}, {k:4}, {k:5}, {k:6}];\n const c = [{k:3}, {k:5}, {k:7}];\n arrayDiffByKey('k', a, b, c); // (4) [{k:2}, {k:4}, {k:6}, {k:7}]\n */\n arrayDiffByKey (key, ...arrays) {\n return [].concat(...arrays.map((arr, i) => {\n const others = arrays.slice(0)\n others.splice(i, 1)\n const unique = [...new Set([].concat(...others))]\n return arr.filter(x =>\n !unique.some(y => x[key] === y[key]),\n )\n }))\n },\n\n mergeDeep: function (target, source) {\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} })\n this.mergeDeep(target[key], source[key])\n } else {\n // Если свойства нет, добавим\n if (!(key in target)) Object.assign(target, { [key]: source[key] })\n // Иначе не будем менять его значение\n }\n }\n }\n return target\n },\n\n // Функция копирует свойства объекта первого уровня не создавая новых свойств, если их небыло в приемнике\n assignFrom: function (target, source) {\n for (const key in source) {\n if (!(key in target) || (typeof source[key] === 'function')) continue\n if (source[key] instanceof Array) {\n for (let i = 0; i < source[key].length; i++) {\n if (!(source[key][i] instanceof Object)) target[key][i] = source[key][i]\n }\n continue\n }\n // if (source[key] instanceof Object) {\n // assignFrom(target[key], src[key])\n // continue\n // }\n target[key] = source[key]\n }\n },\n\n // Возвращает объект без некоторых свойств\n // objectWithout(detail, 'files,unsaved,deleted')\n objectWithout: function (obj, props) {\n if (!obj) return\n return Object.keys(obj).reduce((object, key) => {\n if ((props + ',').indexOf(key + ',') < 0) {\n object[key] = obj[key]\n }\n return object\n }, {})\n },\n\n debounce (fn, delay) {\n var timeoutID = null\n return function () {\n clearTimeout(timeoutID)\n var args = arguments\n var that = this\n timeoutID = setTimeout(function () {\n fn.apply(that, args)\n }, delay)\n }\n },\n\n groupBy: function (xs, key) {\n return xs.reduce(function (rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x)\n return rv\n }, {})\n },\n\n urlQueryToArray: function (query) {\n const request = {}\n const pairs = query.split('&')\n for (let i = 0; i < pairs.length; i++) {\n if (!pairs[i]) { continue }\n const pair = pairs[i].split('=')\n request[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1])\n }\n return request\n },\n\n getRandomAvatar () {\n const avatars = [\n '?accessoriesType=Blank&avatarStyle=Circle&clotheColor=PastelGreen&clotheType=ShirtScoopNeck&eyeType=Wink&eyebrowType=UnibrowNatural&facialHairColor=Black&facialHairType=MoustacheMagnum&hairColor=Platinum&mouthType=Concerned&skinColor=Tanned&topType=Turban',\n '?accessoriesType=Sunglasses&avatarStyle=Circle&clotheColor=Gray02&clotheType=ShirtScoopNeck&eyeType=EyeRoll&eyebrowType=RaisedExcited&facialHairColor=Red&facialHairType=BeardMagestic&hairColor=Red&hatColor=White&mouthType=Twinkle&skinColor=DarkBrown&topType=LongHairBun',\n '?accessoriesType=Prescription02&avatarStyle=Circle&clotheColor=Black&clotheType=ShirtVNeck&eyeType=Surprised&eyebrowType=Angry&facialHairColor=Blonde&facialHairType=Blank&hairColor=Blonde&hatColor=PastelOrange&mouthType=Smile&skinColor=Black&topType=LongHairNotTooLong',\n '?accessoriesType=Round&avatarStyle=Circle&clotheColor=PastelOrange&clotheType=Overall&eyeType=Close&eyebrowType=AngryNatural&facialHairColor=Blonde&facialHairType=Blank&graphicType=Pizza&hairColor=Black&hatColor=PastelBlue&mouthType=Serious&skinColor=Light&topType=LongHairBigHair',\n '?accessoriesType=Kurt&avatarStyle=Circle&clotheColor=Gray01&clotheType=BlazerShirt&eyeType=Surprised&eyebrowType=Default&facialHairColor=Red&facialHairType=Blank&graphicType=Selena&hairColor=Red&hatColor=Blue02&mouthType=Twinkle&skinColor=Pale&topType=LongHairCurly',\n ]\n const avatar = avatars[Math.floor(Math.random() * avatars.length)]\n return 'https://avataaars.io/' + avatar\n },\n\n base64ToArrayBuffer (base64) {\n base64 = base64.replace(/^data:([^;]+);base64,/gmi, '')\n var binaryString = atob(base64)\n var len = binaryString.length\n var bytes = new Uint8Array(len)\n for (var i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n return bytes.buffer\n },\n\n arrayBufferToBase64 (arrayBuffer) {\n // return 'data: image / svg; base64,' +\n // return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)))\n const typedArray = new Uint8Array(arrayBuffer)\n // const stringChar = String.fromCharCode.apply(null, typedArray)\n const stringChar = typedArray.reduce((data, byte) => {\n return data + String.fromCharCode(byte)\n }, '')\n let b64str = btoa(stringChar)\n // Safari не будет отображать изображения base64, у которых число символов не делится на 4\n while (b64str.length % 4 > 0) {\n b64str += '='\n }\n return b64str\n },\n\n /**\n * @param {string} url - Исходное изображение\n * @param {number} aspectRatio - Соотношение сторон\n * @return {Promise} Promise, который разрешается с изображением в виде холста.\n */\n crop (url, aspectRatio) {\n // мы возвращаем Promise, который разрешается с помощью нашего холста.\n return new Promise(resolve => {\n // это изображение будет содержать данные нашего исходного изображения.\n const inputImage = new Image()\n\n // мы хотим дождаться, когда наше изображение загрузится.\n inputImage.onload = () => {\n // давайте сохраним ширину и высоту нашего изображения.\n const inputWidth = inputImage.naturalWidth\n const inputHeight = inputImage.naturalHeight\n\n // получить соотношение сторон входного изображения\n const inputImageAspectRatio = inputWidth / inputHeight\n\n // если он больше, чем целевой коэффициент соотношения сторон.\n let outputWidth = inputWidth\n let outputHeight = inputHeight\n\n if (inputImageAspectRatio > aspectRatio) {\n outputWidth = inputHeight * aspectRatio\n } else if (inputImageAspectRatio < aspectRatio) {\n outputHeight = inputHeight / aspectRatio\n }\n\n // рассчитать положение для рисования изображения в точке\n const outputX = (outputWidth - inputWidth) * 0.5\n const outputY = (outputHeight - inputHeight) * 0.5\n\n // создать холст, на котором будет представлено выходное изображение.\n const outputImage = document.createElement('canvas')\n\n // установить его на тот же размер, что и изображение.\n outputImage.width = outputWidth\n outputImage.height = outputHeight\n\n // нарисуем наше изображение в точках 0, 0 на холсте.\n const ctx = outputImage.getContext('2d')\n ctx.drawImage(inputImage, outputX, outputY)\n resolve(outputImage)\n }\n\n // начать загружать наше изображение\n inputImage.src = url\n })\n },\n\n // sound(50, 500)\n sound (duration, freq, finishedCallback = null) {\n const ctx = new (window.AudioContext || window.webkitAudioContext)()\n duration = +duration\n if (typeof finishedCallback !== 'function') {\n finishedCallback = function () {}\n }\n var volume = ctx.createGain()\n volume.gain.value = 0.3\n var osc = ctx.createOscillator()\n osc.type = 'sine'\n osc.connect(ctx.destination)\n osc.frequency.value = freq\n\n if (osc.start) osc.start()\n else osc.noteOn(0)\n\n setTimeout(\n function () {\n if (osc.stop) osc.stop(0)\n else osc.noteOff(0)\n finishedCallback()\n }, duration,\n )\n },\n\n getInitials (str) {\n const initials = str.split(/\\s+/).map((w, i) => i ? w.substring(0, 1).toUpperCase() + '.' : w).join(' ')\n return initials.replace(/(^[^ ]* )|[ ]+/g, '$1')\n },\n\n findElementsInObjects (obj1, obj2) {\n return obj1.filter(({ value: id1 }) => !obj2.some(({ value: id2 }) => id2 === id1))\n },\n\n findDuplicateKeysInObjects (obj1, obj2) {\n const duplicates = Object.keys(obj1).filter(val => {\n return Object.keys(obj2).indexOf(val) !== -1\n })\n\n return duplicates\n },\n\n checkMaxLength (evt, maxLength) {\n const valueLength = evt.target.value.length\n if (valueLength >= maxLength) {\n if (evt.keyCode >= 48 && evt.keyCode <= 90) {\n evt.preventDefault()\n }\n }\n },\n\n getDayNextYear (date) {\n const day = new Date(date)\n const year = day.getFullYear()\n const month = day.getMonth()\n const currentDay = day.getDate()\n const dayNextyear = new Date(year + 1, month, currentDay)\n return dayNextyear\n },\n\n getUniqueValue (list, key) {\n return [...new Set(list.map(item => item[key]))]\n },\n\n // Получить уникальный список по значению ключа\n getUniqueValueByKey (list, key) {\n return [...new Map(list.map((item) => [item[key], item])).values()];\n },\n\n getCurrentYear () {\n return new Date().getFullYear()\n },\n\n getDiffMonths (date1, date2) {\n let diff = (date1.getTime() - date2.getTime()) / 1000\n diff /= (60 * 60 * 24 * 7 * 4)\n return Math.abs(Math.round(diff))\n },\n\n // получить дату из следующего месяца\n // monthValue - количество месяцев\n getDayNextMonth (date, monthValue = 1) {\n const day = date ? new Date(date) : new Date()\n const year = day.getFullYear()\n const month = day.getMonth()\n const currentDay = day.getDate()\n const dayNextMonth = new Date(year, month + monthValue, currentDay)\n return moment(dayNextMonth).format('YYYY-MM-DD')\n },\n\n // получить первый день месяца\n getFirstMonthDay (date) {\n const day = date ? new Date(date) : new Date()\n const firstDay = new Date(day.getFullYear(), day.getMonth(), 1);\n\n return moment(firstDay).format('YYYY-MM-DD')\n },\n\n // получить последний день месяца\n getLastMonthDay (date, monthValue = 1) {\n const day = date ? new Date(date) : new Date()\n const lastDay = moment(day).add(monthValue, 'months').endOf('month').format('YYYY-MM-DD');\n\n return lastDay\n },\n\n // проверка, что дата выпадает на выходной день\n checkDateWeekend (date) {\n if (!date) {\n return false\n }\n\n const formattedDay = moment(date).isoWeekday()\n const weekendDays = [6, 7] // индекс выходных дней\n const { calendars = [] } = store?.state?.app ?? {}\n\n // Проверка, отмечен ли этот день рабочим (есть перенос будней на выходной)\n const isWorkingDate = !!calendars?.find((i) => date >= i.start_date && date <= i.end_date && i.type === 'working')\n const isWeekendDays = !!weekendDays.find((i) => i === formattedDay)\n\n // Если день выпал на выходной, но это перенесённый рабочий день с будней, то отображать доступным для выбора\n if (isWorkingDate && isWeekendDays) {\n return false\n }\n\n return isWeekendDays\n },\n\n // получить индекс дня недели\n getDayOfWeekIndex (date) {\n return moment(date).isoWeekday()\n },\n\n // Поставить элемент на первую позицию в массиве\n setArrayItemToFirstPosition (array, fromIndex) {\n const item = array[fromIndex]\n\n array.splice(fromIndex, 1)\n array.unshift(item)\n\n return array\n },\n\n // Удалить undefined элементы в массиве\n deleteUndefined (array) {\n return array.filter(item => !!item);\n },\n\n getPrependIcon (document) {\n if (!document?.indicators) return;\n\n const indicators = document.indicators.split(/;|,/);\n\n return indicators.map(i => {\n let icon = 'mdi-circle';\n if (i.indexOf('mdi') > -1) {\n icon = 'mdi' + i.split('mdi')[1];\n }\n return icon;\n });\n },\n\n getPrependIconColor (document) {\n if (!document.indicators) return;\n const indicators = document.indicators.split(/;|,/);\n return indicators.map(i => i || 'grey lighten-2');\n },\n\n // Получить максимальное значение из массива объектов по ключу\n getMaxArrayObjectValueByKey (array, key) {\n return Math.max(...array.map((i) => Number(i[key])));\n },\n\n // переведем подпись\n signatureText (code) {\n switch (code) {\n case '0':\n return useLanguage().t('No signature');\n case '1':\n return useLanguage().t('Simple signature');\n case '2':\n return useLanguage().t('Strong unqualified signature');\n case '3':\n return useLanguage().t('Strong qualified signature');\n default:\n return code;\n }\n },\n async getEmployeesLocations () {\n const uniqueLocations = []\n try {\n const responseDetail = await ViewService.get({ object: 'employee', select: 'location', rowsPerPage: 'all' }, true)\n if (responseDetail?.data?.length > 0) {\n const locations = responseDetail.data\n locations.forEach(({ location }) => {\n const isLocation = uniqueLocations.find(\n (uniqueLocation) => uniqueLocation.id === location,\n );\n if (!isLocation) {\n uniqueLocations.push({ id: location, location: location })\n }\n })\n uniqueLocations.sort((a, b) => a.id > b.id ? 1 : -1)\n }\n } catch (err) {\n store.commit('MSG_SET_ITEM', {\n color: 'primary',\n timeout: 15000,\n bottom: false,\n text: err,\n })\n }\n return uniqueLocations\n },\n\n // Сравнение двух объектов по полям. Вернёт true - совпали, false - нет\n checkEqualValues (compareList, item1, item2) {\n if (!compareList?.length) return false\n return compareList.every(field => item1[field] === item2[field])\n },\n\n // Проверка на дубликат в массиве из стейта\n checkForDuplicateStateDocument (compareArrayName, compareList, item) {\n if (!compareArrayName?.length) return false\n const [moduleName, arrayName] = compareArrayName.split('.')\n return store?.state[moduleName]?.[arrayName]?.some(existingItem => {\n // Исключаем текущий элемент из списка сравнения\n if (existingItem.id === item.id) return false\n return this.checkEqualValues(compareList, existingItem, item)\n })\n },\n\n // Проверка на наличие всех полей\n checkRequiredFields (item, requiredList) {\n if (!requiredList?.length) return false\n return requiredList.every((field) => item[field])\n },\n\n // Проверка на числовые значения списка полей из массива\n checkNumberValues (item, numbersList) {\n if (!numbersList?.length) return false\n const filteredValues = numbersList.map(fieldName => item[fieldName]).filter(value => value)\n return filteredValues.every(value => this.numberRegex.test(value))\n },\n\n // Одиночная проверка на тип строки\n isString (str) {\n return typeof str === 'string' || str instanceof String\n },\n\n // Одиночная проверка на тип строки и trim\n checkString (str) {\n return this.isString(str) ? str?.trim() : ''\n },\n\n // Проверка на тип строки\n isStringArray (...strings) {\n return strings.every(this.isString)\n },\n}\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container},[_vm._l((_vm.fileInputList),function(file,index){return _c('div',{key:index,class:_vm.$style.Card},[_c('div',{class:_vm.$style.ImgFile},[(file)?_c('img',{class:_vm.$style.Img,attrs:{\"src\":_vm.urlFile(file)}}):_vm._e(),_c('span',{staticClass:\"mdi mdi-delete-circle\",on:{\"click\":function($event){return _vm.handleClearItem(index)}}})]),_c('span',{class:_vm.$style.SubTitle},[_vm._v(\" \"+_vm._s(_vm.bytesToSize(file.size))+\" \")])])}),_c('div',{class:_vm.$style.Card},[_c('input',{ref:\"refInput\",class:_vm.$style.FileInput,attrs:{\"id\":\"file\",\"type\":\"file\",\"accept\":\"image/*\",\"multiple\":\"\",\"disabled\":_vm.fileInputList.length >= _vm.paramMaxFileCount},on:{\"change\":_vm.handleAddFiles}}),_c('label',{class:[_vm.$style.FileLabel, ( _obj = {}, _obj[_vm.$style.DragOver] = _vm.isDragOver, _obj )],attrs:{\"for\":\"file\"},on:{\"dragover\":function($event){$event.preventDefault();return _vm.onDragOver.apply(null, arguments)},\"dragleave\":_vm.onDragLeave,\"drop\":function($event){$event.preventDefault();return _vm.onDrop.apply(null, arguments)}}},[_c('span',{staticClass:\"mdi mdi-file-plus-outline\"})]),(_vm.fileInputList.length)?_c('span',{class:_vm.$style.SubTitle},[_vm._v(\" \"+_vm._s(_vm.fileInputList.length)+\" / \"+_vm._s(_vm.paramMaxFileCount)+\" \")]):_vm._e()]),(!_vm.fileInputList.length)?_c('div',{class:_vm.$style.TextLabel},[_vm._v(\" \"+_vm._s(_vm.$t('Attach files (.png, .jpg, .jpeg)'))+\" \"),_c('span',{class:_vm.$style.SubTitle},[_vm._v(\" \"+_vm._s((_vm.paramMaxFileSize + \" \" + (_vm.$t('Mb max file size and number of files')) + \" \" + _vm.paramMaxFileCount))+\" \")])]):_vm._e(),(_vm.validations(_vm.fileInputList))?_c('span',{class:_vm.$style.Error},[_vm._v(\" \"+_vm._s(_vm.validations(_vm.fileInputList))+\" \")]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImgInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImgInput.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n {{ bytesToSize(file.size) }}\n \n \n\n \n = paramMaxFileCount\"\n @change=\"handleAddFiles\"\n >\n\n \n \n \n \n {{ fileInputList.length }} / {{ paramMaxFileCount }}\n \n \n\n \n {{ $t('Attach files (.png, .jpg, .jpeg)') }}\n \n {{ `${paramMaxFileSize} ${$t('Mb max file size and number of files')} ${paramMaxFileCount}` }}\n \n \n \n {{ validations(fileInputList) }}\n \n \n\n\n\n","import { render, staticRenderFns } from \"./ImgInput.vue?vue&type=template&id=65ccb81a&\"\nimport script from \"./ImgInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ImgInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImgInput.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import ImgInput from './ImgInput.vue';\n\nexport default ImgInput;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inner\":\"CheckMark__inner__284-h\",\"svg\":\"CheckMark__svg__1123o\"};","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"refMenu\",class:[_vm.$style.Menu, ( _obj = {}, _obj[_vm.$style.MenuClick] = _vm.isOpenClick, _obj )]},[_c('div',{class:_vm.$style.Activator,on:{\"click\":_vm.handleOpenMenu}},[_vm._t(\"activator\",null,{\"props\":{\n 'class': ( _obj$1 = {}, _obj$1[_vm.$style.MenuHover] = _vm.isOpenHover && _vm.isHover, _obj$1[_vm.$style.Open] = _vm.isOpenClick, _obj$1 )\n }})],2),_c('div',{ref:\"refSubMenu\",class:_vm.$style.Submenu,style:(_vm.position),on:{\"click\":_vm.handleCloseMenu}},[_c('div',{style:(_vm.styleMenu)},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiMenu.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n\n","export default {\n value: {\n type: Boolean,\n default: true,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String,\n default: 'bottom',\n },\n isOpenHover: {\n type: Boolean,\n default: false,\n },\n isNotClose: {\n type: Boolean,\n default: false,\n },\n isNotCloseOutside: {\n type: Boolean,\n default: false,\n },\n maxWidth: {\n type: String,\n default: '',\n },\n width: {\n type: String,\n default: '',\n },\n};\n","import { render, staticRenderFns } from \"./UiMenu.vue?vue&type=template&id=53a59b50&\"\nimport script from \"./UiMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./UiMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiMenu.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AppBar\":\"EgHeader__AppBar__1nXQT\",\"Avatar\":\"EgHeader__Avatar__wjlZ9\",\"Logo\":\"EgHeader__Logo__2tBDg\",\"Link\":\"EgHeader__Link__aXfTN\",\"Profile\":\"EgHeader__Profile__3rvGp\",\"BtnBoard\":\"EgHeader__BtnBoard__37DKP\"};","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgHeader.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiText.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiText.vue?vue&type=style&index=0&lang=scss&module=true&\"","import { computed } from '@vue/composition-api';\nimport { useStore } from '@vueblocks/vue-use-vuex';\n\nimport { checkIsWebpack } from '@/common/buildUtils/getBuilder'\nimport i18n from '@/plugins/i18n'\n\nexport default function useLanguage () {\n const { state } = useStore();\n\n const locale = computed(() => state?.param?.locale);\n\n const profileLanguage = computed(() => state?.auth?.profile?.language);\n\n const isEng = computed(() => locale?.value === 'en');\n\n const localeTextList = computed(() => state?.locales?.textList);\n\n const getTextByAlias = (alias = '') => {\n const textItem = localeTextList?.value?.find((i) => i.alias === alias) ?? {}\n\n if (!textItem) {\n return ''\n }\n\n const { name_eng: nameEng = '', name = '' } = textItem\n\n const text = isEng.value ? nameEng : name;\n\n return text?.trim() ?? ''\n }\n\n const tt = (item, prop) => {\n if (!item) return '';\n return isEng?.value && item[prop + '_eng']\n ? item[prop + '_eng']\n : item[prop];\n }\n\n const t = (item) => {\n if (!item) return '';\n if (checkIsWebpack()) return i18n?.t(item) // vue 2\n return i18n?.global?.t(item) // vue 3\n }\n\n const defineEng = (item) => {\n if (!item) return ''\n return isEng?.value ? `${item}_eng` : item\n }\n\n const getLanguageField = (data = {}, field = '') => {\n if (!Object.keys(data)?.length || !field?.length) {\n return ''\n }\n\n return data[isEng?.value ? `${field}_eng` : field]\n }\n\n return {\n locale,\n profileLanguage,\n isEng,\n getTextByAlias,\n tt,\n t,\n defineEng,\n getLanguageField,\n };\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Btn\":\"UiBtn__Btn__36Y8U\",\"Icon\":\"UiBtn__Icon__1ols-\",\"Slot\":\"UiBtn__Slot__1CI_4\",\"Size__small\":\"UiBtn__Size__small__1Px_d\",\"Size__large\":\"UiBtn__Size__large__1QvrA\",\"Size__x_large\":\"UiBtn__Size__x_large__2t6Zt\",\"Active\":\"UiBtn__Active__2QcuK\",\"Round\":\"UiBtn__Round__2wW3X\",\"Variant__text\":\"UiBtn__Variant__text__3pSf3\",\"Variant__tonal\":\"UiBtn__Variant__tonal__3coKm\",\"Variant__outlined\":\"UiBtn__Variant__outlined__gc6h3\",\"Variant__flat\":\"UiBtn__Variant__flat__1Dv4v\"};","import store from '@/store';\n\nexport const getRequestData = (document = {}, requestTypeCode) => {\n const { dispatch } = store\n const { id } = document\n\n return dispatch('APP_PULL_REQUEST', {\n id,\n request_type_code: requestTypeCode,\n })\n}\n","import store from '@/store'\nimport { TableService } from '@/common/api.service.js'\nimport { getRequestData } from '@/common/documentSection/request/requestHelpers.js'\n\nexport const deleteRequest = async (document, request) => {\n const { requests: requestList = [] } = store?.state?.app ?? {}\n\n const documentRequest = requestList?.find(\n (i) =>\n i.legal_document_id === document?.id &&\n i.request_type_code === document?.request_type_code,\n );\n\n if (!documentRequest) {\n return\n }\n\n const { id: docRequestId = '', status_id: status = '' } = documentRequest ?? {}\n\n // Если статус пустой либо приходит null, то реквест необходимо удалять\n if (!status?.length || status === 'empty' || !docRequestId?.length) {\n try {\n // Перезапросить данные реквесты, чтобы получить информацию о файлах\n const requestData = await getRequestData(document, request?.request_type_code);\n const fileList = requestData?.files ?? []\n\n await TableService.del({\n object: 'request',\n data: [{ id: docRequestId }],\n });\n\n // Удалять файлы, если документ не подписан\n if (fileList?.length) {\n await TableService.del({\n object: 'files',\n data: [fileList?.[0]],\n });\n }\n\n store.commit('APP_DEL_DOCUMENT', {\n document: 'requests',\n item: documentRequest,\n });\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка удаления request',\n debug: true,\n })\n }\n }\n}\n","import store from '@/store';\nimport router from '@/router';\nimport { checkIsWebpack } from '@/common/buildUtils/getBuilder'\n\nexport default {\n // Получить роль по данным в роуте\n getRoleByRouteMeta (meta) {\n // Найти в передаваемых данных либо в данных из роута\n const { own, sub, hr, rev } = meta ?? (checkIsWebpack() ? router.history.current.meta : router.currentRoute.value.meta);\n\n if (sub) {\n return 'manager';\n }\n\n if (hr) {\n return 'hr';\n }\n\n if (rev) {\n return 'reviewer';\n }\n\n if (own) {\n return 'employee';\n }\n\n return ''\n },\n\n // Получить бизнес роль\n getBusinessRole () {\n let role = this.getRoleByRouteMeta();\n\n // Если не определилось по настройкам роута\n if (!role?.length && store?.getters?.isHr) {\n role = 'hr';\n }\n\n if (!role?.length && store?.getters?.isAccountant) {\n role = 'accountant';\n }\n\n if (!role?.length) {\n role = 'employee';\n }\n\n return role\n },\n\n // Проверка на права для роли Assistant\n checkRoleAssistant () {\n const roles = store?.state?.auth?.profile?.roles ?? []\n\n if (!roles?.length) {\n return false\n }\n\n return !!roles?.find((item) => item === 'assistant');\n },\n\n checkManagerAsEmployee () {\n return !!Number(store?.state?.param?.data?.manager_as_employee)\n },\n};\n","export const OBJECT_NAME = {\n absence: 'absence',\n overtime: 'overtime',\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListContent\":\"UiListItem__ListContent__SzMAN\",\"Li\":\"UiListItem__Li__3QGVZ\",\"Icon\":\"UiListItem__Icon__2jfvm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Content\":\"Confirm__Content__1vf8a\"};","export { default } from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiList.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiList.vue?vue&type=style&index=0&lang=scss&module=true&\"","// Проверка наличия значения в параметре\nexport const checkParamTypeInclude = (param = '', code = '') => param?.split(';')?.includes(code);\n","export { default } from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PinCodeV2.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PinCodeV2.vue?vue&type=style&index=0&lang=scss&module=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VBtn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":_vm.handleClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonClose.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonClose.vue?vue&type=script&lang=js&\"","\n\n\n \n \n \n\n","import { render, staticRenderFns } from \"./ButtonClose.vue?vue&type=template&id=b64d1dfc&\"\nimport script from \"./ButtonClose.vue?vue&type=script&lang=js&\"\nexport * from \"./ButtonClose.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Menu\":\"UiMenu__Menu__1Fox8\",\"MenuHover\":\"UiMenu__MenuHover__2CBj0\",\"Submenu\":\"UiMenu__Submenu__1UoIn\",\"Activator\":\"UiMenu__Activator__1z0B0\",\"MenuClick\":\"UiMenu__MenuClick__15jJL\",\"Open\":\"UiMenu__Open__xByt4\"};","export const textForbiddenPeriodHint = 'The period of form submission has been exceeded. Apply to your HR Department to proceed.';\n","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgFooter.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EgFooter.vue?vue&type=style&index=0&lang=scss&module=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"UiBadge__Container__3F61y\",\"Content\":\"UiBadge__Content__2nvFc\",\"Counter\":\"UiBadge__Counter__2Q7LL\",\"Dot\":\"UiBadge__Dot__3BVAw\"};","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container,attrs:{\"data-test\":\"badge-container\"}},[_c('div',{class:_vm.$style.Content},[_vm._t(\"default\"),(_vm.isCounter)?_c('div',{class:[\n _vm.$style.Counter,\n ( _obj = {}, _obj[_vm.$style.Dot] = _vm.props.isDot, _obj )\n ],attrs:{\"data-test\":\"badge-counter\"}},[(!_vm.props.isDot)?_c('div',{class:_vm.$style.CounterValue,attrs:{\"data-test\":\"badge-counter-value\"}},[_vm._v(\" \"+_vm._s(_vm.props.value)+\" \")]):_vm._e()]):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n value: {\n type: [String, Number],\n default: 0,\n },\n isDot: {\n type: Boolean,\n default: false,\n },\n};\n","export const isString = (str = '') => {\n return typeof str === 'string' || str instanceof String\n}\n","\n\n\n \n \n \n \n \n {{ props.value }}\n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBadge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBadge.vue?vue&type=script&lang=js&\"","import { computed } from '@vue/composition-api'\nimport { isString } from '@/common/dataUtils/stringHelpers';\n\nexport default function useBadge (props = {}) {\n const isCounter = computed(() => {\n const { value = 0 } = props\n\n if (\n !isString(value) &&\n isNaN(value)\n ) {\n return false\n }\n\n if (isString(value)) {\n return !!Number(value)\n }\n\n return !!value\n })\n\n return {\n isCounter,\n }\n}\n","import { render, staticRenderFns } from \"./UiBadge.vue?vue&type=template&id=bb3a856a&\"\nimport script from \"./UiBadge.vue?vue&type=script&lang=js&\"\nexport * from \"./UiBadge.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiBadge.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import UiBadge from './UiBadge.vue';\n\nexport default UiBadge;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"PinCodeV2__Container__12Vz9\",\"Code\":\"PinCodeV2__Code__J7MT2\",\"Done\":\"PinCodeV2__Done__20GZD\",\"Error\":\"PinCodeV2__Error__2q1HE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"UiText__Container__2Xlxt\",\"Primary\":\"UiText__Primary__3S0BU\",\"Secondary\":\"UiText__Secondary__e77ZI\",\"Light\":\"UiText__Light__336zj\",\"BodyMain\":\"UiText__BodyMain__1HBc4\",\"BodyCard\":\"UiText__BodyCard__26Anq\",\"Small\":\"UiText__Small__2zswo\",\"XSmall\":\"UiText__XSmall__1Esvo\",\"Large\":\"UiText__Large__mnyik\",\"XLarge\":\"UiText__XLarge__1cE8-\",\"H2\":\"UiText__H2__1hihM\",\"H3\":\"UiText__H3__RHJpt\",\"H4\":\"UiText__H4__E9e6B\",\"H5\":\"UiText__H5__Zm9s9\",\"Cap\":\"UiText__Cap__2Cjy3\",\"Left\":\"UiText__Left__ruaWb\",\"Center\":\"UiText__Center__pdi0B\",\"Right\":\"UiText__Right__3wuS-\",\"Border\":\"UiText__Border__1NLHz\",\"Margin\":\"UiText__Margin__2b9tD\"};","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nVue.use(VueI18n)\n\nconst dateTimeFormats = {\n en: {\n short: {\n year: 'numeric', month: 'numeric', day: 'numeric',\n },\n shortWithTime: {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n long: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n weekday: 'short',\n hour: 'numeric',\n minute: 'numeric',\n },\n month: {\n month: 'long', year: 'numeric',\n },\n },\n ru: {\n short: {\n day: 'numeric', month: 'numeric', year: 'numeric',\n },\n shortWithTime: {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n long: {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n weekday: 'short',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n },\n month: {\n month: 'long', year: 'numeric',\n },\n },\n}\n\n// Стандартный вариант для загрузки ru.json, en.json и.т.д. файлов с переводом фраз по ключу:\n// en = {\"repeat.password\": \"Repeat password\"}\n// ru = {\"repeat.password\": \"Повторить пароль\"}\n// function loadLocaleMessages () {\n// const locales = require.context('../locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\n// const messages = {}\n// locales.keys().forEach(key => {\n// const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n// if (matched && matched.length > 1) {\n// const locale = matched[1]\n// messages[locale] = locales(key)\n// }\n// })\n// return messages\n// }\n\n// Вариант, когда все тексты находятся в одном файле и ключом является один из языков\n// translate = {\"ru\": \"Повторить пароль\", \"en\": \"Repeat password\", \"cn\": \"请重复输入密码\"}\nfunction loadTranslation () {\n const translate = require('../locales/translate.json')\n\n const messages = {}\n translate.forEach(element => {\n for (const locale in element) {\n if (!Object.prototype.hasOwnProperty.call(messages, locale)) {\n messages[locale] = {}\n }\n if (locale !== 'en') {\n messages[locale][element.en] = element[locale]\n }\n }\n })\n return messages\n}\n\nexport default new VueI18n({\n locale: 'ru', // process.env.VUE_APP_I18N_LOCALE || 'ru'\n fallbackLocale: 'en', // process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en'\n silentTranslationWarn: true,\n messages: loadTranslation(),\n dateTimeFormats,\n})\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"EgFooter__Container__1pAR3\",\"Content\":\"EgFooter__Content__2E1xq\",\"Divider\":\"EgFooter__Divider__22vqQ\"};","export { default } from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListItem.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiListItem.vue?vue&type=style&index=0&lang=scss&module=true&\"","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportChat.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportChat.vue?vue&type=style&index=0&lang=scss&module=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalNotification.vue?vue&type=style&index=0&id=bea2b148&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"SupportChat__Container__11kdw\",\"Content\":\"SupportChat__Content__WXybd\",\"Form\":\"SupportChat__Form__sMKrh\",\"Icon\":\"SupportChat__Icon__2IamJ\",\"Outside\":\"SupportChat__Outside__3WYo7\"};","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBadge.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UiBadge.vue?vue&type=style&index=0&lang=scss&module=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VTooltip',{attrs:{\"top\":_vm.currentPosition.isTop,\"right\":_vm.currentPosition.isRight,\"bottom\":_vm.currentPosition.isBottom,\"left\":_vm.currentPosition.isLeft,\"max-width\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('VIcon',_vm._g({},on),[_vm._v(\"mdi-help-circle-outline\")])]}}])},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipIcon.vue?vue&type=script&lang=js&\"","\n\n\n \n \n mdi-help-circle-outline\n \n \n \n\n","import { render, staticRenderFns } from \"./TooltipIcon.vue?vue&type=template&id=62679d2b&\"\nimport script from \"./TooltipIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./TooltipIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import store from '@/store';\nimport localeHelpers from '@/common/locale/localeHelpers';\nimport hooksDocument from '@/common/hooksDocument.js'\n\nexport default {\n getTypeHintByDetail (documentType, field) {\n const {\n param: { locale },\n locales: { textList },\n } = store.state;\n\n const hint = documentType?.detail?.[field] ?? '';\n\n if (!hint?.length) {\n return '';\n }\n\n const text = textList?.find((i) => i.alias === hint);\n\n return (locale === 'en' ? text?.name_eng : text?.name) ?? '';\n },\n\n getDocumentTypeHint (documentType) {\n return this.getTypeHintByDetail(documentType, 'type_hint');\n },\n\n getDocumentCommentHint (documentType) {\n return this.getTypeHintByDetail(documentType, 'comment_hint');\n },\n\n // Проверка на необходимость заполнения пола Комментарий\n checkFieldCommentRequired (documentType) {\n return documentType?.detail?.comment_require ?? false\n },\n\n // Получить данные типа документа\n getDocumentTypeData (document) {\n const documentType = store?.state?.app?.documentTypes.find(\n (i) => i.id === document?.document_type_id,\n );\n\n return documentType ?? {}\n },\n\n // Проверка на наличие прикреплённого файла для выбранного типа документа\n checkFileAttached (document) {\n if (!document) {\n return false\n }\n\n const documentType = this.getDocumentTypeData(document);\n\n const { attach_require: isAttachRequire } = documentType?.detail ?? {};\n\n // Без условия проверять не требуется\n if (!isAttachRequire) {\n return true;\n }\n\n // Проверка на наличие файлов, не помеченных на удаление\n const isFiles = !!document?.files?.filter((i) => i.deleted === false)?.length;\n\n return isFiles;\n },\n\n // Проверка корректности данных документа при смене статуса\n checkValidDocument (document, type) {\n if (!document && !type) {\n return false;\n }\n\n const documentType = this.getDocumentTypeData(document);\n\n const { code = '', object_id: object = '' } = documentType ?? {};\n\n return code?.length && object.includes(type);\n },\n\n // Проверка не необходимость валидации количества дней\n isCheckDayLimit (document) {\n if (!document) {\n return false;\n }\n\n const documentType = this.getDocumentTypeData(document);\n\n return !!documentType?.detail?.check_limit;\n },\n // доп данные из базы для нормальной работы формы\n async getCalendarDocuments (filter = '') {\n const { dispatch } = store\n\n await dispatch('APP_PULL_TIMESHEETS', { reload: true, filter })\n },\n\n // Проверить, что в тексте документа есть поля для заполнения\n checkFillingData (text) {\n return text?.includes('__')\n },\n\n // Подсчитать количество переносов в тексте\n countingLineBreaks (text) {\n return text?.match(/\\n/g)?.length ?? 0;\n },\n getCalendarItemColor (type) {\n switch (type) {\n case 'non-working':\n return 'yellow';\n case 'holiday':\n return 'red';\n case 'working':\n return 'grey';\n default:\n return '';\n }\n },\n validateComment (document, documentType) {\n const isEng = localeHelpers.isEng()\n const { comments = '', comments_eng: commentsEng = '' } = document ?? {}\n const isCommentRequired = this.checkFieldCommentRequired(documentType)\n const isComment = isEng ? commentsEng?.length : comments?.length\n\n if (isCommentRequired && !isComment) {\n return this.getDocumentCommentHint(documentType)\n }\n\n // Устаревший способ. Можно удалить после того, как все документы будут переделаны на detail?.comment_require\n const isCommentImportant = hooksDocument.checkFieldComment(documentType)\n if (isCommentImportant && !isComment) {\n return true\n }\n\n return false\n },\n\n // Проверить наличие документа в списке\n isDocumentInList (documentsList, documentId) {\n return !!documentsList?.find((i) => i?.id === documentId)\n },\n\n // Проверить, что текущий пользователь не является автором документа\n isDocumentCreator (document = {}) {\n const { creator_id: creatorId = '' } = document\n const { employee_id: profileId = '' } = store?.state?.auth?.profile ?? {}\n\n if (!profileId?.length) {\n return false\n }\n\n return creatorId === profileId\n },\n\n // Проверить, что руководитель текущего пользователя не является автором документа\n isDocumentManagerCreator (document = {}) {\n const { creator_id: creatorId = '' } = document\n const { employee_id: profileId = '' } = store?.state?.auth?.profile ?? {}\n const employeeData = store?.state?.app?.subordination?.find((i) => i?.employee_id === profileId)\n const { manager_id: managerId = '' } = employeeData ?? {}\n\n if (!managerId?.length) {\n return false\n }\n\n return creatorId === managerId\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Container\":\"ImgInput__Container__3I3g2\",\"Card\":\"ImgInput__Card__EYI8P\",\"FileInput\":\"ImgInput__FileInput__2v8LD\",\"FileLabel\":\"ImgInput__FileLabel__jJ1VZ\",\"TextLabel\":\"ImgInput__TextLabel__3Wwj7\",\"SubTitle\":\"ImgInput__SubTitle__2AS6-\",\"ImgFile\":\"ImgInput__ImgFile__2I9o0\",\"Img\":\"ImgInput__Img__jtgkK\",\"Error\":\"ImgInput__Error__3PT6v\",\"DragOver\":\"ImgInput__DragOver__2d3uL\"};","import store from '@/store'\nimport helpers from '@/common/helpers.js'\nimport { DownloadService, TableService } from '@/common/api.service.js'\n\nexport default {\n async getProfilePhoto (employeePhotoState) {\n if (!employeePhotoState) return\n\n try {\n const getResult = await DownloadService.get({ file: employeePhotoState })\n\n if (!getResult) throw new Error()\n // будет отображаться логотип EG если картинка не найдена на этом сервере\n if (getResult?.request?.response?.byteLength < 200) return '/img/EG.png'\n\n const arrayBuffer = getResult?.data\n const extension = employeePhotoState?.split('.').pop().toLowerCase()\n const employeePhoto = `data:image/${extension};base64,` + helpers?.arrayBufferToBase64(arrayBuffer)\n return employeePhoto\n } catch (error) {\n store.commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса в getProfilePhoto',\n debug: true,\n })\n }\n },\n\n async deleteProfilePhoto (payload) {\n if (!payload?.id) return\n\n try {\n const getResult = await TableService.del({\n object: 'files',\n data: [\n { id: payload?.id },\n { hash: payload?.hash },\n ],\n })\n\n if (!getResult) throw new Error()\n } catch (error) {\n this.$store.commit('MSG_SET_ITEM', {\n text: 'Ошибка удаления в deletePhoto',\n debug: true,\n })\n }\n },\n\n // Получение id и hash фото для возможного удаления\n async getDataPhoto (payload) {\n if (!payload) return\n\n try {\n const { data } = await TableService.get({\n object: 'files',\n select: 'id,hash,name,original_name',\n filter: payload?.photoName\n ? `name eq '${payload?.photoName}'`\n : `original_name eq '${payload?.originalNamePhoto}'`,\n }, true)\n\n const [dataPhoto] = data\n if (!dataPhoto?.id) throw new Error()\n\n return dataPhoto\n } catch (error) {\n this.$store.commit('MSG_SET_ITEM', {\n text: 'Ошибка запроса в getDataPhoto',\n debug: true,\n })\n }\n },\n}\n","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportForm.vue?vue&type=style&index=0&lang=scss&module=true&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SupportForm.vue?vue&type=style&index=0&lang=scss&module=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Subtitle\":\"ModalSigning__Subtitle__mu00e\"};","export const CLIENT_NAME = {\n ferrero: 'ferrero',\n novonordisk: 'novonordisk',\n};\n","import store from '@/store';\n\nimport { CLIENT_NAME } from '@/constants/client/ClientName';\n\n// Получить ссылку на создание задачи\nexport const getBitrixTaskSupportLink = () => {\n const link = 'https://bitrix.ucmsgroup.ru/company/personal/user/79/tasks/task/edit/0/?TEMPLATE='\n const { client_code: clientCode = '' } = store?.state?.auth?.profile ?? ''\n\n let template = ''\n\n switch (clientCode) {\n case CLIENT_NAME?.ferrero:\n template = '86'\n break;\n\n case CLIENT_NAME?.novonordisk:\n template = '89'\n break;\n\n default:\n template = '84'\n break;\n }\n\n return `${link}${template}`\n};\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$style.Container},[(_vm.title.length)?_c('span',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.title))+\" \")]):_vm._e(),_c('div',[_c('div',{staticClass:\"ma-auto position-relative\",class:_vm.$style.Code},[_c('VOtpInput',{attrs:{\"type\":\"number\",\"length\":_vm.codeLength,\"rules\":_vm.rules,\"disabled\":_vm.isCodeDisabled,\"data-test\":\"otp\"},on:{\"input\":function($event){return _vm.$emit('inputCode', _vm.otp)}},model:{value:(_vm.otp),callback:function ($$v) {_vm.otp=$$v},expression:\"otp\"}}),(_vm.isLoadingCode)?_c('VOverlay',{attrs:{\"absolute\":\"\"}},[_c('VProgressCircular',{attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('div',{staticClass:\"caption\",class:_vm.$style.Attempts},[_c('p',{class:[( _obj = {}, _obj[_vm.$style.Error] = _vm.isAttemptsNull, _obj )]},[_vm._v(\" \"+_vm._s(_vm.$t('Attempts rest'))+\": \"+_vm._s(_vm.attempts)+\" \")]),(_vm.isCodeTrue)?_c('p',{class:_vm.$style.Done,attrs:{\"data-test\":\"pin-accepted\"}},[_vm._v(\" \"+_vm._s(_vm.$t('Your PIN has been accepted'))+\" \")]):_vm._e(),(_vm.isAttemptsNull)?_c('p',{class:_vm.$style.Error},[_vm._v(\" \"+_vm._s(_vm.$t('All the attempts are over. Refresh the web-page please.'))+\" \")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PinCodeV2.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PinCodeV2.vue?vue&type=script&lang=js&\"","\n \n \n {{ $t(title) }}\n \n \n \n \n \n \n \n \n \n \n {{ $t('Attempts rest') }}: {{ attempts }}\n \n \n {{ $t('Your PIN has been accepted') }}\n \n \n {{ $t('All the attempts are over. Refresh the web-page please.') }}\n \n \n \n \n\n\n\n\n\n","import { render, staticRenderFns } from \"./PinCodeV2.vue?vue&type=template&id=6d1d0738&\"\nimport script from \"./PinCodeV2.vue?vue&type=script&lang=js&\"\nexport * from \"./PinCodeV2.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PinCodeV2.vue?vue&type=style&index=0&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","import PinCode from './PinCodeV2.vue';\n\nexport default PinCode;\n"],"sourceRoot":""}
\n {{ $t('Attempts rest') }}: {{ attempts }}\n
\n {{ $t('Your PIN has been accepted') }}\n
\n {{ $t('All the attempts are over. Refresh the web-page please.') }}\n