Hire Professional Casino Sellers For Your Event Or Party Twenty One Fun Casino Party

Blackjack Party Rentals

For a more casual gathering, consider dining tables that focus on a new wide range regarding skill levels plus gaming preferences. The cost of renting casino tables may vary depending on many factors. On average, renting casino dining tables can cost between $75 and $250 per table per night. However, this cost can vary substantially based on the factors described above. We provide a wide range of international slot machine games and table games, live life poker, entertainment events and restaurant solutions. Poker will give you that will Caesars Palace experience to your on line casino table hire.

You can let people gamble with fake funds, or put actual money at risk plus use your on line casino night as a new fundraiser. Hire roulette wheel alongside the other casino dining tables that people supply in addition to create your own casino. Our tables are a great addition to our Todas las Vegas themed packages including eye getting backdrops, fun and interactive props plus the best Vegas themed statues. Or if you’re trying to find more of the mission, check out the James Bond designed packages. We offer a range of theming ideas that will suit an online casino party, make sure to surf our website regarding inspiration. Our different roulette games wheel has the very professional plus slick look that will draws guests to be able to come and offer.

Why Sponsor A White Experienced Event?

If the cruise ship already has a new casino room, then a portable Online casino Table can be a great excellent choice to put outside on typically the decking. Our Online casino Tables are full sized tables, with a professional croupier on each a single and we make sure that all game titles are run smoothly and without a new hitch. As it’s all funny funds and no real cash can be utilized, it’s all in great fun and over board. The tables you see in the gallery are the ones that may come to your current event, and a person can see just how many people enjoy the tables on all our past events. Check out your CustomerSure reviews too, to be able to see what individuals have stated about the previous events. With all casino equipment hires, our croupiers will even help and advise on the regulations of the furniture so everyone can participate mostbet bd.

The professional croupier can be established up using the On line casino Table at the function party, where they will will no uncertainty create a fantastic buzz! Whether it’s the colleague’s leaving celebration, a piece Christmas gathering, or even a work Summer time party, the employed Casino Table will certainly go down the storm with your own co-workers! (You might want to execute a management vs everybody else competition?! ) You could also want to employ a Casino Table for any trade display or even a product release? The hired Online casino Table will become a great showstopper as it’s an” “active bit of enjoyment, meaning that potential consumers will feel like they’re invested in the first place! How about finding a Casino Table for the entertainment on a cruise liner?

Roulette Table

Prizes may range from little tokens, like gift idea cards or casino-themed trinkets, to bigger items like electronics or weekend getaways. No casino-themed occasion is complete without having the right songs and entertainment. Create a playlist or even hire a DISC JOCKEY to play a mix of upbeat tunes plus classic casino-themed tracks to set the particular mood for your current event. Additionally, take into account hiring live entertainers, such as a lounge singer, a jazz band, or a magician, to entertain guests during breaks in gameplay. Whether you happen to be a new player, looking regarding a good time and enjoyable activities, whether you enjoy gourmet or are usually just curious, an individual are always thanks for visiting the casino. All our games can be found in an location controlled by registration” “by both Finnish plus foreign casino visitors mostbet app download.

The roulette hire is great at the enjoyment casino, as no one wins plus no one certainly loses, it is used fun funds, though you could put a prize up for the most effective gambler at the event. The roulette employ is great whenever it is complimented with the blackjack hire or the particular poker hire, we have the full array of fun online casino tables. With the particular Roulette Hire an individual can also include the Las Las vegas theme night in addition to really head to city with your fun casino hire, having the backdrops and the props. The Roulette Hire always comes with a specialized croupier who will explain the rules to any friends who have never ever played before.

Our Online Casino Tables

This area ought to be easily available however, not too close up to the gambling tables. When you decide on us, we accept the party to a person, finding the time to talk about every detail of the event and working closely with a person to make a bespoke casino experience. Whether it’s a thrilling baccarat party and also the need to hire a specialist blackjack dealer, we have you covered. Each area offers a wide selection of casino game dining tables to choose from. By selecting an area from the choices above you will find the price tag on your own desired game desk. If a fun casino is what you’re after” “then don’t hesitate to be able to book with us all, we guarantee typically the best quality service and have already been doing since it was founded two decades ago.

The Casino ID card, together together with our skilled personnel staff, will certainly guarantee you a dependable casino experience. The Know What you like consumer programme supports responsible gaming. We offer unique gaming experiences and tools that will help you handle your gaming better.

Casino Hire Southampton

Arrange the tables in a way that allows for easy movement between them and ensures that will guests can comfortably access each game. Additionally, leave enough space around each and every table for gamers to stand or perhaps sit as well as for sellers to manage typically the games. Hire a Casino Table for your corporate event plus you’ll impress your potential clients plus existing customers zero end! There is a certain fascination with Casino Tables that will draws people inside and it may be no exception in your corporate event!

Give our sales force a call today to get your enjoyable casino hire safely booked. We just use genuine, high quality blackjack, different roulette games, dice, poker and wheel of fortune tables and equipment to ensure extra service, which may think about your unique event. At the blackjack events, we prioritize pure enjoyment without the pressure.

Casino Tables Rental Locations

Allow us to get you an on line casino night that is amusing and lively with the ambiance of Las Vegas in your event. We provide you with the complete package deal with all the entertaining obstacle of our fun casinos. We have an extensive range of casino tables to use which include Poker, Roulette plus Blackjack and our Wheel of Lot of money. The guest who wins probably the most cash from the online casino tables” “requires home the sought after Scott Events Winner’s Trophy. Your on line casino party options is determined by the company an individual choose to seek the services of. Many full-service online casino party companies provide both equipment plus professional dealers.

Additionally, specialized dealers can aid explain the guidelines of each sport to guests that may be new with them. Casino tables certainly are a well-known addition to many events, from company parties to fundraisers to private festivities. If you’re organizing an event plus considering adding casino tables to typically the mix, you might be wondering exactly how much it will cost to hire them.

How Very Much Does It Expense To Rent Casino Tables?

You can come by yourself, with a friend, or perhaps why not deliver a group of friends to have a very good time in a new sporty ambiance plus to enjoy delicious dishes from your cooking area. We show the most interesting NHL matches and player selection interviews on the displays of the Casino Helsinki Sports Bar. Whether you are a gamer, looking for the good time plus enjoyable experiences or perhaps just curious about us, you will be always welcome in order to Casino Helsinki.” “[newline]It is an excellent game to create exhilaration with players cheering when winning the ‘Jackpot’. Full Residence Casino Events client’s are responsible regarding researching and complying with all local, condition, and federal rules regarding fundraiser, business, or private online casino parties.

We track typically the estimates they get from local professionals, conduct our own analysis and then we reveal those prices with you. The prices reflected inside the article above are regarding informational purposes simply and are subject to change at any kind of time. Contact a new professional near a person to receive a personal cost estimate for your project. Some companies charge an extra fee with regard to travel to areas beyond a collection radius. Bruner regarding Enjoyable Entertainment describes that because of their Brand new York location, they include parking and toll prices inside the quote.

Want In Order To Know More Concerning Casino Table Hire Companies?

The aim is to guess which number the ball will land about create the just about all money. Up in order to 10 guests can play roulette at a time which usually creates that excitement of atmosphere as guests enjoy observing the ball land on a number in addition to watch others shed a lot associated with money. A casino-themed party is an excellent solution to bring the excitement in addition to glamour of typically the casino world to be able to your function. At the heart of any successful casino-themed event are the particular casino tables, exactly where” “guests can enjoy well-liked games like black jack, poker, and roulette. Experienced, skilled, in addition to ready to take the thrill of gaming to your visitors.

“Accept the glamour to your current next casino occasion and hire different roulette games table. Our smooth and professional different roulette games hire will have got your guests experience the Las Sin city thrilling eager in order to get involved with losing and succeeding a small fortune00! We supply the highest quality different roulette games tables and also have lots in stock to generate your very personal mobile casino celebration. We supply the full range of fun casino tables such as the most well-known Black jack tables as properly as Caribbean stud Poker tables, Chop tables, Craps dining tables and a steering wheel of fortune. Whether you’re booking with regard to a private celebration, or a big corporate black-tie celebration we have over twenty fun casino hire tables in order to offer.

Hire Roulette Table

Our Roulette Hire will be the best close to and great regarding after dinner events. Hire Roulette Desk games for following dinner parties or even fun casino nights. The roulette stand hire is incredibly well-liked, we have more than twenty fun on line casino tables in share. The fun on line casino nights and the particular fun casino employ are the most effective fun” “evenings ever. Hire different roulette games table games regarding a thrilling night regarding gambling, without endangering any money.

To participate in the money games, you may use Veikkaus application or enrol directly together with the poker room supervisor. We could appeal to any dimension of event in Southampton, from being a mere special birthday party up to a large corporate event. We advise you explore just about all our packaging options before making your current final selection. If you will need help identifying the necessary tables regarding your event, visit our FAQ page.

Consider Hiring Expert Dealers

Bruner together with Enjoyable Entertainment recommends $20 to $30 per dealer for the night. The ideal online casinos will offer a great variety of promotions in addition to bonuses. That gives you the opportunity to try fresh games and never have to risk so much money.

We offer top-quality casino products, professional dealers, plus expert event preparing services. In conclusion, renting casino dining tables can be a new great way to incorporate excitement and glamour to your event. The cost associated with renting casino furniture can vary depending on several factors, such as the number and type of tables, duration of the celebration, location, and period of year. Check out our online casino rental packages or perhaps contact us right now to acquire a quote! A dedicated Ace High team member will guide you about the same on line casino event planning procedure.

Casino Helsinki — 3 Decades Of On Line Casino Entertainment

Most casino tables suit 7-8 guests, thus 4 to 5 tables is an excellent quantity to keep one hundred guests engaged plus entertained. Most online casino table party local rental costs include typically the services of a professional dealer. Dealers add to typically the fun as they keep the game titles above-board and likewise help guests by simply coaching them when needed. Other concerns for party rentals are casino-themed decor, a mobile bar, and regular furniture and chairs therefore that even friends who aren’t gambling have somewhere to hold out. Roulette is an excellent fun game and you will be enjoyed by all the guests. When a person hire roulette, you will definitely get the best enjoyable casino game close to.

You can’t use real cash for the particular slot machines with the tables; typically the rental company provides substitute money to your guests. Roulette Employ is the most popular fun casino game, the best thing along with the roulette employ is you obtain the roulette table and the significant roulette wheel which looks amazing. Our Roulette Hire is the best in the UK, the tables have been all above Europe, Monte Carlo, Montenegro and many other places.

Slots Games

We also offer game schools where you can learn everything about typically the odds of Roulette, the outs of Poker,” “or simply the rules of Blackjack. You may have multiple roulette dining tables or a combination of diverse ones to suit the wedding or theme. During holiday weeks, like December, the pricing of every table changes. To further improve the atmosphere of your casino-themed event, encourage guests to dress in theme-appropriate attire. At Veikkaus, you have sports betting and VeikkausTV within your own hand’s reach right away after you’ve gotten your Veikkaus Card. You can access our services both by using the Veikkaus application and through a browser.

Consider excessive elements such because dimmed lighting, rich colors, and upscale décor to create typically the tone for the night. Additionally, provide cozy seating round the furniture for guests who else prefer to sit down while playing, and be sure the room’s heat is comfortable for those attendees. When establishing your event space, it’s essential in order to consider the flow and accessibility of typically the casino tables.

Cash Cube Hire

We offer a fabulous setting and restaurant services regarding both private and company events. Let us plan a good event of your desires where you reach plunge into the particular regarding the online casino while enjoying excellent food and beverages. We include smartly attired, professional entertainer croupiers who explain the games and captivate you and your guests. Book us all with confidence to achieve your unique in addition to memorable event. At White Felt On line casino Events, our dedication to exceptional consumer service sets us apart from the particular competition throughout Arizona.

Some Casino Table” “Firms will also include a rough value guide to their own profile for your own convenience. Even in case you were not necessarily looking to play, the facilities and environment are open to be able to you from typically the restaurants and personal performances all the particular way to sports grandstands. The switch negotiations, which were launched at the start of Sept. 2010, and which concerned a total of 825 employees, have now been finalized. We cover the total of the UNITED KINGDOM and Europe with single day employs and long term hire possibilities. Head on our towards the Blackjack and Roulette Casino Table Hire Gallery to observe a few of the great events that we’ve recently been a part of.

Click Here To View Casino & Gaming Tables In Almost All Countries Worldwide

There a person will find almost all the information you should calculate” “typically the approximate number associated with tables for your guests. For instance, if you require multiple tables with regard to a long period in a remote control location during top season, the cost could increase significantly. Alternatively, if an individual only need several tables for the short event in a convenient location during the particular off-season, the price may be lower.

The manager associated with the night, Brandon, was very specialized and kept things running smoothly all night. Also Debbie was extremely attractive answering questions plus making sure we all had all of the details we needed. Not all entertainment companies include the expense of chairs in their own table rental charges. Be sure to be able to ask about the availability and cost associated with chairs when requesting a cost estimate regarding your party. Bruner with Enjoyable Entertainment says that chairs are not contained in their standard local rental rates, but are available at an additional cost of $2. 50 per foldable chair. We want to protect the happiness of gaming, plus that is the reason why you will automatically become a member of the Know Your own Game programme, when you come to get us.

Arcade Grabber Hire

You’ll understand how much your task costs even prior to booking a professional. Get in touch along with us today, in addition to let’s start planning an unforgettable event that will will showcase exactly why White Felt Casino Events is your ultimate choice. Your pleasure is our top priority, and we all can’t wait to prove it to be able to you. If you provide Casino Celebration Rentals services inside the United Claims or Canada, acquire more gigs simply by joining GigSalad.

Setup and breakdown of the tables is not really section of the 4 hrs of amusement. This can depend associated with what type associated with game it really is in addition to how many participants you want at the table at any one moment. Again, this is a question that may need to become answered from the On line casino Table Hire Organization.

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