PageSourceSearch

https://formclub.ru/assets/Uslugi-B-RegH3x.js

js formclub.ru collected 2026-10-05 20:02:16 UTC 20,594 bytes, 1 lines download raw bytes

1import{s as L,aH as S,w as X,x as Z,r as o,j as e,B as g,X as q,L as z,l as W,S as Q,H as J,k as Y,h as ee,n as se,p as ae}from"./index-DEnvHAhC.js";import{A as re,a as ce,b as ie,c as te}from"./accordion-D82UCKUI.js";import{S as le}from"./search-BWZAthGz.js";import{A as ne}from"./arrow-right-BH2d6dxv.js";import{d as oe}from"./deep-care.webp.asset-aKBVAmhL.js";import{h as de}from"./body.webp.asset-6etc7OPm.js";const b=8,he=new Set(["all","face","body","laser"]),ue={"#cat-face":"face","#cat-body":"body","#cat-epil":"laser","#full-price":"all"},me={"Флагманские процедуры (свет и RF)":"DPL, NIR и микроигольчатый RF. Обычная и первая стоимость указаны отдельно.","Чистки и комплексные уходы":"Многоэтапные программы очищения и ухода с указанной длительностью.","Пилинги PEACH PEEL, BioRePeelCl₃ и PRX-T33":"Три самостоятельных пилинга с подтверждённой стоимостью одного визита.","Разовые процедуры и пилинги":"Отдельные процедуры и дополнения. SPF и маски отмечены как самостоятельные позиции.","Инъекционные бустеры кожи":"Инъекционный уход и отдельная аппликационная анестезия.","Аппаратные процедуры для лица":"RF, EMS, массаж и аппаратные программы для лица, шеи и декольте.",Кавитация:"Пробный и обычные визиты разной продолжительности.","EMS-тренировка мышц (EMSCULPT)":"Пробная и обычная EMS-тренировка мышц.","RF-лифтинг тела":"Пробный и обычные RF-сеансы для тела.","MuseShape (VelaShape) тело":"Пробный и обычные сеансы вакуумного RF-массажа.","Эндо-массаж сферами":"Массаж сферами для тела: от короткого знакомства до полного сеанса.","Sketch-массаж":"Пробный и обычные сеансы SKETCH, отдельно — комплекс «Шоколадный эскиз».","AnchorFree V8C2":"Аппаратные программы для одной зоны и выбранных областей тела.","Zheone — микроигольчатый RF для тела":"Микроигольчатый RF для отдельных зон тела.","Прессотерапия (лимфодренаж)":"Три варианта продолжительности одного визита.","Обёртывания и SPA":"Шоколадные и бандажные обёртывания.","Программы AROSHA (Италия)":"Пять разовых программ и отдельная стоимость курса.",Женщины:"Стоимость лазерной эпиляции по зонам для женщин.",Мужчины:"Стоимость лазерной эпиляции по зонам для мужчин."},pe={Кавитация:"кавитация","EMS-тренировка мышц (EMSCULPT)":"ems emsculpt","RF-лифтинг тела":"rf рф","MuseShape (VelaShape) тело":"museshape velashape","Эндо-массаж сферами":"эндо массаж сферами","Sketch-массаж":"sketch","AnchorFree V8C2":"anchorfree v8c2","Zheone — микроигольчатый RF для тела":"zheone rf рф микроигольчатый","Прессотерапия (лимфодренаж)":"прессотерапия лимфодренаж","Обёртывания и SPA":"обертывание обертывания spa спа","Программы AROSHA (Италия)":"arosha"},T=s=>s.normalize("NFKC").trim().toLocaleLowerCase("ru-RU").replace(/ё/g,"е").replace(/(\d)[\s\u00a0\u202f]+(?=\d)/g,"$1").replace(/\s+/g," "),k=s=>T(s).split(" ").map(r=>
1r==="рф"?"rf":r==="пилинги"?"пилинг":r).join(" "),xe=(s,r)=>r!=="rf"?s.includes(r):/(^|[^a-zа-я0-9])rf([^a-zа-я0-9]|$)/u.test(s),fe=(s,r,c)=>{const p=k(c.name),h=[c.href?.startsWith("/pilingi/")||p.includes("пилинг")?"пилинг":"",c.href==="/prx-t33"?"пилинг пилинги":"",p.includes("rf")?"рф rf":"",pe[r.title]??""].filter(Boolean).join(" ");return k(`${s.title} ${c.name} ${c.duration??""} ${c.price} ${c.note??""} ${h}`)},je=s=>{let r=s.name.replace(" — для молодой кожи до 35 лет","").replace(" — после 35 лет и при обезвоженной коже","").replace(" — универсально от 30 лет","").replace("Безыгольная нано-мезотерапия лица (Dermapen)","Нано-мезотерапия лица (Dermapen)"),c=s.note;return/NCTF 135|MiraLine Hydro|Hyalrepair 10|Novacutan/.test(s.name)&&(c="Препарат и формат процедуры специалист подбирает индивидуально."),s.name==="Гидропилинг лица (HydraFacial)"&&s.price==="3 500 ₽"&&(r="Гидропилинг лица (HydraFacial) — отдельная процедура",c="Самостоятельный гидропилинг без комплексного ухода."),s.name==="Гидропилинг лица (HydraFacial)"&&s.price==="4 490 ₽"&&(r="Гидропилинг лица (HydraFacial) — комплекс с уходом",c="Комплексная процедура длительностью 45 минут с уходом."),{...s,displayName:r,displayNote:c}},w=Object.fromEntries(L.map(s=>[s.id,s.groups.reduce((r,c)=>r+c.items.length,0)])),B=[{id:"all",label:"Все",count:S},{id:"face",label:"Лицо",count:w.face},{id:"body",label:"Тело",count:w.body}
1,{id:"laser",label:"Эпиляция",count:w.laser}],ve=s=>{const r=T(s.name);return/курс|абонемент/.test(r)?"Курс":/пробн|перв(ое|ая|ый)/.test(r)?"Пробный / первый визит":/анестез|spf|маска|сыворотка|уход по типу|очищение christina/.test(r)?"Дополнение":null},V=s=>{const r=s%100,c=s%10;return r>=11&&r<=14?"позиций":c===1?"позиция":c>=2&&c<=4?"позиции":"позиций"};function ge({selectedService:s,onSelectService:r}){const c=X(),p=Z(),h=o.useRef(null),N=o.useRef(null),F=o.useMemo(()=>new URLSearchParams(c.search),[c.search]),i=F.get("category"),d=i&&he.has(i)?i:"all",l=F.get("q")??"",[f,E]=o.useState(b),[I,M]=o.useState(!1),[D,H]=o.useState([]),y=(a,n,u=!1)=>{const t=new URLSearchParams;a!=="all"&&t.set("category",a),n.trim()&&t.set("q",n),p({pathname:c.pathname,search:t.toString(),hash:"catalog"},{replace:u})};o.useEffect(()=>{const a=ue[c.hash];a&&y(a,l,!0)},[c.hash]),o.useEffect(()=>E(b),[d,l]);const x=o.useMemo(()=>{const a=k(l).split(" ").filter(Boolean);return L.filter(n=>d==="all"||n.id===d).flatMap(n=>n.groups.map((u,t)=>{const R=u.items.map((m,v)=>({...m,selectionId:`${n.id}-${t}-${v}`})),j=a.length?R.filter(m=>{const v=fe(n,u,m);return a.every(A=>xe(v,A))}):R;return{...u,items:j,section:n,key:`${n.id}-${t}`}})).filter(n=>n.items.length>0)},[d,l]),P=x.reduce((a,n)=>a+n.items.length,0),O=l.trim()?x:x.slice(0,f);o.useEffect(()=>{l.trim()&&H(x.map(a=>a.key))},[l,d,x]),o.useEffect(()=>{I&&(N.current?.focus({preventScroll:!0}),N.current?.scrollIntoView({block:"start",behavior:window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth"}),M(!1))},[f,I]);const K=()=>{y(d,"",!0),requestAnimationFrame(()=>h.current?.focus())},_=()=>{y("all","",!0),requestAnimationFrame(()=>h.current?.focus())};return e.jsxs("section",{id:"catalog",className:"services-catalog fc-section","aria-labelledby":"catalog-title",children:[e.jsx("span",{id:"cat-face",className:"services-legacy-anchor","aria-hidden":"true"}),e.jsx("span",{id:"cat-body",className:"services-legacy-anchor","aria-hidden":"true"}),e.jsx("span",{id:"cat-epil",className:"services-legacy-anchor","aria-hidden":"true"}),e.jsx("span",{id:"full-price",className:"services-legacy-anchor","aria-hidden":"true"}),e.jsxs("div",{className:"fc-shell",children:[e.jsxs("div",{className:"services-catalog-heading",children:[e.jsxs("div",{children:[e.jsx("p",{className:"fc-eyebrow",children:"Единый прайс FORMCLUB"}),e.jsxs("h2",{id:"catalog-title",children:["Все процедуры.",e.jsx("br",{}),e.jsx("em",{children:"В одном месте."})]})]}),e.jsxs("p",{children:[S," позиций с актуальной стоимостью. Пробные визиты, дополнения и курсы отмечены отдельно."]})]}),e.jsxs("div",{className:"services-filter","aria-label":"Фильтры каталога",children:[e.jsx("div",{className:"services-tabs",role:"group","aria-label":"Направление услуг",children:B.map(a=>e.jsxs(g,{type:"button",variant:"outline","aria-pressed":d===a.id,onClick:()=>y(a.id,l),children:[e.jsx("span",{className:"notranslate",translate:"no",children:a.label}),e.jsx("small",{children:a.count})]},a.id))}),e.jsxs("div",{className:"services-search",children:[e.jsx(le,{"aria-hidden":"true"}),e.jsx("label",{className:"sr-only",htmlFor:"services-search",children:"Поиск по услугам и ценам"}),e.jsx("input",{ref:h,id:"services-search",type:"search",value:l,onChange:a=>y(d,a.target.value,!0),placeholder:"Чистка, PRX, бикини, RF, шея…"}),l&&e.jsx(g,{type:"button",variant:"ghost",size:"icon",onClick:K,"aria-label":"Очистить поиск",children:e.jsx(q,{})})]})]}),e.jsxs("div",{className:"services-results-summary","aria-live":"polite","aria-atomic":"true",children:[e.jsx("strong",{children:P})," ",V(P),d!=="all"&&e.jsxs("span",{children:[" · ",B.find(a=>a.id===d)?.label]}),l.trim()&&e.jsxs("span",{children:[" · по запросу «",l.trim(),"»"]})]}),O.length>0?e.jsx(re,{type:"multiple",value:D,onValueChange:H,className:"services-groups",children:O.map((a,n)=>{const u=!l.trim()&&n===f-b&&f>b;return e.jsxs(ce,{value:a.key,className:"services-group",ref:u?N:void 0,tabIndex:u?-1:void 0,children:[e.jsxs(ie,{className:"services-group-trigger",children:[e.jsxs("span",{className:"services-group-title",children:[e.jsx("small",{children:a.section.title}),e.jsx("strong",{children:a.title}),e.jsx("span",{children:me[a.title]??a.section.hint})]}),e.jsx("span",{className:"services-group-count",children:a.items.length})]}),e.jsx(te,{className:"services-group-content",children:e.jsx("ul",{className:"services-price-list",children:a.items.map((t,R)=>{const j=ve(t),m=je(t),v=t.selectionId,A=`${a.section.title} · ${a.title} · ${m.displayName}${t.duration?` · ${t.duration}`:""}`,C=s?.id===v;return e.jsxs("li",{className:C?"is-selected":void 0,children:[e.jsxs("div",{className:"services-item-copy",children:[e.jsx("span",{children:m.displayName}),e.jsxs("div",{children:[t.duration&&e.jsx("small",{children:t.duration}),j&&e.jsx("small",{className:`is-${j==="Курс"?"course":j==="Дополнение"?"addon":"trial"}`,children:j})]}),m.displayNote&&e.jsx("p",{children:m.displayNote}),t.href&&e.jsxs(z,{className:"services-item-link",to:t.href,children:["Подробнее ",e.jsx(ne,{"aria-hidden":"true"})]})]}),e.jsxs("div",{className:"services-item-action",children:[e.jsx("strong",{children:t.price}),e.jsx(g,{type:"button",variant:"outline","aria-pressed":C,onClick:()=>r({id:v,label:A}),children:C?"Выбрано":"Выбрать"})]})]},`${t.name}-${t.duration??""}-${R}`)}
1)})})]},a.key)})}):e.jsxs("div",{className:"services-empty",children:[e.jsx("h3",{children:"Ничего не найдено"}),e.jsx("p",{children:"Попробуйте другой запрос или вернитесь ко всем услугам."}),e.jsx(g,{type:"button",className:"fc-button fc-button-primary",onClick:_,children:"Сбросить фильтры"})]}),!l.trim()&&f<x.length&&e.jsxs("div",{className:"services-more",children:[e.jsxs(g,{type:"button",variant:"outline",className:"fc-button fc-button-secondary",onClick:()=>{M(!0),E(a=>a+b)},children:["Показать ещё ",e.jsx("span",{"aria-hidden":"true",children:"↓"})]}),e.jsxs("span",{children:["ещё ",x.length-f," групп"]})]})]})]})}const U="https://n1923735.yclients.ru",$=s=>L.find(r=>r.id===s)?.groups.reduce((r,c)=>r+c.items.length,0)??0,Ne=[{id:"face",title:"Лицо",text:"Чистки, уходы, пилинги, DPL, NIR и RF-методики.",image:oe.url,count:$("face")},{id:"body",title:"Тело",text:"Аппаратные процедуры, массаж, обёртывания и AROSHA.",image:de.url,count:$("body")},{id:"laser",title:"Лазерная эпиляция",text:"Женский и мужской прайс по зонам.",image:W,count:$("laser")}],G=[["Как выбрать процедуру, если я не знаю названий?","Начните с направления или поиска по задаче и зоне. В каталоге можно сравнить варианты, длительность и стоимость. Если останутся вопросы, администратор поможет с выбором и записью."],["Чем пробная цена отличается от обычной?","Пробный или первый визит — отдельный формат со своей стоимостью, а иногда и длительностью. Такие условия подписаны отдельно от обычной цены."],["Курс обязателен?","Нет. Разовые процедуры и курсовая стоимость показаны отдельно. Необходимость курса, интервалы и состав программы обсуждаются со специалистом."],["Как подготовиться к визиту?","Подготовка зависит от процедуры. При записи сообщите о недавних процедурах, особенностях кожи и возможных ограничениях — администратор подскажет актуальные рекомендации."],["Как записаться?","Выберите время через онлайн-запись, позвоните по номеру +7 (926) 720-69-66 или оставьте контакт в форме."]],ye={"@context":"https://schema.org","@graph":[{"@type":"ItemList",name:"Все услуги и цены FORMCLUB",numberOfItems:S,url:"https://formclub.ru/uslugi"},{"@type":"FAQPage",mainEntity:G.map(([s,r])=>({"@type":"Question",name:s,acceptedAnswer:{"@type":"Answer",text:r}}))}]},we=()=>{const[s,r]=o.useState(null),[c,p]=o.useState(!1),h=o.useRef(null);o.useEffect(()=>{if(!c||!s)return;const i=window.requestAnimationFrame(()=>{h.current?.focus({preventScroll:!0}),h.current?.scrollIntoView({block:"center",behavior:window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth"}),p(!1)});return()=>window.cancelAnimationFrame(i)},[c,s]);const N=i=>{r(i),p(!0)},F=()=>{r(null),window.requestAnimationFrame(()=>h.current?.focus({preventScroll:!0}))};return e.jsxs("div",{className:"fc-home fc-services",children:[e.jsx(Q,{title:"Все услуги и цены FORMCLUB в Москве, м. Беляево",description:`${S} услуг FORMCLUB для лица, тела и гладкости кожи: актуальные цены, длительность, пробные визиты и онлайн-запись.`,canonical:"https://formclub.ru/uslugi",jsonLd:ye}),e.jsx(J,{}),e.jsxs("main",{children:[e.jsxs("div",{className:"fc-shell",children:[e.jsxs("nav",{className:"services-breadcrumb","aria-label":"Хлебные крошки",children:[e.jsx(z,{to:"/",children:"Главная"}),e.jsx("span",{"aria-hidden":"true",children:"/"}),e.jsx("span",{children:"Услуги"})]}),e.jsxs("section",{className:"services-hero",children:[e.jsxs("div",{className:"services-hero-copy",children:[e.jsxs("h1",{children:[e.jsx("span",{children:"Выберите уход для себя"}),"Все услуги и цены"]}
1),e.jsx("p",{className:"services-hero-lead",children:"Для лица, тела и гладкости кожи. Сравните процедуры и цены — или обсудите выбор со специалистом."}),e.jsxs("div",{className:"services-help-actions",children:[e.jsx("a",{className:"fc-button fc-button-primary",href:"#catalog",children:"Выбрать процедуру"}),e.jsx("a",{className:"fc-button fc-button-secondary",href:U,target:"_blank",rel:"noopener noreferrer",children:"Записаться онлайн"})]}),e.jsxs("p",{className:"services-hero-note",children:[S," позиций в едином каталоге"]})]}),e.jsxs("div",{className:"services-hero-art",children:[e.jsx("img",{src:Y,width:"900",height:"1080",alt:"Аппаратная процедура в студии FORMCLUB"}),e.jsx("span",{className:"services-hero-caption",children:"FORMCLUB · Беляево"})]})]})]}),e.jsx("section",{className:"services-directions","aria-labelledby":"directions-title",children:e.jsxs("div",{className:"fc-shell",children:[e.jsxs("div",{className:"services-section-heading",children:[e.jsxs("div",{children:[e.jsx("p",{className:"fc-eyebrow",children:"Направления"}),e.jsx("h2",{id:"directions-title",children:"Начните с нужного раздела"})]}),e.jsx("p",{children:"Три направления объединяют полный прайс студии. Выберите раздел или перейдите сразу к поиску."})]}),e.jsx("div",{className:"services-direction-grid",children:Ne.map(i=>e.jsxs("a",{className:"services-direction",href:`#cat-${i.id==="laser"?"epil":i.id}`,children:[e.jsx("img",{src:i.image,width:"720",height:"860",alt:""}),e.jsxs("span",{className:"services-direction-copy",children:[e.jsxs("small",{children:[i.count," ",V(i.count)]}),e.jsx("h3",{children:i.title}),e.jsx("p",{children:i.text}),e.jsx("span",{children:"Смотреть цены →"})]})]},i.id))})]})}),e.jsx(ge,{selectedService:s,onSelectService:N}),e.jsx("section",{className:"services-help","aria-labelledby":"help-title",children:e.jsxs("div",{className:"fc-shell services-help-grid",children:[e.jsxs("div",{className:"services-help-copy",children:[e.jsx("p",{className:"fc-eyebrow",children:"Помощь с выбором"}),e.jsx("h2",{id:"help-title",children:"Обсудим подходящий формат"}),e.jsx("p",{children:"Оставьте контакт, чтобы администратор уточнил задачу, ответил на вопросы и помог подобрать время."}),e.jsxs("div",{className:"services-help-actions",children:[e.jsx("a",{className:"fc-button fc-button-light",href:U,target:"_blank",rel:"noopener noreferrer",children:"Записаться онлайн"}),e.jsx("a",{href:"tel:+79267206966",children:"+7 (926) 720-69-66"})]}),e.jsxs("div",{className:"services-selected","aria-live":"polite",children:[e.jsx("p",{ref:h,tabIndex:-1,className:"services-selected-heading",children:"Выбранная услуга"}),s?e.jsxs("div",{children:[e.jsx("strong",{children:s.label}),e.jsx(g,{type:"button",variant:"ghost",size:"icon",onClick:F,"aria-label":"Очистить выбранную услугу",children:e.jsx(q,{})})]}):e.jsx("p",{children:"Пока не выбрана — можно оставить общий запрос."})]})]}),e.jsx("div",{className:"fc-booking-wrap",children:e.jsx(ee,{prefilledService:s?.label??""})})]})}),e.jsx("section",{className:"services-faq fc-section",id:"first-visit","aria-labelledby":"faq-title",children:e.jsxs("div",{className:"fc-shell services-faq-grid",children:[e.jsx("div",{className:"services-section-heading",children:e.jsxs("div",{children:[e.jsx("p",{className:"fc-eyebrow",children:"Перед визитом"}),e.jsx("h2",{id:"faq-title",children:"Частые вопросы"})]})}),e.jsx("div",{children:G.map(([i,d],l)=>e.jsxs("details",{open:l===0,children:[e.jsxs("summary",{children:[i,e.jsx("span",{"aria-hidden":"true",children:"+"})]}),e.jsx("p",{children:d})]},i))})]})}),e.jsx(se,{})]}),e.jsx(ae,{})]})};export{we 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.