<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<!-- Useful meta tags -->
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="index, follow, noodp">
<meta name="googlebot" content="index, follow">
<meta name="google" content="notranslate">
<meta name="format-detection" content="telephone=no">
<meta name="keywords" content="">
<meta name="description"
content="Восстаналиваем данные со всех носителей. Вернем более 98% данных. Доступные цены, гарантия на работы. Бесплатная диагностика проблемы. ">
<title>Сервисный центр по восстановлению данных с любых носителей. Гарантия результата. </title>
<!-- фавиконки -->
<link rel="apple-touch-icon" sizes="180x180" href="http://doctor-hdd.ru/land/assetsById/41/assets/img/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="http://doctor-hdd.ru/land/assetsById/41/assets/img/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="http://doctor-hdd.ru/land/assetsById/41/assets/img/favicon/favicon-16x16.png">
<link rel="manifest" href="http://doctor-hdd.ru/land/assetsById/41/assets/img/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="http://doctor-hdd.ru/land/assetsById/41/assets/css/vendor.css">
<link rel="stylesheet" href="http://doctor-hdd.ru/land/assetsById/41/assets/css/style.css">
<!-- фавиконки END-->
</head>
<body>
<svg width="0" height="0" class="hidden" style="display: none">
<symbol id="eye" viewBox="0 0 511.999 511.999">
<g>
<g>
<path d="M508.745,246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818,239.784,3.249,246.035
c-4.332,5.936-4.332,13.987,0,19.923c4.569,6.257,113.557,153.206,252.748,153.206s248.174-146.95,252.748-153.201
C513.083,260.028,513.083,251.971,508.745,246.041z M255.997,385.406c-102.529,0-191.33-97.533-217.617-129.418
c26.253-31.913,114.868-129.395,217.617-129.395c102.524,0,191.319,97.516,217.617,129.418
C447.361,287.923,358.746,385.406,255.997,385.406z"/>
</g>
</g>
<g>
<g>
<path d="M255.997,154.725c-55.842,0-101.275,45.433-101.275,101.275s45.433,101.275,101.275,101.275
s101.275-45.433,101.275-101.275S311.839,154.725,255.997,154.725z M255.997,323.516c-37.23,0-67.516-30.287-67.516-67.516
s30.287-67.516,67.516-67.516s67.516,30.287,67.516,67.516S293.227,323.516,255.997,323.516z"/>
</g>
</g>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.999 511.999" id="eye">
<path
d="M508.745 246.041c-4.574-6.257-113.557-153.206-252.748-153.206S7.818 239.784 3.249 246.035a16.896 16.896 0 0 0 0 19.923c4.569 6.257 113.557 153.206 252.748 153.206s248.174-146.95 252.748-153.201a16.875 16.875 0 0 0 0-19.922zM255.997 385.406c-102.529 0-191.33-97.533-217.617-129.418 26.253-31.913 114.868-129.395 217.617-129.395 102.524 0 191.319 97.516 217.617 129.418-26.253 31.912-114.868 129.395-217.617 129.395z">
</path>
<path
d="M255.997 154.725c-55.842 0-101.275 45.433-101.275 101.275s45.433 101.275 101.275 101.275S357.272 311.842 357.272 256s-45.433-101.275-101.275-101.275zm0 168.791c-37.23 0-67.516-30.287-67.516-67.516s30.287-67.516 67.516-67.516 67.516 30.287 67.516 67.516-30.286 67.516-67.516 67.516z">
</path>
</symbol>
<symbol viewBox="-51 0 512 512" xmlns="http://www.w3.org/2000/svg" id="hdd">
<path
d="M205 250c24.813 0 45-20.188 45-45s-20.188-45-45-45-45 20.188-45 45 20.188 45 45 45zm0-60c8.27 0 15 6.73 15 15s-6.73 15-15 15-15-6.73-15-15 6.73-15 15-15zm0 0">
</path>
<path
d="M395 0H15C6.715 0 0 6.715 0 15v482c0 8.285 6.715 15 15 15h380c8.285 0 15-6.715 15-15V15c0-8.285-6.715-15-15-15zm-15 482H30V30h350zm0 0">
</path>
<path
d="M114.3 318.129L71.056 371.41c-9.133 11.254-12.86 25.88-10.227 40.13s11.34 26.581 23.89 33.827a49.421 49.421 0 0 0 24.712 6.625c5.433 0 10.886-.898 16.14-2.71a49.41 49.41 0 0 0 29.727-28.29c9.105-22.652 20.098-50.113 28.933-72.48A146.388 146.388 0 0 0 205 350c79.953 0 145-65.047 145-145S284.953 60 205 60 60 125.047 60 205c0 44.559 20.031 85.738 54.3 113.129zm13.16 91.676c-2.132 5.304-6.28 9.254-11.687 11.12-5.402 1.864-11.101 1.317-16.054-1.538-5.008-2.89-8.34-7.614-9.39-13.297s.374-11.285 4.019-15.774l69.12-85.164a2.585 2.585 0 0 1 2.016-.965c.512 0 1.032.153 1.493.465.945.641 1.293 2.172.793 3.485-8.211 21.558-26.454 67.183-40.31 101.668zM205 90c63.41 0 115 51.59 115 115s-51.59 115-115 115c-3.172 0-6.34-.137-9.496-.398.101-.258.207-.532.3-.786 5.505-14.449.571-30.488-12-39.004-14.128-9.57-32.886-6.804-43.628 6.434l-6.973 8.586C105.941 273.102 90 240.395 90 205c0-63.41 51.59-115 115-115zm0 0">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 492 492" id="left-arrow">
<path
d="M198.608 246.104L382.664 62.04c5.068-5.056 7.856-11.816 7.856-19.024 0-7.212-2.788-13.968-7.856-19.032l-16.128-16.12C361.476 2.792 354.712 0 347.504 0s-13.964 2.792-19.028 7.864L109.328 227.008c-5.084 5.08-7.868 11.868-7.848 19.084-.02 7.248 2.76 14.028 7.848 19.112l218.944 218.932c5.064 5.072 11.82 7.864 19.032 7.864 7.208 0 13.964-2.792 19.032-7.864l16.124-16.12c10.492-10.492 10.492-27.572 0-38.06L198.608 246.104z">
</path>
</symbol>
<symbol viewBox="0 0 48 60" xmlns="http://www.w3.org/2000/svg" id="logo">
<path
d="M42.996 59H5.004A4.003 4.003 0 0 1 1 54.996V5.004A4.003 4.003 0 0 1 5.004 1h37.993A4.003 4.003 0 0 1 47 5.004v49.993A4.003 4.003 0 0 1 42.996 59z"
fill="#677989"></path>
<path
d="M24 6C13.507 6 5 14.507 5 25c0 6.901 3.691 12.924 9.195 16.252l5.515 2.243c1.381.32 2.812.505 4.29.505 10.493 0 19-8.507 19-19S34.493 6 24 6z"
fill="#e7eced"></path>
<circle cx="24" cy="25" fill="#afb6bb" r="8"></circle>
<circle cx="24" cy="25" fill="#fff" r="3"></circle>
<path d="M14.2 50a4.2 4.2 0 0 1-1.615-8.077L22 38l-3.923 9.415A4.198 4.198 0 0 1 14.2 50z" fill="#afb6bb">
</path>
<path d="M15 54c-4.975 0-9-4.025-9-9H1v9.996A4.003 4.003 0 0 0 5.003 59H20v-5z" fill="#637687"></path>
<g fill="#4d007e">
<path
d="M42.997 60H5.003A5.01 5.01 0 0 1 0 54.996V5.004A5.01 5.01 0 0 1 5.003 0h37.993A5.01 5.01 0 0 1 48 5.004v49.992A5.01 5.01 0 0 1 42.997 60zM5.003 2A3.007 3.007 0 0 0 2 5.004v49.992A3.007 3.007 0 0 0 5.003 58h37.993A3.007 3.007 0 0 0 46 54.996V5.004A3.007 3.007 0 0 0 42.997 2z">
</path>
<path
d="M24 34c-4.963 0-9-4.037-9-9s4.037-9 9-9 9 4.037 9 9-4.037 9-9 9zm0-16c-3.86 0-7 3.141-7 7s3.14 7 7 7 7-3.141 7-7-3.14-7-7-7z">
</path>
<path
d="M24 29c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4zm0-6c-1.103 0-2 .897-2 2s.897 2 2 2 2-.897 2-2-.897-2-2-2zm-9.8 28A5.206 5.206 0 0 1 9 45.8a5.187 5.187 0 0 1 3.2-4.8l9.416-3.923a1.001 1.001 0 0 1 1.308 1.308L19 47.8a5.186 5.186 0 0 1-4.8 3.2zm5.943-11.143l-7.174 2.988A3.195 3.195 0 0 0 11 45.8c0 1.765 1.436 3.2 3.2 3.2a3.19 3.19 0 0 0 2.954-1.97z">
</path>
<path
d="M20 60H5.003A5.01 5.01 0 0 1 0 54.996V45a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1c0 4.411 3.589 8 8 8h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1zM2 46v8.996A3.007 3.007 0 0 0 5.003 58H19v-3h-4c-5.177 0-9.447-3.954-9.95-9zm22-1c-1.474 0-2.993-.179-4.515-.53a.997.997 0 0 1-.697-1.36l1.356-3.253-5.563 2.317a.999.999 0 0 1-.902-.067C7.618 38.443 4 32.048 4 25 4 13.972 12.972 5 24 5s20 8.972 20 20-8.972 20-20 20zm-2.898-2.246c.98.163 1.951.246 2.898.246 9.925 0 18-8.075 18-18S33.925 7 24 7 6 15.075 6 25c0 6.175 3.087 11.794 8.286 15.131l7.329-3.054a1.001 1.001 0 0 1 1.308 1.308z">
</path>
</g>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="maps-and-flags">
<path
d="M256 0C153.755 0 70.573 83.182 70.573 185.426c0 126.888 165.939 313.167 173.004 321.035 6.636 7.391 18.222 7.378 24.846 0 7.065-7.868 173.004-194.147 173.004-321.035C441.425 83.182 358.244 0 256 0zm0 469.729c-55.847-66.338-152.035-197.217-152.035-284.301 0-83.834 68.202-152.036 152.035-152.036s152.035 68.202 152.035 152.035C408.034 272.515 311.861 403.37 256 469.729z">
</path>
<path
d="M256 92.134c-51.442 0-93.292 41.851-93.292 93.293S204.559 278.72 256 278.72s93.291-41.851 93.291-93.293S307.441 92.134 256 92.134zm0 153.194c-33.03 0-59.9-26.871-59.9-59.901s26.871-59.901 59.9-59.901 59.9 26.871 59.9 59.901-26.871 59.901-59.9 59.901z">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="pin">
<path
d="M256 0C153.755 0 70.573 83.182 70.573 185.426c0 126.888 165.939 313.167 173.004 321.035 6.636 7.391 18.222 7.378 24.846 0 7.065-7.868 173.004-194.147 173.004-321.035C441.425 83.182 358.244 0 256 0zm0 278.719c-51.442 0-93.292-41.851-93.292-93.293S204.559 92.134 256 92.134s93.291 41.851 93.291 93.293-41.85 93.292-93.291 93.292z">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="save">
<path
d="M438.284 0H60C26.916 0 0 26.916 0 60v392c0 33.084 26.916 60 60 60h392c33.084 0 60-26.916 60-60V73.716L438.284 0zM120 40h230v118H120V40zm272 432H120V314h272v158zm80-20c0 11.028-8.972 20-20 20h-20V274H80v198H60c-11.028 0-20-8.972-20-20V60c0-11.028 8.972-20 20-20h20v158h310V40h31.716L472 90.284V452z">
</path>
<path d="M274 59h40v79h-40z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56.966 56.966" id="search">
<path
d="M55.146 51.887L41.588 37.786A22.926 22.926 0 0 0 46.984 23c0-12.682-10.318-23-23-23s-23 10.318-23 23 10.318 23 23 23c4.761 0 9.298-1.436 13.177-4.162l13.661 14.208c.571.593 1.339.92 2.162.92.779 0 1.518-.297 2.079-.837a3.004 3.004 0 0 0 .083-4.242zM23.984 6c9.374 0 17 7.626 17 17s-7.626 17-17 17-17-7.626-17-17 7.626-17 17-17z">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 214.27 214.27" id="security">
<path
d="M196.926 55.171c-.11-5.785-.215-11.25-.215-16.537a7.5 7.5 0 0 0-7.5-7.5c-32.075 0-56.496-9.218-76.852-29.01a7.498 7.498 0 0 0-10.457 0c-20.354 19.792-44.771 29.01-76.844 29.01a7.5 7.5 0 0 0-7.5 7.5c0 5.288-.104 10.755-.215 16.541-1.028 53.836-2.436 127.567 87.331 158.682a7.495 7.495 0 0 0 4.912 0c89.774-31.116 88.368-104.849 87.34-158.686zm-89.795 143.641c-76.987-27.967-75.823-89.232-74.79-143.351.062-3.248.122-6.396.164-9.482 30.04-1.268 54.062-10.371 74.626-28.285 20.566 17.914 44.592 27.018 74.634 28.285.042 3.085.102 6.231.164 9.477 1.032 54.121 2.195 115.388-74.798 143.356z">
</path>
<path
d="M132.958 81.082l-36.199 36.197-15.447-15.447a7.501 7.501 0 0 0-10.606 10.607l20.75 20.75a7.477 7.477 0 0 0 5.303 2.196 7.477 7.477 0 0 0 5.303-2.196l41.501-41.5a7.498 7.498 0 0 0 .001-10.606 7.5 7.5 0 0 0-10.606-.001z">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 174.248 174.248" id="settings-cog">
<path
d="M173.145 73.91a7.46 7.46 0 0 0-4.881-5.912l-13.727-4.881a71.305 71.305 0 0 0-2.754-6.699l6.247-13.146a7.471 7.471 0 0 0-.729-7.628 87.29 87.29 0 0 0-18.698-18.693 7.455 7.455 0 0 0-7.625-.724l-13.138 6.242a71.168 71.168 0 0 0-6.704-2.752l-4.883-13.729a7.463 7.463 0 0 0-5.9-4.876c-9.65-1.483-16.792-1.483-26.457 0a7.467 7.467 0 0 0-5.9 4.876l-4.883 13.729a70.912 70.912 0 0 0-6.702 2.752l-13.143-6.242a7.457 7.457 0 0 0-7.623.724 87.29 87.29 0 0 0-18.698 18.693 7.469 7.469 0 0 0-.729 7.628l6.247 13.146a71.512 71.512 0 0 0-2.754 6.699L5.982 68.003a7.465 7.465 0 0 0-4.879 5.907C.354 78.83.004 83.025.004 87.129c0 4.098.35 8.299 1.099 13.219a7.46 7.46 0 0 0 4.881 5.912l13.727 4.881a72.314 72.314 0 0 0 2.754 6.704l-6.247 13.141a7.465 7.465 0 0 0 .727 7.623 87.3 87.3 0 0 0 18.7 18.698 7.444 7.444 0 0 0 7.625.724l13.138-6.242a71.168 71.168 0 0 0 6.704 2.752l4.883 13.729a7.463 7.463 0 0 0 5.9 4.876c4.828.744 9.154 1.104 13.228 1.104s8.401-.36 13.228-1.104a7.464 7.464 0 0 0 5.9-4.876l4.883-13.729a71.168 71.168 0 0 0 6.704-2.752l13.138 6.242a7.453 7.453 0 0 0 7.628-.724 87.291 87.291 0 0 0 18.698-18.698 7.465 7.465 0 0 0 .727-7.623l-6.247-13.141a71.51 71.51 0 0 0 2.754-6.704l13.727-4.881a7.458 7.458 0 0 0 4.881-5.912c.749-4.92 1.099-9.12 1.099-13.219s-.349-8.3-1.098-13.219zm-14.196 19.81l-12.878 4.58a7.454 7.454 0 0 0-4.66 4.92c-1.15 3.889-2.664 7.569-4.504 10.943a7.471 7.471 0 0 0-.187 6.777l5.841 12.285a72.102 72.102 0 0 1-9.337 9.334l-12.283-5.834a7.448 7.448 0 0 0-6.775.185c-3.379 1.838-7.061 3.35-10.953 4.502a7.456 7.456 0 0 0-4.917 4.657l-4.582 12.883c-4.677.476-8.503.476-13.18 0l-4.582-12.883a7.469 7.469 0 0 0-4.917-4.657c-3.894-1.152-7.579-2.664-10.953-4.502a7.424 7.424 0 0 0-6.775-.185l-12.283 5.839a72.647 72.647 0 0 1-9.337-9.339l5.841-12.285a7.47 7.47 0 0 0-.187-6.777c-1.835-3.364-3.35-7.049-4.504-10.948a7.462 7.462 0 0 0-4.66-4.915l-12.878-4.58c-.243-2.343-.36-4.502-.36-6.592s.117-4.244.36-6.587l12.881-4.584a7.46 7.46 0 0 0 4.657-4.915c1.152-3.889 2.667-7.574 4.504-10.953a7.46 7.46 0 0 0 .187-6.772l-5.841-12.285a72.583 72.583 0 0 1 9.337-9.339l12.288 5.839c2.151 1.036 4.677.953 6.775-.185 3.372-1.838 7.054-3.35 10.948-4.502a7.467 7.467 0 0 0 4.917-4.657l4.582-12.883c4.633-.481 8.466-.481 13.18 0l4.582 12.883a7.469 7.469 0 0 0 4.917 4.657c3.894 1.152 7.579 2.664 10.953 4.502a7.424 7.424 0 0 0 6.775.185l12.283-5.839a72.583 72.583 0 0 1 9.337 9.339l-5.841 12.285a7.46 7.46 0 0 0 .187 6.772c1.843 3.389 3.357 7.069 4.504 10.948a7.454 7.454 0 0 0 4.66 4.92l12.878 4.58c.243 2.343.36 4.502.36 6.592s-.117 4.248-.36 6.591z">
</path>
<path
d="M87.124 50.802c-19.062 0-34.571 15.508-34.571 34.571s15.508 34.571 34.571 34.571 34.571-15.508 34.571-34.571-15.509-34.571-34.571-34.571zm0 54.207c-10.827 0-19.636-8.809-19.636-19.636s8.809-19.636 19.636-19.636 19.636 8.809 19.636 19.636-8.809 19.636-19.636 19.636z">
</path>
</symbol>
<symbol viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" id="ssd">
<path
d="M432 0H80C53.533 0 32 21.533 32 48v416c0 26.467 21.533 48 48 48h352c26.467 0 48-21.533 48-48V48c0-26.467-21.533-48-48-48zM320 32v16c0 8.822-7.178 16-16 16h-96c-8.822 0-16-7.178-16-16V32zm16 448c0-8.836-7.164-16-16-16s-16 7.164-16 16h-32c0-8.836-7.164-16-16-16s-16 7.164-16 16h-32c0-8.836-7.164-16-16-16s-16 7.164-16 16h-27.508l8-32h199.016l8 32zm112-16c0 8.822-7.178 16-16 16h-35.507l-12.97-51.88A16.001 16.001 0 0 0 368 416H144a16 16 0 0 0-15.522 12.12L115.507 480H80c-8.822 0-16-7.178-16-16V48c0-8.822 7.178-16 16-16h80v16c0 26.467 21.533 48 48 48h96c26.467 0 48-21.533 48-48V32h80c8.822 0 16 7.178 16 16z">
</path>
<path
d="M192 248c0-14.812-8.093-27.77-20.089-34.683C166.28 207.043 159.977 208 152 208c-4.411 0-8-3.589-8-8s3.589-8 8-8h24c8.836 0 16-7.164 16-16s-7.164-16-16-16h-24c-22.056 0-40 17.944-40 40s17.944 40 40 40c4.411 0 8 3.589 8 8s-3.589 8-8 8h-24c-8.836 0-16 7.164-16 16s7.164 16 16 16h24c22.056 0 40-17.944 40-40zm64 8h-31c-8.836 0-16 7.164-16 16s7.164 16 16 16h31c22.056 0 40-17.944 40-40s-17.944-40-40-40h-7c-4.411 0-8-3.589-8-8s3.589-8 8-8h31c8.836 0 16-7.164 16-16s-7.164-16-16-16h-31c-22.056 0-40 17.944-40 40 0 22.517 18.746 40 39 40h8c4.411 0 8 3.589 8 8s-3.589 8-8 8zm144-16v-32c0-26.467-21.533-48-48-48h-16c-8.836 0-16 7.164-16 16v96c0 8.836 7.164 16 16 16h16c26.467 0 48-21.533 48-48zm-32 0c0 8.822-7.178 16-16 16v-64c8.822 0 16 7.178 16 16z">
</path>
<circle cx="400" cy="384" r="16"></circle>
<circle cx="112" cy="384" r="16"></circle>
<circle cx="400" cy="80" r="16"></circle>
<circle cx="112" cy="80" r="16"></circle>
<path d="M320 336H192c-8.836 0-16 7.164-16 16s7.164 16 16 16h128c8.836 0 16-7.164 16-16s-7.164-16-16-16z">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 348.077 348.077" id="call-answer">
<path
d="M340.273 275.083l-53.755-53.761c-10.707-10.664-28.438-10.34-39.518.744l-27.082 27.076a792.327 792.327 0 0 1-5.344-2.973c-17.102-9.476-40.509-22.464-65.14-47.113-24.704-24.701-37.704-48.144-47.209-65.257-1.003-1.813-1.964-3.561-2.913-5.221l18.176-18.149 8.936-8.947c11.097-11.1 11.403-28.826.721-39.521L73.39 8.194c-10.682-10.68-28.421-10.356-39.518.744l-15.15 15.237.414.411c-5.08 6.482-9.325 13.958-12.484 22.02C3.74 54.28 1.927 61.603 1.098 68.941-6 127.785 20.89 181.564 93.866 254.541c100.875 100.868 182.167 93.248 185.674 92.876 7.638-.913 14.958-2.738 22.397-5.627 7.992-3.122 15.463-7.361 21.941-12.43l.331.294 15.348-15.029c11.074-11.098 11.393-28.83.716-39.542z">
</path>
</symbol>
<symbol viewBox="0 0 329.269 329" xmlns="http://www.w3.org/2000/svg" id="close">
<path
d="M194.8 164.77L323.013 36.555c8.343-8.34 8.343-21.825 0-30.164-8.34-8.34-21.825-8.34-30.164 0L164.633 134.605 36.422 6.391c-8.344-8.34-21.824-8.34-30.164 0-8.344 8.34-8.344 21.824 0 30.164l128.21 128.215L6.259 292.984c-8.344 8.34-8.344 21.825 0 30.164a21.266 21.266 0 0 0 15.082 6.25c5.46 0 10.922-2.09 15.082-6.25l128.21-128.214 128.216 128.214a21.273 21.273 0 0 0 15.082 6.25c5.46 0 10.922-2.09 15.082-6.25 8.343-8.34 8.343-21.824 0-30.164zm0 0">
</path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 390.788 390.788" id="cloud-computing">
<path
d="M353.907 318.125c-16.291 0-30.319 10.861-34.715 25.471h-37.366v-95.935h46.093c34.715 0 62.836-28.186 62.836-62.836s-28.121-62.901-62.836-62.901c-4.331 0-8.663.517-12.994 1.099-1.616-18.424-10.861-35.75-24.954-48.226-13.576-11.378-31.418-18.941-63.418-16.291C209.745 23.273 173.996 0 134.432 0c-56.372.517-102.4 46.093-102.4 102.4 0 8.663 1.099 17.325 3.232 25.988-21.139 10.343-35.232 32-35.232 56.372 0 34.715 28.186 62.836 62.836 62.836h46.093v95.935H71.596c-4.849-14.61-18.424-25.471-34.715-25.471-20.04 0-36.331 16.291-36.331 36.331s16.291 36.331 36.331 36.331c16.291 0 30.319-10.861 34.715-25.471h48.226c5.947 0 10.861-4.848 10.861-10.861V247.661h53.657v71.564c-14.61 4.848-25.471 18.424-25.471 34.715 0 20.04 16.291 36.331 36.331 36.331s36.331-16.291 36.331-36.331c0-16.291-10.861-30.319-25.471-34.715v-71.564h53.657v106.796c0 5.948 4.848 10.861 10.861 10.861h48.226c4.849 14.61 18.424 25.471 34.715 25.471 20.04 0 36.331-16.291 36.331-36.331.388-20.106-15.838-36.333-35.943-36.333zM36.364 369.067a14.554 14.554 0 0 1-14.61-14.61c0-8.145 6.529-14.61 14.61-14.61s14.61 6.465 14.61 14.545c0 8.145-6.53 14.675-14.61 14.675zm173.381-14.61c0 8.081-6.465 14.61-14.61 14.61s-14.61-6.529-14.61-14.61c0-8.145 6.529-14.61 14.61-14.61a14.553 14.553 0 0 1 14.61 14.61zM62.869 225.875c-22.756.065-41.18-18.36-41.18-41.115 0-18.424 12.477-34.715 30.319-39.564 2.715-.517 5.43-2.715 7.046-5.43s1.616-5.947.517-8.663c-3.75-9.18-5.366-18.941-5.366-28.703 0-44.412 35.749-80.226 80.226-80.226 34.133 0 64.517 21.657 75.313 53.657 1.099 2.715 2.715 4.849 5.43 5.948s5.43 1.616 8.145.517c17.325-6.529 37.948-2.715 51.459 9.244 12.994 11.378 19.523 28.186 17.325 45.511-.517 3.814 1.099 8.146 4.331 10.279s7.564 2.715 11.378.517c5.947-3.232 12.477-4.331 18.941-4.331 22.755 0 41.18 18.424 41.18 41.18s-18.424 41.18-41.18 41.18H62.869zm291.038 143.192a14.554 14.554 0 0 1-14.61-14.61c0-8.145 6.529-14.61 14.61-14.61 8.145 0 14.61 6.529 14.61 14.61.065 8.08-6.464 14.61-14.61 14.61z">
</path>
</symbol>
</svg>
<div class="header collapse">
<div class="container">
<div class="header__wrap">
<div class="row header__row">
<div class="header__logo col-auto">
<a href="#first" class="logo">
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/logo.svg" alt="logo" width="32" height="50">
<div class="logo__text-wrap">
<span class="logo__text">
HDD Fire
</span>
<span class="logo__text2">
Мастера по восстановлению данных
</span>
</div>
</a>
</div>
<div class="header__burger col text-right d-md-none d-flex justify-content-end">
<div id="burger" class="hamburger" role="button" data-toggle="collapse" data-target="#menuHeader"
aria-expanded="false">
<div class="hamburger-inner"></div>
</div>
</div>
<div id="menuHeader" class="header__mobile col collapse">
<div class="align-items-center position-static row">
<div class="nice-select-wrapper">
</div>
<div class="header__phone col-md-auto ml-auto">
</div>
<div class="header__call col-md-auto">
<button class="header__call-btn open-form-js">
Связаться с нами
</button>
</div>
<div class="header__menu col-12">
<div class="header-bottom__nav">
<a data-href="#prices" href="#prices" class="header-bottom__link nav-link-js">
Прайс
</a>
<a data-href="#about" href="#about" class="header-bottom__link nav-link-js">
О нас
</a>
<a data-href="#reviews" href="#reviews" class="header-bottom__link nav-link-js">
Отзывы
</a>
<a data-href="#contacts" href="#contacts" class="header-bottom__link nav-link-js">
Контакты
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<section class="first">
<a id="first" class="anchor"></a>
<div class="container">
<div class="first__wrap">
<div class="first__subtitle">
Мастера по восстановлению данных
</div>
<h1 class="first__title">
Восстановим данные с любых
носителей!
</h1>
<div class="first__list row">
<div class="col-md-auto">
<div class="first__item">
<svg class="first__item-icon icon">
<use xlink:href="#security"></use>
</svg>
<span class="first__item-text">
Гарантия сервисного
центра от 1 года
</span>
</div>
</div>
<div class="col-md-auto">
<div class="first__item">
<svg class="first__item-icon icon">
<use xlink:href="#settings-cog"></use>
</svg>
<span class="first__item-text">
Своя <br>
донорская база
</span>
</div>
</div>
<div class="col-md-auto">
<div class="first__item">
<svg class="first__item-icon icon">
<use xlink:href="#search"></use>
</svg>
<span class="first__item-text">
Бесплатная диагностика
возникшей проблемы
</span>
</div>
</div>
</div>
<div class="first__form-wrap">
<div class="first__form-title">
Узнайте стоимость восстановления сейчас:
</div>
<form class="sltop__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0"
>
<div class="row no-gutters">
<div class="col-md-6 col-lg-5 pr-md-3">
<input class="first__input" type="tel" name="phone" placeholder="Ваш телефон" required>
</div>
<div class="col-md-6 col-lg-6">
<button class="first__button">Узнать стоимость</button>
</div>
</div>
<input type="hidden" name="fullname" value="без имени">
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm" value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
</form>
<div class="first-left__accept">
Нажимая кнопку «Узнать стоимость» Вы соглашаетесь на обработку данных.
</div>
</div>
<div class="first__img-wrap">
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/first.png" width="396" height="332" alt="Восстановление данных"
class="first__img">
</div>
</div>
</div>
</section>
<section id="sect-benefits" class="benefits section">
<a id="benefits" class="anchor"></a>
<div class="container" id="about">
<h2 class="title">
Чем мы занимаемся?
</h2>
<div class="subtitle">
Наш сервисный центр предлагает услуги по восстановлению данных с любых носителей. Мы вернем ваши
семейные фотографии, важные документы и файлы после случайного удаления пользователем и очистки корзины,
форматирования жесткого диска, мы восстановим информацию после сбоя операционной системы, а также в
случаях, когда причиной удаления стали последствия деятельности вируса.
</div>
<div class="row">
<div class="benefits__col col-md-6 col-lg-3">
<div class="benefits__item">
<svg class="benefits__icon icon">
<use xlink:href="#hdd"></use>
</svg>
<div class="benefits__text">
Жесткие диски HDD и гибридные
накопители всех интерфейсов
подключения
</div>
</div>
</div>
<div class="benefits__col col-md-6 col-lg-3">
<div class="benefits__item">
<svg class="benefits__icon icon">
<use xlink:href="#cloud-computing"></use>
</svg>
<div class="benefits__text">
Сетевые хранилища NAS и <br>
дисковые массивы RAID <br>
различных конфигураций
</div>
</div>
</div>
<div class="benefits__col col-md-6 col-lg-3">
<div class="benefits__item">
<svg class="benefits__icon icon">
<use xlink:href="#save"></use>
</svg>
<div class="benefits__text">
Флешки и карты памяти <br>
(SD Card, Memory Stick, micro SD,
Compact Flash, xD, USb Flash)
</div>
</div>
</div>
<div class="benefits__col col-md-6 col-lg-3">
<div class="benefits__item">
<svg class="benefits__icon icon">
<use xlink:href="#ssd"></use>
</svg>
<div class="benefits__text">
Твердотельные накопители <br>
(SSD)
</div>
</div>
</div>
</div>
</div>
</section>
<section id="services" class="services">
<div class="container">
<h2 class="title services__title">Основные услуги нашей компании</h2>
<div class="services-wrapper">
<div class="services__item open-form-js">
<div class="services__item-title">Восстановление жесткого
диска HDD
</div>
<div class="services__item-price">
От 2 490 руб.
</div>
<div class="services__item-more">Подробнее ></div>
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/services1.png" alt="img" class="services__item-img">
</div>
<div class="services__item open-form-js">
<div class="services__item-title">Восстановление данных
с SSD
</div>
<div class="services__item-price">
От 4 500 руб.
</div>
<div class="services__item-more">Подробнее ></div>
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/services2.png" alt="img" class="services__item-img">
</div>
<div class="services__item open-form-js">
<div class="services__item-title">Восстановление данных
с карты памяти
</div>
<div class="services__item-price">
От 2 490 руб.
</div>
<div class="services__item-more">Подробнее ></div>
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/services3.png" alt="img" class="services__item-img">
</div>
<div class="services__item open-form-js">
<div class="services__item-title">Восстановление данных
с флешки
</div>
<div class="services__item-price">
От 2 490 руб.
</div>
<div class="services__item-more">Подробнее ></div>
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/services4.png" alt="img" class="services__item-img">
</div>
</div>
</div>
</section>
<section id="price" class="price margin">
<div class="container" id="prices">
<h2 class="price__title title">Таблица цен и услуг</h2>
<div class="price__table">
<div class="price__row open-form-js">
<span>Поломка</span>
<span>Стоимость</span>
</div>
<div class="price__row open-form-js">
<span>Диагностика жесткого диска на оборудовании (10-15 минут)</span>
<span>бесплатно</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Копирование восстановленных данных</span>
<span>бесплатно</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Подробное исследование жесткого диска с составлением отчета</span>
<span>1 300р.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Копирование данных с исправного носителя (без работ по восстановлению данных)</span>
<span>1 300 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Создание посекторной копии исправного носителя</span>
<span>2 400 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Логические проблемы на исправных жестких дисках</span>
<span>3 600 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Нечитаемые сектора</span>
<span>5 900 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Неисправность контроллера</span>
<span>3 600 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Неисправность блока магнитных головок</span>
<span>5 900 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Клин шпинделя</span>
<span>5 600 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Проблемы с микропрограммой (служебная область диска)</span>
<span>3 600 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Повреждения поверхности пластин (царапины/сколы)</span>
<span>5 600 руб.</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Срочные работы и работы вне очереди</span>
<span>+100%</span>
<button>Заказать</button>
</div>
<div class="price__row open-form-js">
<span>Работы со вскрытыми устройствами</span>
<span>+100%</span>
<button>Заказать</button>
</div>
</div>
<div class="price__bottom">
<div class="price__button">
<svg class="eye">
<use xlink:href="#eye"></use>
</svg>
Увидеть все возможные поломки
</div>
<div class="price__bottom-right">
<small>Возможность безналичной оплаты</small>
<div class="price__payment">
<img src='http://doctor-hdd.ru/land/assetsById/41/assets/img/yandex.png' alt='Яндекс деньги'>
<img src='http://doctor-hdd.ru/land/assetsById/41/assets/img/master.png' alt='Mastercard'>
<img src='http://doctor-hdd.ru/land/assetsById/41/assets/img/visa.png' alt='Visa'>
</div>
</div>
</div>
</div>
</section>
<section id="offer" class="offer">
<div class="container">
<div class="offer__right">
<h2 class="offer__title">Заказать бесплатную консультацию
специалиста</h2>
<div class="offer__form">
<form class="sltop__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0"
>
<div class="input-wrapper">
<span>
<input type="tel" placeholder="Ваш телефон" name="phone" required>
</span>
<button type="submit">Заказать звонок</button>
</div>
<input type="hidden" name="fullname" value="без имени">
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm" value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
</form>
<small>Нажимая кнопку “Заказать звонок” Вы соглашаетесь на обработку данных</small>
</div>
</div>
</div>
</section>
<section id="company" class="company">
<div class="container">
<div class="company-wrapper">
<div class="company__img" style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/company-img.jpg)'></div>
<div class="company__right">
<h2 class="company__title">О нашей компании</h2>
<div class="company__text">Компания «HDD FIRE» представляет собой профессиональную лабораторию,
специализирующуюся на восстановлении данных. Для восстановления файлов с жестких дисков HDD,
твердотельных накопителей SSD, флешек и карт памяти, а также других носителей наши квалифицированные
сотрудники используют специализированное ПО и приобретенные за годы работы навыки, поэтому выполняют
восстановление максимально быстро, качественно и с гарантией.
</div>
</div>
</div>
</div>
</section>
<section id="master" class="master">
<h2 class="master__title">Только опытные инженеры</h2>
<h2 class="master__subtitle">Каждый специалист проходит тщательный отбор и имеет опыт работы от 3-х лет</h2>
<div class="container">
<div class="master__slider">
<div class="swiper-container master-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="master__item-img"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/master/master1.jpg)'>
</div>
<div class="master__item-name">Виктор Вишневский (25 лет)</div>
<div class="master__item-text">Работает c 2018 года</div>
</div>
<div class="swiper-slide">
<div class="master__item-img"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/master/master2.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/master/2.jpg" alt="img"> -->
</div>
<div class="master__item-name">Антон Семенов (30 лет)</div>
<div class="master__item-text">Работает c 2014 года</div>
</div>
<div class="swiper-slide">
<div class="master__item-img"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/master/master3.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/master/3.jpg" alt="img"> -->
</div>
<div class="master__item-name">Андрей Волков (34 года)</div>
<div class="master__item-text">Работает c 2012 года</div>
</div>
</div>
</div>
<div class="slide-prev-master">
<svg class="left-arrow">
<use xlink:href="#left-arrow"></use>
</svg>
</div>
<div class="slide-next-master">
<svg class="right-arrow">
<use xlink:href="#left-arrow"></use>
</svg>
</div>
</div>
</div>
</section>
<section id="disc" class="disc" style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/disc-bg.jpg)'>
<div class="container">
<div class="disc-wrapper">
<div class="disc__left">
<div class="disc__title">Скидка 20% на восстановление данных с SSD
при заказе с сайта
</div>
<div class="disc__form">
<div class="disc__form-text">Оставьте заявку, чтобы успеть сэкономить</div>
<form class="sltop__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0"
>
<div class="input-wrapper">
<span>
<input type="tel" name="phone" placeholder="Ваш телефон" required>
</span>
<button type="submit">Оставить заявку</button>
</div>
<input type="hidden" name="fullname" value="без имени">
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm" value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
</form>
<small>Нажимая на кнопку “Оствить заявку” - вы даете согласие на обработку персональных
данных</small>
</div>
</div>
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/disc-img.png" class="disc__img" alt="img">
</div>
</div>
</section>
<section id="sect-feedback" class=" feedback section">
<div class="container" id="reviews">
<h2 class="title feedback__title">Отзывы наших клиентов</h2>
<div class="feedback__slider">
<div class="swiper-container feedback-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/1.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/2.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Оксана Бутенко</div>
<div class="feedback__age">32 года</div>
</div>
<div class="feedback__text">Хочу выразить благодарность за восстановление фотографий с
карты памяти.
Спасибо за
сохранение памяти об отпуске! Рекомендую этот сервис — хорошее отношение к клиентам
и цены не
кусаются!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/2.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/3.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Евгения Терентьева</div>
<div class="feedback__age">29 лет</div>
</div>
<div class="feedback__text">Обращалась по поводу восстановления данных с флешки. Важные
рабочие
документы были
восстановлены уже на следующий день. Очень благодарна за быструю и качественную
помощь!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/3.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/4.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Марина Шишкина</div>
<div class="feedback__age">25 лет</div>
</div>
<div class="feedback__text">В сервис обращалась для восстановления информации с SDD в
ноутбуке.
Восстановили всё
в полном объеме, очень рада, что когда искала сервис попала именно на вас, буду
теперь всем вас
советовать!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/4.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/5.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Диана Ильичева</div>
<div class="feedback__age">29 лет</div>
</div>
<div class="feedback__text">Понадобилось восстановить данные после форматирования диска.
Спасибо
мастерам,
справились на отлично, всю информацию удалось вернуть! Вы меня просто спасли! Низкий
поклон!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/6.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/6.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Анатолий Полтавский</div>
<div class="feedback__age">31 год</div>
</div>
<div class="feedback__text">На жестком диске появились поврежденные сектора и некоторые
файлы не
читались.
Заказал на сайте услугу восстановления. Что приятно, и восстановили быстро, и еще
скидку по акции
сделали.
Хороший сервис, обращайтесь, не пожалеете!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/7.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/7.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Василий Злобин</div>
<div class="feedback__age">27 лет</div>
</div>
<div class="feedback__text">Хочу оставить отзыв о данном сервисе. Сначала обращались для
восстановления
данных с
RAID массива в другой СЦ, там помочь не смогли, здесь все вернули без проблем и по
умеренной цене.
Мастера
действительно специалисты своего дела! Спасибо!
</div>
</div>
</div>
</div>
<div class="swiper-slide">
<div class="feedback__item">
<div class="feedback__left"
style='background-image: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/8.jpg)'>
<!-- <img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/feedback/7.jpg" alt="img"> -->
</div>
<div class="feedback__right">
<div class="feedback__top">
<div class="feedback__name">Александр Валиев</div>
<div class="feedback__age">28 лет</div>
</div>
<div class="feedback__text">Перестал определяться старый винчестер. Я было уже
попрощался со всей
информацией,
что на нем была, но спасибо ребятам из сервиса – восстановили всё. Настоящие
профессионалы, советую
обращаться
только в этот сервис!
</div>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-pagination"></div>
<div class="slide-prev-feedback">
<svg class="left-arrow">
<use xlink:href="#left-arrow"></use>
</svg>
</div>
<div class="slide-next-feedback">
<svg class="right-arrow">
<use xlink:href="#left-arrow"></use>
</svg>
</div>
</div>
</div>
</section>
<section id="sect-contacts" class="contacts section">
<a id="contacts" class="anchor"></a>
<div class="container">
<div class="row no-gutters">
<div class="col-lg-6 contacts__left">
<h2 class="contacts__title">
Наши контакты
</h2>
<form class="sltop__form contacts__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0"
>
<div class="contacts__form-title">
Задайте нам вопрос
</div>
<div class="contacts__form-row row">
<div class="input-wrapper">
<span> <input type="text" placeholder="Ваше имя" name="fullname"
class="contacts__input">
</span>
<span> <input type="tel" placeholder="Ваш телефон" name="phone" class="contacts__input"
required>
</span>
</div>
<textarea placeholder="Ваш комментарий" class="contacts__textarea"></textarea>
<div class="input-wrapper">
<button class="contacts__btn">
Отправить
</button>
<div class="contacts__accept">
Нажимая кнопку "Отправить" Вы соглашаетесь на обработку Ваших данных
</div>
</div>
</div>
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm" value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
</form>
</div>
</div>
</div>
<div id="yamap" class="contacts__map">
</div>
</section>
<div class="footer section">
<div class="container">
<div class="row align-items-center">
<div class="col-12 col-md-auto footer__logo">
<a href="#first" class="logo">
<img src="http://doctor-hdd.ru/land/assetsById/41/assets/img/logo.svg" alt="logo" width="32" height="50">
<div class="logo__text-wrap">
<span class="logo__text">
HDD Fire
</span>
<span class="logo__text2">
Мастера по восстановлению данных
</span>
</div>
</a>
</div>
<div class="col-lg order-last order-lg-0">
<nav class="footer__nav">
<a href="#prices" class="footer__link">
Прайс
</a>
<a href="#about" class="footer__link">
О нас
</a>
<a href="#reviews" class="footer__link">
Отзывы
</a>
<a href="#contacts" class="footer__link">
Контакты
</a>
</nav>
</div>
<div class="header__call col-md-auto order-last order-md-0">
<button class="header__call-btn open-form-js">
Заказать звонок
</button>
</div>
<!-- <div class="footer__bottom">
<a href="#" class="footer__politics">Политика
конфиденциальности</a>
<span>Представленная информация на сайте не является публичной офертой</span>
</div>-->
</div>
</div>
</div>
<!-- Модальное окно с формой заявки -->
<div class="modal fade" id="modalForm" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close modal__close" data-dismiss="modal" aria-label="Close">
<svg class="icon">
<use xlink:href="#close"></use>
</svg>
</button>
</div>
<div class="modal-body">
<div class="modal-form-wrap">
<div class="modal__title">
Связь с нами
</div>
<div class="modal__subtitle">
Заполните форму ниже и мы перезвоним<br class="d-none d-md-block"> Вам в течение 5 минут
</div>
<form class="sltop__form modal__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0">
<input type="text" class="modal__input" name="fullname" placeholder="Ваше имя">
<input type="tel" class="modal__input" name="phone" placeholder="Ваше телефон" required>
<button type="submit" class="modal__btn">Перезвоните мне</button>
<div class="modal__accept">
Нажимая кнопку “Перезвоните мне” Вы соглашаетесь на обработку Ваших персональных
данных
</div>
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm" value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
</form>
</div>
<div class="modal-success-wrap">
<div class="modal__title">
Спасибо
</div>
<div class="modal__subtitle">
Мы перезвоним Вам в течение 5 минут
</div>
<button class="modal__btn" data-dismiss="modal" aria-label="Close">Жду звонка</button>
</div>
</div>
</div>
</div>
</div>
<style>
.first {
background: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/promo/default/1.jpg) center/cover no-repeat !important;
}
.offer {
background: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/promo/default/5.jpg) center/cover no-repeat !important;
}
.first {
background: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/promo/default/1.jpg) center/cover no-repeat !important;
}
.offer {
background: url(http://doctor-hdd.ru/land/assetsById/41/assets/img/promo/default/5.jpg) center/cover no-repeat !important;
}
</style>
<script src="http://doctor-hdd.ru/land/assetsById/41/assets/js/vendors.min.js"></script>
<script src="http://doctor-hdd.ru/land/assetsById/41/assets/js/scripts.js"></script>
<style>
#yamap,
.yamap-psh {
overflow: hidden;
min-height: 490px;
}
</style>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_Ru&apikey=bb24e9c9-1ab7-46d6-8730-b21689b44f86"
type="text/javascript"></script>
<script src="/app/new/js/js.cookie.min.js"></script>
<script>
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
function getRandomArray(arr, n) {
var len = arr.length;
if (n > len) {
n = len;
}
var result = new Array(n),
taken = new Array(len);
while (n--) {
var x = Math.floor(Math.random() * len);
result[n] = arr[x in taken ? taken[x] : x];
taken[x] = --len in taken ? taken[len] : len;
}
return result;
}
(function () {
if (typeof ymaps !== 'undefined') {
ymaps.ready(init);
function renderMap(map, points) {
}
function init() {
var $city = window.detectedBranchData || {"id":777,"name":"","country":"rus"};
var $thread = {"id":39931,"part_id":27501,"hash":null,"idp":"817685d2-1726-4154-8e0733dde91d1ec0","title":"\u041a\u041f - \u041c\u0441\u043a 1","type":0,"is_pm":0,"tool_type":1,"tool_id":41,"created_at":"2024-01-24 16:13:40","updated_at":"2024-01-31 09:29:13","archived_at":null,"data":{"inn":null,"tel":"","ogrn":null,"fp_id":null,"ga_id":null,"mg_id":null,"tt_id":null,"vp_id":null,"ym_id":"18381154","zd_id":null,"domain":"doctor-hdd.ru","gtm_id":null,"city_id":["auto"],"subid_1":null,"subid_2":null,"subid_3":null,"yuraddr":null,"yurname":null,"lkVersion":"sl","show_city":"no","direction_id":1,"new_offer_id":1,"trafficSources":"\u0421\u0432\u043e\u0438 \u0441\u0430\u0439\u0442\u044b","use_lead_proxy":"yes","form_add_modals":"1","form_add_chatbot":"1","form_chatbot_job":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445","form_modal_delay":null,"form_modal_header":"\u0421\u043b\u043e\u043c\u0430\u043b\u0441\u044f \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a?","form_modal_number":"2","form_chatbot_delay":null,"form_chatbot_avatar":null,"form_modal_btn_text":null,"form_add_phonemodals":"0","form_modal_subheader":null,"form_modalphone_delay":null,"form_modalphone_header":null,"form_modalphone_btn_text":null,"form_modalphone_subheader":null,"form_chatbot_active-dialog":"1","form_chatbot_operator-name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d","form_chatbot_active-dialog_delay":null,"form_chatbot_writing__operator_long_delay":null,"form_chatbot_writing__operator_short_delay":null}};
// console.log($city);
// console.log($thread);
if (parseInt($city.id) === 777) {
ymaps.geolocation.get({
// Выставляем опцию для определения положения по ip
provider: 'yandex',
// Карта автоматически отцентрируется по положению пользователя.
mapStateAutoApply: true
}).then(function (result) {
var mapElements = document.querySelectorAll('#yamap');
if (mapElements.length > 1) {
for (var iii = 0; iii < mapElements.length; iii++) {
mapElements[iii].id = 'yamap'.concat(iii);
}
}
var yaMaps = [];
for (var iii = 0; iii < mapElements.length; iii++) {
// var myMap = new ymaps.Map('yamap', {
var myMap = new ymaps.Map(mapElements[iii].id, {
center: result.geoObjects.get(0).geometry.getCoordinates(),
zoom: 9
});
yaMaps.push(myMap);
myMap.geoObjects.add(result.geoObjects);
// Масштабируем карту на область видимости геообъекта.
myMap.setBounds(bounds, {
// Проверяем наличие тайлов на данном масштабе.
checkZoomRange: true
});
}
});
} else {
// Поиск координат центра
ymaps.geocode($city.name ? $city.name : 'Россия', {
results: 1
}).then(function (res) {
// Выбираем первый результат геокодирования.
var firstGeoObject = res.geoObjects.get(0),
// Координаты геообъекта.
coords = firstGeoObject.geometry.getCoordinates(),
// Область видимости геообъекта.
bounds = firstGeoObject.properties.get('boundedBy');
var mapElements = document.querySelectorAll('#yamap');
if (mapElements.length > 1) {
for (var iii = 0; iii < mapElements.length; iii++) {
mapElements[iii].id = 'yamap'.concat(iii);
}
}
var yaMaps = [];
for (var iii = 0; iii < mapElements.length; iii++) {
// var myMap = new ymaps.Map('yamap', {
var myMap = new ymaps.Map(mapElements[iii].id, {
center: coords,
zoom: 7
});
myMap.behaviors.disable('scrollZoom');
var isMobile = {
Android: function () {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function () {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function () {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function () {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function () {
return navigator.userAgent.match(/IEMobile/i);
},
any: function () {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
}
if (isMobile.any()) {
myMap.behaviors.disable('drag');
}
yaMaps.push(myMap);
// Масштабируем карту на область видимости геообъекта.
myMap.setBounds(bounds, {
// Проверяем наличие тайлов на данном масштабе.
checkZoomRange: true
});
}
// if (parseInt($('body').data('ls_type')) === 5) {
if (parseInt($thread.type) === 5) {
var points = [firstGeoObject.geometry.getCoordinates()];
} else {
var points = Cookies.getJSON($city.id + '-points');
}
if (points === undefined) {
$.ajax({
dataType: "json",
url: 'data.json',
data: '',
success: function (data) {
var pointsAll = data[$city.name];
var points = [];
if (pointsAll !== undefined) {
points = getRandomArray(pointsAll, 20);
} else {
points = [];
for (var prop in data) {
if (data.hasOwnProperty(prop)) {
points = points.concat(getRandomArray(data[prop], 5));
}
}
}
var points2 = [];
points.forEach((item) => {
item = [
item[1] + item[1] / getRandom(50000, 100000),
item[0] + item[0] / getRandom(50000, 100000)
];
points2.push(item);
var myPlacemark = new ymaps.Placemark(item, {});
for (var iii = 0; iii < yaMaps.length; iii++) {
yaMaps[iii].geoObjects.add(myPlacemark);
}
});
Cookies.set($city.id + '-points', points2, {expires: 1 / 24});
}
});
} else {
points.forEach((item) => {
var myPlacemark = new ymaps.Placemark(item, {});
for (var iii = 0; iii < yaMaps.length; iii++) {
yaMaps[iii].geoObjects.add(myPlacemark);
}
});
}
});
}
}
}
})();
</script>
<script>
// var telLinks = document.querySelectorAll('[href^="tel:"]:not(.zphone)');
// var telClasses = 'zphone phone-marker'.split(' ');
var telClasses = 'zphone phone-marker'.split(' ');
var telLinks = document.querySelectorAll('[href^="tel:"]');
for (var i = 0; i < telLinks.length; i++) {
for (var j = 0; j < telClasses.length; j++) {
if (telClasses[j] !== '') {
telLinks[i].classList.add(telClasses[j]);
}
}
}
</script>
<script>
var thread = {"id":39931,"part_id":27501,"hash":null,"idp":"817685d2-1726-4154-8e0733dde91d1ec0","title":"\u041a\u041f - \u041c\u0441\u043a 1","type":0,"is_pm":0,"tool_type":1,"tool_id":41,"created_at":"2024-01-24 16:13:40","updated_at":"2024-01-31 09:29:13","archived_at":null,"data":{"inn":null,"tel":"","ogrn":null,"fp_id":null,"ga_id":null,"mg_id":null,"tt_id":null,"vp_id":null,"ym_id":"18381154","zd_id":null,"domain":"doctor-hdd.ru","gtm_id":null,"city_id":["auto"],"subid_1":null,"subid_2":null,"subid_3":null,"yuraddr":null,"yurname":null,"lkVersion":"sl","show_city":"no","direction_id":1,"new_offer_id":1,"trafficSources":"\u0421\u0432\u043e\u0438 \u0441\u0430\u0439\u0442\u044b","use_lead_proxy":"yes","form_add_modals":"1","form_add_chatbot":"1","form_chatbot_job":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445","form_modal_delay":null,"form_modal_header":"\u0421\u043b\u043e\u043c\u0430\u043b\u0441\u044f \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a?","form_modal_number":"2","form_chatbot_delay":null,"form_chatbot_avatar":null,"form_modal_btn_text":null,"form_add_phonemodals":"0","form_modal_subheader":null,"form_modalphone_delay":null,"form_modalphone_header":null,"form_modalphone_btn_text":null,"form_modalphone_subheader":null,"form_chatbot_active-dialog":"1","form_chatbot_operator-name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d","form_chatbot_active-dialog_delay":null,"form_chatbot_writing__operator_long_delay":null,"form_chatbot_writing__operator_short_delay":null}};
</script>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (m, e, t, r, i, k, a) {
m[i] = m[i] || function () {
(m[i].a = m[i].a || []).push(arguments)
};
m[i].l = 1 * new Date();
k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a)
})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(window.thread.data.ym_id, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
</script>
<noscript>
<div><img src="https://mc.yandex.ru/watch/18381154" style="position:absolute; left:-9999px;"
alt=""/></div>
</noscript>
<!-- /Yandex.Metrika counter -->
<script src="/app/new/js/js.cookie.min.js"></script>
<script>
(function ($) {
$(function () {
window.$ = jQuery.noConflict();
window.Cookies2 = Cookies;
var thread = {"id":39931,"part_id":27501,"hash":null,"idp":"817685d2-1726-4154-8e0733dde91d1ec0","title":"\u041a\u041f - \u041c\u0441\u043a 1","type":0,"is_pm":0,"tool_type":1,"tool_id":41,"created_at":"2024-01-24 16:13:40","updated_at":"2024-01-31 09:29:13","archived_at":null,"data":{"inn":null,"tel":"","ogrn":null,"fp_id":null,"ga_id":null,"mg_id":null,"tt_id":null,"vp_id":null,"ym_id":"18381154","zd_id":null,"domain":"doctor-hdd.ru","gtm_id":null,"city_id":["auto"],"subid_1":null,"subid_2":null,"subid_3":null,"yuraddr":null,"yurname":null,"lkVersion":"sl","show_city":"no","direction_id":1,"new_offer_id":1,"trafficSources":"\u0421\u0432\u043e\u0438 \u0441\u0430\u0439\u0442\u044b","use_lead_proxy":"yes","form_add_modals":"1","form_add_chatbot":"1","form_chatbot_job":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445","form_modal_delay":null,"form_modal_header":"\u0421\u043b\u043e\u043c\u0430\u043b\u0441\u044f \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a?","form_modal_number":"2","form_chatbot_delay":null,"form_chatbot_avatar":null,"form_modal_btn_text":null,"form_add_phonemodals":"0","form_modal_subheader":null,"form_modalphone_delay":null,"form_modalphone_header":null,"form_modalphone_btn_text":null,"form_modalphone_subheader":null,"form_chatbot_active-dialog":"1","form_chatbot_operator-name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d","form_chatbot_active-dialog_delay":null,"form_chatbot_writing__operator_long_delay":null,"form_chatbot_writing__operator_short_delay":null}};
function openModal() {
$('.x-modal').addClass('open');
}
function closeModal() {
$('.x-modal').removeClass('open');
Cookies2.set('no-popups', true, {
expires: 7,
path: '/'
});
}
$('.x-modal .content-wrapper').on('click', function (e) {
e.stopPropagation();
});
$('.x-modal, .x-modal .close').on('click', function () {
closeModal();
});
$('.x-modal form').on('submit', function () {
Cookies2.set('no-popups', true, {
expires: 7,
path: '/'
});
})
// если cookie не установлено появится окно
// $(document).mousemove(function (e) {
// // console.log(e.screenY);
// // var Y = e.pageY;
// var Y = e.screenY;
// if (Y <= 20 && performance.now() > 1000) { // 10000 - 10 секунд
// $('#modal1').modal('show')
// }
// });
var delay = parseInt(thread.data.form_modal_delay || 10) * 1000;
$(document).mouseleave(function () {
if (!Cookies2.get('no-popups') && performance.now() > delay) {
openModal();
}
});
// openModal();
});
})(jQuery);
</script>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=display" rel="stylesheet">
<style>
.x-modal {
font-family: "Noto Sans", sans-serif !important;
font-size: 16px;
font-weight: 300;
font-smooth: auto;
line-height: 1.5;
color: #444;
background-color: slategray;
}
.x-modal * {
box-sizing: border-box !important;
}
.x-modal input {
font-family: "Noto Sans", sans-serif !important;
height: auto;
font-weight: normal;
}
button {
cursor: pointer;
}
/*body {*/
/* position: relative;*/
/* display: flex;*/
/* width: 100%;*/
/* height: 100vh;*/
/* align-items: center;*/
/* justify-content: center;*/
/*}*/
.x-modal {
position: fixed;
z-index: 9999;
top: 0;
left: 0;
display: flex;
overflow: hidden;
height: 0vh;
background-color: transparent;
transition: background-color 0.25s ease;
align-items: center;
justify-content: center;
}
.x-modal.open {
position: fixed;
width: 100%;
height: 100vh;
background-color: rgba(0, 0, 0, 0.5);
transition: background-color 0.25s;
}
.x-modal.open > .content-wrapper {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.x-modal .content-wrapper {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
background-color: white;
border-radius: 10px;
-webkit-box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.5);
box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.5);
-webkit-transition: -webkit-transform 0.25s;
transition: -webkit-transform 0.25s;
-o-transition: transform 0.25s;
transition: transform 0.25s;
transition: transform 0.25s, -webkit-transform 0.25s;
-webkit-transition-delay: 0.15s;
-o-transition-delay: 0.15s;
transition-delay: 0.15s;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.x-modal .content-wrapper .close {
position: absolute;
z-index: 99;
top: 0.5rem;
right: 0.5rem;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
width: 2.5rem;
height: 2.5rem;
font-size: 1.5rem;
background-color: transparent;
border: none;
-webkit-transition: 0.25s linear;
-o-transition: 0.25s linear;
transition: 0.25s linear;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.x-modal .content-wrapper .close:before,
.x-modal .content-wrapper .close:after {
position: absolute;
width: 1.25rem;
height: 0.125rem;
content: "";
cursor: pointer;
background-color: black;
}
.x-modal-3:not(.x-modal-3) .content-wrapper .close:after {
content: "";
right: -80px;
top: -85px;
width: 140px;
height: 140px;
background: #0094fd;
z-index: -1;
position: absolute;
border-radius: 100%;
}
.x-modal .content-wrapper .close:before {
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.x-modal .content-wrapper .close:after {
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.x-modal-3 .content-wrapper .close {
right: -70px;
top: -70px;
width: 140px;
height: 140px;
background: #0094fd;
border-radius: 100%;
}
.x-modal-3 .content-wrapper .close:after,
.x-modal-3 .content-wrapper .close:before {
left: 35px;
bottom: 45px;
-webkit-transition: 0.25s linear;
-o-transition: 0.25s linear;
transition: 0.25s linear;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.modal:not(.x-modal-3) .content-wrapper .close {
right: 1rem;
}
}
.modal:not(.x-modal-3) .content-wrapper .close:hover:before,
.modal:not(.x-modal-3) .content-wrapper .close:hover:after {
background-color: #ff8001;
}
.x-modal-3 .content-wrapper .close:hover:after,
.x-modal-3 .content-wrapper .close:hover:before {
background-color: #fff;
}
.x-modal .content-wrapper .content {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -15px;
margin-left: -15px;
}
.d-flex {
display: -ms-flexbox;
display: flex;
}
.d-none {
display: none;
}
.x-col-12,
.x-col-md-8,
.x-col-md-4,
.x-col-md-7,
.x-col-md-5 {
position: relative;
width: 100%;
padding-right: 15px;
padding-left: 15px;
}
.x-col-12 {
max-width: 100%;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
}
@media (min-width: 768px) {
.x-col-md-4 {
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.x-col-md-5 {
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.x-col-md-7 {
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.x-col-md-8 {
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.d-md-block {
display: block;
}
}
.bg {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
}
@media screen and (max-width: 991px) {
.bg {
background-position: left center;
}
}
.x-modal-1 .content-wrapper,
.x-modal-2 .content-wrapper {
max-width: 750px;
width: 98%;
}
.x-modal-3 .content-wrapper {
max-width: 920px;
width: 98%;
overflow: hidden;
}
.x-modal-backdrop.show {
opacity: 0.9;
}
.x-modal .x-modal-content {
border: 0;
overflow: hidden;
border-radius: 10px;
}
.x-modal__title {
font-size: 32px;
margin-bottom: 20px;
line-height: 1;
}
.x-modal__text {
font-size: 14px;
margin-bottom: 20px;
line-height: 1.3;
}
.x-modal__form input {
width: 100%;
font-size: 14px;
text-align: center;
border-radius: 20px;
border: 2px solid #e8e8e8;
padding: 12px 10px;
line-height: 1;
outline: none !important;
}
.x-modal__form button {
width: 100%;
background: #292929;
color: white;
border: 1px solid transparent;
padding: 14px 10px;
line-height: 1;
font-size: 14px;
text-align: center;
border-radius: 20px;
outline: none;
cursor: pointer;
-webkit-transition: all 0.3s;
-o-transition: all 0.3s;
transition: all 0.3s;
}
.x-modal__form button:hover {
background: transparent;
color: #292929;
border: 1px solid #292929;
}
.x-modal__agree {
margin-top: 20px;
font-size: 12px;
}
.x-modal__item {
width: 100%;
}
.x-modal__item:first-child {
padding-right: 10px;
}
.x-modal-1 .x-modal__left {
min-height: 400px;
}
.x-modal-1 .x-modal__left img {
position: absolute;
bottom: 0;
left: 10px;
}
.x-modal-1 .x-modal__right {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
padding: 20px 50px;
}
.x-modal-2 .x-modal-wrap {
padding: 70px;
text-align: center;
border-radius: 10px;
}
.x-modal-2 .x-modal__title {
margin-bottom: 50px;
}
.x-modal-2 .x-modal__text {
font-size: 22px;
margin-bottom: 50px;
}
.x-modal-2 .form__row {
max-width: 460px;
margin: 0 auto;
}
.x-modal-2 .x-modal__form input,
.x-modal-2 .x-modal__form button {
font-size: 16px;
}
.x-modal-2 .x-modal__agree {
font-size: 14px;
}
.x-modal-3 .x-modal-wrap {
width: 100%;
}
.x-modal-3 .x-modal__right {
padding-top: 70px;
padding-bottom: 60px;
padding-left: 30px;
padding-right: 40px;
}
.x-modal-3 .x-modal__title {
font-size: 22px;
line-height: 1.3;
}
.x-modal-3 .x-modal__text {
font-size: 18px;
margin-bottom: 30px;
}
.x-modal-3 .x-modal__agree {
font-size: 12px;
line-height: 1.2;
margin-top: 5px;
padding-right: 30px;
}
.x-modal-3 .x-modal__form input {
font-size: 18px;
border-radius: 40px;
padding: 14px 10px;
margin-bottom: 15px;
}
.x-modal-3 .x-modal__form button {
font-size: 18px;
border-radius: 40px;
padding: 20px 10px;
margin-bottom: 15px;
}
@media screen and (max-width: 767px) {
.x-modal__form {
max-width: 320px;
margin: 10px auto;
}
.bg {
background-image: none !important;
}
.x-modal-1 .content-wrapper,
.x-modal-2 .content-wrapper,
.x-modal-3 .content-wrapper {
width: 96%;
margin: 20px auto;
}
.modal:not(.x-modal-3) .content-wrapper .close {
top: 0;
right: 0;
}
.x-modal-1 {
text-align: center;
}
.form__row {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.x-modal__item {
width: 100%;
}
.x-modal__item:first-child {
padding-right: 0;
margin-bottom: 10px;
}
.x-modal-2 .x-modal-wrap {
padding: 60px 30px;
}
.x-modal-2 .x-modal__title {
margin-bottom: 30px;
font-size: 28px;
}
.x-modal-2 .x-modal__text {
font-size: 18px;
margin-bottom: 30px;
}
.x-modal-2 .form__row {
max-width: 320px;
}
.x-modal-3 .x-modal__right {
padding: 60px 30px !important;
}
.x-modal-3 {
text-align: center;
}
}
form.x-modal__form {
display: block;
}
</style>
<div class="modal x-modal x-modal-2" data-modal="trigger-2">
<article class="content-wrapper">
<button class="close"></button>
<div class="x-modal-wrap bg" style="background-image: url(land/inc/popups/1/bg_modal2.png);">
<div class="x-modal__title x-modal__title--big">
Сломался жесткий диск?
</div>
<div class="x-modal__text x-modal__text--big">
Оставьте свой номер и мы бесплатно, по телефону, проведём экспресс диагностику.
</div>
<form
class="sltop__form x-modal__form"
action="/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0"
method="post"
>
<input type="hidden" name="hidden" value="Форма при закрытии сайта">
<div class="d-flex form__row">
<div class="x-modal__item">
<input type="tel" name="phone" placeholder="Ваш телефон" required>
</div>
<div class="x-modal__item">
<button type="submit">
Получить диагностику
</button>
</div>
</div>
<div class="x-modal__agree">
Нажимая кнопку Вы соглашаетесь на обработку данных
</div>
<input type="hidden" name="fullname" value="без имени">
<input type="hidden" name="view_id" value="94738929">
<input type="hidden" name="branch_id" value="777">
<input type="hidden" name="idp" value="817685d2-1726-4154-8e0733dde91d1ec0">
<input type="hidden" name="is_pm"
value="false">
<input type="hidden" name="thread_id" value="39931">
<input type="hidden" name="thread_type" value="1">
<input type="hidden" name="direction_id" value="1">
<input type="hidden" name="offer_id" value="1">
</form>
</div>
</article>
</div>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&family=Roboto:wght@100&display=swap"
rel="stylesheet">
<style>
.open-chatbot_btn {
width: 335px;
height: 45px;
background: linear-gradient(85.72deg, rgba(67, 116, 200, 0.45) -68.09%, rgba(37, 49, 70, 0.45) 58.38%), #253146;
box-shadow: -20px 16px 45px rgba(0, 0, 0, 0.15);
border-top-left-radius: 7px;
border-top-right-radius: 7px;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
right: 30px;
bottom: 0;
padding-left: 25px;
padding-right: 17px;
z-index: 999;
cursor: pointer;
transform: translateY(100%);
transition: 0.3s all;
}
.open-chatbot_btn.active {
transform: translateY(0);
}
.chatbot_btn__text-conv__item {
font-family: 'Open Sans', sans-serif;
font-style: normal;
font-weight: 600;
font-size: 15px;
color: #FFFFFF;
position: relative;
display: none;
margin-bottom: 0;
}
.chatbot_btn__text-conv__item.text-conv_active {
display: block;
}
.chatbot_btn__text-conv__item::after {
content: '';
position: absolute;
width: 8px;
height: 8px;
background-color: #1FDF00;
right: -15px;
top: 7px;
border-radius: 100%;
animation-name: blink;
animation-timing-function: linear;
animation-duration: 1.5s;
animation-iteration-count: infinite;
}
@keyframes blink {
50% {
opacity: 0;
}
}
.chatbot_btn__dotes {
display: flex;
align-items: center;
justify-content: center;
}
.chatbot_btn__dote {
width: 4px;
height: 4px;
background-color: #495E86;
border-radius: 100%;
position: relative;
}
.chatbot_btn__dote:before {
content: '';
position: absolute;
width: 4px;
height: 4px;
background-color: #495E86;
border-radius: 100%;
top: 0;
left: -9.5px;
}
.chatbot_btn__dote:after {
content: '';
position: absolute;
width: 4px;
height: 4px;
background-color: #495E86;
border-radius: 100%;
top: 0;
left: -19px;
}
.chatbot-window {
width: 335px;
position: fixed;
right: 30px;
bottom: 0;
z-index: 999;
transition: 0.3s all;
transform: translateY(100%);
box-shadow: 0px 40px 75px rgba(0, 0, 0, 0.25);
}
.chatbot-window.active {
transform: translateY(0);
}
.chatbot-window.active_mini {
transform: translateY(428px);
}
.chatbot-window.active_mini .chatbot__header__cross {
opacity: 0;
visibility: hidden;
}
.chatbot-window.active_mini .chatbot__header {
cursor: pointer;
}
.chatbot__header {
background: linear-gradient(85.72deg, rgba(67, 116, 200, 0.45) -68.09%, rgba(37, 49, 70, 0.45) 58.38%), #253146;
box-shadow: 0px 40px 75px rgba(0, 0, 0, 0.25);
border-top-left-radius: 7px;
border-top-right-radius: 7px;
display: flex;
align-items: center;
padding: 15px;
}
.chatbot__header__avatar {
width: 37px;
height: 37px;
background-size: cover;
background-position: center;
margin-right: 15px;
background-color: rgba(37, 49, 70, 0.45);
border-radius: 100%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
flex: none;
}
.chatbot__header__avatar__img {
border-radius: 100%;
width: 100%;
height: 100%;
object-fit: cover;
}
.chatbot__header__avatar:before {
content: '';
position: absolute;
right: 4px;
bottom: 0;
width: 7px;
height: 7px;
background-color: #1FDF00;
border-radius: 100%;
}
.chatbot__header__name {
font-family: 'Open Sans', sans-serif;
font-style: normal;
font-weight: 600;
color: #FFFFFF;
font-size: 15px;
margin-bottom: 1px;
line-height: 20px;
}
.chatbot__header__job {
font-family: 'Open Sans', sans-serif;
font-style: normal;
font-weight: 400;
margin-bottom: 0;
font-size: 13px;
color: #D6D6D6;
}
.chatbot__header__cross {
width: 25px;
height: 25px;
background: #495E86;
border: 1px solid #172640;
border-radius: 100%;
margin-left: auto;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
cursor: pointer;
transition: 0.3s all;
flex: none;
}
.chatbot__header__cross:hover {
opacity: 0.7;
}
.chatbot__header__cross_icon {
width: 11px !important;
height: 11px !important;
margin: 0 !important;
}
.chatbot__body {
background-color: white;
position: relative;
}
.chatbot__body__cont {
height: 320px;
overflow-y: auto;
padding-top: 15px;
display: flex;
flex-direction: column;
align-items: flex-start;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 26px;
}
.chatbot__body__cont::-webkit-scrollbar {
width: 3px;
background: transparent;
height: 100%;
}
.chatbot__body__cont::-webkit-scrollbar-thumb {
width: 3px;
background-color: rgba(26, 24, 47, 0.1);
border-radius: 5px;
}
.textarea__message_ch::-webkit-scrollbar {
width: 3px;
background: transparent;
height: 100%;
}
.textarea__message_ch::-webkit-scrollbar-thumb {
width: 3px;
background-color: rgba(26, 24, 47, 0.1);
border-radius: 5px;
}
.chatbot__footer {
height: 108px;
background-color: white;
border-top: 1px solid #E8EBF1;
padding: 15px;
}
.chatbot__body__list-mes {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-end;
align-self: flex-end;
}
.padding-mes {
margin-bottom: 10px;
}
.chatbot__body__list-mes__item {
font-family: 'Open Sans', sans-serif;
text-align: right;
padding: 9px 12px;
border: 2px solid #8A9FC7;
line-height: 22px;
font-size: 15px;
font-style: normal;
font-weight: 400;
color: #8A9FC7;
border-radius: 17px;
border-bottom-right-radius: 0;
cursor: pointer;
transition: 0.3s all;
}
.chatbot__body__list-mes__item:hover {
border-color: #7081a2;
color: #7081a2;
}
.chatbot__body__message-operator {
display: flex;
flex-direction: column;
align-items: flex-start;
max-width: 94%;
}
.chatbot__body__message-operator__item {
font-family: 'Open Sans', sans-serif !important;
font-style: normal !important;
font-weight: 400 !important;
font-size: 15px !important;
color: #222D38 !important;
background: #E8EBF1 !important;
border-radius: 17px !important;
border-bottom-left-radius: 0 !important;
padding: 12px 15px !important;
line-height: 20px !important;
}
.chatbot__body__message-client {
align-self: flex-end;
max-width: 93%;
display: flex;
flex-direction: column;
align-items: flex-end;
}
.chatbot__body__message-client__item {
font-family: 'Open Sans', sans-serif !important;
font-style: normal !important;
font-weight: 400 !important;
font-size: 15px !important;
color: #222D38 !important;
background: #DFF2FF !important;
border-radius: 17px !important;
border-bottom-right-radius: 0 !important;
padding: 12px 15px !important;
line-height: 20px !important;
max-width: 100%;
overflow: hidden;
}
.chatbot__body__message-operator_name {
font-family: 'Open Sans', sans-serif;
color: #AAB7C7;
font-style: normal;
font-weight: 400;
font-size: 14px;
margin-bottom: 5px;
margin-top: 17px !important;
}
.chatbot__body__form-cont {
width: 100%;
margin-bottom: 15px;
position: absolute;
left: 0;
top: 0;
height: 100%;
background-color: white;
display: flex;
flex-direction: column;
justify-content: center;
padding-left: 15px;
padding-right: 15px;
z-index: 2;
}
.chatbot__body__form__title {
font-family: 'Open Sans', sans-serif;
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 400;
color: #AAB7C7;
margin-bottom: 5px !important;
margin-top: 15px !important;
}
.chatbot__body__form {
position: relative !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: auto !important;
border: 0 !important;
box-shadow: 0px 0px 45px rgba(60, 75, 100, 0.1) !important;
border-radius: 8px !important;
border-top: 2px solid #009AFF;
padding: 20px 16px !important;
display: block !important;
}
.chatbot__body__form:before {
content: '' !important;
display: none !important;
}
.chatbot__body__form:after {
content: '' !important;
display: none !important;
}
.chatbot__body__form__input {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
color: #AAB7C7 !important;
font-style: normal !important;
font-weight: 400 !important;
color: #AAB7C7 !important;
padding: 10px 20px !important;
border: 1px solid #E8EBF1 !important;
border-radius: 4px !important;
transition: 0s all !important;
color: #222D38 !important;
appearance: none !important;
outline: none !important;
box-shadow: none !important;
background: white !important;
width: 100% !important;
max-width: 100% !important;
position: relative !important;
display: block !important;
line-height: initial !important;
height: auto !important;
text-align: left !important;
margin: 0 !important;
cursor: text !important;
}
.chatbot__body__form__input::-webkit-input-placeholder {
font-family: 'Open Sans', sans-serif !important;
color: #AAB7C7 !important;
font-size: 15px !important;
}
.chatbot__body__form__input::-moz-placeholder {
font-family: 'Open Sans', sans-serif !important;
color: #AAB7C7 !important;
font-size: 15px !important;
}
.chatbot__body__form__input:-moz-placeholder {
font-family: 'Open Sans', sans-serif !important;
color: #AAB7C7 !important;
font-size: 15px !important;
}
.chatbot__body__form__input:-ms-input-placeholder {
font-family: 'Open Sans', sans-serif !important;
color: #AAB7C7 !important;
font-size: 15px !important;
}
.chatbot__body__form__input-cont {
margin-bottom: 20px;
}
.chatbot__body__form__submit {
font-family: 'Open Sans', sans-serif !important;
width: 100% !important;
height: 40px !important;
background: #009AFF !important;
border-radius: 4px !important;
font-style: normal !important;
font-weight: 600 !important;
font-size: 15px !important;
color: #FFFFFF !important;
text-align: center !important;
border-radius: 4px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
transition: 0.3s all !important;
appearance: none !important;
outline: none !important;
outline: none !important;
appearance: none !important;
box-shadow: none !important;
border: none !important;
padding: 0 !important;
margin: 0 !important;
text-transform: inherit !important;
max-width: 100% !important;
cursor: pointer !important;
}
.chatbot__body__form__submit:before {
display: none !important;
}
.chatbot__body__form__submit:after {
display: none !important;
}
.chatbot__body__form__submit:hover {
background: #0281d4 !important;
}
.chatbot__footer__cont {
display: flex;
align-items: flex-start;
}
.textarea__message_ch {
color: #222D38 !important;
font-family: 'Open Sans', sans-serif !important;
width: 100% !important;
height: 80px !important;
max-height: 80px !important;
font-style: normal !important;
font-weight: 400 !important;
font-size: 15px !important;
appearance: none !important;
outline: none !important;
resize: none !important;
cursor: text !important;
border: none !important;
box-shadow: none !important;
padding: 0 !important;
background-color: white;
border: none !important;
border-radius: 0 !important;
}
.textarea__message_ch::-webkit-input-placeholder {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
color: #8A9FC7 !important;
}
.textarea__message_ch::-moz-placeholder {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
color: #8A9FC7 !important;
}
.textarea__message_ch:-moz-placeholder {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
color: #8A9FC7 !important;
}
.textarea__message_ch:-ms-input-placeholder {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
color: #8A9FC7 !important;
}
.textarea__block {
width: 100%;
}
.btn_messend__block {
margin-left: 12px;
width: 40px;
}
.btn__message-send {
width: 40px !important;
height: 40px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
background: #3BC123 !important;
border-radius: 7px !important;
transition: 0.3s all !important;
outline: none !important;
appearance: none !important;
box-shadow: none !important;
border: none !important;
padding: 0 !important;
box-shadow: none !important;
cursor: pointer !important;
}
.btn__message-send:hover {
background: #2fa01a !important;
}
.btn__message-send_arrow {
width: 16px !important;
height: 16px !important;
margin: 0 !important;
}
.chatbot__body__writes {
position: absolute;
left: 0;
bottom: 0;
height: 35px;
width: 100%;
background-color: white;
display: flex;
align-items: center;
padding-left: 15px;
transition: 0.3s all;
opacity: 0;
visibility: hidden;
}
.chatbot__body__writes__text {
font-family: 'Open Sans', sans-serif !important;
margin-bottom: 0;
font-style: normal;
font-weight: 400;
font-size: 14px;
color: #AAB7C7;
}
.chatbot__body__writes.active {
opacity: 1;
visibility: visible;
}
.chatbot__body__anchor-footer {
position: absolute;
width: 37px;
height: 37px;
bottom: 51px;
right: 15px;
background-color: white;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
border-radius: 100%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: 0.3s all;
opacity: 0;
visibility: hidden;
}
.chatbot__body__anchor-footer.active {
opacity: 1;
visibility: visible;
}
.chatbot__body__anchor-footer.active:hover {
opacity: 0.7;
}
.chatbot__body__anchor-footer__arrow {
width: 13px;
height: 8px;
bottom: -1px;
position: relative;
}
.open-chatbot_btn p,
.chatbot-window p {
line-height: initial !important;
margin-top: 0;
}
.open-chatbot_btn,
.chatbot-window {
letter-spacing: initial !important;
font-family: 'Open Sans', sans-serif !important;
font-style: normal !important;
}
.open-chatbot_btn__mobile {
display: none !important;
width: 65px;
height: 65px;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
right: 20px;
bottom: 20px;
background: linear-gradient(85.72deg, rgba(67, 116, 200, 0.45) -68.09%, rgba(37, 49, 70, 0.45) 58.38%), #253146;
border-radius: 100%;
box-shadow: -10px 11px 45px rgb(0 0 0 / 56%);
z-index: 999;
transform: translateY(179%);
transition: 0.3s all;
}
.open-chatbot_btn__mobile__icon {
fill: white;
width: 35px;
}
.open-chatbot_btn__mobile.active {
transform: translateY(0);
}
.open-chatbot__active-invitation__mobile {
width: 200px;
background-color: white;
padding: 16px 20px;
right: 20px;
bottom: 20px;
position: fixed;
box-shadow: 0 0 30px 0 hsl(0deg 0% 62% / 44%), 0 2px 4px 0 rgb(0 0 0 / 7%);
border-radius: 8px !important;
z-index: 999;
transform: translateX(150%);
transition: 0.3s ease-in-out all;
}
.open-chatbot__active-invitation__mobile.active {
transform: translateX(0);
}
.open-chatbot__active-invitation__mobile__header {
display: flex;
align-items: center;
margin-bottom: 7px;
}
.open-chatbot__active__avatar {
width: 28px;
height: 28px;
background-size: cover;
background-position: center;
margin-right: 10px;
background-color: rgba(37, 49, 70, 0.45);
border-radius: 100%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
flex: none;
}
.open-chatbot__active__avatar:before {
content: '';
position: absolute;
right: 3px;
bottom: 0;
width: 6px;
height: 6px;
background-color: #1FDF00;
border-radius: 100%;
}
.open-chatbot__active__avatar__img__mobile {
border-radius: 100%;
width: 100%;
height: 100%;
object-fit: cover;
}
.open-chatbot__active__name {
font-family: 'Open Sans', sans-serif;
font-style: normal;
font-weight: 400 !important;
color: #8e8d90 !important;
font-size: 13px !important;
margin-bottom: 0 !important;
}
.open-chatbot__active-invitation__mobile__text {
font-family: 'Open Sans', sans-serif !important;
font-style: normal !important;
font-weight: 400 !important;
font-size: 14px !important;
color: #222D38 !important;
margin-bottom: 0 !important;
line-height: 18px !important;
}
.chatbot__active-invitation__cross1 {
opacity: 0.3;
align-self: center;
width: 20px;
height: 20px;
flex: none;
}
.chatbot__active-invitation__cross1 .chatbot__header__cross_icon {
width: 8px !important;
height: 8px !important;
}
@media (max-width: 991px) {
.open-chatbot_btn {
display: none !important;
}
.open-chatbot_btn__mobile {
display: flex !important;
}
.chatbot-window.active_mini {
transform: translateY(520px);
}
}
@media (max-width: 397px) {
.chatbot-window {
width: 100%;
right: 0;
}
}
</style>
<div class="open-chatbot_btn" id="open-chatbot_btn">
<div class="chatbot_btn__text-conv">
<p class="chatbot_btn__text-conv__item text-conv_active">Напишите нам, мы online</p>
<p class="chatbot_btn__text-conv__item">Новое сообщение!</p>
</div>
<div class="chatbot_btn__dotes">
<div class="chatbot_btn__dote"></div>
</div>
</div>
<div class="open-chatbot_btn__mobile" id="open-chatbot_btn__mobile">
<svg class="open-chatbot_btn__mobile__icon" enable-background="new 0 0 512 512" viewBox="0 0 512 512"
xmlns="http://www.w3.org/2000/svg">
<g>
<path
d="m354.03 31.622h-296.13c-31.93 0-57.9 25.97-57.9 57.9v259.5c0 12.29 13.899 19.218 23.71 12.21l82.47-58.84c6.92-4.93 15.06-7.54 23.56-7.54h181.39c31.93 0 57.9-25.97 57.9-57.9v-190.33c0-8.28-6.72-15-15-15zm-72.86 181.71h-173.31c-8.28 0-15-6.71-15-15 0-8.28 6.72-15 15-15h173.31c8.28 0 15 6.72 15 15 0 8.29-6.72 15-15 15zm0-70h-173.31c-8.28 0-15-6.71-15-15 0-8.28 6.72-15 15-15h173.31c8.28 0 15 6.72 15 15 0 8.29-6.72 15-15 15z"/>
<path
d="m512 205.872v259.49c0 12.207-13.829 19.268-23.71 12.21l-82.47-58.83c-6.92-4.93-15.06-7.54-23.56-7.54h-181.39c-31.93 0-57.9-25.98-57.9-57.91v-28.44h168.16c48.47 0 87.9-39.43 87.9-87.9v-88.99h55.07c31.93 0 57.9 25.98 57.9 57.91z"/>
</g>
</svg>
</div>
<div class="open-chatbot__active-invitation__mobile" id="messageActiveInvitation__Mobile">
<div class="open-chatbot__active-invitation__mobile__header">
<div class="open-chatbot__active__avatar">
<img src="land/inc/chatbot/avatar-def.png" alt="Аватар" class="open-chatbot__active__avatar__img__mobile">
</div>
<div class="open-chatbot__active__name-block">
<p class="open-chatbot__active__name">Константин</p>
</div>
<div class="chatbot__header__cross chatbot__active-invitation__cross1" id="chatbot__active-invitation__cross">
<svg class="chatbot__header__cross_icon" viewBox="0 0 11 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0.270753 0.270753C0.631757 -0.090251 1.21706 -0.090251 1.57806 0.270753L10.7292 9.42194C11.0903 9.78294 11.0903 10.3682 10.7292 10.7292C10.3682 11.0903 9.78294 11.0903 9.42194 10.7292L0.270753 1.57806C-0.090251 1.21706 -0.090251 0.631757 0.270753 0.270753Z"
fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M10.7292 0.270753C11.0903 0.631757 11.0903 1.21706 10.7292 1.57806L1.57806 10.7292C1.21706 11.0903 0.631757 11.0903 0.270753 10.7292C-0.0902508 10.3682 -0.0902512 9.78294 0.270753 9.42194L9.42194 0.270753C9.78294 -0.090251 10.3682 -0.090251 10.7292 0.270753Z"
fill="white"/>
</svg>
</div>
</div>
<div class="open-chatbot__active-invitation__mobile__body">
<p class="open-chatbot__active-invitation__mobile__text">Здравствуйте, ремонт какой техники вас интересует?</p>
</div>
</div>
<div class="chatbot-window" id="chatbot-window">
<div class="chatbot__header" id="chatbot__header">
<div class="chatbot__header__avatar">
<img src="land/inc/chatbot/avatar-def.png" alt="Аватар" class="chatbot__header__avatar__img">
</div>
<div class="chatbot__header__name-and-job">
<p class="chatbot__header__name">Константин</p>
<p class="chatbot__header__job">Ваш личный менеджер</p>
</div>
<div class="chatbot__header__cross" id="chatbot__header__cross">
<svg class="chatbot__header__cross_icon" viewBox="0 0 11 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0.270753 0.270753C0.631757 -0.090251 1.21706 -0.090251 1.57806 0.270753L10.7292 9.42194C11.0903 9.78294 11.0903 10.3682 10.7292 10.7292C10.3682 11.0903 9.78294 11.0903 9.42194 10.7292L0.270753 1.57806C-0.090251 1.21706 -0.090251 0.631757 0.270753 0.270753Z"
fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd"
d="M10.7292 0.270753C11.0903 0.631757 11.0903 1.21706 10.7292 1.57806L1.57806 10.7292C1.21706 11.0903 0.631757 11.0903 0.270753 10.7292C-0.0902508 10.3682 -0.0902512 9.78294 0.270753 9.42194L9.42194 0.270753C9.78294 -0.090251 10.3682 -0.090251 10.7292 0.270753Z"
fill="white"/>
</svg>
</div>
</div>
<div class="chatbot__body">
<div class="chatbot__body__cont" id="chatbot__body__cont">
<div class="chatbot__body__message-operator" id="messageActiveInvitation" style="display: none;">
<p class="chatbot__body__message-operator_name">Константин</p>
<p class="chatbot__body__message-operator__item padding-mes">
Здравствуйте, ремонт какой техники вас интересует?
</p>
</div>
<div class="chatbot__body__list-mes">
<p class="chatbot__body__list-mes__item padding-mes">Ремонт компьютера</p>
<p class="chatbot__body__list-mes__item padding-mes">Ремонт ноутбука</p>
<p class="chatbot__body__list-mes__item padding-mes">Ремонт моноблока</p>
</div>
<!-- <div class="chatbot__body__message-operator">
<p class="chatbot__body__message-operator_name">Константин</p>
<p class="chatbot__body__message-operator__item padding-mes">
Здравствуйте!
</p>
<p class="chatbot__body__message-operator__item padding-mes">
За слезы сестры — можно убить. За счастье матери — можно мужскую слезу пустить. За отца — жизнь отдать. За брата — перед пулей встать.
</p>
</div>
<div class="chatbot__body__message-client">
<p class="chatbot__body__message-operator_name"></p>
<p class="chatbot__body__message-client__item padding-mes">
Здравствуйте
</p>
<p class="chatbot__body__message-client__item padding-mes">
Все мы пацаны думаем, что сильнее девушек, но для каждого пацана найдется та, которая заставит не спать ночами.
</p>
</div>
<div class="chatbot__body__form-cont">
<p class="chatbot__body__form__title">Представьтесь в чате</p>
<form class="chatbot__body__form">
<div class="chatbot__body__form__input-cont">
<input class="chatbot__body__form__input" name="fullname" type="text" placeholder="Ваше имя">
</div>
<div class="chatbot__body__form__input-cont">
<input class="chatbot__body__form__input" name="phone" type="tel" required placeholder="+7">
</div>
<button class="chatbot__body__form__submit" type="submit">Отправить</button>
</form>
</div> -->
</div>
<div class="chatbot__body__writes" id="operator_writing_text_cb">
<p class="chatbot__body__writes__text">Константин набирает сообщение...</p>
</div>
<div class="chatbot__body__anchor-footer" id="chatbot__body__anchor-footer">
<svg class="chatbot__body__anchor-footer__arrow" viewBox="0 0 13 8" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M12 1L6.5 6.5L1 1" stroke="#D7DEE6" stroke-width="2" stroke-linecap="round"/>
</svg>
</div>
</div>
<div class="chatbot__footer">
<div class="chatbot__footer__cont">
<div class="textarea__block">
<textarea class="textarea__message_ch" id="textarea__message_ch"
placeholder="Введите сообщение"></textarea>
</div>
<div class="btn_messend__block">
<div class="btn__message-send" id="btn-send-mes__cb">
<svg class="btn__message-send_arrow" viewBox="0 0 16 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M8.70711 0.292892C8.31658 -0.097632 7.68342 -0.097632 7.29289 0.292892L0.928933 6.65685C0.538408 7.04738 0.538408 7.68054 0.928933 8.07107C1.31946 8.46159 1.95262 8.46159 2.34315 8.07107L8 2.41421L13.6569 8.07107C14.0474 8.46159 14.6805 8.46159 15.0711 8.07107C15.4616 7.68054 15.4616 7.04738 15.0711 6.65685L8.70711 0.292892ZM9 16L9 0.999999L7 0.999999L7 16L9 16Z"
fill="white"/>
</svg>
</div>
</div>
</div>
</div>
</div>
<script>
var operatorName = "Константин";
var operatorJob = "Специалист по восстановлению данных";
var spawnRateChatBot = 3 * 1000;
var operatorAvatar = "land/inc/chatbot/avatar-def.png";
var ActiveInvitation = true;
var TimeActiveInvitation = 7 * 1000;
var TimeOperatorWritingShort = 4 * 1000;
var TimeOperatorWritingLong = 6 * 1000;
document.querySelector(".chatbot__header__name").innerText = operatorName;
document.querySelector(".chatbot__body__message-operator_name").innerText = operatorName;
document.querySelector(".open-chatbot__active__name").innerText = operatorName;
document.querySelector(".chatbot__body__writes__text").innerText = operatorName + " набирает сообщение...";
document.querySelector(".chatbot__header__job").innerText = operatorJob;
document.querySelector(".chatbot__header__avatar__img").src = operatorAvatar;
document.querySelector(".open-chatbot__active__avatar__img__mobile").src = operatorAvatar;
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //Максимум не включается, минимум включается
}
const idClientChatBotSl = getRandomInt(1, 10000);
// console.log(idClientChatBotSl);
setTimeout(function () {
document.querySelector("#open-chatbot_btn").classList.add("active");
document.querySelector("#open-chatbot_btn__mobile").classList.add("active");
if (ActiveInvitation == true) {
setTimeout(function () {
if (pageWidthChatBot <= 991) {
if (document.querySelector("#open-chatbot_btn__mobile").classList.contains('active')) {
messageActiveInvitation.style.display = 'flex';
document.querySelector("#messageActiveInvitation__Mobile").classList.add("active");
document.querySelector("#open-chatbot_btn__mobile").classList.remove("active");
}
} else {
if (document.querySelector("#open-chatbot_btn").classList.contains('active')) {
messageActiveInvitation.style.display = 'flex';
document.querySelector("#open-chatbot_btn").classList.remove("active");
document.querySelector("#chatbot-window").classList.add("active");
}
}
}, TimeActiveInvitation);
}
}, spawnRateChatBot);
document.querySelector("#open-chatbot_btn").onclick = function (e) {
e.preventDefault();
document.querySelector("#open-chatbot_btn").classList.remove("active");
document.querySelector("#chatbot-window").classList.add("active");
};
document.querySelector("#open-chatbot_btn__mobile").onclick = function (e) {
e.preventDefault();
document.querySelector("#open-chatbot_btn__mobile").classList.toggle("active")
document.querySelector("#chatbot-window").classList.add("active");
};
document.querySelector("#messageActiveInvitation__Mobile").onclick = function (e) {
e.preventDefault();
document.querySelector("#messageActiveInvitation__Mobile").classList.toggle("active")
document.querySelector("#chatbot-window").classList.add("active");
};
document.querySelector("#chatbot__header").onclick = function (e) {
e.preventDefault();
document.querySelector("#chatbot-window").classList.toggle("active_mini");
};
const pageWidthChatBot = document.documentElement.scrollWidth;
if (pageWidthChatBot <= 991) {
document.querySelector("#chatbot__header").onclick = function (e) {
e.preventDefault();
document.querySelector("#chatbot-window").classList.toggle("active");
document.querySelector("#open-chatbot_btn__mobile").classList.toggle("active")
};
} else {
document.querySelector("#chatbot__header").onclick = function (e) {
e.preventDefault();
document.querySelector("#chatbot-window").classList.toggle("active_mini");
};
}
document.querySelector("#chatbot__body__cont").addEventListener('scroll', function () {
var ContHeightMax = document.querySelector("#chatbot__body__cont").scrollHeight - 300;
if (this.scrollTop + 400 < ContHeightMax) {
document.querySelector("#chatbot__body__anchor-footer").classList.add("active");
} else {
document.querySelector("#chatbot__body__anchor-footer").classList.remove("active");
}
});
document.querySelector("#chatbot__body__anchor-footer").onclick = function (e) {
e.preventDefault();
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
};
document.querySelector("#textarea__message_ch").addEventListener('keyup', function (e) {
btnKey = e.key;
if (btnKey == "Enter") {
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
var textareaClient = document.querySelector("#textarea__message_ch");
var valTextAreaClient = textareaClient.value;
textareaClient.value = "";
// console.log(valTextAreaClient);
if (valTextAreaClient.length > 1) {
valTextAreaClient = valTextAreaClient.substr(0, (valTextAreaClient.length - 1));
document.querySelector(".chatbot__body__list-mes").style.display = 'none';
var newClientMessage = document.createElement("div");
newClientMessage.classList.add("chatbot__body__message-client");
newClientMessage.innerHTML = "<p class='chatbot__body__message-client__item padding-mes'>" + valTextAreaClient + "</p>"
chatbotBodyCont.appendChild(newClientMessage);
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
var messagesClientNumber = document.getElementsByClassName("chatbot__body__message-client").length;
ClientMessageSended(valTextAreaClient, messagesClientNumber);
}
}
});
document.querySelector("#btn-send-mes__cb").onclick = function (e) {
e.preventDefault();
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
var textareaClient = document.querySelector("#textarea__message_ch");
var valTextAreaClient = textareaClient.value;
textareaClient.value = "";
// console.log(valTextAreaClient);
if (valTextAreaClient != "") {
document.querySelector(".chatbot__body__list-mes").style.display = 'none';
var newClientMessage = document.createElement("div");
newClientMessage.classList.add("chatbot__body__message-client");
newClientMessage.innerHTML = "<p class='chatbot__body__message-client__item padding-mes'>" + valTextAreaClient + "</p>"
chatbotBodyCont.appendChild(newClientMessage);
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
var messagesClientNumber = document.getElementsByClassName("chatbot__body__message-client").length;
ClientMessageSended(valTextAreaClient, messagesClientNumber);
}
};
var mesItem = document.querySelectorAll(".chatbot__body__list-mes__item");
for (var i_mes = 0; i_mes < mesItem.length; i_mes++) {
mesItem[i_mes].onclick = function (e) {
e.preventDefault();
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
var textareaClient = this.textContent;
console.log(textareaClient);
var valTextAreaClient = textareaClient;
textareaClient.value = "";
// console.log(valTextAreaClient);
if (valTextAreaClient != "") {
document.querySelector(".chatbot__body__list-mes").style.display = 'none';
var newClientMessage = document.createElement("div");
newClientMessage.classList.add("chatbot__body__message-client");
newClientMessage.innerHTML = "<p class='chatbot__body__message-client__item padding-mes'>" + valTextAreaClient + "</p>"
chatbotBodyCont.appendChild(newClientMessage);
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
var messagesClientNumber = document.getElementsByClassName("chatbot__body__message-client").length;
ClientMessageSended(valTextAreaClient, messagesClientNumber);
}
};
}
function writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew) {
textOperator.forEach(function (item, i, arr) {
var arrLenght = arr.length - 1;
var textsOperator = item;
if (textsOperator.length < 25) {
timing = TimeOperatorWritingShort;
} else {
timing = TimeOperatorWritingLong;
}
// console.log("Длинна текста: " + textsOperator.length + " timing: " + timing);
// alert(arrLenght + " " + i);
if (i > 0) {
timingFor = timing * i + 1000;
} else {
timingFor = 0;
}
if ((typeof textsOperator) == 'string') {
setTimeout(function () {
var operatorWriting = document.querySelector("#operator_writing_text_cb");
setTimeout(function () {
operatorWriting.classList.add("active");
}, 1000);
setTimeout(function () {
operatorWriting.classList.remove("active");
var newClientMessage = document.createElement("div");
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
newClientMessage.classList.add("chatbot__body__message-operator");
if (i == 0) {
newClientMessage.innerHTML = "<p class='chatbot__body__message-operator_name'>" + operatorName + "</p><p class='chatbot__body__message-operator__item padding-mes'>" + textsOperator + "</p>";
} else {
newClientMessage.innerHTML = "<p class='chatbot__body__message-operator__item padding-mes'>" + textsOperator + "</p>";
}
chatbotBodyCont.appendChild(newClientMessage);
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
var oData = new FormData();
oData.append("idClientChatBotSl", idClientChatBotSl);
oData.append("MessageOperatorChatBotSl", textsOperator);
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open("POST", "https://chatservicelead.u1221283.isp.regruhosting.ru/stat.php", true);
xhr.onload = function (oEvent) {
if (xhr.status == 200) {
console.log("Ответ бота сохранен"); // Событие при успешной отправке формы в систему
} else {
console.log("Ошибка сохранения ответа бота " + xhr.status); // Событие при неуспешной отправке формы в систему
}
};
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(urlencodeFormData(oData));
if (i == arrLenght) {
setTimeout(function () {
if (leadform == true) {
console.log("форма");
createChatFormSL();
sendLeadSL();
}
}, 2000);
}
}, timing);
}, timingFor);
}
});
if (textOperator == "") {
setTimeout(function () {
if (leadform == true) {
console.log("форма");
createChatFormSL();
sendLeadSL();
}
}, timing);
}
if (idLastMessageNew != undefined || idLastMessageNew != null) {
idLastMessage = idLastMessageNew;
console.log("ID ветки " + idLastMessage);
vvv();
} else if (idLastMessageNew == null) {
idLastMessage = null;
console.log("ID ветки " + idLastMessage);
vvv();
}
}
var idLastMessage = undefined;
function OperatorMessageSending(valTextAreaClient, messagesClientNumber, textInclude, textOperator, timing, leadform, idNewMessage, idLastMessageNew) {
valTextAreaClient = valTextAreaClient.toLowerCase();
textInclude.forEach(function (itemText, iText, arrText) {
var arrTextLenght = arrText.length - 1;
if (idNewMessage == idLastMessage && idNewMessage != null) {
itemText = itemText.toLowerCase();
if (valTextAreaClient.includes(itemText) && itemText != "любой ответ") {
console.log("Совпадение и наличие ID нового сообщения " + idNewMessage);
writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew);
} else if (itemText == "любой ответ" && !valTextAreaClient.includes(itemText)) {
console.log("Любой ответ и наличие ID нового сообщения " + idNewMessage);
writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew);
}
} else if (idNewMessage == null || !idNewMessage) {
itemText = itemText.toLowerCase();
if (valTextAreaClient.includes(itemText)) {
console.log("Совпадение и отсутсвие ID нового сообщения ");
writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew);
}
} else if (messagesClientNumber == 1 && idNewMessage == 1) {
itemText = itemText.toLowerCase();
if (valTextAreaClient.includes(itemText) && itemText != "любой ответ") {
console.log("Совпадение и наличие ID нового сообщения " + idNewMessage);
writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew);
} else if (itemText == "любой ответ" && !valTextAreaClient.includes(itemText)) {
console.log("Любой ответ и наличие ID нового сообщения " + idNewMessage);
writeMessegeOperator(textOperator, timing, leadform, idLastMessageNew);
}
}
});
}
function ClientMessageSended(valTextAreaClient, messagesClientNumber) {
var oData = new FormData();
if (messagesClientNumber == 1) {
oData.append("DelitelClientChatBotSl", "dilitel");
}
oData.append("idClientChatBotSl", idClientChatBotSl);
oData.append("MessageClientChatBotSl", valTextAreaClient);
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open("POST", "https://chatservicelead.u1221283.isp.regruhosting.ru/stat.php", true);
xhr.onload = function (oEvent) {
if (xhr.status == 200) {
console.log("Ответ сохранен"); // Событие при успешной отправке формы в систему
} else {
console.log("Ошибка сохранения ответа " + xhr.status); // Событие при неуспешной отправке формы в систему
}
};
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(urlencodeFormData(oData));
//общие цены
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["интернет", "инет"], ["Стоимость настройки интернета от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["windows", "win", "винд", "синий экран", "экран смерт"], ["Стоимость установки и настройки Windows от 325 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["роутер", "wi-fi", "wifi", "вайфай"], ["Стоимость настройки роутера от 480 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["антивирус"], ["Стоимость установки и настройки антивируса от 390 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["вирус"], ["Стоимость удаления вирусов от 310 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["чистка"], ["Стоимость чистки от пыли от 490 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["биос", "биус"], ["Стоимость настройки биоса от 560 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["драйвер"], ["Стоимость установки драйверов от 190 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["принтер"], ["Стоимость настройки принтера от 420 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["парол"], ["Стоимость восстановления пароля от 690 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["диспле"], ["Стоимость замены дисплея от 490 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["восстанов"], ["Стоимость восстановления данных от 290 руб. за ГБ", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["жесткий диск", "диск", "hdd"], ["Стоимость замены жесткого диска (HDD) от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["клав"], ["Стоимость замены и ремонта клавиатуры от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["кулер", "куллер"], ["Стоимость замены кулера от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["озу", "оператив"], ["Стоимость замены оперативной памяти от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["usb"], ["Стоимость замены порта USB от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["термо"], ["Стоимость замены термопасты от 445 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["экран", "монитор"], ["Стоимость замены экрана от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["корпус"], ["Стоимость ремонта и замены корпуса от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["матриц"], ["Стоимость ремонта и замены матрицы от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["разъем"], ["Стоимость ремонта и замены разъемов от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["видеокарт", "видео-карт"], ["Стоимость ремонта или замены видеокарты от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["материнская плат", "мат плат", "материнской плат", "материнскую плат"], ["Стоимость ремонта материнской платы от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["проц"], ["Стоимость ремонта и замены процессора от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["звук"], ["Стоимость замены звуковой карты от 395 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["блок питан", "блока питан", "блоки питан"], ["Стоимость замены блока питания от 495 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["ворд", "ексель", "повер поинт", "word", "excel", "microsoft office", "майкрософт офис", "майкрософт оффис"], ["Стоимость установки пакета программ Microsoft Office от 690 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
//
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["замен"], ["Стоимость замены от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["переустанов"], ["Стоимость переустановки от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["установ"], ["Стоимость установки от 595 руб.", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["цену", "цена", "стоимость", "стоит", "денег", "сколько"], ["Стоимость работ мастер определяет после диагностики", "Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["диагностик", "мастер", "специалист"], ["Выезд мастера на дом и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["ремонт компьютера"], ["Давайте определимся, что у вас за проблема с компьютером?", "Расскажите в двух словах про поломку"], 4000, false, null, 281);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["ремонт ноутбука"], ["Давайте определимся, что у вас за проблема с ноутбуком?", "Расскажите в двух словах про поломку"], 4000, false, null, 281);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["ремонт моноблока"], ["Давайте определимся, что у вас за проблема с моноблоком?", "Расскажите в двух словах про поломку"], 4000, false, null, 281);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Чтобы отремонтировать ваше оборудование, нужно сначала его продиагностировать", "Выезд мастера и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, 291, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["комп", "пк", "ноут", "нотбук", "нетбук", "монобл"], ["Нужно диагностировать, когда вам было бы удобно принять мастера?", "Выезд мастера и диагностика бесплатные"], 4000, false, null, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["адрес", "где нах", "офис"], ["Мы работаем на выезде", "Хотите заказать диагностику на дому?", "Выезд мастера и диагностика бесплатные"], 4000, false, null, 301);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["да", "хочу", "обязательно"], ["Отлично, заполните форму и мы с вами свяжемся"], 4000, true, 301, 1002);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["нет", "не хочу", "неа"], ["У нас сейчас действует скидка 20% только при заказе через сайт", "Точно не хотите вызвать мастера?"], 4000, false, 301, 302);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Хорошо, у вас еще остались вопросы?"], 4000, false, 302, 1001);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Для точного определения неисправности необходимо провести диагностику", "Выезд мастера и диагностика бесплатные", "Когда вам было бы удобно принять мастера?"], 4000, false, 281, 282);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Отлично, заполните форму и мы с вами свяжемся"], 4000, true, 282, 1002);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["Добрый день", "любой ответ"], ["Добрый день, ремонт какой техники вас интересует?"], 4000, false, null, 291);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["Добрый вечер", "любой ответ"], ["Добрый вечер, ремонт какой техники вас интересует?"], 4000, false, null, 291);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["Доброе утро", "любой ответ"], ["Доброе утро, ремонт какой техники вас интересует?"], 4000, false, null, 291);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["Здравствуйте", "любой ответ"], ["Здравствуйте, ремонт какой техники вас интересует?"], 4000, false, 1, 291);
//по окончанию ветки
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Для решения данного вопроса оставьте ваш телефон и мы с вами свяжемся"], 4000, true, 1001, 1001);
OperatorMessageSending(valTextAreaClient, messagesClientNumber, ["любой ответ"], ["Для решения данного вопроса дождитесь звонка оператора"], 4000, false, 1002, 1002);
}
var thread = {"id":39931,"part_id":27501,"hash":null,"idp":"817685d2-1726-4154-8e0733dde91d1ec0","title":"\u041a\u041f - \u041c\u0441\u043a 1","type":0,"is_pm":0,"tool_type":1,"tool_id":41,"created_at":"2024-01-24 16:13:40","updated_at":"2024-01-31 09:29:13","archived_at":null,"data":{"inn":null,"tel":"","ogrn":null,"fp_id":null,"ga_id":null,"mg_id":null,"tt_id":null,"vp_id":null,"ym_id":"18381154","zd_id":null,"domain":"doctor-hdd.ru","gtm_id":null,"city_id":["auto"],"subid_1":null,"subid_2":null,"subid_3":null,"yuraddr":null,"yurname":null,"lkVersion":"sl","show_city":"no","direction_id":1,"new_offer_id":1,"trafficSources":"\u0421\u0432\u043e\u0438 \u0441\u0430\u0439\u0442\u044b","use_lead_proxy":"yes","form_add_modals":"1","form_add_chatbot":"1","form_chatbot_job":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445","form_modal_delay":null,"form_modal_header":"\u0421\u043b\u043e\u043c\u0430\u043b\u0441\u044f \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a?","form_modal_number":"2","form_chatbot_delay":null,"form_chatbot_avatar":null,"form_modal_btn_text":null,"form_add_phonemodals":"0","form_modal_subheader":null,"form_modalphone_delay":null,"form_modalphone_header":null,"form_modalphone_btn_text":null,"form_modalphone_subheader":null,"form_chatbot_active-dialog":"1","form_chatbot_operator-name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d","form_chatbot_active-dialog_delay":null,"form_chatbot_writing__operator_long_delay":null,"form_chatbot_writing__operator_short_delay":null}};
// console.log(thread);
var action = "/addorders.xphp?idp=817685d2-1726-4154-8e0733dde91d1ec0";
var branch_id = "777";
var is_pm = "false";
var thread_id = "39931";
var thread_type = "1";
var direction_id = "1";
var offer_id = "1";
var sub_id1 = "";
var sub_id2 = "";
var sub_id3 = "";
var view_id = "94738929";
function createChatFormSL() {
var newClientMessage = document.createElement("div");
var chatbotBodyCont = document.querySelector("#chatbot__body__cont");
newClientMessage.classList.add("chatbot__body__form-cont");
newClientMessage.innerHTML = '<p class="chatbot__body__form__title">Заполните форму</p><form class="chatbot__body__form"><div class="chatbot__body__form__input-cont"><input class="chatbot__body__form__input" name="fullname" type="text" placeholder="Ваше имя"></div><div class="chatbot__body__form__input-cont"><input class="chatbot__body__form__input" name="phone" type="tel" required placeholder="+7"></div><button class="chatbot__body__form__submit" type="submit">Отправить</button></form>';
chatbotBodyCont.appendChild(newClientMessage);
var HeightСhatbotBodyCont = chatbotBodyCont.scrollHeight;
chatbotBodyCont.scrollBy({
top: HeightСhatbotBodyCont,
behavior: 'smooth'
});
}
function sendLeadSL() {
var city = {"id":777,"name":"","country":"rus"};
var countryName = city.country;
$('[type="tel"]').not('.nomask').each(function () {
var self = $(this);
self.inputmask('remove');
if (countryName === 'rus') {
self.inputmask({
mask: "+7 (999) 999-99-99",
onBeforePaste: function (pastedValue, opts) {
var processedValue = pastedValue;
var tel = processedValue.replace(/[^\d]/g, '');
if (tel.length === 11 && (tel[0] === '8' || tel[0] === '7')) {
processedValue = '+7' + tel.substring(1);
}
return processedValue;
},
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'bel') {
self.inputmask("+375 99-999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'ua') {
self.inputmask("+380 99-999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
}
});
var forms = document.getElementsByClassName("chatbot__body__form");
console.log(forms.length);
for (var i = 0; i < forms.length; i++) {
// var btnSubmit = forms[i].querySelector('button[type=submit]');
// btnSubmit.addEventListener("click", function(e) {
forms[i].addEventListener("submit", function (e) {
e.preventDefault();
var form = this.closest(".chatbot__body__form");
var oData = new FormData(form);
if (typeof URLSearchParams === "function") {
const utm = {
utm_source: "utm1",
utm_medium: "utm2",
utm_campaign: "utm3",
utm_content: "utm4",
utm_term: "utm5"
};
const urlParams = new URLSearchParams(window.location.search);
for (var prop in utm) {
if (urlParams.get(prop) !== null) {
oData.append(utm[prop], urlParams.get(prop));
}
}
}
oData.append('hash', view_id);
oData.append("branch_id", branch_id);
oData.append("is_pm", is_pm);
oData.append("thread_id", thread_id);
oData.append("thread_type", thread_type);
oData.append("direction_id", direction_id);
oData.append("offer_id", offer_id);
oData.append("sub_id1", sub_id1);
oData.append("sub_id2", sub_id2);
oData.append("sub_id3", sub_id3 + "_chatbot_lend");
if (!oData.get('fullname')) {
oData.set('fullname', 'Без имени');
}
oData.append("view_id", window.view_id);
oData.append("hash", window.view_id);
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open("POST", action, true);
xhr.onload = function (oEvent) {
if (xhr.status == 200) {
form.reset();
var chatbotForms = document.querySelectorAll(".chatbot__body__form-cont");
for (var i_forms = 0; i_forms < chatbotForms.length; i_forms++) {
chatbotForms[i_forms].style.display = "none";
}
console.log("Лид из чат-бота отправлен"); // Событие при успешной отправке формы в систему
var oDataStat = new FormData();
oDataStat.append("idClientChatBotSl", idClientChatBotSl);
oDataStat.append("MessageClientChatBotSl", "Лид отправлен");
var XHRStat = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var XHRStat = new XHRStat();
XHRStat.open("POST", "https://chatservicelead.u1221283.isp.regruhosting.ru/stat.php", true);
XHRStat.onload = function (oEvent) {
if (XHRStat.status == 200) {
console.log("Ответ сохранен + отправлен лид"); // Событие при успешной отправке формы в систему
} else {
console.log("Ошибка сохранения ответа" + XHRStat.status); // Событие при неуспешной отправке формы в систему
}
};
XHRStat.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XHRStat.send(urlencodeFormData(oDataStat));
} else {
console.log("Ошибка " + xhr.status); // Событие при неуспешной отправке формы в систему
}
};
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(urlencodeFormData(oData));
});
}
}
function urlencodeFormData(fd) {
if (typeof URLSearchParams === "function") {
var params = new URLSearchParams();
for (var pair of fd.entries()) {
typeof pair[1] == "string" && params.append(pair[0], pair[1]);
}
return params.toString();
} else {
var s = "";
function encode(s) {
return encodeURIComponent(s).replace(/%20/g, "+");
}
for (var pair of fd.entries()) {
if (typeof pair[1] == "string") {
s += (s ? "&" : "") + encode(pair[0]) + "=" + encode(pair[1]);
}
}
return s;
}
}
</script>
<script src="/app/new/js/jquery.inputmask.bundle.min.js"></script>
<script>
/*!
* sweetalert2 v11.6.15
* Released under the MIT License.
*/
!function (e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).Sweetalert2 = t()
}(this, (function () {
"use strict";
var e = {awaitingPromise: new WeakMap, promise: new WeakMap, innerParams: new WeakMap, domCache: new WeakMap};
const t = e => {
const t = {};
for (const o in e) t[e[o]] = "swal2-" + e[o];
return t
},
o = t(["container", "shown", "height-auto", "iosfix", "popup", "modal", "no-backdrop", "no-transition", "toast", "toast-shown", "show", "hide", "close", "title", "html-container", "actions", "confirm", "deny", "cancel", "default-outline", "footer", "icon", "icon-content", "image", "input", "file", "range", "select", "radio", "checkbox", "label", "textarea", "inputerror", "input-label", "validation-message", "progress-steps", "active-progress-step", "progress-step", "progress-step-line", "loader", "loading", "styled", "top", "top-start", "top-end", "top-left", "top-right", "center", "center-start", "center-end", "center-left", "center-right", "bottom", "bottom-start", "bottom-end", "bottom-left", "bottom-right", "grow-row", "grow-column", "grow-fullscreen", "rtl", "timer-progress-bar", "timer-progress-bar-container", "scrollbar-measure", "icon-success", "icon-warning", "icon-info", "icon-question", "icon-error"]),
n = t(["success", "warning", "info", "question", "error"]), s = "SweetAlert2:",
a = e => e.charAt(0).toUpperCase() + e.slice(1), i = e => {
console.warn(`${s} ${"object" == typeof e ? e.join(" ") : e}`)
}, r = e => {
console.error(`${s} ${e}`)
}, l = [], c = (e, t) => {
var o;
o = `"${e}" is deprecated and will be removed in the next major release. Please use "${t}" instead.`, l.includes(o) || (l.push(o), i(o))
}, d = e => "function" == typeof e ? e() : e, u = e => e && "function" == typeof e.toPromise,
p = e => u(e) ? e.toPromise() : Promise.resolve(e), m = e => e && Promise.resolve(e) === e,
w = () => document.body.querySelector(`.${o.container}`), g = e => {
const t = w();
return t ? t.querySelector(e) : null
}, h = e => g(`.${e}`), f = () => h(o.popup), b = () => h(o.icon), y = () => h(o.title),
v = () => h(o["html-container"]), x = () => h(o.image), k = () => h(o["progress-steps"]),
C = () => h(o["validation-message"]), A = () => g(`.${o.actions} .${o.confirm}`),
B = () => g(`.${o.actions} .${o.deny}`), P = () => g(`.${o.loader}`),
$ = () => g(`.${o.actions} .${o.cancel}`), E = () => h(o.actions), T = () => h(o.footer),
S = () => h(o["timer-progress-bar"]), L = () => h(o.close), j = () => {
const e = Array.from(f().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(((e, t) => {
const o = parseInt(e.getAttribute("tabindex")), n = parseInt(t.getAttribute("tabindex"));
return o > n ? 1 : o < n ? -1 : 0
})),
t = Array.from(f().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n ')).filter((e => "-1" !== e.getAttribute("tabindex")));
return (e => {
const t = [];
for (let o = 0; o < e.length; o++) -1 === t.indexOf(e[o]) && t.push(e[o]);
return t
})(e.concat(t)).filter((e => X(e)))
},
O = () => q(document.body, o.shown) && !q(document.body, o["toast-shown"]) && !q(document.body, o["no-backdrop"]),
M = () => f() && q(f(), o.toast), z = {previousBodyPadding: null}, H = (e, t) => {
if (e.textContent = "", t) {
const o = (new DOMParser).parseFromString(t, "text/html");
Array.from(o.querySelector("head").childNodes).forEach((t => {
e.appendChild(t)
})), Array.from(o.querySelector("body").childNodes).forEach((t => {
t instanceof HTMLVideoElement || t instanceof HTMLAudioElement ? e.appendChild(t.cloneNode(!0)) : e.appendChild(t)
}))
}
}, q = (e, t) => {
if (!t) return !1;
const o = t.split(/\s+/);
for (let t = 0; t < o.length; t++) if (!e.classList.contains(o[t])) return !1;
return !0
}, I = (e, t, s) => {
if (((e, t) => {
Array.from(e.classList).forEach((s => {
Object.values(o).includes(s) || Object.values(n).includes(s) || Object.values(t.showClass).includes(s) || e.classList.remove(s)
}))
})(e, t), t.customClass && t.customClass[s]) {
if ("string" != typeof t.customClass[s] && !t.customClass[s].forEach) return void i(`Invalid type of customClass.${s}! Expected string or iterable object, got "${typeof t.customClass[s]}"`);
F(e, t.customClass[s])
}
}, D = (e, t) => {
if (!t) return null;
switch (t) {
case"select":
case"textarea":
case"file":
return e.querySelector(`.${o.popup} > .${o[t]}`);
case"checkbox":
return e.querySelector(`.${o.popup} > .${o.checkbox} input`);
case"radio":
return e.querySelector(`.${o.popup} > .${o.radio} input:checked`) || e.querySelector(`.${o.popup} > .${o.radio} input:first-child`);
case"range":
return e.querySelector(`.${o.popup} > .${o.range} input`);
default:
return e.querySelector(`.${o.popup} > .${o.input}`)
}
}, V = e => {
if (e.focus(), "file" !== e.type) {
const t = e.value;
e.value = "", e.value = t
}
}, N = (e, t, o) => {
e && t && ("string" == typeof t && (t = t.split(/\s+/).filter(Boolean)), t.forEach((t => {
Array.isArray(e) ? e.forEach((e => {
o ? e.classList.add(t) : e.classList.remove(t)
})) : o ? e.classList.add(t) : e.classList.remove(t)
})))
}, F = (e, t) => {
N(e, t, !0)
}, R = (e, t) => {
N(e, t, !1)
}, U = (e, t) => {
const o = Array.from(e.children);
for (let e = 0; e < o.length; e++) {
const n = o[e];
if (n instanceof HTMLElement && q(n, t)) return n
}
}, _ = (e, t, o) => {
o === `${parseInt(o)}` && (o = parseInt(o)), o || 0 === parseInt(o) ? e.style[t] = "number" == typeof o ? `${o}px` : o : e.style.removeProperty(t)
}, W = function (e) {
let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "flex";
e.style.display = t
}, Y = e => {
e.style.display = "none"
}, Z = (e, t, o, n) => {
const s = e.querySelector(t);
s && (s.style[o] = n)
}, K = function (e, t) {
let o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "flex";
t ? W(e, o) : Y(e)
}, X = e => !(!e || !(e.offsetWidth || e.offsetHeight || e.getClientRects().length)),
J = e => !!(e.scrollHeight > e.clientHeight), G = e => {
const t = window.getComputedStyle(e), o = parseFloat(t.getPropertyValue("animation-duration") || "0"),
n = parseFloat(t.getPropertyValue("transition-duration") || "0");
return o > 0 || n > 0
}, Q = function (e) {
let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
const o = S();
X(o) && (t && (o.style.transition = "none", o.style.width = "100%"), setTimeout((() => {
o.style.transition = `width ${e / 1e3}s linear`, o.style.width = "0%"
}), 10))
}, ee = {}, te = e => new Promise((t => {
if (!e) return t();
const o = window.scrollX, n = window.scrollY;
ee.restoreFocusTimeout = setTimeout((() => {
ee.previousActiveElement instanceof HTMLElement ? (ee.previousActiveElement.focus(), ee.previousActiveElement = null) : document.body && document.body.focus(), t()
}), 100), window.scrollTo(o, n)
})), oe = () => "undefined" == typeof window || "undefined" == typeof document,
ne = `\n <div aria-labelledby="${o.title}" aria-describedby="${o["html-container"]}" class="${o.popup}" tabindex="-1">\n <button type="button" class="${o.close}"></button>\n <ul class="${o["progress-steps"]}"></ul>\n <div class="${o.icon}"></div>\n <img class="${o.image}" />\n <h2 class="${o.title}" id="${o.title}"></h2>\n <div class="${o["html-container"]}" id="${o["html-container"]}"></div>\n <input class="${o.input}" />\n <input type="file" class="${o.file}" />\n <div class="${o.range}">\n <input type="range" />\n <output></output>\n </div>\n <select class="${o.select}"></select>\n <div class="${o.radio}"></div>\n <label for="${o.checkbox}" class="${o.checkbox}">\n <input type="checkbox" />\n <span class="${o.label}"></span>\n </label>\n <textarea class="${o.textarea}"></textarea>\n <div class="${o["validation-message"]}" id="${o["validation-message"]}"></div>\n <div class="${o.actions}">\n <div class="${o.loader}"></div>\n <button type="button" class="${o.confirm}"></button>\n <button type="button" class="${o.deny}"></button>\n <button type="button" class="${o.cancel}"></button>\n </div>\n <div class="${o.footer}"></div>\n <div class="${o["timer-progress-bar-container"]}">\n <div class="${o["timer-progress-bar"]}"></div>\n </div>\n </div>\n `.replace(/(^|\n)\s*/g, ""),
se = () => {
ee.currentInstance.resetValidationMessage()
}, ae = e => {
const t = (() => {
const e = w();
return !!e && (e.remove(), R([document.documentElement, document.body], [o["no-backdrop"], o["toast-shown"], o["has-column"]]), !0)
})();
if (oe()) return void r("SweetAlert2 requires document to initialize");
const n = document.createElement("div");
n.className = o.container, t && F(n, o["no-transition"]), H(n, ne);
const s = "string" == typeof (a = e.target) ? document.querySelector(a) : a;
var a;
s.appendChild(n), (e => {
const t = f();
t.setAttribute("role", e.toast ? "alert" : "dialog"), t.setAttribute("aria-live", e.toast ? "polite" : "assertive"), e.toast || t.setAttribute("aria-modal", "true")
})(e), (e => {
"rtl" === window.getComputedStyle(e).direction && F(w(), o.rtl)
})(s), (() => {
const e = f(), t = U(e, o.input), n = U(e, o.file), s = e.querySelector(`.${o.range} input`),
a = e.querySelector(`.${o.range} output`), i = U(e, o.select),
r = e.querySelector(`.${o.checkbox} input`), l = U(e, o.textarea);
t.oninput = se, n.onchange = se, i.onchange = se, r.onchange = se, l.oninput = se, s.oninput = () => {
se(), a.value = s.value
}, s.onchange = () => {
se(), a.value = s.value
}
})()
}, ie = (e, t) => {
e instanceof HTMLElement ? t.appendChild(e) : "object" == typeof e ? re(e, t) : e && H(t, e)
}, re = (e, t) => {
e.jquery ? le(t, e) : H(t, e.toString())
}, le = (e, t) => {
if (e.textContent = "", 0 in t) for (let o = 0; o in t; o++) e.appendChild(t[o].cloneNode(!0)); else e.appendChild(t.cloneNode(!0))
}, ce = (() => {
if (oe()) return !1;
const e = document.createElement("div"),
t = {WebkitAnimation: "webkitAnimationEnd", animation: "animationend"};
for (const o in t) if (Object.prototype.hasOwnProperty.call(t, o) && void 0 !== e.style[o]) return t[o];
return !1
})(), de = (e, t) => {
const n = E(), s = P();
t.showConfirmButton || t.showDenyButton || t.showCancelButton ? W(n) : Y(n), I(n, t, "actions"), function (e, t, n) {
const s = A(), a = B(), i = $();
ue(s, "confirm", n), ue(a, "deny", n), ue(i, "cancel", n), function (e, t, n, s) {
if (!s.buttonsStyling) return void R([e, t, n], o.styled);
F([e, t, n], o.styled), s.confirmButtonColor && (e.style.backgroundColor = s.confirmButtonColor, F(e, o["default-outline"]));
s.denyButtonColor && (t.style.backgroundColor = s.denyButtonColor, F(t, o["default-outline"]));
s.cancelButtonColor && (n.style.backgroundColor = s.cancelButtonColor, F(n, o["default-outline"]))
}(s, a, i, n), n.reverseButtons && (n.toast ? (e.insertBefore(i, s), e.insertBefore(a, s)) : (e.insertBefore(i, t), e.insertBefore(a, t), e.insertBefore(s, t)))
}(n, s, t), H(s, t.loaderHtml), I(s, t, "loader")
};
function ue(e, t, n) {
K(e, n[`show${a(t)}Button`], "inline-block"), H(e, n[`${t}ButtonText`]), e.setAttribute("aria-label", n[`${t}ButtonAriaLabel`]), e.className = o[t], I(e, n, `${t}Button`), F(e, n[`${t}ButtonClass`])
}
const pe = (e, t) => {
const n = w();
n && (!function (e, t) {
"string" == typeof t ? e.style.background = t : t || F([document.documentElement, document.body], o["no-backdrop"])
}(n, t.backdrop), function (e, t) {
t in o ? F(e, o[t]) : (i('The "position" parameter is not valid, defaulting to "center"'), F(e, o.center))
}(n, t.position), function (e, t) {
if (t && "string" == typeof t) {
const n = `grow-${t}`;
n in o && F(e, o[n])
}
}(n, t.grow), I(n, t, "container"))
};
const me = ["input", "file", "range", "select", "radio", "checkbox", "textarea"], we = e => {
if (!xe[e.input]) return void r(`Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "${e.input}"`);
const t = ye(e.input), o = xe[e.input](t, e);
W(t), setTimeout((() => {
V(o)
}))
}, ge = (e, t) => {
const o = D(f(), e);
if (o) {
(e => {
for (let t = 0; t < e.attributes.length; t++) {
const o = e.attributes[t].name;
["type", "value", "style"].includes(o) || e.removeAttribute(o)
}
})(o);
for (const e in t) o.setAttribute(e, t[e])
}
}, he = e => {
const t = ye(e.input);
"object" == typeof e.customClass && F(t, e.customClass.input)
}, fe = (e, t) => {
e.placeholder && !t.inputPlaceholder || (e.placeholder = t.inputPlaceholder)
}, be = (e, t, n) => {
if (n.inputLabel) {
e.id = o.input;
const s = document.createElement("label"), a = o["input-label"];
s.setAttribute("for", e.id), s.className = a, "object" == typeof n.customClass && F(s, n.customClass.inputLabel), s.innerText = n.inputLabel, t.insertAdjacentElement("beforebegin", s)
}
}, ye = e => U(f(), o[e] || o.input), ve = (e, t) => {
["string", "number"].includes(typeof t) ? e.value = `${t}` : m(t) || i(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)
}, xe = {};
xe.text = xe.email = xe.password = xe.number = xe.tel = xe.url = (e, t) => (ve(e, t.inputValue), be(e, e, t), fe(e, t), e.type = t.input, e), xe.file = (e, t) => (be(e, e, t), fe(e, t), e), xe.range = (e, t) => {
const o = e.querySelector("input"), n = e.querySelector("output");
return ve(o, t.inputValue), o.type = t.input, ve(n, t.inputValue), be(o, e, t), e
}, xe.select = (e, t) => {
if (e.textContent = "", t.inputPlaceholder) {
const o = document.createElement("option");
H(o, t.inputPlaceholder), o.value = "", o.disabled = !0, o.selected = !0, e.appendChild(o)
}
return be(e, e, t), e
}, xe.radio = e => (e.textContent = "", e), xe.checkbox = (e, t) => {
const n = D(f(), "checkbox");
n.value = "1", n.id = o.checkbox, n.checked = Boolean(t.inputValue);
const s = e.querySelector("span");
return H(s, t.inputPlaceholder), n
}, xe.textarea = (e, t) => {
ve(e, t.inputValue), fe(e, t), be(e, e, t);
return setTimeout((() => {
if ("MutationObserver" in window) {
const t = parseInt(window.getComputedStyle(f()).width);
new MutationObserver((() => {
const o = e.offsetWidth + (n = e, parseInt(window.getComputedStyle(n).marginLeft) + parseInt(window.getComputedStyle(n).marginRight));
var n;
f().style.width = o > t ? `${o}px` : null
})).observe(e, {attributes: !0, attributeFilter: ["style"]})
}
})), e
};
const ke = (t, n) => {
const s = v();
I(s, n, "htmlContainer"), n.html ? (ie(n.html, s), W(s, "block")) : n.text ? (s.textContent = n.text, W(s, "block")) : Y(s), ((t, n) => {
const s = f(), a = e.innerParams.get(t), i = !a || n.input !== a.input;
me.forEach((e => {
const t = U(s, o[e]);
ge(e, n.inputAttributes), t.className = o[e], i && Y(t)
})), n.input && (i && we(n), he(n))
})(t, n)
}, Ce = (e, t) => {
for (const o in n) t.icon !== o && R(e, n[o]);
F(e, n[t.icon]), Pe(e, t), Ae(), I(e, t, "icon")
}, Ae = () => {
const e = f(), t = window.getComputedStyle(e).getPropertyValue("background-color"),
o = e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");
for (let e = 0; e < o.length; e++) o[e].style.backgroundColor = t
}, Be = (e, t) => {
let o, n = e.innerHTML;
if (t.iconHtml) o = $e(t.iconHtml); else if ("success" === t.icon) o = '\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n ', n = n.replace(/ style=".*?"/g, ""); else if ("error" === t.icon) o = '\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n '; else {
o = $e({question: "?", warning: "!", info: "i"}[t.icon])
}
n.trim() !== o.trim() && H(e, o)
}, Pe = (e, t) => {
if (t.iconColor) {
e.style.color = t.iconColor, e.style.borderColor = t.iconColor;
for (const o of [".swal2-success-line-tip", ".swal2-success-line-long", ".swal2-x-mark-line-left", ".swal2-x-mark-line-right"]) Z(e, o, "backgroundColor", t.iconColor);
Z(e, ".swal2-success-ring", "borderColor", t.iconColor)
}
}, $e = e => `<div class="${o["icon-content"]}">${e}</div>`, Ee = (e, t) => {
e.className = `${o.popup} ${X(e) ? t.showClass.popup : ""}`, t.toast ? (F([document.documentElement, document.body], o["toast-shown"]), F(e, o.toast)) : F(e, o.modal), I(e, t, "popup"), "string" == typeof t.customClass && F(e, t.customClass), t.icon && F(e, o[`icon-${t.icon}`])
}, Te = e => {
const t = document.createElement("li");
return F(t, o["progress-step"]), H(t, e), t
}, Se = e => {
const t = document.createElement("li");
return F(t, o["progress-step-line"]), e.progressStepsDistance && _(t, "width", e.progressStepsDistance), t
}, Le = (t, s) => {
((e, t) => {
const o = w(), n = f();
t.toast ? (_(o, "width", t.width), n.style.width = "100%", n.insertBefore(P(), b())) : _(n, "width", t.width), _(n, "padding", t.padding), t.color && (n.style.color = t.color), t.background && (n.style.background = t.background), Y(C()), Ee(n, t)
})(0, s), pe(0, s), ((e, t) => {
const n = k();
t.progressSteps && 0 !== t.progressSteps.length ? (W(n), n.textContent = "", t.currentProgressStep >= t.progressSteps.length && i("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"), t.progressSteps.forEach(((e, s) => {
const a = Te(e);
if (n.appendChild(a), s === t.currentProgressStep && F(a, o["active-progress-step"]), s !== t.progressSteps.length - 1) {
const e = Se(t);
n.appendChild(e)
}
}))) : Y(n)
})(0, s), ((t, o) => {
const s = e.innerParams.get(t), a = b();
if (s && o.icon === s.icon) return Be(a, o), void Ce(a, o);
if (o.icon || o.iconHtml) {
if (o.icon && -1 === Object.keys(n).indexOf(o.icon)) return r(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${o.icon}"`), void Y(a);
W(a), Be(a, o), Ce(a, o), F(a, o.showClass.icon)
} else Y(a)
})(t, s), ((e, t) => {
const n = x();
t.imageUrl ? (W(n, ""), n.setAttribute("src", t.imageUrl), n.setAttribute("alt", t.imageAlt), _(n, "width", t.imageWidth), _(n, "height", t.imageHeight), n.className = o.image, I(n, t, "image")) : Y(n)
})(0, s), ((e, t) => {
const o = y();
K(o, t.title || t.titleText, "block"), t.title && ie(t.title, o), t.titleText && (o.innerText = t.titleText), I(o, t, "title")
})(0, s), ((e, t) => {
const o = L();
H(o, t.closeButtonHtml), I(o, t, "closeButton"), K(o, t.showCloseButton), o.setAttribute("aria-label", t.closeButtonAriaLabel)
})(0, s), ke(t, s), de(0, s), ((e, t) => {
const o = T();
K(o, t.footer), t.footer && ie(t.footer, o), I(o, t, "footer")
})(0, s), "function" == typeof s.didRender && s.didRender(f())
};
function je() {
const t = e.innerParams.get(this);
if (!t) return;
const n = e.domCache.get(this);
Y(n.loader), M() ? t.icon && W(b()) : Oe(n), R([n.popup, n.actions], o.loading), n.popup.removeAttribute("aria-busy"), n.popup.removeAttribute("data-loading"), n.confirmButton.disabled = !1, n.denyButton.disabled = !1, n.cancelButton.disabled = !1
}
const Oe = e => {
const t = e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));
t.length ? W(t[0], "inline-block") : X(A()) || X(B()) || X($()) || Y(e.actions)
};
const Me = () => A() && A().click(),
ze = Object.freeze({cancel: "cancel", backdrop: "backdrop", close: "close", esc: "esc", timer: "timer"}),
He = e => {
e.keydownTarget && e.keydownHandlerAdded && (e.keydownTarget.removeEventListener("keydown", e.keydownHandler, {capture: e.keydownListenerCapture}), e.keydownHandlerAdded = !1)
}, qe = (e, t, o) => {
const n = j();
if (n.length) return (t += o) === n.length ? t = 0 : -1 === t && (t = n.length - 1), void n[t].focus();
f().focus()
}, Ie = ["ArrowRight", "ArrowDown"], De = ["ArrowLeft", "ArrowUp"], Ve = (t, o, n) => {
const s = e.innerParams.get(t);
s && (o.isComposing || 229 === o.keyCode || (s.stopKeydownPropagation && o.stopPropagation(), "Enter" === o.key ? Ne(t, o, s) : "Tab" === o.key ? Fe(o, s) : [...Ie, ...De].includes(o.key) ? Re(o.key) : "Escape" === o.key && Ue(o, s, n)))
}, Ne = (e, t, o) => {
if (d(o.allowEnterKey) && t.target && e.getInput() && t.target instanceof HTMLElement && t.target.outerHTML === e.getInput().outerHTML) {
if (["textarea", "file"].includes(o.input)) return;
Me(), t.preventDefault()
}
}, Fe = (e, t) => {
const o = e.target, n = j();
let s = -1;
for (let e = 0; e < n.length; e++) if (o === n[e]) {
s = e;
break
}
e.shiftKey ? qe(0, s, -1) : qe(0, s, 1), e.stopPropagation(), e.preventDefault()
}, Re = e => {
const t = A(), o = B(), n = $();
if (document.activeElement instanceof HTMLElement && ![t, o, n].includes(document.activeElement)) return;
const s = Ie.includes(e) ? "nextElementSibling" : "previousElementSibling";
let a = document.activeElement;
for (let e = 0; e < E().children.length; e++) {
if (a = a[s], !a) return;
if (a instanceof HTMLButtonElement && X(a)) break
}
a instanceof HTMLButtonElement && a.focus()
}, Ue = (e, t, o) => {
d(t.allowEscapeKey) && (e.preventDefault(), o(ze.esc))
};
var _e = {swalPromiseResolve: new WeakMap, swalPromiseReject: new WeakMap};
const We = () => {
Array.from(document.body.children).forEach((e => {
e.hasAttribute("data-previous-aria-hidden") ? (e.setAttribute("aria-hidden", e.getAttribute("data-previous-aria-hidden")), e.removeAttribute("data-previous-aria-hidden")) : e.removeAttribute("aria-hidden")
}))
}, Ye = () => {
const e = navigator.userAgent, t = !!e.match(/iPad/i) || !!e.match(/iPhone/i), o = !!e.match(/WebKit/i);
if (t && o && !e.match(/CriOS/i)) {
const e = 44;
f().scrollHeight > window.innerHeight - e && (w().style.paddingBottom = `${e}px`)
}
}, Ze = () => {
const e = w();
let t;
e.ontouchstart = e => {
t = Ke(e)
}, e.ontouchmove = e => {
t && (e.preventDefault(), e.stopPropagation())
}
}, Ke = e => {
const t = e.target, o = w();
return !Xe(e) && !Je(e) && (t === o || !J(o) && t instanceof HTMLElement && "INPUT" !== t.tagName && "TEXTAREA" !== t.tagName && (!J(v()) || !v().contains(t)))
}, Xe = e => e.touches && e.touches.length && "stylus" === e.touches[0].touchType,
Je = e => e.touches && e.touches.length > 1, Ge = () => {
null === z.previousBodyPadding && document.body.scrollHeight > window.innerHeight && (z.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")), document.body.style.paddingRight = `${z.previousBodyPadding + (() => {
const e = document.createElement("div");
e.className = o["scrollbar-measure"], document.body.appendChild(e);
const t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
})()}px`)
};
function Qe(e, t, n, s) {
M() ? it(e, s) : (te(n).then((() => it(e, s))), He(ee));
/^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? (t.setAttribute("style", "display:none !important"), t.removeAttribute("class"), t.innerHTML = "") : t.remove(), O() && (null !== z.previousBodyPadding && (document.body.style.paddingRight = `${z.previousBodyPadding}px`, z.previousBodyPadding = null), (() => {
if (q(document.body, o.iosfix)) {
const e = parseInt(document.body.style.top, 10);
R(document.body, o.iosfix), document.body.style.top = "", document.body.scrollTop = -1 * e
}
})(), We()), R([document.documentElement, document.body], [o.shown, o["height-auto"], o["no-backdrop"], o["toast-shown"]])
}
function et(e) {
e = nt(e);
const t = _e.swalPromiseResolve.get(this), o = tt(this);
this.isAwaitingPromise() ? e.isDismissed || (ot(this), t(e)) : o && t(e)
}
const tt = t => {
const o = f();
if (!o) return !1;
const n = e.innerParams.get(t);
if (!n || q(o, n.hideClass.popup)) return !1;
R(o, n.showClass.popup), F(o, n.hideClass.popup);
const s = w();
return R(s, n.showClass.backdrop), F(s, n.hideClass.backdrop), st(t, o, n), !0
};
const ot = t => {
t.isAwaitingPromise() && (e.awaitingPromise.delete(t), e.innerParams.get(t) || t._destroy())
}, nt = e => void 0 === e ? {isConfirmed: !1, isDenied: !1, isDismissed: !0} : Object.assign({
isConfirmed: !1,
isDenied: !1,
isDismissed: !1
}, e), st = (e, t, o) => {
const n = w(), s = ce && G(t);
"function" == typeof o.willClose && o.willClose(t), s ? at(e, t, n, o.returnFocus, o.didClose) : Qe(e, n, o.returnFocus, o.didClose)
}, at = (e, t, o, n, s) => {
ee.swalCloseEventFinishedCallback = Qe.bind(null, e, o, n, s), t.addEventListener(ce, (function (e) {
e.target === t && (ee.swalCloseEventFinishedCallback(), delete ee.swalCloseEventFinishedCallback)
}))
}, it = (e, t) => {
setTimeout((() => {
"function" == typeof t && t.bind(e.params)(), e._destroy()
}))
};
function rt(t, o, n) {
const s = e.domCache.get(t);
o.forEach((e => {
s[e].disabled = n
}))
}
function lt(e, t) {
if (e) if ("radio" === e.type) {
const o = e.parentNode.parentNode.querySelectorAll("input");
for (let e = 0; e < o.length; e++) o[e].disabled = t
} else e.disabled = t
}
const ct = {
title: "",
titleText: "",
text: "",
html: "",
footer: "",
icon: void 0,
iconColor: void 0,
iconHtml: void 0,
template: void 0,
toast: !1,
showClass: {popup: "swal2-show", backdrop: "swal2-backdrop-show", icon: "swal2-icon-show"},
hideClass: {popup: "swal2-hide", backdrop: "swal2-backdrop-hide", icon: "swal2-icon-hide"},
customClass: {},
target: "body",
color: void 0,
backdrop: !0,
heightAuto: !0,
allowOutsideClick: !0,
allowEscapeKey: !0,
allowEnterKey: !0,
stopKeydownPropagation: !0,
keydownListenerCapture: !1,
showConfirmButton: !0,
showDenyButton: !1,
showCancelButton: !1,
preConfirm: void 0,
preDeny: void 0,
confirmButtonText: "OK",
confirmButtonAriaLabel: "",
confirmButtonColor: void 0,
denyButtonText: "No",
denyButtonAriaLabel: "",
denyButtonColor: void 0,
cancelButtonText: "Cancel",
cancelButtonAriaLabel: "",
cancelButtonColor: void 0,
buttonsStyling: !0,
reverseButtons: !1,
focusConfirm: !0,
focusDeny: !1,
focusCancel: !1,
returnFocus: !0,
showCloseButton: !1,
closeButtonHtml: "×",
closeButtonAriaLabel: "Close this dialog",
loaderHtml: "",
showLoaderOnConfirm: !1,
showLoaderOnDeny: !1,
imageUrl: void 0,
imageWidth: void 0,
imageHeight: void 0,
imageAlt: "",
timer: void 0,
timerProgressBar: !1,
width: void 0,
padding: void 0,
background: void 0,
input: void 0,
inputPlaceholder: "",
inputLabel: "",
inputValue: "",
inputOptions: {},
inputAutoTrim: !0,
inputAttributes: {},
inputValidator: void 0,
returnInputValueOnDeny: !1,
validationMessage: void 0,
grow: !1,
position: "center",
progressSteps: [],
currentProgressStep: void 0,
progressStepsDistance: void 0,
willOpen: void 0,
didOpen: void 0,
didRender: void 0,
willClose: void 0,
didClose: void 0,
didDestroy: void 0,
scrollbarPadding: !0
},
dt = ["allowEscapeKey", "allowOutsideClick", "background", "buttonsStyling", "cancelButtonAriaLabel", "cancelButtonColor", "cancelButtonText", "closeButtonAriaLabel", "closeButtonHtml", "color", "confirmButtonAriaLabel", "confirmButtonColor", "confirmButtonText", "currentProgressStep", "customClass", "denyButtonAriaLabel", "denyButtonColor", "denyButtonText", "didClose", "didDestroy", "footer", "hideClass", "html", "icon", "iconColor", "iconHtml", "imageAlt", "imageHeight", "imageUrl", "imageWidth", "preConfirm", "preDeny", "progressSteps", "returnFocus", "reverseButtons", "showCancelButton", "showCloseButton", "showConfirmButton", "showDenyButton", "text", "title", "titleText", "willClose"],
ut = {},
pt = ["allowOutsideClick", "allowEnterKey", "backdrop", "focusConfirm", "focusDeny", "focusCancel", "returnFocus", "heightAuto", "keydownListenerCapture"],
mt = e => Object.prototype.hasOwnProperty.call(ct, e), wt = e => -1 !== dt.indexOf(e), gt = e => ut[e],
ht = e => {
mt(e) || i(`Unknown parameter "${e}"`)
}, ft = e => {
pt.includes(e) && i(`The parameter "${e}" is incompatible with toasts`)
}, bt = e => {
gt(e) && c(e, gt(e))
};
const yt = e => {
const t = {};
return Object.keys(e).forEach((o => {
wt(o) ? t[o] = e[o] : i(`Invalid parameter to update: ${o}`)
})), t
};
const vt = e => {
xt(e), delete e.params, delete ee.keydownHandler, delete ee.keydownTarget, delete ee.currentInstance
}, xt = t => {
t.isAwaitingPromise() ? (kt(e, t), e.awaitingPromise.set(t, !0)) : (kt(_e, t), kt(e, t))
}, kt = (e, t) => {
for (const o in e) e[o].delete(t)
};
var Ct = Object.freeze({
__proto__: null, hideLoading: je, disableLoading: je, getInput: function (t) {
const o = e.innerParams.get(t || this), n = e.domCache.get(t || this);
return n ? D(n.popup, o.input) : null
}, close: et, isAwaitingPromise: function () {
return !!e.awaitingPromise.get(this)
}, rejectPromise: function (e) {
const t = _e.swalPromiseReject.get(this);
ot(this), t && t(e)
}, handleAwaitingPromise: ot, closePopup: et, closeModal: et, closeToast: et, enableButtons: function () {
rt(this, ["confirmButton", "denyButton", "cancelButton"], !1)
}, disableButtons: function () {
rt(this, ["confirmButton", "denyButton", "cancelButton"], !0)
}, enableInput: function () {
lt(this.getInput(), !1)
}, disableInput: function () {
lt(this.getInput(), !0)
}, showValidationMessage: function (t) {
const n = e.domCache.get(this), s = e.innerParams.get(this);
H(n.validationMessage, t), n.validationMessage.className = o["validation-message"], s.customClass && s.customClass.validationMessage && F(n.validationMessage, s.customClass.validationMessage), W(n.validationMessage);
const a = this.getInput();
a && (a.setAttribute("aria-invalid", !0), a.setAttribute("aria-describedby", o["validation-message"]), V(a), F(a, o.inputerror))
}, resetValidationMessage: function () {
const t = e.domCache.get(this);
t.validationMessage && Y(t.validationMessage);
const n = this.getInput();
n && (n.removeAttribute("aria-invalid"), n.removeAttribute("aria-describedby"), R(n, o.inputerror))
}, update: function (t) {
const o = f(), n = e.innerParams.get(this);
if (!o || q(o, n.hideClass.popup)) return void i("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
const s = yt(t), a = Object.assign({}, n, s);
Le(this, a), e.innerParams.set(this, a), Object.defineProperties(this, {
params: {
value: Object.assign({}, this.params, t),
writable: !1,
enumerable: !0
}
})
}, _destroy: function () {
const t = e.domCache.get(this), o = e.innerParams.get(this);
o ? (t.popup && ee.swalCloseEventFinishedCallback && (ee.swalCloseEventFinishedCallback(), delete ee.swalCloseEventFinishedCallback), "function" == typeof o.didDestroy && o.didDestroy(), vt(this)) : xt(this)
}
});
const At = e => {
let t = f();
t || new $o, t = f();
const o = P();
M() ? Y(b()) : Bt(t, e), W(o), t.setAttribute("data-loading", "true"), t.setAttribute("aria-busy", "true"), t.focus()
}, Bt = (e, t) => {
const n = E(), s = P();
!t && X(A()) && (t = A()), W(n), t && (Y(t), s.setAttribute("data-button-to-replace", t.className)), s.parentNode.insertBefore(s, t), F([e, n], o.loading)
}, Pt = e => e.checked ? 1 : 0, $t = e => e.checked ? e.value : null,
Et = e => e.files.length ? null !== e.getAttribute("multiple") ? e.files : e.files[0] : null,
Tt = (e, t) => {
const o = f(), n = e => {
Lt[t.input](o, jt(e), t)
};
u(t.inputOptions) || m(t.inputOptions) ? (At(A()), p(t.inputOptions).then((t => {
e.hideLoading(), n(t)
}))) : "object" == typeof t.inputOptions ? n(t.inputOptions) : r("Unexpected type of inputOptions! Expected object, Map or Promise, got " + typeof t.inputOptions)
}, St = (e, t) => {
const o = e.getInput();
Y(o), p(t.inputValue).then((n => {
o.value = "number" === t.input ? `${parseFloat(n) || 0}` : `${n}`, W(o), o.focus(), e.hideLoading()
})).catch((t => {
r(`Error in inputValue promise: ${t}`), o.value = "", W(o), o.focus(), e.hideLoading()
}))
}, Lt = {
select: (e, t, n) => {
const s = U(e, o.select), a = (e, t, o) => {
const s = document.createElement("option");
s.value = o, H(s, t), s.selected = Ot(o, n.inputValue), e.appendChild(s)
};
t.forEach((e => {
const t = e[0], o = e[1];
if (Array.isArray(o)) {
const e = document.createElement("optgroup");
e.label = t, e.disabled = !1, s.appendChild(e), o.forEach((t => a(e, t[1], t[0])))
} else a(s, o, t)
})), s.focus()
}, radio: (e, t, n) => {
const s = U(e, o.radio);
t.forEach((e => {
const t = e[0], a = e[1], i = document.createElement("input"), r = document.createElement("label");
i.type = "radio", i.name = o.radio, i.value = t, Ot(t, n.inputValue) && (i.checked = !0);
const l = document.createElement("span");
H(l, a), l.className = o.label, r.appendChild(i), r.appendChild(l), s.appendChild(r)
}));
const a = s.querySelectorAll("input");
a.length && a[0].focus()
}
}, jt = e => {
const t = [];
return "undefined" != typeof Map && e instanceof Map ? e.forEach(((e, o) => {
let n = e;
"object" == typeof n && (n = jt(n)), t.push([o, n])
})) : Object.keys(e).forEach((o => {
let n = e[o];
"object" == typeof n && (n = jt(n)), t.push([o, n])
})), t
}, Ot = (e, t) => t && t.toString() === e.toString(), Mt = (t, o) => {
const n = e.innerParams.get(t);
if (!n.input) return void r(`The "input" parameter is needed to be set when using returnInputValueOn${a(o)}`);
const s = ((e, t) => {
const o = e.getInput();
if (!o) return null;
switch (t.input) {
case"checkbox":
return Pt(o);
case"radio":
return $t(o);
case"file":
return Et(o);
default:
return t.inputAutoTrim ? o.value.trim() : o.value
}
})(t, n);
n.inputValidator ? zt(t, s, o) : t.getInput().checkValidity() ? "deny" === o ? Ht(t, s) : Dt(t, s) : (t.enableButtons(), t.showValidationMessage(n.validationMessage))
}, zt = (t, o, n) => {
const s = e.innerParams.get(t);
t.disableInput();
Promise.resolve().then((() => p(s.inputValidator(o, s.validationMessage)))).then((e => {
t.enableButtons(), t.enableInput(), e ? t.showValidationMessage(e) : "deny" === n ? Ht(t, o) : Dt(t, o)
}))
}, Ht = (t, o) => {
const n = e.innerParams.get(t || void 0);
if (n.showLoaderOnDeny && At(B()), n.preDeny) {
e.awaitingPromise.set(t || void 0, !0);
Promise.resolve().then((() => p(n.preDeny(o, n.validationMessage)))).then((e => {
!1 === e ? (t.hideLoading(), ot(t)) : t.close({isDenied: !0, value: void 0 === e ? o : e})
})).catch((e => It(t || void 0, e)))
} else t.close({isDenied: !0, value: o})
}, qt = (e, t) => {
e.close({isConfirmed: !0, value: t})
}, It = (e, t) => {
e.rejectPromise(t)
}, Dt = (t, o) => {
const n = e.innerParams.get(t || void 0);
if (n.showLoaderOnConfirm && At(), n.preConfirm) {
t.resetValidationMessage(), e.awaitingPromise.set(t || void 0, !0);
Promise.resolve().then((() => p(n.preConfirm(o, n.validationMessage)))).then((e => {
X(C()) || !1 === e ? (t.hideLoading(), ot(t)) : qt(t, void 0 === e ? o : e)
})).catch((e => It(t || void 0, e)))
} else qt(t, o)
}, Vt = (t, o, n) => {
o.popup.onclick = () => {
const o = e.innerParams.get(t);
o && (Nt(o) || o.timer || o.input) || n(ze.close)
}
}, Nt = e => e.showConfirmButton || e.showDenyButton || e.showCancelButton || e.showCloseButton;
let Ft = !1;
const Rt = e => {
e.popup.onmousedown = () => {
e.container.onmouseup = function (t) {
e.container.onmouseup = void 0, t.target === e.container && (Ft = !0)
}
}
}, Ut = e => {
e.container.onmousedown = () => {
e.popup.onmouseup = function (t) {
e.popup.onmouseup = void 0, (t.target === e.popup || e.popup.contains(t.target)) && (Ft = !0)
}
}
}, _t = (t, o, n) => {
o.container.onclick = s => {
const a = e.innerParams.get(t);
Ft ? Ft = !1 : s.target === o.container && d(a.allowOutsideClick) && n(ze.backdrop)
}
}, Wt = e => e instanceof Element || (e => "object" == typeof e && e.jquery)(e);
const Yt = () => {
if (ee.timeout) return (() => {
const e = S(), t = parseInt(window.getComputedStyle(e).width);
e.style.removeProperty("transition"), e.style.width = "100%";
const o = t / parseInt(window.getComputedStyle(e).width) * 100;
e.style.removeProperty("transition"), e.style.width = `${o}%`
})(), ee.timeout.stop()
}, Zt = () => {
if (ee.timeout) {
const e = ee.timeout.start();
return Q(e), e
}
};
let Kt = !1;
const Xt = {};
const Jt = e => {
for (let t = e.target; t && t !== document; t = t.parentNode) for (const e in Xt) {
const o = t.getAttribute(e);
if (o) return void Xt[e].fire({template: o})
}
};
var Gt = Object.freeze({
__proto__: null,
isValidParameter: mt,
isUpdatableParameter: wt,
isDeprecatedParameter: gt,
argsToParams: e => {
const t = {};
return "object" != typeof e[0] || Wt(e[0]) ? ["title", "html", "icon"].forEach(((o, n) => {
const s = e[n];
"string" == typeof s || Wt(s) ? t[o] = s : void 0 !== s && r(`Unexpected type of ${o}! Expected "string" or "Element", got ${typeof s}`)
})) : Object.assign(t, e[0]), t
},
getContainer: w,
getPopup: f,
getTitle: y,
getHtmlContainer: v,
getImage: x,
getIcon: b,
getIconContent: () => h(o["icon-content"]),
getInputLabel: () => h(o["input-label"]),
getCloseButton: L,
getActions: E,
getConfirmButton: A,
getDenyButton: B,
getCancelButton: $,
getLoader: P,
getFooter: T,
getTimerProgressBar: S,
getFocusableElements: j,
getValidationMessage: C,
getProgressSteps: k,
isLoading: () => f().hasAttribute("data-loading"),
isVisible: () => X(f()),
clickConfirm: Me,
clickDeny: () => B() && B().click(),
clickCancel: () => $() && $().click(),
fire: function () {
const e = this;
for (var t = arguments.length, o = new Array(t), n = 0; n < t; n++) o[n] = arguments[n];
return new e(...o)
},
mixin: function (e) {
return class extends (this) {
_main(t, o) {
return super._main(t, Object.assign({}, e, o))
}
}
},
showLoading: At,
enableLoading: At,
getTimerLeft: () => ee.timeout && ee.timeout.getTimerLeft(),
stopTimer: Yt,
resumeTimer: Zt,
toggleTimer: () => {
const e = ee.timeout;
return e && (e.running ? Yt() : Zt())
},
increaseTimer: e => {
if (ee.timeout) {
const t = ee.timeout.increase(e);
return Q(t, !0), t
}
},
isTimerRunning: () => ee.timeout && ee.timeout.isRunning(),
bindClickHandler: function () {
let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "data-swal-template";
Xt[e] = this, Kt || (document.body.addEventListener("click", Jt), Kt = !0)
}
});
class Qt {
constructor(e, t) {
this.callback = e, this.remaining = t, this.running = !1, this.start()
}
start() {
return this.running || (this.running = !0, this.started = new Date, this.id = setTimeout(this.callback, this.remaining)), this.remaining
}
stop() {
return this.running && (this.running = !1, clearTimeout(this.id), this.remaining -= (new Date).getTime() - this.started.getTime()), this.remaining
}
increase(e) {
const t = this.running;
return t && this.stop(), this.remaining += e, t && this.start(), this.remaining
}
getTimerLeft() {
return this.running && (this.stop(), this.start()), this.remaining
}
isRunning() {
return this.running
}
}
const eo = ["swal-title", "swal-html", "swal-footer"], to = e => {
const t = {};
return Array.from(e.querySelectorAll("swal-param")).forEach((e => {
co(e, ["name", "value"]);
const o = e.getAttribute("name"), n = e.getAttribute("value");
t[o] = "boolean" == typeof ct[o] ? "false" !== n : "object" == typeof ct[o] ? JSON.parse(n) : n
})), t
}, oo = e => {
const t = {};
return Array.from(e.querySelectorAll("swal-function-param")).forEach((e => {
const o = e.getAttribute("name"), n = e.getAttribute("value");
t[o] = new Function(`return ${n}`)()
})), t
}, no = e => {
const t = {};
return Array.from(e.querySelectorAll("swal-button")).forEach((e => {
co(e, ["type", "color", "aria-label"]);
const o = e.getAttribute("type");
t[`${o}ButtonText`] = e.innerHTML, t[`show${a(o)}Button`] = !0, e.hasAttribute("color") && (t[`${o}ButtonColor`] = e.getAttribute("color")), e.hasAttribute("aria-label") && (t[`${o}ButtonAriaLabel`] = e.getAttribute("aria-label"))
})), t
}, so = e => {
const t = {}, o = e.querySelector("swal-image");
return o && (co(o, ["src", "width", "height", "alt"]), o.hasAttribute("src") && (t.imageUrl = o.getAttribute("src")), o.hasAttribute("width") && (t.imageWidth = o.getAttribute("width")), o.hasAttribute("height") && (t.imageHeight = o.getAttribute("height")), o.hasAttribute("alt") && (t.imageAlt = o.getAttribute("alt"))), t
}, ao = e => {
const t = {}, o = e.querySelector("swal-icon");
return o && (co(o, ["type", "color"]), o.hasAttribute("type") && (t.icon = o.getAttribute("type")), o.hasAttribute("color") && (t.iconColor = o.getAttribute("color")), t.iconHtml = o.innerHTML), t
}, io = e => {
const t = {}, o = e.querySelector("swal-input");
o && (co(o, ["type", "label", "placeholder", "value"]), t.input = o.getAttribute("type") || "text", o.hasAttribute("label") && (t.inputLabel = o.getAttribute("label")), o.hasAttribute("placeholder") && (t.inputPlaceholder = o.getAttribute("placeholder")), o.hasAttribute("value") && (t.inputValue = o.getAttribute("value")));
const n = Array.from(e.querySelectorAll("swal-input-option"));
return n.length && (t.inputOptions = {}, n.forEach((e => {
co(e, ["value"]);
const o = e.getAttribute("value"), n = e.innerHTML;
t.inputOptions[o] = n
}))), t
}, ro = (e, t) => {
const o = {};
for (const n in t) {
const s = t[n], a = e.querySelector(s);
a && (co(a, []), o[s.replace(/^swal-/, "")] = a.innerHTML.trim())
}
return o
}, lo = e => {
const t = eo.concat(["swal-param", "swal-function-param", "swal-button", "swal-image", "swal-icon", "swal-input", "swal-input-option"]);
Array.from(e.children).forEach((e => {
const o = e.tagName.toLowerCase();
t.includes(o) || i(`Unrecognized element <${o}>`)
}))
}, co = (e, t) => {
Array.from(e.attributes).forEach((o => {
-1 === t.indexOf(o.name) && i([`Unrecognized attribute "${o.name}" on <${e.tagName.toLowerCase()}>.`, "" + (t.length ? `Allowed attributes are: ${t.join(", ")}` : "To set the value, use HTML within the element.")])
}))
}, uo = e => {
const t = w(), n = f();
"function" == typeof e.willOpen && e.willOpen(n);
const s = window.getComputedStyle(document.body).overflowY;
go(t, n, e), setTimeout((() => {
mo(t, n)
}), 10), O() && (wo(t, e.scrollbarPadding, s), Array.from(document.body.children).forEach((e => {
e === w() || e.contains(w()) || (e.hasAttribute("aria-hidden") && e.setAttribute("data-previous-aria-hidden", e.getAttribute("aria-hidden")), e.setAttribute("aria-hidden", "true"))
}))), M() || ee.previousActiveElement || (ee.previousActiveElement = document.activeElement), "function" == typeof e.didOpen && setTimeout((() => e.didOpen(n))), R(t, o["no-transition"])
}, po = e => {
const t = f();
if (e.target !== t) return;
const o = w();
t.removeEventListener(ce, po), o.style.overflowY = "auto"
}, mo = (e, t) => {
ce && G(t) ? (e.style.overflowY = "hidden", t.addEventListener(ce, po)) : e.style.overflowY = "auto"
}, wo = (e, t, n) => {
(() => {
if ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 1) && !q(document.body, o.iosfix)) {
const e = document.body.scrollTop;
document.body.style.top = -1 * e + "px", F(document.body, o.iosfix), Ze(), Ye()
}
})(), t && "hidden" !== n && Ge(), setTimeout((() => {
e.scrollTop = 0
}))
}, go = (e, t, n) => {
F(e, n.showClass.backdrop), t.style.setProperty("opacity", "0", "important"), W(t, "grid"), setTimeout((() => {
F(t, n.showClass.popup), t.style.removeProperty("opacity")
}), 10), F([document.documentElement, document.body], o.shown), n.heightAuto && n.backdrop && !n.toast && F([document.documentElement, document.body], o["height-auto"])
};
var ho = {
email: (e, t) => /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e) ? Promise.resolve() : Promise.resolve(t || "Invalid email address"),
url: (e, t) => /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e) ? Promise.resolve() : Promise.resolve(t || "Invalid URL")
};
function fo(e) {
!function (e) {
e.inputValidator || Object.keys(ho).forEach((t => {
e.input === t && (e.inputValidator = ho[t])
}))
}(e), e.showLoaderOnConfirm && !e.preConfirm && i("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"), function (e) {
(!e.target || "string" == typeof e.target && !document.querySelector(e.target) || "string" != typeof e.target && !e.target.appendChild) && (i('Target parameter is not valid, defaulting to "body"'), e.target = "body")
}(e), "string" == typeof e.title && (e.title = e.title.split("\n").join("<br />")), ae(e)
}
let bo;
class yo {
constructor() {
if ("undefined" == typeof window) return;
bo = this;
for (var t = arguments.length, o = new Array(t), n = 0; n < t; n++) o[n] = arguments[n];
const s = Object.freeze(this.constructor.argsToParams(o));
Object.defineProperties(this, {params: {value: s, writable: !1, enumerable: !0, configurable: !0}});
const a = bo._main(bo.params);
e.promise.set(this, a)
}
_main(t) {
let o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
(e => {
!1 === e.backdrop && e.allowOutsideClick && i('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
for (const t in e) ht(t), e.toast && ft(t), bt(t)
})(Object.assign({}, o, t)), ee.currentInstance && (ee.currentInstance._destroy(), O() && We()), ee.currentInstance = bo;
const n = xo(t, o);
fo(n), Object.freeze(n), ee.timeout && (ee.timeout.stop(), delete ee.timeout), clearTimeout(ee.restoreFocusTimeout);
const s = ko(bo);
return Le(bo, n), e.innerParams.set(bo, n), vo(bo, s, n)
}
then(t) {
return e.promise.get(this).then(t)
}
finally(t) {
return e.promise.get(this).finally(t)
}
}
const vo = (t, o, n) => new Promise(((s, a) => {
const i = e => {
t.close({isDismissed: !0, dismiss: e})
};
_e.swalPromiseResolve.set(t, s), _e.swalPromiseReject.set(t, a), o.confirmButton.onclick = () => {
(t => {
const o = e.innerParams.get(t);
t.disableButtons(), o.input ? Mt(t, "confirm") : Dt(t, !0)
})(t)
}, o.denyButton.onclick = () => {
(t => {
const o = e.innerParams.get(t);
t.disableButtons(), o.returnInputValueOnDeny ? Mt(t, "deny") : Ht(t, !1)
})(t)
}, o.cancelButton.onclick = () => {
((e, t) => {
e.disableButtons(), t(ze.cancel)
})(t, i)
}, o.closeButton.onclick = () => {
i(ze.close)
}, ((t, o, n) => {
e.innerParams.get(t).toast ? Vt(t, o, n) : (Rt(o), Ut(o), _t(t, o, n))
})(t, o, i), ((e, t, o, n) => {
He(t), o.toast || (t.keydownHandler = t => Ve(e, t, n), t.keydownTarget = o.keydownListenerCapture ? window : f(), t.keydownListenerCapture = o.keydownListenerCapture, t.keydownTarget.addEventListener("keydown", t.keydownHandler, {capture: t.keydownListenerCapture}), t.keydownHandlerAdded = !0)
})(t, ee, n, i), ((e, t) => {
"select" === t.input || "radio" === t.input ? Tt(e, t) : ["text", "email", "number", "tel", "textarea"].includes(t.input) && (u(t.inputValue) || m(t.inputValue)) && (At(A()), St(e, t))
})(t, n), uo(n), Co(ee, n, i), Ao(o, n), setTimeout((() => {
o.container.scrollTop = 0
}))
})), xo = (e, t) => {
const o = (e => {
const t = "string" == typeof e.template ? document.querySelector(e.template) : e.template;
if (!t) return {};
const o = t.content;
return lo(o), Object.assign(to(o), oo(o), no(o), so(o), ao(o), io(o), ro(o, eo))
})(e), n = Object.assign({}, ct, t, o, e);
return n.showClass = Object.assign({}, ct.showClass, n.showClass), n.hideClass = Object.assign({}, ct.hideClass, n.hideClass), n
}, ko = t => {
const o = {
popup: f(),
container: w(),
actions: E(),
confirmButton: A(),
denyButton: B(),
cancelButton: $(),
loader: P(),
closeButton: L(),
validationMessage: C(),
progressSteps: k()
};
return e.domCache.set(t, o), o
}, Co = (e, t, o) => {
const n = S();
Y(n), t.timer && (e.timeout = new Qt((() => {
o("timer"), delete e.timeout
}), t.timer), t.timerProgressBar && (W(n), I(n, t, "timerProgressBar"), setTimeout((() => {
e.timeout && e.timeout.running && Q(t.timer)
}))))
}, Ao = (e, t) => {
t.toast || (d(t.allowEnterKey) ? Bo(e, t) || qe(0, -1, 1) : Po())
},
Bo = (e, t) => t.focusDeny && X(e.denyButton) ? (e.denyButton.focus(), !0) : t.focusCancel && X(e.cancelButton) ? (e.cancelButton.focus(), !0) : !(!t.focusConfirm || !X(e.confirmButton)) && (e.confirmButton.focus(), !0),
Po = () => {
document.activeElement instanceof HTMLElement && "function" == typeof document.activeElement.blur && document.activeElement.blur()
};
Object.assign(yo.prototype, Ct), Object.assign(yo, Gt), Object.keys(Ct).forEach((e => {
yo[e] = function () {
if (bo) return bo[e](...arguments)
}
})), yo.DismissReason = ze, yo.version = "11.6.15";
const $o = yo;
return $o.default = $o, $o
})), void 0 !== this && this.Sweetalert2 && (this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2), "undefined" != typeof document && function (e, t) {
var o = e.createElement("style");
if (e.getElementsByTagName("head")[0].appendChild(o), o.styleSheet) o.styleSheet.disabled || (o.styleSheet.cssText = t); else try {
o.innerHTML = t
} catch (e) {
o.innerText = t
}
}(document, '.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:rgba(0,0,0,0) !important}.swal2-container.swal2-top-start,.swal2-container.swal2-center-start,.swal2-container.swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}.swal2-container.swal2-top,.swal2-container.swal2-center,.swal2-container.swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}.swal2-container.swal2-top-end,.swal2-container.swal2-center-end,.swal2-container.swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-start>.swal2-popup,.swal2-container.swal2-center-left>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-start>.swal2-popup,.swal2-container.swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-row>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none !important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:none}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em 2em 3px}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}');
</script>
<script>
/*
* Микролиба для получения gaid и yaid
*/
var SLGodObject = window.SLGodObject || {
helpers: {},
data: {
counters: {}
}
};
SLGodObject.helpers.setYaCliendID = function () {
// ХЗ к какому событию можно приципиться, поэтому дёргаем раз в 1 секунду до победного
var timerId = setInterval(function () {
if (SLGodObject.data.counters.yaClienId) {
clearInterval(timerId);
} else {
for (var i in window) {
if (/^yaCounter\d+/.test(i)) {
try {
SLGodObject.data.counters.yaClienId = window[i].getClientID();
// console.log('yaid: ' + SLGodObject.data.counters.yaClienId);
} catch (e) {
}
}
}
}
}, 1000);
};
SLGodObject.helpers.setGaCliendID = function () {
// ХЗ к какому событию можно приципиться, поэтому дёргаем раз в 1 секунду до победного
var timerId = setInterval(function () {
if (SLGodObject.data.counters.gaClienId) {
clearInterval(timerId);
} else {
try {
SLGodObject.data.counters.gaClienId = ga.getAll()[0].get('clientId');
// console.log('gaid: ' + SLGodObject.data.counters.gaClienId);
} catch (e) {
}
}
}, 1000);
};
SLGodObject.helpers.getYaCliendID = function () { // Чисто для наглядности, но можно взять прямо из data
return SLGodObject.data.counters.yaClienId || null;
};
SLGodObject.helpers.getGaCliendID = function () { // Чисто для наглядности, но можно взять прямо из data
return SLGodObject.data.counters.gaClienId || null;
};
SLGodObject.helpers.setAllCliendID = function () { // Получаем id со всех счётчиков (может ещё что добавиться)
SLGodObject.helpers.setYaCliendID();
SLGodObject.helpers.setGaCliendID();
};
SLGodObject.helpers.setAllCliendID();
</script>
<script>
var city = {"id":777,"name":"","country":"rus"};
var thread = {"id":39931,"part_id":27501,"hash":null,"idp":"817685d2-1726-4154-8e0733dde91d1ec0","title":"\u041a\u041f - \u041c\u0441\u043a 1","type":0,"is_pm":0,"tool_type":1,"tool_id":41,"created_at":"2024-01-24 16:13:40","updated_at":"2024-01-31 09:29:13","archived_at":null,"data":{"inn":null,"tel":"","ogrn":null,"fp_id":null,"ga_id":null,"mg_id":null,"tt_id":null,"vp_id":null,"ym_id":"18381154","zd_id":null,"domain":"doctor-hdd.ru","gtm_id":null,"city_id":["auto"],"subid_1":null,"subid_2":null,"subid_3":null,"yuraddr":null,"yurname":null,"lkVersion":"sl","show_city":"no","direction_id":1,"new_offer_id":1,"trafficSources":"\u0421\u0432\u043e\u0438 \u0441\u0430\u0439\u0442\u044b","use_lead_proxy":"yes","form_add_modals":"1","form_add_chatbot":"1","form_chatbot_job":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445","form_modal_delay":null,"form_modal_header":"\u0421\u043b\u043e\u043c\u0430\u043b\u0441\u044f \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a?","form_modal_number":"2","form_chatbot_delay":null,"form_chatbot_avatar":null,"form_modal_btn_text":null,"form_add_phonemodals":"0","form_modal_subheader":null,"form_modalphone_delay":null,"form_modalphone_header":null,"form_modalphone_btn_text":null,"form_modalphone_subheader":null,"form_chatbot_active-dialog":"1","form_chatbot_operator-name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d","form_chatbot_active-dialog_delay":null,"form_chatbot_writing__operator_long_delay":null,"form_chatbot_writing__operator_short_delay":null}};
var countryName = city.country || 'rus';
$('[type="tel"]').not('.nomask').each(function () {
var self = $(this);
self.inputmask('remove');
if (countryName === 'rus' || countryName === 'kaz') {
self.removeAttr('pattern');
self.inputmask({
mask: "+7 (999) 999-99-99",
onBeforePaste: function (pastedValue, opts) {
var processedValue = pastedValue;
var tel = processedValue.replace(/[^\d]/g, '');
if (tel.length === 11 && (tel[0] === '8' || tel[0] === '7')) {
processedValue = '+7' + tel.substring(1);
}
return processedValue;
},
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'bel') {
self.removeAttr('pattern');
self.inputmask("+375 99-999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'ua') {
self.removeAttr('pattern');
self.inputmask("+380 99-999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'tur') {
self.removeAttr('pattern');
self.inputmask("0 (999) 999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else if (countryName === 'az') {
if (
true
// typeof thread !== 'undefined' &&
// typeof thread.tool_id === 'number' &&
// thread.tool_id === 1191 &&
// typeof thread.id === 'number' &&
// thread.id === 33490
) {
self.prop('pattern', "\\+?((994\\s*\\(?\\d{2,3}\\)?\\s*\\d{3}-*\\s*\\d{2}-*\\s*\\d{2})|(0\\s*\\(?\\d{2,3}\\)?\\s*\\d{3}-*\\s*\\d{2}-*\\s*\\d{2})|(\\(?\\d{2,3}\\)?\\s*\\d{3}-*\\s*\\d{2}-*\\s*\\d{2}))");
self.inputmask({
"regex": "[\\d\\s\\(\\)\\-\\+]{9,25}",
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
} else {
self.inputmask("+\\9\\94 99-999-99-99", {
"onincomplete": function () {
self.addClass('incomplete');
self.removeClass('complete');
},
"oncomplete": function () {
self.removeClass('incomplete');
self.addClass('complete');
}
});
}
}
});
(function ($) {
$(function () {
if (window.location.hostname.endsWith('.ua')) {
countryName = 'ua';
}
if (window.location.hostname.endsWith('.by')) {
countryName = 'bel';
}
if (window.location.hostname.endsWith('.kz')) {
countryName = 'kaz';
}
if (window.location.hostname.endsWith('.tr')) {
countryName = 'tur';
}
window.convertPrices = function () {
if (
countryName == 'bel' ||
countryName == 'ua' ||
countryName == 'kaz' ||
countryName == 'az'
) {
if (countryName == 'bel') {
var currName = 'Бел.руб.';
var currDelim = 32;
}
if (countryName == 'ua') {
var currName = 'грн.';
var currDelim = 2.67;
}
if (countryName == 'kaz') {
var currName = 'тг';
var currDelim = 0.125;
}
if (countryName == 'az') {
var currName = 'AZN';
var currDelim = 35.74;
}
var regex = /(\d+)\s?((₽)|(ру?б?\.?)|(Ру?б?\.?))/gmi;
var pretext = function (priceStr) {
if (priceStr.includes('от')) {
if (countryName == 'az') {
priceStr = priceStr.replace('от', '').trim();
priceStr = priceStr.replace(currName, currName + '-dən');
}
}
return priceStr;
}
var convert = function (m, m1, m2, offset, s) {
var price = Math.ceil(m1 / currDelim);
if (
countryName == 'kaz'
// ||
// countryName == 'az'
) {
if (price >= 100) {
price = Math.round(price / 100) * 100;
} else {
price = Math.round(price / 10) * 10;
}
}
var res = price + ' ' + currName;
return res;
}
jQuery(":contains(Руб),:contains(руб),:contains(р.),:contains(₽)").not('script,style,link').each(function () {
var self = jQuery(this);
if (self.children().length !== 0) {
return;
}
var text = self.text();
if (regex.test(text)) {
// console.log(text);
text = text.replace(regex, convert);
// console.log(text);
text = pretext(text);
self.text(text);
}
});
}
}
// document.addEventListener("DOMContentLoaded", convertPrices);
convertPrices();
function insertParam(key, value) {
key = encodeURI(key);
value = encodeURI(value);
var kvp = document.location.search.substr(1).split('&');
var i = kvp.length;
var x;
while (i--) {
x = kvp[i].split('=');
if (x[0] == key) {
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if (i < 0) {
kvp[kvp.length] = [key, value].join('=');
}
document.location.search = kvp.join('&');
}
$('#city, .city-change').change(function (e) {
if ($(this).parents('.not-city-select').length !== 0) {
return;
}
e.preventDefault();
insertParam('city_id', $(this).val());
});
$('.select__list li, .header-city a.dropdown-item, .nice-select li').click(function () {
if ($(this).parents('.not-city-select').length !== 0) {
return;
}
//e.preventDefault();
insertParam('city_id', $(this).data('value'));
});
});
})(jQuery);
function urlencodeFormData(fd) {
if (typeof URLSearchParams === 'function') {
var params = new URLSearchParams();
for (var pair of fd.entries()) {
typeof pair[1] == 'string' && params.append(pair[0], pair[1]);
}
return params.toString();
} else {
var s = '';
function encode(s) {
return encodeURIComponent(s).replace(/%20/g, '+');
}
for (var pair of fd.entries()) {
if (typeof pair[1] == 'string') {
s += (s ? '&' : '') + encode(pair[0]) + '=' + encode(pair[1]);
}
}
return s;
}
}
(function ($) {
$(function () {
// находим справочные поля типа
// <input type="hidden" name="work" value="на сайте есть акция - Скидка до 15%">
var saleInfoFields = $('input[name="work"]');
saleInfoFields.each(function () {
var self = $(this);
var formEl = self.parents('form');
var commentEl = formEl.find('textarea[name="work"]');
// если в форме есть textarea[name="work"] - переименовываем
// input[name="work"] в input[name="work2"]
if (commentEl.length !== 0) {
self.prop('name', 'work2');
}
});
var forms = document.getElementsByClassName('sltop__form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function (ev) {
ev.preventDefault();
var hcaptchaField = $(this).find('[name="h-captcha-response"]');
if (hcaptchaField.length !== 0 && hcaptchaField.val() === '') {
alert("Решите капчу.");
return;
}
var form = this;
var oData = new FormData(form);
var popupCloseEl = document.getElementsByClassName('sltop__form_close');
var telEl = $(this).find('[name="phone"]');
var modal = $(this).closest('.modal');
if (form.classList.contains("loading")) {
return;
}
// добавляем комментарий о скидке и тп
if (oData.has('work2')) {
oData.set('work', oData.get('work') + "\n\n" + oData.get('work2'));
}
if (!telEl.inputmask("isComplete")) {
telEl.trigger('focus');
// console.log('Phone not isComplete!!!');
return;
}
if (countryName === 'tur') {
oData.set('phone', '+9' + oData.get('phone'));
}
if (
countryName === 'az' &&
typeof thread !== 'undefined' &&
typeof thread.tool_id === 'number' &&
thread.tool_id === 1191 &&
typeof thread.id === 'number' &&
thread.id === 33490
) {
var phoneNum = oData.get('phone');
phoneNum = phoneNum.replace(/[^\d]/g, '');
if (phoneNum.substring(0, 1) === '0') { // если начинается с 0
// убираем 0 и добавляем +994
phoneNum = '+994'.concat(phoneNum.substring(1, phoneNum.length));
} else { // если не с 0
if (phoneNum.substring(0, 3) === '994') {
phoneNum = '+'.concat(phoneNum);
} else {
// добавляем +994
phoneNum = '+994'.concat(phoneNum);
}
}
oData.set('phone', phoneNum);
// for (var pair of oData.entries()) {
// console.log(pair[0] + ', ' + pair[1]);
// }
// return;
}
if (typeof URLSearchParams === 'function') {
const utm = {
utm_source: 'utm1',
utm_medium: 'utm2',
utm_campaign: 'utm3',
utm_content: 'utm4',
utm_term: 'utm5'
};
const sub_id = {
sub_id1: 'sub_id1',
sub_id2: 'sub_id2',
sub_id3: 'sub_id3',
sub_id4: 'sub_id4',
sub_id5: 'sub_id5'
};
const urlParams = new URLSearchParams(window.location.search);
for (var prop in utm) {
if (urlParams.get(prop) !== null) {
oData.append(utm[prop], urlParams.get(prop));
}
}
for (var prop in sub_id) {
if (urlParams.get(prop) !== null) {
oData.set(sub_id[prop], urlParams.get(prop));
}
}
}
oData.append('hash', oData.get('view_id'));
// if (parseInt(thread.type) < 0) {
// oData.append('directionTypeId', thread.type + 10000);
// }
var threadOfferId = 0;
var threadDirectionId = 0;
try {
threadDirectionId = parseInt(thread.data.direction_id || 0);
} catch (err) {
console.log(err);
}
try {
threadOfferId = parseInt(thread.data.new_offer_id || 0);
} catch (err) {
console.log(err);
}
oData.set('direction_id', threadDirectionId);
oData.set('offer_id', threadOfferId);
oData.set('lk', 'rf');
// Временное исключение для новых офферов
var offersSpecial = {
// 10: 78, // Телевизоры
// 11: 78, // Телевизоры ЧМ
// 14: 79, // Сантехника
// 18: 79, // Сантехника ЧМ
// 16: 79, // Муж на час
// 20: 79, // Муж на час ЧМ
22: 56, // Клининг
23: 56, // Клининг ЧМ
};
var offerId = parseInt(oData.get('offer_id') || 0);
if (offersSpecial[offerId] !== undefined) {
if (
offerId === 14 ||
offerId === 18 ||
offerId === 16 ||
offerId === 20
) {
if (parseInt(oData.get('branch_id')) === 0) {
oData.set('branch_id', offersSpecial[offerId]);
}
} else {
oData.set('branch_id', offersSpecial[offerId]);
}
}
if (!oData.get('fullname')) {
oData.set('fullname', 'Без имени');
}
try {
var yaid = SLGodObject.helpers.getYaCliendID();
var gaid = SLGodObject.helpers.getGaCliendID();
if (yaid) {
oData.set('yaid', yaid);
}
if (gaid) {
oData.set('gaid', gaid);
}
} catch (e) {
}
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();
xhr.open("POST", form.action, true);
xhr.onload = function (oEvent) {
var reponseCode = 0;
if (xhr.response.length > 0) {
try {
var result = JSON.parse(xhr.response);
console.info(result);
reponseCode = result.reponseCode;
if (!result.success) {
form.classList.remove("loading");
form.classList.add("fail");
if (typeof jQuery.fancybox === 'object') {
jQuery.fancybox.close();
}
Array.from(popupCloseEl).forEach(el => el.click());
var msg = {};
var urlParams = new URLSearchParams(window.location.search);
var l = urlParams.get('l');
if (
city.country === 'tur' && // Турция
thread.tool_id === 1193 && // Нерусский ленд
l !== 'ru' // не выбран русский язык
) {
msg.title = 'Veri gönderilemedi.';
msg.text = 'Lütfen tekrar deneyin veya telefonla bize ulaşın.';
} else {
msg.title = 'Не удалось отправить данные.';
msg.text = 'Пожалуйста, попробуйте ещё раз или свяжитесь с нами по телефону.';
}
Swal.fire({
icon: 'error',
title: msg.title,
text: msg.text +
" \n" + result.errorType + ' - ' + result.errorText,
onOpen: () => {
if (typeof hideKvizForm !== 'undefined') {
hideKvizForm();
}
}
});
if (modal.hasClass('show')) {
try {
modal.modal('hide');
} catch {
if (typeof modalHide !== 'undefined') {
modalHide();
}
}
} else if (typeof modalHide !== 'undefined') {
modalHide();
}
return;
}
} catch {
}
}
if (xhr.status == 200 || xhr.status == 202) {
form.classList.remove("loading");
form.classList.add("success");
form.reset();
Array.from(popupCloseEl).forEach(el => el.click());
if (typeof jQuery.fancybox === 'object') {
jQuery.fancybox.close();
}
if (xhr.status == 200) {
var msg = {};
var urlParams = new URLSearchParams(window.location.search);
var l = urlParams.get('l');
if (
city.country === 'tur' && // Турция
thread.tool_id === 1193 && // Нерусский ленд
l !== 'ru' // не выбран русский язык
) {
msg.title = 'Başvuru gönderildi.';
msg.text = 'Bizimle iletişime geçtiğiniz için teşekkür ederiz, bir arama bekleyin.';
} else {
msg.title = 'Заявка отправлена.';
msg.text = 'Спасибо за обращение, ожидайте звонка.';
}
Swal.fire({
icon: 'success',
title: msg.title,
text: msg.text,
onOpen: () => {
if (typeof hideKvizForm !== 'undefined') {
hideKvizForm();
}
$('.sltop__form').trigger('reset');
}
});
if (modal.hasClass('show')) {
try {
modal.modal('hide');
} catch {
if (typeof modalHide !== 'undefined') {
modalHide();
}
}
} else if (typeof modalHide !== 'undefined') {
modalHide();
}
}
if (xhr.status == 202 || reponseCode == 202) {
var msg = {};
var urlParams = new URLSearchParams(window.location.search);
var l = urlParams.get('l');
if (
city.country === 'tur' && // Турция
thread.tool_id === 1193 && // Нерусский ленд
l !== 'ru' // не выбран русский язык
) {
msg.title = 'Başvuru gönderildi #202.';
msg.text = 'Bizimle iletişime geçtiğiniz için teşekkür ederiz, bir arama bekleyin.';
} else {
msg.title = 'Заявка отправлена #202.';
msg.text = 'Спасибо за обращение, ожидайте звонка.';
}
Swal.fire({
icon: 'success',
title: msg.title,
text: msg.text
});
if (modal.hasClass('show')) {
try {
modal.modal('hide');
} catch {
if (typeof modalHide !== 'undefined') {
modalHide();
}
}
} else if (typeof modalHide !== 'undefined') {
modalHide();
}
}
if (typeof fbq === 'function') {
fbq('track', 'CompleteRegistration');
console.log("fbq('track', 'CompleteRegistration')");
}
try {
fbq('track', 'Lead');
console.log("Success: fbq('track', 'Lead')");
} catch (err) {
console.error("Fail: fbq('track', 'Lead')");
}
try {
VK.Retargeting.Event('Lead');
console.log("Success: VK.Retargeting.Event('Lead')");
} catch (err) {
console.error("Fail: VK.Retargeting.Event('Lead')");
}
for (var i in window) {
if (/^yaCounter\d+/.test(i)) {
try {
window[i].reachGoal('Lead');
console.log("Success: yaCounter.reachGoal('Lead')");
} catch (err) {
console.error("Fail: yaCounter.reachGoal('Lead')");
}
}
}
try {
gtag('event', 'Lead');
console.log("Success: gtag('event', 'Lead')");
} catch (err) {
console.error("Fail: gtag('event', 'Lead')");
}
try {
ga('send', 'event', null, 'Lead');
// ga('send', 'event', 'Lead', 'Lead', 'Lead');
console.log("Success: ga('send', 'event', null, 'Lead')");
} catch (err) {
console.error("Fail: ga('send', 'event', null, 'Lead')");
}
} else {
console.log("Error " + xhr.status);
console.log(xhr.responseText);
form.classList.remove("loading");
form.classList.add("fail");
if (typeof jQuery.fancybox === 'object') {
jQuery.fancybox.close();
}
Array.from(popupCloseEl).forEach(el => el.click());
var msg = {};
var urlParams = new URLSearchParams(window.location.search);
var l = urlParams.get('l');
if (
city.country === 'tur' && // Турция
thread.tool_id === 1193 && // Нерусский ленд
l !== 'ru' // не выбран русский язык
) {
msg.title = 'Veri gönderilemedi.';
msg.text = 'Lütfen tekrar deneyin veya telefonla bize ulaşın.';
} else {
msg.title = 'Не удалось отправить данные.';
msg.text = 'Пожалуйста, попробуйте ещё раз или свяжитесь с нами по телефону.';
}
Swal.fire({
icon: 'error',
title: msg.title,
text: msg.text,
onOpen: () => {
if (typeof hideKvizForm !== 'undefined') {
hideKvizForm();
}
}
});
if (modal.hasClass('show')) {
try {
modal.modal('hide');
} catch {
if (typeof modalHide !== 'undefined') {
modalHide();
}
}
} else if (typeof modalHide !== 'undefined') {
modalHide();
}
}
hcaptcha2.reset();
};
xhr.onerror = function () {
var msg = {};
var urlParams = new URLSearchParams(window.location.search);
var l = urlParams.get('l');
if (
city.country === 'tur' && // Турция
thread.tool_id === 1193 && // Нерусский ленд
l !== 'ru' // не выбран русский язык
) {
msg.title = 'Bağlantı hatası.';
msg.text = 'Lütfen tekrar deneyin veya telefonla bize ulaşın.';
} else {
msg.title = 'Ошибка соединения.';
msg.text = 'Пожалуйста, попробуйте ещё раз или свяжитесь с нами по телефону.';
}
Swal.fire({
icon: 'error',
title: msg.title,
text: msg.text
});
form.classList.remove("loading");
form.classList.add("fail");
hcaptcha2.reset();
};
form.classList.remove("success");
form.classList.remove("fail");
form.classList.add("loading");
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(urlencodeFormData(oData));
}, false);
}
});
})(jQuery);
</script>
<div class="site-policy-line">
<div class="site-policy-line-inner">
Информация на данном ресурсе не является публичной офертой.
<a href="http://doctor-hdd.ru/politika-obrabotki-personalnyh-dannyh.html" target="_blank">
Политика конфиденциальности
</a>
</div>
</div>
<style>
.site-policy-line {
padding: 3px 10px;
background: #eee;
border-top: 1px solid #ccc;
}
.site-policy-line .site-policy-line-inner {
max-width: 800px;
margin: 0 auto;
text-align: center;
font-size: 12px;
line-height: 18px;
color: #333;
}
.site-policy-line .site-policy-line-inner a {
color: #0036d0;
text-decoration: underline;
}
</style>
<script>
window.hcaptcha2 = {
reset: function () {
}
};
</script>
</body>
</html>