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} "1xbet App 1xbet Mobile Descargar 1xbet Apk Para Iphone Y Android 1xbet Com - premier mills

“1xbet App 1xbet Mobile Descargar 1xbet Apk Para Iphone Y Android 1xbet Com

1xbet App Download Bangladesh Apk Latest Ver The Spring, 2025″

Si eres fanático de fútbol, el basket, el tenis u otros deportes, podrás seguir los partidos en tiempo actual desde tu smartphone. Una vez la cual hayas descargado 1xBet con comentarios, el nuevo paso es instalarlo en tu teléfono Android. Si estás familiarizado con el proceso de instalación de archivos apk, genial. Guardar una nombre, correo electrónico y sitio internet en este navegador para la próxima vez que haga un comentario.

La interfaz basic e intuitiva te permite navegar fácilmente entre las muchas ofertas del mercado, los juegos de casino en línea y las selecciones de gestión de cuentas. Puedes golpear 1xBet directamente desde el sitio website de 1xBet. Después de completar are generally descarga, elimina un archivo de instalación y sigue todas las instrucciones en monitor para proceder que incluye la instalación. Para garantizar que halla la mejor experiencia al trabajar disadvantage la aplicación 1xBet en tu teléfono Android, aquí tienes un resumen con los requisitos mínimos que tendrías que cumplir. Estos requisitos se aplican a new tu sistema operante, memoria RAM, espacio de almacenamiento, conexión a internet, resolución de pantalla, permisos y actualizaciones. Al asegurarte de o qual tu smartphone cumple con estos requisitos, podrás disfrutar plenamente de todas las impresionantes funciones o qual ofrece la aplicación 1xBet.

Bet Para Google Android — Cómo Descargarse La Aplicación

Mientras que los angeles versión móvil ze puede acceder the través del browser de internet, una aplicación funciona trouble conexión y ofrece mi experiencia más íntegral en general. En resumen, la aplicación 1xBet es imprescindible em virtude de los amantes para las apuestas para América Latina. Ofrece una interfaz fácil de usar, características avanzadas y un servicio óptimo. ¡Explora el emocionante planeta de 1xBet iphone app y disfruta sobre la diversión! Si eres un encendido jugador o un fanático de aquellas juegos de azar en el casino, hallarás todo como precisas para vivir la experiencia emocionante con fascinante. Descarga los angeles aplicación de 1xBet y sumérgete en la acción ahora exacto 1xbet.

  • Con 1xWin, puedes conseguir a todas las funciones de 1xBet, incluyendo apuestas sobre tiempo real, juegos de casino, máquinas tragamonedas y enormemente más, todo desde tu PC.
  • Puedes descargar 1xBet directamente desde el sitio website de 1xBet.
  • Al asegurarte de o qual tu smartphone cumple con estos requisitos, podrás disfrutar plenamente de todas todas las impresionantes funciones la cual ofrece la aplicación 1xBet.
  • Entendemos que la elección del método de pago que se ajuste a tus necesidades es fundamental para una experiencia de juego fluida y sencilla.

“La versión móvil sobre 1xBet es cómoda y está optimizada para los usuarios que desean obtener a su cuenta desde un dispositivo móvil, como el smartphone o una tableta. Con la cual versión, puedes usar de todas todas las funciones, incluyendo apuestas deportivas, juegos para casino y máquinas tragamonedas, directamente a partir de la pantalla de tu dispositivo. La aplicación 1xBet ofrece un juego fascinante y está optimizada con una interfaz especialmente diseñada pra dispositivos móviles. Además, proporciona funciones avanzadas como notificaciones push, actualizaciones automáticas con la posibilidad sobre personalizar la interfaz.

“Gamble Apk — Descargue La App Afin De Android Y Ios

No olvides inspeccionar atentamente tu cuidado para hacer algun seguimiento de sus resultados y ganancias. ¿Se ha producido alguna sustitución o qual pueda afectar approach resultado del match? La aplicación para 1xBet Mobile the mantendrá al total con las notificaciones para que pueda reaccionar al instante sobre lo la cual está pasando sumado a hacer sus pronósticos.”

  • Además, al registrarte con el código 1xbet 130LATAM, tendrías que obtener un personal bono del 100% e 130$ en tu primer depósito.
  • Otra característica destacada fue la posibilidad para ver eventos deportivos en vivo.
  • Ofrece un juego optimizado con un conjunto eficaz de funciones para satisfacer a mis jugadores que hacen apuestas en línea.
  • La navegación es intuitiva, los menús son claros y las transiciones entre las diferentes secciones son suaves.
  • Una vez instalado 1xWin en su computadora, puedes originarse sesión en su cuenta existente to crear una nueva.

La interfaz práctica y activa te permite navegar fácilmente entre las distintas secciones del sitio y encontrar rápidamente lo que buscas. Con la app móvil de 1xBet, los clientes podrán hacer apuestas en una amplia variedad de eventos de manera rápida y sencilla. Es relevante destacar que ambas opciones ofrecen una experiencia de juego satisfactoria, pero la aplicación proporciona una mayor comodidad de” “manuseio, suavidad y mi experiencia más completa generalmente. Una vez instalado 1xWin en su computadora, puedes originarse sesión en su cuenta existente um crear una nueva.

Descarga Nuestra App

La navegación es intuitiva, los menús boy claros y todas las transiciones entre todas las diferentes secciones kid suaves. No tendrás que preocuparte por errores molestos, lo que te permitirá concentrarte en emplear del juego. Puede elegir o crear una carpeta sobre el Menú sobre Inicio para prescribir la aplicación. Εl dерóѕіtο mínіmο еѕ dе ѕólο $1 ο ѕu еquіvаlеntе еn mοnеdа lοсаl у lа rеtіrаdа mínіmа dе $1, 50 ο ѕu еquіvаlеntе еn mοnеdа lοсаl, nο ехіѕtіеndο límіtеѕ máхіmοѕ. Ѕіn еmbаrgο, аlgunοѕ uѕuаrіοѕ hаn rерοrtаdο аlgunοѕ рrοblеmаѕ hаbіtuаlеѕ а lοѕ quе ѕе hаn еnfrеntаdο, у а lοѕ quе dаmοѕ ѕοluсіón а сοntіnuасіón, аdеmáѕ dе аlgunаѕ rесοmеndасіοnеѕ útіlеѕ. Mantén un vista en el match en vivo y cruza los dedos para que su apuesta sea ganadora.

  • “La versión móvil para 1xBet es cómoda y está optimizada para los usuarios que desean acceder a su asunto desde un dispositivo móvil, como este smartphone o la tableta.
  • ¡1xBet app permite a miles de jugadores de todo el mundo hacer apuestas deportivas desde cualquier parte del planeta!
  • 1xBet se esfuerza por ofrecer una disparidad de formas para pago para la cual puedas seleccionar la más adecuada pra ti.
  • No olvides analizar atentamente tu asunto para hacer algun seguimiento de tus resultados y ganancias.

1xWin también ght permite personalizar parámetros como el jerga, el formato de coeficientes y todas las notificaciones para una opinion de juego óptima y adaptada some sort of tus preferencias. Recuerda que la App Store es la surtidor oficial y gratuita para descargar 1xBet en dispositivos iOS. Mantén esta información en secreto para garantizar la estabilidad y confiabilidad de la aplicación 1xBet durante tu dispositivo. Otra característica destacada es la posibilidad para ver eventos deportivos en vivo.

What Would Be The Key Differences Between Using Typically The 1xbet App And The Mobile Web Site?”

La aplicación 1xBet para iPhone está especialmente diseñada em virtude de usuarios de aparelhos Apple, como el iPhone y el iPad. Ofrece el juego optimizado con un conjunto exacto de funciones afin de satisfacer a los jugadores que hacen apuestas en línea. Si eres un amante de los deportes, los juegos de casino u otras opciones, una aplicación” “em virtude de iOS te da voie disfrutar de los dos servicios de 1xBet directamente desde tu dispositivo Apple. No obstante, la versión móvil de 1xBet sigue siendo una opción recomendable cuando no deseas exonerar la aplicación gratuita de 1xBet u si tu aparato no es appropriate. La versión móvil te permite tener a las principales funciones del web y realizar apuestas en línea. Con 1xWin, puedes tener a todas todas las funciones de 1xBet, incluyendo apuestas en tiempo real, juegos de casino, máquinas tragamonedas y bastante más, todo desde tu PC.

  • 1xWin también ght permite personalizar parámetros como el jerga, el formato para coeficientes y todas las notificaciones para una experiencia de juego óptima y adaptada a new tus preferencias.
  • Después de descargar un archivo de instalación pulse el botón “Ejecutar”.
  • Al descargar e instalar la aplicación, tendrás acceso al emocionante mundo de las apuestas, los juegos y mucho más, todo al alcance de tu mano.
  • Es importante señalar que la disponibilidad de los métodos de pago podra variar según tu país de estancia.
  • En balance, la aplicación 1xBet es imprescindible afin de los amantes de las apuestas para América Latina.

Este software, llamado 1xWin, proporciona una experiencia completa y conveniente de apuestas deportivas directamente desde su ordenador. Ahora obviamente haz clic durante el icono de la aplicación 1xBet en la monitor para divertirte y comenzar a explorar el emocionante planeta de las apuestas deportivas y los juegos de gambling establishment. Hay varias maneras de descargarse la aplicación de 1xBet en un iPhone. Una vez descargada la aplicación a partir de la App Store de Apple, tendrás una interfaz fácil de usar, la navegación intuitiva y perfecta compatibilidad disadvantage tu dispositivo iOS. La aplicación sony ericsson actualiza constantemente pra mejorar el flojedad, añadir nuevas funciones y ofrecer la experiencia de distraccion de primera clase. Al descargar are generally apk desde nuestro sitio, garantizas os quais estás obteniendo una versión auténtica y más reciente para 1xBet.

¿cómo Puedo Acceder A Ellos?

¡1xBet app permite a millones de jugadores para todo el mundo realizar apuestas deportivas a partir de cualquier parte de planeta! Gracias the nuestra guía para instalación, ahora tienes toda la información necesaria para exonerar 1xBet para Google android. Además, al registrarte con el código 1xbet 130LATAM, debes obtener un exclusivo bono del 100% e 130$ en tu primer depósito. Otra razón afin de descargarse 1xBet app en su móvil es la opción de personalizarla pra que se ajuste a sus necesidades. Podrá añadir to quitar los muitos elementos del menú, agregar tarjetas para pago” “y activar la protección de dos factores para su obligación.

  • Puede elegir o discurrir una carpeta en el Menú para Inicio para hacer la aplicación.
  • Si estás familiarizado con un proceso de instalación de archivos apk, genial.
  • Después de completar la descarga, elimina el archivo de instalación y sigue las instrucciones en pantalla para proceder que tiene la instalación.
  • La interfaz simple e intuitiva les permite navegar fácilmente entre las distintas ofertas del lugar, los juegos sobre casino en línea y las selecciones de gestión para cuentas.

1xBet app va más allá de ser una simple aplicación de apuestas. Es un compañero portátil de juegos que te permite acceder a todas las funciones de 1xBet directamente desde tu teléfono Android. Al descargar e instalar la aplicación, tendrás acceso al emocionante mundo de las apuestas, los juegos y mucho más, todo al alcance de tu mano.

Payment Approaches In The App

1xBet se esfuerza por ofrecer una pluralidad de formas de pago para os quais puedas seleccionar los angeles más adecuada para ti. Independientemente de la opción os quais elijas, verifica mis tamaños de mis pagos anticipados, los cargos por transacción y los” “límites de transacción. Además, ten en cuenta que algunos métodos pueden tener restricciones adicionales por causas de seguridad. 1xBet app utiliza la última tecnología sobre encriptación para resguardar tus datos personales y financieros por las transacciones. Después de descargar el archivo de instalación pulse el botón “Ejecutar”. Una sobre las primeras flancos que notarás way usar 1xBet iphone app en 2025 fue la fluidez de su interfaz.

  • Podrá añadir um quitar los algunos elementos del menú, agregar tarjetas para pago” “sumado a activar la protección de dos factores para su obligación.
  • 1xBet app utiliza los angeles última tecnología sobre encriptación para cobijar tus datos personales y financieros por las transacciones.
  • Gracias some sort of nuestra guía para instalación, ahora tienes toda la información necesaria para exonerar 1xBet para Google android.
  • 1xBet app también ofrece características avanzadas que mejorarán su experiencia de distraccion.
  • Mantén esta información en secreto pra garantizar la seguridad y confiabilidad entre ma aplicación 1xBet sobre tu dispositivo.
  • Ofrece una interfaz fácil de usar, características avanzadas y este servicio óptimo.

Es importante señalar que la disponibilidad de los métodos de pago puede variar según tu país de residencia. Antes de nominar un método, asegúrate de revisar las opciones disponibles durante tu área. Cada forma de soddisfatto tiene sus ventajas y desventajas, durante lo que sera crucial seleccionar una que mejor ze ajuste a tus necesidades y preferencias.

Los Requisitos Mínimos Para La Dd De 1xbet

Esto te permite beneficiarse de una visión amplia y una interfaz fácil de usar para gestionar tus ofertas con seguir eventos deportivos en tiempo genuine. 1xBet app también ofrece características avanzadas que mejorarán tu experiencia de juego. Por ejemplo, podrás personalizar la interfaz eligiendo entre numerosos temas y colores atractivos. Además, podrás crear una referencia de tus deportes favoritos y investirse notificaciones instantáneas pra no perderte ninguna oportunidad de completar una apuesta. En conclusión, la aplicación proporciona una experiencia de juego sin errores graves afin de los usuarios hispanohablantes.

  • Por ejemplo, podrás personalizar la interfaz eligiendo entre numerosos temas y colores atractivos.
  • ¡Explora el emocionante planeta de 1xBet application y disfruta de la diversión!
  • Además de las aplicaciones móviles pra dispositivos Android at the iOS, la odaie de apuestas también ofrece un software program especializado para usuarios de Windows.
  • No tendrás que preocuparte durante errores molestos, lo que te permitirá concentrarte en emplear del juego.

No olvides revisar las promociones sumado a bonos disponibles después de iniciar sesión en tu cuidado. Disfruta de su experiencia de distraccion, realiza apuestas deportivas, juega en el casino y explora todas las ventajas que ofrece la plataforma. Es provvidenziale y flexible, lo que te permite tener el contacto y realizar apuestas disadvantage facilidad en alguna momento y local. Para acceder some sort of 1xBet móvil, sencillamente abre el navegador de internet durante tu dispositivo móvil e” “introduce la dirección 1xbet. com. El pagina web se adaptará automáticamente a su dispositivo, ofreciéndote la mejor experiencia sobre navegación en la pantalla más pequeña. Además de todas las aplicaciones móviles pra dispositivos Android electronic iOS, la casa de apuestas también ofrece un computer software especializado para usuarios de Windows.

Ρrοblеmаѕ У Ѕοluсіοnеѕ Dе Lа Арlісасіón 1хвеt

Consulta nuestra tabla comparativa de diferentes métodos de pago disponibles en 1xBet. Entendemos que la elección del método de pago que se ajuste a tus necesidades es fundamental para una experiencia de juego fluida y sencilla. Esta tabla proporciona una revisión de los beneficios de cada opción, lo que te ayudará a tomar una decisión clara para tus operaciones de depósito y retiro de fondos. Explora las diferentes alternativas y elige la que mejor se adapte a tus necesidades y comodidad. Al utilizar la versión móvil, puedes realizar apuestas en tiempo real, consultar estadísticas y resultados, gestionar tus apuestas y retirar fondos de manera sencilla.

  • Otra razón para descargarse 1xBet software en su móvil es la opción de personalizarla em virtude de que se ajuste a sus necesidades.
  • Εl dерóѕіtο mínіmο еѕ dе ѕólο $1 ο ѕu еquіvаlеntе еn mοnеdа lοсаl у lа rеtіrаdа mínіmа dе $1, 50 ο ѕu еquіvаlеntе еn mοnеdа lοсаl, nο ехіѕtіеndο límіtеѕ máхіmοѕ.
  • Al descargar una apk desde el propio sitio, garantizas que estás obteniendo una versión auténtica y más reciente sobre 1xBet.
  • No olvides inspeccionar las promociones sumado a bonos disponibles después de iniciar sesión en tu cuenta.
  • La aplicación para 1xBet Mobile votre mantendrá al seja con las notificaciones para que pueda reaccionar al instante sobre lo la cual está pasando con hacer sus pronósticos.”
  • Una vez la cual hayas descargado 1xBet con comentarios, el siguiente paso es instalarlo en tu teléfono Android.

Además, actualizamos constantemente la aplicación para mejorar tu rendimiento, corregir desacertados y añadir características novedosas. Descargando los angeles apk desde nuestra página, te aseguras de no perderte ninguna de las experiencias que 1xBet tiene para descubrir. Además, la aplicación utiliza el más moderno sistema para protección para sus datos personales sumado a transacciones financieras. Si estás ansioso durante empezar a emplear de la emoción de apostar que tiene 1xBet, te recomiendan que descargues los angeles apk directamente desde nuestra” “página web oficial. De esta manera, te aseguras de obtener la versión más actualizada de la aplicación, con todas las mejoras y características adicionales.

Leave a Comment

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