/** * jQuery fontIconPicker - v2.3 * * An icon picker built on top of font icons and jQuery * * http://codeb.it/fontIconPicker * * Made by Alessandro Benoit & Swashata * Under MIT License * * {@link https://github.com/micc83/fontIconPicker} * * Modified by Visual Composer Dev Team */ (function ( $ ) { 'use strict'; // Create the defaults once var defaults = { theme: 'fip-vc-theme-grey', // The CSS theme to use with this fontIconPicker. You can set different themes on multiple elements on the same page source: false, // Icons source (array|false|object) emptyIcon: true, // Empty icon should be shown? emptyIconValue: '', // The value of the empty icon, change if you select has something else, say "none" iconsPerPage: 20, // Number of icons per page hasSearch: true, // Is search enabled? searchSource: false, // Give a manual search values. If using attributes then for proper search feature we also need to pass icon names under the same order of source useAttribute: false, // Whether to use attribute selector for printing icons attributeName: 'data-icon', // HTML Attribute name convertToHex: true, // Whether or not to convert to hexadecimal for attribute value. If true then please pass decimal integer value to the source (or as value="" attribute of the select field) allCategoryText: 'From all categories', // The text for the select all category option unCategorizedText: 'Uncategorized', // The text for the select uncategorized option iconDownClass: 'fip-icon-down-dir', // Class for icon down iconUpClass: 'fip-icon-up-dir', // Class for icon up iconLeftClass: 'fip-icon-left-dir', // Class for icon left iconRightClass: 'fip-icon-right-dir', // Class for icon right iconSearchClass: 'fip-icon-search', // Class for search iconCancelClass: 'fip-icon-cancel', // Class for search canceling iconSpinClass: 'fip-icon-spin3', // Class for fip-icon-spin3 iconBlockClass: 'fip-icon-block', // Class for block(none icon) searchPlaceholder: 'Search Icon', // Search icon text placeholder mainClass: 'vc-icons-selector' }; // The actual plugin constructor function Plugin( element, options ) { this.element = $( element ); this.settings = $.extend( {}, defaults, options ); if ( this.settings.emptyIcon ) { this.settings.iconsPerPage --; } this.iconPicker = $( '
', { 'class': this.settings.mainClass, style: 'position: relative', html: '
' + '' + '' + '' + '' + '' + '' + '
' + '' } ); this.iconContainer = this.iconPicker.find( '.fip-icons-container' ); this.searchIcon = this.iconPicker.find( '.selector-search i' ); this.iconsSearched = []; this.isSearch = false; this.totalPage = 1; this.currentPage = 1; this.currentIcon = false; this.initialized = false; this.iconsPaged = false; this.iconsCount = 0; this.open = false; // Set the default values for the search related variables this.searchValues = []; this.availableCategoriesSearch = []; // The trigger event for change this.triggerEvent = null; // Backups this.backupSource = []; this.backupSearch = []; // Set the default values of the category related variables this.isCategorized = false; // Automatically detects if the icon listing is categorized this.selectCategory = this.iconPicker.find( '.icon-category-select' ); // The category SELECT input field this.selectedCategory = false; // false means all categories are selected this.availableCategories = []; // Available categories, it is a two dimensional array which holds categorized icons this.unCategorizedKey = null; // Key of the uncategorized category // Initialize plugin this.quickInit(); } Plugin.prototype = { /** * Quick init */ quickInit: function () { var first = true; // Add the theme CSS to the iconPicker this.iconPicker.addClass( this.settings.theme ); // To properly calculate iconPicker height and width // We will first append it to body (with left: -9999px so that it is not visible) this.iconPicker.css( { left: - 9999 } ).appendTo( 'body' ); var iconPickerHeight = this.iconPicker.outerHeight(), iconPickerWidth = this.iconPicker.outerWidth(); // Now reset the iconPicker CSS this.iconPicker.css( { left: '' } ); // Add the icon picker after the select this.element.before( this.iconPicker ); // Hide source element // Instead of doing a display:none, we would rather // make the element invisible // and adjust the margin this.element.css( { visibility: 'hidden', top: 0, position: 'relative', zIndex: '-1', left: '-' + iconPickerWidth + 'px', display: 'none', height: iconPickerHeight + 'px', width: iconPickerWidth + 'px', // Reset all margin, border and padding padding: '0', margin: '0 -' + iconPickerWidth + 'px 0 0', // Left margin adjustment to account for dangling space border: '0 none', verticalAlign: 'top' } ).hide(); // Set the trigger event if ( ! this.element.is( 'select' ) ) { // Determine the event that is fired when user change the field value // Most modern browsers supports input event except IE 7, 8. // IE 9 supports input event but the event is still not fired if I press the backspace key. // Get IE version // https://gist.github.com/padolsey/527683/#comment-7595 var ieVersion = (function () { var v = 3, div = document.createElement( 'div' ), a = div.all || []; while ( div.innerHTML = '', a[ 0 ] ) { ; } return v > 4 ? v : ! v; }()); var el = document.createElement( 'div' ); this.triggerEvent = (ieVersion === 9 || ! ('oninput' in el)) ? [ 'keyup' ] : [ 'input', 'keyup' ]; // Let's keep the keyup event for scripts that listens to it } this.setSelectedIcon( this.element.val() ); /** * Category changer */ this.selectCategory.on( 'change keyup', $.proxy( function ( e ) { // Don't do anything if not categorized if ( this.isCategorized === false ) { return false; } var targetSelect = $( e.currentTarget ), currentCategory = targetSelect.val(); // Check if all categories are selected if ( targetSelect.val() === 'all' ) { // Restore from the backups // @note These backups must be rebuild on source change, otherwise it will lead to error this.settings.source = this.backupSource; this.searchValues = this.backupSearch; // No? So there is a specified category } else { var key = parseInt( currentCategory, 10 ); if ( this.availableCategories[ key ] ) { this.settings.source = this.availableCategories[ key ]; this.searchValues = this.availableCategoriesSearch[ key ]; } } this.resetSearch(); this.loadIcons(); }, this ) ); /** * On down arrow click */ this.iconPicker.find( '.selector-button' ).on( 'click', $.proxy( function () { if ( ! this.open && first ) { first = false; this.initCategories(); } // Open/Close the icon picker this.toggleIconSelector(); }, this ) ); /** * Next page */ this.iconPicker.find( '.selector-arrow-right' ).on( 'click', $.proxy( function ( e ) { if ( this.currentPage < this.totalPage ) { this.iconPicker.find( '.selector-arrow-left' ).show(); this.currentPage = this.currentPage + 1; this.renderIconContainer(); this.renderIcons(); } if ( this.currentPage === this.totalPage ) { $( e.currentTarget ).hide(); } }, this ) ); /** * Prev page */ this.iconPicker.find( '.selector-arrow-left' ).on( 'click', $.proxy( function ( e ) { if ( this.currentPage > 1 ) { this.iconPicker.find( '.selector-arrow-right' ).show(); this.currentPage = this.currentPage - 1; this.renderIconContainer(); this.renderIcons(); } if ( this.currentPage === 1 ) { $( e.currentTarget ).hide(); } }, this ) ); /** * Realtime Icon Search */ this.iconPicker.find( '.icons-search-input' ).on( 'keyup', $.proxy( function ( e ) { // Get the search string var searchString = $( e.currentTarget ).val(); // If the string is not empty if ( searchString === '' ) { this.resetSearch(); return; } // Set icon search to X to reset search this.searchIcon.removeClass( this.settings.iconSearchClass ); this.searchIcon.addClass( this.settings.iconCancelClass ); // Set this as a search this.isSearch = true; // Reset current page this.currentPage = 1; // Actual search // This has been modified to search the searchValues instead // Then return the value from the source if match is found this.iconsSearched = []; $.grep( this.searchValues, $.proxy( function ( n, i ) { if ( n.toLowerCase().search( searchString.toLowerCase() ) >= 0 ) { this.iconsSearched[ this.iconsSearched.length ] = this.settings.source[ i ]; return true; } }, this ) ); // Filter duplicates this.iconsSearched = this.iconsSearched.filter( this.getOnlyUnique ); // Render icon list this.renderIconContainer(); this.renderIcons(); }, this ) ); /** * Quit search */ this.iconPicker.find( '.selector-search i' ).on( 'click', $.proxy( function () { this.iconPicker.find( '.icons-search-input' ).focus(); this.resetSearch(); }, this ) ); /** * On icon selected */ this.iconContainer.on( 'click', '.fip-box', $.proxy( function ( e ) { this.setSelectedIcon( $( e.currentTarget ).find( 'i' ).attr( 'data-fip-value' ) ); this.toggleIconSelector(); }, this ) ); /** * Stop click propagation on iconpicker */ this.iconPicker.on( 'click', function ( event ) { event.stopPropagation(); return false; } ); /** * On click out */ $( 'html' ).on( 'click', $.proxy( function () { if ( this.open ) { this.toggleIconSelector(); } }, this ) ); }, /** * Init */ init: function () { // Add the theme CSS to the iconPicker this.iconPicker.addClass( this.settings.theme ); // To properly calculate iconPicker height and width // We will first append it to body (with left: -9999px so that it is not visible) this.iconPicker.css( { left: - 9999 } ).appendTo( 'body' ); var iconPickerHeight = this.iconPicker.outerHeight(), iconPickerWidth = this.iconPicker.outerWidth(); // Now reset the iconPicker CSS this.iconPicker.css( { left: '' } ); // Add the icon picker after the select this.element.before( this.iconPicker ); // Hide source element // Instead of doing a display:none, we would rather // make the element invisible // and adjust the margin this.element.css( { visibility: 'hidden', top: 0, position: 'relative', zIndex: '-1', left: '-' + iconPickerWidth + 'px', display: 'none', height: iconPickerHeight + 'px', width: iconPickerWidth + 'px', // Reset all margin, border and padding padding: '0', margin: '0 -' + iconPickerWidth + 'px 0 0', // Left margin adjustment to account for dangling space border: '0 none', verticalAlign: 'top' } ).hide(); // Set the trigger event if ( ! this.element.is( 'select' ) ) { // Determine the event that is fired when user change the field value // Most modern browsers supports input event except IE 7, 8. // IE 9 supports input event but the event is still not fired if I press the backspace key. // Get IE version // https://gist.github.com/padolsey/527683/#comment-7595 var ieVersion = (function () { var v = 3, div = document.createElement( 'div' ), a = div.all || []; while ( div.innerHTML = '', a[ 0 ] ) { ; } return v > 4 ? v : ! v; }()); var el = document.createElement( 'div' ); this.triggerEvent = (ieVersion === 9 || ! ('oninput' in el)) ? [ 'keyup' ] : [ 'input', 'keyup' ]; // Let's keep the keyup event for scripts that listens to it } this.initCategories(); /** * Category changer */ this.selectCategory.on( 'change keyup', $.proxy( function ( e ) { // Don't do anything if not categorized if ( this.isCategorized === false ) { return false; } var targetSelect = $( e.currentTarget ), currentCategory = targetSelect.val(); // Check if all categories are selected if ( targetSelect.val() === 'all' ) { // Restore from the backups // @note These backups must be rebuild on source change, otherwise it will lead to error this.settings.source = this.backupSource; this.searchValues = this.backupSearch; // No? So there is a specified category } else { var key = parseInt( currentCategory, 10 ); if ( this.availableCategories[ key ] ) { this.settings.source = this.availableCategories[ key ]; this.searchValues = this.availableCategoriesSearch[ key ]; } } this.resetSearch(); this.loadIcons(); }, this ) ); /** * On down arrow click */ this.iconPicker.find( '.selector-button' ).on( 'click', $.proxy( function () { // Open/Close the icon picker this.toggleIconSelector(); }, this ) ); /** * Next page */ this.iconPicker.find( '.selector-arrow-right' ).on( 'click', $.proxy( function ( e ) { if ( this.currentPage < this.totalPage ) { this.iconPicker.find( '.selector-arrow-left' ).show(); this.currentPage = this.currentPage + 1; this.renderIconContainer(); this.renderIcons(); } if ( this.currentPage === this.totalPage ) { $( e.currentTarget ).hide(); } }, this ) ); /** * Prev page */ this.iconPicker.find( '.selector-arrow-left' ).on( 'click', $.proxy( function ( e ) { if ( this.currentPage > 1 ) { this.iconPicker.find( '.selector-arrow-right' ).show(); this.currentPage = this.currentPage - 1; this.renderIconContainer(); this.renderIcons(); } if ( this.currentPage === 1 ) { $( e.currentTarget ).hide(); } }, this ) ); /** * Realtime Icon Search */ this.iconPicker.find( '.icons-search-input' ).on( 'keyup', $.proxy( function ( e ) { // Get the search string var searchString = $( e.currentTarget ).val(); // If the string is not empty if ( searchString === '' ) { this.resetSearch(); return; } // Set icon search to X to reset search this.searchIcon.removeClass( this.settings.iconSearchClass ); this.searchIcon.addClass( this.settings.iconCancelClass ); // Set this as a search this.isSearch = true; // Reset current page this.currentPage = 1; // Actual search // This has been modified to search the searchValues instead // Then return the value from the source if match is found this.iconsSearched = []; $.grep( this.searchValues, $.proxy( function ( n, i ) { if ( n.toLowerCase().search( searchString.toLowerCase() ) >= 0 ) { this.iconsSearched[ this.iconsSearched.length ] = this.settings.source[ i ]; return true; } }, this ) ); // Filter duplicates this.iconsSearched = this.iconsSearched.filter( this.getOnlyUnique ); // Render icon list this.renderIconContainer(); this.renderIcons(); }, this ) ); /** * Quit search */ this.iconPicker.find( '.selector-search i' ).on( 'click', $.proxy( function () { this.iconPicker.find( '.icons-search-input' ).focus(); this.resetSearch(); }, this ) ); /** * On icon selected */ this.iconContainer.on( 'click', '.fip-box', $.proxy( function ( e ) { this.setSelectedIcon( $( e.currentTarget ).find( 'i' ).attr( 'data-fip-value' ) ); this.toggleIconSelector(); }, this ) ); /** * Stop click propagation on iconpicker */ this.iconPicker.on( 'click', function ( event ) { event.stopPropagation(); return false; } ); /** * On click out */ $( 'html' ).on( 'click', $.proxy( function () { if ( this.open ) { this.toggleIconSelector(); } }, this ) ); }, initCategories: function () { // If current element is SELECT populate settings.source if ( ! this.settings.source && this.element.is( 'select' ) ) { // Reset the source and searchSource // These will be populated according to the available options this.settings.source = []; this.settings.searchSource = []; // Check if optgroup is present within the select // If it is present then the source has to be grouped if ( this.element.find( 'optgroup' ).length ) { // Set the categorized to true this.isCategorized = true; this.element.find( 'optgroup' ).each( $.proxy( function ( i, el ) { // Get the key of the new category array var thisCategoryKey = this.availableCategories.length, // Create the new option for the selectCategory SELECT field categoryOption = $( '' ).prependTo( this.selectCategory ); // Show it and set default value to all categories this.selectCategory.show().val( 'all' ).trigger( 'change' ); }, /** * Load icons */ loadIcons: function () { // Set the content of the popup as loading this.iconContainer.html( '' ); // If source is set if ( this.settings.source instanceof Array ) { // Render icons this.renderIconContainer(); this.renderIcons(); this.setContainerSelectedItems(); } }, /** * Render icons inside the popup */ renderIconContainer: function () { var offset, iconsPaged = []; // Set a temporary array for icons if ( this.isSearch ) { iconsPaged = this.iconsSearched; } else { iconsPaged = this.settings.source; } // Remove duplicates iconsPaged = [ ...new Set( iconsPaged ) ]; // Count elements this.iconsCount = iconsPaged.length; // Calculate total page number this.totalPage = Math.ceil( this.iconsCount / this.settings.iconsPerPage ); // Hide footer if no pagination is needed if ( this.totalPage > 1 ) { this.iconPicker.find( '.selector-footer' ).show(); } else { this.iconPicker.find( '.selector-footer' ).hide(); } // Set the text for page number index and total icons this.iconPicker.find( '.selector-pages' ).html( this.currentPage + '/' + this.totalPage + ' (' + this.iconsCount + ')' ); // Set the offset for slice offset = (this.currentPage - 1) * this.settings.iconsPerPage; // Should empty icon be shown? if ( this.settings.emptyIcon ) { // Reset icon container HTML and prepend empty icon this.iconContainer.html( '' ); // If not show an error when no icons are found } else if ( iconsPaged.length < 1 ) { this.iconContainer.html( '' ); return; // else empty the container } else { this.iconContainer.html( '' ); } // Set an array of current page icons iconsPaged = iconsPaged.slice( offset, offset + this.settings.iconsPerPage ); this.iconsPaged = iconsPaged; // List icons /*for (var i = 0, item; item = iconsPaged[i++];) { // Set the icon title var flipBoxTitle = item; $.grep(this.settings.source, $.proxy(function (e, i) { if (e === item) { flipBoxTitle = this.searchValues[i]; return true; } return false; }, this)); // Set the icon box $('', { html: '', 'class': 'fip-box', title: flipBoxTitle }).appendTo(this.iconContainer); }*/ }, setContainerSelectedItems: function () { // If no empty icon is allowed and no current value is set or current value is not inside the icon set if ( ! this.settings.emptyIcon && (! this.element.val() || $.inArray( this.element.val(), this.settings.source ) === - 1) ) { // Get the first icon this.setSelectedIcon( this.iconsPaged[ 0 ] ); } else if ( $.inArray( this.element.val(), this.settings.source ) === - 1 ) { // Set empty this.setSelectedIcon(); } else { // Set the default selected icon even if not set this.setSelectedIcon( this.element.val() ); } }, /** * Set Highlighted icon */ setHighlightedIcon: function () { this.iconContainer.find( '.current-icon' ).removeClass( 'current-icon' ); if ( this.currentIcon ) { this.iconContainer.find( '[data-fip-value="' + this.currentIcon + '"]' ).parent( 'span' ).addClass( 'current-icon' ); } }, /** * Set selected icon * * @param {string} theIcon */ setSelectedIcon: function ( theIcon ) { if ( theIcon === this.settings.iconBlockClass ) { theIcon = ''; } // Check if attribute is to be used if ( this.settings.useAttribute ) { if ( theIcon ) { this.iconPicker.find( '.selected-icon' ).html( '' ); } else { this.iconPicker.find( '.selected-icon' ).html( '' ); } // Use class } else { this.iconPicker.find( '.selected-icon' ).html( '' ); } // Set the value of the element and trigger change event this.element.val( (theIcon === '' ? this.settings.emptyIconValue : theIcon ) ).trigger( 'change' ); if ( this.triggerEvent !== null ) { // Trigger other events for ( var eventKey in this.triggerEvent ) { this.element.trigger( this.triggerEvent[ eventKey ] ); } } this.currentIcon = theIcon; this.setHighlightedIcon(); }, /** * Open/close popup (toggle) */ toggleIconSelector: function () { this.open = (! this.open) ? 1 : 0; this.iconPicker.find( '.selector-popup' ).slideToggle( 300 ); this.iconPicker.find( '.selector-button i' ).toggleClass( this.settings.iconDownClass ); this.iconPicker.find( '.selector-button i' ).toggleClass( this.settings.iconUpClass ); if ( this.open ) { this.iconPicker.find( '.icons-search-input' ).focus().select(); if ( ! this.initialized ) { this.renderIconContainer(); this.renderIcons(); this.initialized = true; } } }, renderIcons: function () { for ( var i = 0; i < this.iconsPaged.length; i ++ ) { var item = this.iconsPaged[ i ]; // Set the icon title var flipBoxTitle = item; $.grep( this.settings.source, $.proxy( function ( e, i ) { if ( e === item ) { flipBoxTitle = this.searchValues[ i ]; return true; } return false; }, this ) ); // Set the icon box $( '', { html: '', 'class': 'fip-box', title: flipBoxTitle } ).appendTo( this.iconContainer ); } this.setContainerSelectedItems(); }, /** * Reset search */ resetSearch: function () { // Empty input this.iconPicker.find( '.icons-search-input' ).val( '' ); // Reset search icon class this.searchIcon.removeClass( this.settings.iconCancelClass ); this.searchIcon.addClass( this.settings.iconSearchClass ); // Go back to page 1 and remove back arrow this.iconPicker.find( '.selector-arrow-left' ).hide(); this.currentPage = 1; this.isSearch = false; // Rerender icons this.renderIconContainer(); this.renderIcons(); // Restore pagination if needed if ( this.totalPage > 1 ) { this.iconPicker.find( '.selector-arrow-right' ).show(); } } }; // Lightweight plugin wrapper $.fn.vcFontIconPicker = function ( options ) { // Instantiate the plugin this.each( function () { if ( ! $.data( this, "vcFontIconPicker" ) ) { $.data( this, "vcFontIconPicker", new Plugin( this, options ) ); } } ); // setIcons method this.setIcons = $.proxy( function ( newIcons, iconSearch ) { if ( undefined === newIcons ) { newIcons = false; } if ( undefined === iconSearch ) { iconSearch = false; } this.each( function () { $.data( this, "vcFontIconPicker" ).settings.source = newIcons; $.data( this, "vcFontIconPicker" ).settings.searchSource = iconSearch; $.data( this, "vcFontIconPicker" ).initSourceIndex(); $.data( this, "vcFontIconPicker" ).resetSearch(); $.data( this, "vcFontIconPicker" ).loadIcons(); } ); }, this ); // destroy method this.destroyPicker = $.proxy( function () { this.each( function () { if ( ! $.data( this, "vcFontIconPicker" ) ) { return; } // Remove the iconPicker $.data( this, "vcFontIconPicker" ).iconPicker.remove(); // Reset the CSS $.data( this, "vcFontIconPicker" ).element.css( { visibility: '', top: '', position: '', zIndex: '', left: '', display: 'block', height: '', width: '', padding: '', margin: '', border: '', verticalAlign: '' } ).show(); // destroy data $.removeData( this, "vcFontIconPicker" ); } ); }, this ); // reInit method this.refreshPicker = $.proxy( function ( newOptions ) { if ( ! newOptions ) { newOptions = options; } // First destroy this.destroyPicker(); // Now reset this.each( function () { if ( ! $.data( this, "vcFontIconPicker" ) ) { $.data( this, "vcFontIconPicker", new Plugin( this, newOptions ) ); } } ); }, this ); return this; }; })( jQuery ); # Changelog ## [Unreleased] ## [1.0.4] - 2024-05-02 ### Fixed - Fix implicit nullable deprecation warning for PHP 8.4 ## [1.0.3] - 2022-01-10 ### Changed - Update PHPstan to 1.0 - Switched to GitHub Actions ## [1.0.2] - 2020-07-15 ### Added - Minor performance improvements ## [1.0.1] - 2020-06-16 ### Fixed - When calling `Punycode::decode()`, the case flags array would fail to populate when given an empty array. ## [1.0.0] - 2020-06-09 - Initial release

OnlySpins kasyno online w Polsce – wpłaty i wypłaty

OnlySpins kasyno online w Polsce – wpłaty i wypłaty

Zalecamy wybrać onlyspins kasyno online, które gwarantuje szybkie wpłaty i wypłaty w wersji polskiej. Dzięki temu możesz zacząć grać w kilka minut, a zyski odebrać już następnego dnia. Jeśli chcesz uniknąć długich kolejek, postaw na platformę, która oferuje minimum 100 zł depozyt oraz 70 % bonusu od pierwszego depozytu.

W ofercie onlyspins polska znajdziesz najbardziej elastyczne metody wpłat: karty kredytowe i debetowe, portfele elektroniczne (PayPal, Skrill, Revolut) oraz kryptowaluty (Bitcoin, Ether). Minimalna wpłata wynosi 50 zł, a transakcje są szyfrowane, co eliminuje ryzyko utraty środków.

Wypłaty na onlyspins kasyno online przebiegają w ciągu 24–48 godzin. Standardowy limit wypłaty to 10 000 zł, a przy płatnościach karty obowiązuje opłata 3,5 % (maks. 30 zł). E‑portfele umożliwiają natychmiastowy przelew, a wypłaty kryptowalut trwa około 12 h. Wszystkie transakcje połączone są z dwuskładnikowym zabezpieczeniem, więc możesz spać spokojnie.

Rekomendujemy korzystanie z opcji „QuickCash” dostępnej w zakładce „Wypłaty”. System automatycznie kompletuje formularz, sprawdza ID i przesyła środki w 2‑3 sekundy po zaakceptowaniu weryfikacji. Dodatkowo, if masz pytania, dostępny jest czat 24/7. Gracze w Polsce wspierają się nawzajem na oficjalnym forum, gdzie można wymienić się wskazówkami o najlepszych strategiach.

Podsumowując, onlyspins polska to miejsce, gdzie wpłaty są natychmiastowe, a wypłaty szybkie. Jeśli zależy ci na przejrzystości i bezpieczeństwie, this platforma spełnia wszystkie twoje oczekiwania.

Rejestracja i spełnianie wymogów KYC w OnlySpins

Rozpocznij rejestrację, podając prawdziwe imię, nazwisko oraz adres e‑mail. W dalszym kroku wprowadź wybraną metodę płatności – dzięki temu dowiadujesz się, kiedy Twoje konto zostanie zasilone i kiedy możesz rozpocząć grę.

Proces wypełniania KYC w onlyspins polska

Po wprowadzeniu danych konta kliknij „Zatwierdź” i przejdź do sekcji „Potwierdzenie tożsamości”. Właśnie wtedy w systemie onlyspins polska możesz przesłać skany dowodu osobistego lub paszportu oraz aktualny rachunek ubezpieczeniowy. System automatycznie sprawdzi kompatybilność dokumentów – zadbaj, by zdjęcia były wyraźne i kompletne.

Wszystkie dokumenty powinny być w formacie PDF lub JPG, a rozdzielczość nie może być poniżej 300 dpi. Unikniesz opóźnień, jeśli nie dostarczysz brakujących elementów w pierwszym zamówieniu. W sekcji „Informacje dodatkowe” wpisz numer telefonu mobilnego – to ułatwi kontakt w razie problemów z weryfikacją.

Unikanie typowych błędów

Nie wpisuj „Fake” w pole adresu e‑mail – system wymaga autentyczności. Pamiętaj, że jeden i ten sam dokument nie może być wykorzystywany w dwóch kontach. Jeśli w przeszłości miałeś problemy z weryfikacją, przejdź do sekcji „Historia Kont” i sprawdź, czy nie pozostawiłeś nieukończonych elementów.

OnlySpins kasyno online posiada automatyczną detekcję podejrzanych wniosków. Jeśli Twój dokument wydaje się niepoprawny, otrzymasz wiadomość e‑mail z prośbą o ponowne przesłanie zdjęcia lub dokumentu w lepszej jakości. Zastosuj jasną, czytelną fotografię z dobrze oświetlonym ramionem dokumentu.

Znalezienie rozwiązania – w przypadku opóźnienia, zadawaj proste pytania w sekcji „Wsparcie klientów”. Możesz także skorzystać z czatu online, aby szybko rozwiązać wątpliwości. Po pomyślnym weryfikowaniu, onlyspins kasyno prześle potwierdzenie o zakończeniu procesu KYC, a Ty będziesz mógł swobodnie przekładać środki i korzystać z bonusów.

Dostępne metody wpłat: karty kredytowe, portfele elektroniczne i przelewy

Wybierz kartę kredytową Visa lub Mastercard, aby szybciej przekonać się, że onlyspins kasyno online oferuje płaska procedurę wpłaty. W większości przypadków transakcja trwa mniej niż 30 sekund, a płatność jest bezpośrednio zaksięgowana na Twoim koncie.

Portfele elektroniczne, takie jak PayPal, Skrill i Neteller, cieszą się popularnością wśród graczy korzystających z onlyspins kasyno. Śledź promocje, które przyznają dodatkowe bonusy za pierwszą wpłatę. Wpisz ilość, zatwierdź transakcję i już w kilku krokach zaczniesz grać przy ulubionych slotach.

Przelewy bankowe, w tym systemy BLIK oraz przelewy natychmiastowe, umożliwiają wpłaty bez konieczności podawania danych karty. Warto sprawdzić, czy bank obsługuje szybki transfer, aby uniknąć opóźnień. Po potwierdzeniu przelewu widzisz pieniądze w balansu only spins w ciągu kilku minut.

Upewnij się, że Twoje konto w onlyspins posiada włączoną dwuskładnikową weryfikację. Dzięki temu zabezpieczysz swoje środki przed nieautoryzowanymi dostępami. Sprawdź, czy bonusy powiązane z danym sposobem wpłaty mają jasno określone warunki obrotu.

Rozpocznij od niewielkiej kwoty, aby przetestować płynność systemu i sprawdzić, która metoda wpłaty najlepiej odpowiada Twoim potrzebom. Wszystkie opisy metody wpłat w onlyspins kasyno online są dostępne na stronie. Powodzenia i miłych gier w only spins!

Limity depozytów w OnlySpins – kwoty minimalne i maksymalne

Najprostsza zasada dotycząca limitów depozytów w onlyspins kasyno: minimum 50 PLN, maksimum 2000 PLN w ciągu 24 h. Pozwala to na płynne rozpoczęcie sesji bez nadmiernego ryzyka.

Kwota minimalna 50 PLN wystarcza, by aktywować główne bonusy i wybrany zestaw stołowych gier. Dla nowych graczy zalecam rozpoczęcie od tej kwoty, zwłaszcza jeśli dopiero poznajecie mechanikę onlyspins kasyno online.

Metoda płatności ma wpływ na dostępne limity. Przelewy bankowe, karty kredytowe i portfele e‑płatnicze (np. PayPal) przyjmują pełne 2000 PLN, natomiast płatności kryptowalutowe mogą przekroczyć 3000 PLN, lecz wymagają dodatkowego potwierdzenia w systemie, co opóźnia wpłatę.

Limity według statusu gracza

Każdy uczestnik only spins ma prawy do indywidualnego zestawu limitów, zależnego od wybranego poziomu lojalności – regularny, bonusowy, VIP. Standardowe konto posiada limit 2000 PLN, natomiast status Premium podnosi ten próg do 4000 PLN oraz zapewnia szybsze wypłaty.

VIPowi gracze są objęci limitem 5000 PLN, a dodatkowa warstwa bonusowa może zwiększyć maksymalny depozyt do 6000 PLN po spełnieniu warunków weryfikacji. Dzięki temu ekskluzywnej gamie promocji, tylkospins kasyno online staje się bardziej atrakcyjne dla inwestorów wysokiego profilu.

Jeśli planujesz regularne wpłaty, warto rozważyć podział depozytu na mniejsze części – 500 PLN, 1000 PLN, 1500 PLN. Pomoże to zachować kontrolę budżetu i uniknąć gwałtownego wyczerpania limitów w krótkim okresie.

Na koniec: sprawdzaj bieżący stan swoich limitów w panelu „Konto” – onlyspins kasyno online aktualizuje informacje w czasie rzeczywistym, co pozwala szybko reagować na zmiany i korzystać z pełnej powierzchowności depozytów.

Proces wypłaty środków – wymagane dokumenty i czas realizacji

Onlyspins kasyno online pozwala złożyć wniosek o wypłatę, wybierając w menu „Wypłata” i podając numer konta oraz kwotę. Ta czynność aktywuje szybką procedurę potwierdzenia transakcji, a zespół onlyspins polska natychmiast przechodzi do weryfikacji.

Aby środki trafiły na Twoje konto, musisz przesłać zdjęcie paszportu, rachunek za media oraz potwierdzenie adresu. Dokumenty powinny być wyraźne i zawierać podpis – to kluczowy wymóg onlyspins. Wysłanie ich przez sekcję „Weryfikacja” zwalnia proces i zwiększa szanse na szybkie zaakceptowanie wypłaty.

Po otrzymaniu kompletnych dokumentów, onlyspins sprawdza je w ciągu 24–48 godzin. Jeżeli weryfikacja przebiega bezproblemowo, pieniądze trafiają na konto w ciągu 1–2 dni roboczych. W razie braków lub niejasności, obsługa kontaktuje się z Tobą, by uzupełnić potrzebne informacje.

Opłaty transakcyjne i prowizje przy wypłatach w OnlySpins

Wybór metody wypłaty w OnlySpins polska określi koszt transakcji. Najprostsze rozwiązania, takie jak przelew bankowy, nie obciążają gracza żadnymi opłatami, jeśli saldo przekracza 100 zł. W przeciwnym przypadku naliczana jest 0,85 zł.

Elektroniczne portfele – Skrill czy Neteller – zwracają natychmiastową dostępność środków. Dla użytkownika OnlySpins kasyno pobiera stałą prowizję 1,5 zł przy wypłacie do 500 zł, a 2 zł powyżej tej kwoty. W przypadku kryptowalut opłata zależy od obciążenia sieci; przy wypłacie 0,01 BTC koszt wynosi 0,00002 BTC (ok. 15 zł).

Najczęściej spotykane bazy danych przechowywania środków to fiat plus PayPal. W systemie Only Spins 3 % przewyższy kwotę wypłaty w przypadku PayPal, ale pozwala uzyskać środki w ciągu 24 godzin. Mimo że prowizja jest wyższa, proces jest bardzo wygodny dla osób preferujących szybkie finalizacje.

Wartość wypłaty decyduje również o minimalnym odciążeniu. OnlySpins proponuje następujące stawki:

MetodaMinimalna kwotaOpłata stałaProwizja (%)

Przelew bankowy 100 zł 0 zł 0% Skrill 50 zł 1,5 zł 0% Neteller 50 zł 2 zł 0% PayPal 25 zł 3 zł 3% Kryptowaluta 0,005 BTC 0,00002 BTC 0%

Zwróć uwagę, że opłaty mogą się różnić w zależności od kursów walutowych oraz waluty domyślnej konta. Dlatego przed przystąpieniem do transakcji sprawdź aktualny kurs w serwisie OnlySpins kasyno.

Jeśli planujesz regularne wypłaty, zalecam konwersję kredytu na walutę local oraz wykorzystanie przelewu bankowego. Dzięki temu unikniemy dodatkowych kosztów walutowych i skrócimy czas oczekiwania do 2‑3 dni roboczych.

Przykład: wypłata 350 zł przy metodzie Neteller kosztuje 2 zł, co daje końcową sumę 348 zł. Przy przelewie bankowym cena wynosi 0,85 zł, a saldo zostanie zaoszczędzone na kontach w future. W obliczeniach warto uwzględnić te stawki, by maksymalizować ostateczny przychód.

Zachęcam do porównania stawek i wybrania najkorzystniejszej opcji – OnlySpins spółka dba o przejrzystość, a szybka wypłata to kluczowy element przyjemności z gry.

Leave a Comment

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

Scroll to Top