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} Какие даются бонусы в онлайн-казино в сети и каким способом их отработать? - premier mills

Какие даются бонусы в онлайн-казино в сети и каким способом их отработать?

Какие даются бонусы в онлайн-казино в сети и каким способом их отработать?

Проявляя энтузиазм, игроки онлайн-казино вулкан казино зарабатывают вознаграждения. Ихняя включение позволяет поднять шанс на выигрывание за посредством вливания дополнительного средств. Значительно также растет продолжительность игрового процесса. Новички геймеры способны с применением дополнительные средства оценить возможности казино онлайн и изучить особенности предложенных игр. В случае удачного отыгрыша бонуса будет шанс достичь прибыли без использования личных денег.

Заметную выгоду приобретают и непосредственно казино. Раздавая бонусы, они завлекают новоприбывших игроков и удерживают интерес постоянных клиентов. Такое ведет к расширению аудитории и обеспечению стабильной выгоды. Внизу представлено описание наиболее популярных вознаграждений в игорных заведениях типа казино онлайн в интернете.

Вступительные и регулярные премии за вклады.

Внесение аккаунта поощряется в каждом из топовых онлайн-казино. На начальные депозиты новым гостям вручается бонусный пакет. Таким образом обозначается пакет, содержащий финансовых ресурсов и безвозмездных спинов. В отдельных интернет игровых клубах с подарками новичкам предоставляются только средства. Количество их объем обусловлено из-за объема внесенной денег. Когда обширнее положить капитала на аккаунт, тем крупнее будет денежная надбавка. Следует иметь в виду, что у всех начальных бонусов есть ограничение, выше которого дополнительные средства не зачисляются. Количество фриспинов остается на усмотрение руководства игорного дома (казино онлайн или другого).

Обычно вступительный пакет можно взять при первые некоторые пополнений счета. Процент монетарной надбавки за каждый взнос, обычно, разнится. Точные условия необходимо проверять на вкладке с вступительным бонусом. Подробный список процедур для получения в пользование начального бонуса выглядит следующим образом:

  1. Открывается официальный ресурс или актуальное зеркало казино вулкан.
  2. Осуществляется создание персонального профиля.
  3. Вносится вклад не менее размера, предусмотренной в предложении.
  4. Активируется клавиша «Запустить» на рекламе с вознаграждением для новичков.

По завершении всех требуемых операций на дополнительный баланс приходит приветственный приз. С его внедрением будет удобнее стартовать в казино, имея в запасе дополнительный капитал. В конкретно, начальный пакет позволит изучить основе работы одноруких бандитов и специфику начисления выплат. Эта конкретная информация даст выгоду со временем, в случае, если произойдут пари с персонального счета.

Постоянные игроки казино вулкан вдобавок имеют возможность получать вознаграждения за депозит счета. Процент финансовой премии снижается, но вознаграждение выдается стабильно. Для его достижения необходимо делать пополнение на сумму, обозначенную в правилах акции. Если оставить без внимания данное условие, вознаграждение не поступит. Зачастую регулярным игрокам выдаются исключительно дополнительные фонд, — безвозмездные спины не предлагаются. Указанное поощрение тоже нужно включить в акционном отделе. Необходимо учесть, что в определенных игорных домах такой презент полагается только за вклады, совершенные в установленные сроки.

Кэшбэк — возврат части потерянных финансов.

Беттинг в оплачиваемом режиме связаны с денежными опасностями. Чтобы игроки интернет-казино с поощрениями не утратили все деньги до последнего цента, администраторы ввели кешбэк. Это компенсирующее поощрение, возвращающее незначительный процент потерянных средств. Часто объем кэшбэка связан к уровню геймера в системе поощрений. Как престижнее уровень, тем значительнее предусмотрена компенсация. Принимается во внимание также объем перенесенных утрат.

Кешбэк начисляется только за игру в вулкан казино на настоящие деньги. Взяты в расчет учитываются вложения, проведенные в течение определенный временной период отрезок. Определенные периоды указываются в правилах предложения. После завершения данного времени компенсационные деньги переводятся на бонусный счет. Подобно и основная часть других подарков в казино, их требуется выполнить вейджер перед снятием денег. Требование для восполнения кешбэка обычно определяется минимальный. Это повышает шансы на этого удаление из структуры.

Каким образом регламент, возврат средств выплачивается исключительно если, в случае, если проигрыши игрока превысили размер дохода. В случае идентичности указанных метрик, или если объем дохода больше, кэшбэк бонус не предоставляется. Выплата возврата осуществляется без участия человека — профессионалы игрового клуба самостоятельно не выполняют вычисления. В определённых игорных домах, вроде казино вулкан, кешбэк приходит по результатам раунда за каждый день. В конкретном случае бонусные средства делаются открыты в 00:00.

Необходимо принимать во внимание, что возврат средств зачастую предоставляется за ставки в конкретных игровых автоматах. Как правило это слоты и краш-автоматы. На определенных платформах рассматриваются также в учет исходы беттинга в столовых виртуальных играх и за лайв-столами. Данный аспект необходимо уточнять в условиях промоакции. Там же необходимо указать указаны периоды, в которые следует отыграть кэшбэк-бонус. Зачастую это не дольше семи дней. Если не управиться за предусмотренный период, возврат средств отменяется.

Плюс вознаграждение по купон-коду

В основной массе ТОПовых онлайн-казино, например, казино вулкан, предусмотрена возможность получения особого поощрения, не предусмотренного в главной системе бонусов. Чтобы его включения нужно использовать код купона, актуальный на данное время. Данная небольшая цепочка, вмещающая внутрь несколько знаков и цифр. Обычно её следует вписать в соответствующем регистрационном поле поле при создания аккаунта. Комбинация вставляется вовнутрь незаполненном поле. Когда программа активна, бонус поступает мгновенно по завершении прохождения регистрационного процесса и подтверждения данных для связи.

В определённых игорных заведениях (вулкан казино и других) промокод можно активировать в разделе с представленными предложениями. В данном варианте подарок смогут заполучить все посетители, в том числе долго активные в игорном доме. Найти промокод для использования в онлайн казино с вознаграждениями доступно многочисленными путями:

  • с помощью аккаунты площадки в популярных соцсетях и мессенджерах;
  • на сайтах включающих описанием конкретной сайта;
  • в уведомлениях от менеджмента, доставляемых на e-mail (рассылка паролей запланирована только для постоянных пользователей);
  • во поисковых системах.

Полученный купон нужно перенести, а затем вписать в соответствующей строке на сайте казино онлайн. Когда вознаграждение не был получен, вероятно, комбинация истекла. Потребуется отыскать новейший купон на сегодня. Необходимо учитывать, что какая-либо вариация может применяться только раз. В будущем для включения следующих призов необходимо искать другие промо-коды. Создавать учетную запись повторно в игорном заведении, с намерением еще раз использовать активационный код, недопустимо. За это такое накладывается мгновенный блокировка на аккаунт.

В форме приза за введение промо-кода выдаются разные бонусы. Такое возможно, будут финансы, безвозмездные спины, баллы лояльности либо коэффициенты для распространённых видеослотов. Определенный тип бонуса является на дискрецию менеджмента казино казино онлайн. Выяснить это до запуском можно у экспертов техподдержки посредством интернет-чата.

Кручения Барабана Удачи

За внесение средств в казино участники вознаграждаются не только средствами и безвозмездными спинами. Они дополнительно имеют возможность предоставляться раскрутки Колеса Удачи. Чтобы данного нужно пополнить баланс на заданную в промоакции сумму. Как зачастую, чем обширнее положить капитала на счет, тем значительнее будет количество раскруток. Цена одного спина указывается в положениях акции казино вулкан. Данное позволяет с самого начала определить, сколько будет получено раскруток за конкретную сумму. На отдельных платформах раскрутки Колеса Фортуны становятся возможны после приобретения за деньги за деньги. Несмотря на отдельные различия, такие предложения аналогичны между собою.

Кручения Колеса Судьбы способны предоставлять всевозможные призы, например:

  • конкретную количество финансовых активов;
  • комплект бесплатных вращений;
  • поинты лояльности, какие допустимо конвертировать на капитал;
  • коэффициенты для определённых слотов.

Подробный реестр премий, какой способны предоставить начала, описывается в правилах промоакции. Запускаются спины в единственный нажатие. Результаты объявляются немедленно — по окончании остановления барабана. Предварительно предсказать исход вращений непредсказуемо — Колесо Фортуны работает на особом механизме, производящем случайные итоги. Чтобы расширения возможности победы эксперты рекомендуют покупать больше спинов. Призы, выданные по итогам спинов, остаются у участника, независимо от дальнейших исходов. В случае если это будут деньги либо бесплатные вращения, данные предложения нужно отыгрывать, как типичные вознаграждения.

В некоторых игорных заведений спины Колеса Удачи могут предлагаться безвозмездно в рамках специальной акции. Часто раздача спинов происходит с фиксированной регулярностью, скажем, раз в день. У участников есть шанс приобрести старт Колеса Удачи, в даром, а потом выиграть значимый трофей, не применяя личный счет. Шанс успеха по исходам спина составляет пятьдесят на пятьдесят.

Иные категории вознаграждений в казино

Ранее указаны наибольшие распространенные категории подарков в игорных заведениях онлайн. Вдобавок к этих, способны добавляться также некоторые вознаграждения. Например, в честь дня рождения клиентов многие платформы вручают персональные подарки. Ихние вид и объем устанавливаются всяким заведением самостоятельно. Обычно в этом контексте берется в расчет интенсивность участия пользователя. Когда его высокий, начисляется щедрый подарок со стороны руководства. Возможно выдаваться деньги, безвозмездные спины и иные призы.

Для заполучения бонуса на дня ангела клиентам казино необходимо обязательно осуществить подтверждение личности. Данная процесс нужна для определения даты появления на свет юзера. Подтверждение желательно пройти заранее, поскольку итоги этого процесса часто становятся ясны только спустя некоторое время. Необходимо также показывать активность перед праздником — увеличивать аккаунт и осуществлять денежные ставки. Когда выполнить все условия предложения, бонус на юбилей будет зачислен автоматически.

На определенных сайтах есть возможность взять финансовое бонус за депозитирование баланса или снятие средств с использованием конкретного платежного сервиса. Её имя отмечается в акционном секции. За любую транзакцию с использованием данного провайдера геймер получает маленький процент. Игровые заведения запускают аналогичную акцию только если оформили контракт на продвижение заданной платежной системы. Следовательно, от любой монетарной операции сервису тоже поступает доход.

Кроме того во некоторых казино предусмотрены вознаграждения за выполнение активных активностей на соцсетях. Каким способом правило, геймерам необходимо выполнить одной из задач:

  • разместить перепубликацию публикации у себя на странице;
  • оформить подписку на трансляцию или присоединиться в сообщество;
  • Наша команда недавно побывали в указанное виртуальное казино и остались удивлены его игровым каталогом. Графика и музыка отличные, что создает захватывающую атмосферу игры. Предлагаемые бонусы и акции действительно щедры и разнообразны. Клиентская поддержка также на высоте, всегда готова помочь с любыми вопросами. Советуем всем поклонникам азартных игр попробовать это казино!
  • дать лайк.

В доказательство личных шагов игроки высылают снимки экрана менеджменту казино. После их изучения и оценки задач премии переводятся пользователям. Эти могут выдаваться бесплатными вращениями, бонусными баллами и другими типами стимулов. Чтобы не утратить полученные призы, необходимо не удалять итоги своей работы в социальных медиа спустя время.

Значимые поощрения за деятельность.

Вдобавок к акционной программы, в игровом клубе действует система лояльности. В случае если стать данным регулярным членом, можно зарабатывать дополнительные презенты и бонусы. Ихние тип и размер определяются от полученного ранга. Насколько больше подняться на ступеням системы лояльности, то значительнее будут поступать вознаграждения и преимущества. В сумме этих ступеней в плане может существовать от 3 до 15, в соответствии с выбранной платформы. За наивысшие уровни часто предоставляются такие преимущества:

  • расширенный бонусный возврат.
  • повышенные пределы на снятие средств.
  • значительные проценты за внесение счетов;
  • содействие личного менеджера;
  • ускоренная обработка запросов на выплаты.

Всеобъемлющий перечень даров и бонусов необходимо проверять в правилах программы лояльности. Там же ещё указывается, сколько поинтов необходимо заработать для достижения всякого статуса. Очки присваиваются, обычно, за выполнение оплачиваемых ставок на определенные суммы. Когда только собирается нужное число баллов, ранг пользователя самостоятельно поднимается. Уведомлять о данном вопросе в техническую поддержку вулкан казино не требуется. В ряде игровых клубах присвоение баллов осуществляется за увеличение счёта на определённые денежные средства.

Заработанные очки геймеры способны превратить на вознаграждения. Соответствующая действие зачастую выполняется в личном профиле. Наивысший лучший обменный тариф получают посетители с престижными статусами. Взяться к прокачиванию своего рейтинга можно с начальных суток азартных игр в казино. Базовый статус в многих случаев присваивается после создания индивидуального профиля. Он обеспечивает вход к несложным подаркам и преференциям. Последующие статусы уже присваиваются за регулярное проявление вовлеченности.

Следует иметь в виду, что полученный ранг в многих онлайн-игорных заведений предоставляется не навсегда. С течением времени он может быть понижен, если сократить участие или полностью прекратить. Следовательно, накопленные вознаграждения и привилегии тоже окажутся неактивны. Чтобы предотвращения таких результатов следует чаще совершать динамичные шаги в казино.

Каким образом отыграть вознаграждения

Каждые премии и призы, предлагаемые по схеме лояльности, подлежат обязательному вейджеру в казино онлайн. Без выполнения исполнения этого требования снятие призовых денег будет недоступен. Отыгрываются вознаграждения на игорном заведении по легкой методике. Необходимо поставить несколько пари с задействованием предоставленных денег. О количестве вращений удастся узнать через ставочному требованию. Когда этот коэффициент составляет х35, значит, подарочные средства нужно будет отыграть в игровых слотах не менее 35 раз. Средства, какие сохранятся после отыгрыша, переведутся на аккаунт клиента.

В условиях промоции, вдобавок к вейджера, нередко обозначается стоимость вращений. Это значит, что прокручивать премии нужно только на обозначенную сумму. Провайдер также может обозначить в регламентах наименования аппаратов. В данной обстановке использовать другие игровые устройства нельзя, иначе руководство не учтет исходы отыгрыша. Особое фокус следует обратить периодам предложения. Если не получится осуществить условия отыгрывания в указанный срок, бонус будет аннулирован.

Использование фриспинов выполняется немного по-другому. Вначале данные следует задействовать в указанных слотах. Далее полученные деньги отыгрываются с заданным коэффициентом отыгрыша. Для возврата, в большинстве случаев, наконец разрешается подбирать любые аттракционы. Точные условия нужно выяснять в правилах акции.

Отыграться станет проще, если использовать призы с требованием по ставкам ниже х35. В данном варианте возможности на удачное применение бонуса будут существенными. Когда выше ставка, тем шанс положительного исхода слабее. Важным плюсом ещё является способность подбора развлекательных автоматов для игры. Данное позволит самостоятельно выбрать максимально прибыльные слоты из ассортимента. Если такая опция недоступна, не следует унывать. Можно заранее изучить промо слоты в демонстрационном режиме, чтобы измерить их отдачу и выбрать эффективную тактику.

При отсутствии условий вейджера бонусы в игорных заведениях выдаются изредка. Такое объясняется неимением прибыли для самих площадок. Быть отсутствующим условие отыгрыша возможно исключительно у определённых бонусов, например, сувенира на именинный день или обратного начисления. Как обыкновение, эти промоции могут себе позволить исключительно в самом деле передовые игровые дома, например, вулкан казино.

Leave a Comment

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