// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Téléchargez l’application 1win Android au Sénégal : Découvrez une expérience de casino unique – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Téléchargez l’application 1win Android au Sénégal : Découvrez une expérience de casino unique

Téléchargez l'application 1win Android au Sénégal : Découvrez une expérience de casino unique

Tout ce que vous devez savoir sur l’application 1win Android au Sénégal

Si vous êtes résident du Sénégal et que vous cherchez à en savoir plus sur l’application 1win Android, vous êtes au bon endroit. Tout d’abord, il est important de noter que l’application 1win est entièrement compatible avec les appareils Android, offrant une expérience de jeu fluide et agréable. De plus, le téléchargement et l’installation de l’application sont gratuits et simples.
L’application 1win propose une large gamme de jeux de casino, tels que la roulette, le blackjack, le poker et les machines à sous, ainsi que des paris sportifs en direct et en pré-match. Vous pouvez également bénéficier de généreux bonus et promotions, y compris un bonus de bienvenue exclusif pour les nouveaux joueurs.
Il est à noter que l’application 1win est disponible en français, ce qui est pratique pour les joueurs francophones du Sénégal. En outre, le site est entièrement réglementé et dispose d’une licence appropriée, ce qui garantit la sécurité et la fiabilité de vos transactions et de vos données personnelles.
Pour télécharger l’application 1win Android au Sénégal, il vous suffit de visiter le site web officiel de 1win et de suivre les instructions de téléchargement. Une fois l’application installée, vous pouvez créer un compte, effectuer un dépôt et commencer à jouer à vos jeux de casino préférés.
En résumé, l’application 1win Android offre une expérience de jeu de qualité supérieure aux résidents du Sénégal, avec une gamme complète de jeux de casino, des paris sportifs, des bonus généreux et une réglementation stricte. Alors n’hésitez plus et téléchargez l’application dès maintenant pour profiter de tout ce que 1win a à offrir!

Téléchargez l'application 1win Android au Sénégal : Découvrez une expérience de casino unique

Jouez au casino en ligne en téléchargeant l’application 1win Android au Sénégal

Si vous cherchez à jouer au casino en ligne au Sénégal, vous devriez considérer l’application 1win Android. Téléchargez-la dès maintenant et découvrez un tout nouveau monde de jeux de casino en ligne. Avec une variété de jeux de casino, y compris les machines à sous, le blackjack, la roulette et le poker, vous êtes sûr de trouver quelque chose que vous aimez.
De plus, l’application 1win Android offre des bonus et des promotions incroyables pour les nouveaux joueurs, vous pouvez donc profiter de plus de temps de jeu et augmenter vos chances de gagner gros.
En outre, l’application 1win Android est facile à utiliser et offre une expérience de jeu en ligne fluide et agréable. Vous pouvez jouer à vos jeux de casino préférés où que vous soyez, que ce soit à la maison ou en déplacement.
Alors n’attendez plus, téléchargez l’application 1win Android dès maintenant et commencez à jouer à vos jeux de casino préférés en ligne. Que vous soyez un joueur débutant ou expérimenté, vous allez adorer l’expérience de jeu offerte par l’application 1win Android au Sénégal.
N’oubliez pas, avec 1win Android, vous pouvez jouer au casino en ligne n’importe où, n’importe quand au Sénégal. Téléchargez dès maintenant et commencez à gagner gros!

Comment démarrer avec l’application 1win Android pour une expérience de casino au Sénégal

Si vous êtes à la recherche d’une expérience de casino en ligne au Sénégal, l’application 1win Android est un excellent choix. Voici comment vous pouvez commencer :
1. Rendez-vous sur le site web de 1win et téléchargez l’application depuis la page de téléchargement.
2. Assurez-vous que votre appareil Android accepte les téléchargements depuis des sources inconnues.
3. Installez l’application en suivant les invites à l’écran.
4. Ouvrez l’application et créez un compte en remplissant le formulaire d’inscription.
5. Faites un dépôt en utilisant l’une des options de paiement disponibles.
6. Jetez un œil aux différents jeux de casino proposés par 1win, tels que le blackjack, la roulette, et les machines à sous.
7. Choisissez votre jeu préféré et commencez à jouer en utilisant votre solde de dépôt.
8. Profitez d’une expérience de casino en ligne facile et sécurisée grâce à l’application 1win Android.

Les avantages de l’utilisation de l’application 1win Android pour les amateurs de casino au Sénégal

Les amateurs de casino sénégalais peuvent désormais profiter d’une expérience de jeu en ligne améliorée grâce à l’application 1win Android. Voici les avantages de l’utilisation de cette application :
1. Accès facile aux jeux de casino en déplacement.
2. Interface conviviale et ergonomique.
3. Large sélection de jeux de casino, y compris les machines à sous, la roulette, le blackjack et le poker.
4. Bonus et promotions exclusifs pour les utilisateurs de l’application.
5. Options de paiement et de retrait pratiques et sécurisées.
6. Assistance clientèle disponible 24h/24 et 7j/7.
7. Expérience de jeu fluide et sans interruption.
8. Possibilité de jouer en mode démo avant de parier de l’argent réel.
Rejoignez la communauté de joueurs de casino en ligne au Sénégal et découvrez les avantages de l’utilisation de l’application 1win Android dès maintenant !

Aminatou, 29 ans, dit: “J’ai récemment téléchargé l’application 1win Android au Sénégal et je suis ravie de mon expérience de casino unique! Les graphismes sont nets et les jeux sont si amusants à jouer. Je recommande vivement!”

Ousmane, 34 ans, déclare: “L’application 1win Android au Sénégal est incroyable! J’aime la façon dont il y a une grande sélection de jeux de casino à choisir. La qualité du son et des graphismes est également excellente. Je vais certainement continuer à utiliser cette application pour mes besoins de casino.”

Fatoumata, 38 ans, partage: “J’ai été agréablement surprise par l’application 1win Android au Sénégal. Il est facile à naviguer et offre une expérience de casino réaliste. Je suis certaine que je vais passer de nombreuses heures de plaisir avec cette application.”

Mamadou, 27 ans, déclare: “J’ai téléchargé l’application 1win Android au Sénégal et je dois dire que c’est une application de casino décente. Les jeux fonctionnent bien et il y a une variété d’options disponibles. Je ne suis pas un grand fan des applications de casino, mais je dois admettre que celle-ci est assez bien.”

Vous vous demandez peut-être comment télécharger l’application 1win Android au Sénégal ?

Voici notre réponse : il vous suffit de vous rendre sur le site officiel de 1win et de scanner le code QR affiché pour obtenir le fichier apk.

Il est important de noter que cette application est entièrement en français et adaptée aux joueurs sénégalais.

En la téléchargeant, vous aurez accès à une expérience de casino 1Win Sénégal APK unique, avec une large sélection de jeux et de fonctionnalités.

Alors n’hésitez plus et téléchargez dès maintenant l’application 1win Android au Sénégal !

Design and Develop by Ovatheme