PageSourceSearch

https://ahhu.ru/_next/static/chunks/44-12b8ff803d0dda77.js

js ahhu.ru collected 2026-09-24 15:11:28 UTC 26,693 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44],{10044:(e,t,l)=>{l.d(t,{MainTravelerTestimonialsSection:()=>H});var a,r=l(95155),n=l(12115),s=l(52619),i=l.n(s),o=l(15239),d=l(27937),c=l(90368);function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var a in l)({}).hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e}).apply(null,arguments)}let m=function(e){return n.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 10 11"},e),a||(a=n.createElement("path",{fill:"currentColor",d:"M0 2.57C0 .688 2.016-.69 3.76.366l4.214 2.551c1.635.99 1.635 3.418 0 4.407L3.76 9.874C2.016 10.932 0 9.555 0 7.672z"})))};var x=l(98875);let f=e=>{if(null===e||!Number.isFinite(e)||e<0)return"0:00";let t=Math.round(e),l=Math.floor(t/60);return"".concat(l,":").concat(String(t%60).padStart(2,"0"))};var p=l(87531),h=l(65229),v=l(85921),b=l(20562),w=l(47650),g=l(35297);let y=e=>{let{isOpen:t,onClose:l,videos:a,activeIndex:s,onSelectVideo:i}=e,o=(0,n.useRef)(null),[u,m]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key?l():"ArrowLeft"===e.key?i((s-1+a.length)%a.length):"ArrowRight"===e.key&&i((s+1)%a.length)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,l,s,a.length,i]),(0,n.useEffect)(()=>{t&&m(!1)},[t]),(0,n.useEffect)(()=>{if(!t)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[t]),(0,n.useEffect)(()=>{var e;t&&(null==(e=o.current)||e.scrollTo({top:0,behavior:"smooth"}))},[s,t]),!t||"undefined"==typeof document)return null;let x=a[s];return(0,w.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-neutral-900/70 p-4 md:p-10",onClick:l,children:[a.length>1&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button","aria-label":"Предыдущее видео",onClick:e=>{e.stopPropagation(),i((s-1+a.length)%a.length)},className:"absolute left-6 top-1/2 z-10 hidden size-12 -translate-y-1/2 items-center justify-center rounded-full bg-neutral-100 text-neutral-900 shadow-lg transition-colors hover:bg-white md:flex",children:(0,r.jsx)(c.A,{className:"size-6"})}),(0,r.jsx)("button",{type:"button","aria-label":"Следующее видео",onClick:e=>{e.stopPropagation(),i((s+1)%a.length)},className:"absolute right-6 top-1/2 z-10 hidden size-12 -translate-y-1/2 items-center justify-center rounded-full bg-neutral-100 text-neutral-900 shadow-lg transition-colors hover:bg-white md:flex",children:(0,r.jsx)(d.A,{className:"size-6"})})]}),(0,r.jsxs)("div",{className:"relative flex h-full max-h-[45rem] w-full max-w-[81.25rem] flex-col overflow-hidden rounded-3xl bg-neutral-100 shadow-[0_8px_40px_0_rgba(0,0,0,0.15)]",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-6 pb-5 pt-7 md:px-10",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("p",{className:"font-inter text-xl font-semibold text-neutral-900 md:text-2xl",children:"Видео путешественников"}),(0,r.jsx)("p",{className:"font-inter text-base text-neutral-600 md:text-lg",children:a.length})]}),(0,r.jsx)("button",{type:"button","aria-label":"Закрыть",onClick:l,className:"flex size-10 shrink-0 items-center justify-center rounded-full text-neutral-800 transition-colors hover:bg-neutral-300",children:(0,r.jsx)(h.A,{className:"size-6"})})]}),(0,r.jsxs)("div",{ref:o,onScroll:()=>{var e,t;m((null!=(t=null==(e=o.current)?void 0:e.scrollTop)?t:0)>200)},className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 pb-10 md:px-10",children:[x&&(0,r.jsx)("div",{className:"flex max-h-[28rem] w-full shrink-0 items-center justify-center overflow-hidden rounded-2xl bg-neutral-600",children:(0,r.jsx)(g.L,{videoUrl:x.videoUrl,title:x.title,fit:"content"})}),(0,r.jsx)("div",{className:"flex flex-col gap-3 md:grid md:grid-cols-3 lg:grid-cols-6",children:a.map((e,t)=>(0,r.jsxs)("button",{type:"button","data-index":t,onClick:()=>i(t),disabled:!e.videoUrl,"aria-label":"Смотреть видео: ".concat(e.title),"aria-current":t===s,className:(0,p.cn)("relative h-[16.25rem] shrink-0 overflow-hidden rounded-xl bg-neutral-600 disabled:cursor-not-allowed",t===s&&"ring-2 ring-primary-400"),children:[e.poster?(0,r.jsx)("img",{src:e.poster,alt:"",className:"absolute inset-0 size-full object-cover"}):e.videoUrl&&(0,r.jsx)("video",{src:e.videoUrl,preload:"metadata",muted:!0,playsInl
1ine:!0,className:"absolute inset-0 size-full object-cover"}),(0,r.jsx)("span",{className:"absolute left-1/2 top-1/2 flex size-12 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-black/45",children:(0,r.jsx)(v.A,{className:"size-4 fill-white text-white"})}),(0,r.jsx)("span",{className:"absolute right-2 top-2 rounded-md bg-black/55 px-2 py-1 text-xs font-medium text-white",children:f(e.durationSeconds)})]},e.id))})]}),(0,r.jsx)("button",{type:"button","aria-label":"Наверх",onClick:()=>{var e;null==(e=o.current)||e.scrollTo({top:0,behavior:"smooth"})},className:(0,p.cn)("absolute bottom-6 left-6 flex size-[3.25rem] items-center justify-center rounded-full bg-primary-400 shadow-[0_4px_16px_0_rgba(0,0,0,0.15)] transition-opacity md:left-10",u?"opacity-100":"pointer-events-none opacity-0"),children:(0,r.jsx)(b.A,{className:"size-6 text-neutral-900"})})]})]}),document.body)},j=e=>({...(e=>({id:String(e.id),title:e.author_name||"Видеоотзыв",videoUrl:e.file||""}))(e),poster:e.poster,durationSeconds:e.duration_seconds}),N=e=>{let{videos:t,variant:l="feed"}=e,a=(0,n.useRef)(null),[s,i]=(0,n.useState)(0),[u,h]=(0,n.useState)(!1);if(0===t.length)return null;let v=t.filter(e=>!!e.file),b=e=>{var t;null==(t=a.current)||t.scrollBy({left:"next"===e?320:-320,behavior:"smooth"})};return(0,r.jsxs)("div",{className:"flex w-full flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex w-full items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:(0,p.cn)("entity"===l?"text-[1.125rem]/[1.5rem] font-medium text-neutral-900":"text-xl font-semibold leading-6 tracking-[-0.3125px] text-neutral-900"),children:"Видеоотзывы"}),(0,r.jsx)("span",{className:(0,p.cn)("entity"===l?"text-[1.125rem]/[1.5rem] font-medium text-neutral-600":"text-xl font-semibold leading-6 tracking-[-0.3125px] text-neutral-500"),children:t.length})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>h(!0),className:(0,p.cn)("flex items-center gap-1 text-base font-semibold leading-6 tracking-[-0.3125px] text-neutral-600","entity"===l&&"text-[.875rem]/[1.5rem]"),children:["Смотреть все",(0,r.jsx)(d.A,{className:"size-4"})]})]}),(0,r.jsxs)("div",{className:(0,p.cn)("relative w-full","entity"===l&&"md:mx-[.9375rem]"),children:[(0,r.jsx)("div",{ref:a,className:"scrollbar-hide flex w-full gap-2 overflow-x-auto",children:t.map(e=>{var t,a,n;return(0,r.jsxs)("button",{type:"button",onClick:()=>(e=>{let t=v.findIndex(t=>t.id===e.id);-1!==t&&(i(t),h(!0))})(e),disabled:!e.file,"aria-label":"Смотреть видеоотзыв: ".concat(e.author_name||"без имени"),className:(0,p.cn)("relative flex h-[15.1875rem] w-[11.25rem] shrink-0 flex-col justify-between overflow-hidden rounded-xl p-4 text-left disabled:cursor-not-allowed","entity"===l&&"h-[10.125rem] w-[7.5rem] p-[.625rem]"),children:[e.poster?(0,r.jsx)(o.default,{src:e.poster,alt:"",fill:!0,sizes:"180px",className:"absolute inset-0 object-cover"}):e.file?(0,r.jsx)("video",{src:e.file,preload:"metadata",muted:!0,playsInline:!0,className:"absolute inset-0 size-full object-cover"}):(0,r.jsx)("div",{className:"absolute inset-0 bg-neutral-700"}),(0,r.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0) 35%), linear-gradient(180deg, rgba(0,0,0,0) 25%, rgba(0,0,0,0.4) 100%)"}}),(0,r.jsxs)("div",{className:"relative flex w-full items-center justify-between",children:[(0,r.jsx)("span",{className:(0,p.cn)("flex size-8 items-center justify-center rounded-2xl bg-white/20 backdrop-blur-[17px]","entity"===l&&"size-[1.3125rem]"),children:(0,r.jsx)(m,{className:(0,p.cn)("size-[.625rem] text-white","entity"===l&&"size-[.375rem]")})}),(0,r.jsx)("span",{className:(0,p.cn)("text-sm font-semibold leading-4 text-white","entity"===l&&"text-[.5625rem]"),children:f(e.duration_seconds)})]}),(0,r.jsxs)("div",{className:(0,p.cn)("relative flex items-center gap-2","entity"===l&&"gap-[.3125rem]"),children:[(0,r.jsx)("span",{className:(0,p.cn)("relative size-8 shrink-0 overflow-hidden rounded-2xl","entity"===l&&"size-[1.3125rem]"),children:(0,r.jsx)(o.default,{src:(null==(t=e.author)?void 0:t.avatar)||x,alt:"",fill:!0,sizes:"32px",className:"object-cover"})}),(0,r.jsxs)("div",{className:(0,p.cn)("flex min-w-0 flex-col gap-1 text-white","entity"===l&&"gap-[.125rem]"),children:[(0,r.jsx)("span",{className:(0,p.cn)("truncate text-sm font-semibold leading-4","entity"===l&&"text-[.5625rem]/[.6875rem]"),children:(null==(a=e.author)?void 0:a.first_name)||e.author_name}),(null==(n=e.author)?void 0:n.location)&&(0,r.jsx)("span",{className:(0,p.cn)("truncate text-xs leading-[15px]","entity"===l&&"text-[.5rem]/[.625rem]"),children:e.author.location})]})]})]},e.id)})}),t.length>1&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button","aria-label":"Прокрутить видео наÐ
1·Ð°Ð´",onClick:()=>b("prev"),className:"absolute -left-3 top-1/2 flex size-6 -translate-y-1/2 items-center justify-center rounded-xl border-[0.462px] border-neutral-400 bg-neutral-200 drop-shadow-[0_0_1px_rgba(0,0,0,0.15)]",children:(0,r.jsx)(c.A,{className:"size-3.5 text-neutral-900"})}),(0,r.jsx)("button",{type:"button","aria-label":"Прокрутить видео вперёд",onClick:()=>b("next"),className:"absolute -right-3 top-1/2 flex size-6 -translate-y-1/2 items-center justify-center rounded-xl border-[0.462px] border-neutral-400 bg-neutral-200 drop-shadow-[0_0_1px_rgba(0,0,0,0.15)]",children:(0,r.jsx)(d.A,{className:"size-3.5 text-neutral-900"})})]})]}),(0,r.jsx)(y,{isOpen:u,onClose:()=>h(!1),videos:v.map(j),activeIndex:s,onSelectVideo:i})]})};var k=l(6680),z=l(14617),_=l(91842),C=l(26758);let E=async(e,t)=>await C.S.GET("/api/reviews/feed/",{params:{query:{page:null==e?void 0:e.page,page_size:null==e?void 0:e.pageSize}},...t});var S=l(90790),T=l(25610);let U=async(e,t,l,a)=>await C.S.GET("/api/tours/{id}/video-reviews/",{params:{path:{id:e},query:{page:t,page_size:l}},...a}),R=async(e,t,l,a)=>await C.S.GET("/api/excursions/{id}/video-reviews/",{params:{path:{id:e},query:{page:t,page_size:l}},...a});var A=l(60928);let L=async(e,t,l,a)=>await C.S.GET("/api/video-reviews/",{params:{query:{ambassador_id:e,page:t,page_size:l}},...a});var F=l(12710),P=l(82602),I=l(860),q=l(95705),G=l(23763),O=l(18720);let B=e=>{let{isOpen:t,onClose:l,initialReviews:a,hasInitialNextPage:s,totalCount:i,onLoadMore:o}=e,[d,c]=(0,n.useState)(a),[u,m]=(0,n.useState)(1),[x,f]=(0,n.useState)(s),[p,v]=(0,n.use
1State)(!1);if((0,n.useEffect)(()=>{t&&(c(a),m(1),f(s))},[t,a,s]),(0,n.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&l()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,l]),(0,n.useEffect)(()=>{if(!t)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[t]),!t||"undefined"==typeof document)return null;let b=async()=>{if(p||!x)return;let e=u+1;v(!0);try{let t=await o(e);c(e=>[...e,...t.items]),m(e),f(t.hasNext)}catch(e){O.oR.error("Не удалось загрузить отзывы, попробуйте ещё раз")}finally{v(!1)}};return(0,w.createPortal)((0,r.jsx)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-neutral-900/70 p-4 md:p-10",onClick:l,children:(0,r.jsxs)("div",{className:"relative flex h-full max-h-[45rem] w-full max-w-[81.25rem] flex-col overflow-hidden rounded-3xl bg-neutral-100 shadow-[0_8px_40px_0_rgba(0,0,0,0.15)]",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-6 pb-5 pt-7 md:px-10",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("p",{className:"font-inter text-[1rem] font-semibold text-neutral-900 md:text-2xl",children:"Отзывы путешественников"}),(0,r.jsx)("p",{className:"font-inter text-base text-neutral-600 md:text-lg",children:i})]}),(0,r.jsx)("button",{type:"button","aria-label":"Закрыть",onClick:l,className:"flex size-10 shrink-0 items-center justify-center rounded-full text-neutral-800 transition-colors hover:bg-neutral-300",children:(0,r.jsx)(h.A,{className:"size-6"})})]}),(0,r.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 pb-10 md:px-10",children:[(0,r.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:d.map(e=>(0,r.jsx)(G.v,{review:e},"".concat(e.reviewType,"-").concat(e.id)))}),x&&(0,r.jsx)("button",{type:"button",onClick:b,disabled:p,className:"flex h-[3.25rem] w-full shrink-0 items-center justify-center self-center rounded-xl bg-neutral-300 px-10 text-base font-medium text-neutral-900 transition-colors hover:bg-neutral-400 disabled:opacity-60 md:w-auto",children:p?"Загрузка…":"Показать ещё отзывы"})]})]})}),document.body)};var M=l(11746);let Z={tour:"Отзывов на этот тур пока нет",excursion:"Отзывов на эту экскурсию пока нет",ambassador:"Отзывов о блогере пока нет",operator:"Отзывов об этом организаторе пока нет"},W={reviews:[],count:0,hasNext:!1,breakdown:void 0},H=e=>{var t,l,a,s,o,d,c,u,m;let x,{titleLabel:f}=e,h="entity"===e.variant,v="entity"===e.variant?e.entityId:void 0,b="entity"===e.variant?e.entityType:void 0,w="operator"===b,g="entity"===e.variant&&"operator"===e.entityType&&!!e.wideLayout,y="excursions"===("entity"===e.variant&&"operator"===e.entityType&&null!=(d=e.reviewSource)?d:"tours")?P.Q:F.e,j="entity"===e.variant&&("operator"===e.entityType||"ambassador"===e.entityType)?e.allReviewsHref:void 0,[C,O]=(0,n.useState)(!1),[H,X]=(0,n.useState)(!1),[Q,V]=(0,n.useState)(()=>(e=>{var t,l,a,r;let n;if("entity"!==e.variant)return W;if("ambassador"===e.entityType)n=(null!=(t=e.initialReviews)?t:[]).map(M.Uj);else if("operator"===e.entityType)n=(null!=(l=e.initialReviews)?l:[]).map(M.Uw);else{let t=e.entityType;n=(null!=(a=e.initialReviews)?a:[]).map(e=>(0,M.eZ)(e,t))}let s=null!=(r=e.initialReviewsCount)?r:n.length;return{reviews:n,count:s,hasNext:s>n.length,breakdown:e.initialRatingByReviews}}
1)(e)),[D,J]=(0,n.useState)([]),K=(0,n.useCallback)(async()=>{if(v&&b)try{if("ambassador"===b){let[e,t]=await Promise.all([(0,A.X)(v,1,20),L(v,1,6)]);if(!e.error&&e.data){let t=e.data;V(e=>({reviews:t.results.map(M.Uj),count:t.count,hasNext:!!t.next,breakdown:e.breakdown}))}!t.error&&t.data&&J(t.data.results);return}if("operator"===b){let e=await y({id:v,page:1,pageSize:20});if(!e.error&&e.data){let t=e.data;V({reviews:t.results.map(M.Uw),count:t.count,hasNext:!!t.next,breakdown:(0,M.B7)(t.rating_by_reviews)})}return}let[e,t]=await Promise.all(["tour"===b?(0,S.a)(v,1,20):(0,T.e)(v,1,20),"tour"===b?U(v,1,6):R(v,1,6)]);if(!e.error&&e.data){let t=e.data;V({reviews:t.results.map(e=>(0,M.eZ)(e,b)),count:t.count,hasNext:!!t.next,breakdown:(0,M.B7)(t.rating_by_reviews)})}!t.error&&t.data&&J(t.data.results)}catch(e){}},[v,b,y]);if((0,n.useEffect)(()=>{K()},[K]),"entity"===e.variant&&!v)return null;let Y="feed"===e.variant?(null!=(c=null==(t=e.reviewsFeed)?void 0:t.results)?c:[]).map(M.Uw):Q.reviews,$=h?2:4,ee=Y.slice(0,$),et="feed"===e.variant?null!=(u=null==(l=e.reviewsFeed)?void 0:l.total_count)?u:0:Q.count,el=et>$,ea="feed"===e.variant?null==(a=e.reviewsFeed)?void 0:a.average_rating:Number(e.rating),er="number"!=typeof ea||Number.isNaN(ea)?0:ea,en="entity"===e.variant?Z[e.entityType]:"Отзывов пока нет",es=(0,q.t)("feed"===e.variant?null==(s=e.reviewsFeed)?void 0:s.rating_by_reviews:Q.breakdown),ei="feed"===e.variant?null!=(m=e.videoReviews)?m:[]:D,eo="feed"===e.variant?!!(null==(o=e.reviewsFeed)?void 0:o.next):Q.hasNext,ed="entity"===e.variant&&!!e.isPreview;"entity"===e.variant&&("operator"===e.entityType?x=e.reviewTarget:v&&(x={entityType:e.entityType,entityId:v}));let ec="entity"===e.variant&&("operator"!==e.entityType||!!x),eu=async t=>{if("feed"===e.variant){let e=await E({page:t,pageSize:20});if(e.error||!e.data)throw Error("Failed to load reviews feed");return{items:e.data.results.map(M.Uw),hasNext:!!e.data.next}}if(!v||!b)return{items:[],hasNext:!1};if("ambassador"===b){let e=await (0,A.X)(v,t,20);if(e.error||!e.data)throw Error("Failed to load reviews");return{items:e.data.results.map(M.Uj),hasNext:!!e.data.next}}if("operator"===b){let e=await y({id:v,page:t,pageSize:20});if(e.error||!e.data)throw Error("Failed to load reviews");return{items:e.data.results.map(M.Uw),hasNext:!!e.data.next}}let l="tour"===b?await (0,S.a)(v,t,20):await (0,T.e)(v,t,20);if(l.error||!l.data)throw Error("Failed to load reviews");return{items:l.data.results.map(e=>(0,M.eZ)(e,b)),hasNext:!!l.data.next}};return(0,r.jsxs)("section",{className:(0,p.cn)(h?"flex flex-col gap-6":"w-full py-0 px-4 md:pb-[3.75rem]"),children:[(0,r.jsx)("h2",{className:(0,p.cn)(h?"text-2xl font-medium leading-[1.1] tracking-[-0.24px] text-neutral-900":"text-left max-w-[70rem] mx-auto mb-4 md:mb-[3rem] md:px-[3.1875rem] font-inter text-xl font-semibold leading-[1.5] tracking-[-0.0281rem] text-neutral-900 md:text-center md:font-days md:text-[3.5rem]/[0.95] md:font-normal md:tracking-[-0.04em] md:text-neutral-800"),children:f}),(0,r.jsxs)("div",{className:(0,p.cn)(h?"flex flex-col gap-4 md:gap-[2.25rem]":"mx-auto flex w-full max-w-[70rem] flex-col gap-6 px-4 md:gap-8 md:px-0"),children:[(0,r.jsxs)("div",{className:(0,p.cn)("flex flex-col items-center gap-8 rounded-xl bg-neutral-300 p-6 md:flex-row md:items-center md:justify-between md:p-8",h&&"md:p-0 bg-transparent md:gap-8"),children:[(0,r.jsxs)("div",{className:(0,p.cn)("flex w-full flex-col items-center gap-6 md:w-auto md:flex-row md:gap-[2.1875rem]",h&&"md:gap-[1.5rem]"),children:[(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,r.jsx)("p",{className:"text-[2.75rem] font-medium leading-[1.1] text-neutral-900 md:text-[2.75rem] md:leading-[2rem] md:tracking-[-0.56px]",children:er.toFixed(2)}),(0,r.jsx)(I.z,{rating:er,className:"size-3.5"}),(0,r.jsxs)("p",{className:"text-base font-semibold leading-6 text-neutral-900",children:[et," ",(0,k.U)(et,["отзыв","отзыва","отзывов"])]})]}),!h&&(0,r.jsx)("div",{className:"h-px w-full shrink-0 bg-neutral-400 md:h-auto md:w-px md:self-stretch"}),(0,r.jsx)(q.Z,{breakdown:es,className:h?"md:w-[11.375rem]":void 0})]}),(0,r.jsxs)("div",{className:(0,p.cn)("flex w-full flex-col items-center gap-3 md:w-[13.875rem]",h&&"md:w-full",w&&"md:max-w-[20rem]"),children:[(0,r.jsxs)("div",{className:"flex w-full flex-col gap-2",children:[ec?(0,r.jsx)(z.F,{className:"w-full",replaceChild:(0,r.jsx)("span",{className:"flex h-11 w-full items-center justify-center rounded-xl bg-primary-400 px-4 text-sm font-medium leading-[1.1] tracking-[-0.42px] text-neutral-900 transition-colors hover:bg-primary-300",children:"Написать отзыв"}),onLogin:()=>X(!0),children:(0,r.jsx)("button",{type:"button",onClick:ed?void 0:()=>X(!0),className:"flex h-11 w-full items-center justify-center rounded-xl bg-primary-400 px-4 text-sm font-medium leading-[1.1] tracking-[-0.42px] text-neutral-900 transition-colors hover:bg-primary-300",children:"Написать отзыв"})}):null,j?(0,r.jsxs)(i(),{href:j,className:(0,p.cn)("flex h-10 w-full items-center justify-center rounded-xl bg-neutral-100 px-4 text-sm font-medium leading-[1.1] text-neutral-900 transition-colors hover:bg-white",h&&"bg-neutral-300 hover:bg-neutral-300/30"),children:["Все ",et," ",(0,k.U)(et,["отзыв","отзыва","отзывов"])]}):(0,r.jsxs)("button",{type:"button",onClick:et>0?()=>O(!0):void 0,disabled:0===et,className:(0,p.cn)("flex h-10 w-full items-center justify-center rounded-xl bg-neutral-100 px-4 text-sm font-medium leading-[1.1] text-neutral-900 transition-colors hover:bg-white",h&&"bg-neutral-300 hover:bg-neutral-300/30",0===et&&"curs
1or-not-allowed opacity-50"),children:["Все ",et," ",(0,k.U)(et,["отзыв","отзыва","отзывов"])]})]}),ec&&(0,r.jsx)("p",{className:"text-center text-xs font-normal leading-[1.1] tracking-[-0.12px] text-neutral-600",children:"Оставить отзыв можно после поездки"})]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(N,{videos:ei,variant:h?"entity":"feed"}),ee.length>0?(0,r.jsx)("div",{className:(0,p.cn)("grid grid-cols-1 gap-4 md:grid-cols-2",h&&(g?"mt-[.5rem]":"flex flex-col gap-4 mt-[.5rem]")),children:ee.map(e=>(0,r.jsx)(G.v,{review:e,variant:h?"entity":"feed"},"".concat(e.reviewType,"-").concat(e.id)))}):(0,r.jsx)("div",{className:"rounded-xl bg-neutral-300 p-6 text-center text-base leading-[1.3] tracking-[-0.16px] text-neutral-600",children:en})]}),el&&(j?(0,r.jsx)(i(),{href:j,className:(0,p.cn)("flex h-[3.25rem] w-full items-center justify-center self-center rounded-xl bg-neutral-300 px-10 text-base font-medium text-neutral-900 transition-colors hover:bg-neutral-400 md:w-auto",h&&"h-[2.75rem] w-full px-4 text-sm"),children:h?"Показать ещё":"Показать ещё отзывы"}):(0,r.jsx)("button",{type:"button",onClick:()=>O(!0),className:(0,p.cn)("flex h-[3.25rem] w-full items-center justify-center self-center rounded-xl bg-neutral-300 px-10 text-base font-medium text-neutral-900 transition-colors hover:bg-neutral-400 md:w-auto",h&&"h-[2.75rem] w-full px-4 text-sm"),children:h?"Показать ещё":"Показать ещё отзывы"}))]}),(0,r.jsx)(B,{isOpen:C,onClose:()=>O(!1),initialReviews:Y,hasInitialNextPage:eo,totalCount:et,onLoadMore:eu}),ec&&x&&(0,r.jsx)(_.e,{tourId:x.entityId,entityType:x.entityType,isOpen:H,onClose:()=>X(!1),onReviewSubmitted:K})]})}},25610:(e,t,l)=>{l.d(t,{e:()=>r});var a=l(26758);let r=async(e,t,l,r)=>await a.S.GET("/api/excursions/{id}/reviews/",{params:{path:{id:e},query:{page:t,page_size:l}},...r})},35297:(e,t,l)=>{l.d(t,{H:()=>u,L:()=>c});var a=l(95155),r=l(68072),n=l(65229),s=l(90368),i=l(27937),o=l(12115);let d=[".mp4",".webm",".ogg",".ogv",".mov",".m4v"],c=e=>{let{videoUrl:t,title:l,fit:r="fill"}=e,n=(0,o.useRef)(null);return((0,o.useEffect)(()=>{n.current&&(n.current.muted=!0)},[t]),(e=>{if(e.startsWith("blob:")||e.startsWith("data:video/"))return!0;try{let t=new URL(e).pathname.toLowerCase();return d.some(e=>t.endsWith(e))}catch(e){return!1}})(t))?(0,a.jsx)("video",{ref:n,className:"content"===r?"h-auto max-h-full w-auto max-w-full rounded-2xl bg-neutral-900 object-contain":"h-full w-full rounded-3xl bg-neutral-900 object-contain",src:t,controls:!0,autoPlay:!0,preload:"metadata",playsInline:!0,children:"Ваш браузер не поддерживает воспроизведение видео."},t):(e=>{try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch(e){return!1}})(t)?(0,a.jsx)("iframe",{className:"h-full w-full rounded-3xl bg-neutral-900",src:t,title:l,loading:"lazy",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0}):(0,a.jsx)("div",{className:"flex h-full w-full items-center justify-center rounded-3xl bg-neutral-300 px-6 text-center text-base text-neutral-600",children:"Не удалось загрузить видео."})},u=e=>{let{activeIndex:t,isOpen:l,setActiveIndex:d,setIsOpen:u,videos:m}=e,[x,f]=(0,r.A)({startIndex:t,align:"center",duration:100}),p=(0,o.useCallback)(()=>{f&&d(f.selectedScrollSnap())},[f,d]);(0,o.useEffect)(()=>{if(f)return f.on("select",p),()=>{f.off("select",p)}},[f,p]),(0,o.useEffect)(()=>{f&&f.selectedScrollSnap()!==t&&f.scrollTo(t)},[t,f]);let h=(0,o.useCallback)(()=>null==f?void 0:f.scrollPrev(),[f]),v=(0,o.useCallback)(()=>null==f?void 0:f.scrollNext(),[f]);return((0,o.useEffect)(()=>{if(!l)return;let e=e=>{"ArrowLeft"===e.key?h():"ArrowRight"===e.key?v():"Escape"===e.key&&u(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l,v,h,u]),(0,o.useEffect)(()=>{if(!l)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[l]),l&&0!==m.length)?(0,a.jsxs)("div",{className:"fixed inset-0 z-[60] flex flex-col items-center justify-center bg-black/80",onClick:()=>u(!1),children:[(0,a.jsx)("button",{type:"button","aria-label":"Закрыть видео",onClick:()=>u(!1),className:"absolute right-6 top-6 z-10 flex size-12 items-center justify-center rounded-full bg-black/30 text-white transition-colors hover:bg-black/50",children:(0,a.jsx)(n.A,{className:"size-6"})}),(0,a.jsxs)("div",{className:"relative w-full",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{ref:x,className:"w-full overflow-hidden",children:(0,a.jsx)("div",{className:"flex gap-2",children:m.map((e,t)=>(0,a.jsx)("div",{className:"relative h-[75vh] w-[78vw] shrink-0 first:ml-[11vw] last:mr-[11vw] md:w-[50vw] md:first:ml-[25vw] md:last:mr-[25vw]",onClick:()=>null==f?void 0:f.scrollTo(t),children:(0,a.jsx)(c,{videoUrl:e.videoUrl,title:e.title})},e.id))})}),m.length>1&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button","aria-label":"Предыдущее видео",onClick:h,className:"absolute left-6 top-1/2 z-10 flex size-12 -translate-y-1/2 items-center justify-center rounded-full bg-neutral-900 text-white transition-colors hover:bg-neutral-900/60",children:(0,a.jsx)(s.A,{className:"size-6"})}),(0,a.jsx)("button",{type:"button","aria-label":"Следующее видео",onClick:v,className:"absolute right-6 top-1/2 z-10 flex size-12 -translate-y-1/2 items-center justify-center rounded-full bg-neutral-900 text-white transition-colors hover:bg-neutral-900/60",children:(0,a.jsx)(i.A,{className:"size-6"})})]})]}),(0,a.jsx)("div",{className:"mt-4 flex items-center gap-2 rounded-full bg-black/30 px-4 py-2",children:(0,a.jsxs)("span",{className:"text-sm text-white",children:[t+1," из ",m.length]})})]}):null}},90790:(e,t,l)=>{l.d(t,{a:()=>r});var a=l(26758);let r=async(e,t,l,r)=>await a.S.GET("/api/tours/{id}/reviews/",{params:{path:{id:e},query:{page:t,page_size:l}},...r})}}]);

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.