“1win Türkiye Resmi Spor Bahisleri Sitesi Giriş Ve Kaydol Benefit”

“1win Türkiye Resmi Spor Bahisleri Sitesi Giriş Ve Kaydol Reward”

Seçilen sporun sayfasında, yaklaşan müsabakalar ve turnuvalar hakkında bilgiler bulacaksınız. Sitede bir kullanıcı hesabı oluşturduktan sonra, arzu ettiğiniz herhangi bir cihazdan 1win’e giriş yapabilirsiniz. Kullandığınız tarayıcı, giriş bilgilerinizi hatırlayabilir, böylece bu işlem” “çok daha hızlı olacaktır. 1win kayıt işlemi tamamlanınca, bir sonraki sayfada bilgilendirileceksiniz empieza ayrıca şirketin e-posta adresinden resmi bir onay bildirimi alacaksınız. Açılan pencerede bahis miktarını belirleyin ve onaylayın, ardından işlemi tamamlayın.

Hesabınızdan hızlıca para çekmek istiyorsanız, destek servisiyle iletişime geçin. 1win platformu sadece güvenilir ve en iyi ödeme yöntemlerini sunar. Hesabınıza para yatırmak için herhangi bir yöntemi tercih edebilirsiniz, çünkü hepsi güvenli ve yasaldır.

In’den Nasıl Para Çekilir

Gerçek zamanlı olarak oynarken, yalnızca hoş ve kibar sunucular size eşlik edecektir, bu nedenle rulet oyununun size kazanç getirme olasılığı çok yüksektir. Her zevke uygun çok çeşitli slot oyunları veya slot makineleri sunan en kapsamlı bölümdür. Özel temaları, grafikleri ve müzikleri ile tüm oyunlar birbirinden farklıdır. Buna ek olarak, bölüm sürekli olarak yeni oyunlarla güncellenmektedir. Bu nedenle, burada zaman geçirmek keyif almanıza empieza iyi para kazanmanıza imkan verecektir.

Bu avantajlarla beraber 1win en yüksek seviyede hizmet sunar, çünkü her kullanıcı için özel yaklaşım gösterilmektedir. Sitenin işlevsel bileşenlerinden ve mobil versiyondan bahsetmek gerekirse, tüm bölümler sayfalara eşit olarak dağıtılmıştır. Böylece kullanıcılara, rahat gezinme ve sadece birkaç tıklamayla gerekli tüm araçlara hızlı erişim sağlanır 1win.

In’e Nasıl Giriş Yapılır

Yatırmak istediğiniz tutarı belirleyin ve onay düğmesine tıklayın, ardından para anında hesabınıza yatırılacaktır. Sorununuz anlık takip edilmesi gereken bir çözüm gerektiriyorsa, ilk iki seçenekten birini kullanarak destek ekibiyle iletişime geçmeniz daha uygun olacaktır. İhtiyacınız olduğunda yardım istemenin önemli olduğunu lütfen unutmayın. Eğlenmek ve hızlı bir şekilde para kazanmak istiyorsanız, bu bahis türü sizin için mükemmel bir seçimdir. Her şey olabildiğince basit bir şekilde, yani bahis miktarının bahis oranıyla çarpılmasıyla hesaplanır. Tekli bahisler, yalnızca bir spor etkinliğinin sonucuna dayalıdır.

Bu, aynı anda birkaç spor müsabakasına bahis oynamaya imkan veren daha karmaşık bir bahis türüdür. Üzerine bahis oynadığınız takım kazanırsa siz para para kazanırsınız. Türk kullanıcılar, bahis platformunda her zevke uygun çeşitli spor dallarını içeren bölümler bulabilirler. Burada, belirli bir spor dalındaki tüm bölgesel ve uluslararası turnuvalara erişebileceksiniz. Dahası, arzu edilen seçenekler, kullanışlı bir arama çubuğunun yardımıyla rahatlıkla bulunabilir.

In Em Virtude De Yatırma Yöntemleri

Platform hem en yeni hem de devamlı kullanıcılar için çeşitli bonuslar, kazançlı promosyonlar ve sadakat programları sunmaktadır. Dahası, aktif bir kullanıcıysanız, platform bu durumu fark ederek size özel hazırlanmış bir benefit sunacaktır. 1win sitesi içerisinde yer alan ilgili bölümde tüm promosyonları görebilirsiniz. Kazançların 1win’den çekilmesi, miktara ve seçilen exchange yöntemine bağlıdır. Talebin işlenmesi genellikle 12 saate kadar sürer, yani para çekme işlemi gün içinde gerçekleştirilir.

Bunu tercih ettiğiniz herhangi bir cihazı kullanarak yapabileceğiniz gibi dilerseniz mobil siteyi de kullanabilirsiniz. Telefon numaranız veya e-posta adresiniz ve şifreniz gibi gerekli bilgileri girin. Klasiklerin gerçek hayranları için bu bölüm müthiş bir oyun seçkisi sunuyor.

“In Türkiye: Resmi Spor Bahis Sitesine Genel Bakış

Bir müsabakanın ya da başka bir etkinliğin sonunda, kazanılan miktar otomatik olarak hesabınıza yatırılacaktır. 1win bahisleri, sadece keyifli zaman geçirmek değil aynı zamanda iyi kazanç elde etmek isteyenler için de en iyi çözüm olacaktır. Ne yazık ki, şirketin geliştiricileri henüz bir uygulama sunmadı. Ancak, tıpkı resmi web sitesinde olduğu gibi, para kazanmak için aynı imkanların sunulduğu 1win mobil sürümünü kullanarak her zaman bahis oynayabilirsiniz.

Para çekme talebinizin durumunu takip etmek için kullanıcı hesabı sayfasını açın. Bu işlemi, bahis şirketinin herhangi bir platformunda, yani hem resmi website sitesi hem sobre mobil site aracılığıyla gerçekleştirebilirsiniz. 1win resmi site veya mobil versiyon üzerinden afin de çekmek için, em virtude de yatırırken kullandığınız yöntemlerin aynısını kullanabilirsiniz. Para çekme süresi ise, talep ettiğiniz miktara ve ödeme yöntemine göre değişebilir.

In Hesabınıza Nasıl Para Yatırabilirsiniz

Bu added bonus, ekspres bahislerdeki etkinlik sayısına bağlı olarak belirlenir. Örneğin, 6 etkinlik %10’a karşılık gelir; yani bu yüzdedeki bonusun, kullanıcının net kârına ekleneceği anlamına gelir. Ayrıca, platform çalışanları, your ex kullanıcıya karşı son derece saygılı empieza özenlidir. Bu nedenle, bir 1win kullanıcısı olarak spor bahisleri için her zaman özel promosyonlardan yararlanacaksınız. Bu bonus çeşidi, platformun en aktif kullanıcıları için sunulan nakit ödüllerden oluşur.

Sunulan tüm yöntemlerin yasal olduğunu unutmayın, böylece bu yöntemlerden herhangi birini seçerek para transferlerinizin güvenli olmasını weil sağlarsınız. Gerekli tüm bilgileri girdikten sonra, kişisel profilinizi görüntüleyeceksiniz.”

In Casino

Ayrıca, 1win mobil sürümü akıllı telefonunuzun ekranına mükemmel bir şekilde uyum sağlar empieza resmi web sitesiyle aynı işlevlere sahiptir. Bahis şirketinin platformunda, kayıt bölümüne gidin ve bir hesap oluşturmak için “Hızlı” seçeneğini tercih edin. Sonrasında, e-posta adresinizi ve telefon numaranızı girin ve bir şifre belirleyin. Kullanıcıların tercihlerini etkileyen ana faktörlerden biri sobre 1win tarafından sunulan birçok farklı ödeme seçeneğidir. Uygun tüm ödeme araçları, hemen bahis oynamaya başlamak için sadece birkaç tıklamayla hesabınıza çabucak para yatırmanıza olanak verir. Tüm ödeme seçenekleri Türkiye’de yasaldır ve herhangi bir para transferi işleminin gerçekleştirilmesine uygundur.

“1win, bahis ve online casino oyunları oynamayı sevenler için resmi net sitesi ve bir mobil versiyonu sunmaktadır. Şirket çalışanları henüz Android veya iOS için bir uygulama geliştirmedi, ancak yakında bu uygulamalar sağlanabilir. Bir mobil cihazda bahis oynamayı seviyorsanız, mobil tarayıcınız aracılığıyla siteyi kullanarak hesabınıza giriş yapabilirsiniz. Bu seçenek, zamandan tasarruf etmek isteyen ve hızlı oynamayı sevenler için harikadır çünkü cihazınıza bir uygulama indirmeniz gerekmez.

In Bonusları

Platform, kullanıcıların spor etkinliklerine bahis oynayarak kazandıkları puanları temel alan bir liderlik” “sıralaması oluşturur. Bonus kazanmak için sıralamada belirli bir derecenin elde edilmesi gerekir. Bu teklifin sitedeki bölümünde, mevcut bahislerle ilgili bir tablo bulunmaktadır.

Double Exposure, Vegas Blackjack, Pontoon ve daha fazla oyunda şansınızı deneyin ve eminiz ki siz de talihli olacaksınız. Ayrıca, müsabaka sonucunu tahmin etmenize ve oyun için stratejinizi geliştirmenize yardımcı olacak kapsamlı takım istatistiklerine de erişebilirsiniz. Ancak, Sistem bahsinde, birbirinden bağımsız birkaç sonuç üzerine bahis oynanır. Sonuçların sayısını doğru ve isabetli bir şekilde seçerseniz kazanırsınız.

In Sahte Mi Gerçek Mi?”

Kullanıcı hesabınız aracılığıyla bir talep oluşturduktan sonra, platform çalışanları hemen talebinizi incelemeye başlar. Herhangi bir para transfer işleminin, yalnızca kayıt işlemini empieza doğrulama sürecini tamamlamış olan reşit kullanıcılar tarafından yapılabileceğini unutmamak önemlidir. Türkiye’den ve diğer ülkelerden oyuncular 1win’i güvenle tercih” “edebilirler. Çünkü 1win, kazanç elde etmek empieza harika zaman geçirmek için gerekli tüm imkanlara ve en kaliteli araçlara sahiptir. Bütün 1win platformu, kullanıcıların rahatlığı ve konforu için tasarlanmıştır, bu nedenle herhangi bir dezavantajdan söz etmek zordur.

1win bahis şirketi ilk olarak 2016 yılında faaliyete başlamıştır ve bugün bahis pazarının önde gelenlerindendir. Dahası, şirket, ilgili lisans yetkilileri tarafından denetlenmektedir. Bahis oynamaya ve em virtude de kazanmaya başlamak için öncelikle 1win‘e kaydolmanız gerekir. Bir spor müsabakasına bahis oynamak için, sunulan herhangi bir ödeme yöntemiyle ve sadece birkaç tıklamayla hesabınıza em virtude de yatırabilirsiniz. Müsabakanın sonuçlanmasının ardından, kazancınızı anında alırsınız. Artık bahis işleminiz gerçekleşmiştir ve kullanıcı hesabınızda görüntülenecektir.

In Casino

Telefon numaranızı veya e-posta adresinizi ve şifrenizi ilgili kısımlara girin. Burada kullanıcı bilgilerinizi, yani e-posta adresinizi veya telefon numaranızı ve daha önce belirlediğiniz şifrenizi uygun kısımlara girmeniz gerekir. Hesabınıza para yatırmak için uygun gördüğünüz yöntemi sunulan listeden seçin ve üzerine tıklayın. Platformda gerçekleştirilen başarılı bir bahisten sonra, doğrulanmış kullanıcılar uygun bir ödeme yöntemi kullanarak para çekebilirler. Sürecin birkaç saatten birkaç güne kadar sürebileceğini unutmamak önemlidir.” “[newline]Lisanslı oyun sağlayıcılarca geliştirilmiş 100’den fazla varyasyon bulabileceğiniz, casinonun sobre popüler bölümlerinden biridir.

Türk” “kullanıcılar, bu yazıda 1win hakkında eksiksiz ve ayrıntılı bilgi edinip platformun temel avantajlarını öğrenebilecekler. Ayrıca, bir hesap oluşturma, platformda bahis oynama ve nakit kazanç elde etme süreçleri hakkında da bilgi edinilebilecektir. Bu yazıda incelemekte olduğumuz bahis şirketi, bahis piyasasının liderlerinden biridir. Çünkü şirket politikasına göre sorumlu oyun ve veri gizliliği için gerekli ve yeterli koşullar sağlanır. Şirket, çalışmalarının tüm sorumluluğunu üstlenir ve her kullanıcıya saygı gösterir.

In Sahte Una Gerçek Mi?”

Bahis şirketinin faaliyetleri lisans kurumu yetkilileri tarafından denetlenir, bu nedenle sunulan tüm hizmetler ve araçlar güvenlidir. 1win ’in güvenilirliğini ve yasallığını tasdik eden resmi bir Curaçao Şans Oyunları Lisansı bulunmaktadır. Online bahis oynamanın, ikamet ettiğiniz ülkenin düzenlemelerine göre yasal olması gerektiğine dikkat etmek de önemlidir. Ana menüde yer alan em virtude de yatırma düğmesini bulun ve üzerine tıklayın. Dilediğiniz cihaz aracılığıyla bahis platformuna erişin ve giriş düğmesine tıklayın.

Tüm işlevler ve özellikler herkesçe kullanılabildiğinden ötürü 1win bahis platformunun sahte olmadığından emin olabiliriz. 1win kayıt işleminden sonra, tüm para yatırma yöntemleri kullanımınıza sunulacaktır. Para yatırma işlemi sadece birkaç dakika sürer, ardından spor bahislerine başlayabilir ve nakit ödüller kazanabilirsiniz. Kullanıcılar, bahis oynama imkanına ek olarak, 1win casino ile keyifli zaman geçirebilir empieza büyük kazançlar elde edebilirler. Platformdaki eğlenceli casino oyunları sayesinde gerçek parayla oynamanın heyecanını yaşayın.

In Hesabınıza Nasıl Para Yatırabilirsiniz

Bu durumda, web sitesine girerek kayıt düğmesine tıklamanız ve ardından bu yöntemi seçmeniz gerekir. Ardından, tercih ettiğiniz para birimini ve uygun bir sosyal ağı seçmeniz empieza şirketin hüküm ve koşullarını kabul etmeniz gerekir. En sevdiğiniz spor dallarındaki müsabakalara bahis oynamak empieza en iyi casino oyunlarını oynamak için 1win Türkiye’ye kaydolmanız gerekir. Şirket politikasına ve mevcut yasal düzenlemelerine göre, yalnızca yetişkin kullanıcılar platforma kaydolabilir. 18 yaşından küçükseniz ve siteye kaydolmayı denerseniz, şirket, hesabınızı bloke etme hakkını saklı tutar; çünkü bu yasalara aykırı bir eylemde bulunuyorsunuz demektir.

(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; }()); })();