'use strict'; (function () { document.querySelector('.bs-message').addEventListener('click', function () { Swal.fire('Any fool can use a computer'); }); document.querySelector('.bs-tit-txt').addEventListener('click', function () { Swal.fire('The Internet?', 'That thing is still around?', 'question'); }); document.querySelector('.bs-error-icon').addEventListener('click', function () { Swal.fire({ icon: 'error', title: 'Oops...', text: 'Something went wrong!', footer: 'Why do I have this issue?' }); }); document.querySelector('.bs-long-content').addEventListener('click', function () { Swal.fire({ imageUrl: 'https://placeholder.pics/svg/300x1500', imageHeight: 1500, imageAlt: 'A tall image' }); }); document.querySelector('.bs-cust-html').addEventListener('click', function () { Swal.fire({ title: 'HTML example', icon: 'info', html: 'You can use bold text, ' + 'links ' + 'and other HTML tags', showCloseButton: true, showCancelButton: true, focusConfirm: false, confirmButtonText: ' Great!', confirmButtonAriaLabel: 'Thumbs up, great!', cancelButtonText: '', cancelButtonAriaLabel: 'Thumbs down' }); }); document.querySelector('.bs-tre-button').addEventListener('click', function () { Swal.fire({ title: 'Do you want to save the changes?', showDenyButton: true, showCancelButton: true, confirmButtonText: `Save`, denyButtonText: `Don't save` }).then((result) => { if (result.isConfirmed) { Swal.fire('Saved!', '', 'success'); } else if (result.isDenied) { Swal.fire('Changes are not saved', '', 'info'); } }); }); document.querySelector('.bs-cust-position').addEventListener('click', function () { Swal.fire({ position: 'top-end', icon: 'success', title: 'Your work has been saved', showConfirmButton: false, timer: 1500 }); }); document.querySelector('.bs-cust-anim').addEventListener('click', function () { Swal.fire({ title: 'Custom animation with Animate.css', showClass: { popup: 'animate__animated animate__fadeInDown' }, hideClass: { popup: 'animate__animated animate__fadeOutUp' } }); }); document.querySelector('.bs-pass-para').addEventListener('click', function () { const swalWithBootstrapButtons = Swal.mixin({ customClass: { confirmButton: 'btn btn-success', cancelButton: 'btn btn-danger' }, buttonsStyling: false }); swalWithBootstrapButtons .fire({ title: 'Are you sure?', text: "You won't be able to revert this!", icon: 'warning', showCancelButton: true, confirmButtonText: 'Yes, delete it!', cancelButtonText: 'No, cancel!', reverseButtons: true }) .then((result) => { if (result.isConfirmed) { swalWithBootstrapButtons.fire('Deleted!', 'Your file has been deleted.', 'success'); } else if (result.dismiss === Swal.DismissReason.cancel) { swalWithBootstrapButtons.fire('Cancelled', 'Your imaginary file is safe :)', 'error'); } }); }); document.querySelector('.bs-cust-img').addEventListener('click', function () { Swal.fire({ title: 'Sweet!', text: 'Modal with a custom image.', imageUrl: 'https://unsplash.it/400/200', imageWidth: 400, imageHeight: 200, imageAlt: 'Custom image' }); }); document.querySelector('.bs-auto-close').addEventListener('click', function () { let timerInterval; Swal.fire({ title: 'Auto close alert!', html: 'I will close in milliseconds.', timer: 2000, timerProgressBar: true, willOpen: () => { Swal.showLoading(); timerInterval = setInterval(() => { const content = Swal.getContent(); if (content) { const b = content.querySelector('b'); if (b) { b.textContent = Swal.getTimerLeft(); } } }, 100); }, onClose: () => { clearInterval(timerInterval); } }).then((result) => { if (result.dismiss === Swal.DismissReason.timer) { } }); }); document.querySelector('.bs-rtl-lang').addEventListener('click', function () { Swal.fire({ title: 'هل تريد الاستمرار؟', icon: 'question', iconHtml: '؟', confirmButtonText: 'نعم', cancelButtonText: 'لا', showCancelButton: true, showCloseButton: true }); }); document.querySelector('.bs-ajex-req').addEventListener('click', function () { Swal.fire({ title: 'Submit your Github username', input: 'text', inputAttributes: { autocapitalize: 'off' }, showCancelButton: true, confirmButtonText: 'Look up', showLoaderOnConfirm: true, preConfirm: (login) => { return fetch(`//api.github.com/users/` + login) .then((response) => { if (!response.ok) { throw new Error(response.statusText); } return response.json(); }) .catch((error) => { Swal.showValidationMessage(`Request failed: ` + error); }); }, allowOutsideClick: () => !Swal.isLoading() }).then((result) => { if (result.isConfirmed) { Swal.fire({ title: result.value.login + `'s avatar`, imageUrl: result.value.avatar_url }); } }); }); document.querySelector('.bs-mixin-exp').addEventListener('click', function () { const Toast = Swal.mixin({ toast: true, position: 'top-end', showConfirmButton: false, timer: 3000, timerProgressBar: true, didOpen: (toast) => { toast.addEventListener('mouseenter', Swal.stopTimer); toast.addEventListener('mouseleave', Swal.resumeTimer); } }); Toast.fire({ icon: 'success', title: 'Signed in successfully' }); }); document.querySelector('.bs-success-ico').addEventListener('click', function () { Swal.fire({ icon: 'success', title: 'Success modal' }); }); document.querySelector('.bs-error-ico').addEventListener('click', function () { Swal.fire({ icon: 'error', title: 'Error modal' }); }); document.querySelector('.bs-warning-ico').addEventListener('click', function () { Swal.fire({ icon: 'warning', title: 'warning modal' }); }); document.querySelector('.bs-info-ico').addEventListener('click', function () { Swal.fire({ icon: 'info', title: 'info modal' }); }); document.querySelector('.bs-question-ico').addEventListener('click', function () { Swal.fire({ icon: 'question', title: 'question modal' }); }); document.querySelector('.bs-text-input').addEventListener('click', function () { (async () => { const ipAPI = '//api.ipify.org?format=json'; const inputValue = fetch(ipAPI) .then((response) => response.json()) .then((data) => data.ip); const { value: ipAddress } = await Swal.fire({ title: 'Enter your IP address', input: 'text', inputValue: inputValue, showCancelButton: true, inputValidator: (value) => { if (!value) { return 'You need to write something!'; } } }); if (ipAddress) { Swal.fire(`Your IP address is ` + ipAddress); } })(); }); document.querySelector('.bs-email-input').addEventListener('click', function () { (async () => { const { value: email } = await Swal.fire({ title: 'Input email address', input: 'email', inputPlaceholder: 'Enter your email address' }); if (email) { Swal.fire(`Entered email: ` + email); } })(); }); document.querySelector('.bs-url-input').addEventListener('click', function () { (async () => { const { value: url } = await Swal.fire({ input: 'url', inputPlaceholder: 'Enter the URL' }); if (url) { Swal.fire(`Entered URL: ` + url); } })(); }); document.querySelector('.bs-password-input').addEventListener('click', function () { (async () => { const { value: password } = await Swal.fire({ title: 'Enter your password', input: 'password', inputPlaceholder: 'Enter your password', inputAttributes: { maxlength: 10, autocapitalize: 'off', autocorrect: 'off' } }); if (password) { Swal.fire(`Entered password: ` + password); } })(); }); document.querySelector('.bs-textarea-input').addEventListener('click', function () { (async () => { const { value: text } = await Swal.fire({ input: 'textarea', inputPlaceholder: 'Type your message here...', inputAttributes: { 'aria-label': 'Type your message here' }, showCancelButton: true }); if (text) { Swal.fire(text); } })(); }); document.querySelector('.bs-select-input').addEventListener('click', function () { (async () => { const { value: fruit } = await Swal.fire({ title: 'Select field validation', input: 'select', inputOptions: { Fruits: { apples: 'Apples', bananas: 'Bananas', grapes: 'Grapes', oranges: 'Oranges' }, Vegetables: { potato: 'Potato', broccoli: 'Broccoli', carrot: 'Carrot' }, icecream: 'Ice cream' }, inputPlaceholder: 'Select a fruit', showCancelButton: true, inputValidator: (value) => { return new Promise((resolve) => { if (value === 'oranges') { resolve(); } else { resolve('You need to select oranges :)'); } }); } }); if (fruit) { Swal.fire(`You selected: ` + fruit); } })(); }); document.querySelector('.bs-radio-input').addEventListener('click', function () { (async () => { const inputOptions = new Promise((resolve) => { setTimeout(() => { resolve({ '#ff0000': 'Red', '#00ff00': 'Green', '#0000ff': 'Blue' }); }, 1000); }); const { value: color } = await Swal.fire({ title: 'Select color', input: 'radio', inputOptions: inputOptions, inputValidator: (value) => { if (!value) { return 'You need to choose something!'; } } }); if (color) { Swal.fire({ html: `You selected: ` + color }); } })(); }); document.querySelector('.bs-checkbox-input').addEventListener('click', function () { (async () => { const { value: accept } = await Swal.fire({ title: 'Terms and conditions', input: 'checkbox', inputValue: 1, inputPlaceholder: 'I agree with the terms and conditions', confirmButtonText: 'Continue', inputValidator: (result) => { return !result && 'You need to agree with T&C'; } }); if (accept) { Swal.fire('You agreed with T&C :)'); } })(); }); document.querySelector('.bs-file-input').addEventListener('click', function () { (async () => { const { value: file } = await Swal.fire({ title: 'Select image', input: 'file', inputAttributes: { accept: 'image/*', 'aria-label': 'Upload your profile picture' } }); if (file) { const reader = new FileReader(); reader.onload = (e) => { Swal.fire({ title: 'Your uploaded picture', imageUrl: e.target.result, imageAlt: 'The uploaded picture' }); }; reader.readAsDataURL(file); } })(); }); document.querySelector('.bs-range-input').addEventListener('click', function () { (async () => { Swal.fire({ title: 'How old are you?', icon: 'question', input: 'range', inputAttributes: { min: 8, max: 120, step: 1 }, inputValue: 25 }); })(); }); document.querySelector('.bs-multiple-input').addEventListener('click', function () { (async () => { const { value: formValues } = await Swal.fire({ title: 'Multiple inputs', html: '' + '', focusConfirm: false, preConfirm: () => { return [document.getElementById('swal-input1').value, document.getElementById('swal-input2').value]; } }); if (formValues) { Swal.fire(JSON.stringify(formValues)); } })(); }); })();