1import{r as g,j as e,b as qe,u as Qe,a as Ze,k as es}from"./vendor-react-72e4a099.js";import{u as ae,a as Ne,B as j,S as Be,i as ge,F as ee,P as we,I as xe,d as ss,C as ts}from"./Toast-43ee7788.js";import{b as ns,C as De,a as Oe,T as as}from"./Display-48adcc24.js";import{r as ve}from"./buildLifecycle-a44b0e05.js";import{useWorkspaceRole as is,SettingsHead as rs}from"./SettingsLayout-14516db3.js";import{a as $,e as X}from"./api-d8a57490.js";import{S as W,N as A,I as ue,a as K,H as ye,f as Ge,L as ls}from"./ui-99f3cce6.js";import{C as se,S as os,a as cs}from"./Controls-5a18fd37.js";import{T as q}from"./triangle-alert-cdc85d96.js";import{P as Se}from"./plus-39793e81.js";import{E as Te}from"./external-link-63c5a0ce.js";import{L as He}from"./lock-73755c1f.js";import{T as ds}from"./trash-2-7a739e24.js";import{R as fe}from"./refresh-cw-98362cea.js";import{C as ze}from"./circle-check-63b159d4.js";import{K as us}from"./key-round-327e86e8.js";import{S as ms}from"./send-ef7332d3.js";import{C as hs}from"./check-083433f7.js";import"./createLucideIcon-581cd729.js";import"./eye-5711d0dd.js";import"./x-b9f3d093.js";import"./circle-alert-67975319.js";import"./CabinetContext-31fc5321.js";/* empty css *//* empty css */import"./user-2d8f405f.js";import"./video-a08888e9.js";import"./palette-a7aa7952.js";import"./layout-template-dfe5c440.js";import"./plug-1e9df63e.js";import"./credit-card-a31de76a.js";import"./chevron-down-888c3b30.js";import"./copy-34f4069e.js";const Ve=[{key:"youtube",name:"YouTube",glyph:"YT",category:"platforms",categoryLabel:"ÐлоÑадка",description:"ТÑанÑлÑÑÐ¸Ñ Ð½Ð° канал: ÑÑÐ¸Ñ Ð½Ð° YouTube ÑоздаÑÑÑÑ Ñам пÑи вÑÑ
оде в ÑÑиÑ",cta:"ÐодклÑÑиÑÑ"},{key:"vk",name:"VK Ðидео",glyph:"VK",category:"platforms",categoryLabel:"ÐлоÑадка",description:"ТÑанÑлÑÑÐ¸Ñ Ð² ÑообÑеÑÑво или пÑоÑÐ¸Ð»Ñ Ð¿Ð¾ RTMP-клÑÑÑ",cta:"ÐодклÑÑиÑÑ"},{key:"telegram",name:"Telegram",glyph:"TG",category:"platforms",categoryLabel:"ÐлоÑадка",description:"ТÑанÑлÑÑÐ¸Ñ Ð² канал или гÑÑÐ¿Ð¿Ñ Ð¿Ð¾ RTMP-клÑÑÑ",cta:"ÐодклÑÑиÑÑ"},{key:"rtmp",name:"Свой ÑеÑвеÑ",glyph:"RTMP",category:"platforms",categoryLabel:"ÐлоÑадка · RTMP",description:"Rutube, Twitch или лÑбой ÑеÑÐ²ÐµÑ Ð¿Ð¾ адÑеÑÑ Ð¸ клÑÑÑ",cta:"ÐобавиÑÑ"},{key:"google_calendar",name:"Google ÐалендаÑÑ",glyph:"GC",category:"calendars",categoryLabel:"ÐалендаÑÑ",description:"ÐÑиÑÑ Ð¸ вÑÑÑеÑи пÑоÑÑÑанÑÑва в Google ÐалендаÑе по ÑÑÑлке-подпиÑке",cta:"ÐодклÑÑиÑÑ"},{key:"yandex_calendar",name:"Ð¯Ð½Ð´ÐµÐºÑ ÐалендаÑÑ",glyph:"ЯÐ",category:"calendars",categoryLabel:"ÐалендаÑÑ",description:"ÐÑиÑÑ Ð¸ вÑÑÑеÑи в календаÑе командÑ",cta:"ÐодклÑÑиÑÑ"},{key:"bitrix24",name:"ÐиÑÑикÑ24",glyph:"Ð24",category:"data",categoryLabel:"ÐÑгÑÑзка ÑегиÑÑÑаÑий",description:"ÐаÑегиÑÑÑиÑованнÑе зÑиÑели попадаÑÑ Ð² CRM как лидÑ",cta:"ÐодклÑÑиÑÑ"},{key:"amocrm",name:"amoCRM",glyph:"AMO",category:"data",categoryLabel:"ÐÑгÑÑзка ÑегиÑÑÑаÑий",description:"РегиÑÑÑаÑии и поÑеÑÐµÐ½Ð¸Ñ â в Ñделки воÑонки",cta:"ÐодклÑÑиÑÑ"},{key:"webhook",name:"Webhooks",glyph:"WH",category:"data",categoryLabel:"ÐÐ»Ñ ÑазÑабоÑÑиков",description:"РегиÑÑÑаÑиÑ, наÑало и ÐºÐ¾Ð½ÐµÑ ÑÑиÑа, иÑоги гоÑовÑ",cta:"ÐобавиÑÑ"}];function ps(s){return Ve.find(a=>a.key===s)}const xs=["youtube","vk","telegram","rtmp"];function me(s,a){switch(s){case"youtube":return a.filter(n=>n.provider==="youtube");case"vk":return a.filter(n=>n.provider==="vk_video");case"telegram":return a.filter(n=>{var t;return n.provider==="custom_rtmp"&&((t=n.providerConfig)==null?void 0:t.platform)==="telegram"});case"rtmp":return a.filter(n=>{var t;return n.provider!=="youtube"&&n.provider!=="vk_video"&&n.provider!=="snich_live"&&!(n.provider==="custom_rtmp"&&((t=n.providerConfig)==null?void 0:t.platform)==="telegram")});default:return[]}}const ke=new Map;function gs(s){const a=s?ke.get(s):void 0,[n,t]=g.useState(a||null),[d,c]=g.useState(null),h=g.useCallback(async()=>
1{if(s){c(null);try{const[u,x,i]=await Promise.all([$.get("/api/v1/streams/destinations",{query:{workspaceId:s}}),$.get(`/workspaces/${s}/integrations`),$.get("/api/v1/streams/integrations/youtube/status").catch(()=>({configured:!1}))]),m={destinations:Array.isArray(u)?u:[],connections:Array.isArray(x)?x:[],youtube:i||{configured:!1}};ke.set(s,m),t(m)}catch(u){c(X(u,"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¸Ð½ÑегÑаÑии"))}}},[s]);return g.useEffect(()=>{t(s&&ke.get(s)||null),h()},[h,s]),{destinations:(n==null?void 0:n.destinations)||null,connections:(n==null?void 0:n.connections)||null,youtube:(n==null?void 0:n.youtube)||null,error:d,reload:h,loading:!n}}function ys(s,a,n){var c,h,u,x,i;if(xs.includes(s.key)){const m=me(s.key,a);if(!m.length)return{connected:!1,tone:"gray",label:"Ðе подклÑÑено",detail:null};const o=m.find(C=>C.enabled)||m[0];let l;return s.key==="youtube"&&((c=o.providerConfig)!=null&&c.nativeApiConnected)?l=((h=o.providerConfig)==null?void 0:h.youtubeAutoCreate)===!1?`Ðанал «${((u=o.providerConfig)==null?void 0:u.channelTitle)||"YouTube"}» · ÑÑÐ¸Ñ ÑоздаÑÑе в YouTube Studio`:`Ðанал «${((x=o.providerConfig)==null?void 0:x.channelTitle)||"YouTube"}» · ÑÑÐ¸Ñ ÑоздаÑÑÑÑ Ñам пÑи вÑÑ
оде в ÑÑиÑ`:s.key==="rtmp"?l=m.length===1?`${o.displayName} · по адÑеÑÑ Ð¸ клÑÑÑ`:`${m.length} ${m.length<5?"ÑеÑвеÑа":"ÑеÑвеÑов"}: ${m.map(C=>C.displayName).join(", ")}`:l=`${o.displayName} · по клÑÑÑ ÑÑанÑлÑÑии`,m.every(C=>!C.enabled)?{connected:!0,tone:"gray",label:"ÐÑклÑÑено",detail:l}:{connected:!0,tone:"green",label:"ÐодклÑÑено",detail:l}}const t=n.find(m=>m.provider===s.key);if(!t)return{connected:!1,tone:"gray",label:"Ðе подклÑÑено",detail:null};if(t.status==="error")return{connected:!0,tone:"red",label:"ÐÑибка",detail:pe(t.lastError)};if(t.status!=="connected")return{connected:!0,tone:"gray",label:"ÐÑклÑÑено",detail:null};let d=null;return(s.key==="google_calendar"||s.key==="yandex_calendar")&&(d="ÐÑиÑÑ Ð¸ вÑÑÑеÑи поÑвлÑÑÑÑÑ Ð² календаÑе по ÑÑÑлке-подпиÑке"),s.key==="bitrix24"&&(d=t.enabledEvents.includes("registration.synced")?"ÐовÑе ÑегиÑÑÑаÑии ÑÑ
одÑÑ Ð² CRM как лидÑ":"ÐодклÑÑено â вÑгÑÑзка ÑегиÑÑÑаÑий вÑклÑÑена"),s.key==="amocrm"&&(d=t.enabledEvents.includes("registration.synced")?"ÐовÑе ÑегиÑÑÑаÑии ÑÑ
одÑÑ Ð² воÑонкÑ":"ÐодклÑÑено â вÑгÑÑзка ÑегиÑÑÑаÑий вÑклÑÑена"),s.key==="webhook"&&(d=`${((i=t.maskedConfig)==null?void 0:i.url)||"ÐдÑÐµÑ ÑоÑ
ÑанÑн"} · ${t.enabledEvents.length} ${t.enabledEvents.length===1?"ÑобÑÑие":t.enabledEvents.length<5?"ÑобÑÑиÑ":"ÑобÑÑий"}`),{connected:!0,tone:"green",label:"ÐодклÑÑено",detail:d}}function te(s){const a=Array.isArray(s==null?void 0:s.warnings)?s.warnings:[],n={destination_endpoint_missing:"Ðе Ñказан адÑÐµÑ ÑеÑвеÑа",destination_stream_key_missing:"Ðе Ñказан клÑÑ ÑÑанÑлÑÑии",unsupported_output_profile:"ÐлоÑадка не пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ñакой ÑоÑÐ¼Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾"};return a.filter(t=>t.severity==="error").map(t=>n[t.code]||"ÐлоÑадка Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ пÑинÑÑÑ Ð¿Ð¾Ñок â пÑовеÑÑÑе адÑÐµÑ Ð¸ клÑÑ")}function B(s,a="Ðе ÑдалоÑÑ ÑоÑ
ÑаниÑÑ"){const n=s==null?void 0:s.status,t=X(s,a),d=[[/RTMP\/RTMPS server is required/i,"УкажиÑе адÑÐµÑ ÑеÑвеÑа"],[/Stream key is required/i,"УкажиÑе клÑÑ ÑÑанÑлÑÑии"],[/Invalid destination endpoint URL/i,"ÐдÑÐµÑ ÑеÑвеÑа вÑглÑÐ´Ð¸Ñ Ð½ÐµÐ²ÐµÑно: он наÑинаеÑÑÑ Ñ rtmp:// или rtmps://"],[/Only RTMP\/RTMPS/i,"ÐÑжен адÑÐµÑ Ð²Ð¸Ð´Ð° rtmp://⦠или rtmps://â¦"],[/Local publish endpoints|Private network|private network address/i,"ÐдÑÐµÑ Ð²ÐµÐ´ÑÑ Ð²Ð¾ внÑÑÑеннÑÑ ÑеÑÑ â ÑкажиÑе пÑблиÑнÑй ÑеÑÐ²ÐµÑ Ð¿Ð»Ð¾Ñадки"],[/cannot be resolved/i,"СеÑÐ²ÐµÑ Ñ Ñаким адÑеÑом не найден â пÑовеÑÑÑе адÑеÑ"],[/does not match endpoint scheme/i,"ÐÑоÑокол не ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð°Ð´ÑеÑом ÑеÑвеÑа"]];for(const[c,h]of d)if(c.test(t))return h;return n===403?"ÐедоÑÑаÑоÑно пÑав: инÑегÑаÑии наÑÑÑаиваÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸ админиÑÑÑаÑоÑÑ Ð¿ÑоÑÑÑанÑÑва":/^[\x20-\x7E]+$/.test(t)?a:t}function pe(s){const a=(s||"").trim();return a?/fetch failed|ENOTFOUND|EAI_AGAIN|ECONNREFUSED|ETIMEDOUT|timeout|aborted/i.test(a)?"СеÑÐ²Ð¸Ñ Ð½Ðµ оÑвеÑил â пÑовеÑÑÑе адÑÐµÑ Ð¸ доÑÑÑпноÑÑÑ":a:"Ðе ÑдалоÑÑ ÑвÑзаÑÑÑÑ Ñ ÑеÑвиÑом"}const $e={youtube:{provider:"youtube",name:"YouTube",endpoint:"rtmp://a.rtmp.youtube.com/live2",placeholder:"rtmp://a.rtmp.youtube.com/live2",howtoTitle:"ÐозÑмиÑе клÑÑ Ð² YouTube Studio",howto:[e.jsxs(e.Fragment,{children:["ÐÑкÑойÑе ",e.jsx("b",{children:"YouTube Studio"})," â ",e.jsx("b",{children:"СоздаÑÑ"})," â ",e.jsx("b",{children:"ÐаÑаÑÑ ÑÑанÑлÑÑиÑ"}),"."]}),e.jsxs(e.Fragment,{children:["Ðа вкладке «ТÑанÑлÑÑиÑ» ÑкопиÑÑйÑе ",e.jsx("b",{children:"ÐлÑÑ ÑÑанÑлÑÑии"}),". ÐдÑÐµÑ ÑеÑвеÑа Ð¼Ñ Ñже подÑÑавили."]})],link:{href:"https://studio.youtube.com/",label:"ÐÑкÑÑÑÑ YouTube Studio"}},vk:{provider:"vk_video",name:"VK Ðидео",endpoint:"",placeholder:"rtmp://ovsu.okcdn.ru/input/",howtoTitle:"ÐозÑмиÑе адÑÐµÑ Ð¸ клÑÑ Ð² VK Ðидео",howto:[e.jsxs(e.Fragment,{children:["Ð VK Ðидео оÑкÑойÑе ÑообÑеÑÑво или пÑоÑÐ¸Ð»Ñ â ",e.jsx("b",{children:"СоздаÑÑ"})," â ",e.jsx("b",{children:"ТÑанÑлÑÑиÑ"}),"."]}),e.jsxs(e.Fragment,{children:["ÐÑбеÑиÑе «ÐÑогÑамма Ð´Ð»Ñ ÑÑанÑлÑÑий» и ÑкопиÑÑйÑе ",e.jsx("b",{children:"URL"})," и ",e.jsx("b",{children:"ÐлÑÑ Ð¿Ð¾Ñока"}),"."]})],link:{href:"https://vkvideo.ru/",label:"ÐÑкÑÑÑÑ VK Ðидео"}},telegram:{provider:"custom_rtmp",name:"Telegram",endpoint:"",placeholder:"rtmps://dc4-1.rtmp.t.me/s/",providerConfig:{platform:"telegram"},howtoTitle:"ÐозÑмиÑе адÑÐµÑ Ð¸ клÑÑ Ð² Telegram",howto:[e.jsxs(e.Fragment,{children:["Рканале или гÑÑппе оÑкÑойÑе ",e.jsx("b",{children:"ТÑанÑлÑÑиÑ"})," (видеоÑаÑ) â ",e.jsx("b",{children:"ÐаÑаÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑâ¦"})]}),e.jsxs(e.Fragment,{children:["СкопиÑÑйÑе ",e.jsx("b",{children:"URL ÑеÑвеÑа"})," и ",e.jsx("b",{children:"ÐлÑÑ ÑÑанÑлÑÑии"}),". Сам ÑÑÐ¸Ñ Ð² Telegram наÑнÑÑÑÑ, когда SNICH вÑÐ¹Ð´ÐµÑ Ð² ÑÑиÑ."]})]},rutube:{provider:"rutube",name:"RUTUBE",endpoint:"",placeholder:"rtmp://â¦/live_push",howtoTitle:"ÐозÑмиÑе адÑÐµÑ Ð¸ клÑÑ Ð² RUTUBE СÑÑдии",howto:[e.jsxs(e.Fragment,{children:["Ð ",e.jsx("b",{children:"RUTUBE СÑÑдии"})," оÑкÑойÑе ",e.jsx("b",{children:"ТÑанÑлÑÑии"})," â ",e.jsx("b",{children:"СоздаÑÑ ÑÑанÑлÑÑиÑ"}),"."]}),e.jsxs(e.Fragment,{children:["СкопиÑÑйÑе ",e.jsx("b",{children:"URL-адÑÐµÑ ÑеÑвеÑа"})," и ",e.jsx("b",{children:"ÐлÑÑ ÑÑанÑлÑÑии"}),"."]})],link:{href:"https://studio.rutube.ru/",label:"ÐÑкÑÑÑÑ RUTUBE СÑÑдиÑ"}}
1,twitch:{provider:"twitch",name:"Twitch",endpoint:"rtmp://live.twitch.tv/app",placeholder:"rtmp://live.twitch.tv/app",howtoTitle:"ÐозÑмиÑе клÑÑ Ð² Twitch",howto:[e.jsxs(e.Fragment,{children:["ÐÑкÑойÑе ",e.jsx("b",{children:"ÐÐ°Ð½ÐµÐ»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð²ÑоÑа"})," â ",e.jsx("b",{children:"ÐаÑÑÑойки"})," â ",e.jsx("b",{children:"ТÑанÑлÑÑиÑ"}),"."]}),e.jsxs(e.Fragment,{children:["СкопиÑÑйÑе ",e.jsx("b",{children:"ÐÑновной клÑÑ ÑÑанÑлÑÑии"}),". ÐдÑÐµÑ ÑеÑвеÑа Ð¼Ñ Ñже подÑÑавили."]})],link:{href:"https://dashboard.twitch.tv/settings/stream",label:"ÐÑкÑÑÑÑ Ð½Ð°ÑÑÑойки Twitch"}},custom:{provider:"custom_rtmp",name:"Свой ÑеÑвеÑ",endpoint:"",placeholder:"rtmp://stream.example.com/live",howtoTitle:"ÐдÑÐµÑ Ð¸ клÑÑ ÑеÑвеÑа",howto:[e.jsx(e.Fragment,{children:"ÐодойдÑÑ Ð»Ñбой ÑеÑвеÑ, коÑоÑÑй пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ RTMP или RTMPS: адÑÐµÑ Ð¸ клÑÑ Ð´Ð°ÑÑ Ð²Ð°Ñ ÑеÑÐ²Ð¸Ñ ÑÑанÑлÑÑий."})]}};function ne(s,a){return{displayName:(s==null?void 0:s.displayName)||a.name,endpointUrl:s?"":a.endpoint,streamKey:"",enabled:(s==null?void 0:s.enabled)??!0}}function We(s,a){return a?s.displayName.trim()!==a.displayName||!!s.endpointUrl.trim()||!!s.streamKey.trim()||s.enabled!==a.enabled:!!(s.endpointUrl.trim()||s.streamKey.trim())}async function Ee(s,a,n,t){let d;if(!a)d=await $.post("/api/v1/streams/destinations",{workspaceId:s,provider:n.provider,displayName:t.displayName.trim()||n.name,endpointUrl:t.endpointUrl.trim(),streamKey:t.streamKey.trim(),providerConfig:n.providerConfig||{},enabled:!0});else{const h={};t.displayName.trim()&&t.displayName.trim()!==a.displayName&&(h.displayName=t.displayName.trim()),t.enabled!==a.enabled&&(h.enabled=t.enabled),t.endpointUrl.trim()&&(h.endpointUrl=t.endpointUrl.trim()),t.streamKey.trim()&&(h.streamKey=t.streamKey.trim()),d=Object.keys(h).length?await $.patch(`/api/v1/streams/destinations/${a.id}`,h):a}let c=d.lastTestReport;return d.enabled&&(c=await $.post(`/api/v1/streams/destinations/${d.id}/test`,{}).catch(()=>d.lastTestReport)),{destination:d,report:c}}function Re({form:s,setForm:a,dest:n,platform:t,disabled:d,idPrefix:c,readOnly:h}){const u=h?"":" ÐпиÑиÑе новÑй, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ.";return e.jsxs(e.Fragment,{children:[e.jsx(ee,{label:"Ðазвание в SNICH",htmlFor:`${c}-name`,hint:"Так плоÑадка бÑÐ´ÐµÑ Ð½Ð°Ð·ÑваÑÑÑÑ Ð¿Ñи вÑбоÑе в ÑÑиÑе",children:e.jsx(xe,{id:`${c}-name`,value:s.displayName,maxLength:120,disabled:d,onChange:x=>a(i=>({...i,displayName:x.target.value}))})}),e.jsx(ee,{label:"ÐдÑÐµÑ ÑеÑвеÑа",htmlFor:`${c}-url`,hint:n?e.jsxs(e.Fragment,{children:["СоÑ
ÑанÑн: ",e.jsx("span",{className:"sn-mono",children:n.endpointMasked||"â"}),".",u]}):"ÐаÑинаеÑÑÑ Ñ rtmp:// или rtmps://",children:e.jsx(xe,{id:`${c}-url`,value:s.endpointUrl,placeholder:(n==null?void 0:n.endpointMasked)||t.placeholder,spellCheck:!1,autoComplete:"off",inputMode:"url",disabled:d,onChange:x=>a(i=>({...i,endpointUrl:x.target.value}))})}),e.jsx(ee,{label:"ÐлÑÑ ÑÑанÑлÑÑии",htmlFor:`${c}-key`,hint:n!=null&&n.hasStreamKeySecret?`ÐлÑÑ ÑоÑ
ÑанÑн и заÑиÑÑован â Ð¼Ñ ÐµÐ³Ð¾ не показÑваем.${u}`:"ÐлÑÑ Ñ
ÑаниÑÑÑ Ð·Ð°ÑиÑÑованнÑм, его Ð²Ð¸Ð´Ð¸Ñ ÑолÑко ÑеÑÐ²ÐµÑ ÑÑанÑлÑÑий",children:e.jsx(we,{id:`${c}-key`,value:s.streamKey,placeholder:n!=null&&n.hasStreamKeySecret?"â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢":"xxxx-xxxx-xxxx-xxxx",autoComplete:"off",spellCheck:!1,disabled:d,onChange:x=>a(i=>({...i,streamKey:x.target.value}))})})]})}function fs({dest:s,report:a,checking:n,onCheck:t,canManage:d}){if(!s)return e.jsx("p",{className:"sn-a-muted",children:"ÐÑовеÑим адÑеÑ, клÑÑ Ð¸ ÑоÑÐ¼Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑоÑ
ÑанениÑ. Само Ñоединение Ñ Ð¿Ð»Ð¾Ñадкой наÑнÑÑÑÑ Ð¿Ñи вÑÑ
оде в ÑÑиÑ."});if(!s.enabled)return e.jsx(A,{icon:e.jsx(Ne,{className:"sn-i sn-i-16"}),title:"ÐлоÑадка вÑклÑÑена",children:"ÐÑ Ð½ÐµÐ»ÑÐ·Ñ Ð²ÑбÑаÑÑ Ð´Ð»Ñ ÑÑиÑа. ÐлÑÑ Ð¸ адÑÐµÑ ÑоÑ
ÑаненÑ."});const c=a?te(a):[],h=(a==null?void 0:a.checkedAt)||s.lastTestedAt;return e.jsxs(e.Fragment,{children:[!a&&e.jsx("p",{className:"sn-a-muted",children:"ÐÑовеÑки еÑÑ Ð½Ðµ бÑло."}),a&&c.length===0&&e.jsxs(A,{tone:"green",icon:e.jsx(ze,{className:"sn-i sn-i-16"}),title:"ÐоÑово к ÑÑиÑÑ",children:["ÐдÑеÑ, клÑÑ Ð¸ ÑоÑÐ¼Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾ подÑ
одÑÑ Ð¿Ð»Ð¾Ñадке.",h?` ÐÑовеÑено ${Ge(h)}.`:""]}),a&&c.length>0&&e.jsxs(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),title:"ÐлоÑадка не пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾Ñок",children:[c.join(". "),"."]}),d&&e.jsx("div",{children:e.jsx(j,{variant:"quiet",size:"sm",icon:e.jsx(fe,{className:"sn-i sn-i-16"}),loading:n,onClick:t,children:"ÐÑовеÑиÑÑ ÐµÑÑ Ñаз"})})]})}function Fe({item:s,platformKey:a,workspaceId:n,canManage:t,list:d,onClose:c,reload:h,lead:u,subtitleOverride:x}){const i=ae(),m=$e[a],o=d[0],[l,b]=g.useState(()=>ne(o,m)),[C,v]=g.useState(!1),[I,k]=g.useState(!1),[r,f]=g.useState(null),[U,F]=g.useState((o==null?void 0:o.lastTestReport)||null),[Y,N]=g.useState(!1);g.useEffect(()=>{b(ne(o,m)),F((o==null?void 0:o.lastTestReport)||null)},[o==null?void 0:o.id]);const P=E=>{f(null),b(E)},w=We(l,o),_=async()=>
1{if(!o&&(!l.endpointUrl.trim()||!l.streamKey.trim())){f(l.endpointUrl.trim()?"УкажиÑе клÑÑ ÑÑанÑлÑÑии":"УкажиÑе адÑÐµÑ ÑеÑвеÑа");return}v(!0),f(null);try{const E=await Ee(n,o,m,l);F(E.report),await h();const z=E.report?te(E.report):[];z.length?i.error(`${s.name}: ${z[0].toLowerCase()}`):i.success(o?"ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑ
ÑаненÑ":`${s.name} подклÑÑÑн`),b(V=>({...V,endpointUrl:"",streamKey:""}))}catch(E){f(B(E))}finally{v(!1)}},J=async()=>{if(o){k(!0);try{F(await $.post(`/api/v1/streams/destinations/${o.id}/test`,{})),await h()}catch(E){i.error(B(E,"Ðе ÑдалоÑÑ Ð¿ÑовеÑиÑÑ"))}finally{k(!1)}}},D=async()=>{if(o)try{await Promise.all(d.map(E=>$.del(`/api/v1/streams/destinations/${E.id}`))),await h(),i.success(`${s.name} оÑклÑÑÑн`),N(!1),c()}catch(E){i.error(B(E,"Ðе ÑдалоÑÑ Ð¾ÑклÑÑиÑÑ"))}},H=U?te(U):[],Q=o?o.enabled?H.length?{tone:"red",label:"ÐÑжно иÑпÑавиÑÑ"}:{tone:"green",label:"ÐодклÑÑено"}:{tone:"gray",label:"ÐÑклÑÑено"}:null,ie=t?e.jsxs(e.Fragment,{children:[o&&e.jsxs(j,{variant:"text",className:"sn-a-btn-danger-text",onClick:()=>N(!0),disabled:C,children:["ÐÑклÑÑиÑÑ ",s.name]}),e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:c,disabled:C,children:"ÐÑмена"}),e.jsx(j,{variant:"primary",onClick:_,loading:C,disabled:!w&&!!o,children:o?"СоÑ
ÑаниÑÑ":"ÐодклÑÑиÑÑ"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:c,children:"ÐакÑÑÑÑ"})]});return e.jsxs(ue,{item:s,status:Q,subtitle:x||(o==null?void 0:o.displayName),onClose:c,footer:ie,busy:C,children:[u,!t&&e.jsx(he,{}),e.jsxs(K,{n:1,done:!!o,title:m.howtoTitle,children:[e.jsx(ye,{items:m.howto}),m.link&&e.jsx("div",{children:e.jsx(j,{variant:"quiet",size:"sm",href:m.link.href,target:"_blank",rel:"noreferrer",iconRight:e.jsx(Te,{className:"sn-i sn-i-16"}),children:m.link.label})})]}),e.jsxs(K,{n:2,done:!!o&&!w,title:"ÐÑÑавÑÑе иÑ
ÑÑда",children:[e.jsx(Re,{form:l,setForm:P,dest:o,platform:m,disabled:!t||C,readOnly:!t,idPrefix:`dst-${s.key}`}),o&&e.jsx(ge,{title:"ÐлоÑадка вклÑÑена",description:"ÐÑклÑÑеннÑÑ Ð¿Ð»Ð¾ÑÐ°Ð´ÐºÑ Ð½ÐµÐ»ÑÐ·Ñ Ð²ÑбÑаÑÑ Ð´Ð»Ñ ÑÑиÑа, клÑÑ ÑоÑ
ÑаниÑÑÑ",checked:l.enabled,disabled:!t||C,onChange:E=>P(z=>({...z,enabled:E}))}),r&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:r})]}),e.jsx(K,{n:3,done:!!(o&&U&&!H.length&&o.enabled),title:"ÐÑовеÑка",children:e.jsx(fs,{dest:o,report:U,checking:I,onCheck:J,canManage:t})}),e.jsx(se,{open:Y,onClose:()=>N(!1),onConfirm:D,title:`ÐÑклÑÑиÑÑ ${s.name}?`,description:"ÐдÑÐµÑ Ð¸ клÑÑ ÑдалÑÑÑÑ Ð¸Ð· SNICH, плоÑÐ°Ð´ÐºÑ Ð±Ð¾Ð»ÑÑе нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð²ÑбÑаÑÑ Ð´Ð»Ñ ÑÑиÑа. ЧÑÐ¾Ð±Ñ Ð²ÐµÑнÑÑÑ, подклÑÑиÑе ÐµÑ Ð·Ð°Ð½Ð¾Ð²Ð¾.",confirmLabel:"ÐÑклÑÑиÑÑ"})]})}function he(){return e.jsx(W,{children:e.jsx(A,{icon:e.jsx(He,{className:"sn-i sn-i-16"}),title:"ТолÑко пÑоÑмоÑÑ",children:"ÐодклÑÑаÑÑ Ð¸ менÑÑÑ Ð¸Ð½ÑегÑаÑии могÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸ админиÑÑÑаÑоÑÑ Ð¿ÑоÑÑÑанÑÑва."})})}function js(s){return e.jsx(Fe,{item:s.item,platformKey:"vk",workspaceId:s.workspaceId,canManage:s.canManage,list:me("vk",s.destinations),onClose:s.onClose,reload:s.reload})}function bs(s){return e.jsx(Fe,{item:s.item,platformKey:"telegram",workspaceId:s.workspaceId,canManage:s.canManage,list:me("telegram",s.destinations),onClose:s.onClose,reload:s.reload})}const vs="rtmp://a.rtmp.youtube.com/live2",de=s=>{var a;return((a=s==null?void 0:s.providerConfig)==null?void 0:a.youtubeAutoCreate)!==!1},Ce=s=>{var a;return((a=s==null?void 0:s.providerConfig)==null?void 0:a.privacyStatus)==="public"?"public":"unlisted"};function ks({dest:s}){var d;const[a,n]=g.useState(!1),t=(d=s.providerConfig)==null?void 0:d.channelThumbn
1ailUrl;return t&&!a?e.jsx("img",{className:"sn-a-yt-thumb",src:t,alt:"",referrerPolicy:"no-referrer",onError:()=>n(!0)}):e.jsx("span",{className:"sn-a-glyph",style:{width:32,height:32,borderRadius:"50%",fontSize:11},"aria-hidden":"true",children:"YT"})}function Cs(s){var Ue,Ae,Pe,Ie,Ye,Ke,_e;const{item:a,workspaceId:n,canManage:t,youtube:d,onClose:c,reload:h}=s,u=ae(),[x,i]=qe(),m=me("youtube",s.destinations),o=m.filter(y=>{var L;return(L=y.providerConfig)==null?void 0:L.nativeApiConnected}).sort((y,L)=>String(y.createdAt||"").localeCompare(String(L.createdAt||""))),l=o.find(y=>y.enabled)||o[0],b=m.find(y=>{var L;return!((L=y.providerConfig)!=null&&L.nativeApiConnected)}),[C,v]=g.useState(()=>l||d.configured&&!b?"oauth":"key"),[I,k]=g.useState((l==null?void 0:l.id)||null),r=o.find(y=>y.id===I)||l,[f,U]=g.useState(Ce(r)),[F,Y]=g.useState(de(r)),[N,P]=g.useState(""),[w,_]=g.useState(null),[J,D]=g.useState(!1),[H,Q]=g.useState(!1),[ie,E]=g.useState(!1),[z,V]=g.useState(null);g.useEffect(()=>{k((l==null?void 0:l.id)||null)},[l==null?void 0:l.id]),g.useEffect(()=>{U(Ce(r)),Y(de(r)),P(""),_(null)},[r==null?void 0:r.id,(Ue=r==null?void 0:r.providerConfig)==null?void 0:Ue.privacyStatus,(Ae=r==null?void 0:r.providerConfig)==null?void 0:Ae.youtubeAutoCreate]),g.useEffect(()=>{const y=x.get("streamDestinationStatus");if(!y)return;y==="connected"?(u.success("YouTube подклÑÑÑн"),h()):V(x.get("streamDestinationMessage")||"Google не подÑвеÑдил вÑ
од");const L=new URLSearchParams(x);["streamDestinationStatus","streamDestinationProvider","streamDestinationId","streamDestinationMessage"].forEach(R=>L.delete(R)),i(L,{replace:!0})},[]);const re=async y=>{V(null),D(!0);const L=y?r==null?void 0:r.id:void 0;let R=null;try{R=window.open("","snich-youtube-oauth","width=520,height=700");const O=await $.post("/api/v1/streams/integrations/youtube/oauth/start",{workspaceId:n,privacyStatus:f,responseMode:R?"popup":"redirect",returnTo:"/settings/integrations/youtube",title:"YouTube"});if(!O.configured||!O.authUrl){R==null||R.close(),V("ÐÑ
од ÑеÑез Google на ÑÑом ÑеÑвеÑе не наÑÑÑоен. ÐодклÑÑиÑе канал по клÑÑÑ ÑÑанÑлÑÑии."),v("key"),D(!1);return}if(!R){window.location.assign(O.authUrl);return}R.location.href=O.authUrl;const Z=async ce=>{const M=ce.data;ce.origin!==window.location.origin||(M==null?void 0:M.type)!=="snich-stream-destination-oauth"||(window.removeEventListener("message",Z),window.clearInterval(oe),D(!1),M.status==="connected"?(L&&M.destinationId&&M.destinationId!==L&&await $.del(`/api/v1/streams/destinations/${L}`).catch(()=>{}),await h(),M.destinationId&&k(M.destinationId),u.success("YouTube подклÑÑÑн")):V(M.message||"Google не подÑвеÑдил вÑ
од"))};window.addEventListener("message",Z);const oe=window.setInterval(()=>{R&&R.closed&&(window.clearInterval(oe),window.setTimeout(()=>{window.removeEventListener("message",Z),D(!1)},800))},400)}catch(O){R==null||R.close(),V(B(O,"Ðе ÑдалоÑÑ Ð½Ð°ÑаÑÑ Ð²Ñ
од ÑеÑез Google")),D(!1)}},je=async()=>{var L;if(!r)return;const y=N.trim();if(!F&&de(r)&&!y){_("ÐÑÑавÑÑе клÑÑ ÑÑанÑлÑÑии из YouTube Studio");return}Q(!0);try{const R=r.id!==(l==null?void 0:l.id)||!r.enabled;await $.patch(`/api/v1/streams/destinations/${r.id}`,{...R?{enabled:!0}:{},providerConfig:{privacyStatus:f,youtubeAutoCreate:F},...!F&&y?{protocol:"rtmp",endpointUrl:vs,streamKey:y}:{}}),R&&await Promise.all(o.filter(O=>O.id!==r.id&&O.enabled).map(O=>$.patch(`/api/v1/streams/destinations/${O.id}`,{enabled:!1}))),P(""),await h(),u.success(R?`ÐÑиÑÑ Ð¿Ð¾Ð¹Ð´ÑÑ Ð½Ð° канал «${((L=r.providerConfig)==null?void 0:L.channelTitle)||"YouTube"}»`:"ÐаÑÑÑойки YouTube ÑоÑ
ÑаненÑ")}catch(R){u.error(B(R))}finally{Q(!1)}},le=async()=>{try{await Promise.all(m.map(y=>$.del(`/api/v1/streams/destinations/${y.id}`))),await h(),u.success("YouTube оÑклÑÑÑн"),E(!1),c()}catch(y){u.error(B(y,"Ðе ÑдалоÑÑ Ð¾ÑклÑÑиÑÑ"))}};if(C==="key"&&!l){const y=d.configured?e.jsx(W,{children:e.jsxs("div",{className:"sn-a-inline-actions",children:[e.jsx("span",{className:"sn-a-muted",style:{flex:1},children:"Ðожно не возиÑÑÑÑ Ñ ÐºÐ»ÑÑом: войдиÑе ÑеÑез Google, и ÑÑÐ¸Ñ Ð½Ð° YouTube бÑÐ´ÐµÑ ÑоздаваÑÑÑÑ Ñам."}),e.jsx(j,{variant:"text",size:"sm",onClick:()=>v("oauth"),children:"ÐойÑи ÑеÑез Google"})]})}):e.jsx(W,{children:e.jsx(A,{tone:"amber",icon:e.jsx(Ne,{className:"sn-i sn-i-16"}),title:"ÐÑ
од ÑеÑез Google â ÑÑебÑеÑÑÑ Ð½Ð°ÑÑÑойка админиÑÑÑаÑоÑом",children:"Ðока админиÑÑÑаÑÐ¾Ñ SNICH не подклÑÑил Google, канал добавлÑеÑÑÑ Ð¿Ð¾ клÑÑÑ ÑÑанÑлÑÑии. ÐÑÐ¸Ñ Ð½Ð° YouTube Ñогда ÑоздаÑÑе Ð²Ñ Ñами в YouTube Studio."})});return e.jsx(Fe,{item:a,platformKey:"youtube",workspaceId:n,canManage:t,list:b?[b]:[],onClose:c,reload:h,lead:y})}const be=((Pe=l==null?void 0:l.providerConfig)==null?void 0:Pe.channelTitle)||"YouTube",p=((Ie=r==null?void 0:r.providerConfig)==null?void 0:Ie.accountEmail)||((Ye=r==null?void 0:r.providerConfig)==null?void 0:Ye.accountLogin)||"",T=((Ke=r==null?void 0:r.providerConfig)==null?void 0:Ke.accountDisplayName)||((_e=r==null?void 0:r.providerConfig)==null?void 0:_e.channelTitle)||"YouTube",S=!!r&&((r==null?void 0:r.id)!==(l==null?void 0:l.id)||f!==Ce(r)||F!==de(r)||!!N.trim()),G=l?l.enabled?{tone:"green",label:"ÐодклÑÑено"}:{tone:"gray",label:"ÐÑклÑÑено"}
1:null,Le=!!r&&!de(r),Xe=t?e.jsxs(e.Fragment,{children:[l&&e.jsx(j,{variant:"text",className:"sn-a-btn-danger-text",onClick:()=>E(!0),children:"ÐÑклÑÑиÑÑ YouTube"}),e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:c,children:l?"ÐÑмена":"ÐакÑÑÑÑ"}),l&&e.jsx(j,{variant:"primary",onClick:je,loading:H,disabled:!S,children:"СоÑ
ÑаниÑÑ"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:c,children:"ÐакÑÑÑÑ"})]});return e.jsxs(ue,{item:a,status:G,subtitle:l?`канал «${be}»`:void 0,onClose:c,footer:Xe,children:[!t&&e.jsx(he,{}),e.jsxs(K,{n:1,done:!!l,title:"ÐойÑи в аккаÑÐ½Ñ Google",children:[l?e.jsxs("div",{className:"sn-a-kv",children:[e.jsx(ns,{name:T,size:32}),e.jsxs("span",{className:"sn-a-kv-text",children:[e.jsx("b",{children:p||T}),e.jsx("span",{children:"ÐÑ
од вÑполнен"})]}),t&&e.jsx(j,{variant:"text",size:"sm",onClick:()=>re(!0),loading:J,children:"СмениÑÑ"})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"sn-a-muted",children:"РазÑеÑиÑе SNICH ÑоздаваÑÑ ÑÑиÑÑ Ð½Ð° ваÑем канале. ÐаÑÐ¾Ð»Ñ Ð¾Ñ Google Ð¼Ñ Ð½Ðµ видим."}),t&&e.jsxs("div",{className:"sn-a-inline-actions",children:[e.jsx(j,{variant:"primary",onClick:()=>re(!1),loading:J,children:"ÐойÑи ÑеÑез Google"}),e.jsx(j,{variant:"text",onClick:()=>v("key"),children:"ÐодклÑÑиÑÑ Ð¿Ð¾ клÑÑÑ"})]})]}),z&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:z})]}),e.jsx(K,{n:2,done:!!l,title:"ÐÑбÑаÑÑ ÐºÐ°Ð½Ð°Ð»",children:l?e.jsxs("div",{className:"sn-a-yt-channels",role:"radiogroup","aria-label":"Ðанал YouTube",children:[o.map(y=>{var Z,oe,ce,M;const L=y.id===(r==null?void 0:r.id),O=[(Z=y.providerConfig)!=null&&Z.accountLogin&&y.providerConfig.accountLogin!==((oe=y.providerConfig)==null?void 0:oe.accountEmail)?y.providerConfig.accountLogin:"",(ce=y.providerConfig)==null?void 0:ce.accountEmail].filter(Boolean).join(" · ")||"Ðанал аккаÑнÑа Google";return e.jsxs("label",{className:`sn-a-kv sn-a-kv-radio${L?" is-selected":""}`,children:[e.jsx("input",{type:"radio",name:"yt-channel",checked:L,disabled:!t,onChange:()=>k(y.id)}),e.jsx(ks,{dest:y}),e.jsxs("span",{className:"sn-a-kv-text",children:[e.jsx("b",{children:((M=y.providerConfig)==null?void 0:M.channelTitle)||"YouTube"}),e.jsx("span",{children:O})]})]},y.id)}),t&&e.jsxs("button",{type:"button",className:"sn-a-kv sn-a-kv-add",onClick:()=>re(!1),disabled:J,children:[e.jsx("span",{className:"sn-a-kv-add-icon","aria-hidden":"true",children:e.jsx(Se,{className:"sn-i sn-i-16"})}),e.jsxs("span",{className:"sn-a-kv-text",children:[e.jsx("b",{children:"ÐÑÑгой канал"}),e.jsx("span",{children:"ÐойдиÑе в Google и вÑбеÑиÑе канал или бÑенд-аккаÑнÑ"})]})]})]}):e.jsx("p",{className:"sn-a-muted",children:"ÐоÑле вÑ
ода Google пÑÐµÐ´Ð»Ð¾Ð¶Ð¸Ñ Ð²ÑбÑаÑÑ ÐºÐ°Ð½Ð°Ð» â лиÑнÑй или бÑенд-аккаÑнÑ."})}),e.jsxs(K,{n:3,title:"ÐаÑÑÑойки по ÑмолÑаниÑ",children:[F&&e.jsxs("div",{className:"sn-field",children:[e.jsx("span",{className:"sn-label",id:"yt-access",children:"ÐоÑÑÑп к ÑÑиÑÑ Ð½Ð° YouTube"}),e.jsx(Be,{ariaLabel:"ÐоÑÑÑп к ÑÑиÑÑ Ð½Ð° YouTube",value:f,onChange:y=>U(y),options:[{value:"public",label:"ÐÑкÑÑÑÑй"},{value:"unlisted",label:"Ðо ÑÑÑлке"}]})]}),e.jsx(ge,{title:"СоздаваÑÑ ÑÑÐ¸Ñ Ð½Ð° YouTube авÑомаÑиÑеÑки",description:F?"Ðазвание и опиÑание возÑмÑм из ÑобÑÑиÑ":"ÐÑÐ¸Ñ ÑоздаÑÑе Ñами в YouTube Studio â SNICH оÑпÑÐ°Ð²Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾ на его клÑÑ ÑÑанÑлÑÑии",checked:F,disabled:!t||!l,onChange:y=>{Y(y),_(null)}}),!F&&l&&e.jsx(ee,{label:"ÐлÑÑ ÑÑанÑлÑÑии из YouTube Studio",htmlFor:"yt-studio-key",error:w,hint:Le?"ÐлÑÑ ÑоÑ
ÑанÑн и заÑиÑÑован. ÐÑÑавÑÑе новÑй, еÑли Ñменили его в YouTube Studio.":"YouTube Studio â «ÐаÑаÑÑ ÑÑанÑлÑÑиÑ» â «ÐлÑÑ ÑÑанÑлÑÑии». СеÑÐ²ÐµÑ Ð¿Ð¾Ð´ÑÑавим Ñами.",children:e.jsx(we,{id:"yt-studio-key",value:N,placeholder:Le?"â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢":"xxxx-xxxx-xxxx-xxxx-xxxx",autoComplete:"off",spellCheck:!1,disabled:!t,onChange:y=>{P(y.target.value),_(null)}})})]}),e.jsx(se,{open:ie,onClose:()=>E(!1),onConfirm:le,title:"ÐÑклÑÑиÑÑ YouTube?",description:"SNICH забÑÐ´ÐµÑ Ð´Ð¾ÑÑÑп к ÐºÐ°Ð½Ð°Ð»Ñ Ð¸ клÑÑи ÑÑанÑлÑÑии. Уже пÑоÑедÑие ÑÑиÑÑ Ð½Ð° YouTube оÑÑанÑÑÑÑ.",confirmLabel:"ÐÑклÑÑиÑÑ"})]})}const Ns=[{value:"rutube",label:"RUTUBE"},{value:"twitch",label:"Twitch"},{value:"custom",label:"ÐÑÑгой ÑеÑÐ²ÐµÑ (RTMP)"}];function ws(s){return s==="rutube"?"RT":s==="twitch"?"TW":"RTMP"}function Ss({dest:s,canManage:a,reload:n}){const t=ae(),d=$e[s.provider==="rutube"?"rutube":s.provider==="twitch"?"twitch":"custom"],[c,h]=g.useState(!1),[u,x]=g.useState(()=>ne(s,d)),[i,m]=g.useState(null),[o,l]=g.useState(null),[b,C]=g.useState(!1),v=s.lastTestReport?te(s.lastTestReport):[],I=N=>{l(null),x(N)},k=async()=>{m("save");try{await Ee(s.workspaceId||"",s,d,u),await n(),h(!1),t.success("СеÑÐ²ÐµÑ ÑоÑ
ÑанÑн")}catch(N){l(B(N))}finally{m(null)}},r=async()=>{m("check");try{const N=await $.post(`/api/v1/streams/destinations/${s.id}/test`,{});await n();const P=te(N);P.length?t.error(P[0]):t.success(`${s.displayName}: гоÑово к ÑÑиÑÑ`)}catch(N){t.error(B(N,"Ðе ÑдалоÑÑ Ð¿ÑовеÑиÑÑ"))}finally{m(null)}},f=async N=>{m("toggle");try{await $.patch(`/api/v1/streams/destinations/${s.id}`,{enabled:N}),await n()}catch(P){t.error(B(P))}finally{m(null)}},U=async()=>{try{await $.del(`/api/v1/streams/destinations/${s.id}`),await n(),t.success(`${s.displayName} ÑдалÑн`),C(!1)}catch(N){t.error(B(N,"Ðе ÑдалоÑÑ ÑдалиÑÑ"))}},F=s.enabled?v.length?"sn-a-dot sn-a-dot-red":"sn-a-dot sn-a-dot-green":"sn-a-dot sn-a-dot-gray",Y=s.enabled?v.length?v[0]:s.lastTestReport?"ÐоÑов к ÑÑиÑÑ":"ÐÑÑ Ð½Ðµ пÑовеÑÑли":"ÐÑклÑÑен";return e.jsxs("div",{className:"sn-a-srv",children:[e.jsxs("div",{className:"sn-a-srv-top",children:[e.jsx("span",{className:"sn-a-glyph",style:{width:36,height:36,borderRadius:10,fontSize:11},"aria-hidden":"true",children:ws(s.provider)}),e.jsxs("span",{className:"sn-a-kv-text",children:[e.jsx("b",{children:s.displayName}),e.jsx("span",{className:"sn-mono",title:s.endpointMasked||"",children:s.endpointMasked||"ÐдÑÐµÑ Ð½Ðµ Ñказан"})]}),a&&e.jsx(ss,{size:"sm",variant:"ghost",label:`УдалиÑÑ ${s.displayName}`,onClick:()=>C(!0),children:e.jsx(ds,{className:"sn-i"})})]}),e.jsxs("div",{className:"sn-a-inline-actions",children:[e.jsx("span",{className:F,"aria-hidden":"true"}),e.jsx("span",{className:"sn-a-muted",style:{flex:1},children:Y})]}),a&&!c&&e.jsxs("div",{className:"sn-a-srv-actions",children:[e.jsx(j,{variant:"quiet",size:"sm",onClick:()=>h(!0),children:"ÐзмениÑÑ"}),e.jsx(j,{variant:"quiet",size:"sm",icon:e.jsx(fe,{className:"sn-i sn-i-16"}),loading:i==="check",disabled:!s.enabled,onClick:r,children:"ÐÑовеÑиÑÑ"}),e.jsx("span",{className:"sn-a-grow",style:{flex:1}}),e.jsx(ge,{title:s.enabled?"ÐклÑÑÑн":"ÐÑклÑÑен",checked:s.enabled,disabled:i!==null,onChange:f})]}),c&&e.jsxs(e.Fragment,{children:[e.jsx(Re,{form:u,setForm:I,dest:s,platform:d,disabled:i==="save",idPrefix:`srv-${s.id}`}),o&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:o}),e.jsxs("div",{className:"sn-a-inline-actions",children:[e.jsx(j,{variant:"primary",size:"sm",onClick:k,loading:i==="save",disabled:!We(u,s),children:"СоÑ
ÑаниÑÑ"}),e.jsx(j,{variant:"quiet",size:"sm",onClick:()=>{h(!1),x(ne(s,d)),l(null)},disabled:i==="save",children:"ÐÑмена"})]})]}),e.jsx(se,{open:b,onClose:()=>C(!1),onConfirm:U,title:`УдалиÑÑ Â«${s.displayName}»?`,description:"ÐдÑÐµÑ Ð¸ клÑÑ ÑдалÑÑÑÑ Ð¸Ð· SNICH, ÑеÑÐ²ÐµÑ Ð±Ð¾Ð»ÑÑе нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð²ÑбÑаÑÑ Ð´Ð»Ñ ÑÑиÑа.",confirmLabel:"УдалиÑÑ"})]})}function Ts(s){const{item:a,workspaceId:n,canManage:t,onClose:d,reload:c}=s,h=ae(),u=me("rtmp",s.destinations),[x,i]=g.useState("rutube"),m=$e[x],[o,l]=g.useState(u.length===0),[b,C]=g.useState(()=>ne(void 0,m)),[v,I]=g.useState(!1),[k,r]=g.useState(null);g.useEffect(()=>{C(w=>({...w,displayName:m.name,endpointUrl:m.endpoint}))},[x]);const f=w=>{r(null),C(w)},U=async()=>
1{if(!b.endpointUrl.trim()||!b.streamKey.trim()){r(b.endpointUrl.trim()?"УкажиÑе клÑÑ ÑÑанÑлÑÑии":"УкажиÑе адÑÐµÑ ÑеÑвеÑа");return}I(!0);try{const w=await Ee(n,void 0,m,b);await c();const _=w.report?te(w.report):[];_.length?h.error(`${w.destination.displayName}: ${_[0].toLowerCase()}`):h.success(`${w.destination.displayName} добавлен`),l(!1),C(ne(void 0,m))}catch(w){r(B(w))}finally{I(!1)}},F=u.filter(w=>w.enabled).length,Y=u.length?{tone:F?"green":"gray",label:F?"ÐодклÑÑено":"ÐÑклÑÑено"}:null,N=u.length?`${u.length} ${u.length===1?"ÑеÑвеÑ":u.length<5?"ÑеÑвеÑа":"ÑеÑвеÑов"}`:void 0,P=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sn-a-grow"}),t&&o&&u.length>0&&e.jsx(j,{variant:"quiet",onClick:()=>l(!1),disabled:v,children:"ÐÑмена"}),t&&o?e.jsx(j,{variant:"primary",onClick:U,loading:v,children:"ÐобавиÑÑ ÑеÑвеÑ"}):e.jsx(j,{variant:"quiet",onClick:d,children:"ÐоÑово"})]});return e.jsxs(ue,{item:a,status:Y,subtitle:N,onClose:d,footer:P,busy:v,children:[!t&&e.jsx(he,{}),u.length>0&&e.jsx(W,{title:"СеÑвеÑÑ Ð¿ÑоÑÑÑанÑÑва",aside:t&&!o?e.jsx(j,{variant:"soft",size:"sm",icon:e.jsx(Se,{className:"sn-i sn-i-16"}),onClick:()=>l(!0),children:"ÐобавиÑÑ"}):void 0,children:u.map(w=>e.jsx(Ss,{dest:w,canManage:t,reload:c},w.id))}),t&&o&&e.jsxs(e.Fragment,{children:[e.jsxs(K,{n:1,title:"ÐÑда ÑÑанÑлиÑоваÑÑ",children:[e.jsx(os,{ariaLabel:"ÐлоÑадка",value:x,onChange:w=>i(w),options:Ns.map(w=>({value:w.value,label:w.label}))}),e.jsx(ye,{items:m.howto}),m.link&&e.jsx("div",{children:e.jsx(j,{variant:"quiet",size:"sm",href:m.link.href,target:"_blank",rel:"noreferrer",iconRight:e.jsx(Te,{className:"sn-i sn-i-16"}),children:m.link.label})})]}),e.jsxs(K,{n:2,title:"ÐдÑÐµÑ Ð¸ клÑÑ",children:[e.jsx(Re,{form:b,setForm:f,platform:m,disabled:v,idPrefix:"srv-new"}),k&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:k})]}),e.jsx(K,{n:3,title:"ÐÑовеÑка",children:e.jsx("p",{className:"sn-a-muted",children:"ÐÑовеÑим адÑеÑ, клÑÑ Ð¸ ÑоÑÐ¼Ð°Ñ Ð²Ð¸Ð´ÐµÐ¾ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле добавлениÑ. Соединение Ñ ÑеÑвеÑом наÑнÑÑÑÑ Ð¿Ñи вÑÑ
оде в ÑÑиÑ."})})]}),!t&&u.length===0&&e.jsx(W,{children:e.jsx("p",{className:"sn-a-muted",children:"СвоиÑ
ÑеÑвеÑов пока неÑ."})})]})}function Je(s){return s?s.status==="connected"?{tone:"green",label:"ÐодклÑÑено"}:s.status==="error"?{tone:"red",label:"ÐÑибка"}:{tone:"gray",label:"ÐÑклÑÑено"}:null}function $s(s,a,n){const[t,d]=g.useState(n?null:[]),c=g.useCallback(async()=>{if(!n){d([]);return}try{const h=await $.get(`/workspaces/${s}/integrations/${a}/logs`);d(Array.isArray(h)?h.slice(0,6):[])}catch{d([])}},[s,a,n]);return g.useEffect(()=>{c()},[c]),{entries:t,reloadLogs:c}}function Es(s){if(!s)return!1;try{const a=new URL(s).hostname;return a==="localhost"||a==="127.0.0.1"||a.endsWith(".local")}catch{return!1}}const Rs={google_calendar:{items:[e.jsx(e.Fragment,{children:"ÐÑкÑойÑе Google ÐалендаÑÑ Ð½Ð° компÑÑÑеÑе."}),e.jsxs(e.Fragment,{children:["Слева Ñ Â«ÐÑÑгиÑ
календаÑей» нажмиÑе ",e.jsx("b",{children:"+"})," â ",e.jsx("b",{children:"ÐобавиÑÑ Ð¿Ð¾ URL"}),"."]}),e.jsxs(e.Fragment,{children:["ÐÑÑавÑÑе ÑÑÑÐ»ÐºÑ Ð¸ нажмиÑе ",e.jsx("b",{children:"ÐобавиÑÑ ÐºÐ°Ð»ÐµÐ½Ð´Ð°ÑÑ"}),"."]})],link:{href:"https://calendar.google.com/calendar/r/settings/addbyurl",label:"ÐÑкÑÑÑÑ Google ÐалендаÑÑ"},refresh:"Google обновлÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñки Ñам, обÑÑно в ÑеÑение неÑколÑкиÑ
ÑаÑов."},yandex_calendar:{items:[e.jsx(e.Fragment,{children:"ÐÑкÑойÑе Ð¯Ð½Ð´ÐµÐºÑ ÐалендаÑÑ."}),e.jsxs(e.Fragment,{children:["Ð ÑпиÑке календаÑей Ñлева нажмиÑе ",e.jsx("b",{children:"ÐобавиÑÑ"})," â ",e.jsx("b",{children:"ÐодпиÑаÑÑÑÑ Ð½Ð° календаÑÑ"}),"."]}),e.jsxs(e.Fragment,{children:["ÐÑÑавÑÑе ÑÑÑлкÑ, задайÑе название и нажмиÑе ",e.jsx("b",{children:"СоздаÑÑ"}),"."]})],link:{href:"https://calendar.yandex.ru/",label:"ÐÑкÑÑÑÑ Ð¯Ð½Ð´ÐµÐºÑ ÐалендаÑÑ"},refresh:"Ð¯Ð½Ð´ÐµÐºÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐºÑ Ñам, обÑÑно Ñаз в ÑаÑ."}};
1function Fs({item:s,workspaceId:a,canManage:n,connections:t,onClose:d,reload:c}){const h=ae(),u=t.find(k=>k.provider===s.key),x=(u==null?void 0:u.status)==="connected"&&u.feedUrl||null,i=Rs[s.key],[m,o]=g.useState(null),[l,b]=g.useState(null),C=async(k=!1)=>{o(k?"rotate":"create");try{const r=await $.post(`/workspaces/${a}/integrations`,{provider:s.key,config:k?{rotate:"1"}:{},enabledEvents:[]});await c(),r.status==="connected"?h.success(k?"ÐÐ¾Ð²Ð°Ñ ÑÑÑлка гоÑова, ÑÑаÑÐ°Ñ Ð±Ð¾Ð»ÑÑе не ÑабоÑаеÑ":"СÑÑлка-подпиÑка гоÑова"):h.error(r.lastError||"Ðе ÑдалоÑÑ ÑоздаÑÑ ÑÑÑлкÑ"),b(null)}catch(r){h.error(X(r,"Ðе ÑдалоÑÑ ÑоздаÑÑ ÑÑÑлкÑ"))}finally{o(null)}},v=async()=>{try{await $.del(`/workspaces/${a}/integrations/${s.key}`),await c(),h.success(`${s.name} оÑклÑÑÑн â ÑÑÑлка болÑÑе не ÑабоÑаеÑ`),b(null),d()}catch(k){h.error(X(k,"Ðе ÑдалоÑÑ Ð¾ÑклÑÑиÑÑ"))}},I=e.jsxs(e.Fragment,{children:[n&&u&&e.jsx(j,{variant:"text",className:"sn-a-btn-danger-text",onClick:()=>b("off"),children:"ÐÑклÑÑиÑÑ"}),e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:x?"primary":"quiet",onClick:d,children:x?"ÐоÑово":"ÐакÑÑÑÑ"})]});return e.jsxs(ue,{item:s,status:Je(u),subtitle:x?"по ÑÑÑлке-подпиÑке":void 0,onClose:d,footer:I,busy:m!==null,children:[!n&&e.jsx(he,{}),e.jsx(K,{n:1,done:!!x,title:"СÑÑлка на календаÑÑ Ð¿ÑоÑÑÑанÑÑва",children:x?e.jsxs(e.Fragment,{children:[e.jsx(cs,{value:x,message:"СÑÑлка ÑкопиÑована"}),e.jsx("p",{className:"sn-a-muted",children:"РкалендаÑе поÑвÑÑÑÑ Ð·Ð°Ð¿Ð»Ð°Ð½Ð¸ÑованнÑе ÑÑиÑÑ Ð¸ вÑÑÑеÑи пÑоÑÑÑанÑÑва: за два меÑÑÑа назад и на год впеÑÑд, Ñо ÑÑÑлкой на вÑ
од."}),Es(x)&&e.jsx(A,{tone:"amber",icon:e.jsx(q,{className:"sn-i sn-i-16"}),title:"СеÑÐ²ÐµÑ SNICH доÑÑÑпен ÑолÑко Ñ ÑÑого компÑÑÑеÑа",children:"ÐалендаÑÑ Ð² инÑеÑнеÑе не ÑÐ¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð±ÑаÑÑ ÑÑÑлкÑ, пока ÑеÑÐ²ÐµÑ Ð½Ðµ опÑбликован."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"sn-a-muted",children:["SNICH ÑÐ´ÐµÐ»Ð°ÐµÑ ÑекÑеÑнÑÑ ÑÑÑлкÑ-подпиÑкÑ. ÐалендаÑÑ Ñам бÑÐ´ÐµÑ Ð·Ð°Ð±Ð¸ÑаÑÑ Ð¿Ð¾ ней ÑÑиÑÑ Ð¸ вÑÑÑеÑи â без доÑÑÑпа к ваÑÐµÐ¼Ñ Ð°ÐºÐºÐ°ÑнÑÑ ",s.key==="google_calendar"?"Google":"ЯндекÑа","."]}),(u==null?void 0:u.status)==="error"&&u.lastError&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:u.lastError}),n&&e.jsx("div",{children:e.jsx(j,{variant:"primary",onClick:()=>C(!1),loading:m==="create",children:"СоздаÑÑ ÑÑÑлкÑ"})})]})}),e.jsxs(K,{n:2,title:`ÐобавÑÑе ÐµÑ Ð² ${s.key==="google_calendar"?"Google ÐалендаÑÑ":"Ð¯Ð½Ð´ÐµÐºÑ ÐалендаÑÑ"}`,children:[e.jsx(ye,{items:i.items}),e.jsx("div",{children:e.jsx(j,{variant:"quiet",size:"sm",href:i.link.href,target:"_blank",rel:"noreferrer",iconRight:e.jsx(Te,{className:"sn-i sn-i-16"}),children:i.link.label})}),e.jsx("p",{className:"sn-a-muted",children:i.refresh})]}),x&&e.jsxs(W,{title:"ÐезопаÑноÑÑÑ",children:[e.jsx(A,{icon:e.jsx(us,{className:"sn-i sn-i-16"}),children:"Ðо ÑÑÑлке Ð²Ð¸Ð´Ð½Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐµÐ¼Ñ Ð²ÑеÑ
ÑÑиÑов и вÑÑÑÐµÑ Ð¿ÑоÑÑÑанÑÑва. ÐÑли она попала не ÑÑда â ÑмениÑе еÑ, ÑÑаÑÐ°Ñ ÑÑÐ°Ð·Ñ Ð¿ÐµÑеÑÑÐ°Ð½ÐµÑ ÑабоÑаÑÑ."}),n&&e.jsx("div",{children:e.jsx(j,{variant:"quiet",size:"sm",icon:e.jsx(fe,{className:"sn-i sn-i-16"}),onClick:()=>b("rotate"),children:"СмениÑÑ ÑÑÑлкÑ"})})]}),e.jsx(se,{open:l==="rotate",onClose:()=>b(null),onConfirm:()=>C(!0),title:"СмениÑÑ ÑÑÑлкÑ?",description:"СÑаÑÐ°Ñ ÑÑÑлка пеÑеÑÑÐ°Ð½ÐµÑ ÑабоÑаÑÑ. ÐовÑÑ Ð½Ñжно бÑÐ´ÐµÑ Ð·Ð°Ð½Ð¾Ð²Ð¾ добавиÑÑ Ð² календаÑÑ.",confirmLabel:"СмениÑÑ",tone:"primary"}),e.jsx(se,{open:l==="off",onClose:()=>b(null),onConfirm:v,title:`ÐÑклÑÑиÑÑ ${s.name}?`,description:"СÑÑлка-подпиÑка пеÑеÑÑÐ°Ð½ÐµÑ ÑабоÑаÑÑ, ÑÑиÑÑ Ð¿ÑопадÑÑ Ð¸Ð· календаÑÑ Ð¿Ñи ÑледÑÑÑем обновлении.",confirmLabel:"ÐÑклÑÑиÑÑ"})]})}const Ls={bitrix24:{howtoTitle:"СоздайÑе вÑ
одÑÑий вебÑ
Ñк в ÐиÑÑикÑ24",howto:[e.jsxs(e.Fragment,{children:["Ð ÐиÑÑикÑ24 оÑкÑойÑе ",e.jsx("b",{children:"РазÑабоÑÑикам"})," â ",e.jsx("b",{children:"ÐÑÑгое"})," â ",e.jsx("b",{children:"ÐÑ
одÑÑий вебÑ
Ñк"}),"."]}),e.jsxs(e.Fragment,{children:["РпÑаваÑ
доÑÑÑпа оÑмеÑÑÑе ",e.jsx("b",{children:"CRM (crm)"})," и ÑоÑ
ÑаниÑе."]}),e.jsxs(e.Fragment,{children:["СкопиÑÑйÑе ",e.jsx("b",{children:"ÐебÑ
Ñк Ð´Ð»Ñ Ð²Ñзова rest api"}),"."]})],fields:[{key:"webhookUrl",label:"ÐдÑÐµÑ Ð²ÐµÐ±Ñ
Ñка",secret:!0,required:!0,placeholder:"https://portal.bitrix24.ru/rest/1/xxxxxxxx/"},{key:"responsibleId",label:"ID оÑвеÑÑÑвенного за лидÑ",secret:!1,required:!1,placeholder:"1",hint:"ÐеобÑзаÑелÑно. Ðез него оÑвеÑÑÑвеннÑм ÑÑÐ°Ð½ÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð²ÐµÐ±Ñ
Ñка."}],syncTitle:"ÐовÑе ÑегиÑÑÑаÑии â лидÑ",syncDescription:"ÐмÑ, email, ÑÑÐ¸Ñ Ð¸ UTM-меÑки зÑиÑÐµÐ»Ñ Ð¿Ð¾ÑвÑÑÑÑ Ð² CRM ÑеÑез минÑÑÑ Ð¿Ð¾Ñле ÑегиÑÑÑаÑии"},amocrm:{howtoTitle:"ÐозÑмиÑе Ñокен в amoCRM",howto:[e.jsxs(e.Fragment,{children:["Ð amoCRM оÑкÑойÑе ",e.jsx("b",{children:"amoÐаÑкеÑ"})," â ",e.jsx("b",{children:"â¯"})," â ",e.jsx("b",{children:"СоздаÑÑ Ð¸Ð½ÑегÑаÑиÑ"})," â ",e.jsx("b",{children:"ÐнеÑнÑÑ Ð¸Ð½ÑегÑаÑиÑ"}),"."]}),e.jsx(e.Fragment,{children:"ÐайÑе доÑÑÑп к Ñделкам и конÑакÑам, ÑоÑ
ÑаниÑе."}),e.jsxs(e.Fragment,{children:["Ðа вкладке ",e.jsx("b",{children:"ÐлÑÑи и доÑÑÑпÑ"})," ÑгенеÑиÑÑйÑе ",e.jsx("b",{children:"ÐолгоÑÑоÑнÑй Ñокен"})," и ÑкопиÑÑйÑе его."]})],fields:[{key:"baseUrl",label:"ÐдÑÐµÑ Ð°ÐºÐºÐ°ÑнÑа",secret:!1,required:!0,placeholder:"https://company.amocrm.ru"},{key:"accessToken",label:"ÐолгоÑÑоÑнÑй Ñокен",secret:!0,required:!0,placeholder:"eyJ0eXAiOiJKV1Qiâ¦"},{key:"responsibleUserId",label:"ID оÑвеÑÑÑвенного",secret:!1,required:!1,placeholder:"1234567",hint:"ÐеобÑзаÑелÑно. ÐнаÑе ÑÐ´ÐµÐ»ÐºÑ Ð¿Ð¾Ð»ÑÑÐ¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ñокена."}],syncTitle:"ÐовÑе ÑегиÑÑÑаÑии â Ñделки",syncDescription:"ÐÑиÑÐµÐ»Ñ ÑÑÐ°Ð½ÐµÑ ÐºÐ¾Ð½ÑакÑом, ÑегиÑÑÑаÑÐ¸Ñ â Ñделкой в пеÑвой воÑонке"},webhook:{howtoTitle:"ÐÑда оÑпÑавлÑÑÑ",howto:[e.jsxs(e.Fragment,{children:["SNICH оÑпÑÐ°Ð²Ð¸Ñ ",e.jsx("b",{children:"POST"})," Ñ JSON ",e.jsx("span",{className:"sn-mono",children:"{ id, event, occurredAt, data }"})," на Ð²Ð°Ñ Ð°Ð´ÑеÑ."]}),e.jsx(e.Fragment,{children:"ÐÑÐ²ÐµÑ 2xx â ÑобÑÑие доÑÑавлено. Ðаждое ÑобÑÑие оÑпÑавлÑеÑÑÑ Ð¾Ð´Ð¸Ð½ Ñаз, ÑезÑлÑÑÐ°Ñ Ð²Ð¸Ð´ÐµÐ½ в жÑÑнале ниже."})],fields:[{key:"url",label:"ÐдÑÐµÑ (URL)",secret:!0,required:!0,placeholder:"https://example.com/snich-hook"}]}},Us=[{value:"registration.created",label:"ÐÐ¾Ð²Ð°Ñ ÑегиÑÑÑаÑиÑ",description:"ÐÑиÑÐµÐ»Ñ Ð·Ð°ÑегиÑÑÑиÑовалÑÑ Ð½Ð° ÑÑиÑ"},{value:"event.started",label:"ÐÑÐ¸Ñ Ð½Ð°ÑалÑÑ",description:"ÐÑÐ¸Ñ Ð¸Ð»Ð¸ вÑÑÑеÑа вÑÑли в ÑÑиÑ"},{value:"event.ended",label:"ÐÑÐ¸Ñ Ð·Ð°ÐºÐ¾Ð½ÑилÑÑ",description:"ÐÑÐ¸Ñ Ð¸Ð»Ð¸ вÑÑÑеÑа завеÑÑилиÑÑ"},{value:"summary.ready",label:"ÐÑоги гоÑовÑ",description:"ÐоÑов конÑÐ¿ÐµÐºÑ Ð¸ задаÑи по вÑÑÑеÑе"},{value:"recording.ready",label:"ÐапиÑÑ Ð³Ð¾Ñова",description:"ÐапиÑÑ Ð¾Ð±ÑабоÑана и доÑÑÑпна"}];function As(){const s=new Uint8Array(24);return crypto.getRandomValues(s),Array.from(s,a=>a.toString(16).padStart(2,"0")).join("")}
1function Ps({item:s,workspaceId:a,canManage:n,connections:t,onClose:d,reload:c}){const h=ae(),u=Ls[s.key],x=s.key==="webhook",i=t.find(p=>p.provider===s.key),m=(i==null?void 0:i.maskedConfig)||{},o=g.useMemo(()=>{const p={};return u.fields.forEach(T=>{p[T.key]=T.secret?"":m[T.key]||""}),x&&(p.signingSecret=""),p},[i==null?void 0:i.id,i==null?void 0:i.updatedAt]),l=g.useMemo(()=>i?i.enabledEvents:x?["registration.created","event.started","event.ended"]:["registration.synced"],[i==null?void 0:i.id,i==null?void 0:i.updatedAt]),[b,C]=g.useState(o),[v,I]=g.useState(l),[k,r]=g.useState(!1),[f,U]=g.useState(!1),[F,Y]=g.useState(null),[N,P]=g.useState(null),[w,_]=g.useState(!1),{entries:J,reloadLogs:D}=$s(a,s.key,!!i);g.useEffect(()=>{C(o)},[o]),g.useEffect(()=>{I(l)},[l]);const H=(p,T)=>{Y(null),C(S=>({...S,[p]:T}))},Q=[...v].sort().join()!==[...l].sort().join(),ie=Object.keys(b).some(p=>b[p]!==o[p]),E=!i||Q||ie,z=async()=>{const p=u.fields.find(S=>{var G;return S.required&&!((G=b[S.key])!=null&&G.trim())&&!(i&&S.secret&&m[S.key])});if(p){Y(`ÐаполниÑе поле «${p.label}»`);return}if(x&&!v.length){Y("ÐÑбеÑиÑе Ñ
оÑÑ Ð±Ñ Ð¾Ð´Ð½Ð¾ ÑобÑÑие");return}const T={};u.fields.forEach(S=>{const G=(b[S.key]||"").trim();
1S.secret?G&&(T[S.key]=G):T[S.key]=G}),x&&b.signingSecret.trim()&&(T.signingSecret=b.signingSecret.trim()),r(!0),Y(null);try{const S=await $.post(`/workspaces/${a}/integrations`,{provider:s.key,displayName:s.name,config:T,enabledEvents:v});await c(),await D(),S.status==="connected"?(h.success(i?"ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑ
ÑаненÑ":`${s.name} подклÑÑÑн`),P(null)):Y(pe(S.lastError))}catch(S){Y(X(S,"Ðе ÑдалоÑÑ ÑоÑ
ÑаниÑÑ"))}finally{r(!1)}},V=async()=>{U(!0);try{const p=await $.post(`/workspaces/${a}/integrations/${s.key}/test`,{});P(p),await c(),await D()}catch(p){P({success:!1,message:X(p,"Ðе ÑдалоÑÑ Ð¿ÑовеÑиÑÑ")})}finally{U(!1)}},re=async()=>{try{await $.del(`/workspaces/${a}/integrations/${s.key}`),await c(),h.success(`${s.name} оÑклÑÑÑн`),_(!1),d()}catch(p){h.error(X(p,"Ðе ÑдалоÑÑ Ð¾ÑклÑÑиÑÑ"))}},je=n?e.jsxs(e.Fragment,{children:[i&&e.jsxs(j,{variant:"text",className:"sn-a-btn-danger-text",onClick:()=>_(!0),disabled:k,children:["ÐÑклÑÑиÑÑ ",s.name]}),e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:d,disabled:k,children:"ÐÑмена"}),e.jsx(j,{variant:"primary",onClick:z,loading:k,disabled:!E,children:i?"СоÑ
ÑаниÑÑ":"ÐодклÑÑиÑÑ"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sn-a-grow"}),e.jsx(j,{variant:"quiet",onClick:d,children:"ÐакÑÑÑÑ"})]});let le=0;const be=x?i?m.url:void 0:(i==null?void 0:i.status)==="connected"?i.enabledEvents.includes("registration.synced")?"ÑегиÑÑÑаÑии вÑгÑÑжаÑÑÑÑ":"вÑгÑÑзка вÑклÑÑена":void 0;return e.jsxs(ue,{item:s,status:Je(i),subtitle:be,onClose:d,footer:je,busy:k,children:[!n&&e.jsx(he,{}),e.jsxs(K,{n:++le,done:(i==null?void 0:i.status)==="connected",title:u.howtoTitle,children:[e.jsx(ye,{items:u.howto}),u.fields.map(p=>{const T=!!(i&&p.secret&&m[p.key]);return e.jsx(ee,{label:p.label,htmlFor:`cfg-${p.key}`,hint:T?e.jsxs(e.Fragment,{children:["СоÑ
ÑанÑн: ",e.jsx("span",{className:"sn-mono",children:m[p.key]}),".",n?" ÐпиÑиÑе новÑй, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ.":""]}):p.hint,children:p.secret&&p.key!=="webhookUrl"&&p.key!=="url"?e.jsx(we,{id:`cfg-${p.key}`,value:b[p.key]||"",placeholder:T?"â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢":p.placeholder,autoComplete:"off",spellCheck:!1,disabled:!n||k,onChange:S=>H(p.key,S.target.value)}):e.jsx(xe,{id:`cfg-${p.key}`,value:b[p.key]||"",placeholder:T?m[p.key]:p.placeholder,autoComplete:"off",spellCheck:!1,inputMode:/url/i.test(p.key)?"url":void 0,disabled:!n||k,onChange:S=>H(p.key,S.target.value)})},p.key)})]}),x&&e.jsxs(K,{n:++le,title:"ÐодпиÑÑ Ð·Ð°Ð¿ÑоÑов",children:[e.jsx(ee,{label:"СекÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи",htmlFor:"cfg-signingSecret",hint:i&&m.signingSecret?`СекÑÐµÑ ÑоÑ
ÑанÑн.${n?" ÐпиÑиÑе или ÑгенеÑиÑÑйÑе новÑй, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ.":""}`:"ÐеобÑзаÑелÑно, но лÑÑÑе задаÑÑ: Ñак Ð²Ñ Ð¾ÑлиÑиÑе запÑоÑÑ SNICH Ð¾Ñ ÑÑжиÑ
.",children:e.jsxs("div",{className:"sn-a-inline-actions",style:{flexWrap:"nowrap"},children:[e.jsx(xe,{id:"cfg-signingSecret",className:"sn-mono",style:{flex:1,minWidth:0},value:b.signingSecret||"",placeholder:i&&m.signingSecret?"â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢â¢":"СекÑÐµÑ Ð´Ð»Ñ HMAC-подпиÑи",autoComplete:"off",spellCheck:!1,disabled:!n||k,onChange:p=>H("signingSecret",p.target.value)}),n&&e.jsx(j,{variant:"quiet",onClick:()=>H("signingSecret",As()),disabled:k,children:"СгенеÑиÑоваÑÑ"})]})}),e.jsxs("p",{className:"sn-a-muted",children:["Ðаголовок ",e.jsx("span",{className:"sn-mono",children:"X-Snich-Signature: sha256=â¦"})," â ÑÑо HMAC-SHA256 ÑекÑеÑа Ð¾Ñ ÑÑÑоки ",e.jsx("span",{className:"sn-mono",children:"«X-Snich-Timestamp.Ñело»"}),".",n?" СекÑÐµÑ Ð²Ð¸Ð´ÐµÐ½ ÑолÑко до ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ â ÑкопиÑÑйÑе его в Ñвой ÑеÑвиÑ.":""]})]}),e.jsxs(K,{n:++le,title:x?"СобÑÑиÑ":"ЧÑо вÑгÑÑжаÑÑ",children:[x?e.jsx("div",{className:"sn-a-events",children:Us.map(p=>e.jsx(ts,{checked:v.includes(p.value),disabled:!n||k,onChange:T=>I(S=>T?[...S,p.value]:S.filter(G=>G!==p.value)),label:e.jsxs(e.Fragment,{children:[p.label," ",e.jsx("span",{className:"sn-mono sn-a-muted",children:p.value})]}),description:p.description},p.value))}
1):e.jsx(ge,{title:u.syncTitle,description:u.syncDescription,checked:v.includes("registration.synced"),disabled:!n||k,onChange:p=>I(T=>p?Array.from(new Set([...T,"registration.synced"])):T.filter(S=>S!=="registration.synced"))}),F&&e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),children:F})]}),i&&e.jsxs(W,{title:"СвÑÐ·Ñ Ð¸ жÑÑнал",aside:e.jsx(j,{variant:"quiet",size:"sm",icon:x?e.jsx(ms,{className:"sn-i sn-i-16"}):e.jsx(fe,{className:"sn-i sn-i-16"}),loading:f,onClick:V,children:x?"ТеÑÑовÑй запÑоÑ":"ÐÑовеÑиÑÑ ÑвÑзÑ"}),children:[N?e.jsx(A,{tone:N.success?"green":"red",icon:N.success?e.jsx(ze,{className:"sn-i sn-i-16"}):e.jsx(q,{className:"sn-i sn-i-16"}),children:N.success?N.message:pe(N.message)}):i.status==="error"?e.jsx(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),title:"ÐоÑледнÑÑ Ð¿ÑовеÑка не пÑоÑла",children:pe(i.lastError)}):i.lastSyncAt?e.jsxs("p",{className:"sn-a-muted",children:["ÐоÑледний ÑÑпеÑнÑй обмен: ",Ge(i.lastSyncAt),"."]}):null,e.jsx(ls,{entries:J,empty:"СобÑÑий пока не бÑло."})]}),!i&&!x&&e.jsx(W,{children:e.jsx(A,{icon:e.jsx(Ne,{className:"sn-i sn-i-16"}),children:"ÐÑгÑÑжаÑÑÑÑ ÑолÑко новÑе ÑегиÑÑÑаÑии â Ñе, ÑÑо поÑвÑÑÑÑ Ð¿Ð¾Ñле подклÑÑениÑ."})}),e.jsx(se,{open:w,onClose:()=>_(!1),onConfirm:re,title:`ÐÑклÑÑиÑÑ ${s.name}?`,description:x?"SNICH пеÑеÑÑÐ°Ð½ÐµÑ Ð¾ÑпÑавлÑÑÑ ÑобÑÑÐ¸Ñ Ð½Ð° ÑÑÐ¾Ñ Ð°Ð´ÑеÑ.":"ÐовÑе ÑегиÑÑÑаÑии пеÑеÑÑанÑÑ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÑÑ Ð² CRM. То, ÑÑо Ñже вÑгÑÑжено, оÑÑанеÑÑÑ Ð² CRM.",confirmLabel:"ÐÑклÑÑиÑÑ"})]})}const Me=[{value:"all",label:"ÐÑе"},{value:"platforms",label:"ÐлоÑадки"},{value:"calendars",label:"ÐалендаÑи"},{value:"data",label:"ÐаннÑе"}];function Is({item:s,destinations:a,connections:n,canManage:t,to:d}){const c=ys(s,a,n);return e.jsxs(De,{className:"sn-a-int-card",children:[e.jsxs("div",{className:"sn-a-int-top",children:[e.jsx("span",{className:"sn-a-glyph","aria-hidden":"true",children:s.glyph}),e.jsxs("span",{style:{minWidth:0},children:[e.jsx("b",{children:s.name}),e.jsx("small",{children:s.categoryLabel})]})]}),e.jsx("p",{className:c.tone==="red"?"sn-a-int-desc is-error":"sn-a-int-desc",children:c.detail||s.description}),e.jsxs("div",{className:"sn-a-int-foot",children:[c.connected?e.jsx(as,{tone:c.tone,icon:c.tone==="green"?e.jsx(hs,{className:"sn-i sn-i-14"}):c.tone==="red"?e.jsx(q,{className:"sn-i sn-i-14"}):void 0,children:c.label}):e.jsx("span",{className:"sn-a-muted",children:c.label}),e.jsx("span",{style:{flex:1}}),c.connected||!t?e.jsx(j,{variant:"quiet",size:"sm",to:d,"aria-label":`${t?"ÐаÑÑÑоиÑÑ":"ÐÑкÑÑÑÑ"} ${s.name}`,children:t?"ÐаÑÑÑоиÑÑ":"ÐÑкÑÑÑÑ"}):e.jsx(j,{variant:"soft",size:"sm",to:d,icon:e.jsx(Se,{className:"sn-i sn-i-16"}),"aria-label":`${s.cta} ${s.name}`,children:s.cta})]})]})}function Ys(){const{provider:s}=Qe(),a=Ze(),[n,t]=qe(),{workspace:d,canManage:c}=is(),{destinations:h,connections:u,youtube:x,error:i,reload:m,loading:o}=gs(d==null?void 0:d.id),l=Me.some(f=>f.value===n.get("type"))?n.get("type"):"all",b=l==="all"?"":`?type=${l}`,C=f=>{const U=new URLSearchParams(n);f==="all"?U.delete("type"):U.set("type",f),t(U,{replace:!0})},v=ps(s);if(s&&!v)return e.jsx(es,{to:ve.settingsIntegrations(),replace:!0});const I=()=>a(`${ve.settingsIntegrations()}${b}`),k=Ve.filter(f=>l==="all"||f.category===l);let r=null;if(v&&d&&h&&u&&x){const f={item:v,workspaceId:d.id,canManage:c,onClose:I,reload:m};switch(v.key){case"youtube":r=e.jsx(Cs,{...f,destinations:h,youtube:x},v.key);break;case"vk":r=e.jsx(js,{...f,destinations:h,youtube:x},v.key);break;case"telegram":r=e.jsx(bs,{...f,destinations:h,youtube:x},v.key);break;case"rtmp":r=e.jsx(Ts,{...f,destinations:h,youtube:x},v.key);break;case"google_calendar":case"yandex_calendar":r=e.jsx(Fs,{...f,connections:u},v.key);break;default:r=e.jsx(Ps,{...f,connections:u},v.key)}}return e.jsxs(e.Fragment,{children:[e.jsx(rs,{title:"ÐнÑегÑаÑии",subtitle:"ÐлоÑадки Ð´Ð»Ñ ÑÑанÑлÑÑий, календаÑи и вÑгÑÑзка ÑегиÑÑÑаÑий",actions:e.jsx(Be,{ariaLabel:"Тип инÑегÑаÑии",value:l,onCh
1ange:C,options:Me})}),!c&&e.jsx(A,{icon:e.jsx(He,{className:"sn-i sn-i-16"}),children:"ÐодклÑÑаÑÑ Ð¸ менÑÑÑ Ð¸Ð½ÑегÑаÑии могÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸ админиÑÑÑаÑоÑÑ Ð¿ÑоÑÑÑанÑÑва."}),i&&e.jsxs(A,{tone:"red",icon:e.jsx(q,{className:"sn-i sn-i-16"}),title:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¸Ð½ÑегÑаÑии",children:[i," ",e.jsx(j,{variant:"text",size:"xs",onClick:()=>void m(),children:"ÐовÑоÑиÑÑ"})]}),e.jsx("div",{className:"sn-a-int-grid",children:o||!h||!u?k.map(f=>e.jsxs(De,{className:"sn-a-int-card","aria-busy":"true",children:[e.jsxs("div",{className:"sn-a-int-top",children:[e.jsx("span",{className:"sn-a-glyph","aria-hidden":"true",children:f.glyph}),e.jsxs("span",{style:{minWidth:0},children:[e.jsx("b",{children:f.name}),e.jsx("small",{children:f.categoryLabel})]})]}),e.jsx(Oe,{height:14,width:"90%"}),e.jsx(Oe,{height:14,width:"60%"})]},f.key)):k.map(f=>e.jsx(Is,{item:f,destinations:h,connections:u,canManage:c,to:`${ve.settingsIntegration(f.key)}${b}`},f.key))}),r]})}function yt(){return e.jsx(Ys,{})}export{Ys as IntegrationsScreen,yt 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.