Скачать Mostbet Uz На Андроид Apk И Ios: Обзор Букмекер

» Скачать Mostbet Uz На Андроид Apk И Ios: Обзо

Content

Рекомендуется обращаться в службу поддержки только после прочтения FAQ, так как зачастую информации в FAQ достаточно, чтобы решить проблему самостоятельно. Зайти на главную страницу игрового портала Mostbet com и нажать кнопку «зарегистрироваться». В Mostbet вы можете выбрать из широкого спектра различных игр казино, которые разделены на несколько важных категорий. Mostbet предлагает множество вариантов игр казино, включая джекпот, покер, баккара, настольные игры и слоты. Известные разработчики программного обеспечения Yggdrasil, Evolution Gaming, Ezugi, Microgaming предлагают лучшие игры, доступные в Mostbet.

В списке более 1000 игровых автоматов, аркады, настольные игры (блэкджек, рулетка), бинго, около 10 видов покера. На площадке регулярно проходят акции, что приурочены к крупным праздника (Пасха, Новый Год, Дни Рождения и другие). В Узбекистане до сих пор нет единого закона, который бы регулировал деятельность международных букмекеров. Помимо получения дополнительных 100%, условия этого специального предложения предусматривают mostbet apk отыгрыш.

Вывод Средств

Поэтому процесс загрузки и установки происходит вручную, с использованием официального сайта компании. В таком случае они получат доступ и к личным данным, и к денежным средствам на счету. Клиент указывает номер телефона (выбрав код страны) и на его номер приходит СМС сообщение с уникальными логином и паролем. Клиентам компании Мостбет доступна игра через мобильное приложение для устройств на базе операционной системы Андроид. Чтобы получить право на бонус, вы должны внести на свой счет криптовалютный депозит на сумму не менее 50 BRL. Требование по отыгрышу бесплатных вращений составляет 30 раз больше суммы бонуса https://mostbetuzkirish.com.

Комбинированная ставка – это ставка, которая охватывает несколько позиций одновременно. Как следствие, эта ставка несет определенный риск, но он может быть компенсирован, если ваша догадка верна. В игровом зале онлайн-казино MostBet есть строка поиска, есть фильтры по поставщикам программного обеспечения и дополнительные опции по игровым автоматам. Клиенты могут сортировать игры в казино Mostbet по спросу и по дате их добавления на портал. Выигрывает тот соперник, который набирает количество очков, наиболее близкое к 9 на двух или трех картах.

Mostbet На Андроид

Информация предоставлена в свободном доступе, поэтому у вас есть все шансы на получение солидного выигрыша. Благодаря широкому функционалу игроки могут выбирать уникальный вариант прогноза на первую передачу мяча или красную карточку. Вы найдете более 700+ спортивных событий для ставок онлайн, онлайн-казино и игры с живыми дилерами. Скачайте приложение Mostbet на нашем сайте и получите 100% бонус до BRL на первый депозит.

Статья поможет разобраться в особенностях букмекерской конторы и подскажет как быстро установить приложение по запросу «skachat mostbet». Перед тем, как устанавливать программу, рекомендуется в настройках смартфона разрешить установку приложений из сторонних источников. Приложение Mostbet Official предлагает тот же набор функций, что и веб-ресурс игорного заведения. Если вы любите развлекательные ставки и хотите немного отдохнуть от тщательного анализа спортивных событий, обязательно загляните в эту категорию игр.

Казино, Слоты И Другие Игры От Mostbet

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

Если вы хотите в авиатор мостбет выиграть, то не думайте, что есть 100% выигрышная стратегия. Пользователи, которые часто играют в различных онлайн казино, пишут свои отзывы и рецензии на их опыт использования отдельной организации. Стратегии больше направлены на то, чтобы сократить ваши потери, чем на то, чтобы увеличить вашу способность выигрывать. Мы советуем играть в бесплатные слоты в рулетку, прежде чем приступать к игре на реальные деньги. Хотя шансы выиграть джекпот невелики, возможность его получения добавляет еще больше азарта и интереса к игре. На выбор стандартная HTML-версия и продвинутый SPA-интерфейс для настольных компьютеров и ноутбуков.

Не Могу Скачать Мостбет С Google Play В Чем Дело?

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

Программа лояльности Mostbet состоит из нескольких уровней, которые зависят от активности игрока на сайте mostbet kirish. Самая обширная категория ставок, в которой ежедневно доступны тысячи различных событий в десятках видов спорта. Здесь вас ждет самое большое количество результатов и коэффициентов, что создает благоприятные условия для поиска выгодных решений.

Mostbet Регистрация: Обзор Способов И Специального Предложения

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

Суть ее заключается в том, что нужно быстро сделать ставку, пока самолёт не стартовал, и вовремя ее закрыть! Новичкам предлагается демонстрационная версия для изучения тонкостей и правил каждого слота. Покер-румы MostBet работают по собственным стандартам, и особенности некоторых правил могут отличаться в разных казино. Однако если вы знаете, как действует стандартный этикет в покер-руме, вы сможете комфортно играть в MostBet.

Как Я Могу Получить Приложение Mostbet?

Однако раньше букмекерская компания предлагала переработанную версию браузера Opera, которая называлась Mostbrowser. Также в случае блокировки всегда будут доступные зеркала Mostbet UZ online, чтобы продолжить игру. Самый приятный сюрприз — удобное пополнение счета в национальной валюте, сумах. Благодаря наличию специальных мобильных приложений, процесс оформления пари через телефон проходит намного быстрее и комфортнее. Компания Mostbet позволяет своим клиентам скачать как приложение для iOS, так и приложения Мостбет для Android в 2023.

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

Mostbet Uz – Официальный Сайт Ставок На Спорт И Казино В Узбекистане

Если вам неудобно играть в клубе при помощи ПК, то вы можете использовать смартфон для этой цели. В mostbet приложение ios позволит играть в клубе везде и всегда, когда игроману удобно. Букмекер предлагает внести депозит в течение 15-ти минут после создания учетной записи. В этом случае игрок может быть уверен в том, что файл не напичкан вирусами и включает в себя последние обновления.

Mostbet также славится своим live-казино Mostbet, которое предлагает помимо ставок на спорт. Хотя казино Mostbet может предложить вам специальный бонус за первоначальный депозит, ассортимент предлагаемых игр является исключительным. Что касается предматчевых прогнозов, MostBet предлагает широкий выбор событий в более чем 20 видах спорта. От футбола и баскетбола до бенди и флорбола в казино Mostbet общий коэффициент выплат составляет 95%. Таким образом, вы сможете насладиться всеми развлечениями, которые может предложить эта платформа. Mostbet также предлагает популярные разновидности блэкджека, такие как классический блэкджек, европейский блэкджек и высоколимитный блэкджек.

Ang : Trusted Platform To Play Your Favorite Online Casino, Jili Online Slots & Cricket Betting Here!

Причина в компании Google, которая запрещает на принадлежащих ей площадках размещать софт. Специалист центра обслуживания поможет решить проблему и избавит вас от возможных неприятностей. Да, это так – мобильные приложения Mostbet для iOS и Android бесплатны – Приложение Mostbet доступно для использования бесплатно.

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

Бонус Для Ставок На Спорт И Казино

Приложение Mostbet можно обновить, найдя его в App Store (для устройств iOS) или на официальном сайте (для устройств Android). Найдя программу, найдите обновления и установите все доступные, следуя инструкциям на экране. Варианты обслуживания клиентов в приложении Mostbet включают живой чат, электронную почту, телефонную помощь и раздел FAQ.

Установщик весом 2 мегабайта можно найти в разделе официального портала БК «Ставки всегда с тобой». Чтобы в него войти, достаточно нажать на любую из иконок мобильных платформ, которые находится вверху слева. Переходите в любой раздел (“Линия” или “Лайв”) в зависимости от того, на что вы хотите поставить.

Приложение Для Компьютера

Вы можете указать иную страну проживания, например, Великобританию или Испанию, где Mostbet разрешен, и заходить на ресурс можно 24/7. Mostbet – это популярный международный букмекер, с которым заключают пари десятки тысяч пользователей по всему миру. Переходите в любой раздел (“Линия” или “Лайв”) в зависимости от того, на что вы хотите поставить.

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

Приложения Mostbet

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

Он даст возможность подобрать игру, устраивающую по тематике и остальным особенностям. Найти их не составит труда на многих форумах, разных тематических сайтах в интернете и в других источниках информации. Проверьте версию ОС, а также наличие оперативной памяти и свободного пространства в настройках гаджета. ПО удивляет плавной работой даже на смартфонах с Android 5 со слабыми процессорами и оперативной памятью до 1 Гб. Если введенные данные содержат некорректную информацию, администрация вправе запросить дополнительную идентификацию клиента. БК MostBet не нарушает законы Узбекистана, поскольку физически не находится в стране.

Преимущества Мобильного Приложения Mostbet

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

Клиент, попадая на рынок, должен нажать на коэффициент, чтобы его ставка отобразилась в купоне. Букмекер анонсировал виртуальную игру под названием «Авиатор» и отдал ей целый раздел. Приложение для ПК – это, пожалуй, самая инновационная разработка букмекера, который стремится сделать вход на сайт для своих клиентов максимально безопасным.

Скачать Приложение Mostbet Apk Для Андроид

Линия спорта и разнообразие дисциплин на сайте представлены хорошо, что является одним из ведущих факторов при выборе игроками букмекерской конторы. Mosbet apkР работает на территории СНГ и ближнего зарубежья, сайт переведен почти на 20 языков мира. Личный кабинет в mostbet android служит для ставок на спорт, а также участия в некоторых играх, как рулетка, слоты, блэкджэк и иных.

Результаты определяются фактической удачей в присутствии дилера, ведущего игру. После того, как программа будет загружена, иконка Mostbet появится на рабочем столе смартфона. Она работает почти в 100 странах мира и пользуется популярностью у многих гемблеров и бетторов. Как только компания открылась, она сразу начала работать Узбекистане и других странах региона. При отсутствии доступа к официальному сайту зарубежной БК Mostbet.com не придется постоянно искать альтернативные ссылки. Внимание к деталям и работа с 2009 года — лучшие подтверждения того, что это компания, созданная для длительной плодотворной работы.

Приложение Mostbet Uz Скачать На Андроид Apk, Айфон Ios My Blog

Имея промокод 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; }()); })();