PageSourceSearch

https://hub.avibox.ru/assets/MetricsSettingsPopup-Be471Jtp.js

js avibox.ru collected 2026-09-24 15:13:31 UTC 10,993 bytes, 1 lines download raw bytes

1import{dI as we,dw as b,ed as k,eE as x,e7 as o,dz as Ce,eG as Q,dF as De,dB as a,dA as F,dy as l,aL as f,ef as y,em as m,er as P,eJ as W,dZ as z,dE as Ke}from"./vendor-DUoYKxKf.js";import{P as Oe,d as Pe}from"./index-BcPf-nBI.js";import{T as Le}from"./Tabs--mizgJz6.js";import{d as Te,c as O,n as S,a as Me,b as Ee,K as X}from"./Dashboard-RU7Kz77O.js";import"./vue-core-BW8FD41h.js";import"./UnreadBadge-DVxpEG74.js";import"./useIntroPopup-joFO-7tM.js";import"./usePersistentSetting-CkvRMRs-.js";import"./analyticsContext-WDLi36gZ.js";import"./ErrorBoundary-rAZwpRiP.js";import"./ErrorState-D7_jXPui.js";import"./useToast-DR0vBTf1.js";import"./DataGatheringNotice-C5Fc0r-l.js";import"./DashboardKpiCard-BZprmwoe.js";import"./Tooltip-C2AfkjJp.js";import"./SkeletonBlock.vue_vue_type_script_setup_true_lang-CfmYukgV.js";import"./ServiceLevelTrendPopup-BefgYuRh.js";import"./charts-B-02dpr1.js";import"./SegmentedControl-Ca0HZE_7.js";import"./AvitoConnectModal-TJwGms6i.js";import"./Input-D-72TEB_.js";import"./Select-BKc08Xyh.js";import"./StatusPill-BD38qi8e.js";import"./StatusAccent-ajQu-1gk.js";import"./avatar-placeholder-MmQ9fg6u.js";import"./profilePages-hR2EFAHB.js";import"./profilesStatus-BWXj4f08.js";import"./useProfileDataGathering-BX8sJpKa.js";import"./pdfExport-D9GHhCKl.js";import"./Card-CNz1-7s7.js";import"./Switch-BnZPS_Tw.js";import"./EmptyState.vue_vue_type_script_setup_true_lang-DjSaEmUX.js";import"./NoDataMessage-DJLo0zyQ.js";import"./LoadErrorState-CkL7iwp_.js";import"./NoProfilesPlaceholder-C3zTMGVo.js";import"./useDateTimeFormat-CDqaTdTr.js";const $e={full:"Полный",minimum:"Минимум",communications:"Коммуникации"},Re={full:null,minimum:["impressions","views","contacts","budget","views_conversion","contacts_conversion"],communications:["impressions","views","contacts","missed_calls","favorites","contacts_conversion","views_conversion"]};function Ae(L,T){const w=Re[L];if(!w)return new Set;const M=new Set(w);return new Set(T.filter(i=>!M.has(i)))}const Be={key:0,class:"settings-tabs__note"},Ie={class:"metrics-settings"},Ve={key:0,class:"metrics-settings__block"},Fe={class:"metrics-settings__presets"},ze=["onClick"],He={key:0,class:"order-list","aria-label":"Порядок карточек KPI"},Ne=["onDragstart","onDragover","onDragleave","onDrop"],je={class:"order-list__label"},Ge=["aria-label","onClick"],Je={class:"check-row"},Ue=["checked","disabled","onChange"],Ye={class:"metrics-settings__block"},Ze={class:"metrics-settings__presets"},qe=["onClick"],xe={key:0,class:"order-list","aria-label":"Порядок метрик таблицы"},Qe=["onDragstart","onDragover","onDragleave","onDrop"],We={class:"order-list__label"},Xe={class:"order-list__cat"},et=["aria-label","onClick"],tt={key:1,class:"metrics-settings__empty"},st={class:"check-row"},lt=["checked","onChange"],nt={class:"metrics-settings__block"},rt={class:"metrics-settings__presets"},ot={class:"check-row"},at=["checked","onChange"],it=we({__name:"MetricsSettingsPopup",props:{allMetrics:{},initialHiddenKeys:{},initialHiddenCharts:{},initialKpiSlots:{},initialMetricOrder:{},initialReportSettings:{}},emits:["close","apply","applyReport"],setup(L,{emit:T}){const w=[{key:"impressions",label:"Показы"},{key:"views",label:"Просмотры"},{key:"contacts",label:"Контакты"},{key:"budget",label:"Бюджет"},{key:"secret",label:"Эффективность бюджета"}],M={discount:"Скидка",service_level:"Уровень сервиса",wallet:"Кошелёк Авито",sla:"SLA ответа",calls:"Звонки",chats:"Чаты",contacts_cpl:"Контакты · CPL"},i=L,H=T,u=b(()=>i.allMetrics.map(e=>e.key)),ee=[{id:"dashboard",label:"Настройка дашборда"},{id:"report",label:"Настройка отчётов"}],C=k("dashboard"),D=i.initialReportSettings??Te(),E=k({hiddenKeys:new Set(i.initialHiddenKeys),hiddenCharts:new Set(i.initialHiddenCharts),kpiSlots:S([...i.initialKpiSlots]),metricOrder:O(i.initialMetricOrder.length?i.initialMetricOrder:u.value,u.value)}),$=k({hiddenKeys:new Set(D.hiddenKeys),hiddenCharts:new Set(D.hiddenCharts),kpiSlots:S([...D.kpiSlots]),metricOrder:O(D.metricOrder.length?D.metricOrder:u.value,u.value)}),d=b(()=>C.value==="dashboard"?E.value:$.value),_=b({get:()=>d.value.hiddenKeys,set:e=>{d.value.hiddenKeys=e}}),K=b({get:()=>
1d.value.hiddenCharts,set:e=>{d.value.hiddenCharts=e}}),c=b({get:()=>d.value.kpiSlots,set:e=>{d.value.kpiSlots=e}}),R=b({get:()=>d.value.metricOrder,set:e=>{d.value.metricOrder=e}}),te=Object.keys(X),se=["full","minimum","communications"],h=k(null),g=k(null),p=k(null),v=k(null),N=(e,s,t)=>s===null||t===null||t!==e||s===t?"":s<t?"order-list__row--drop-after":"order-list__row--drop-before",le=e=>N(e,h.value,g.value),ne=e=>N(e,p.value,v.value),A=e=>M[e]??e,j=e=>{var s;return((s=i.allMetrics.find(t=>t.key===e))==null?void 0:s.label)??e},re=e=>({impressions:"Трафик",views:"Трафик",favorites:"Трафик",contacts:"Трафик",budget:"Финансы",impression_cost:"Финансы",view_cost:"Финансы",contact_cost:"Финансы",views_conversion:"Конверсии",contacts_conversion:"Конверсии",missed_calls:"Коммуникации",new_reviews:"Отзывы",ads_active:"Объявления",ads_on_promo:"Объявления"})[e]??"Прочее",B=b(()=>R.value.filter(e=>!_.value.has(e))),G=e=>c.value.includes(e)?!1:c.value.length>=7;function oe(){const e=E.value;H("apply",{hiddenKeys:new Set(e.hiddenKeys),hiddenCharts:new Set(e.hiddenCharts),kpiSlots:S([...e.kpiSlots]),metricOrder:O([...e.metricOrder],u.value)})}function ae(){const e=$.value;H("applyReport",{hiddenKeys:[...e.hiddenKeys],hiddenCharts:[...e.hiddenCharts],kpiSlots:S([...e.kpiSlots]),metricOrder:O([...e.metricOrder],u.value)})}const ie=e=>{c.value=S([...X[e]])},ce=e=>{_.value=Ae(e,u.value)},J=(e,s)=>{const t=new Set(_.value);s?t.delete(e):t.add(e),_.value=t},U=e=>{e?_.value=new Set:_.value=new Set(i.allMetrics.map(s=>s.key))},ue=(e,s)=>{const t=new Set(K.value);s?t.delete(e):t.add(e),K.value=t},Y=e=>{e?K.value=new Set:K.value=new Set(w.map(s=>s.key))},Z=(e,s)=>{const t=[...c.value];if(s){if(t.length>=7||t.includes(e))return;t.push(e)}else{const n=t.indexOf(e);n!==-1&&t.splice(n,1)}c.value=S(t)},de=(e,s)=>{h.value=s,g.value=s,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(s)))},pe=e=>{h.value!==null&&(g.value=e)},ve=e=>{g.value===e&&(g.value=null)},me=()=>{h.value=null,g.value=null},_e=(e,s)=>{if(e.preventDefault(),h.value===null)return;const t=[...c.value],[n]=t.splice(h.value,1);t.splice(s,0,n),c.value=S(t),h.value=null,g.value=null},he=(e,s)=>{p.value=s,v.value=s,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain","m"+s))},ge=e=>{p.value!==null&&(v.value=e)},be=e=>{v.value===e&&(v.value=null)},ke=()=>{p.value=null,v.value=null},fe=(e,s)=>{if(e.preventDefault(),p.value===null)return;const t=p.value,n=B.value,r=n[t],I=n[s];if(!r||!I||r===I){p.value=null,v.value=null;return}const V=R.value.filter(Se=>Se!==r),q=V.indexOf(I),ye=t<s?q+1:q;V.splice(ye,0,r),R.value=O(V,u.value),p.value=null,v.value=null};return x(E,()=>oe(),{deep:!0}),x($,()=>ae(),{deep:!0}),(e,s)=>(o(),Ce(Oe,{size:"md",onClPopup:s[5]||(s[5]=t=>e.$emit("close"))},{title:Q(()=>s[6]||(s[6]=[Ke("Настройки")])),default:Q(()=>[De(Le,{modelValue:C.value,"onUpdate:modelValue":s[0]||(s[0]=t=>C.value=t),tabs:ee,variant:"underline","aria-label":"Область применения настроек"},null,8,["modelValue"]),C.value==="report"?(o(),a("p",Be," Эти настройки применяются только к PDF-отчёту и не меняют вид дашборда. ")):F("",!0),l("div",Ie,[C.value==="dashboard"?(o(),a("section",Ve,[s[8]||(s[8]=l("div",{class:"metrics-settings__section-title"},"KPI в шапке",-1)),s[9]||(s[9]=l("p",{class:"metrics-settings__hint"},"До 7 карточек, перетащите для изменения порядка.",-1)),l("div",Fe,[(o(!0),a(f,null,y(P(te),t=>(o(),a("button",{key:t,type:"button",class:"preset-chip",onClick:n=>ie(t)},m(P(Me)[t]),9,ze))),128))]),c.value.length?(o(),a("ul",He,[(o(!0),a(f,null,y(c.value,(t,n)=>(o(),a("li",{key:t,class:z(["order-list__row",le(n)]),draggable:"true",onDragstart:r=>de(r,n),onDragover:W(r=>pe(n),["prevent"]),onDragleave:r=>ve(n),onDrop:r=>_e(r,n),onDragend:me},[s[7]||(s[7]=l("span",{class:"order-list__drag","aria-hidden":"true"},"⋮⋮",-1)),l("span",je,m(A(t)),1),l("button",{type:"button",class:"order-list__remove","aria-label":`Убрать «${A(t)}» из KPI`,onClick:r=>Z(t,!1)},"×",8,Ge)],42,Ne))),128))])):F("",!0),l("div",Je,[(o(!0),a(f,null,y(P(Ee),t=>(o(),a("label",{key:t,class:z(["check-row__item",{"check-row__item--disabled":G(t)}])},[l("input",{type:"checkbox",checked:c.value.includes(t),disabled:G(t),onChange:n=>Z(t,n.target.checked)},null,40,Ue),l("span",null,m(A(t)),1)],2))),128))])])):F("",!0),l("section",Ye,[s[11]||(s[11]=l("div",{class:"metrics-settings__section-title"},"Метрики таблицы",-1)),l("div",Ze,[(o(),a(f,null,y(se,t=>l("button",{key:t,type:"button",class:"preset-chip",onClick:n=>ce(t)},m(P($e)[t]),9,qe)),64)),l("button",{type:"button",class:"preset-chip preset-chip--ghost",onClick:s[1]||(s[1]=t=>U(!0))},"Все"),l("button",{type:"button",class:"preset-chip preset-chip--ghost",onClick:s[2]||(s[2]=t=>U(!1))},"Ничего")]),B.value.length?(o(),a("ul",xe,[(o(!0),a(f,null,y(B.value,(t,n)=>(o(),a("li",{key:t,class:z(["order-list__row",ne(n)]),draggable:"true",onDragstart:r=>he(r,n),onDragover:W(r=>ge(n),["prevent"]),onDragleave:r=>be(n),onDrop:r=>fe(r,n),onDragend:ke},[s[10]||(s[10]=l("span",{class:"order-list__drag","aria-hidden":"true"},"⋮⋮",-1)),l("span",We,m(j(t)),1),l("span",Xe,m(re(t)),1),l("button",{type:"button",class:"order-list__remove","aria-label":`Скрыть «${j(t)}» из таблицы`,onClick:r=>J(t,!1)},"×",8,et)],42,Qe))),128))])):(o(),a("p",tt,"Все метрики скрыты — выберите ниже хотя бы одну.")),l("div",st,[(o(!0),a(f,null,y(i.allMetrics,t=>(o(),a("label",{key:t.key,class:"check-row__item"},[l("input",{type:"checkbox",checked:!_.value.has(t.key),onChange:n=>J(t.key,n.target.checked)},null,40,lt),l("span",null,m(t.label),1)]))),128))])]),l("section",nt,[s[12]||(s[12]=l("div",{class:"metrics-settings__section-title"},"Графики",-1)),l("div",rt,[l("button",{type:"button",class:"preset-chip preset-chip--ghost",onClick:s[3]||(s[3]=t=>Y(!0))},"Все"),l("button",{type:"button",class:"preset-chip preset-chip--ghost",onClick:s[4]||(s[4]=t=>Y(!1))},"Ничего")]),l("div",ot,[(o(),a(f,null,y(w,t=>l("label",{key:t.key,class:"check-row__item"},[l("input",{type:"checkbox",checked:!K.value.has(t.key),onChange:n=>ue(t.key,n.target.checked)},null,40,at),l("span",null,m(t.label),1)])),64))])])])]),_:1}))}}),Jt=Pe(it,[["__scopeId","data-v-0de840b8"]]);export{Jt as default};

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.