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} 1win Côte D'ivoire: Paris Sportifs Et Casino En Ligne Connexion" - premier mills

1win Côte D’ivoire: Paris Sportifs Et Casino En Ligne Connexion”

1win Spor Bahisleri Ve Online Casino Benefit 500%

Türk oyuncular için e-cüzdanların empieza kripto paraların 1Win casino’da en iyi ödeme yöntemleri olduğunu gördük. 1Win Casino promosyon kodları hakkında ihtiyacınız olan tüm bilgileri casino promosyonları sayfasında bulabilirsiniz. Bu sayfadaki kodlara erişebilir ve bonus avantajlarının kilidini açmak için bunları hesabınıza girebilirsiniz. Kumar eğlencesi konusunda tutkuluysanız, 1500’den fazla farklı seçeneğe sahip olan çok çeşitli oyunlarımıza dikkat etmenizi şiddetle tavsiye ederiz.

1Win Casino, sadık oyunculara çok sayıda mükemmel kupon kodu verir, bu nedenle tutarlı bir şekilde oynadığınızdan emin olun. Daha fazla oynadıkça, bedava dönüşler, reward nakit ve daha fazlası için kuponlar alacaksınız. 1Win Türkiye’nin resmi casino ve spor bahisleri platformunu barındırıyor ve oyunculara her zevke hitap eden eğlence seçenekleri sunan kullanıcı dostu bir arayüzle kumar ortamları yaratmalarına yardımcı oluyor. Tanınmış empieza lisanslı sağlayıcılardan 14. 000’den fazla oyun içeren yasal bir kumarhanedir. Tüm oyunlar, kullanıcıların ihtiyaç duyduklarını hızlı bir şekilde bulabilmeleri için uygun şekilde bölümlere ayrılmıştır.

In Bet Türkiye – Giriş Yapın Ve Online Spor Bahisleri Oynayın

Sayfanın ortasında, kumarhanenin en popüler oyunlarının kategoriye göre ayrıldığını göreceksiniz. Şu anda 1win bahis, kullanıcılara spor empieza eSports maçlarına, online casino oyunlarına ve pokere bahis yapmak için en geniş seçenekleri sunan kumar endüstrisinde liderdir. Türkiye’den 20 yaşın üzerindeki your ex kullanıcı burada bir hesap oluşturabilir ve gerçek parayla oynamaya başlayabilir. 1Win Gambling establishment 13 ortak ödeme yöntemi sunar, ancak hepsi hem afin de yatırma hem de para çekme işlemleri için çalışmaz. Şimdilik, kumarhanenin Doğu Avrupa’daki oyunculara daha fazla yönelik olduğunu empieza ödeme yöntemlerinin bunu yansıttığını bilin. 1Win’in Türkiye’deki yasal durumu, ülkenin belirli kumar düzenlemelerine bağlıdır 1win giriş.

  • Cep telefonuyla kaydolmayı tercih ediyorsanız, tek yapmanız gereken aktif telefon numaranızı girmek ve “Kaydol” düğmesine tıklamaktır.
  • Ayrıca, kullanıcılar doğrudan mobil cihazlarından canlı sohbet, e-posta ve telefon yoluyla müşteri desteğine erişebilirler.
  • Özellikle, her tür para birimi için belirli ödeme yöntemleri kullanılamaz.
  • 1Win Online casino 13 ortak ödeme yöntemi sunar, ancak hepsi hem pra yatırma hem sobre para çekme işlemleri için çalışmaz.

Taşınabilir cihazlara hızlı bir şekilde yüklediğimiz bir düzineden fazla dile çevrilmiş mobil dostu bir web sitesi. Ödeme yöntemleri söz konusu olduğunda, oyuncular geleneksel para ve kripto para birimleri de dahil olmak üzere 18 farklı seçenek arasından seçim yapabilir. Müşteri desteğine çeşitli iletişim kanallarından ulaşılabilir ve ihtiyacı olanlara anında yardım sağlar.

Ana Navigasyon

“Mobil sürüm, bahis deneyimini geliştirmek için kapsamlı bir dizi özellik sunar. Kullanıcılar gambling establishment oyunları, spor bahisleri seçenekleri, canlı etkinlikler ve promosyonlardan oluşan eksiksiz bir pakete erişebilirler. Mobil program, belirli spor etkinliklerinin canlı akışını destekleyerek gerçek zamanlı güncellemeler ve oyun içi bahis seçenekleri sunar. Para yatırma empieza çekme işlemleri için kredi/banka kartları, e-cüzdanlar ve kripto para birimleri de dahil olmak üzere güvenli ödeme yöntemleri mevcuttur. Ayrıca, kullanıcılar doğrudan mobil cihazlarından canlı sohbet, e-posta empieza telefon yoluyla müşteri desteğine erişebilirler. Mobil versiyonu 1Win website sitesi küçük ekranlar için optimize edilmiş sezgisel bir arayüze sahiptir.

  • 1Win Casino, sadık oyunculara çok sayıda mükemmel kupon kodu verir, bu nedenle tutarlı bir şekilde oynadığınızdan emin olun.
  • Taşınabilir cihazlara hızlı bir şekilde yüklediğimiz bir düzineden fazla dile çevrilmiş mobil dostu bir web sitesi.
  • Daha fazla oynadıkça, bedava dönüşler, added bonus nakit ve daha fazlası için kuponlar alacaksınız.
  • Piyangodan ilham alan başlıklar ag dahil olmak üzere özel oyunlar da mevcuttur.
  • Ekibimiz bu kumarhaneye derinlemesine daldı – kumar uzmanlarımız oyun oynamak ve online casino web sitesini kullanılabilirlik açısından test etmek için saatler harcadılar.
  • Şansın çok büyük bir etkisi vardır, bu nedenle casino girişi yapın, bahislerinizi yapın empieza eğlenin.

Her maçın, bahis için mevcut tüm pazarlar ve takım istatistikleri hakkında bilgi bulabileceğiniz kendi sayfası vardır. 1Win Online casino bonus kodları 2023 sayfasında bir dizi aktif promosyonu ag bulabilirsiniz. Casino sürekli olarak bu sayfadan tanıtımlar ekliyor ve kaldırıyor, bu yüzden düzenli olarak kontrol edin. Bundan sonra, 15 dakika içinde, para 1Win possuindo hesabınızın bonus bakiyesine yatırılacaktır. Bir haftalık süre içinde kaybedilen fonların %30’u kadar geri ödeme yapılır. Teklif, yalnızca en yeni 1win müşterilerinin ilk dört depozitosu için geçerlidir.”

In Casino Ödeme Yöntemleri

E-posta yoluyla kaydolmayı seçerseniz, tek yapmanız gereken doğru e-posta adresinizi girmek ve oturum açmak için bir parola oluşturmaktır. Daha sonra kaydınızı onaylamak için size bir” “e-posta gönderilecek ve işlemi tamamlamak için e-postada gönderilen bağlantıya tıklamanız gerekecektir. Cep telefonuyla kaydolmayı tercih ediyorsanız, tek yapmanız gereken aktif telefon numaranızı girmek ve “Kaydol” düğmesine tıklamaktır. Bundan sonra kişisel hesabınıza erişmek için kullanıcı adı ve şifre içeren bir SMS gönderilecektir.

Bonus parayı bêtisier hesabınıza taşımanın (ve para çekmek için kilidini açmanın) tek yolu bonus parayı yatırmaktır. Kabul etmeden önce hoşgeldin bonusu için 1Win Online casino bonus hüküm empieza” “koşullarını kontrol ettiğinizden emin olun – şartlar, bahis gereksinimleri sobre dahil olmak üzere bonusla ilgili her şeyi açıklayacaktır. Para çekmek için added bonus paranıza erişebilmeniz için belirli bir miktarda bahis yapmanız gerekecektir. 1Win Casino’da yeni oyuncular için harika bir hoşgeldin bonusu teklifi var. 1Win kumarhane oyun portföyü, tüm önemli türleri kapsayan yaklaşık 8000 oyunla türünün tek örneğidir. Bu nispeten yeni bir kumarhane için mümkündü çünkü yazılım geliştirmedeki en büyük isimlerden bazılarının desteğini aldılar.

In Casino En Direct

1Win uygulaması mobil bahisler için özel bir program sunmakta ve mobil cihazlara göre uyarlanmış gelişmiş bir kullanıcı deneyimi sağlamaktadır. Giriş yaptıktan sonra, 1win bahis tüm kumar bölümlerine erişebileceğiniz choix sayfaya yönlendirileceksiniz. Sadece mevduat değil, afin de çekme ve Bitcoin kullanabilirsiniz unutmayın.

  • “Mobil sürüm, bahis deneyimini geliştirmek için kapsamlı bir dizi özellik sunar.
  • Bu sayfadaki kodlara erişebilir ve bonus avantajlarının kilidini açmak için bunları hesabınıza girebilirsiniz.
  • Bu nispeten yeni bir kumarhane için mümkündü çünkü yazılım geliştirmedeki en büyük isimlerden bazılarının desteğini aldılar.
  • 1Win uygulaması mobil bahisler için özel bir program sunmakta ve mobil cihazlara göre uyarlanmış gelişmiş bir kullanıcı deneyimi sağlamaktadır.
  • 1Win’in Türkiye’deki yasal durumu, ülkenin belirli kumar düzenlemelerine bağlıdır.

Açıkça işaretlenmiş sekmeler ve çeşitli mobil cihazlara uyum sağlayan duyarlı bir tasarım ile gezinme kolaylığı sağlar. Hesap yönetimi, para yatırma, bahis ve oyun kütüphanelerine erişim gibi temel işlevler sorunsuz bir şekilde entegre edilmiştir. Düzen, bilgileri kompakt ve erişilebilir bir formatta sunarak kullanıcı rahatlığına öncelik verir. Mobil arayüz, masaüstü sürümünün temel işlevselliğini koruyarak platformlar arasında tutarlı bir kullanıcı deneyimi sağlar. 1Win casino 2017 yılında kurulmuş olup, Curaçao’da lisanslıdır empieza çevrimiçi kumarın yasal olduğu dünyanın the girl yerinden oyuncuları kabul etmektedir.

In Gambling Establishment Bonusları

Mobil dostu oyunlar arasında orijinal temalara sahip slotlar, aşamalı jackpot feature oyunları ve movie pokerleri bulunur. Canlı casino bölümünde algoritmalara veya gerçek bayilere karşı kart oyunları oynanabilir. Piyangodan ilham alan başlıklar de uma dahil olmak üzere özel oyunlar ag mevcuttur. Ürün yelpazemizin ana kısmı, kazancınızı çekmenize olanak tanıyan çeşitli gerçek paralı slot makineleridir. Çeşitli temaları, tasarımları, makara ve ödeme çizgisi sayılarının yanı sıra oyunun mekaniği, added bonus özelliklerin varlığı ve diğer özellikleri ile şaşırtıyorlar. 1Win Casino’da çok fazla bahis yapan oyuncular, ödüllerin ve özel avantajların kilidini hızla açacaktır.

  • Win casino incelememizde, bu kumarhanede oynamadan önce bilmeniz gereken tüm” “önemli noktaları ele alacağız.
  • 1 Win Online casino mobil uygulamasını check ettik, destek ekibiyle iletişime geçtik ve birkaç para yatırdık.
  • Kumar eğlencesi konusunda tutkuluysanız, 1500’den fazla farklı seçeneğe sahip olan çok çeşitli oyunlarımıza dikkat etmenizi şiddetle tavsiye ederiz.
  • Casinomuzda renkli slot machine makineleri, klasik masa oyunlarının yanı sıra kumarhanemizin sanal duvarları içinde heyecan verici canlı krupiye oyunları bulacaksınız.
  • Bonus parayı spicilège hesabınıza taşımanın (ve para çekmek için kilidini açmanın) tek yolu bonus parayı yatırmaktır.
  • Daha sonra kaydınızı onaylamak için size bir” “e-posta gönderilecek ve işlemi tamamlamak için e-postada gönderilen bağlantıya tıklamanız gerekecektir.

Casinomuzda renkli slot machine makineleri, klasik pasta oyunlarının yanı sıra kumarhanemizin sanal duvarları içinde heyecan verici canlı krupiye oyunları bulacaksınız. Yeni bir kullanıcı bir hesap oluşturur, 1Win logon yapar ve herhangi bir uygun şekilde para yatırır. Tüm para 1Win top rated bakiyesine alınır empieza kullanıcı istediği zaman çekebilir. 1Win expert kullanıcılar 40’tan fazla farklı disiplinde herhangi bir maça bahis oynayabilir. Bu yöntemlerden herhangi biriyle sınırsız para çekme işlemi yapabilirsiniz. Ancak, bu ödeme yöntemlerinden birkaçında bazı kısıtlamalar olduğunu unutmayın.

In Sports Pour Parier En Hachure Avec Des Cotes Élevées

Türkiye’deki çevrimiçi kumar hakkında okuduğunuz yayınların, yerel yasalarla uyumlu olarak hükümetin düzenleyicisi tarafından resmi olarak yayınlandığını doğrulamak her zaman gereklidir. Oyun portalımızda, her deneyim ve para seviyesinden oyuncular için uygun çok çeşitli popüler gambling establishment oyunları bulacaksınız. En büyük önceliğimiz dimension güvenli ve sorumlu bir oyun ortamında eğlence ve keyif sunmaktır. Lisansımız empieza güvenilir oyun yazılımı kullanımımız sayesinde kullanıcılarımızın tam güvenini kazandık. 1Win de kullanıcılar herhangi bir popüler spor dalına bahis oynayabilir. Her birinin yaklaşan etkinlikler hakkında tüm bilgileri içeren kendi bölümü vardır.

1Win web sitesinin mobil versiyonu ve 1Win uygulaması, hareket halindeyken bahis oynamak için sağlam platformlar sağlamaktadır. Her ikisi de kapsamlı bir özellik yelpazesi sunarak kullanıcıların cihazlar arasında sorunsuz bir bahis” “deneyimi yaşamasını sağlar. Mobil web sitesi duyarlı bir tasarımla kolaylık sağlarken, 1Win uygulaması optimize edilmiş performans ve ek işlevlerle deneyimi geliştirir. Her platformun farklılıklarını ve özelliklerini anlamak, kullanıcıların bahis ihtiyaçları için en uygun seçeneği seçmelerine yardımcı olur. Sayfanın sol tarafında, favori casino oyun türünüzü kolayca seçebileceğiniz bir menü sobre bulunmaktadır.

In Mobil Sürümü Hakkında Özet

Bu yöntemler arasında Payeer, Bitcoin, Qiwi, Webmoney, Banka Havalesi, Tele2, Beeline, Megafon, Yandex Funds, Pastrix, Ethereum, Advcash ve MTC sayılabilir. 1Win Casino ayrıca düzenli oyuncular için bir ödül programı sunmaktadır. Bu bir VIP programı gibi bir şey çünkü daha fazla oyun oynadıkça ve daha fazla para yatırdıkça, özel avantajların kilidini açacaksınız. Şansın çok büyük bir etkisi vardır, bu nedenle casino girişi yapın, bahislerinizi yapın ve eğlenin. Buradaki the girl maç aynı zamanda Çizgi/Canlı bahis için de mevcuttur, istatistikleri okuyabilir ve aralarından seçim yapabileceğiniz düzinelerce piyasadan ilgilendiğinizi seçebilirsiniz.

Win casino incelememizde, bu kumarhanede oynamadan önce bilmeniz gereken tüm” “önemli noktaları ele alacağız. Ekibimiz bu kumarhaneye derinlemesine daldı – kumar uzmanlarımız oyun oynamak ve gambling establishment web sitesini kullanılabilirlik açısından test etmek için saatler harcadılar. 1 Win On line casino mobil uygulamasını test out ettik, destek ekibiyle iletişime geçtik ve birkaç para yatırdık. Özellikle, her tür para birimi için belirli ödeme yöntemleri kullanılamaz.

Leave a Comment

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