var tribe_dropdowns = window.tribe_dropdowns || {}; ( function( $, obj, _ ) { 'use strict'; obj.selector = { dropdown: '.tribe-dropdown', created: '.tribe-dropdown-created', searchField: '.select2-search__field', }; // Setup a Dependent $.fn.tribe_dropdowns = function() { obj.dropdown( this, {} ); return this; }; obj.freefrom_create_search_choice = function( params ) { if ( 'string' !== typeof params.term ) { return null; } var term = params.term.trim(); if ( '' === term ) { return null; } var args = this.options.options; var $select = args.$select; if ( term.match( args.regexToken ) && ( ! $select.is( '[data-int]' ) || ( $select.is( '[data-int]' ) && term.match( /\d+/ ) ) ) ) { var choice = { id: term, text: term, new: true }; if ( $select.is( '[data-create-choice-template]' ) ) { choice.text = _.template( $select.data( 'createChoiceTemplate' ) )( { term: term } ); } return choice; } return null; }; /** * Better Search ID for Select2, compatible with WordPress ID from WP_Query * * @param {object|string} e Searched object or the actual ID * @return {string} ID of the object */ obj.search_id = function( e ) { var id = undefined; if ( 'undefined' !== typeof e.id ) { id = e.id; } else if ( 'undefined' !== typeof e.ID ) { id = e.ID; } else if ( 'undefined' !== typeof e.value ) { id = e.value; } return undefined === e ? undefined : id; }; /** * Better way of matching results * * @param {string} term Which term we are searching for * @param {string} text Search here * @return {boolean} */ obj.matcher = function( params, data ) { // If there are no search terms, return all of the data if ( 'string' !== typeof params.term || params.term.trim() === '') { return data; } // Do not display the item if there is no 'text' property if ( typeof data.text === 'undefined' ) { return null; } var term = params.term.trim(); var text = data.text; var $select = $( data.element ).closest( 'select' ); var args = $select.data( 'dropdown' ); var result = text.toUpperCase().indexOf( term.toUpperCase() ) !== -1; if ( ! result && 'undefined' !== typeof args.tags ){ var possible = _.where( args.tags, { text: text } ); if ( args.tags.length > 0 && _.isObject( possible ) ){ var test_value = obj.search_id( possible[0] ); result = test_value.toUpperCase().indexOf( term.toUpperCase() ) !== -1; } } return result; }; /** * If the element used as the basis of a dropdown specifies one or more numeric/text * identifiers in its val attribute, then use those to preselect the appropriate options. * * @param {object} $select * @param {function} make_selection */ obj.init_selection = function( $select, make_selection ) { var isMultiple = $select.is( '[multiple]' ); var options = $select.data( 'dropdown' ); var currentValues = $select.val().split( options.regexSplit ); var selectedItems = []; $( currentValues ).each( function( index, value ) { // eslint-disable-line no-unused-vars var searchFor = { id: this, text: this }; var data = options.ajax ? $select.data( 'options' ) : options.data; var locatedItem = find_item( searchFor, data ); if ( locatedItem && locatedItem.selected ) { selectedItems.push( locatedItem ); } } ); if ( selectedItems.length && isMultiple ) { make_selection( selectedItems ); } else if ( selectedItems.length ) { make_selection( selectedItems[ 0 ] ); } else { make_selection( false ); return; } }; /** * Searches array 'haystack' for objects that match 'description'. * * The 'description' object should take the form { id: number, text: string }. The first * object within the haystack that matches one of those two properties will be returned. * * If objects contain an array named 'children', then that array will also be searched. * * @param {Object} description * @param {Array} haystack * * @return {Object|boolean} */ function find_item( description, haystack ) { if ( ! _.isArray( haystack ) ) { return false; } for ( var index in haystack ) { var possible_match = haystack[ index ]; if ( possible_match.hasOwnProperty( 'id' ) && possible_match.id == description.id ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'text' ) && possible_match.text == description.text ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'children' ) && _.isArray( possible_match.children ) ) { // eslint-disable-line no-prototype-builtins,max-len var subsearch = find_item( description, possible_match.children ); if ( subsearch ) { return subsearch; } } } return false; } obj.getSelectClasses = function( $select ) { var classesToRemove = [ 'select2-hidden-accessible', 'hide-before-select2-init', ]; var originalClasses = $select.attr( 'class' ).split( /\s+/ ); return _.difference( originalClasses, classesToRemove ); }; obj.element = function( field, args ) { var $select = $( field ); var args = $.extend( {}, args ); // eslint-disable-line no-redeclare var carryOverData = [ // eslint-disable-line no-unused-vars 'depends', 'condition', 'conditionNot', 'condition-not', 'conditionNotEmpty', 'condition-not-empty', 'conditionEmpty', 'condition-empty', 'conditionIsNumeric', 'condition-is-numeric', 'conditionIsNotNumeric', 'condition-is-not-numeric', 'conditionChecked', 'condition-is-checked', ]; var $container; // Add a class for dropdown created $select.addClass( obj.selector.created.className() ); // args.debug = true; // For Reference we save the jQuery element as an Arg. args.$select = $select; // Auto define the Width of the Select2. args.dropdownAutoWidth = true; args.width = 'resolve'; // CSS for the container args.containerCss = {}; // Only apply visibility when it's a Visible Select2. if ( $select.is( ':visible' ) ) { args.containerCss.display = 'inline-block'; args.containerCss.position = 'relative'; } // CSS for the dropdown args.dropdownCss = {}; args.dropdownCss.width = 'auto'; // When we have this we replace the default with what's in the param. if ( $select.is( '[data-dropdown-css-width]' ) ) { args.dropdownCss.width = $select.data( 'dropdown-css-width' ); if ( ! args.dropdownCss.width || 'false' === args.dropdownCss.width ) { delete args.dropdownCss.width; delete args.containerCss; } } // By default we allow The field to be cleared args.allowClear = true; if ( $select.is( '[data-prevent-clear]' ) ) { args.allowClear = false; } // Pass the "Searching..." placeholder if specified if ( $select.is( '[data-searching-placeholder]' ) ) { args.formatSearching = $select.data( 'searching-placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work if ( ! $select.is( '[data-placeholder]' ) && $select.is( '[placeholder]' ) ) { args.placeholder = $select.attr( 'placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work. if ( $select.is( '[data-options]' ) ) { args.data = $select.data( 'options' ); } // With less then 10 args we wouldn't show the search. args.minimumResultsForSearch = 10; // Prevents the Search box to show if ( $select.is( '[data-hide-search]' ) ) { args.minimumResultsForSearch = Infinity; } // Makes sure search shows up. if ( $select.is( '[data-force-search]' ) ) { delete args.minimumResultsForSearch; } // Allows freeform entry if ( $select.is( '[data-freeform]' ) ) { args.createTag = obj.freefrom_create_search_choice; args.tags = true; $select.data( 'tags', true ); } if ( $select.is( '[multiple]' ) ) { args.multiple = true; // Set the max select items, if defined if ( $select.is( '[data-maximum-selection-size]' ) ) { args.maximumSelectionSize = $select.data( 'maximum-selection-size' ); } // If you don't have separator, add one (comma) if ( ! $select.is( 'data-separator' ) ) { $select.data( 'separator', ',' ); } if ( ! _.isArray( $select.data( 'separator' ) ) ) { args.tokenSeparators = [ $select.data( 'separator' ) ]; } else { args.tokenSeparators = $select.data( 'separator' ); } args.separator = $select.data( 'separator' ); // Define the regular Exp based on args.regexSeparatorElements = [ '^(' ]; args.regexSplitElements = [ '(?:' ]; $.each( args.tokenSeparators, function ( i, token ) { args.regexSeparatorElements.push( '[^' + token + ']+' ); args.regexSplitElements.push( '[' + token + ']' ); } ); args.regexSeparatorElements.push( ')$' ); args.regexSplitElements.push( ')' ); args.regexSeparatorString = args.regexSeparatorElements.join( '' ); args.regexSplitString = args.regexSplitElements.join( '' ); args.regexToken = new RegExp( args.regexSeparatorString, 'ig' ); args.regexSplit = new RegExp( args.regexSplitString, 'ig' ); } // Select also allows Tags, so we go with that too if ( $select.is( '[data-tags]' ) ) { args.tags = $select.data( 'tags' ); args.createSearchChoice = function( term, data ) { // eslint-disable-line no-unused-vars if ( term.match( args.regexToken ) ) { return { id: term, text: term }; } }; if ( 0 === args.tags.length ) { args.formatNoMatches = function() { return $select.attr( 'placeholder' ); }; } } // When we have a source, we do an AJAX call if ( $select.is( '[data-source]' ) ) { var source = $select.data( 'source' ); // For AJAX we reset the data args.data = { results: [] }; // Format for Parents breadcrumbs args.formatResult = function ( item, container, query ) { // eslint-disable-line no-unused-vars,max-len if ( 'undefined' !== typeof item.breadcrumbs ) { return $.merge( item.breadcrumbs, [ item.text ] ).join( ' » ' ); } return item.text; }; // instead of writing the function to execute the request we use Select2's convenient helper. args.ajax = { dataType: 'json', type: 'POST', url: obj.ajaxurl(), // parse the results into the format expected by Select2. processResults: function ( response, page, query ) { // eslint-disable-line no-unused-vars if ( ! $.isPlainObject( response ) || 'undefined' === typeof response.success ) { console.error( 'We received a malformed Object, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! $.isPlainObject( response.data ) || 'undefined' === typeof response.data.results ) { console.error( 'We received a malformed results array, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! response.success ) { if ( 'string' === $.type( response.data.message ) ) { console.error( response.data.message ); } else { console.error( 'The Select2 search failed in some way... Verify the source.' ); } return { results: [] }; } return response.data; }, }; // By default only send the source args.ajax.data = function( search, page ) { return { action: 'tribe_dropdown', source: source, search: search, page: page, args: $select.data( 'source-args' ), }; }; } // Attach dropdown to container in DOM. if ( $select.is( '[data-attach-container]' ) ) { // If multiple, attach container without search. if ( $select.is( '[multiple]' ) ) { $.fn.select2.amd.define( 'AttachedDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/attachContainer', ], function( utils, dropdown, attachContainer ) { return utils.Decorate( dropdown, attachContainer ); } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedDropdownAdapter' ); // If not multiple, attach container with search. } else { $.fn.select2.amd.define( 'AttachedWithSearchDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/search', 'select2/dropdown/minimumResultsForSearch', 'select2/dropdown/attachContainer', ], function( utils, dropdown, search, minimumResultsForSearch, attachContainer ) { var adapter = utils.Decorate( dropdown, attachContainer ); adapter = utils.Decorate( adapter, search ); adapter = utils.Decorate( adapter, minimumResultsForSearch ); return adapter; } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedWithSearchDropdownAdapter' ); } } // Save data on Dropdown $select.data( 'dropdown', args ); $container = $select.select2TEC( args ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.addClass( obj.getSelectClasses( $select ).join( ' ' ) ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.removeClass( 'hide-before-select2-init' ); $container.on( 'select2:open', obj.action_select2_open ); /** * @todo @bordoni Investigate how and if we should be doing this. * if ( carryOverData.length > 0 ) { carryOverData.map( function( dataKey ) { var attr = 'data-' + dataKey; var val = $select.attr( attr ); if ( ! val ) { return; } this.attr( attr, val ); }, $container ); } */ }; obj.ajaxurl = function() { if ( 'undefined' !== typeof window.ajaxurl ) { return window.ajaxurl; } if ( 'undefined' !== typeof TEC && 'undefined' !== typeof TEC.ajaxurl ) { return TEC.ajaxurl; } console.error( 'Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.' ); // eslint-disable-line max-len }; obj.action_select2_open = function( event ) { // eslint-disable-line no-unused-vars var $select = $( this ); var select2Data = $select.data( 'select2' ); var $search = select2Data.$dropdown.find( obj.selector.searchField ); // eslint-disable-line es5/no-es6-methods,max-len select2Data.$dropdown.addClass( obj.selector.dropdown.className() ); // If we have a placeholder for search, apply it! if ( $select.is( '[data-search-placeholder]' ) ) { $search.attr( 'placeholder', $select.data( 'searchPlaceholder' ) ); } }; /** * Configure the Drop Down Fields * * @param {jQuery} $fields All the fields from the page * @param {array} args Allow extending the arguments * * @return {jQuery} Affected fields */ obj.dropdown = function( $fields, args ) { var $elements = $fields.not( '.select2-offscreen, .select2-container, ' + obj.selector.created.className() ); // eslint-disable-line max-len if ( 0 === $elements.length ) { return $elements; } // Default args to avoid Undefined if ( ! args ) { args = {}; } $elements .each( function( index, element ) { // Apply element to all given items and pass args obj.element( element, args ); } ); // return to be able to chain jQuery calls return $elements; }; $( function() { $( obj.selector.dropdown ).tribe_dropdowns(); } ); // Addresses some problems with Select2 inputs not being initialized when using a browser's "Back" button. $( window ).on( 'unload', function() { $( obj.selector.dropdown ).tribe_dropdowns(); }); } )( jQuery, tribe_dropdowns, window.underscore || window._ ); /*! elementor-pro - v3.5.1 - 10-11-2021 */ .elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0} Ontdek de Spannende Wereld van Rakoo Casino!_163 - premier mills

Ontdek de Spannende Wereld van Rakoo Casino!_163

Ontdek de Spannende Wereld van Rakoo Casino!

Welkom in de fascinerende wereld van online gokken, waar spanning en entertainment samenkomen in de vorm van rakoo casino. Dit unieke casino biedt spelers een uitstekende ervaring met unieke spellen, geweldige bonusaanbiedingen en een gebruiksvriendelijke interface. In deze artikel gaan we dieper in op wat rakoo casino zo speciaal maakt, en hoe je het meeste kunt halen uit je tijd op dit platform. Van de verschillende spelopties tot de betalingsmethoden, we zullen alles onder de loep nemen.

Bovendien gaan we in op belangrijkere onderwerpen zoals klantenservice, spelveiligheid en de achtergronden van dit uitstekende online platform. Met het groeiende aantal mensen dat kiest voor online gokken, is het cruciaal om goed geïnformeerd te zijn over waar je je geld in investeert. Dus leun achterover, ontspan en ontdek wat rakoo casino te bieden heeft!

In deze gidsleer je niet alleen over de verschillende spellen, maar ook over de bonussen en promoties die jou kunnen helpen om jouw spelervaring te verbeteren. We zullen belangrijke informatie delen en tips geven, zodat je optimaal kunt profiteren van alles wat rakoo casino aanbiedt.

Wat is Rakoo Casino?

Rakoo Casino is een online kansspelplatform dat spelers een breed scala aan spellen aanbiedt, variërend van traditionele tafelspellen tot moderne gokkasten. Dit casino heeft snel naam gemaakt in de gokgemeenschap dankzij de gebruiksvriendelijke interface en de vele speelmogelijkheden. Spelers worden verwelkomd met een aantrekkelijk bonusprogramma en regelmatig terugkerende promoties.

Het platform wordt geregeld gecontroleerd door de juiste autoriteiten om een veilige en eerlijke speelomgeving te garanderen. Het is belangrijk dat spelers weten dat hun gegevens veilig zijn en dat de spellen eerlijk verlopen. Rakoo Casino heeft verschillende licenties en certificeringen, wat bijdraagt aan de geloofwaardigheid van het casino en het vertrouwen van spelers.

In de onderstaande tabel vind je enkele belangrijke kenmerken van rakoo casino die de aantrekkelijke aspecten benadrukken:

Opgericht 2021
Licentie Maltese Gaming Authority
Spelaanbod 500+ spellen
Klantenservice 24/7 beschikbaar

Kenmerken van Rakoo Casino

Bij Rakoo Casino ligt de focus op de spelerservaring. Dit betekent dat ze voortdurend werken aan het verbeteren van hun aanbod en het toevoegen van nieuwe spellen. Spellen worden ontworpen door de beste softwareleveranciers in de branche, wat de kwaliteit van het spel garandeert. Spelers kunnen genieten van een breed scala aan thema’s en stijlen, zodat er voor elk wat wils is.

Een van de sterke punten van rakoo casino is hun klantenservice. Er is altijd ondersteuning beschikbaar via live chat, e-mail en telefoon. Spelers kunnen hun vragen snel en eenvoudig stellen, en de medewerkers staan klaar om te helpen met al hun problemen of zorgen. Dit draagt bij aan een langdurige en tevreden klantrelatie.

Spelen voor Echt Geld of voor Plezier?

Bij Rakoo Casino hebben spelers de keuze om voor echt geld of gewoon voor de lol te spelen. Het spelen voor echt geld biedt natuurlijk de spanning van het winnen van prijzen, maar het kan ook risicovol zijn. Spelers moeten rekening houden met hun budget en verantwoord spelen. Het goede nieuws is dat Rakoo Casino hen de mogelijkheid biedt om eerst de spellen gratis te proberen.

Deze gratis spellen zijn een uitstekende manier om de verschillende spellen en functies uit te proberen zonder enige financiële verplichtingen. Spelers kunnen hun vaardigheden oefenen, vertrouwd raken met de spellen en leren hoe ze winnen. Dit vormt een geweldige opstap naar het spelen voor echt geld, wanneer ze klaar zijn zich verder onder te dompelen in de spannende wereld van online gokken.

Game Variëteiten Beschikbaar

Rakoo Casino biedt een uitgebreide variëteit aan spellen waaruit spelers kunnen kiezen. De spellen zijn ingedeeld in verschillende categorieën, zoals gokkasten, tafelspellen, en live casino spellen. Dit zorgt ervoor dat er voor elke speler iets te ontdekken valt. Het casino werkt samen met toonaangevende softwareontwikkelaars om ervoor te zorgen dat de spellen van hoge kwaliteit zijn en een geweldige gebruikerservaring bieden.

Daarnaast worden regelmatig nieuwe spellen toegevoegd aan het aanbod, waardoor het voor spelers altijd spannend blijft om terug te keren. De populaire spellen en de nieuwste releases zijn gemakkelijk te vinden op de homepage, wat de navigatie vereenvoudigt. Hieronder vind je een lijst met populaire spelcategorieën die spelen bij rakoo casino aantrekkelijk maken:

  • Gokkasten
  • Tafelspellen
  • Live Casino
  • Jackpot Spellen
  • Arcade Spellen

Gokkasten

De gokkasten bij Rakoo Casino zijn zeer divers en bieden een scala aan thema’s en functies. Van klassieke fruitmachines tot moderne video slots met spannende bonusfeatures, er is voor elke speler wel iets te vinden. Spelers kunnen genieten van hun favoriete spellen, zoals Mega Moolah, Starburst, en Book of Dead. Elke gokkast heeft unieke functies waarmee spelers hun winkansen kunnen vergroten en extra spannende momenten kunnen ervaren.

Met de beschikbaarheid van progressieve jackpots zijn spelers ook in staat om enorme geldbedragen te winnen. Deze jackpots groeien naarmate spelers meer inzetten, wat betekent dat de prijzen voortdurend toenemen. Dit trekt veel spelers aan die dromen van het winnen van een levensveranderend bedrag.

Tafelspellen

Naast gokkasten heeft Rakoo Casino ook een uitgebreide selectie tafelspellen. Spelers kunnen genieten van klassieke spellen zoals roulette, blackjack, en baccarat. Deze spellen bieden kansen voor strategisch denken en geluksfactoren, wat ze bijzonder aantrekkelijk maakt voor ervaren gokkers. De graphics en animaties zorgen ervoor dat de spellen er prachtig uitzien en dat spelers zich kunnen onderdompelen in de actie.

Voor degenen die de voorkeur geven aan een traditionele speelervaring, zijn er ook live-dealer spellen beschikbaar. Dit biedt een unieke kans om met echte dealers te spelen vanuit het comfort van je eigen huis. Dit soort spellen maakt deel uit van de aantrekkingskracht van rakoo casino, omdat ze een authentieke casino-ervaring bieden.

Bonussen en Promoties

Een van de belangrijkste redenen waarom spelers zich inschrijven bij Rakoo Casino zijn de aantrekkelijke bonussen en promoties. Het casino biedt een scala aan welkomstbonussen voor nieuwe spelers, evenals doorlopende promoties voor bestaande klanten. Dit is een geweldige manier om extra speelgeld te verdienen en je winkansen te verhogen. Sommige van de bonussen zijn onder andere stortingsbonussen, gratis spins, en cashback-aanbiedingen.

Het is essentieel voor spelers om de voorwaarden van elke bonus goed door te nemen, zodat ze begrijpen hoe ze deze kunnen claimen en gebruiken. Om je een idee te geven van de verschillende soorten bonussen die je bij rakoo casino kunt verwachten, vind je hieronder een overzicht:

Bonustype
Beschrijving
Welkomstbonus Tot 100% op je eerste storting.
Gratis Spins Vrije spins op geselecteerde gokkasten.
Cashback Percentage van je verlies terugkrijgen.
Vriendenbonus Bonussen voor het uitnodigen van vrienden.

Hoe Welkombonus te Claim

Spelers die zich aanmelden bij Rakoo Casino kunnen eenvoudig gebruikmaken van de welkomstbonus. Volg de onderstaande stappen om je bonus te claimen:

  1. Registreer jezelf op de website van Rakoo Casino.
  2. Maak een storting om in aanmerking te komen voor de bonus.
  3. Controleer de voorwaarden voor de specifieke bonus.
  4. Krijg je bonus en begin met spelen!

Doorlopende Promoties

Naast de welkomstbonus zijn er ook doorlopende promoties beschikbaar voor bestaande spelers. Dit kunnen dagelijkse, wekelijkse of maandelijkse aanbiedingen zijn. Het is belangrijk dat je regelmatig de promoties pagina van Rakoo Casino controleert om niets te missen. Door het actief deelnemen aan deze aanbiedingen kun je nog meer extra’s verdienen en jouw speelervaring verbeteren.

Deze promoties kunnen variëren van extra bonusgeld tot exclusieve toernooien waarin spelers kunnen strijden om fantastische prijzen. Dit maakt het spelelement bij rakoo casino des te spannender en belonender.

Betalingsmethoden

Voor veel spelers is het belangrijk om te weten welke betalingsmethoden beschikbaar zijn bij Rakoo Casino. Het casino biedt een verscheidenheid aan opties voor zowel stortingen als opname, zodat iedereen een methode kan vinden die voor hun het meest geschikt is. De meest populaire betalingsmethoden zijn creditcards, e-wallets, en bankoverschrijvingen.

Bij het uitvoeren van transacties is veiligheid van groot belang. Rakoo Casino maakt gebruik van de nieuwste encryptietechnologieën om ervoor te zorgen dat alle gegevens van spelers veilig zijn. Bovendien zijn de betalingsprocessen snel en efficiënt, zodat spelers snel van hun winsten kunnen genieten zonder lange wachttijden. Hieronder hebben we een lijst met betalingsmethoden samengesteld die spelers kunnen gebruiken:

  • Visa
  • Mastercard
  • PayPal
  • Skrill
  • Bankoverschrijving

Storten en Opnemen

Het proces van storten en opnemen bij Rakoo Casino is eenvoudig en gebruiksvriendelijk. Spelers hoeven alleen maar naar de kassa te gaan, de gewenste betalingsmethode te kiezen en de instructies te volgen. Voor stortingen gaan de fondsen vrijwel onmiddellijk naar het spelersaccount, waardoor een vlugge start van het spel mogelijk is.

Voor opnames kunnen spelers ook kiezen uit verschillende methoden, maar het kan iets langer duren voordat de winsten op hun rekening staan, afhankelijk van de gekozen optie. Het casino zorgt ervoor dat alle opnames worden verwerkt volgens de geldende beveiligingsprotocollen. Dit benadrukt hun inzet voor een veilige en betrouwbare speelomgeving.

Klantenservice en Ondersteuning

Het is van cruciaal belang voor elke online casino om uitstekende klantenservice te bieden, en Rakoo Casino maakt hier geen uitzondering op. Spelers kunnen rekenen op een toegewijde klantenservice die 24/7 beschikbaar is via verschillende kanalen. Dit omvat live chat, e-mail, en telefoonondersteuning. Het doel van Rakoo Casino is om ervoor te zorgen dat alle spelers snel geholpen worden bij eventuele vragen of problemen.

De klantenservice medewerkers zijn goed opgeleid en beschikken over uitgebreide kennis van de spellen en de functies van het casino. Dit zorgt ervoor dat spelers naar tevredenheid worden geholpen, ongeacht hun probleem. Voor veel spelers is de kwaliteit van de klantenservice een belangrijke factor bij het kiezen van een online casino.

Veelgestelde Vragen

Sommige spelers hebben mogelijk vragen over hun ervaring bij Rakoo Casino. Om deze vragen te beantwoorden, heeft het casino een sectie met veelgestelde vragen (FAQ) gecreëerd. Deze sectie behandelt de meeste zorgen en vragen die nieuwe spelers zouden kunnen hebben voordat ze zich registreren of echt geld inzetten.

Van informatie over registratie tot betalingsmethoden en bonussen, de FAQ-sectie is een waardevolle bron. Dit helpt spelers ook om sneller antwoorden te krijgen, zodat ze meteen aan de slag kunnen met hun favoriete spellen.

Verantwoord Gokken

Bij rakoo casino wordt verantwoord gokken hoog in het vaandel staan. Het is belangrijk dat spelers weten wanneer ze moeten stoppen en hun speelgedrag in de gaten houden. Dit casino biedt verschillende hulpmiddelen die spelers helpen om controle te houden over hun gaming ervaring. Van beperkingen voor stortingen tot de mogelijkheid om tijdelijk uit te schakelen, Rakoo Casino wil ervoor zorgen dat hun spelers veilig en verantwoord blijven gokken.

Het casino werkt samen met verschillende organisaties die zich inzetten voor verslavingspreventie. Dit biedt spelers toegang tot hulpbronnen en ondersteuning als ze nodig hebben bij hun gokgedrag. Dit laat zien dat Rakoo Casino zich verantwoordelijk opstelt tegenover zijn spelers en een veilige speelomgeving biedt.

Conclusie

In conclusie, Rakoo Casino biedt spelers een spannende en veilige gokkervaring. Met een breed scala aan spellen, aantrekkelijke bonussen en een uitstekende klantenservice, hebben ze veel te bieden voor nieuwkomers en ervaren spelers. Het is belangrijk om goed geïnformeerd te zijn voordat je begint met spelen, en deze gids biedt veel inzicht in dit unieke online casino.

Of je nu kiest om voor echt geld te spelen of gewoon voor de lol, Rakoo Casino zorgt ervoor dat jouw speelervaring gezellig en boeiend blijft. Ga de spannende wereld van rakoo casino verkennen en ontdek jouw favoriete spellen vandaag nog!

Leave a Comment

Your email address will not be published. Required fields are marked *