PageSourceSearch

https://platform.recplace.ru/_next/static/chunks/4421-e8214629ab2776af.js

js recplace.ru collected 2026-09-28 09:01:26 UTC 82,351 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4421],{9153:(e,t,r)=>{"use strict";r.d(t,{B2:()=>o,C$:()=>p,Kd:()=>c,d:()=>v,il:()=>f,jO:()=>u,wS:()=>l});var a=r(95125);let n={feature_unavailable:"Данные этого раздела пока недоступны.",yandex_metrika_required:"Подключите Яндекс Метрику, чтобы получить performance-метрики.",yandex_business_required:"Подключите Яндекс Бизнес, чтобы получить данные этого раздела.",network_unsupported:"Этот раздел нельзя сформировать для сетевой компании.",company_is_yandex_chain_branch:"Для сетевых филиалов анализ конкурентов недоступен.",source_not_selected:"Для этого раздела не выбран отчёт. Выберите его в настройках.",source_no_data:"В выбранном отчёте нет данных для этого раздела.",generation_failed:"Не удалось сформировать данные раздела. Попробуйте выбрать другой отчёт.",sla_timeout:"Источник данных не ответил вовремя. Попробуйте ещё раз позже."},i=new Set(["company_is_yandex_chain_branch","feature_unavailable","network_unsupported","source_no_data","source_not_selected","yandex_business_required","yandex_metrika_required"]),o=e=>!!(e&&i.has(e)),l=(e,t)=>"company_is_yandex_chain_branch"===e||"network_unsupported"===e||"string"==typeof t&&/сетев.*(?:филиал|компан).*конкурент|(?:network|chain).*(?:branch|company).*competitor/i.test(t),s=[[/сервер.*не вернул.*пол.*отч[её]т.*филиал.*период/i,"Нет данных для этого филиала за выбранный период."],[/(?:outside|out of|beyond).*(?:7|window)|more than 7|within.*7|±7|вне.*(?:7|диапазон)|более 7/i,"Выбранный отчёт находится дальше чем на 7 дней от даты периода. Выберите другой отчёт."],[/появится позже|будет доступен позже|раздел.*(?:ещ[ёе] )?не (?:запущен|реализован)/i,"Данные этого раздела пока недоступны."],[/источник.*не ответил|deadline exceeded|timed?\s*out|timeout|context deadline/i,"Источник данных не ответил вовремя. Попробуйте ещё раз позже."],[/яндекс.*бизнес|yandex.*business/i,"Подключите Яндекс Бизнес, чтобы получить данные этого раздела."],[/яндекс.*метрик|yandex.*metri[ck]/i,"Подключите Яндекс Метрику, чтобы получить performance-метрики."],[/insufficient.*(?:balance|token)|недостаточно.*(?:средств|токен)/i,"Недостаточно токенов для формирования отчётов. Пополните баланс и повторите попытку."],[/already.*(?:running|assembling|processing)|уже.*(?:формируется|собирается|запущен)/i,"Отчёт уже формируется. Дождитесь завершения."],[/(?:summary\s*)?report.*not found|отч[ёе]т.*не найден/i,"Отчёт не найден. Возможно, он был удалён или ссылка устарела."],[/branch.*not found|филиал.*не найден/i,"Филиал не найден. Обновите страницу и выберите филиал заново."],[/(?:cell|source(?:\s*run)?).*(?:not found|missing)|(?:ячейк|источник).*не найден/i,"Выбранный отчёт больше недоступен. Обновите список и выберите другой."],[/invalid.*date|date.*invalid|point.*order|неверн.*дат|некорректн.*дат/i,"Проверьте даты: начало работы, промежуточный период и текущая дата должны идти по порядку."],[/not[_\s-]?selected|отч[ёе]т.*не выбран/i,"Для этого раздела не выбраны отчёты. Выберите их в настройках."],[/no[_\s-]?data|нет данных/i,"За выбранный период Ð
1½ÐµÑ‚ данных. Измените даты или выберите другой отчёт."],[/доступ запрещ[ёе]н|нет прав|access denied|forbidden/i,"У вас нет доступа к этому отчёту или действию."],[/не авторизован|сессия.*истекл|unauthori[sz]ed|token.*expired/i,"Сессия завершилась. Войдите в аккаунт снова."],[/внутренн.*ошиб|ошибк.*сервер|непредвиденн.*ошиб/i,"Сервис сводных отчётов временно недоступен. Попробуйте ещё раз позже."]],d=/\b(?:sql|uuid|stack|panic|internal|exception|op_type|request_id|status code|bad request|failed|error|mapper|schema)\b|маппер|в сырье|[{}\[\]`]/i,u=(e,t)=>e?"yandex_business_required"===e:"string"==typeof t&&/яндекс.*бизнес|yandex.*business/i.test(t),c=(e,t)=>e?"feature_unavailable"!==e:"string"==typeof t&&/яндекс.*(?:бизнес|метрик)|yandex.*(?:business|metri[ck])/i.test(t),p=(e,t,r)=>h(t,e&&n[e]||r),m=e=>{if("string"==typeof e)return e.trim();if(Array.isArray(e))return e.map(m).filter(Boolean).join(" ");if(!e||"object"!=typeof e)return"";for(let t of["error","message","detail"]){let r=m(e[t]);if(r)return r}return""},_=e=>{var t;return null==(t=s.find(t=>{let[r]=t;return r.test(e)}))?void 0:t[1]},h=(e,t)=>{let r=m(e);if(!r)return t;let a=_(r);return a||(d.test(r)||/^[\x00-\x7F]+$/.test(r)?t:r)},f=(e,t)=>{var r,n;if(!a.A.isAxiosError(e))return h(e,t);let i=null==(r=e.response)?void 0:r.status,o=_(m(null==(n=e.response)?void 0:n.data));return o||(e.response?401===i?"Сессия завершилась. Войдите в аккаунт снова.":402===i?"Недостаточно токенов для формирования отчётов.":403===i?"У вас нет доступа к этому отчёту или действию.":404===i?"Нужные данные не найдены. Обновите страницу и повторите действие.":409===i?"Действие уже выполняется или данные успели измениться. Обновите страницу.":400===i||422===i?"Проверьте название отчёта, даты и выбранные филиалы.":429===i?"Слишком много запросов. Подождите немного и повторите попытку.":i&&i>=500?"Сервис сводных отчётов временно недоступен. Попробуйте ещё раз позже.":t:"Не удалось связаться с сервером. Проверьте интернет-соединение и повторите попытку.")},v=e=>{var t,r;return a.A.isAxiosError(e)&&((null==(t=e.response)?void 0:t.status)===403||(null==(r=e.response)?void 0:r.status)===404)}},13717:(e,t,r)=>{"use strict";r.d(t,{D:()=>d,x:()=>s});var a=r(61312),n=r(6439),i=r(53455),o=r(12115),l=r(15279);let s={all:["summary-reports"],list:(e,t)=>[...s.all,"list",e,t],detail:e=>[...s.all,"detail",e],cells:e=>[...s.all,"cells",e],candidates:e=>[...s.all,"candidates",e],generationEstimate:e=>[...s.all,"generation-estimate",e],view:(e,t,r)=>[...s.all,"view",e,t,r]},d=e=>{var t,r;let d=(0,n.G)(e=>e.userStateReducer.currentChainID),u=e.trim(),[c,p]=(0,l.Q3)(u,350);(0,o.useEffect)(()=>{p(u)},[u,p]);let m=(0,i.useQuery)({queryKey:s.list(null!=d?d:"",c),queryFn:async()=>await a.j.list(d,c),enabled:!!d,refetchOnMount:"always",refetchOnReconnect:!0,refetchOnWindowFocus:!0,staleTime:0,refetchInterval:e=>{var t;return null!=(t=e.state.data)&&!!t.items.some(e=>{let{status:t}=e;return"assembling"===t})&&4e3}});return{chainId:d,error:m.error,isError:m.isError,isFetching:m.isFetching,isLoading:m.isLoading,reports:null!=(r=null==(t=m.data)?void 0:t.items)?r:[],isSearchPending:c!==u}}},15280:(e,t,r)=>{"use strict";r.d(t,{YR:()=>_});var a=r(95155),n=r(14092),i=r(20170),o=r(6439),l=r(75738),s=r(82002),d=r(12115),u=r(72541),c=r.n(u);let p="Не смогли подключить Яндекс Бизнес. Попробуйте ещё раз через пару минут.",m=e=>{if(!(e instanceof Error))return p;let t=e.message.trim();return/[а-яё]/i.test(t)?t:p},_=e=>{let{company_id:t,refreshCompanyData:r}=e,u=(0,o.j)(),p=(0,o.G)(e=>e.modalReducer.currentOpenModal),[_,h]=(0,d.useState)(""),[f,v]=(0,d.useState)(null),[g,y]=(0,d.useState)(""),[b,x]=(0,d.useState)(""),[C,w]=(0,d.useState)(!1),[S,j]=(0,d.useState)(0),[D,N]=(0,d.useState)(null),[R,T]=(0,d.useState)([]),[k,A]=(0,d.useState)(null),M=async()=>{A(null);try{let e=await n.gc.getVerificationNumbers(t);T(e)}catch(e){T([]),A(m(e))}},E=async e=>{if(A(null),null==f?void 0:f.phone){if("call"===e&&(b.replace(/\D/g,""),
1!g))return void A("Заполните контактное лицо");j(1);try{let r=b.replace(/\D/g,""),a=await n.gc.sendConfirmationSMS(t,{phone_number:f.phone,method:e,..."call"===e&&{person_name:g,...r&&{phone_ext:r}}});N(a.request_id)}catch(e){A(m(e))}}},B=async()=>{if(_&&D){A(null);try{await n.gc.confirmVerificationCode(t,{request_id:D,verification_code:_}),r&&r(),u((0,s.Oo)())}catch(e){A(m(e))}}};return(0,d.useEffect)(()=>{"connectCompanyYB"===p&&M()},[p,t]),(0,a.jsx)(i.aFV,{modalID:"connectCompanyYB",onClose:()=>{h(""),v(null),y(""),x(""),w(!1),j(0),N(null),T([]),A(null),u((0,l.OY)())},title:"Подключение Яндекс.Бизнес",children:(0,a.jsxs)("div",{className:c().root,children:[(0,a.jsx)("div",{className:c().title,children:"Выберите способ:"}),(0,a.jsxs)("div",{className:c().method,children:[(0,a.jsx)("div",{className:c().label,children:"1. Через SMS/Звонок"}),(0,a.jsx)("div",{className:c().description,children:"Выберите из списка номер телефона, указанный в Яндекс.Бизнес. Мы отправим код для подтверждения — подключение произойдет автоматически."}),0===S&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:c().field,children:(0,a.jsx)(i.msM,{title:"Выберите номер телефона",items:R.map(e=>({value:e.phone,label:e.phone})),variant:"overlay",classNames:{root:c().dropdown},onChange:e=>{v(R.find(t=>t.phone===e.value)||null),h(""),N(null),j(0),A(null),y(""),x(""),w(!1)}})}),(null==f?void 0:f.methods.includes("call"))&&C&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:c().field,children:(0,a.jsx)(i.A_L,{title:"Контактное лицо",variant:"overlay",placeholder:"Введите имя контактного лица",value:g,onChange:e=>y(e.target.value)})}),(0,a.jsx)("div",{className:c().field,children:(0,a.jsx)(i.A_L,{title:"Добавочный номер",variant:"overlay",placeholder:"Например, 1234567",value:b,onChange:e=>{x(e.target.value.replace(/\D/g,"").slice(0,7))}})})]}),(0,a.jsxs)("div",{className:c().field,children:[(0,a.jsx)(i.$nd,{className:c().button,disabled:!(null==f?void 0:f.methods.includes("sms")),variant:"outlined",onClick:()=>E("sms"),children:"Получить SMS"}),(0,a.jsx)(i.$nd,{className:c().button,disabled:!(null==f?void 0:f.methods.includes("call"))||C&&!g,variant:C?"filled":"outlined",onClick:()=>{if(null==f?void 0:f.methods.includes("call")){if(!C)return void w(!0);E("call")}},children:"Заказать звонок"})]})]}),1===S&&(0,a.jsxs)("div",{className:c().field,children:[(0,a.jsx)(i.A_L,{title:"Код из SMS",variant:"overlay",placeholder:"Введите полученный код",value:_,onChange:e=>h(e.target.value)}),(0,a.jsx)(i.$nd,{className:c().button,disabled:!_,variant:"outlined",onClick:B,children:"Отправить код"})]}),k&&(0,a.jsx)("div",{className:c().error,children:(0,a.jsx)(i.FcD,{severity:"error",title:k})})]}),(0,a.jsxs)("div",{className:c().method,children:[(0,a.jsx)("div",{className:c().label,children:"2. Подключите самостоятельно"}),(0,a.jsxs)("div",{className:c().description,children:["Пошаговый гайд в"," ",(0,a.jsx)("a",{href:"https://wiki.recplace.ru/s/af40ed93-a51f-468d-8ec2-e6754766bd0a/doc/vydacha-dostupa-k-kartochke-kompanii-q5hFuiFhhs",target:"_blank",children:"инструкции"})]}),(0,a.jsx)("div",{className:c().field,children:(0,a.jsx)(i.$nd,{onClick:()=>window.open("https://business.yandex.ru/","_blank"),children:"Перейти в Яндекс.Бизнес"})})]})]})})};var h=r(35278);r.n(h)().content},26207:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var a,n=r(12115);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(null,arguments)}let o=function(e){return n.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none"},e),a||(a=n.createElement("path",{fill:"#3D3C43",fillOpacity:.4,d:"M9.167 14.167h1.666v-5H9.167zM10 7.5q.354 0 .594-.24t.24-.593a.8.8 0 0 0-.24-.594.8.8 0 0 0-.594-.24.8.8 0 0 0-.594.24.8.8 0 0 0-.24.594q0 .354.24.593.24.24.594.24m0 10.833a8.1 8.1 0 0 1-3.25-.656 8.4 8.4 0 0 1-2.646-1.781 8.4 8.4 0 0 1-1.781-2.646A8.1 8.1 0 0 1 1.667 10q0-1.73.656-3.25a8.4 8.4 
10 0 1 1.781-2.646A8.4 8.4 0 0 1 6.75 2.323 8.1 8.1 0 0 1 10 1.667q1.73 0 3.25.656a8.4 8.4 0 0 1 2.646 1.781 8.4 8.4 0 0 1 1.781 2.646 8.1 8.1 0 0 1 .656 3.25 8.1 8.1 0 0 1-.656 3.25 8.4 8.4 0 0 1-1.781 2.646 8.4 8.4 0 0 1-2.646 1.781 8.1 8.1 0 0 1-3.25.656m0-1.666q2.792 0 4.73-1.938 1.936-1.937 1.937-4.729 0-2.791-1.938-4.73Q12.792 3.335 10 3.334q-2.791 0-4.73 1.938Q3.335 7.209 3.334 10q0 2.792 1.938 4.73Q7.209 16.665 10 16.666"})))}},33654:(e,t,r)=>{"use strict";r.d(t,{A:()=>p,y:()=>c});var a=r(89749),n=r(38446),i=r(53455),o=r(68885),l=r(92841);let s=e=>{var t,r,a,n,i,o,l,s,d;return{firstname:null!=(t=e.firstname)?t:"",lastname:null!=(r=e.lastname)?r:"",username:null!=(a=e.username)?a:"",email:null!=(n=e.email)?n:"",phone:null!=(i=e.phone)?i:"",avatar:e.avatar,id:null!=(o=e.id)?o:"",active:!0,created_at:new Date,updated_at:new Date,role:"user",telegram_id:e.telegram_id,telegram:e.telegram_username,telegram_username:e.telegram_username,identities:e.identities,verified:e.verified,roles:null!=(l=e.roles)?l:[],segment:null!=(s=e.segment)?s:null,work_model:null!=(d=e.work_model)?d:null}},d=async e=>s((await l.A.get("/auth/me",e?{headers:{Authorization:"Bearer ".concat(e)}}:void 0)).data),u=e=>{if("boolean"==typeof e)return e;if(!e||"object"!=typeof e)return!1;for(let t of[e.access,e.allowed,e.has_access,e.has_permission,e.permitted,e.result])if("boolean"==typeof t)return t;return"boolean"==typeof e.data?e.data:!!e.data&&"object"==typeof e.data&&u(e.data)},c=()=>(0,i.useQuery)({queryKey:a.e.userMe,queryFn:async()=>await d(),enabled:!!((0,n.getAccessToken)()||(0,n.getRefreshToken)())}),p={checkPermission:async(e,t)=>{try{let r=await l.A.post("/auth/rbac/permissions/check",{permission_code:e,user_id:t});return u(r.data)}catch(e){var r;if((null==(r=e.response)?void 0:r.status)===403)return!1;throw e}},getMe:d,update:async e=>{let t={...e};return t.avatar_id||delete t.avatar_id,(await o.A.patch("".concat("/users/"),t)).data},updateProfile:async(e,t)=>s((await l.A.put("/auth/users",{id:e,...t})).data)}},35278:()=>{},47523:function(e,t,r){var a,n,i;!function(o,l){"use strict";e.exports?e.exports=l(r(21001)):(n=[r(21001)],void 0===(i="function"==typeof(a=l)?a.apply(t,n):a)||(e.exports=i))}(0,function(e){"use strict";void 0===e.version&&e.default&&(e=e.default);var t,r,a={},n={},i={},o={},l={};e&&"string"==typeof e.version||N("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");var s=e.version.split("."),d=+s[0],u=+s[1];function c(e){return e>96?e-87:e>64?e-29:e-48}function p(e){var t,r=0,a=e.split("."),n=a[0],i=a[1]||"",o=1,l=0,s=1;for(45===e.charCodeAt(0)&&(r=1,s=-1);r<n.length;r++)l=60*l+(t=c(n.charCodeAt(r)));for(r=0;r<i.length;r++)o/=60,l+=(t=c(i.charCodeAt(r)))*o;return l*s}function m(e){for(var t=0;t<e.length;t++)e[t]=p(e[t])}function _(e,t){var r,a=[];for(r=0;r<t.length;r++)a[r]=e[t[r]];return a}function h(e){var t=e.split("|"),r=t[2].split(" "),a=t[3].split(""),n=t[4].split(" ");m(r),m(a),m(n);for(var i=a.length,o=0;o<i;o++)n[o]=Math.round((n[o-1]||0)+6e4*n[o]);return n[i-1]=1/0,{name:t[0],abbrs:_(t[1].split(" "),a),offsets:_(r,a),untils:n,population:0|t[5]}}function f(e){e&&this._set(h(e))}function v(e,t){this.name=e,this.zones=t}function g(e){var t=e.toTimeString(),r=t.match(/\([a-z ]+\)/i);"GMT"===(r=r&&r[0]?(r=r[0].match(/[A-Z]/g))?r.join(""):void 0:(r=t.match(/[A-Z]{3,5}/g))?r[0]:void 0)&&(r=void 0),this.at=+e,this.abbr=r,this.offset=e.getTimezoneOffset()}function y(e){this.zone=e,this.offsetScore=0,this.abbrScore=0}function b(e,t){return e.offsetScore!==t.offsetScore?e.offsetScore-t.offsetScore:e.abbrScore!==t.abbrScore?e.abbrScore-t.abbrScore:e.zone.population!==t.zone.population?t.zone.population-e.zone.population:t.zone.name.localeCompare(e.zone.name)}function x(e){return(e||"").toLowerCase().replace(/\//g,"_")}function C(e){var t,r,n,i;for("string"==typeof e&&(e=[e]),t=0;t<e.length;t++)a[i=x(r=(n=e[t].split("|"))[0])]=e[t],o[i]=r,function(e,t){var r,a;for(m(t),r=0;r<t.length;r++)l[a=t[r]]=l[a]||{},l[a][e]=!0}(i,n[2].split(" "))}function w(e,t){var r,i=a[e=x(e)];return i instanceof f?i:"string"==typeof i?(i=new f(i),a[e]=i,i):n[e]&&t!==w&&(r=w(n[e],w))?((i=a[e]=new f)._set(r),i.name=o[e],i):null}function S(e){var t,r,a,i;for("string"==typeof e&&(e=[e]),t=0;t<e.length;t++)a=x((r=e[t].split("|"))[0]),i=x(r[1]),n[a]=i,o[a]=r[0],n[i]=a,o[i]=r[1]}function j(e){return j.didShowError||(j.didShowError=!0,N("moment.tz.zoneExists('"+e+"') has been deprecated 
1in favor of !moment.tz.zone('"+e+"')")),!!w(e)}function D(e){var t="X"===e._f||"x"===e._f;return!!(e._a&&void 0===e._tzm&&!t)}function N(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e)}function R(t){var r,a=Array.prototype.slice.call(arguments,0,-1),n=arguments[arguments.length-1],i=e.utc.apply(null,a);return!e.isMoment(t)&&D(i)&&(r=w(n))&&i.add(r.parse(i),"minutes"),i.tz(n),i}(d<2||2===d&&u<6)&&N("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+e.version+". See momentjs.com"),f.prototype={_set:function(e){this.name=e.name,this.abbrs=e.abbrs,this.untils=e.untils,this.offsets=e.offsets,this.population=e.population},_index:function(e){var t;if((t=function(e,t){var r,a=t.length;if(e<t[0])return 0;if(a>1&&t[a-1]===1/0&&e>=t[a-2])return a-1;if(e>=t[a-1])return -1;for(var n=0,i=a-1;i-n>1;)t[r=Math.floor((n+i)/2)]<=e?n=r:i=r;return i}(+e,this.untils))>=0)return t},countries:function(){var e=this.name;return Object.keys(i).filter(function(t){return -1!==i[t].zones.indexOf(e)})},parse:function(e){var t,r,a,n,i=+e,o=this.offsets,l=this.untils,s=l.length-1;for(n=0;n<s;n++)if(t=o[n],r=o[n+1],a=o[n?n-1:n],t<r&&R.moveAmbiguousForward?t=r:t>a&&R.moveInvalidForward&&(t=a),i<l[n]-6e4*t)return o[n];return o[s]},abbr:function(e){return this.abbrs[this._index(e)]},offset:function(e){return N("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(e)]},utcOffset:function(e){return this.offsets[this._index(e)]}},y.prototype.scoreOffsetAt=function(e){this.offsetScore+=Math.abs(this.zone.utcOffset(e.at)-e.offset),this.zone.abbr(e.at).replace(/[^A-Z]/g,"")!==e.abbr&&this.abbrScore++},R.version="0.5.48",R.dataVersion="",R._zones=a,R._links=n,R._names=o,R._countries=i,R.add=C,R.link=S,R.load=function(e){C(e.zones),S(e.links),function(e){var t,r,a,n;if(e&&e.length)for(t=0;t<e.length;t++)r=(n=e[t].split("|"))[0].toUpperCase(),a=n[1].split(" "),i[r]=new v(r,a)}(e.countries),R.dataVersion=e.version},R.zone=w,R.zoneExists=j,R.guess=function(e){return(!r||e)&&(r=function(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e&&e.length>3){var t=o[x(e)];if(t)return t;N("Moment Timezone found "+e+" from the Intl api, but did not have that data loaded.")}}catch(e){}var r,a,n,i=function(){var e,t,r,a,n=new Date().getFullYear()-2,i=new g(new Date(n,0,1)),o=i.offset,l=[i];for(a=1;a<48;a++)(r=new Date(n,a,1).getTimezoneOffset())!==o&&(l.push(e=function(e,t){for(var r,a;a=((t.at-e.at)/12e4|0)*6e4;)(r=new g(new Date(e.at+a))).offset===e.offset?e=r:t=r;return e}(i,t=new g(new Date(n,a,1)))),l.push(new g(new Date(e.at+6e4))),i=t,o=r);for(a=0;a<4;a++)l.push(new g(new Date(n+a,0,1))),l.push(new g(new Date(n+a,6,1)));return l}(),s=i.length,d=function(e){var t,r,a,n,i=e.length,s={},d=[],u={};for(t=0;t<i;t++)if(a=e[t].offset,!u.hasOwnProperty(a)){for(r in n=l[a]||{})n.hasOwnProperty(r)&&(s[r]=!0);u[a]=!0}for(t in s)s.hasOwnProperty(t)&&d.push(o[t]);return d}(i),u=[];for(a=0;a<d.length;a++){for(n=0,r=new y(w(d[a]),s);n<s;n++)r.scoreOffsetAt(i[n]);u.push(r)}return u.sort(b),u.length>0?u[0].zone.name:void 0}()),r},R.names=function(){var e,t=[];for(e in o)o.hasOwnProperty(e)&&(a[e]||a[n[e]])&&o[e]&&t.push(o[e]);return t.sort()},R.Zone=f,R.unpack=h,R.unpackBase60=p,R.needsOffset=D,R.moveInvalidForward=!0,R.moveAmbiguousForward=!1,R.countries=function(){return Object.keys(i)},R.zonesForCountry=function(e,t){if(!(e=i[e.toUpperCase()]||null))return null;var r=e.zones.sort();return t?r.map(function(e){var t=w(e);return{name:e,offset:t.utcOffset(new Date)}}):r};var T=e.fn;function k(e){return function(){return this._z?this._z.abbr(this):e.call(this)}}function A(e){return function(){return this._z=null,e.apply(this,arguments)}}e.tz=R,e.defaultZone=null,e.updateOffset=function(t,r){var a,n=e.defaultZone;if(void 0===t._z&&(n&&D(t)&&!t._isUTC&&t.isValid()&&(t._d=e.utc(t._a)._d,t.utc().add(n.parse(t),"minutes")),t._z=n),t._z)if(16>Math.abs(a=t._z.utcOffset(t))&&(a/=60),void 0!==t.utcOffset){var i=t._z;t.utcOffset(-a,r),t._z=i}else t.zone(a,r)},T.tz=function(t,r){if(t){if("string"!=typeof t)throw Error("Time zone name must be a string, got "+t+" ["+typeof t+"]");return this._z=w(t),this._z?e.updateOffset(this,r):N("Moment Timezone has no data for "+t+". See http://momentjs.com/timezone/docs/#/data-loading/."),this}if(this._z)return this._z.name},T.zoneName=k(T.zoneName),T.zoneAbbr=k(T.zoneAbbr),T.utc=A(T.utc),T.local=A(T.local),t=T.utcOffset,T.utcOffset=function(){return arguments.length>0&&(this._z=null),t.apply(this,arguments)},e.tz.setDefault=function(t){return(d<2||2===d&&u<9)&&N("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+e.version+"."),e.defaultZone=t?w(t):null,e};var M=e.momentProperties;return"[object Array]"===Object.prototype.toString.call(M)?(M.push("_z"),M.push("_a")):M&&(M._z=null),e})},51947:(e,t,r)=>{"use strict";r.d(t,{UN:()=>a,k6:()=>n,s7:()=>i});let a={wizard:{periodStart:"Отчёт, который будет использован как начальная точка для сравнения.",periodMiddle:"Отчёт для дополнительного сравнения изменений в промежуточной точке.",periodCurrent:"Актуальный отчёт, с которым сравниваются показатели предыдущих периодов.",missingReports:"Для части филиалов не найдены отчёты на текущую дату. Их можно сформировать автоматически."},navigation:{disabledSection:"Нет данных по разделу, так как вы не выбрали отчеты в настройках. Пожалуйста, выберите отчёты в настройках и данные появятся."},sections:{promotion:"Показатели продвижения на текущую дату."},metrics:{fallback:"Показатель сравнивает значения в начале и в конце выбранного отчётного периода.",byTitle:{"Обращения с карточек":"Количество звонков, маршрутов и других целевых действий из карточки.","Видимость в поиске":"Доля поисковых запросов, по которым карточка компании попадает в зону видимости.",Видимость:"Количество показов организации и её профиля в Яндексе за период замера.","Целевые действия":"Количество звонков, маршрутов и других целевых действий из карточки за период замера.","Конверсия профиля":"Доля целевых действий от общего количества показов профиля.","Рейтинг Яндекс":"Средняя оценка карточки компании Ð
1½Ð° Яндекс Картах на выбранную дату.","Заполненность карточки":"Доля заполненных полей карточки, которые влияют на её качество и видимость.","Средняя позиция":"Среднее место филиала в выдаче по всем запросам, включённым в отчёт.","Рейтинг в локации":"Место компании среди конкурентов в выбранной локации.","Доля трафика":"Доля переходов, которую получает ваша компания от общего трафика в локации.",Опубликовано:"Количество новостей и сториз, опубликованных к опорной дате.",Рейтинг:"Средняя оценка карточки на выбранной геоплатформе.","Получено отзывов":"Общее количество отзывов, опубликованных к выбранной дате.","Ответы на отзывы":"Количество отзывов, на которые компания успела ответить.",Запланировано:"Количество запланированных действий по продвижению на выбранную дату.",Успешно:"Количество успешно выполненных действий по продвижению.",Неуспешно:"Количество действий по продвижению, которые не удалось выполнить.",Успешность:"Доля успешно выполненных действий от общего числа запланированных."}},tableIndicators:{fallback:"Показатель отражает изменение данных между выбранными периодами.",byLabel:{"ВЧ-запросы в топ-5":"Высокочастотные запросы, по которым филиал занимает одну из первых пяти позиций.","ВЧ-запросы на позициях 6–15":"Высокочастотные запросы, по которым филиал находится на позициях с шестой по пятнадцатую.","СЧ-запросы в топ-5":"Среднечастотные запросы, по которым филиал входит в первые пять результатов.","СЧ-запросы на позициях 6–15":"Среднечастотные запросы на позициях с шестой по пятнадцатую.","Остальные запросы (позиции 16+)":"Запросы, по которым филиал находится ниже пятнадцатой позиции.","Запросов найдено":"Количество запросов, по которым удалось найти карточку Ñ
1„илиала.","Всего запросов":"Общее количество запросов, проверенных в отчёте позиций.","Дискавери-переходы к вам":"Переходы к вашей карточке из категорийной и рекомендательной выдачи.","Дискавери у лидеров":"Переходы, которые получают лидеры категории в выбранной локации.","Дискавери у конкурентов":"Общее количество переходов, которые получают конкуренты.","Спрос по вашим категориям, запросов":"Общий спрос по категориям компании в выбранной локации.","Всего конкурентов":"Количество компаний, с которыми сравнивается филиал.","Новости (SEO)":"Количество опубликованных и запланированных новостей на карточке.",Сториз:"Количество опубликованных и запланированных сториз.",Услуг:"Общее количество услуг в прайс-листе на выбранную дату.",Категорий:"Количество категорий, по которым распределены услуги.","Невыполненных задач":"Количество задач по прайс-листу, которые ещё не завершены.","Недонастроенных услуг":"Количество услуг, для которых не заполнены обязательные данные.",Успешные:"Количество успешно завершённых целевых действий.",Успешность:"Доля успешно завершённых действий от общего числа.","Целевые действия":"Количество действий, которые считаются целевыми для бизнеса.","Конверсия профиля":"Доля посетителей профиля, которые совершили целевое действие.",Ошибки:"Количество ошибок, найденных в исходном отчёте."}}},n=e=>{var t;return null!=(t=a.metrics.byTitle[e])?t:a.metrics.fallback},i=e=>{var t;return null!=(t=a.tableIndicators.byLabel[e])?t:a.tableIndicators.fallback}},52172:(e,t,r)=>{"use strict";r.d(t,{Jf:()=>c,LH:()=>l,NM:()=>h,RG:()=>p,SN:()=>m,U9:()=>u,YH:()=>o,Yq:()=>d,ak:()=>f,gr:()=>s,sl:()=>_}),r(9153);let a=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=(e,t)=>{let r=a(e);return r.setDate(r.getDate()+t),r},i=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter(e=>!!e).map(a).reduce((e,t)=>t<e?t:e)},o=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Date,o=a(r);return"start"===e?{maxDate:n(i(t.middle,t.current,o),-1)}:"middle"===e?{minDate:t.start?n(t.start,1):void 0,maxDate:n(i(t.current,o),-1)}:{minDate:t.middle?n(t.middle,1):t.start?n(t.start,1):void 0,maxDate:o}},l=function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Date,i=a(t),{minDate:l,maxDate:s}=o(e,r,n);return(!l||i>=l)&&i<=s},s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;return Object.values(e).some(e=>e&&a(e)>a(t))?"Даты отчёта не могут быть позже сегодняшнего дня.":e.start&&e.current&&a(e.start)>=a(e.current)?"Текущий момент должен быть позже начала работы минимум на день.":e.middle&&e.start&&a(e.middle)<=a(e.start)?"Промежуточный период должен быть позже начала работы минимум на день.":e.middle&&e.current&&a(e.middle)>=a(e.current)?"Текущий момент должен быть позже промежуточного периода минимум на день.":void 0},d=e=>new Intl.DateTimeFormat("ru-RU").format(e),u=e=>new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())).toISOString(),c=(e,t)=>{let r="mid"===e?t.middle:t[e];if(!t.start||!t.current||!r)return null;let i=new Date(Math.max(a(t.start).getTime(),n(r,-7).getTime())),o=new Date(Math.min(a(t.current).getTime(),n(r,7).getTime()));return i>o?null:{from:u(i),to:new Date(Date.parse(u(o))+864e5-1).toISOString()}}
1,p=e=>{if(!e)return null;let[t,r,a]=e.slice(0,10).split("-").map(Number);return new Date(t,r-1,a)},m=e=>"middle"===e?"mid":e,_=(e,t,r)=>"".concat(e,":").concat(t,":").concat("middle"===r?"mid":r),h=e=>Object.fromEntries(e.map(e=>[_(e.branch_id,e.report_type,e.point),e])),f=(e,t,r,a)=>{let n=m(a),i=new Set(e.map(e=>{let{id:t}=e;return t})),o=t.filter(e=>e.report_type===r&&e.point===n&&i.has(e.branch_id)),l=o.filter(e=>e.source_run_id&&"error"!==e.status).length;return l?l===e.length&&o.length===e.length?"green":"yellow":"red"}},61312:(e,t,r)=>{"use strict";r.d(t,{j:()=>g});var a=r(70218),n=r(95704);let i=e=>null==e?void 0:e.replace(/\/$/,""),o=()=>{let e=i(n.env.NEXT_PUBLIC_ANALYTICS_API_BASE_URL);if(e)return e;let t=i("https://platform.recplace.ru");if(!t)throw Error("NEXT_PUBLIC_ANALYTICS_API_BASE_URL or NEXT_PUBLIC_URL must be set");return"".concat(t,"/analytics-service/api/v1")};var l=r(95125);let s=(0,a.E)(o()),d=l.A.create({baseURL:o(),withCredentials:!1,headers:{"Content-Type":"application/json"}}),u="/summary-reports",c=e=>"pf"===e?"promotion":"performance"===e?"perfomance":e,p=e=>({...e,report_type:c(e.report_type)}),m=e=>{var t;return{...e,cells:(null!=(t=e.cells)?t:[]).map(p)}},_=e=>null!=e?e:null,h=e=>({...e,status:"partial"!==e.status||e.point_mid?e.status:"ready",kpi_summary:{card_appeal:{before:_(e.card_appeal_before),current:_(e.card_appeal)},card_completeness:{before:_(e.card_completeness_before),current:_(e.card_completeness)},rating:{before:_(e.rating_before),current:_(e.rating)},visibility:{before:_(e.visibility_before),current:_(e.visibility)}}}),f=e=>{let t=null==e?void 0:e.data;if(!t||"object"!=typeof t||Array.isArray(t)||0!==Object.keys(t).length)return t},v=e=>{var t;return{...e,sections:(null!=(t=e.sections)?t:[]).map(e=>{var t,r,a;let n=c(e.report_type),i=null!=(a=null==(t=e.current)?void 0:t.schema_version)?a:null==(r=e.before)?void 0:r.schema_version;return{type:n,state:e.state,message:e.message,schema_version:i,reason_code:e.reason_code,before:f(e.before),current:f(e.current),cells:e.cells}})}},g={list:async(e,t)=>(await s.get(u,{params:{chain_id:e,q:(null==t?void 0:t.trim())||void 0}})).data,get:async e=>h((await s.get("".concat(u,"/").concat(e))).data),create:async e=>h((await s.post(u,e)).data),update:async(e,t)=>h((await s.put("".concat(u,"/").concat(e),t)).data),rename:async(e,t)=>h((await s.patch("".concat(u,"/").concat(e),t)).data),remove:async e=>{await s.delete("".concat(u,"/").concat(e))},collect:async(e,t)=>m((await s.post("".concat(u,"/").concat(e,"/collect"),t)).data),getCells:async e=>m((await s.get("".concat(u,"/").concat(e,"/cells"))).data),getCandidates:async(e,t)=>{let r=await s.get("/cells/".concat(e,"/candidates"),{params:t});return{...r.data,items:[...r.data.items].sort((e,t)=>Date.parse(t.created_at)-Date.parse(e.created_at))}},updateCell:async(e,t)=>(await s.patch("/cells/".concat(e),t)).data,assemble:async e=>h((await s.post("".concat(u,"/").concat(e,"/assemble"))).data),getGenerationEstimate:async e=>{var t;let r=await s.get("".concat(u,"/").concat(e,"/generation-estimate"));return{...r.data,items:(null!=(t=r.data.items)?t:[]).map(e=>({...e,report_type:c(e.report_type)}))}},generate:async e=>{var t;let r=await s.post("".concat(u,"/").concat(e,"/generate"));return{...r.data,cells:(null!=(t=r.data.cells)?t:[]).map(p)}},rotateShareToken:async e=>h((await s.post("".concat(u,"/").concat(e,"/rotate-share-token"))).data),getView:async(e,t)=>v((await s.get("".concat(u,"/").concat(e,"/view"),{params:{branch_id:null==t?void 0:t.branchId,compare_with:null==t?void 0:t.compareWith}})).data),getPublicView:async(e,t)=>v((await d.get("/public/summary-reports/".concat(encodeURIComponent(e),"/view"),{params:{branch_id:null==t?void 0:t.branchId,compare_with:null==t?void 0:t.compareWith}})).data)}},72541:e=>{e.exports={root:"ConnectCompanyYBModal_root__eyuHK",error:"ConnectCompanyYBModal_error__3xiSj",title:"ConnectCompanyYBModal_title__wFobq",method:"ConnectCompanyYBModal_method__1XGZH",label:"ConnectCompanyYBModal_label__8bOb1",description:"ConnectCompanyYBModal_description__YW70p",field:"ConnectCompanyYBModal_field__X7kN_",button:"ConnectCompanyYBModal_button__6L5Ts"}},74056:e=>{e.exports={inner:"CreateSummaryReport_inner__aAKj_",setupFields:"CreateSummaryReport_setupFields__KHgc1",continueButton:"CreateSummaryReport_continueButton__igrnQ",pageLoader:"CreateSummaryReport_pageLoader__MprCk",nameSection:"CreateSummaryReport_nameSection__iHpqn",datesSection:"CreateSummaryReport_datesSection__MtFzZ",branchesSection:"CreateSummaryReport_branchesSection__1nLMv",comparisonSection:"CreateSummaryReport_comparisonSection__xAgFK",sectionTitle:"CreateSummaryReport_sectionTitle__K888K",nameInput:"CreateSummaryReport_nameInput__Q4We5",nameInputInvalid:"CreateSummaryReport_nameInputInvalid__yuRvd",nameInputText:"CreateSummaryReport_nameInputText__mxn6U",sectionCopy:"CreateSummaryReport_sectionCopy__bJdQG",dateFields:"CreateSummaryReport_dateFields__CrPYI",dateField:"CreateSummaryReport_dateField__zjLYA",fieldLabel:"CreateSummaryReport_fieldLabel__6p95_",dateControlRow:"CreateSummaryReport_dateControlRow__yaI94",dateInput:"CreateSummaryReport_dateInput__ZN6L0",dateInputEmpty:"CreateSummaryReport_dateInputEmpty__oLFIL",dateInputInvalid:"CreateSummaryReport_dateInputInvalid__xr0dU",datesError:"CreateSummaryReport_datesError__DMSKE",calendarButton:"CreateSummaryReport_calendarButton__4oo0O",startDateGroup:"CreateSummaryReport_startDateGroup__RJb9Q",dateDivider:"CreateSummaryReport_dateDivider__XxcoO",quickPeriods:"CreateSummaryReport_quickPeriods__0GhHj",quickPeriodButton:"CreateSummaryReport_quickPeriodButton__6EHoF",quickPeriodButtonActive:"CreateSummaryReport_quickPeriodButtonActive__ba_Wg",branchGrid:"CreateSummaryReport_branchGrid__frwop",branchGridInvalid:"CreateSummaryReport_branchGridInvalid__QybqD",branchCard:"CreateSummaryReport_branchCard__Lwcnh",branchAddress:"CreateSummaryReport_branchAddress__Zo3v_",tableAddress:"CreateSummaryReport_tableAddress__Gj0WW",branchActions:"CreateSummaryReport_branchActions__bmxzN",pagination:"CreateSummaryReport_pagination__pgj_O",updateButton:"CreateSummaryReport_updateButton__GrfUK",updateButtonWrapper:"CreateSummaryReport_updateButtonWrapper__b9lg4",missingNotice:"CreateSummaryReport_missingNotice__T3Cbp",loadingNotice:"CreateSummaryReport_loadingNotice___6CPJ",yandexWarning:"CreateSummaryReport_yandexWarning__BtGb_",generationAlert:"CreateSummaryReport_generationAlert__pJOsS",generateButton:"CreateSummaryReport_generateButton__04mhZ",buttonLoader:"CreateSummaryReport_buttonLoader__qf4Ag",generateButtonWrapper:"CreateSummaryReport_generateButtonWrapper__bRSrI",price:"CreateSummaryReport_price__e2EBD",loadingNoticeHeading:"CreateSummaryReport_loadingNoticeHeading__MD7Av",loadingSpinner:"CreateSummaryReport_loadingSpinner__ZOltw",yandexCloseButton:"CreateSummaryReport_yandexCloseButton__hbgZH",reportTabs:"CreateSummaryReport_reportTabs__Uv_Lo",reportTab:"CreateSummaryReport_reportTab__UnbqC",reportTabActive:"CreateSummaryReport_reportTabActive__erwn_",indicators:"CreateSummaryReport_indicators__IURKi",dot_red:"CreateSummaryReport_dot_red___fteI",dot_yellow:"CreateSummaryReport_dot_yellow__jZZTU",dot_green:"CreateSummaryReport_dot_green__qTOqb",reportTable:"CreateSummaryReport_reportTable__qWx5Y",tableScroller:"CreateSummaryReport_tableScroller__nn7Ys",reportTableInner:"CreateSummaryReport_reportTableInner__cTcjV",reportTableHeader:"CreateSummaryReport_reportTableHeader__HEJlX",reportTableRow:"CreateSummaryReport_reportTableRow__mYxp0",reportTableUnavailable:"CreateSummaryReport_reportTableUnavailable__GXfsM",reportTableUnavailableButton:"CreateSummaryReport_reportTableUnavailableButton__PdA4J",reportTableCell:"CreateSummaryReport_reportTableCell__pTfGt",reportDropdownWrapper:"CreateSummaryReport_reportDropdownWrapper__qQgrF",reportDropdownTooltipTarget:"CreateSummaryReport_reportDropdownTooltipTarget__S50Hz",reportDropdownRoot:"CreateSummaryReport_reportDropdownRoot__gVo_v",reportDropdownControl:"CreateSummaryReport_reportDropdownControl__t4Rby",reportDropdownValueContainer:"CreateSummaryReport_reportDropdownValueContainer__uCoWe",reportDropdownPlaceholder:"CreateSummaryReport_reportDropdownPlaceholder__V0u_e",reportDropdownValue:"CreateSummaryReport_reportDropdownValue__tVHnL",reportDropdownMenu:"CreateSummaryReport_reportDropdownMenu__uhAjq",reportDropdownMenuList:"CreateSummaryReport_reportDropdownMenuList__uZMVN",reportDropdownOption:"CreateSummaryReport_reportDropdownOption__Iv5Q1",periodCalendar:"CreateSummaryReport_periodCalendar__OwIbX"}},80587:(e,t,r)=>
1{(e.exports=r(47523)).tz.load(r(86644))},96268:(e,t,r)=>{"use strict";r.r(t),r.d(t,{CreateSummaryReport:()=>eo});var a=r(95155),n=r(33228),i=r(20170),o=r(6696),l=r(15280),s=r(6439),d=r(82002),u=r(85203),c=r.n(u),p=r(20063),m=r(12115),_=r(74056),h=r.n(_),f=r(26078),v=r(97675),g=r.n(v);let y=e=>{let{page:t,totalPages:r,onChange:n,pageSize:i,pageSizeOptions:o=[10,25,50,100],onPageSizeChange:l,className:s}=e,d=(0,m.useMemo)(()=>((e,t)=>{if(t<=7)return Array.from({length:t},(e,t)=>t+1);let r=[1],a=Math.max(2,e-1),n=Math.min(t-1,e+1);a>2&&r.push("gap");for(let e=a;e<=n;e++)r.push(e);return n<t-1&&r.push("gap"),r.push(t),r})(t,r),[t,r]);return r<=1&&!l?null:(0,a.jsxs)("div",{className:c()(g().root,s),children:[l&&(0,a.jsxs)("label",{className:g().sizeSelector,children:["На странице:",(0,a.jsx)("select",{value:i,onChange:e=>l(Number(e.target.value)),children:o.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})]}),r>1&&(0,a.jsxs)("div",{className:g().pages,children:[(0,a.jsx)("button",{type:"button",className:g().btn,disabled:t<=1,onClick:()=>n(t-1),children:"‹"}),d.map((e,r)=>"gap"===e?(0,a.jsx)("span",{className:g().gap,children:"…"},"gap-".concat(r)):(0,a.jsx)("button",{type:"button",className:c()(g().btn,e===t&&g().active),onClick:()=>n(e),children:e},e)),(0,a.jsx)("button",{type:"button",className:g().btn,disabled:t>=r,onClick:()=>n(t+1),children:"›"})]})]})},b=[{id:"checker",title:"Чекер позиций"},{id:"competitors",title:"Анализ конкурентов"},{id:"audit",title:"Аудит"},{id:"perfomance",title:"Performance метрики"}],x=["start","middle","current"],C=b.map(e=>{let{id:t}=e;return t}),w=["checker","competitors","audit","perfomance"],S=e=>{let{disabledHint:t="Пожалуйста, проверьте наличие введенных данных: название отчёта, даты для сравнения, наличие выбора хотя бы 1 филиала для сравнения.",branches:r,canBuildReports:n,hasBuiltReportTable:o,isUpdating:l,isEditingExisting:s,page:d,selectedBranchIDs:u,hasSelectionError:p=!1,totalPages:m,onPageChange:_,onToggleBranch:v,onUpdate:g}=e;return(0,a.jsxs)("section",{className:h().branchesSection,children:[(0,a.jsx)("h2",{className:h().sectionTitle,children:"Филиалы для отчёта"}),(0,a.jsx)("div",{className:c()(h().branchGrid,p&&h().branchGridInvalid),"aria-invalid":p,children:r.map(e=>(0,a.jsx)("div",{className:h().branchCard,children:(0,a.jsx)(i.Sc0,{id:"summary-report-branch-".concat(e.id),"aria-label":e.address,checked:u.has(e.id),text_color:"black",onChange:()=>v(e.id),children:(0,a.jsx)("span",{className:h().branchAddress,"data-tooltip-text":e.address,children:e.address})})},e.id))}),m>1||!s?(0,a.jsxs)("div",{className:h().branchActions,children:[m>1?(0,a.jsx)(y,{page:d,pageSize:6,totalPages:m,onChange:_,className:h().pagination}):null,s?null:(0,a.jsx)("div",{className:h().updateButtonWrapper,"data-tooltip-force":n||l?void 0:"true","data-tooltip-text":n||l?void 0:t,children:(0,a.jsx)(i.$nd,{variant:"filled",endIcon:(0,a.jsx)(f.A,{"aria-hidden":"true"}),className:h().updateButton,disabled:!n,loading:l,onClick:g,children:l?o?"Пересобираем отчёты":"Собираем отчёты":o?"Пересобрать отчёты":"Собрать отчёты"})})]}):null]})};var j=r(9153),D=r(52172),N=r(63784),R=r(73971);let T=e=>{let{isCollectingSources:t,isUpdating:r,isGenerating:n,isEditingExisting:o,isSelectionOutdated:l,generatableCount:s,runningCount:d,networkWarningText:u,showYandexBusinessWarning:c,totalTokens:p,onConnectYandex:m,onGenerate:_,onDismissNetworkWarning:f}=e,v=n||t,g=v?Math.max(s,d):s,y=v?"Примерное время ожидания — 5 минут.":void 0,b=(0,a.jsx)("span",{className:h().generateButtonWrapper,"data-tooltip-force":y?"true":void 0,"data-tooltip-text":y,children:(0,a.jsxs)(i.$nd,{variant:"filled",className:h().generateButton,disabled:v,onClick:_,children:[(0,a.jsx)("span",{children:v?"Формируем отчёты":"Сформировать отчёты"}),v?(0,a.jsx)(i.aHM,{className:h().buttonLoader}):null,void 0!==p?(0,a.jsxs)("span",{className:h().price,children:[(0,a.jsx)(R.HTw,{"aria-hidden":"true"}
1),p.toLocaleString("ru-RU")]}):null]})});return v?(0,a.jsxs)("div",{className:h().loadingNotice,role:"status",children:[(0,a.jsxs)("span",{className:h().loadingNoticeHeading,children:[(0,a.jsx)("strong",{children:"Формируем отчёты"}),(0,a.jsx)(i.aHM,{className:h().loadingSpinner}),(0,a.jsx)("span",{children:"5 мин"})]}),(0,a.jsx)("p",{children:"Сбор отчётов происходит в фоновом режиме, результат появится в конце процесса. Вы можете закрыть это окно и вернуться позже."})]}):r?(0,a.jsxs)("div",{className:h().loadingNotice,children:[(0,a.jsxs)("span",{className:h().loadingNoticeHeading,children:[(0,a.jsx)("strong",{children:"Подбираем существующие отчёты"}),(0,a.jsx)(i.aHM,{className:h().loadingSpinner})]}),(0,a.jsx)("p",{children:"Ищем существующие отчёты по выбранным филиалам и датам."})]}):l?(0,a.jsx)("div",{className:h().generationAlert,role:"status",children:(0,a.jsx)(i.FcD,{severity:"warning",title:"Настройки отчёта изменены",text:o?"Сохраните изменения, чтобы обновить отчёт.":"Пересоберите отчёты, чтобы обновить подбор."})}):c?(0,a.jsx)("div",{className:h().generationAlert,role:"alert",children:(0,a.jsx)(i.FcD,{severity:"error",icon:(0,a.jsx)(R.uj7,{"aria-hidden":"true"}),title:"Не смогли сформировать отчёты по \xabPerformance метрикам\xbb",text:"Подключите Яндекс Бизнес, чтобы сформировать недостающие отчёты.",action:m,actionName:"Подключить Яндекс Бизнес",onClose:f})}):g>0?(0,a.jsx)("div",{className:h().generationAlert,children:(0,a.jsx)(i.FcD,{inline:!0,severity:"warning",text:"".concat(1===g?"Отсутствует":"Отсутствуют"," ").concat(g," ").concat((0,N.Yn)(g,["отчёт","отчёта","отчётов"])," на дату формирования отчёта"),endIcon:b})}):u?(0,a.jsxs)("div",{className:h().yandexWarning,role:"alert",children:[(0,a.jsx)(R.uj7,{"aria-hidden":"true"}),(0,a.jsx)("span",{children:u}),(0,a.jsx)(i.$nd,{variant:"icon",className:h().yandexCloseButton,"aria-label":"Закрыть уведомление",onClick:f,children:(0,a.jsx)(R.USm,{"aria-hidden":"true"})})]}):null};var k=r(27043),A=r(26207),M=r(51947),E=r(61312),B=r(53455),z=r(13717);let q=new Intl.DateTimeFormat("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}),I=function(e,t){var r;let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=(0,B.useQuery)({queryKey:z.x.candidates(e),queryFn:async()=>await E.j.getCandidates(e),enabled:!!e&&a,staleTime:6e4}),i=(0,m.useMemo)(()=>{var e,t;return null!=(t=null==(e=n.data)?void 0:e.items)?t:[]},[null==(r=n.data)?void 0:r.items]),o=(0,m.useMemo)(()=>n.isSuccess&&!i.length?[{value:"__empty__",label:"Нет ни одного отчёта",disabled:!0}]:[{value:"__none__",label:"Без отчёта"},...i.map(e=>{let r;return{value:e.run_id,label:(r=e.created_at,q.format(new Date(r)).replace(",","")),description:"autoposting"===t?e.title?"Сториз: ".concat(e.title):"Без комментария":e.comment||e.title||"Без комментария"}})],[i,n.isSuccess,t]);return{candidates:i,items:o,refetch:n.refetch}},O={start:{label:"Отчёт: старт работы",tooltip:M.UN.wizard.periodStart},middle:{label:"Отчёт: промежуточный период",tooltip:M.UN.wizard.periodMiddle},current:{label:"Отчёт: текущий момент",tooltip:M.UN.wizard.periodCurrent}},L=e=>{let{children:t,tooltip:r}=e;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{children:t}),(0,a.jsx)(A.A,{"aria-label":r,"data-tooltip-force":"true","data-tooltip-text":r})]})},F=e=>{var t,r,n;let{cell:o,dates:l,disabledReason:s,isUpdating:d,onChange:u}=e,c=o?(0,D.Jf)(o.point,l):null,{candidates:p,items:m,refetch:_}=I(null!=(t=null==o?void 0:o.id)?t:"",null!=(r=null==o?void 0:o.report_type)?r:"checker",!!o),f=(null==o?void 0:o.source_run_id)?null!=(n=m.find(e=>{let{value:t}=e;return t===o.source_run_id}))?n:{value:o.source_run_id,label:o.source_run_created_at?(0,D.Yq)(new Date(o.source_run_created_at)):"Выбранный отчёт",description:"Без комментария"}:null,v=(null==o?void 0:o.reason_code)||(null==o?void 0:o.error)?(0,j.C$)(o.reason_code,o.error,"Не удалось подготовить отчёт для выбранного периода."):void 0,g=s||(
1d?"Список отчётов обновляется. Дождитесь завершения.":o?c?void 0:"Сначала выберите дату для этого периода.":"Нет данных для этого филиала за выбранный период."),y=null!=g?g:v,b=s?"Недоступно":d?"Обновляем список":o?c?"Нет отчёта":"Выберите дату":"Нет данных";return(0,a.jsxs)("div",{className:h().reportDropdownWrapper,"aria-label":y,"data-tooltip-force":y?"true":void 0,"data-tooltip-text":y,children:[g?(0,a.jsx)("span",{className:h().reportDropdownTooltipTarget,"aria-label":g,"data-tooltip-force":"true","data-tooltip-text":g,tabIndex:0}):null,(0,a.jsx)(i.msM,{items:m,value:f,disabled:!!g,placeholder:b,variant:"overlay",menuPlacement:"top",classNames:{root:h().reportDropdownRoot,control:h().reportDropdownControl,valueContainer:h().reportDropdownValueContainer,menu:h().reportDropdownMenu,menuList:h().reportDropdownMenuList,option:h().reportDropdownOption,placeholder:h().reportDropdownPlaceholder,singleValue:h().reportDropdownValue},onMenuOpen:()=>{o&&c&&_().then(e=>{let{isError:t}=e;t&&(0,k.showAppToast)("Не удалось загрузить список отчётов","error")})},onChange:e=>{var t;if(!o)return;let r=null==e?void 0:e.value,a=null!=(t=p.find(e=>{let{run_id:t}=e;return t===r}))?t:null;("__none__"===r||a)&&u(o,"__none__"===r?null:a)}})]})},P=e=>{let{activeTab:t,periods:r,cells:n,dates:o,rows:l,disabledReason:s,unavailableState:d,isUpdating:u,updatingCellIDs:c,onChange:p}=e,_="minmax(0, 378fr) repeat(".concat(r.length,", minmax(0, 274fr))"),f=new Set([...l.filter(e=>{let{isNetwork:t}=e;return t}).map(e=>{let{id:t}=e;return t}),...Object.values(n).filter(e=>"competitors"===e.report_type&&(0,j.wS)(e.reason_code,e.error)).map(e=>{let{branch_id:t}=e;return t})]),v=(0,m.useCallback)(e=>{if(e.deltaY<0&&e.currentTarget.scrollTop<=0){e.preventDefault(),window.scrollBy({top:e.deltaY});return}let t=e.currentTarget.getBoundingClientRect().top-140;if(e.deltaY<=0||t<=0)return;e.preventDefault();let r=Math.min(e.deltaY,t);window.scrollBy({top:r}),e.currentTarget.scrollTop+=e.deltaY-r},[]);return(0,a.jsx)(i.WED,{className:h().reportTable,children:(0,a.jsx)(i.WED.Scroll,{className:h().tableScroller,onWheel:v,children:(0,a.jsxs)(i.WED.Inner,{className:h().reportTableInner,children:[(0,a.jsxs)(i.WED.Row,{variant:"header",className:h().reportTableHeader,gridTemplateColumns:_,children:[(0,a.jsx)(i.WED.Cell,{variant:"header",children:"Филиал"}),r.map(e=>(0,a.jsx)(i.WED.Cell,{variant:"header",children:(0,a.jsx)(L,{tooltip:O[e].tooltip,children:O[e].label})},e))]}),d?(0,a.jsxs)("div",{className:h().reportTableUnavailable,children:[(0,a.jsx)("strong",{children:"Отчёты недоступны"}),(0,a.jsx)("span",{children:d.description}),d.actionLabel&&d.onAction?(0,a.jsx)(i.$nd,{type:"button",variant:"filled",className:h().reportTableUnavailableButton,onClick:d.onAction,children:d.actionLabel}):null]}):l.map(e=>(0,a.jsxs)(i.WED.Row,{className:h().reportTableRow,gridTemplateColumns:_,children:[(0,a.jsx)(i.WED.Cell,{className:h().reportTableCell,children:(0,a.jsx)("span",{className:h().tableAddress,"data-tooltip-text":e.address,children:e.address})}),r.map(r=>{var l,d,m,_,v;return(0,a.jsx)(i.WED.Cell,{className:h().reportTableCell,children:(0,a.jsx)(F,{cell:n[(0,D.sl)(e.id,t,r)],dates:o,disabledReason:null!=s?s:"competitors"===t&&f.has(e.id)?"Для сетевых филиалов анализ конкурентов недоступен.":"perfomance"===t&&"current"===r&&!(null==(l=n[(0,D.sl)(e.id,t,r)])?void 0:l.source_run_id)&&(0,j.jO)(null==(d=n[(0,D.sl)(e.id,t,r)])?void 0:d.reason_code,null==(m=n[(0,D.sl)(e.id,t,r)])?void 0:m.error)?"Чтобы сформировать отчёты – подключите Яндекс Бизнес.":void 0,isUpdating:u||c.has(null!=(v=null==(_=n[(0,D.sl)(e.id,t,r)])?void 0:_.id)?v:""),onChange:p})},r)})]},e.id))]})})})},U={start:"Начало сотрудничества",middle:"Отчёты на период для сравнения",current:"Отчёты на дату формирования"},Y=e=>{var t,r,n;let{activeTab:o,periods:l,cells:s,dates:d,indicatorTones:u,generationEstimate:p,isCollectingSources:m,isGenerating:_,isEditingExisting:f,isU
1pdating:v,isSelectionOutdated:g,networkWarningText:y,showYandexBusinessWarning:C,rows:S,updatingCellIDs:N,onActiveTabChange:R,onGenerateMissingReports:k,onDismissNetworkWarning:A,onConnectYandex:M,onReportChange:E}=e,B=new Set(S.map(e=>{let{id:t}=e;return t})),z=Object.values(s).filter(e=>B.has(e.branch_id)),q=b.some(e=>{let{id:t}=e;return t===o})?o:null!=(n=null==(t=b[0])?void 0:t.id)?n:o,I=z.filter(e=>"running"===e.status||"waiting_generation"===e.status).length,O=new Set(S.filter(e=>{let{isNetwork:t}=e;return t}).map(e=>{let{id:t}=e;return t})),L=z.filter(e=>"current"===e.point&&w.includes(e.report_type)&&!("competitors"===e.report_type&&O.has(e.branch_id))&&!e.source_run_id&&"running"!==e.status&&"waiting_generation"!==e.status&&!(0,j.B2)(e.reason_code)).length,F=p?Math.min(p.total_cells,L):L,Y=(e,t)=>z.filter(r=>r.branch_id===e&&r.report_type===t),W="competitors"===q&&S.length>0&&S.every(e=>{let t=Y(e.id,"competitors");return e.isNetwork||t.length>0&&t.every(e=>(0,j.wS)(e.reason_code,e.error))}),Q="perfomance"===q&&S.length>0&&(()=>{let e=z.filter(e=>"perfomance"===e.report_type);return e.length>0?e.every(e=>!e.source_run_id&&(0,j.jO)(e.reason_code,e.error)):S.every(e=>{let{hasYandexBusinessAccess:t}=e;return!1===t})})(),G=null==(r=S.find(e=>{let t=Y(e.id,"perfomance");return!1===e.hasYandexBusinessAccess||t.some(e=>(0,j.jO)(e.reason_code,e.error))}))?void 0:r.id,H=W?{description:"Анализ конкурентов недоступен для сетевых компаний."}:Q?{description:"Чтобы сформировать отчёты – подключите Яндекс Бизнес.",actionLabel:"Подключить Яндекс Бизнес",onAction:G?()=>M(G):void 0}:void 0;return(0,a.jsxs)("section",{className:h().comparisonSection,children:[(0,a.jsx)("h2",{className:h().sectionTitle,children:"Выберите отчёты для сравнения"}),(0,a.jsx)(T,{isCollectingSources:m,isGenerating:_,isEditingExisting:f,isUpdating:v,isSelectionOutdated:g,generatableCount:F,runningCount:I,networkWarningText:y,showYandexBusinessWarning:C,totalTokens:null==p?void 0:p.total_tokens,onConnectYandex:G?()=>M(G):void 0,onGenerate:k,onDismissNetworkWarning:A}),(0,a.jsx)("div",{className:h().reportTabs,role:"tablist",children:b.map(e=>{let t="competitors"===e.id?S.filter(e=>{let{isNetwork:t}=e;return!t}):S,r=new Set(t.map(e=>{let{id:t}=e;return t})),n=x.map(t=>Object.values(s).filter(a=>a.report_type===e.id&&a.point===(0,D.SN)(t)&&r.has(a.branch_id)&&!!a.source_run_id&&"error"!==a.status).length);return(0,a.jsxs)(i.$nd,{type:"button",variant:"secondary",role:"tab","aria-selected":q===e.id,className:c()(h().reportTab,q===e.id&&h().reportTabActive),onClick:()=>R(e.id),children:[(0,a.jsx)("span",{children:e.title}),(0,a.jsx)("span",{className:h().indicators,children:l.map(r=>{let i=x.indexOf(r),o=u[e.id][i],l="".concat(U[r],": ").concat(n[i],"/").concat(t.length);return(0,a.jsx)("i",{className:h()["dot_".concat(o)],"aria-label":l,"data-tooltip-force":"true","data-tooltip-text":l},"".concat(e.id,"-").concat(i))})})]},e.id)})}),(0,a.jsx)(P,{activeTab:q,periods:l,cells:s,dates:d,rows:S,isUpdating:v,updatingCellIDs:N,unavailableState:H,onChange:E})]})};var W=r(67633),Q=r(21001),G=r.n(Q),H=r(19503);let K=e=>{let{field:t,dates:r,onClose:n,onSelect:i}=e,o=t?r[t]:null,l=t?(0,D.YH)(t,r):void 0;return(0,a.jsx)(W.a,{modalID:"summary-report-date-modal",open:!!t,title:"Свой период",hideButtons:!0,maxWidth:"542px",onClose:n,children:(0,a.jsx)(H.Ay,{locale:"ru-RU",className:h().periodCalendar,value:o,minDate:null==l?void 0:l.minDate,maxDate:null==l?void 0:l.maxDate,onClickDay:i,tileClassName:e=>{let{date:t}=e;return o&&G()(t).isSame(G()(o),"day")?"selectedDate":""},formatMonth:(e,t)=>{let r=G()(t).locale("ru").format("MMMM");return r.charAt(0).toUpperCase()+r.slice(1)},formatMonthYear:(e,t)=>G()(t).locale("ru").format("MMMM YYYY [г.]"),prevLabel:"‹",nextLabel:"›",prev2Label:null,next2Label:null})})},V=e=>{if(!/^\d{2}\.\d{2}\.\d{4}$/.test(e))return null;let[t,r,a]=e.split(".").map(Number),n=new Date(a,r-1,t);return n.getFullYear()===a&&n.getMonth()===r-1&&n.getDate()===t?n:null},Z=e=>{let{field:t,label:r,value:n,invalid:o=!1,onDateChange:l,onCalendarClick:s}=e,[d,u]=(0,m.useState)(n?(0,D.Yq)(n):""),[p,_]=(0,m.useState)(!1),f=(0,m.useRef)(!1);(0,m.useEffect)(()=>{f.current||(u(n?(0,D.Yq)(n):""),_(!1))},[n]);let v=o||p;return(0,a.jsxs)("div",{className:h().dateField,children:[(0,a.jsx)("label",{className:h().fieldLabel,htmlFor:"report-date-".concat(t),children:r}),(0,a.jsxs)("div",{className:h().dateControlRow,children:[(0,a.jsx)("input",{id:"report-date-".concat(t),type:"text",inputMode:"numeric",autoComplete:"off",maxLength:10,className:c()(h().dateInput,!d&&h().dateInputEmpty,v&&h().dateInputInvalid),"aria-invalid":v,placeholder:"00.00.0000",value:d,onBlur:()=>{f.current=!1;let e=V(d);_(!!d&&!e),e&&u((0,D.Yq)(e))},onChange:e=>{let r=(e=>{let t=e.replace(/\D/g,"").slice(0,8);
1return[t.slice(0,2),t.slice(2,4),t.slice(4,8)].filter(Boolean).join(".")})(e.target.value),a=V(r);u(r),_(10===r.length&&!a),l(t,a)},onFocus:()=>{f.current=!0}}),(0,a.jsx)(i.$nd,{type:"button",variant:"icon",className:h().calendarButton,"aria-label":"Выбрать дату: ".concat(r),onClick:()=>s(t),children:(0,a.jsx)(R.PCr,{"aria-hidden":"true"})})]})]})},$=[{label:"День -1",amount:1,unit:"day"},{label:"Неделя -1",amount:1,unit:"week"},{label:"Месяц -1",amount:1,unit:"month"}],X=e=>{let{dates:t,error:r,invalidFields:n={},onDateChange:o,onOpenCalendar:l,onQuickPeriod:s}=e;return(0,a.jsxs)("section",{className:h().datesSection,children:[(0,a.jsxs)("div",{className:h().sectionCopy,children:[(0,a.jsx)("h2",{className:h().sectionTitle,children:"Выберите даты, которые система будет сравнивать"}),(0,a.jsxs)("p",{children:["По выбранным датам автоматически подтянутся ближайшие отчёты (в пределах 7 дней от каждой даты и общего периода): анализ конкурентов, чекер позиций, аудит карточки и performance метрики по указанным филиалам.",(0,a.jsx)("br",{}),"Вы можете вручную выбрать другие готовые отчёты в таблице ниже. Подбор не запускает формирование новых отчётов."]})]}),(0,a.jsxs)("div",{className:h().dateFields,children:[(0,a.jsxs)("div",{className:h().startDateGroup,children:[(0,a.jsx)(Z,{field:"start",label:"Начало работы",value:t.start,invalid:n.start,onDateChange:o,onCalendarClick:l}),(0,a.jsx)("div",{className:h().quickPeriods,children:$.map(e=>{let{label:r,amount:n,unit:o}=e,l=((e,t,r)=>!!(e.current&&e.start&&G()(e.current).subtract(t,r).isSame(e.start,"day")))(t,n,o),d=((e,t,r)=>{if(!e.current)return!1;let a=G()(e.current).subtract(t,r).toDate();return(0,D.LH)("start",a,e)})(t,n,o);return(0,a.jsx)(i.$nd,{variant:"secondary","aria-pressed":l,disabled:!d,className:c()(h().quickPeriodButton,l&&h().quickPeriodButtonActive),onClick:()=>s(n,o),children:r},o)})})]}),(0,a.jsx)("span",{className:h().dateDivider,"aria-hidden":"true"}),(0,a.jsx)(Z,{field:"middle",label:"Промежуточный период",value:t.middle,invalid:n.middle,onDateChange:o,onCalendarClick:l}),(0,a.jsx)("span",{className:h().dateDivider,"aria-hidden":"true"}),(0,a.jsx)(Z,{field:"current",label:"Текущий момент",value:t.current,invalid:n.current,onDateChange:o,onCalendarClick:l})]}),r?(0,a.jsx)("p",{className:h().datesError,role:"alert",children:r}):null]})};var J=r(83249),ee=r(99776),et=r(95125),er=r(12612),ea=r(85976);let en={audit:er.Co.audit,checker:er.Co.checker},ei=()=>({start:null,middle:null,current:G()().startOf("day").toDate()}),eo=e=>{let{reportId:t}=e,r=(0,p.useRouter)(),u=(0,s.j)(),[_,f]=(0,m.useState)(null),{setLegacyBreadcrumbs:v,setPageFooter:g,setPageReady:y}=(0,n.h)(),{state:b,computed:N,actions:R}=(e=>{var t,r,a,n,i,o,l,d,u,c,_,h,f,v;let g=(0,p.useRouter)(),y=(0,p.useSearchParams)(),b=(0,ee.useQueryClient)(),{currentChainID:S}=(0,s.G)(e=>e.userStateReducer),N=(0,J.$C)(!0),[R,T]=(0,m.useState)(e),[A,M]=(0,m.useState)(""),[q,I]=(0,m.useState)(ei),[O,L]=(0,m.useState)(null),[F,P]=(0,m.useState)(1),[U,Y]=(0,m.useState)(new Set),[W,Q]=(0,m.useState)("checker"),H=y.get("reportType");(0,m.useEffect)(()=>{H&&C.includes(H)&&Q(H)},[H]);let[K,V]=(0,m.useState)([]),[Z,$]=(0,m.useState)(new Map),[X,eo]=(0,m.useState)(!1),[el,es]=(0,m.useState)(!1),[ed,eu]=(0,m.useState)(!1),[ec,ep]=(0,m.useState)(!1),[em,e_]=(0,m.useState)(!1),[eh,ef]=(0,m.useState)(!1),[ev,eg]=(0,m.useState)(),[ey,eb]=(0,m.useState)(new Set),ex=(0,m.useRef)(new Set),eC=(0,m.useRef)(void 0),ew=(0,m.useRef)(!1),eS=(0,B.useQuery)({queryKey:z.x.detail(null!=R?R:""),queryFn:async()=>await E.j.get(R),enabled:!!R,refetchOnMount:"always",refetchOnReconnect:!0,refetchOnWindowFocus:!0,staleTime:0,retry:(e,t)=>{var r,a;return(!et.A.isAxiosError(t)||(null!=(a=null==(r=t.response)?void 0:r.status)?a:500)>=500)&&e<2}}),ej=(0,B.useQuery)({queryKey:z.x.cells(null!=R?R:""),queryFn:async()=>await E.j.getCells(R),enabled:!!R,refetchOnMount:"always",refetchOnReconnect:!0,refetchOnWindowFocus:!0,staleTime:0,retry:(e,t)=>{var r,a;return(!et.A.isAxiosError(t)||(null!=(a=null==(r=t.response)?void 0:r.status)?a:500)>=500)&&e<2},refetchInterval:e=>{let t=e.state.data;return!!((null==t?void 0:t.report_status)==="assembling"||(null==t?void 0:t.cells.some(e=>{let{status:t}=e;return"running"===t||"waiting_generation"===t})))&&4e3}}),eD=null!=(h=null!=(_=null==(t=eS.data)?void 0:t.chain_id)?_:S)?h:null==(a=N.data)||null==(r=a[0])?void 0:r.id,eN=(0,m.useMemo)(()=>{var e;return null==(e=N.data)?void 0:e.find(e=>{let{id:t}=e;return t===eD})},[N.data,eD]),eR=(0,B.useQuery)({queryKey:["summary-report-chain",eD],queryFn:async()=>await J.Ay.getChainByID(eD),enabled:!!(R&&eD&&!eN),staleTime:3e5,retry:!1}),eT=null!=(f=eR.data)?f:eN,ek=(0,B.useQuery)({queryKey:["summary-report-chain-companies",null==eT?void 0:eT.slug],queryFn:async()=>await J.Ay.getChainBySlug(eT.slug),enabled:!!(R&&(null==eT?void 0:eT.slug)&&!(null==(n=eT.companies)?void 0:n.length)),staleTime:3e5,retry:!1}),eA=(0,m.useCallback)(async()=>{await N.refetch(),(null==eT?void 0:eT.slug)&&await ek.refetch(),R&&await Promise.all([b.invalidateQueries({queryKey:z.x.cells(R)}),b.invalidateQueries({queryKey:z.x.generationEstimate(R)})])},[N,b,ek,null==eT?void 0:eT.slug,R]),eM=(0,m.useMemo)(()=>eT&&ek.data?{...eT,companies:ek.data.companies}:eT,[ek.data,eT]),eE=(0,m.useMemo)(()=>{var e;return((null==eM||null==(e=eM.companies)?void 0:e.length)?eM.companies:(null==eM?void 0:eM.address)?[eM]:[]).filter(e=>!e.is_archived).map(e=>({id:e.id,address:e.address,title:e.title,isNetwork:!!e.chain_id,hasYandexBusinessAccess:"have_yb_access"in e?e.have_yb_access:void 0}))},[eM]);(0,m.useEffect)(()=>{e||ew.current||!eE.length||(Y(new Set(eE.map(e=>{let{id:t}=e;return t}))),ew.current=!0)},[eE,e]),(0,m.useEffect)(()=>
1{if(!R||!eS.data||!ej.data||eC.current===R)return;let e=eS.data,t=ej.data.cells;M(e.title.slice(0,100)),I({start:(0,D.RG)(e.point_start),middle:(0,D.RG)(e.point_mid),current:(0,D.RG)(e.point_current)}),V(t),Y(new Set(t.map(e=>{let{branch_id:t}=e;return t}))),ep(t.length>0),eo(!1),es(!1),e_("draft"===e.status),eC.current=R},[ej.data,R,eS.data]),(0,m.useEffect)(()=>{ej.data&&eC.current===R&&0===Z.size&&!eh&&V(ej.data.cells)},[ej.data,eh,Z.size,R]);let eB=!!(R&&eS.data&&"draft"!==eS.data.status&&"ready"!==eS.data.status&&"partial"!==eS.data.status),ez=null!=(v=eS.error)?v:ej.error;(0,m.useEffect)(()=>{var e;if(R&&(null==(e=eS.data)?void 0:e.status)==="assembling")return void g.replace("/summary-report/".concat(R));R&&ez&&(0,j.d)(ez)&&g.replace("/summary-report")},[R,ez,null==(i=eS.data)?void 0:i.status,g]);let eq=(0,m.useMemo)(()=>eE.slice((F-1)*6,6*F),[F,eE]),eI=(0,m.useMemo)(()=>eE.filter(e=>{let{id:t}=e;return U.has(t)}),[eE,U]),eO=(0,D.gr)(q),eL=!!(eD&&A.trim()&&q.start&&q.current&&!eO&&U.size),eF=[!A.trim()?"название отчёта":null,!q.start?"дату начала работы":null,!q.current?"дату текущего момента":null,!U.size?"хотя бы один филиал":null].filter(e=>!!e),eP=eF.length?"Заполните: ".concat(eF.join(", "),"."):eO,eU=(null==(o=ej.data)?void 0:o.report_status)==="assembling"||(null==(l=eS.data)?void 0:l.status)==="assembling",eY=(null==(d=eS.data)?void 0:d.status)==="draft",eW=K.some(e=>{let{status:t}=e;return"running"===t||"waiting_generation"===t}),eQ=eL&&(!e||eY)&&!eB&&(!ec||X)&&!eh&&!eU,eG=(!e||eY)&&!eB&&(!ec||X)&&!eh&&!eU,eH=eL&&!eB&&ec&&(!!(e&&!eY)||!X)&&!eh&&!eU&&!eW&&0===ey.size,eK=null!=eP?eP:eh?"Подбор отчётов уже обновляется.":eU?"Отчёт собирается. Дождитесь завершения.":ec&&!X?"Подбор отчётов уже актуален.":void 0,eV=null!=eP?eP:ec?eh?"Дождитесь завершения подбора отчётов.":eU?"Отчёт собирается. Дождитесь завершения.":eW?"Дождитесь завершения формирования отчётов.":ey.size?"Дождитесь сохранения выбранного отчёта.":!e&&X?"Обновите подбор отчётов после изменения дат или филиалов.":"Проверьте выбранные отчёты.":"Сначала подберите существующие отчёты.",eZ=K.filter(e=>"current"===e.point&&C.includes(e.report_type)&&U.has(e.branch_id)&&!("competitors"===e.report_type&&eI.some(t=>{let{id:r,isNetwork:a}=t;return r===e.branch_id&&a}))&&!e.source_run_id).length,e$=(0,m.useMemo)(()=>{let e=Array.from(new Set(K.filter(e=>"current"===e.point&&"error"===e.status&&!(0,j.B2)(e.reason_code)&&!!(e.reason_code||e.error)).map(e=>(0,j.C$)(e.reason_code,e.error,"Не удалось сформировать часть отчётов."))));return e.length?e.join(" "):void 0},[K]),eX=(0,m.useMemo)(()=>{let e=K.filter(e=>"perfomance"===e.report_type&&"current"===e.point&&"error"===e.status&&!e.source_run_id&&(0,j.jO)(e.reason_code,e.error)).map(e=>{let{id:t}=e;return t}).sort();return e.length?"yandex-business:".concat(e.join(",")):void 0},[K]),eJ=eX||(e$?"generation:".concat(e$):void 0),e0=(0,m.useCallback)(e=>{V(t=>{let r=new Map(e.map(e=>[e.id,e])),a=t.map(e=>{var t;return null!=(t=r.get(e.id))?t:e}),n=new Set(t.map(e=>{let{id:t}=e;return t}));return[...a,...e.filter(e=>{let{id:t}=e;return!n.has(t)})]})},[]),e1=(e=>{let{cells:t,enabled:r,reportId:a,onGenerated:n,unavailableCompetitorBranchIDs:i}=e,o=(0,ee.useQueryClient)(),[l,s]=(0,m.useState)(!1),{paymentModal:d,requestPayment:u}=(0,ea.j5)(),c=(0,B.useQuery)({queryKey:z.x.generationEstimate(null!=a?a:""),queryFn:async()=>await E.j.getGenerationEstimate(a),enabled:r&&!!a,staleTime:5e3}),p=(0,m.useMemo)(()=>c.data&&((e,t,r)=>{let a=e.items.filter(e=>{let{report_type:t}=e;return w.includes(t)}).map(e=>{let a=new Set(t.filter(t=>"current"===t.point&&t.report_type===e.report_type&&(!!t.source_run_id||"running"===t.status||"waiting_generation"===t.status||"error"===t.status&&(0,j.B2)(t.reason_code))).map(e=>{let{branch_id:t}=e;return t}));
1"competitors"===e.report_type&&r.forEach(e=>a.add(e));let n=e.branch_ids.filter(e=>!a.has(e)),i=e.branch_ids.length-n.length;if(!i)return e;let o=Math.max(0,e.cells-i);return{...e,branch_ids:n,cells:o,total:o*e.tariff}}).filter(e=>{let{cells:t}=e;return t>0});return{...e,items:a,total_cells:a.reduce((e,t)=>e+t.cells,0),total_tokens:a.reduce((e,t)=>e+t.total,0)}})(c.data,t,i),[t,c.data,i]),_=(0,m.useCallback)(async()=>{if(a){s(!0);try{let e=await E.j.generate(a);n(e.cells),(0,k.showAppToast)("Отчёты сформированы","success"),await Promise.all([o.invalidateQueries({queryKey:z.x.cells(a)}),o.invalidateQueries({queryKey:z.x.generationEstimate(a)}),o.invalidateQueries({queryKey:z.x.all})])}catch(e){throw(0,k.showAppToast)((0,j.il)(e,"Не удалось запустить недостающие отчёты"),"error"),e}finally{s(!1)}}},[n,o,a]),h=(0,m.useCallback)(()=>{var e,t;if(l)return;if(!r||!a)return void(0,k.showAppToast)("Сначала подберите существующие отчёты для выбранных дат и филиалов.","error");if(!p)return void(c.isError?((0,k.showAppToast)((0,j.il)(c.error,"Не удалось рассчитать стоимость формирования отчётов."),"error"),c.refetch()):(0,k.showAppToast)("Рассчитываем доступные отчёты. Повторите через несколько секунд.","info"));if(p.total_cells<=0)return void(0,k.showAppToast)("Все доступные отчёты на выбранную дату уже добавлены в подбор.","info");if(p.total_tokens<=0)return void _().catch(()=>void 0);if(p.items.filter(e=>{let{total:t}=e;return t>0}).filter(e=>{let{report_type:t}=e;return!en[t]}).map(e=>{let{report_type:t}=e;return t}).length)return void(0,k.showAppToast)("Не удалось рассчитать стоимость формирования отчётов. Обновите страницу и повторите попытку.","error");let n=p.items.filter(e=>{let{total:t}=e;return t>0}).flatMap(e=>{let{branch_ids:t,cells:r,report_type:a}=e,n=en[a];return n?t.length?t.map(e=>({op_type:n,qty:1,company_id:e})):[{op_type:n,qty:r}]:[]});u({variant:"checkout",opType:null!=(t=null==(e=n[0])?void 0:e.op_type)?t:er.Co.checker,quoteItems:n,groupQuoteItems:!0,operationTitle:"Формирование недостающих отчётов",onPaid:_})},[r,p,c.error,c.isError,c.refetch,l,a,u,_]);return{estimate:r?p:void 0,generate:h,isEstimateLoading:c.isLoading||c.isFetching,isGenerating:l,paymentModal:d}})({cells:K,unavailableCompetitorBranchIDs:new Set(eI.filter(e=>{let{isNetwork:t}=e;return t}).map(e=>{let{id:t}=e;return t})),enabled:ec&&eZ>0&&!X&&0===Z.size&&!eh&&!eW&&!eU&&!eB&&0===ey.size,reportId:R,onGenerated:e0}),e2=eX||eJ===ev?void 0:e$,e4=!!(eX&&eJ!==ev),e5=(0,m.useCallback)(()=>{eg(eJ)},[eJ]),e6=(0,m.useCallback)(()=>{if(eu(!0),eL){if(X)return void(0,k.showAppToast)(e&&!eY?"Сначала сохраните изменения.":"Даты или филиалы изменены. Сначала обновите подбор отчётов.","error");eg(void 0),e1.generate()}},[eL,e1.generate,e,X,eY]),e3=(0,m.useMemo)(()=>(0,D.NM)(K),[K]),e7=(0,m.useMemo)(()=>x.filter(e=>"middle"!==e||q.middle),[q.middle]),e8=(0,m.useMemo)(()=>Object.fromEntries(C.map(e=>[e,x.map(t=>(0,D.ak)(eI,K,e,t))])),[K,eI]),e9=(0,m.useCallback)(()=>eo(!0),[]),te=(0,m.useCallback)(e=>{M(e.slice(0,100)),es(!0)},[]),tt=(0,m.useCallback)((e,t)=>{I(r=>({...r,[e]:t})),e9()},[e9]),tr=(0,m.useCallback)(e=>{O&&(0,D.LH)(O,e,q)&&(tt(O,e),L(null))},[O,tt,q]),ta=(0,m.useCallback)((e,t)=>{let r=(q.current?G()(q.current):G()()).subtract(e,t).toDate();(0,D.LH)("start",r,q)&&(I(e=>({...e,start:r})),e9())},[q,e9]),tn=(0,m.useCallback)(e=>{Y(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),e9()},[e9]),ti=(0,m.useCallback)(async()=>{if(eu(!0),!eL)return void(0,k.showAppToast)(null!=eP?eP:"Заполните обязательные поля.","error");if(eQ&&eD&&q.start&&q.current){ef(!0);try{let e=R;if(e)await E.j.update(e,{title:A.trim(),point_start:(0,D.U9)(q.start),...q.middle?{point_mid:(0,D.U9)(q.middle)}:{},point_current:(0,D.U9)(q.current)});else{let t=await E.j.create({title:A.trim(),chain_id:eD,point_start:(0,D.U9)(q.start),...q.middle?{point_mid:(0,D.U9)(q.middle)}:{},point_current:(0,D.U9)(q.current)});e=t.id,T(t.id),g.replace("/summary-report/new?reportId=".concat(t.id),{scroll:!1})}let t=(await E.j.collect(e,{point_start:(0,D.U9)(q.start),...q.middle?{point_mid:(0,D.U9)(q.middle)}:{},point_current:(0,D.U9)(q.current),branch_ids:Array.from(U)})).cells;V(t),Y(new Set(t.map(e=>{let{branch_id:t}=e;return t}))),ep(!0),eo(!1),es(!1),eu(!1),e_(!0),await Promise.all([b.invalidateQueries({queryKey:z.x.detail(e)}),b.invalidateQueries({queryKey:z.x.cells(e)}),b.invalidateQueries({queryKey:z.x.all})])}catch(e){(0,k.showAppToast)((0,j.il)(e,"Не удалось подобрать отчёты"),"error")}finally{ef(!1)}}},[eL,eQ,q,eD,eP,b,R,A,g,U]),to=(0,m.useCallback)(async(t,r)=>{if(e){let e=(0,D.sl)(t.branch_id,t.report_type,t.point);$(t=>{var a;let n=new Map(t),i=null==(a=ej.data)?void 0:a.cells.find(t=>(0,D.sl)(t.branch_id,t.report_type,t.point)===e);return(null==i?void 0:i.source_run_id)===(null==r?void 0:r.run_id)?n.delete(e):n.set(e,r),n}),V(e=>e.map(e=>e.id===t.id?{...e,source_run_id:null==r?void 0:r.run_id,source_run_created_at:null==r?void 0:r.created_at,error:void 0,reason_code:void 0}:e));return}if(!ex.current.has(t.id)){ex.current.add(t.id),eb(new Set(ex.current));try{var a;await E.j.updateCell(t.id,{source_run_id:null!=(a=null==r?void 0:r.run_id)?a:null,...r?{source_run_created_at:r.created_at}:{}}),V(e=>e.map(e=>e.id===t.id?{...e,status:"pending",source_run_id:null==r?void 0:r.run_id,source_run_created_at:null==r?void 0:r.created_at,error:void 0,reason_code:void 0}:e)),e_(!0),R&&await Promise.all([b.invalidateQueries({queryKey:z.x.cells(R)}),b.invalidateQueries({queryKey:z.x.detail(R)}),b.invalidateQueries({queryKey:z.x.all})])}catch(e){(0,k.showAppToast)((0,j.il)(e,"Не удалось изменить отчёт"),"error")}finally{ex.current.delete(t.id),eb(new Set(ex.current))}}},[null==(u=ej.data)?void 0:u.cells,e,b,R]),tl=(0,m.useCallback)(async()=>
1{if(!eH||!R)return null;ef(!0);try{var t,r;let a=K;if(e&&X)await E.j.update(R,{title:A.trim(),point_start:(0,D.U9)(q.start),...q.middle?{point_mid:(0,D.U9)(q.middle)}:{},point_current:(0,D.U9)(q.current)}),a=(await E.j.collect(R,{point_start:(0,D.U9)(q.start),...q.middle?{point_mid:(0,D.U9)(q.middle)}:{},point_current:(0,D.U9)(q.current),branch_ids:Array.from(U)})).cells,V(a),eo(!1),es(!1);else if(el){let e=await E.j.rename(R,{title:A.trim()});b.setQueryData(z.x.detail(R),e),es(!1)}if(e)for(let[e,t]of Array.from(Z)){let n=a.find(t=>(0,D.sl)(t.branch_id,t.report_type,t.point)===e);n&&(await E.j.updateCell(n.id,{source_run_id:null!=(r=null==t?void 0:t.run_id)?r:null,...t?{source_run_created_at:t.created_at}:{}}),a=a.map(e=>e.id===n.id?{...e,source_run_id:null==t?void 0:t.run_id}:e))}if(X||Z.size>0||em||(null==(t=eS.data)?void 0:t.status)==="draft"){let e=await E.j.assemble(R);b.setQueryData(z.x.detail(R),e),e_(!1)}return $(new Map),await b.invalidateQueries({queryKey:z.x.all}),R}catch(e){return(0,k.showAppToast)((0,j.il)(e,"Не удалось сохранить отчёт"),"error"),null}finally{ef(!1)}},[eH,K,q,e,X,em,Z,b,R,A,el,null==(c=eS.data)?void 0:c.status,U]);return{state:{activeTab:W,activePeriods:e7,branchPage:F,calendarField:O,cellMap:e3,currentPageBranches:eq,dates:q,datesError:eO,buildReportsDisabledReason:eK,continueDisabledReason:eV,requiredFieldErrors:{branches:ed&&0===U.size,currentDate:ed&&!q.current,reportName:ed&&!A.trim(),startDate:ed&&!q.start},indicatorTones:e8,isInitialLoading:N.isLoading||!!e&&(eR.isLoading||ek.isLoading||eB||eS.isLoading||ej.isLoading),isUpdating:eh,isEditingExisting:!!(e&&!eY),isSelectionOutdated:!!(ec&&X),isCollectingSources:eW,isGenerating:e1.isGenerating,isEstimateLoading:e1.isEstimateLoading,generationEstimate:e1.estimate,paymentModal:e1.paymentModal,networkWarningText:e2,showYandexBusinessWarning:e4,reportName:A,selectedBranchIDs:U,tableRows:eI,updatingCellIDs:ey},computed:{canBuildReports:eG,canContinue:eH,hasBuiltReportTable:ec,totalBranchPages:Math.ceil(eE.length/6)},actions:{assemble:tl,changeReport:to,changeReportDate:tt,changeReportName:te,generateMissingReports:e6,dismissNetworkWarning:e5,openCalendar:L,refreshCompanies:eA,selectCalendarDate:tr,selectQuickPeriod:ta,setActiveTab:Q,setBranchPage:P,toggleBranch:tn,updateReports:ti}}})(t),T=R.assemble,A=(0,m.useCallback)(()=>r.push("/summary-report"),[r]),M=(0,m.useCallback)(async()=>{let e=await T();e&&r.push("/summary-report/".concat(e))},[T,r]);return(0,m.useEffect)(()=>(v([{label:"Сводный отчёт",href:"/summary-report"},{label:b.isEditingExisting?"Настройки отчёта":"Новый отчёт"}]),()=>v([])),[v,b.isEditingExisting]),(0,m.useEffect)(()=>(y(!0),g({showBackButton:!0,onBack:A,primaryButtonLabel:b.isEditingExisting?"Сохранить":"Продолжить",primaryButtonClassName:h().continueButton,onPrimaryButtonClick:()=>void M(),isPrimaryButtonDisabled:!N.canContinue,primaryButtonTooltipContent:N.canContinue?void 0:b.continueDisabledReason}),()=>g(null)),[A,N.canContinue,M,b.isEditingExisting,b.continueDisabledReason,g,y]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.LN,{compactHeader:!0,footerAware:!0,header:(0,a.jsx)(o.zY,{title:b.isEditingExisting?"Настройки отчёта":"Новый отчёт",onClose:A}),surface:"card",children:b.isInitialLoading?(0,a.jsx)("div",{className:h().pageLoader,children:(0,a.jsx)(i.aHM,{})}):(0,a.jsxs)("div",{className:h().inner,children:[(0,a.jsxs)("div",{className:h().setupFields,inert:b.isUpdating,children:[(0,a.jsxs)("section",{className:h().nameSection,children:[(0,a.jsx)("h2",{className:h().sectionTitle,children:"Название отчёта"}),(0,a.jsx)(i.A_L,{id:"summary-report-name",className:c()(h().nameInput,b.requiredFieldErrors.reportName&&h().nameInputInvalid),inputClassName:h().nameInputText,"aria-invalid":b.requiredFieldErrors.reportName,variant:"overlay",maxLength:100,value:b.reportName,onChange:e=>R.changeReportName(e.target.value),placeholder:"Введите название отчёта"})]}
1),(0,a.jsx)(X,{dates:b.dates,error:b.datesError,invalidFields:{start:b.requiredFieldErrors.startDate,current:b.requiredFieldErrors.currentDate},onDateChange:R.changeReportDate,onOpenCalendar:R.openCalendar,onQuickPeriod:R.selectQuickPeriod}),(0,a.jsx)(S,{isEditingExisting:b.isEditingExisting,disabledHint:b.buildReportsDisabledReason,branches:b.currentPageBranches,canBuildReports:N.canBuildReports,hasBuiltReportTable:N.hasBuiltReportTable,isUpdating:b.isUpdating,page:b.branchPage,selectedBranchIDs:b.selectedBranchIDs,hasSelectionError:b.requiredFieldErrors.branches,totalPages:N.totalBranchPages,onPageChange:R.setBranchPage,onToggleBranch:R.toggleBranch,onUpdate:()=>void R.updateReports()})]}),(0,a.jsx)(Y,{activeTab:b.activeTab,periods:b.activePeriods,cells:b.cellMap,dates:b.dates,indicatorTones:b.indicatorTones,isCollectingSources:b.isCollectingSources,isGenerating:b.isGenerating,isEditingExisting:b.isEditingExisting,isUpdating:b.isUpdating,isSelectionOutdated:b.isSelectionOutdated,generationEstimate:b.generationEstimate,networkWarningText:b.networkWarningText,showYandexBusinessWarning:b.showYandexBusinessWarning,rows:b.tableRows,updatingCellIDs:b.updatingCellIDs,onActiveTabChange:R.setActiveTab,onGenerateMissingReports:R.generateMissingReports,onDismissNetworkWarning:R.dismissNetworkWarning,onConnectYandex:e=>{f(e),u((0,d.qf)("connectCompanyYB"))},onReportChange:(e,t)=>
1void R.changeReport(e,t)})]})}),(0,a.jsx)(K,{field:b.calendarField,dates:b.dates,onClose:()=>R.openCalendar(null),onSelect:R.selectCalendarDate}),b.paymentModal,_?(0,a.jsx)(l.YR,{company_id:_,refreshCompanyData:()=>void R.refreshCompanies()}):null]})}},97675:e=>{e.exports={root:"Pagination_root__TZAcm",pages:"Pagination_pages__Pv4qi",btn:"Pagination_btn__E_IHW",active:"Pagination_active__1NcCi",gap:"Pagination_gap__WLGm7",sizeSelector:"Pagination_sizeSelector__r4HEB"}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.