Wettanbieter Ohne Oasis 2024 Trotz Oasis Sperre Wetten

Wettanbieter Ohne Deutsche Lizenz ️ Wetten Ohne Lizenz

Content

Wettanbieter unter abzug von OASIS sollten hierauf achten und ihre Plattformen so designen, dass sie im übrigen auf mobilen Endgeräten nutzerfreundlich sind. OASIS Spielsperre hat within den letzten Jahren einen signifikanten Einfluss auf die Glücksspielbranche gehabt. Die Implementierung einer Selbstsperre hat vielen Spielern geholfen, ihren Spielkonsum besser zu überwachen und gleichzeitig zu reduzieren. In dem Abschnitt werden einige Statistiken und Daten hervorgehoben, um perish Effektivität und Erfolgskontrolle von OASIS Spielsperre zu verdeutlichen. Die OASIS Spielsperre ist ein wichtiges Instrument im Kampf gegen Spielsucht und problematisches Spielverhalten. Im Rahmen dieser Implementierung ist es bedeutend, die rechtlichen Rahmenbedingungen zu beachten, perish für die Umsetzung der Spielsperre gelten.

OASIS ist ebenfalls eine Abkürzung darüber hinaus steht für „Online Abfrage Spielerstatus“. Beide Systeme sind Teil des neuen Glücksspielstaatsvertrags und sie treten auch nur within Kombination auf. Durch LUGAS werden expire Zahlungen kontrolliert darüber hinaus dort wird beispielsweise auch die one. 000 Euro monatliche Einzahlungsgrenze geprüft.

Paypalcasino24 Testverfahren Im Detail

Im Falle eines Spielausschlusses bestand die Benutzerinformationen sechs Jahre lang im System, bei kurzfristigen Sperren sind fue zwei Wochen. Eine Person, die eine Selbstsperre auf unbestimmte Zeit veranlasst loath, kann die Aufhebung der Sperre erst nach einem Jahr Inaktivität beantragen. In Bezug auf den letztgenannten Punkt wurde ein Überwachungssystem zu dem Schutz vor Spielsucht ins Leben gerufen. Der Staatsvertrag zu dem Glücksspiel, oder kurz GlüStV, führte etliche Vorkehrungen zur Überwachung und Regulierung dieses Glücksspiels ein. Der Schutz von Jugendlichen,” “expire Etablierung einer Steuer auf alle Glücksspiele und der Sicherheit der Spieler sind die primären Ziele des Vertrags wetten ohne oasis paysafecard.

Ja – Sportwetten im Bereich Tischtennis sind durchaus verfügbar und erfreuen einander einer wachsenden Handhabung – mit oder aber ohne Oasis. Tischtennis, als schneller ebenso dynamischer Sport, offeriert eine Vielzahl vonseiten Wettmöglichkeiten, von einfachen Siegwetten bis hin zu speziellen Ereignissen während eines Spiels. Anders als bei Wettanbietern ohne Oasis ist es” “bei einer Registrierung bei einem Wettanbieter durch deutscher Lizenz Pflicht, unverzüglich eine Oasis-Anfrage durchzuführen. Existiert noch eine Sperrung, wird dieses Wetten verboten, dieses Sportwetten-Konto wird aufgehoben und es ist auch nicht mehr möglich, Einzahlungen vorzunehmen.

Bonusprogramm

Deswegen gibt es natürlich auch bei dem OASIS-System nicht wirklich Nachteile, sondern darüber hinaus einige Vorteile. Durch den deutschen Glücksspielstaatsvertrag (GlüStV) wurde das sicheres Identifizierungsverfahren geschaffen. Das kann male durchaus als Vorteil sehen, wobei sera je nach persönlicher Situation und Spielerbedürfnis auch ein Nachteil sein kann. Wer aber unbedingt auch auf die Suche gehen möchte, sollte in jedem Fall die Lizenz des entdeckten Wettanbieters überprüfen.

Es ist unerlässlich, dass derartige Buchmacher über anerkannte internationale Lizenzen verfügen, um ihren Betrieb als legal zu kennzeichnen. Im folgenden Artikel wird beleuchtet, viele Genehmigungen erforderlich sind immer wieder, damit Wettanbieter mit ausländischer Lizenz den Kunden ein jurídicas und reguliertes Spielerlebnis bieten können. In Deutschland ist dieses klarer Trend within Richtung Offshore-Wettanbieter über beobachten, da sich immer mehr Spieler für Plattformen befinden, die außerhalb der deutschen Rechtsprechung agieren.

Sind Meine Daten Nach Welcher Aufhebung Auch Wahrhaft Vollständig Gelöscht?

Sportwettenvergleich. net ist echt ein Team aus Sportwetten-Experten, das fue sich zur Aufgabe gemacht hat, die Welt der Sportwetten transparanter und sicherer für euch über gestalten. In Verbindung mit Sportwetten ohne OASIS kommt darüber hinaus oft die Frage auf, was sozusagen LUGAS ist? LUGAS ist die Abkürzung für „länderübergreifendes Glücksspielaufsichtssystem“ (und ja, theoretisch hätte es wohl LÜGAS heißen müssen).

Anders erkennt die Sache aus, wenn Spieler aufgrund auffälligen Verhaltens über Personen ihres Umfelds oder aber ein Online Casinos gemeldet und deswegen gesperrt werden. Als “auffälliges Verhalten” wird beispielsweise eine Neigung über unkontrolliertem Spielen ebenso überzogenen Ausgaben gewertet, das die persönlichen Möglichkeiten übersteigt sowie Suchtpotenzial abzeichnet. Des Weiteren kann fue sich lohnen, sich über die Popularity des Anbieters zu informieren.

Bonusbedingungen Müssen Clear Sein

Einige Kritiker argumentieren, dass die Sperrdatei nicht ausreichend ist, um problematisches Spielverhalten effektiv zu bekämpfen, und dass andere Maßnahmen erforderlich wären. Allerdings stoßen perish Behörden oft a great rechtliche grenzen kklk Datenschutz. Die Sperrdatei wirft Fragen bezüglich des Datenschutzes auf, da sensible Informationen über die Zocker gespeichert werden. Diese Daten müssen sicher und vertraulich verwaltet werden, um family room Integritätsschutz der Zocker gewährleisten zu können.

In der Regel sind expire Allgemeinen Geschäftsbedingungen snabbt unten im Footer-Bereich verlinkt. Nachzulesen sind oftmals hier im Falle von Wettanbietern zu dem Beispiel, wie male ein Konto eröffnet und wie sich Sportwetten platzieren lassen. Informationen zum Datenschutz sowie auch Infos zu den konkreten Bonusbedingungen gehören ebenfalls dazu.

Sportwetten Paypal 2024 Alle Wettanbieter Mit Paypal

Damit entgehen die deutschen Kunden den Wettanbietern mit OASIS, womit dem Kontrollorgan keinerlei Einsicht in das eigene Wettverhalten gewährt wird. Hierbei handelt es sich o ein Casino, dasjenige nicht mit 1er deutschen Lizenz ausgestattet ist. Da jene Anbieter nicht GlüStv-konform agieren müssen, steht auch kein Anschluss an die REMANSO Spielersperre.

Der Anbieter bedient dabei bei weitem nicht nur die tollsten Spielotheken Provider auf welche weise Merkur und Bally Wulff, sondern offeriert dir auch noch ein Casino Erlebnis ohne Einschränkungen. Ohne Oasis Anschluss vermagst du sicher sein, dass deine On line casino Erlebnisse beim Anbieter unter Verschluss bleiben. Ihr könnt abgerechnet Abgleich eurer Information mit der OASIS-Datenbank wetten und müsst euch in einigen Fällen auch nicht verifizieren.

Warum Findet Man Wetten Abgerechnet Oasis?

Lückenlos” “muss jede Einzahlung sowie beantragte Auszahlung vonseiten dir dokumentiert ebenso weitergeleitet werden. Egal wie viel Geld Du gewinnst, dieses kannst du alle Zeit zu living area Bestimmungen der Auszahlungspolitik von Online Internet casinos beantragen. Diese Bestimmungen sind natürlich reinste Willkür und von der hand weisen jeder Grundlage der neuen DSGVO.

Bei den von dem Gastro-Shop empfohlenen besten Anbietern profitierst du zudem von einem ausgesprochen guten Quotenniveau. Beim Bonus kannst ni davon ausgehen, dass die Bedingungen and so entwickelt wurden, wenn auch Einsteiger living room Umsatz meistern können. Die Online Casinos ohne Verifizierung haben eine umfangreiches Bonusangebot für Neukunden.

Zusammengefasst – Sportwetten Ohne Oasis

Die Oasis-Sperrdatei ist ein wesentliches Instrument im deutschen Glücksspielmarkt. Sie vermag von allen Sportwettenanbietern, die eine deutsche Lizenz besitzen, genutzt und überprüft jetzt bei der Registrierung des Nutzers. Wichtig zu wissen ist natürlich, dass alle Arten von Sperren, einschließlich der selbst initiierten, gemeldet werden. Sollte eine Sperre abgerechnet festgelegtes Ende eingerichtet werden, so liegt die Mindestlaufzeit bei einem Jahr darüber hinaus eine automatische Löschung findet nicht statt. Die Oasis-Sperrdatei ist echt sowohl für family room Online- als im übrigen für den terrestrischen Glücksspielbereich in Deutschland gültig. Der rechtliche Rahmen der Oasis-Sperrdatei ergibt sich aus dem Glücksspielstaatsvertrag, jener seit dem 1.

Allerdings sind natürlich Sportwetten Anbieter, expire von Deutschland aus reguliert werden, sicherer und halten einander auch an die in Deutschland geltenden Gesetze. Unser Testsieger ist hierbei offensichtlich Rabona Sportwetten, lizenziert in Curacao mit Büros in Fanghiglia. Rabona besitzt ein herausragendes Sportwetten Erlebnis und viele besonderen Bonusangebote. Wettanbieter mit deutscher Lizenz sind immer wieder bei den Kunden wegen ihrer hohen Sicherheitsstandards und dieser Einhaltung der Regulierungen des Landes ausgesprochen beliebt. Sie offerieren meist eine breite Palette an Wetten und Wetten throughout Echtzeit auf verschiedenen Sportarten und Märkte an. Grundsätzlich gibt es auch unter living room Anbietern ohne deutsche Lizenz jede Kennziffer Plattformen, die du Business sicher darüber hinaus legal betreiben.

Funktionsweise: Wann Werden Wettfreunde Vonseiten Oasis Gesperrt?

Nachfolgend lest ihr die wichtigsten Beschlüsse, die den Unterschied zwischen Wettanbietern ohne deutsche Lizenz ebenso solchen mit DE-Genehmigung ausmachen. Sie sorgen maßgeblich dafür, wenn ausländische Wettanbieter erheblichen Zuspruch von Tippern haben. Auf welcher anderen Seite werden allerdings keine Information an Spielerdatenbanken übermittelt und müsst and so keine Sperrung befürchten.” “[newline]Ihr bekommt alle Freiheiten, die Wettanbieter weniger deutsche Lizenz mitbringen können. Indem Sie sich einen jeder Buchmacher ohne REMANSO aus unserem Einigung aussuchen. Diese Anbieter sind mit einer Lizenz aus Malta oder Curaçao bestückt und somit nie und nimmer an den deutschen GlüStv gebunden. Die Spitzenkandidaten im Wettanbieter Vergleich 2024 geben Sie mit allem, was Sie für erfolgreiche Tipps brauchen.

Entscheiden Sie sich für ein Zahlungsmittel, legen Sie den gewünschten Betrag ihrer Einzahlung holiday und stoßen Sie den Prozess anschließend an. Dieses Recetar füllen Sie deshalb aus und legen dabei zum Beispiel Ihre zukünftigen Login-Daten fest. Zur Aktivierung Ihres Accounts erhalten Sie anschließend einen Bestätigungslink per Mail, den Sie anklicken müssen. Viele Neueinsteiger sind erst einmal unsicher, wenn sie zum ersten Zeichen Online Wetten ohne OASIS abgeben möchten. Aber auch, falls Sie einige Basisschritte absolvieren müssen, können wir Sie beruhigen. Wo wir allerdings keine Kompromisse bejahen, ist die Usability der Buchmacher weniger OASIS.

Bessere Erlebnis Von Quoten

Aktuell sind immer wieder nur Wettanbieter unter abzug von OASIS aus Curacao dazu befugt euch Zahlungsabwicklungen per Bitcoin oder Ethereum zu verkaufen. Aus diesem Boden solltet Ihr euch bereits vor dieser Registrierung danach erkundigen, welche Zahlungsmethoden für deutsche Kunden zur Verfügung stehen. Des Weiteren ist fue wichtig, dass Du keine Gebühren für die Nutzung bestimmter Zahlungswege hinnehmen müsst. Sowohl Einzahlungen wie auch all eure Auszahlungen sollten gebührenfrei sein. In dieser Zusammenfassung stellen Wettanbieter ohne Oasis essentielle und vielfältige Alternativen für deutsche Zocker dar.

Fragen nach jeder Sicherheit standen aus diesem grund auf der Hauptagenda der 16 Bundesländer. Nach langen Verhandlungsrunden konnte man einander allerdings auf dieses System einigen, das in den Händen des Regierungspräsidiums throughout Darmstadt als absolut sicher anzusehen ist natürlich. Handelt es einander um eine Startverbot durch euren Wettanbieter, so ist jene Art der Spielsperre auf mindestens 10 Monate ausgelegt. Es sei daher bislang einmal zu erwähnen, dass die Nutzung eines VPN oder einer falschen Identität über kurz oder aber lang zu fatalen Folgen führen ist.

Schritt 3: Einzahlung Für Ihre Wetten Ohne Oasis

Das Fehlen einer Oasis-Zertifizierung bedeutet nicht zwangsläufig, dass der Wettanbieter illegal oder unsicher ist. Für deutsche Wettbegeisterte bieten internationale Buchmacher zahlreiche Verwenden, die eine attraktive Alternative zu den streng regulierten inländischen Angeboten darstellen. Es ist wie erwähnt jedoch wichtig, einen vertrauenswürdigen Anbieter über wählen, um das volle Potenzial auszuschöpfen und auf ihrer sicheren Plattform über spielen. Die Entscheidung für Wettanbieter abgerechnet Oasis bietet Ihnen einen erheblichen Vorteil, der für ein paar Nutzer in jeder Praxis noch relevanter sein könnte als ein möglicher Eintragung in das Sperrregister. Buchmacher außerhalb Deutschlands sind nicht” “an die strengen deutschen Glücksspielgesetze gebunden. Im Folgenden erläutern unsereiner Ihnen die unterschiedlichen positiven Punkte, die heute mit Sportwetten bei lizenzierten Anbietern außerhalb Deutschlands online sind.

Ursache für so eine Fremdsperre kann eine Meldung durch Familienangehörige oder aber können Auffälligkeiten im or her Spielverhalten sein. Jedenfalls muss es Anhaltspunkte geben, dass die Person spielsuchtgefährdet ist oder durch ihre Spieltätigkeit in finanzielle Schwierigkeiten geraten ist. Wichtig ist in dem Zusammenhang, dass dieser Spieler die Möglichkeit bekommt, zu living area Vorwürfen Stellung über nehmen.

Paypal Bei Oddset

Das dunkle Design and style der Webseite erweckt einen modernen ebenso edlen Eindruck, der durch eine hohe Usability untermauert ist. Für Ihre Transaktionen haben Sie die Wahl aus Fiat- und Kryptowährungen, expire der Top Wettanbieter ohne OASIS gebührenfrei zur Verfügung stellt. Außerdem wird durch ein möglichst vielseitiges, abwechslungsreiches Portfolio dafür gesorgt, dass jeglicher Kunde Wetten unter abzug von OASIS auf seinen Lieblingssport platzieren kann.

Die GRA loath einen hervorragenden Prestige in der Branche und lizenziert ein paar renommierte Wettanbieter unter abzug von Oasis. Buchmacher über einer Gibraltar-Lizenz bieten im großen und ganzen eine sichere und faire Spielerfahrung. Aber die Wett-Fans können sich ein eigenes Limit setzen, sofern sie dasjenige möchten. Das bedeutet Sportwetten ohne OASIS bieten mehr Freiheit hinsichtlich die Höhe der Einzahlungen. Wer sich für Sportwetten ohne OASIS entscheidet, der muss nicht befürchten, dass ha sido durch Verleumdung anderer Personen zu einer Sperre kommt. Das bedeutet hier muss jeder ohne Worry davor, dass noch eine fremde Person wie bspw.

Gibt Es Auch Den Anbieter Für Sportwetten Ohne Oasis Durch Paypal?

Im pulsierenden Universum der Sportwetten wetteifern zahlreiche Anbieter um die Gunst der Zocker. Jenseits der deutschen Grenzen prägen vor allem ausländische Lizenzen aus Curacao, Malta, deinem Vereinigten Königreich, Gibraltar und Kahnawake das Bild. Diese Lizenzen sind mehr wie bloße bürokratische Prägestempel; sie sind Zeugnisse für Sicherheit und Seriosität. Das gleiche Prinzip gilt für diejenigen, die weniger Restriktionen (Einzahlungslimits, Verlustlimits, Wettlimits) oder durch einem vielfältigeren Wettangebot bei Live-Wetten wetten möchten.

Wir stellen nicht lediglich die Stärken vor, sondern gehen ebenso auf die Schwächen ein. Hast i dann einen Anbieter gefunden, der euch gefällt, kannst du dich mit unserem Klick auf den Button direkt inside wenigen Schritten bei unserem Testsieger Rabona kostenlos anmelden. Du kannst oft selber überprüfen, ob fue sich um einen Wettanbieter ohne Lizenz handelt” “oder um einen Buchmacher, der eine gültige Glücksspiellizenz besitzt. Hierfür musst du natürlich zunächst einmal daten, aus welchem Area die Lizenz stammt. Die damit etablierten Auflagen und Restrictions machen Sportwetten Deutschland noch sicherer. Denn die Regeln dieses GlüStv zielen vorrangig auf eine Optimierung des Spielerschutzes darüber hinaus der Prävention von Spielsucht ab.

Seriöse Wettanbieter Ohne Remanso Checkliste: Die Diskretesten Tipps Für Wetten Trotz Oasis Sperre

August 2021 können Veranstalter nun offiziell Anträge auf Anschluss an das Spielersperrsystem stellen. Letztlich zielen pass away meisten Maßnahmen, die der Glücksspielstaatsvertrag 2021 vorsieht, auf family room Spielerschutz ab. Während die oben genannten für den Endkunden schnell offensichtlich werden, gibt es doch auch solche, expire zunächst unbemerkt im Hintergrund verbleiben. So auch das Spielersperrsystem OASIS – dieses weiterer Baustein in Bekämpfung von Spielsucht, dem von living room Behörden große Sinn beigemessen wird. Zusätzlich dazu sorgt LUGAS dafür, dass ihr nicht bei mehreren Wettanbietern gleichzeitig angemeldet sein könnt. Meldet ihr euch unter einem Anbieter stomach und wollte zu einem anderen Bookie wechseln, müsst du zudem eine Wartezeit von fünf Minuten überbrücken.

Jede dieser Lizenzierungen bereichert den Sektor dieser Online Sportwetten ohne Oasis durch pass away Gewährleistung einer sicheren und gerechten Spielumgebung. Die UK-Lizenz hebt sich durch ihre strenge Regulierung darüber hinaus den hohen Sicherheitsstandard für Spieler hervor und gilt weltweit als eine jeder zuverlässigsten Lizenzen. Ebenso bietet Gibraltar über seiner EU-konformen Franchise eine attraktive Alternative, insbesondere durch eine lange Tradition im Glücksspielsektor und living area guten Ruf innerhalb der Wettgemeinschaft. In der lebhaften Welt der Sportwetten gibt es eine Vielzahl an Anbietern, die auf die Gunst jeder Wettenbegeisterten kämpfen. Besonders Lizenzen aus Ländern wie Curacao, The island of malta, dem Vereinigten Königreich, Gibraltar und Kahnawake prägen das internationale Feld. Diese Lizenzen stehen nicht leicht für bürokratische Pflichterfüllungen – sie sind ein Qualitätssiegel für die” “Zuverlässigkeit und Vertrauenswürdigkeit der Wettanbieter ohne Beauty.

So Hat Ihr Den Besondersten Anbieter Ohne Oasis

Zu diesen gehören gesetzliche Grauzonen, vermehrte Gefahren von Spielsucht darüber hinaus ein höheres Betrugsrisiko. Es ist bedeutsam, diese Aspekte throughout Betracht zu ziehen, bevor man sich für einen Wettanbieter ohne OASIS entscheidet. Die OASIS Spielsperre hat eine wesentliche Auswirkung bei Spielhallen. Sie ermöglicht es Spielhallenbetreibern, den Zugang zu Glücksspielen für gesperrte Menschen zu verweigern demnach deren Spielsucht einzudämmen.

Nun sind allerdings genau diese Wettmärkte bedeutend für erfahrene Tipper. Schließlich profitieren Sie hier in der Regel von den besonders attraktiven Wettquoten. Statt ihrer deutschen Glücksspiellizenz ist echt der Großteil jeder neuen Wettanbieter abgerechnet OASIS üblicherweise über einer Curaçao-Lizenz ausgestattet.

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