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 7 Beste Online Casinos in België voor 2023!_6 - premier mills

Ontdek de 7 Beste Online Casinos in België voor 2023!_6

Ontdek de 7 Beste Online Casinos in België voor 2023!

De wereld van online gokken heeft de afgelopen jaren een enorme evolutie doorgemaakt, en België is geen uitzondering. Met de opkomst van digitale platforms is het voor spelers gemakkelijker dan ooit geworden om toegang te krijgen tot een breed scala aan casinospellen vanuit het comfort van hun eigen huis. De casino belgium online industrie biedt nu tal van mogelijkheden, variërend van traditionele tafelspellen tot moderne gokkasten. In dit artikel zullen we de beste online casino’s in België voor 2023 verkennen.

Online gokken in België is gereguleerd door de Kansspelcommissie, wat betekent dat spelers kunnen genieten van een veilige en eerlijke speelmogelijkheid. Deze regulering draagt bij aan een transparante speelomgeving waar spelers veilig hun geluk kunnen beproeven. Bovendien zijn veel van deze platforms uitgerust met geavanceerde technologieën, die een meeslepende ervaring garanderen met hoge kwaliteitsvisuals en geluidseffecten.

Met allemaal zoveel opties, kan het moeilijk zijn om te beslissen waar te spelen. Dit artikel heeft als doel u te helpen de juiste keuze te maken door een overzicht te geven van de beste online casino’s in België. We hebben elk platform grondig onderzocht en beoordeeld op basis van verschillende factoren, waaronder spellenaanbod, bonussen en klantenservice.

Of u nu een ervaren gokker bent of net begint, deze gids biedt waardevolle inzichten die u zullen helpen bij het navigeren door de wereld van casino belgium online. Laten we dus zonder verder oponthoud de top zeven online casino’s in België voor 2023 ontdekken!

1. Casino777: De Nummer Één Online Bestemming

Casino777 is een van de meest populaire online casinoplatforms in België. Het biedt een breed scala aan spellen, waaronder gokkasten, tafelspellen en live dealer opties. Wat dit casino echt onderscheidt, is de gebruiksvriendelijke interface en het aantrekkelijke design, dat spelers meteen aanspreekt. Bovendien staat Casino777 bekend om zijn uitstekende klantenservice, die 24/7 beschikbaar is om spelers te helpen met eventuele vragen of problemen.

Een van de belangrijkste kenmerken van Casino777 is de royale welkomstbonus. Nieuwe spelers kunnen profiteren van een aantrekkelijke bonus op hun eerste storting, wat hen de kans geeft om meer spellen te verkennen zonder hun geld direct te riskeren. Dit maakt de toegang tot de wereld van casino belgium online nog aantrekkelijker voor nieuwkomers. Hieronder vindt u een overzicht van het spelaanbod van Casino777.

Soort Spel
Aantal Beschikbare Spellen
Gokkasten 500+
Tafelspellen 50+
Live Casino 30+

De Pluspunten van Casino777

Een van de grootste voordelen van spelen bij Casino777 is hun breed scala aan betaalmethoden. Spelers kunnen kiezen uit verschillende opties, zoals kredietkaarten, e-wallets en bankoverschrijvingen. Dit zorgt ervoor dat iedereen een betaalmethode kan vinden die hen het beste uitkomt. Daarnaast zijn de stortings- en opnameprocessen eenvoudig en snel, wat de algehele spelervaring verbetert.

Bovendien organiseert Casino777 regelmatig promoties en toernooien. Dit biedt extra kansen voor spelers om prijzen te winnen en hun spelervaring te verbeteren. Het is een platform dat zowel nieuwe als terugkerende spelers een unieke ervaring biedt.

Casino777 Mobiele Versie

Voor diegene die onderweg willen gokken, heeft Casino777 een mobiele versie van hun platform ontwikkeld. Deze versie is geoptimaliseerd voor mobiele apparaten en biedt een naadloze speelervaring. Spelers kunnen gemakkelijk hun favoriete spellen vinden en spelen waar ze ook zijn. Dit maakt het nog handiger om te genieten van casino belgium online.

De mobiele app van Casino777 is beschikbaar voor zowel iOS- als Android-apparaten. Dit biedt spelers de vrijheid om hun geluk te beproeven wanneer het hen uitkomt. De interface is eenvoudig te navigeren, en alle functies van de desktopversie zijn behouden.

2. Unibet: Een Betrouwbare Speler in de Markt

Unibet is een andere grote naam in de online gokwereld, met een sterke aanwezigheid in België. Het platform biedt een uitgebreide selectie van casinospellen en is bekend om zijn gebruiksvriendelijke interface en uitgebreide live dealer ervaring. Unibet trekt veel aandacht met zijn aantrekkelijke bonussen en promoties die regelmatig worden aangeboden, die spelers aanmoedigen om terug te keren voor meer actie.

Naast de casinospellen biedt Unibet ook een sportsbook aan, waardoor spelers kunnen gokken op sportevents. Dit veelzijdige aanbod maakt Unibet tot een ideale keuze voor zowel casinospelers als sportliefhebbers. De mogelijkheden zijn eindeloos en dit zorgt ervoor dat spelers zich nooit vervelen.

  • Gebruiksvriendelijke interface
  • Uitgebreid spelaanbod
  • Aantrekkelijke bonussen en promoties
  • 24/7 klantenservice

Unibet Klantenservice

Unibet staat bekend om zijn uitstekende klantenservice. Spelers kunnen 24/7 terecht bij de klantenservice met vragen of problemen, en dit wordt zeer gewaardeerd door gebruikers. Of het nu gaat om vragen over stortingen, opnameprocessen of technische problemen, het team is altijd bereid te helpen.

Er zijn verschillende manieren om contact op te nemen met de klantenservice, waaronder live chat, e-mail en telefonische ondersteuning. Dit zorgt ervoor dat spelers altijd snel geholpen worden, ongeacht het probleem dat ze tegenkomen.

Veiligheid en Betrouwbaarheid bij Unibet

Veiligheid is een topprioriteit voor Unibet, dat er alles aan doet om de gegevens en transacties van zijn spelers te beschermen. Het platform maakt gebruik van geavanceerde encryptietechnologieën om ervoor te zorgen dat alle persoonlijke informatie veilig is. Spelers kunnen met een gerust hart genieten van hun gokervaring, wetende dat hun gegevens goed worden beschermd.

Bovendien is Unibet volledig gelicentieerd door de Belgische Kansspelcommissie, wat betekent dat ze voldoen aan de strenge normen die zijn vastgesteld voor online gokken in België. Dit geeft spelers de zekerheid dat ze zich in een veilige omgeving bevinden.

3. Betway: Innovatie en Avontuur

Betway is een innovatief online casino dat bekendstaat om zijn uitgebreide aanbod en moderne benadering van online gokken. Het platform biedt een breed scala aan spellen, evenals aantrekkelijke bonussen en promoties. Een van de belangrijkste kenmerken van Betway is de focus op gebruiksvriendelijkheid, waardoor het casino toegankelijk is voor zowel beginnende als ervaren spelers.

De live dealer sectie bij Betway is bijzonder populair, omdat deze spelers de kans biedt om interactie te hebben met echte dealers in real-time. Dit verhoogt de spanning en maakt het gokkansen nog realistischer. Spelers kunnen genieten van verschillende varianten van klassiekers zoals blackjack en roulette met live dealers die de actie leiden.

  1. Sterke focus op gebruiksvriendelijkheid
  2. Uitgebreide live dealer sectie
  3. Aantrekkelijke welkomstbonussen
  4. Regelmatige promoties

Betway Bonussen en Promoties

Betway biedt zijn spelers regelmatig spannende bonussen en promoties, wat het spelen bij dit casino nog aantrekkelijker maakt. Bijvoorbeeld, nieuwe spelers kunnen profiteren van een flinke welkomstbonus op hun eerste storting, wat hen de kans geeft om hun bankroll te vergroten en meer spellen te verkennen.

Daarnaast zijn er regelmatig doorlopende promoties, waaronder gratis spins en cashback-aanbiedingen voor loyaliteit. Dit zorgt ervoor dat spelers altijd iets nieuws en spannends kunnen verwachten bij Betway.

Mobiele Ervaring bij Betway

Betway begrijpt het belang van mobiel gokken en heeft daarom een geavanceerde mobiele app ontwikkeld. Deze app is beschikbaar voor zowel iOS- als Android-gebruikers en biedt een volledige selectie van spellen, evenals toegang tot live weddenschappen en casinospellen. De app is gebruiksvriendelijk en stelt spelers in staat om gemakkelijk te navigeren en te spelen wanneer ze maar willen.

Spelers kunnen profiteren van dezelfde bonussen en promoties die beschikbaar zijn op de desktopversie, wat een naadloze ervaring garandeert. De mobiele app van Betway is een uitstekende keuze voor mensen die onderweg willen gokken en hun favoriete spellen altijd binnen handbereik willen hebben.

4. Napoleon Games: De Belgische Troef

Napoleon Games is een Belgische online casino dat zijn spelers een unieke speelervaring biedt. Dit casino is volledig gereguleerd door de Belgische Kansspelcommissie, waardoor spelers met vertrouwen kunnen spelen. Met een focus op lokale spellen en promoties, heeft Napoleon Games zich onderscheiden als een favoriet onder Belgische gokkers.

Het spelaanbod omvat een verscheidenheid aan gokkasten, tafelspellen en een uitgebreide live dealer sectie. Spelers kunnen genieten van een authentieke casino-ervaring vanuit hun eigen huis, met dealers die alles in real-time aanbieden. Napoleon Games is ook bekend om zijn aantrekkelijke bonussen, specifiek gericht op de Belgische markt.

Speeltype
Populaire Spellen
Gokkasten Starburst, Book of Dead
Tafelspellen Roulette, Blackjack
Live Dealer Live Roulette, Live Blackjack

De Voordelen van Napoleon Games

Een van de voordelen van Napoleon Games is hun uitstekende klantenservice. Spelers kunnen gemakkelijk contact opnemen met het klantenserviceteam via live chat of e-mail, en het team is meestal snel met antwoorden. Dit is cruciaal voor een geweldige speelervaring, vooral voor nieuwe spelers die mogelijk vragen hebben.

Daarnaast biedt Napoleon Games een breed scala aan betaalmethoden, zodat spelers snel en veilig hun transacties kunnen uitvoeren. Het is een platform dat gebruiksvriendelijk is en zich richt op de wensen en behoeften van hun spelers.

Speciale Bonussen voor Belgische Spelers

Napoleon Games onderscheidt zich door het aanbieden van speciale bonussen en promoties voor Belgische spelers. Dit omvat dagelijkse en wekelijkse aanbiedingen die spelers in staat stellen om hun speelsessies te verbeteren. Nieuwe spelers kunnen profiteren van een aantrekkelijke welkomstbonus die hen aanmoedigt om verschillende spellen uit te proberen.

Bovendien organiseert Napoleon Games regelmatig toernooien, waar spelers de kans krijgen om prijzen te winnen en zich met elkaar te meten. Dit zorgt voor een competitieve sfeer en verhoogt de spanning tijdens het spelen.

5. Kroon Casino: Een Online Favoriet

Kroon Casino is een ander uitstekend platform dat een verscheidenheid aan spellen biedt voor Belgische spelers. Dit casino heeft een sterke reputatie verworven door zijn robuuste spelaanbod en gebruiksvriendelijke interface. Spelers kunnen genieten van populaire gokkasten, tafelspellen en live dealer spellen, wat zorgt voor een veelzijdige speelervaring.

Een van de kenmerken van Kroon Casino is de focus op kwaliteit. Het casino werkt samen met enkele van de beste spelontwikkelaars in de industrie, waardoor spelers toegang hebben tot de nieuwste en meest innovatieve spellen. Dit betekent dat er altijd iets nieuws en spannends te ontdekken valt op het platform.

  • Hoogwaardige spellen van topontwikkelaars
  • Aantrekkelijke bonussen en loyaliteitsprogramma
  • Uitstekende klantenservice
  • Mobiele compatibiliteit

Kroon Casino Klantenservice

De klantenservice van Kroon Casino is beschikbaar via verschillende kanalen, waaronder e-mail en live chat. Het team is goed opgeleid en in staat om snel oplossingen te bieden voor veelvoorkomende vragen en problemen. Dit maakt het voor spelers eenvoudig om hulp te krijgen wanneer dat nodig is.

Een sterke klantenservice is een essentieel onderdeel van de algehele speelervaring, vooral voor nieuwe spelers die niet bekend zijn met het platform. Kroon Casino zorgt ervoor dat spelers zich gewaardeerd voelen en hun problemen serieus worden genomen.

Welkomstbonus bij Kroon Casino

Kroon Casino biedt nieuwe spelers een aantrekkelijke welkomstbonus die hen helpt om hun speelervaring te optimaliseren. De bonus kan bestaan uit een combinatie van free spins en bonusgeld, waardoor spelers meer kansen hebben om hun favoriete spellen uit te proberen.

Daarnaast zijn er lopende promoties en aanbiedingen voor bestaande spelers, wat zorgt voor een stimulerende speelomgeving. Dit bevordert de loyaliteit onder spelers en houdt hen terugkomen voor meer.

6. Bwin Casino: Een Veelzijdige Keuze

Bwin Casino is een veelzijdig platform dat een scala aan casinospellen en sportweddenschappen aanbiedt. De online casino biedt een gebruiksvriendelijke interface en toegankelijkheid voor spelers van alle niveaus. Dit maakt het een populaire keuze voor zowel nieuwe als ervaren gokkers die op zoek zijn naar diversiteit in hun speelmogelijkheden.

Bwin heeft een rijke geschiedenis in de gokindustrie en heeft zichzelf bewezen als een betrouwbaar casino. Het spelaanbod omvat een breed scala aan gokkasten, tafelspellen en live dealer opties. Het is een plek waar spelers altijd spannende ervaringen kunnen verwachten.

  1. Gemakkelijk in gebruik
  2. Breed scala aan betaalopties
  3. Regelmatige promoties
  4. Compatibiliteit met mobiele apparaten

Bwin’s Klantenservice

Bwin zorgt voor een uitstekende klantenservice, wat essentieel is voor een positief speelervaring. De klantenservice is 24/7 bereikbaar en biedt ondersteuning via live chat en e-mail. Dit betekent dat spelers op elk moment van de dag antwoord kunnen krijgen op hun vragen.

De uitgebreide klantenservice maakt het voor spelers eenvoudig om hulp te krijgen met hun vragen, van stortingen tot spelregels. Dit draagt bij aan een algehele positieve ervaring bij Bwin en zorgt ervoor dat spelers zich gewaardeerd voelen.

Aantrekkelijke Bonussen en Promoties

Bwin biedt verschillende bonussen die aantrekkelijk zijn voor nieuwe en terugkerende spelers. Van welkomstbonussen tot gratis spins en cashback aanbiedingen, er is altijd iets dat het gokken nog interessanter maakt. Deze bonussen zijn een geweldige manier om de speelkansen van spelers te vergroten en hen te belonen voor hun loyaliteit.

Daarnaast zijn er ook seizoensgebonden promoties die spelers in staat stellen om nog meer waarde uit hun spelervaring te halen. Dit zorgt ervoor dat Bwin altijd een interessante optie blijft voor spelers.

7. LeoVegas: De Mobiele Gigant

LeoVegas is een van de toonaangevende mobiele casino’s in Europa en heeft zijn weg gevonden naar de Belgische markt. Het casino biedt een uitgebreid spelaanbod met een sterke focus op mobiele optimalisatie. Dit maakt LeoVegas tot een uitstekende keuze voor spelers die graag hun favoriete spellen onderweg willen spelen.

De ervaring op mobiele apparaten is naadloos en spelers kunnen genieten van dezelfde functionaliteit als op de desktopversie. Er zijn talloze gokkasten, tafelspellen en live dealer spellen beschikbaar, wat zorgt voor eindeloos veel speelplezier. LeoVegas biedt regelmatig bonussen die specifiek zijn gericht op mobiele spelers, wat de ervaring nog beter maakt.

Speeltype
Populaire Games
Gokkasten Gonzo’s Quest, Mega Moolah
Tafelspellen Live Roulette, Baccarat
Live Dealer Live Poker, Live Blackjack

Mobiele Bonussen bij LeoVegas

Bij LeoVegas ontvangen mobiele spelers regelmatig unieke bonussen die hen aanmoedigen om gebruik te maken van de mobiele platformen. Dit omvat welkomstbonussen en lopende promoties die speciaal zijn ontworpen voor mobiel gebruik. Het doel is om de algehele ervaring van spelers te verbeteren en hen te voorzien van extra waarde tijdens het gokken.

Dit maakt LeoVegas een aantrekkelijke optie voor iedereen die de voorkeur geeft aan mobiel gokken en biedt hen de mogelijkheid om te genieten van hun favoriete spellen onderweg.

De Toekomst van LeoVegas in België

Met de groeiende populariteit van online gokken in België, lijkt LeoVegas goed gepositioneerd om verder te groeien in de Belgische markt. Met een sterke focus op mobiele ervaringen en innovatieve spellen, blijft het platform aantrekkelijk voor een breed publiek. Het biedt een spannende en dynamische gokervaring die spelers aantrekt.

Daarom zijn er veel redenen om LeoVegas in de gaten te houden als je op zoek bent naar een casino belgium online ervaring die je niet wilt missen.

Conclusie

Online gokken in België biedt een opwindende en boeiende ervaring voor spelers. De top zeven online casino’s die we in deze gids hebben besproken, bieden een scala aan opties die zijn afgestemd op verschillende voorkeuren en speelformaten. Of je nu de voorkeur geeft aan klassiekers zoals blackjack, innovatieve gokautomaten of live dealer spellen, er is voor elk wat wils.

Het is belangrijk om goed geïnformeerd te zijn voordat je begint met gokken. De platforms die in deze gids zijn besproken, zijn betrouwbaar en bieden een veilige omgeving voor spelers. Neem de tijd om de verschillende mogelijkheden te verkennen, en ontdek de wereld van casino belgium online die klaarstaat om ontdekt te worden in 2023!

Leave a Comment

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