Мостбет Казино официальный Сайт Казино Мостбет, Играть На приличные

Мостбет Казино Вход В личных Кабинет

Content

Онлайн-казино Мостбет часто предлагает различные бонусы и акции, которые позволяют игрокам увеличить свой баланс и продлить удовольствие от игры. Это могут быть бесплатные спины, дополнительные средствах на депозит также участие в лотереях и турнирах. Бонусы позволяют игрокам играть медленнее и постепенно увеличивать выигрыш.

Того скачать приложение Mostbet для iOS, так зайдите в App Store и попросите “Mostbet”. Как же вы найдете но, нажмите на кнопку “Получить”, и приложение будет установлено в вашем устройстве а кратчайшие сроки. Чтобы” “скачать приложение Mostbet для Android, просто зайдите в Google Play Store и попросите “Mostbet”. Как а вы найдете его, нажмите на кнопку “Установить”, и приложение будет установлено и вашем устройстве а кратчайшие сроки. Скачай приложение MOSTBET, авторизуйся и получи Фриспины без внесения депозита.”

Как Поиграть В Казино нежелающим?

Для тех, кто играет на Mostbet online, важно знать, как легко же без проблем пополнить свой счет а вывести деньги. А этом руководстве вместе подробно опишем, а сделать это, этого” “сделано ваше общение пиппардом этой онлайн-платформой недостаточно комфортным и удобно. Для пополнения банкролла клиент переходит и раздел «Пополнить» (в правом верхнем углу страницы). Затем выбирает платежную систему, помощью которой будет выполняться перевод средств на депозит.

Кроме того, служба поддержки всегда готова ответить на любые ваши вопросы же проблемы. Будьте готова предоставить необходимые документы, если это понадобятся. Кешбэк с неудачного ставок (до 10 %) появляется а личном кабинете а начале каждой месяца мостбет.

Всё О Бонусах Мосбет

Это идеальный способ оставаться в курсе своих ставок и спортивных событий, которые вам нравятся, благодаря удобной компоновке и практичным функциям. Мобильная версия Mostbet позволяет играть а любимые игры в любое время и в любом месте. Вы можете скачать Mostbet для Android или iOS, и вы сможете заиметь доступ ко всем играм, бонусам и функциям казино.

Онлайн-казино мостбет позволяет играть в абсолютно любую время суток и в любом формате. Вы можете пофантазировать в уютном служебном своего дома же насладиться азартом, но закрывая глаза. Другие игроки выигрывают значительные суммы денег, играя в онлайн-слоты например участвуя в карточных играх.

Краткая Инструкция по Входу В Мостбет:

Для игроков из Казахстана доступную все способы сумм, включая банковские карты, электронные кошельки же криптовалюты. В том случае букмекер предложил” “автоматический выбор исходов происшедших. Это удобно, когда вы сомневаетесь а каких-то матчах, же можно прислушаться ко мнению других игроков.

Игровая платформа Mostbet предложил уникальный выбор игр, начиная от захватывающих слотов и заканчивая традиционными карточными же настольными играми. Так создает идеальную возможности для игроков открыл для себя новая азартные впечатления же находить любимые игры. Кроме того, Mostbet предоставляет бесплатные демо-версии игр, что позволяли игрокам освоить правила и стратегии, не рискуя своими противокоммунистическими. Чтобы успешно задействовать заявку на выплату выигрыша, гемблеру необходимо перейти в раздел кабинета «Касса». Или этом нужно выбирать, через какое именно платежное средство сделано осуществлен вывод. Если” “это банковская карта, то необходимо правильно указать ее номер, месяцев действия и CVV.

Покер

Указывая личный телефон или e-mail, который гемблер уже указывал при регистрации, можно сделано сменить пароль и новый. Для до просто войдите а свой аккаунт а выберите опцию ‘Пополнить счет’. Сотрудники службе поддержки клиентов Mostbet хорошо обучены и стремятся предоставить потребителям самый лучший опыт работы в Интернете. Сотрудники службы поддержки клиентов Mostbet готовы помочь вам в решении любых вопросов, касающихся ставок, нерешенных, связанных со ничегошеньки, или всего остального.

Мне доступны десятки способов пополнения счёта, а частности через электронные кошельки. Платёжные системы определяются регионом регистрации игрока и стали доступными в Своем кабинете. Во время создания Личного Кабинета предстоит выбрать неплатежеспособную счёта среди доступных в твоем континенте. Как правило, игрокам предлагаются национальные валюты (UAN, KZT, RUB, TRY и др. д. ), а также USD и EUR.

Вход На Сайт Мостбет Kz

Вы можете оценить” “форме команд, изучить результаты личных встреч же другие факторы, влияющие на исход матчей. Благодаря информативному интерфейсу Мостбет, вы всегда будете в курсе последних новостей и событий в континенте хоккея. Здесь одна ставка становится большей большой игры а может принести только только удовольствие, но и хороший выигрыш.

Гэмблеры и бетторы делают ставки на нашей платформе, регулярно выводят призовые и приводят своих друзей. В подтверждение вышеизложенного — многочисленные противоположные отзывы о работе клуба в сети. Это означает, но независимо от только, когда вы вы сделать ставку, и Mostbet найдется что-то для каждого. Бесплатные ставки – так еще один методом получить дополнительные деньги от ставок в Интернете.

Как Скачать Приложение Mostbet Для Android

Установку актуальной версии можно провести минуя — с последнего сайта. Это подходящий вариант для владельцев устройств без операционной системы (или старыми ее версиями). Игрокам предложат как классические (футбол, баскетбол, хоккей, теннис), так же экзотические виды спорта по типу крикета и херлинга. Тогда персональные сведения заменены, гость должен изучить с правилами клуба и подтвердить свое согласие с мной. Для завершения регистрации и активации профиля требуется перейти судя ссылке в персональном письме. Букмекерская контора дает вам возможность не только сделали ставки, но же наблюдать за ходом соревнований через мое компьютерное устройство.

В линии ставок Mostbet представлены различные виды спорта, турниры, чемпионаты, матчи же лиги всех уровней. Вы можете сделано ставки как до начала матча, же и в лайв-режиме. Маржа, варьируется остального 3% до 12% и доступна же для топовых соревнований, таки для важных лиг и дивизионов. Это значит, только игроку необходимо сделано ставки на суммы бонуса не менее 30 раз пиппардом коэффициентом не менее 1, 40 а течение 30 дней с момента активации. Авторизуйтесь в том же браузере и разрешите использование данных учетной записи. Информация о в нашем аккаунте будет автоматически передана на мой счет в Mostbet.

Казино Mostbet: Топовая Гэмблинг-площадка С лучшей Подборкой Развлечений

Зеркало официального сайта Mostbet в Казахстане предназначено не только дли существующих клиентов, но и для таких, кто только хочет зарегистрироваться в системе. Процедура регистрации в зеркале идентична своеобразному сервису и займет минимальное количество время. Видеоигры все больше привлекают внимание букмекеров и становятся популярнейших среди игроков. Несмотря на нестабильный же волнообразный рост, киберспорт успешно удерживает твои позиции на азартных площадках.

Кроме только, акция кэшбека регулярно обновляется, что обозначающее, что вы смогу получать возврат расходующихся неоднократно. Кэшбек в Мостбет – так не просто переход средств, это кивок внимания к клиентам и забота об их удовлетворении ото игры. Читайте подробные условия акции, чтобы быть в курсе всех деталей же начать пользоваться вторым выгодным предложением.

Бонус На один Депозит

Войдите в свою учетную запись, выберите удобный способ пополнения счета же наслаждайтесь лучшими играми и широчайшим выбор ставок на спорт. Чтобы получить доступ к финансовым операциям, необходимо войти в свою учетную запись на сайте Mostbet. Букмекер предлагает казахстанским игрокам разнообразные экспериентальные пополнения игрового счета, обеспечивая удобство же гибкость оплаты. Ддя того, чтобы пустить слоты на сайте Mostbet kz важно создать аккаунт а внести депозит. Время этого игроку можно выбрать понравившийся аппарат, сделать ставку а начать игру.

В Mostbet найдется множество вероятных для любого игрока” “— как для поклонников Особого Шлема, так и для любителей скромную турниров. Погрузитесь в увлекательный мир этой великой игры же ощутите адреналин от каждого удара в корте. Раскройте наш талант и сделайте удачную ставку и теннис в Мостбет прямо сейчас. Ее включает чемпионаты а международные события двух масштабов, в факте числе женские же молодежные соревнования. Этого перейти в раздел, достаточно кликнуть кнопку «Футбол» в правую части экрана.

Как Долго было Длиться Вывод средств?

Кроме того, благодаря конкурентоспособным коэффициентам и линиям у вам всегда будет единственный выиграть по-крупному. В качестве приветственного пакета предоставляется 250% бонусов за первые раза пополнения депозита. Каждый пятницу игрокам доступен кешбек – переезд 5-10% средств, их были потрачены на ставки в автоматах за прошедшую раза. Мостбет стремится получить клиентам удобные а разнообразные методы пополнения счета. Это учитывает стремление оператора удовлетворить потребности и предпочтения игроков.

Популярные настольные игры, такие как блэкджек, рулетка, баккара и покер, часто встречаются и живых казино. На платформе Mostbet сами можете играть а онлайн-слоты, которые являетесь одним из вида игр казино. Слоты обычно содержат вращающиеся барабаны с многими символами, целью них является получение выплат при выпадении выигрышных комбинаций. Если вы интересует бесплатная и безрисковая игра, так выберите игру один каталога азартных развлечений и начните играть. Важно помнить, только в демо-режиме сами не можете выйти реальные деньги, же как все выигрыши аннулируются после завершения игры. Международная компания, специализирующаяся на ставках на спорт а азартных играх, Mostbet Kz, приветствует игроков из Казахстана.

Платёжные Методы В Мостбет

Гемблеру желательно внимательно изучать условия бонусных предложений а следить за со нововведениями. Нажав ссылку “Забыли пароль” в странице входа в систему и наперекор инструкциям, вы смогу восстановить свой пароль, если вы его потеряли. Зачем согласится на обычное, когда можно погрузиться и мир, где игра сочетается с искусством? В Mostbet UZ каждое вращение, карта и ставка на платформе Playtech — это не так игра, а уникального повествование, полное острых ощущений и предвкушения. Вас ждут достаточно 600 игр, адаптированных к вашим предпочтениям — ваш путь к беспрецедентному азарту. Если вы будете поклонником бокса, же Mostbet станет совершенным местом для моих ставок.

Присоединяйтесь сейчас а исследуйте мир развлечений и возможностей выигрыша. В разделе онлайн-казино вы найдете длиннющий выбор игр, начиная слоты, рулетку а популярные карточные игры, такие как блэкджек, покер и баккара. Категория Live-казино регрессной доступна на основном ресурсе и предложила клиентам разнообразные ставки, включая ставки а реальном времени. Здесь можно насладиться являлись популярными настольными и карточными играми, такими как покер, баккара, рулетка, блэкджек, бинго и многие них.

“love The Jackpots” Турнир ото Mostbet Com Казино!

Представители казино” “проверяют фото паспорта, наличности методов и них данные гемблера. Процедура проверки длится но более 24 времени, а ее успешной прохождение позволит никаких проблем осуществлять логичный выигрышей. В окне розыгрыша гемблер либо ознакомиться с являлись правилами игры а доступными лимитами ставок, а также просмотреть историю предыдущих игр. Релизы из зависимости раздела представлены провайдерами Beter Live, Elcasino, Amusnet, Atmosfera, Ezugi и другими. Релизы сразу подкупают хуже проработанной детализацией же приятными звуковыми эффектами. Среди пользователей котируются слоты с покупными бонусам, вайлд-символами, игрой на риск.

С посторонней бесплатных ставок вы можете делать ставки, не рискуя моими деньгами. Это означающее, что даже если вы проиграете немного ставок, вы особенного не потеряете в долгосрочной перспективе. Заявки на вывод материальнопроизводственных оформляются в одноименном разделе личного кабинете. В зависимости от способа может удерживаться комиссия платежной системы.

Приветственные предложений Для Игроков

Одним из одним преимуществ онлайн-казино Мостбет является его доступность. Вам не нужно путешествовать в со город или но страну, чтобы насладиться азартными играми. Так выберите браузер например мобильное приложение, а вы готовы к игре.

Если выполнить но условия акции и заданные сроки, то можно неплохо задействовать банкролл. Для поддержания пароля, введите e-mail или номер телефона, указанные при регистрации, и следуйте дальнейшим инструкциям. Этот способ регистрации в Mostbet третий по популярности на сайте. Это необходимо для целях безопасности средств пользователей. Независимо от выбранное вами способа регистрации, обязательно ознакомьтесь с Положениями и условиями Mostbet kz. Где вы изучите правила, которые следует соблюдать для комфорта а безопасности во первых игры.

Что Делать, когда Не Получается зайти На Сайт?

Представлены как классические варианты, так и интереснейшие модификации с разнообразных тематикой. Чтобы начинать вывод средств, как войдите в мой аккаунт и отыщите кнопку ‘Вывести’. Mostbet предлагает широкий выбирать способов оплаты для своих игроков. Снятие средств может быть осуществлено с посторонней Visa, MasterCard, Maestro, American Express, QIWI, Яндекс Деньги, WebMoney, Skrill, Neteller или ecoPayz. Aviator остального Mostbet – это популярная игра, которая позволяет делать ставки на спорт увлекательным и инновационным таким. В игре отобраны динамические коэффициенты, позволяющие быстро увеличить выигрыш, если шансы и успех складываются в вашу пользу.

На Mostbet вы можете выбирать из множества лотерейных игр, таких же Powerball и Mega Millions. В этих лотереях вы смогу выиграть крупные призы и заработать старые деньги. Страница может быть недоступна из-за технического сбоя или блокировки.

Могу разве Я Делать Ставки На Международные Спортивные События В Mostbet?

Оператор обеспечивает славный и безопасный игровой процесс и гарантирует конфиденциальность данных пользователей. Сотрудники службы помощью клиентов Mostbet работаю круглосуточно, чтобы сделать вам с любых вопросами или проблемами, с которыми севилестр можете столкнуться. И казино Mostbet программа лояльности позволяет игрокам накапливать очки, их затем можно обмен на различные призы.

Вы можете обозревать азартом, не выходит из дома, а не зависеть ото рабочего графика казино. Многие игровые платформы также предлагают мобильные приложения, что позволяла играть в любой время и в любом месте, соленск есть доступ и интернет. Кроме того, онлайн-казино мостбет помогает развитию социальных контакт. Они предлагают чаты и форумы, недалеко игроки могут обсуждать стратегии, деликатно соперничать и даже находил новых друзей, разделяющих их интерес к азартным играм. Потом, онлайн-казино мостбет предоставляет возможность выиграть подлинные” “деньги.

(function () { var searchreplace = (function () { 'use strict'; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); function isContentEditableFalse(node) { return node && node.nodeType === 1 && node.contentEditable === 'false'; } function findAndReplaceDOMText(regex, node, replacementNode, captureGroup, schema) { var m; var matches = []; var text, count = 0, doc; var blockElementsMap, hiddenTextElementsMap, shortEndedElementsMap; doc = node.ownerDocument; blockElementsMap = schema.getBlockElements(); hiddenTextElementsMap = schema.getWhiteSpaceElements(); shortEndedElementsMap = schema.getShortEndedElements(); function getMatchIndexes(m, captureGroup) { captureGroup = captureGroup || 0; if (!m[0]) { throw new Error('findAndReplaceDOMText cannot handle zero-length matches'); } var index = m.index; if (captureGroup > 0) { var cg = m[captureGroup]; if (!cg) { throw new Error('Invalid capture group'); } index += m[0].indexOf(cg); m[0] = cg; } return [ index, index + m[0].length, [m[0]] ]; } function getText(node) { var txt; if (node.nodeType === 3) { return node.data; } if (hiddenTextElementsMap[node.nodeName] && !blockElementsMap[node.nodeName]) { return ''; } txt = ''; if (isContentEditableFalse(node)) { return '\n'; } if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) { txt += '\n'; } if (node = node.firstChild) { do { txt += getText(node); } while (node = node.nextSibling); } return txt; } function stepThroughMatches(node, matches, replaceFn) { var startNode, endNode, startNodeIndex, endNodeIndex, innerNodes = [], atIndex = 0, curNode = node, matchLocation = matches.shift(), matchIndex = 0; out: while (true) { if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName] || isContentEditableFalse(curNode)) { atIndex++; } if (curNode.nodeType === 3) { if (!endNode && curNode.length + atIndex >= matchLocation[1]) { endNode = curNode; endNodeIndex = matchLocation[1] - atIndex; } else if (startNode) { innerNodes.push(curNode); } if (!startNode && curNode.length + atIndex > matchLocation[0]) { startNode = curNode; startNodeIndex = matchLocation[0] - atIndex; } atIndex += curNode.length; } if (startNode && endNode) { curNode = replaceFn({ startNode: startNode, startNodeIndex: startNodeIndex, endNode: endNode, endNodeIndex: endNodeIndex, innerNodes: innerNodes, match: matchLocation[2], matchIndex: matchIndex }); atIndex -= endNode.length - endNodeIndex; startNode = null; endNode = null; innerNodes = []; matchLocation = matches.shift(); matchIndex++; if (!matchLocation) { break; } } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) { if (!isContentEditableFalse(curNode)) { curNode = curNode.firstChild; continue; } } else if (curNode.nextSibling) { curNode = curNode.nextSibling; continue; } while (true) { if (curNode.nextSibling) { curNode = curNode.nextSibling; break; } else if (curNode.parentNode !== node) { curNode = curNode.parentNode; } else { break out; } } } } function genReplacer(nodeName) { var makeReplacementNode; if (typeof nodeName !== 'function') { var stencilNode_1 = nodeName.nodeType ? nodeName : doc.createElement(nodeName); makeReplacementNode = function (fill, matchIndex) { var clone = stencilNode_1.cloneNode(false); clone.setAttribute('data-mce-index', matchIndex); if (fill) { clone.appendChild(doc.createTextNode(fill)); } return clone; }; } else { makeReplacementNode = nodeName; } return function (range) { var before; var after; var parentNode; var startNode = range.startNode; var endNode = range.endNode; var matchIndex = range.matchIndex; if (startNode === endNode) { var node_1 = startNode; parentNode = node_1.parentNode; if (range.startNodeIndex > 0) { before = doc.createTextNode(node_1.data.substring(0, range.startNodeIndex)); parentNode.insertBefore(before, node_1); } var el = makeReplacementNode(range.match[0], matchIndex); parentNode.insertBefore(el, node_1); if (range.endNodeIndex < node_1.length) { after = doc.createTextNode(node_1.data.substring(range.endNodeIndex)); parentNode.insertBefore(after, node_1); } node_1.parentNode.removeChild(node_1); return el; } before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); for (var i = 0, l = range.innerNodes.length; i < l; ++i) { var innerNode = range.innerNodes[i]; var innerEl = makeReplacementNode(innerNode.data, matchIndex); innerNode.parentNode.replaceChild(innerEl, innerNode); } var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); parentNode = startNode.parentNode; parentNode.insertBefore(before, startNode); parentNode.insertBefore(elA, startNode); parentNode.removeChild(startNode); parentNode = endNode.parentNode; parentNode.insertBefore(elB, endNode); parentNode.insertBefore(after, endNode); parentNode.removeChild(endNode); return elB; }; } text = getText(node); if (!text) { return; } if (regex.global) { while (m = regex.exec(text)) { matches.push(getMatchIndexes(m, captureGroup)); } } else { m = text.match(regex); matches.push(getMatchIndexes(m, captureGroup)); } if (matches.length) { count = matches.length; stepThroughMatches(node, matches, genReplacer(replacementNode)); } return count; } var FindReplaceText = { findAndReplaceDOMText: findAndReplaceDOMText }; var getElmIndex = function (elm) { var value = elm.getAttribute('data-mce-index'); if (typeof value === 'number') { return '' + value; } return value; }; var markAllMatches = function (editor, currentIndexState, regex) { var node, marker; marker = editor.dom.create('span', { 'data-mce-bogus': 1 }); marker.className = 'mce-match-marker'; node = editor.getBody(); done(editor, currentIndexState, false); return FindReplaceText.findAndReplaceDOMText(regex, node, marker, false, editor.schema); }; var unwrap = function (node) { var parentNode = node.parentNode; if (node.firstChild) { parentNode.insertBefore(node.firstChild, node); } node.parentNode.removeChild(node); }; var findSpansByIndex = function (editor, index) { var nodes; var spans = []; nodes = global$1.toArray(editor.getBody().getElementsByTagName('span')); if (nodes.length) { for (var i = 0; i < nodes.length; i++) { var nodeIndex = getElmIndex(nodes[i]); if (nodeIndex === null || !nodeIndex.length) { continue; } if (nodeIndex === index.toString()) { spans.push(nodes[i]); } } } return spans; }; var moveSelection = function (editor, currentIndexState, forward) { var testIndex = currentIndexState.get(); var dom = editor.dom; forward = forward !== false; if (forward) { testIndex++; } else { testIndex--; } dom.removeClass(findSpansByIndex(editor, currentIndexState.get()), 'mce-match-marker-selected'); var spans = findSpansByIndex(editor, testIndex); if (spans.length) { dom.addClass(findSpansByIndex(editor, testIndex), 'mce-match-marker-selected'); editor.selection.scrollIntoView(spans[0]); return testIndex; } return -1; }; var removeNode = function (dom, node) { var parent = node.parentNode; dom.remove(node); if (dom.isEmpty(parent)) { dom.remove(parent); } }; var find = function (editor, currentIndexState, text, matchCase, wholeWord) { text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); text = text.replace(/\s/g, '[^\\S\\r\\n]'); text = wholeWord ? '\\b' + text + '\\b' : text; var count = markAllMatches(editor, currentIndexState, new RegExp(text, matchCase ? 'g' : 'gi')); if (count) { currentIndexState.set(-1); currentIndexState.set(moveSelection(editor, currentIndexState, true)); } return count; }; var next = function (editor, currentIndexState) { var index = moveSelection(editor, currentIndexState, true); if (index !== -1) { currentIndexState.set(index); } }; var prev = function (editor, currentIndexState) { var index = moveSelection(editor, currentIndexState, false); if (index !== -1) { currentIndexState.set(index); } }; var isMatchSpan = function (node) { var matchIndex = getElmIndex(node); return matchIndex !== null && matchIndex.length > 0; }; var replace = function (editor, currentIndexState, text, forward, all) { var i, nodes, node, matchIndex, currentMatchIndex, nextIndex = currentIndexState.get(), hasMore; forward = forward !== false; node = editor.getBody(); nodes = global$1.grep(global$1.toArray(node.getElementsByTagName('span')), isMatchSpan); for (i = 0; i < nodes.length; i++) { var nodeIndex = getElmIndex(nodes[i]); matchIndex = currentMatchIndex = parseInt(nodeIndex, 10); if (all || matchIndex === currentIndexState.get()) { if (text.length) { nodes[i].firstChild.nodeValue = text; unwrap(nodes[i]); } else { removeNode(editor.dom, nodes[i]); } while (nodes[++i]) { matchIndex = parseInt(getElmIndex(nodes[i]), 10); if (matchIndex === currentMatchIndex) { removeNode(editor.dom, nodes[i]); } else { i--; break; } } if (forward) { nextIndex--; } } else if (currentMatchIndex > currentIndexState.get()) { nodes[i].setAttribute('data-mce-index', currentMatchIndex - 1); } } currentIndexState.set(nextIndex); if (forward) { hasMore = hasNext(editor, currentIndexState); next(editor, currentIndexState); } else { hasMore = hasPrev(editor, currentIndexState); prev(editor, currentIndexState); } return !all && hasMore; }; var done = function (editor, currentIndexState, keepEditorSelection) { var i, nodes, startContainer, endContainer; nodes = global$1.toArray(editor.getBody().getElementsByTagName('span')); for (i = 0; i < nodes.length; i++) { var nodeIndex = getElmIndex(nodes[i]); if (nodeIndex !== null && nodeIndex.length) { if (nodeIndex === currentIndexState.get().toString()) { if (!startContainer) { startContainer = nodes[i].firstChild; } endContainer = nodes[i].firstChild; } unwrap(nodes[i]); } } if (startContainer && endContainer) { var rng = editor.dom.createRng(); rng.setStart(startContainer, 0); rng.setEnd(endContainer, endContainer.data.length); if (keepEditorSelection !== false) { editor.selection.setRng(rng); } return rng; } }; var hasNext = function (editor, currentIndexState) { return findSpansByIndex(editor, currentIndexState.get() + 1).length > 0; }; var hasPrev = function (editor, currentIndexState) { return findSpansByIndex(editor, currentIndexState.get() - 1).length > 0; }; var Actions = { done: done, find: find, next: next, prev: prev, replace: replace, hasNext: hasNext, hasPrev: hasPrev }; var get = function (editor, currentIndexState) { var done = function (keepEditorSelection) { return Actions.done(editor, currentIndexState, keepEditorSelection); }; var find = function (text, matchCase, wholeWord) { return Actions.find(editor, currentIndexState, text, matchCase, wholeWord); }; var next = function () { return Actions.next(editor, currentIndexState); }; var prev = function () { return Actions.prev(editor, currentIndexState); }; var replace = function (text, forward, all) { return Actions.replace(editor, currentIndexState, text, forward, all); }; return { done: done, find: find, next: next, prev: prev, replace: replace }; }; var Api = { get: get }; var open = function (editor, currentIndexState) { var last = {}, selectedText; editor.undoManager.add(); selectedText = global$1.trim(editor.selection.getContent({ format: 'text' })); function updateButtonStates() { win.statusbar.find('#next').disabled(Actions.hasNext(editor, currentIndexState) === false); win.statusbar.find('#prev').disabled(Actions.hasPrev(editor, currentIndexState) === false); } function notFoundAlert() { editor.windowManager.alert('Could not find the specified string.', function () { win.find('#find')[0].focus(); }); } var win = editor.windowManager.open({ layout: 'flex', pack: 'center', align: 'center', onClose: function () { editor.focus(); Actions.done(editor, currentIndexState); editor.undoManager.add(); }, onSubmit: function (e) { var count, caseState, text, wholeWord; e.preventDefault(); caseState = win.find('#case').checked(); wholeWord = win.find('#words').checked(); text = win.find('#find').value(); if (!text.length) { Actions.done(editor, currentIndexState, false); win.statusbar.items().slice(1).disabled(true); return; } if (last.text === text && last.caseState === caseState && last.wholeWord === wholeWord) { if (!Actions.hasNext(editor, currentIndexState)) { notFoundAlert(); return; } Actions.next(editor, currentIndexState); updateButtonStates(); return; } count = Actions.find(editor, currentIndexState, text, caseState, wholeWord); if (!count) { notFoundAlert(); } win.statusbar.items().slice(1).disabled(count === 0); updateButtonStates(); last = { text: text, caseState: caseState, wholeWord: wholeWord }; }, buttons: [ { text: 'Find', subtype: 'primary', onclick: function () { win.submit(); } }, { text: 'Replace', disabled: true, onclick: function () { if (!Actions.replace(editor, currentIndexState, win.find('#replace').value())) { win.statusbar.items().slice(1).disabled(true); currentIndexState.set(-1); last = {}; } } }, { text: 'Replace all', disabled: true, onclick: function () { Actions.replace(editor, currentIndexState, win.find('#replace').value(), true, true); win.statusbar.items().slice(1).disabled(true); last = {}; } }, { type: 'spacer', flex: 1 }, { text: 'Prev', name: 'prev', disabled: true, onclick: function () { Actions.prev(editor, currentIndexState); updateButtonStates(); } }, { text: 'Next', name: 'next', disabled: true, onclick: function () { Actions.next(editor, currentIndexState); updateButtonStates(); } } ], title: 'Find and replace', items: { type: 'form', padding: 20, labelGap: 30, spacing: 10, items: [ { type: 'textbox', name: 'find', size: 40, label: 'Find', value: selectedText }, { type: 'textbox', name: 'replace', size: 40, label: 'Replace with' }, { type: 'checkbox', name: 'case', text: 'Match case', label: ' ' }, { type: 'checkbox', name: 'words', text: 'Whole words', label: ' ' } ] } }); }; var Dialog = { open: open }; var register = function (editor, currentIndexState) { editor.addCommand('SearchReplace', function () { Dialog.open(editor, currentIndexState); }); }; var Commands = { register: register }; var showDialog = function (editor, currentIndexState) { return function () { Dialog.open(editor, currentIndexState); }; }; var register$1 = function (editor, currentIndexState) { editor.addMenuItem('searchreplace', { text: 'Find and replace', shortcut: 'Meta+F', onclick: showDialog(editor, currentIndexState), separator: 'before', context: 'edit' }); editor.addButton('searchreplace', { tooltip: 'Find and replace', onclick: showDialog(editor, currentIndexState) }); editor.shortcuts.add('Meta+F', '', showDialog(editor, currentIndexState)); }; var Buttons = { register: register$1 }; global.add('searchreplace', function (editor) { var currentIndexState = Cell(-1); Commands.register(editor, currentIndexState); Buttons.register(editor, currentIndexState); return Api.get(editor, currentIndexState); }); function Plugin () { } return Plugin; }()); })();